Index: /CKEditor/branches/prototype/.htaccess
===================================================================
--- /CKEditor/branches/prototype/.htaccess	(revision 2083)
+++ /CKEditor/branches/prototype/.htaccess	(revision 2083)
@@ -0,0 +1,40 @@
+#
+#  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 ==
+#
+
+#
+# On some specific Linux installations you could face problems with Firefox.
+# It could give you errors when loading the editor saying that some illegal
+# characters were found (three strange chars in the beginning of the file).
+# This could happen if you map the .js or .css files to PHP, for example.
+#
+# Those characters are the Byte Order Mask (BOM) of the Unicode encoded files.
+# All FCKeditor files are Unicode encoded.
+#
+
+AddType application/x-javascript .js
+AddType text/css .css
+
+#
+# If PHP is mapped to handle XML files, you could have some issues. The
+# following will disable it.
+#
+
+AddType text/xml .xml
Index: /CKEditor/branches/prototype/LICENSE.html
===================================================================
--- /CKEditor/branches/prototype/LICENSE.html	(revision 2083)
+++ /CKEditor/branches/prototype/LICENSE.html	(revision 2083)
@@ -0,0 +1,1341 @@
+﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+== BEGIN TEXT ONLY VERSION ==
+
+Software License Agreement
+==========================
+
+CKEditor - The text editor for Internet - http://ckeditor.com
+Copyright (C) 2003-2008 Frederico Caldeira Knabben ("FredCK.com")
+
+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
+   (See Appendix A)
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+   http://www.gnu.org/licenses/lgpl.html
+   (See Appendix B)
+
+ - Mozilla Public License Version 1.1 or later (the "MPL")
+   http://www.mozilla.org/MPL/MPL-1.1.html
+   (See Appendix C)
+
+You are not required to, but if you want to explicitly declare the
+license you have chosen to be bound to when using, reproducing,
+modifying and distributing this software, just include a text file
+titled "legal.txt" in your version of this software, indicating your
+license choice. In any case, your choice will not restrict any
+recipient of your version of this software to use, reproduce, modify
+and distribute this software under any of the above licenses.
+
+Sources of Intellectual Property Included in CKEditor
+=====================================================
+
+Where not otherwise indicated, all CKEditor content is authored by
+FredCK.com engineers and consists of FredCK.com-owned intellectual
+property. In some specific instances, CKEditor will incorporate work
+done by developers outside of FredCK.com with their express permission.
+
+JsDoc Toolkit: At _dev/thirdparty/jsdoc-toolkit can be found the JsDoc
+Toolkit distribution files, which are licensed under the terms of the
+X11/MIT License. JsDoc Toolkit is copyright (c) 2008 Michael Mathews 
+<micmath@gmail.com>.
+
+Rhino: At _dev/thirdparty/rhino can be found the Rhino executable,
+which is licensed by Mozilla under the MPL 1.1 or later/GPL 2.0 or later
+licenses (http://www.mozilla.org/MPL/).
+
+Trademarks
+==========
+
+CKEditor is a trademark of Frederico Caldeira Knabben. All other brand
+and product names are trademarks, registered trademarks or service
+marks of their respective holders.
+
+Appendix A: The GPL License
+===========================
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+Appendix B: The LGPL License
+============================
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+Appendix C: The MPL License
+===========================
+
+                          MOZILLA PUBLIC LICENSE
+                                Version 1.1
+
+                              ---------------
+
+1. Definitions.
+
+     1.0.1. "Commercial Use" means distribution or otherwise making the
+     Covered Code available to a third party.
+
+     1.1. "Contributor" means each entity that creates or contributes to
+     the creation of Modifications.
+
+     1.2. "Contributor Version" means the combination of the Original
+     Code, prior Modifications used by a Contributor, and the Modifications
+     made by that particular Contributor.
+
+     1.3. "Covered Code" means the Original Code or Modifications or the
+     combination of the Original Code and Modifications, in each case
+     including portions thereof.
+
+     1.4. "Electronic Distribution Mechanism" means a mechanism generally
+     accepted in the software development community for the electronic
+     transfer of data.
+
+     1.5. "Executable" means Covered Code in any form other than Source
+     Code.
+
+     1.6. "Initial Developer" means the individual or entity identified
+     as the Initial Developer in the Source Code notice required by Exhibit
+     A.
+
+     1.7. "Larger Work" means a work which combines Covered Code or
+     portions thereof with code not governed by the terms of this License.
+
+     1.8. "License" means this document.
+
+     1.8.1. "Licensable" means having the right to grant, to the maximum
+     extent possible, whether at the time of the initial grant or
+     subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. "Modifications" means any addition to or deletion from the
+     substance or structure of either the Original Code or any previous
+     Modifications. When Covered Code is released as a series of files, a
+     Modification is:
+          A. Any addition to or deletion from the contents of a file
+          containing Original Code or previous Modifications.
+
+          B. Any new file that contains any part of the Original Code or
+          previous Modifications.
+
+     1.10. "Original Code" means Source Code of computer software code
+     which is described in the Source Code notice required by Exhibit A as
+     Original Code, and which, at the time of its release under this
+     License is not already Covered Code governed by this License.
+
+     1.10.1. "Patent Claims" means any patent claim(s), now owned or
+     hereafter acquired, including without limitation,  method, process,
+     and apparatus claims, in any patent Licensable by grantor.
+
+     1.11. "Source Code" means the preferred form of the Covered Code for
+     making modifications to it, including all modules it contains, plus
+     any associated interface definition files, scripts used to control
+     compilation and installation of an Executable, or source code
+     differential comparisons against either the Original Code or another
+     well known, available Covered Code of the Contributor's choice. The
+     Source Code can be in a compressed or archival form, provided the
+     appropriate decompression or de-archiving software is widely available
+     for no charge.
+
+     1.12. "You" (or "Your")  means an individual or a legal entity
+     exercising rights under, and complying with all of the terms of, this
+     License or a future version of this License issued under Section 6.1.
+     For legal entities, "You" includes any entity which controls, is
+     controlled by, or is under common control with You. For purposes of
+     this definition, "control" means (a) the power, direct or indirect,
+     to cause the direction or management of such entity, whether by
+     contract or otherwise, or (b) ownership of more than fifty percent
+     (50%) of the outstanding shares or beneficial ownership of such
+     entity.
+
+2. Source Code License.
+
+     2.1. The Initial Developer Grant.
+     The Initial Developer hereby grants You a world-wide, royalty-free,
+     non-exclusive license, subject to third party intellectual property
+     claims:
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Initial Developer to use, reproduce,
+          modify, display, perform, sublicense and distribute the Original
+          Code (or portions thereof) with or without Modifications, and/or
+          as part of a Larger Work; and
+
+          (b) under Patents Claims infringed by the making, using or
+          selling of Original Code, to make, have made, use, practice,
+          sell, and offer for sale, and/or otherwise dispose of the
+          Original Code (or portions thereof).
+
+          (c) the licenses granted in this Section 2.1(a) and (b) are
+          effective on the date Initial Developer first distributes
+          Original Code under the terms of this License.
+
+          (d) Notwithstanding Section 2.1(b) above, no patent license is
+          granted: 1) for code that You delete from the Original Code; 2)
+          separate from the Original Code;  or 3) for infringements caused
+          by: i) the modification of the Original Code or ii) the
+          combination of the Original Code with other software or devices.
+
+     2.2. Contributor Grant.
+     Subject to third party intellectual property claims, each Contributor
+     hereby grants You a world-wide, royalty-free, non-exclusive license
+
+          (a)  under intellectual property rights (other than patent or
+          trademark) Licensable by Contributor, to use, reproduce, modify,
+          display, perform, sublicense and distribute the Modifications
+          created by such Contributor (or portions thereof) either on an
+          unmodified basis, with other Modifications, as Covered Code
+          and/or as part of a Larger Work; and
+
+          (b) under Patent Claims infringed by the making, using, or
+          selling of  Modifications made by that Contributor either alone
+          and/or in combination with its Contributor Version (or portions
+          of such combination), to make, use, sell, offer for sale, have
+          made, and/or otherwise dispose of: 1) Modifications made by that
+          Contributor (or portions thereof); and 2) the combination of
+          Modifications made by that Contributor with its Contributor
+          Version (or portions of such combination).
+
+          (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+          effective on the date Contributor first makes Commercial Use of
+          the Covered Code.
+
+          (d)    Notwithstanding Section 2.2(b) above, no patent license is
+          granted: 1) for any code that Contributor has deleted from the
+          Contributor Version; 2)  separate from the Contributor Version;
+          3)  for infringements caused by: i) third party modifications of
+          Contributor Version or ii)  the combination of Modifications made
+          by that Contributor with other software  (except as part of the
+          Contributor Version) or other devices; or 4) under Patent Claims
+          infringed by Covered Code in the absence of Modifications made by
+          that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Application of License.
+     The Modifications which You create or to which You contribute are
+     governed by the terms of this License, including without limitation
+     Section 2.2. The Source Code version of Covered Code may be
+     distributed only under the terms of this License or a future version
+     of this License released under Section 6.1, and You must include a
+     copy of this License with every copy of the Source Code You
+     distribute. You may not offer or impose any terms on any Source Code
+     version that alters or restricts the applicable version of this
+     License or the recipients' rights hereunder. However, You may include
+     an additional document offering the additional rights described in
+     Section 3.5.
+
+     3.2. Availability of Source Code.
+     Any Modification which You create or to which You contribute must be
+     made available in Source Code form under the terms of this License
+     either on the same media as an Executable version or via an accepted
+     Electronic Distribution Mechanism to anyone to whom you made an
+     Executable version available; and if made available via Electronic
+     Distribution Mechanism, must remain available for at least twelve (12)
+     months after the date it initially became available, or at least six
+     (6) months after a subsequent version of that particular Modification
+     has been made available to such recipients. You are responsible for
+     ensuring that the Source Code version remains available even if the
+     Electronic Distribution Mechanism is maintained by a third party.
+
+     3.3. Description of Modifications.
+     You must cause all Covered Code to which You contribute to contain a
+     file documenting the changes You made to create that Covered Code and
+     the date of any change. You must include a prominent statement that
+     the Modification is derived, directly or indirectly, from Original
+     Code provided by the Initial Developer and including the name of the
+     Initial Developer in (a) the Source Code, and (b) in any notice in an
+     Executable version or related documentation in which You describe the
+     origin or ownership of the Covered Code.
+
+     3.4. Intellectual Property Matters
+          (a) Third Party Claims.
+          If Contributor has knowledge that a license under a third party's
+          intellectual property rights is required to exercise the rights
+          granted by such Contributor under Sections 2.1 or 2.2,
+          Contributor must include a text file with the Source Code
+          distribution titled "LEGAL" which describes the claim and the
+          party making the claim in sufficient detail that a recipient will
+          know whom to contact. If Contributor obtains such knowledge after
+          the Modification is made available as described in Section 3.2,
+          Contributor shall promptly modify the LEGAL file in all copies
+          Contributor makes available thereafter and shall take other steps
+          (such as notifying appropriate mailing lists or newsgroups)
+          reasonably calculated to inform those who received the Covered
+          Code that new knowledge has been obtained.
+
+          (b) Contributor APIs.
+          If Contributor's Modifications include an application programming
+          interface and Contributor has knowledge of patent licenses which
+          are reasonably necessary to implement that API, Contributor must
+          also include this information in the LEGAL file.
+
+               (c)    Representations.
+          Contributor represents that, except as disclosed pursuant to
+          Section 3.4(a) above, Contributor believes that Contributor's
+          Modifications are Contributor's original creation(s) and/or
+          Contributor has sufficient rights to grant the rights conveyed by
+          this License.
+
+     3.5. Required Notices.
+     You must duplicate the notice in Exhibit A in each file of the Source
+     Code.  If it is not possible to put such notice in a particular Source
+     Code file due to its structure, then You must include such notice in a
+     location (such as a relevant directory) where a user would be likely
+     to look for such a notice.  If You created one or more Modification(s)
+     You may add your name as a Contributor to the notice described in
+     Exhibit A.  You must also duplicate this License in any documentation
+     for the Source Code where You describe recipients' rights or ownership
+     rights relating to Covered Code.  You may choose to offer, and to
+     charge a fee for, warranty, support, indemnity or liability
+     obligations to one or more recipients of Covered Code. However, You
+     may do so only on Your own behalf, and not on behalf of the Initial
+     Developer or any Contributor. You must make it absolutely clear than
+     any such warranty, support, indemnity or liability obligation is
+     offered by You alone, and You hereby agree to indemnify the Initial
+     Developer and every Contributor for any liability incurred by the
+     Initial Developer or such Contributor as a result of warranty,
+     support, indemnity or liability terms You offer.
+
+     3.6. Distribution of Executable Versions.
+     You may distribute Covered Code in Executable form only if the
+     requirements of Section 3.1-3.5 have been met for that Covered Code,
+     and if You include a notice stating that the Source Code version of
+     the Covered Code is available under the terms of this License,
+     including a description of how and where You have fulfilled the
+     obligations of Section 3.2. The notice must be conspicuously included
+     in any notice in an Executable version, related documentation or
+     collateral in which You describe recipients' rights relating to the
+     Covered Code. You may distribute the Executable version of Covered
+     Code or ownership rights under a license of Your choice, which may
+     contain terms different from this License, provided that You are in
+     compliance with the terms of this License and that the license for the
+     Executable version does not attempt to limit or alter the recipient's
+     rights in the Source Code version from the rights set forth in this
+     License. If You distribute the Executable version under a different
+     license You must make it absolutely clear that any terms which differ
+     from this License are offered by You alone, not by the Initial
+     Developer or any Contributor. You hereby agree to indemnify the
+     Initial Developer and every Contributor for any liability incurred by
+     the Initial Developer or such Contributor as a result of any such
+     terms You offer.
+
+     3.7. Larger Works.
+     You may create a Larger Work by combining Covered Code with other code
+     not governed by the terms of this License and distribute the Larger
+     Work as a single product. In such a case, You must make sure the
+     requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+     If it is impossible for You to comply with any of the terms of this
+     License with respect to some or all of the Covered Code due to
+     statute, judicial order, or regulation then You must: (a) comply with
+     the terms of this License to the maximum extent possible; and (b)
+     describe the limitations and the code they affect. Such description
+     must be included in the LEGAL file described in Section 3.4 and must
+     be included with all distributions of the Source Code. Except to the
+     extent prohibited by statute or regulation, such description must be
+     sufficiently detailed for a recipient of ordinary skill to be able to
+     understand it.
+
+5. Application of this License.
+
+     This License applies to code to which the Initial Developer has
+     attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+     6.1. New Versions.
+     Netscape Communications Corporation ("Netscape") may publish revised
+     and/or new versions of the License from time to time. Each version
+     will be given a distinguishing version number.
+
+     6.2. Effect of New Versions.
+     Once Covered Code has been published under a particular version of the
+     License, You may always continue to use it under the terms of that
+     version. You may also choose to use such Covered Code under the terms
+     of any subsequent version of the License published by Netscape. No one
+     other than Netscape has the right to modify the terms applicable to
+     Covered Code created under this License.
+
+     6.3. Derivative Works.
+     If You create or use a modified version of this License (which you may
+     only do in order to apply it to code which is not already Covered Code
+     governed by this License), You must (a) rename Your license so that
+     the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+     "MPL", "NPL" or any confusingly similar phrase do not appear in your
+     license (except to note that your license differs from this License)
+     and (b) otherwise make it clear that Your version of the license
+     contains terms which differ from the Mozilla Public License and
+     Netscape Public License. (Filling in the name of the Initial
+     Developer, Original Code or Contributor in the notice described in
+     Exhibit A shall not of themselves be deemed to be modifications of
+     this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+     COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+     WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+     DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+     THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+     IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+     YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+     COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+     OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+     ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+     8.1.  This License and the rights granted hereunder will terminate
+     automatically if You fail to comply with terms herein and fail to cure
+     such breach within 30 days of becoming aware of the breach. All
+     sublicenses to the Covered Code which are properly granted shall
+     survive any termination of this License. Provisions which, by their
+     nature, must remain in effect beyond the termination of this License
+     shall survive.
+
+     8.2.  If You initiate litigation by asserting a patent infringement
+     claim (excluding declatory judgment actions) against Initial Developer
+     or a Contributor (the Initial Developer or Contributor against whom
+     You file such action is referred to as "Participant")  alleging that:
+
+     (a)  such Participant's Contributor Version directly or indirectly
+     infringes any patent, then any and all rights granted by such
+     Participant to You under Sections 2.1 and/or 2.2 of this License
+     shall, upon 60 days notice from Participant terminate prospectively,
+     unless if within 60 days after receipt of notice You either: (i)
+     agree in writing to pay Participant a mutually agreeable reasonable
+     royalty for Your past and future use of Modifications made by such
+     Participant, or (ii) withdraw Your litigation claim with respect to
+     the Contributor Version against such Participant.  If within 60 days
+     of notice, a reasonable royalty and payment arrangement are not
+     mutually agreed upon in writing by the parties or the litigation claim
+     is not withdrawn, the rights granted by Participant to You under
+     Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+     the 60 day notice period specified above.
+
+     (b)  any software, hardware, or device, other than such Participant's
+     Contributor Version, directly or indirectly infringes any patent, then
+     any rights granted to You by such Participant under Sections 2.1(b)
+     and 2.2(b) are revoked effective as of the date You first made, used,
+     sold, distributed, or had made, Modifications made by that
+     Participant.
+
+     8.3.  If You assert a patent infringement claim against Participant
+     alleging that such Participant's Contributor Version directly or
+     indirectly infringes any patent where such claim is resolved (such as
+     by license or settlement) prior to the initiation of patent
+     infringement litigation, then the reasonable value of the licenses
+     granted by such Participant under Sections 2.1 or 2.2 shall be taken
+     into account in determining the amount or value of any payment or
+     license.
+
+     8.4.  In the event of termination under Sections 8.1 or 8.2 above,
+     all end user license agreements (excluding distributors and resellers)
+     which have been validly granted by You or any distributor hereunder
+     prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+     (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+     DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+     OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+     ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+     CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+     WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+     COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+     INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+     LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+     RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+     PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+     EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+     THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+     The Covered Code is a "commercial item," as that term is defined in
+     48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+     software" and "commercial computer software documentation," as such
+     terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+     C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+     all U.S. Government End Users acquire Covered Code with only those
+     rights set forth herein.
+
+11. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject
+     matter hereof. If any provision of this License is held to be
+     unenforceable, such provision shall be reformed only to the extent
+     necessary to make it enforceable. This License shall be governed by
+     California law provisions (except to the extent applicable law, if
+     any, provides otherwise), excluding its conflict-of-law provisions.
+     With respect to disputes in which at least one party is a citizen of,
+     or an entity chartered or registered to do business in the United
+     States of America, any litigation relating to this License shall be
+     subject to the jurisdiction of the Federal Courts of the Northern
+     District of California, with venue lying in Santa Clara County,
+     California, with the losing party responsible for costs, including
+     without limitation, court costs and reasonable attorneys' fees and
+     expenses. The application of the United Nations Convention on
+     Contracts for the International Sale of Goods is expressly excluded.
+     Any law or regulation which provides that the language of a contract
+     shall be construed against the drafter shall not apply to this
+     License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is
+     responsible for claims and damages arising, directly or indirectly,
+     out of its utilization of rights under this License and You agree to
+     work with Initial Developer and Contributors to distribute such
+     responsibility on an equitable basis. Nothing herein is intended or
+     shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+     Initial Developer may designate portions of the Covered Code as
+     "Multiple-Licensed".  "Multiple-Licensed" means that the Initial
+     Developer permits you to utilize portions of the Covered Code under
+     Your choice of the NPL or the alternative licenses, if any, specified
+     by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+     ``The contents of this file are subject to the Mozilla Public License
+     Version 1.1 (the "License"); you may not use this file except in
+     compliance with the License. You may obtain a copy of the License at
+     http://www.mozilla.org/MPL/
+
+     Software distributed under the License is distributed on an "AS IS"
+     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+     License for the specific language governing rights and limitations
+     under the License.
+
+     The Original Code is ______________________________________.
+
+     The Initial Developer of the Original Code is ________________________.
+     Portions created by ______________________ are Copyright (C) ______
+     _______________________. All Rights Reserved.
+
+     Contributor(s): ______________________________________.
+
+     Alternatively, the contents of this file may be used under the terms
+     of the _____ license (the  "[___] License"), in which case the
+     provisions of [______] License are applicable instead of those
+     above.  If you wish to allow use of your version of this file only
+     under the terms of the [____] License and not to allow others to use
+     your version of this file under the MPL, indicate your decision by
+     deleting  the provisions above and replace  them with the notice and
+     other provisions required by the [___] License.  If you do not delete
+     the provisions above, a recipient may use your version of this file
+     under either the MPL or the [___] License."
+
+     [NOTE: The text of this Exhibit A may differ slightly from the text of
+     the notices in the Source Code files of the Original Code. You should
+     use the text of this Exhibit A rather than the text found in the
+     Original Code Source Code for Your Modifications.]
+
+== END TEXT ONLY VERSION ==
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>License - CKEditor</title>
+</head>
+<body>
+	<h1>
+		Software License Agreement
+	</h1>
+	<p>
+		<strong>CKEditor&trade;</strong> - The text editor for Internet&trade; - <a href="http://ckeditor.com">
+			http://www.ckeditor.com</a><br />
+		Copyright &copy; 2003-2008 Frederico Caldeira Knabben
+	</p>
+	<p>
+		Licensed under the terms of any of the following licenses at your choice:
+	</p>
+	<ul>
+		<li><a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a> Version
+			2 or later (the "GPL");</li>
+		<li><a href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License</a>
+			Version 2.1 or later (the "LGPL");</li>
+		<li><a href="http://www.mozilla.org/MPL/MPL-1.1.html">Mozilla Public License</a> Version
+			1.1 or later (the "MPL").</li>
+	</ul>
+	<p>
+		You are not required to, but if you want to explicitly declare the license you have
+		chosen to be bound to when using, reproducing, modifying and distributing this software,
+		just include a text file titled "LEGAL" in your version of this software, indicating
+		your license choice. In any case, your choice will not restrict any recipient of
+		your version of this software to use, reproduce, modify and distribute this software
+		under any of the above licenses.
+	</p>
+	<h2>
+		Sources of Intellectual Property Included in CKEditor
+	</h2>
+	<p>
+		Where not otherwise indicated, all CKEditor content is authored by FredCK.com engineers
+		and consists of FredCK.com-owned intellectual property. In some specific instances,
+		CKEditor will incorporate work done by developers outside of FredCK.com with their
+		express permission.
+	</p>
+	<p>
+		<b>JsDoc Toolkit</b>: At _dev/thirdparty/jsdoc-toolkit can be found the JsDoc Toolkit
+		distribution files, which are licensed under the terms of the X11/MIT License. JsDoc
+		Toolkit is copyright &copy; 2008 Michael Mathews.
+	</p>
+	<p>
+		<b>Rhino</b>: At _dev/thirdparty/rhino can be found the Rhino executable, which
+		is licensed by Mozilla under the MPL 1.1 or later/GPL 2.0 or later licenses (http://www.mozilla.org/MPL/).
+	</p>
+	<h2>
+		Trademarks
+	</h2>
+	<p>
+		CKEditor is a trademark of Frederico Caldeira Knabben. All other brand and product
+		names are trademarks, registered trademarks or service marks of their respective
+		holders.
+	</p>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_dev/docs_build/docs_build.bat
===================================================================
--- /CKEditor/branches/prototype/_dev/docs_build/docs_build.bat	(revision 2083)
+++ /CKEditor/branches/prototype/_dev/docs_build/docs_build.bat	(revision 2083)
@@ -0,0 +1,29 @@
+@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 ==
+::
+:: Build the _docs/api documentation files.
+::
+
+ECHO Building the API document at _docs/api...
+
+java -jar ../_thirdparty/jsdoc-toolkit/jsrun.jar ../_thirdparty/jsdoc-toolkit/app/run.js -c=docs_build.conf
+
+ECHO Finished!
Index: /CKEditor/branches/prototype/_dev/docs_build/docs_build.conf
===================================================================
--- /CKEditor/branches/prototype/_dev/docs_build/docs_build.conf	(revision 2083)
+++ /CKEditor/branches/prototype/_dev/docs_build/docs_build.conf	(revision 2083)
@@ -0,0 +1,44 @@
+/*
+	This is an example of one way you could set up a configuration file to more
+	conveniently define some commandline options. You might like to do this if
+	you frequently reuse the same options. Note that you don't need to define
+	every option in this file, you can combine a configuration file with
+	additional options on the commandline if your wish.
+
+	You would include this configuration file by running JsDoc Toolkit like so:
+	java -jar jsrun.jar app/run.js -c=conf/sample.conf
+
+*/
+
+{
+	// Source files to parse.
+	_:
+	[
+		'../../_source/core/',
+		'../../_source/plugins/'
+	],
+
+	// Document all functions, even uncommented ones.
+	a: true,
+
+	// Recursively, up to 100 directories depth.
+	r: 100,
+
+	// use this directory as the output directory
+	d: '../../_docs/api',
+
+	// Template.
+	t: '../_thirdparty/jsdoc-toolkit/templates/jsdoc',
+
+	// Init (default) values for undocumented symbols and tags.
+	I:
+	{
+		$				: '<span style="color:red">NO DOCUMENTATION AVAILABLE</span>',
+		example			: '<span style="color:red">NO EXAMPLE AVAILABLE</span>',
+		fileOverview	: '<span style="color:red">NO FILE DESCRIPTION</span>',
+		since			:  '3.0',
+	},
+
+	// Verbose mode.
+	v: true
+}
Index: /CKEditor/branches/prototype/_docs/api/files.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/files.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/files.html	(revision 2083)
@@ -0,0 +1,507 @@
+<!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=utf-8"" />
+		
+		<title>JsDoc Reference - File Index</title>
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<style type="text/css">
+		/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+	
+	<body>
+		<div id="header">
+</div>
+		
+		<div id="index">
+			<div align="center"><a href="index.html">Code Index</a>
+| <a href="files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+		</div>
+		
+		<div id="content">
+			<h1 class="classTitle">File Index</h1>
+			
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__xml.js.html">xml.js</a></h2>
+				
+The XML object class, representing a loaded XML document.
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core___bootstrap.js.html">../../_source/core/\_bootstrap.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__ajax.js.html">../../_source/core/\ajax.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__ckeditor.js.html">../../_source/core/\ckeditor.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__ckeditor_base.js.html">../../_source/core/\ckeditor_base.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__ckeditor_basic.js.html">../../_source/core/\ckeditor_basic.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__config.js.html">../../_source/core/\config.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__dom.js.html">../../_source/core/\dom.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__dom_element.js.html">../../_source/core/\dom\element.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__editor.js.html">../../_source/core/\editor.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__env.js.html">../../_source/core/\env.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__event.js.html">../../_source/core/\event.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__loader.js.html">../../_source/core/\loader.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__scriptloader.js.html">../../_source/core/\scriptloader.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__test.js.html">../../_source/core/\test.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_core__tools.js.html">../../_source/core/\tools.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			<div>
+				<h2><a href="symbols/src/_source_plugins__themes_default.js.html">../../_source/plugins/\themes\default.js</a></h2>
+				
+				<dl>
+					
+					
+					
+					
+				</dl>
+			</div>
+			<hr />
+			
+			
+		</div>
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/index.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/index.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/index.html	(revision 2083)
@@ -0,0 +1,465 @@
+<!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=utf-8"" />
+		
+		<title>JsDoc Reference - Index</title>
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<style type="text/css">
+		/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+	
+	<body>
+		<div id="header">
+</div>
+		
+		<div id="index">
+			<div align="center"><a href="index.html">Code Index</a>
+| <a href="files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+		</div>
+		
+		<div id="content">
+			<h1 class="classTitle">Namespaces Index</h1>
+			
+			
+			
+			<div>
+				<h2><a href="symbols/_global_.html#constructor">_global_</a></h2>
+				
+			</div>
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.html#constructor">CKEDITOR</a></h2>
+				
+This is the API entry point.
+			</div>
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.ajax.html#constructor">CKEDITOR.ajax</a></h2>
+				
+Ajax methods for data loading.
+			</div>
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.config.html#constructor">CKEDITOR.config</a></h2>
+				
+Holds the default configuration settings.
+			</div>
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.dom.html#constructor">CKEDITOR.dom</a></h2>
+				
+DOM manipulation objects and function.
+			</div>
+			
+			
+			
+			
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.env.html#constructor">CKEDITOR.env</a></h2>
+				
+Environment information.
+			</div>
+			
+			
+			
+			
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.loader.html#constructor">CKEDITOR.loader</a></h2>
+				
+Load core scripts and their dependencies from _source.
+			</div>
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.scriptLoader.html#constructor">CKEDITOR.scriptLoader</a></h2>
+				
+Load scripts asynchronously.
+			</div>
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.test.html#constructor">CKEDITOR.test</a></h2>
+				
+Contains functions used at our testing environment.
+			</div>
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.test.assert.html#constructor">CKEDITOR.test.assert</a></h2>
+				
+The assertion namespace, containing all assertion functions.
+			</div>
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.tools.html#constructor">CKEDITOR.tools</a></h2>
+				
+Utility functions.
+			</div>
+			
+			
+			
+			
+
+			<h1 class="classTitle">Class Index</h1>
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a></h2>
+				
+			</div>
+			<hr />
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.editor.html#constructor">CKEDITOR.editor</a></h2>
+				
+			</div>
+			<hr />
+			
+			
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a></h2>
+				
+			</div>
+			<hr />
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.eventInfo.html#constructor">CKEDITOR.eventInfo</a></h2>
+				
+			</div>
+			<hr />
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			<div>
+				<h2><a href="symbols/CKEDITOR.xml.html#constructor">CKEDITOR.xml</a></h2>
+				
+			</div>
+			<hr />
+			
+			
+			
+		</div>
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.ajax.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.ajax.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.ajax.html	(revision 2083)
@@ -0,0 +1,583 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.ajax</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Namespace CKEDITOR.ajax
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+Ajax methods for data loading.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__ajax.js.html">ajax.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.ajax.">
+				<caption>Namespace 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.ajax.html#constructor">CKEDITOR.ajax</a></b>
+							</div>
+							<div class="description">Ajax methods for data loading.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.ajax.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.ajax.<b><a href="../symbols/CKEDITOR.ajax.html#.load">load</a></b>(url, callback)
+								</div>
+								<div class="description">Loads data from an URL as plain text.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.ajax.<b><a href="../symbols/CKEDITOR.ajax.html#.loadXml">loadXml</a></b>(url, callback)
+								</div>
+								<div class="description">Loads data from an URL as XML.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Namespace Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.ajax</b>
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Ajax methods for data loading.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name=".load"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{String}</span>
+					<span class="light">CKEDITOR.ajax.</span><b>load</b>(url, callback)
+					
+					</div>
+					<div class="description">
+						Loads data from an URL as plain text.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">// Load data synchronously.
+var data = CKEDITOR.ajax.load( 'somedata.txt' );
+alert( data );</pre>
+					
+					<pre class="code">// Load data asynchronously.
+var data = CKEDITOR.ajax.load( 'somedata.txt', function( data )
+    {
+        alert( data );
+    } );</pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>url</b>
+									
+								</dt>
+								<dd>The URL from which load data.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{Function}</span> <b>callback</b>
+									<i>Optional</i>
+								</dt>
+								<dd>A callback function to be called on
+		data load. If not provided, the data will be loaded
+		asynchronously, passing the data value the function on load.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{String}</span> The loaded data. For asynchronous requests, an
+		empty string. For invalid requests, null.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".loadXml"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{<a href="../symbols/CKEDITOR.xml.html#constructor">CKEDITOR.xml</a>}</span>
+					<span class="light">CKEDITOR.ajax.</span><b>loadXml</b>(url, callback)
+					
+					</div>
+					<div class="description">
+						Loads data from an URL as XML.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">// Load XML synchronously.
+var xml = CKEDITOR.ajax.loadXml( 'somedata.xml' );
+alert( xml.getOuterXml() );</pre>
+					
+					<pre class="code">// Load XML asynchronously.
+var data = CKEDITOR.ajax.loadXml( 'somedata.xml', function( xml )
+    {
+        alert( xml.getOuterXml() );
+    } );</pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>url</b>
+									
+								</dt>
+								<dd>The URL from which load data.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{Function}</span> <b>callback</b>
+									<i>Optional</i>
+								</dt>
+								<dd>A callback function to be called on
+		data load. If not provided, the data will be loaded
+		asynchronously, passing the data value the function on load.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{<a href="../symbols/CKEDITOR.xml.html#constructor">CKEDITOR.xml</a>}</span> An XML object holding the loaded data. For asynchronous requests, an
+		empty string. For invalid requests, null.</dd>
+							
+							</dl>
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.config.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.config.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.config.html	(revision 2083)
@@ -0,0 +1,523 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.config</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Namespace CKEDITOR.config
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+Holds the default configuration settings.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__config.js.html">config.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.config.">
+				<caption>Namespace 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.config.html#constructor">CKEDITOR.config</a></b>
+							</div>
+							<div class="description">Holds the default configuration settings.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class CKEDITOR.config.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.config.<b><a href="../symbols/CKEDITOR.config.html#.baseHref">baseHref</a></b>
+								</div>
+								<div class="description">The base href URL used to resolve relative and absolute URLs in the
+editor content.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.config.<b><a href="../symbols/CKEDITOR.config.html#.theme">theme</a></b>
+								</div>
+								<div class="description">The theme to be used to build the UI.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Namespace Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.config</b>
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Holds the default configuration settings.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name=".baseHref"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{String}</span>
+					<span class="light">CKEDITOR.config.</span><b>baseHref</b>
+					
+					</div>
+					<div class="description">
+						The base href URL used to resolve relative and absolute URLs in the
+editor content.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">config.baseHref = 'http://www.example.com/path/';</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Default Value:</dt>
+							<dd>
+								'' (empty string)
+							</dd>
+							</dl>
+						
+
+					<hr />
+				
+					<a name=".theme"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{String}</span>
+					<span class="light">CKEDITOR.config.</span><b>theme</b>
+					
+					</div>
+					<div class="description">
+						The theme to be used to build the UI.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Default Value:</dt>
+							<dd>
+								'default'
+							</dd>
+							</dl>
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.element.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.element.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.element.html	(revision 2083)
@@ -0,0 +1,1162 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.dom.element</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class CKEDITOR.dom.element
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__dom_element.js.html">element.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.dom.element.">
+				<caption>Class 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a></b>(element)
+							</div>
+							<div class="description">Represents a DOM element.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class CKEDITOR.dom.element.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.dom.element.html#$">$</a></b>
+								</div>
+								<div class="description">The native DOM element represented by this class instance.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.dom.element.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#append">append</a></b>(node)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#appendText">appendText</a></b>(text)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#appendTo">appendTo</a></b>(element)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.dom.element.<b><a href="../symbols/CKEDITOR.dom.element.html#.getHead">getHead</a></b>()
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#getId">getId</a></b>()
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#getName">getName</a></b>()
+								</div>
+								<div class="description">The element name.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#getNameAtt">getNameAtt</a></b>()
+								</div>
+								<div class="description">The value of the "name" attribute.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#hide">hide</a></b>()
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#setAttribute">setAttribute</a></b>(attributeName, value)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#setAttributes">setAttributes</a></b>(attributesPairs)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#setStyle">setStyle</a></b>(styleName, value)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#setText">setText</a></b>(text)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.dom.element.html#show">show</a></b>()
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.dom.element</b>(element)
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Represents a DOM element.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{Object|String}</span>  <b>element</b>
+								
+							</dt>
+								<dd>A native DOM element or the element name for new elements.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="$"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{Object}</span>
+					<b>$</b>
+					
+					</div>
+					<div class="description">
+						The native DOM element represented by this class instance.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="append"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>append</b>(node)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>node</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="appendText"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>appendText</b>(text)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>text</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="appendTo"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>appendTo</b>(element)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>element</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".getHead"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">CKEDITOR.dom.element.</span><b>getHead</b>()
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="getId"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getId</b>()
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="getName"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getName</b>()
+					
+					</div>
+					<div class="description">
+						The element name. The name is always full lowercased.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">var element = new CKEDITOR.dom.element( 'span' );
+alert( element.getName() == 'span' );	// true</pre>
+					
+					
+					
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="getNameAtt"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>getNameAtt</b>()
+					
+					</div>
+					<div class="description">
+						The value of the "name" attribute.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">var element = new CKEDITOR.dom.element( document.getElementsByName( 'test' )[0] );
+alert( element.getNameAtt() == 'test' );	// true</pre>
+					
+					
+					
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="hide"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>hide</b>()
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="setAttribute"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>setAttribute</b>(attributeName, value)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>attributeName</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>value</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="setAttributes"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>setAttributes</b>(attributesPairs)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>attributesPairs</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="setStyle"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>setStyle</b>(styleName, value)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>styleName</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>value</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="setText"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>setText</b>(text)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>text</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="show"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>show</b>()
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.dom.html	(revision 2083)
@@ -0,0 +1,402 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.dom</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Namespace CKEDITOR.dom
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+DOM manipulation objects and function.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__dom.js.html">dom.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.dom.">
+				<caption>Namespace 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.dom.html#constructor">CKEDITOR.dom</a></b>
+							</div>
+							<div class="description">DOM manipulation objects and function.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Namespace Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.dom</b>
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					DOM manipulation objects and function.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.editor.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.editor.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.editor.html	(revision 2083)
@@ -0,0 +1,558 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.editor</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class CKEDITOR.editor
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__editor.js.html">editor.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.editor.">
+				<caption>Class 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.editor.html#constructor">CKEDITOR.editor</a></b>(element)
+							</div>
+							<div class="description">Represents an editor instance.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.editor.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.editor.html#fire">fire</a></b>(eventName, data)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.editor.html#fireOnce">fireOnce</a></b>(eventName, data)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.editor</b>(element)
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Represents an editor instance.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{<a href="../symbols/CKEDITOR.dom.element.html#constructor">CKEDITOR.dom.element</a>}</span>  <b>element</b>
+								
+							</dt>
+								<dd>The original element replaced by this
+		editor instance.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="fire"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>fire</b>(eventName, data)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>eventName</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>data</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="fireOnce"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>fireOnce</b>(eventName, data)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>eventName</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>data</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.env.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.env.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.env.html	(revision 2083)
@@ -0,0 +1,723 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.env</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Namespace CKEDITOR.env
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+Environment information.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__env.js.html">env.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.env.">
+				<caption>Namespace 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.env.html#constructor">CKEDITOR.env</a></b>
+							</div>
+							<div class="description">Environment information.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class CKEDITOR.env.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.env.<b><a href="../symbols/CKEDITOR.env.html#.air">air</a></b>
+								</div>
+								<div class="description">Indicates that CKEditor is running on Adobe AIR.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.env.<b><a href="../symbols/CKEDITOR.env.html#.gecko">gecko</a></b>
+								</div>
+								<div class="description">Indicates that CKEditor is running on a Gecko based browser, like
+Firefox.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.env.<b><a href="../symbols/CKEDITOR.env.html#.ie">ie</a></b>
+								</div>
+								<div class="description">Indicates that CKEditor is running on Internet Explorer.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.env.<b><a href="../symbols/CKEDITOR.env.html#.isCompatible">isCompatible</a></b>
+								</div>
+								<div class="description">Indicates that CKEditor is running on a compatible browser.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.env.<b><a href="../symbols/CKEDITOR.env.html#.mac">mac</a></b>
+								</div>
+								<div class="description">Indicates that CKEditor is running on Macintosh.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.env.<b><a href="../symbols/CKEDITOR.env.html#.opera">opera</a></b>
+								</div>
+								<div class="description">Indicates that CKEditor is running on Opera.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.env.<b><a href="../symbols/CKEDITOR.env.html#.webkit">webkit</a></b>
+								</div>
+								<div class="description">Indicates that CKEditor is running on a WebKit based browser, like
+Safari.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Namespace Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.env</b>
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Environment information.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name=".air"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{Boolean}</span>
+					<span class="light">CKEDITOR.env.</span><b>air</b>
+					
+					</div>
+					<div class="description">
+						Indicates that CKEditor is running on Adobe AIR.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">if ( CKEDITOR.env.air )
+    alert( "I'm on AIR!" );</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".gecko"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{Boolean}</span>
+					<span class="light">CKEDITOR.env.</span><b>gecko</b>
+					
+					</div>
+					<div class="description">
+						Indicates that CKEditor is running on a Gecko based browser, like
+Firefox.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">if ( CKEDITOR.env.gecko )
+    alert( "I'm riding a gecko!" );</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".ie"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{Boolean}</span>
+					<span class="light">CKEDITOR.env.</span><b>ie</b>
+					
+					</div>
+					<div class="description">
+						Indicates that CKEditor is running on Internet Explorer.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">if ( CKEDITOR.env.ie )
+    alert( "I'm on IE!" );</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".isCompatible"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{Boolean}</span>
+					<span class="light">CKEDITOR.env.</span><b>isCompatible</b>
+					
+					</div>
+					<div class="description">
+						Indicates that CKEditor is running on a compatible browser.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">if ( CKEDITOR.env.isCompatible )
+    alert( "Your browser is pretty cool!" );</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".mac"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{Boolean}</span>
+					<span class="light">CKEDITOR.env.</span><b>mac</b>
+					
+					</div>
+					<div class="description">
+						Indicates that CKEditor is running on Macintosh.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">if ( CKEDITOR.env.mac )
+    alert( "I love apples!" );</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".opera"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{Boolean}</span>
+					<span class="light">CKEDITOR.env.</span><b>opera</b>
+					
+					</div>
+					<div class="description">
+						Indicates that CKEditor is running on Opera.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">if ( CKEDITOR.env.opera )
+    alert( "I'm on Opera!" );</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".webkit"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{Boolean}</span>
+					<span class="light">CKEDITOR.env.</span><b>webkit</b>
+					
+					</div>
+					<div class="description">
+						Indicates that CKEditor is running on a WebKit based browser, like
+Safari.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">if ( CKEDITOR.env.webkit )
+    alert( "I'm on WebKit!" );</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.event.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.event.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.event.html	(revision 2083)
@@ -0,0 +1,755 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.event</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class CKEDITOR.event
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__event.js.html">event.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.event.">
+				<caption>Class 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a></b>()
+							</div>
+							<div class="description">This is a base class for classes and objects that require event handling
+features.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.event.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.event.html#fire">fire</a></b>(eventName, data, editor)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.event.html#fireOnce">fireOnce</a></b>(eventName, data, editor)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.event.<b><a href="../symbols/CKEDITOR.event.html#.implementOn">implementOn</a></b>(targetObject)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.event.html#on">on</a></b>(eventName, listenerFunction, scopeObj, listenerData, priority)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.event.html#removeListener">removeListener</a></b>(eventName, listenerFunction)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.event</b>()
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					This is a base class for classes and objects that require event handling
+features.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="fire"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>fire</b>(eventName, data, editor)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>eventName</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>data</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>editor</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="fireOnce"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>fireOnce</b>(eventName, data, editor)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>eventName</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>data</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>editor</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".implementOn"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">CKEDITOR.event.</span><b>implementOn</b>(targetObject)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>targetObject</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="on"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>on</b>(eventName, listenerFunction, scopeObj, listenerData, priority)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>eventName</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>listenerFunction</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>scopeObj</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>listenerData</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>priority</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="removeListener"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>removeListener</b>(eventName, listenerFunction)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>eventName</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>listenerFunction</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.eventInfo.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.eventInfo.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.eventInfo.html	(revision 2083)
@@ -0,0 +1,744 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.eventInfo</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class CKEDITOR.eventInfo
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__event.js.html">event.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.eventInfo.">
+				<caption>Class 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.eventInfo.html#constructor">CKEDITOR.eventInfo</a></b>()
+							</div>
+							<div class="description">This class is not really part of the API.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class CKEDITOR.eventInfo.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.eventInfo.html#data">data</a></b>
+								</div>
+								<div class="description">Any kind of additional data.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.eventInfo.html#editor">editor</a></b>
+								</div>
+								<div class="description">The editor instance that holds the sender.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.eventInfo.html#listenerData">listenerData</a></b>
+								</div>
+								<div class="description">Any extra data appended during the listener registration.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.eventInfo.html#name">name</a></b>
+								</div>
+								<div class="description">The event name.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.eventInfo.html#sender">sender</a></b>
+								</div>
+								<div class="description">The object that publishes (sends) the event.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.eventInfo.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.eventInfo.html#cancel">cancel</a></b>()
+								</div>
+								<div class="description">Indicates that the event is to be cancelled (if cancelable).</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.eventInfo.html#stop">stop</a></b>()
+								</div>
+								<div class="description">Indicates that no further listeners are to be called.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.eventInfo</b>()
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					This class is not really part of the API. It just illustrates the features
+of the event object passed to event listeners by a <a href="../symbols/CKEDITOR.event.html#constructor">CKEDITOR.event</a>
+based object.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="data"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{Object}</span>
+					<b>data</b>
+					
+					</div>
+					<div class="description">
+						Any kind of additional data. Its format and usage is event dependent.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="editor"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{<a href="../symbols/CKEDITOR.editor.html#constructor">CKEDITOR.editor</a>}</span>
+					<b>editor</b>
+					
+					</div>
+					<div class="description">
+						The editor instance that holds the sender. May be the same as sender. May be
+null if the sender is not part of an editor instance, like a component
+running in standalone mode.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="listenerData"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{Object}</span>
+					<b>listenerData</b>
+					
+					</div>
+					<div class="description">
+						Any extra data appended during the listener registration.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="name"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{String}</span>
+					<b>name</b>
+					
+					</div>
+					<div class="description">
+						The event name.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="sender"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{Object}</span>
+					<b>sender</b>
+					
+					</div>
+					<div class="description">
+						The object that publishes (sends) the event.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="cancel"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>cancel</b>()
+					
+					</div>
+					<div class="description">
+						Indicates that the event is to be cancelled (if cancelable).
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name="stop"> </a>
+					<div class="fixedFont">
+					
+					
+					<b>stop</b>()
+					
+					</div>
+					<div class="description">
+						Indicates that no further listeners are to be called.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.html	(revision 2083)
@@ -0,0 +1,911 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Namespace CKEDITOR
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+This is the API entry point. The entire CKEditor code runs under this object.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__ckeditor_base.js.html">ckeditor_base.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.">
+				<caption>Namespace 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.html#constructor">CKEDITOR</a></b>
+							</div>
+							<div class="description">This is the API entry point.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class CKEDITOR.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.basePath">basePath</a></b>
+								</div>
+								<div class="description">Contains the full URL for the CKEditor installation directory.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.replaceByClassEnabled">replaceByClassEnabled</a></b>
+								</div>
+								<div class="description">Indicates that CKEditor will attempty to replace all textareas with
+class name matching <a href="../symbols/CKEDITOR.html#.replaceClass">CKEDITOR.replaceClass</a>.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.replaceClass">replaceClass</a></b>
+								</div>
+								<div class="description">The class name used to identify &lt;textarea&gt; elements to be replace
+by CKEditor instances.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.status">status</a></b>
+								</div>
+								<div class="description">Indicates the API loading status:
+		<ul>
+			<li><b>unloaded</b>: the API is not yet loaded.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.appendTo">appendTo</a></b>(element, config)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.create">create</a></b>(instanceName, config)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.replace">replace</a></b>(elementOrIdOrName, config)
+								</div>
+								<div class="description">Replaces a specific &lt;textarea&gt; with a CKEditor instance.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.<b><a href="../symbols/CKEDITOR.html#.replaceAll">replaceAll</a></b>()
+								</div>
+								<div class="description">Replace all &lt;textarea&gt; elements available in the document with
+editor instances.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Namespace Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR</b>
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					This is the API entry point. The entire CKEditor code runs under this object.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name=".basePath"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{string}</span>
+					<span class="light">CKEDITOR.</span><b>basePath</b>
+					
+					</div>
+					<div class="description">
+						Contains the full URL for the CKEditor installation directory.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">// Alerts "http://www.example.com/ckeditor/" (e.g.)
+alert( <b>CKEDITOR.basePath</b> );</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".replaceByClassEnabled"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{Boolean}</span>
+					<span class="light">CKEDITOR.</span><b>replaceByClassEnabled</b>
+					
+					</div>
+					<div class="description">
+						Indicates that CKEditor will attempty to replace all textareas with
+class name matching <a href="../symbols/CKEDITOR.html#.replaceClass">CKEDITOR.replaceClass</a>.
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_core__ckeditor_basic.js.html">ckeditor_basic.js</a>.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">// Disable the auto-replace feature.
+CKEDITOR.replaceByClassEnabled = false;</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Default Value:</dt>
+							<dd>
+								true
+							</dd>
+							</dl>
+						
+
+					<hr />
+				
+					<a name=".replaceClass"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{string}</span>
+					<span class="light">CKEDITOR.</span><b>replaceClass</b>
+					
+					</div>
+					<div class="description">
+						The class name used to identify &lt;textarea&gt; elements to be replace
+by CKEditor instances.
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_core__ckeditor_basic.js.html">ckeditor_basic.js</a>.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">CKEDITOR.replaceClass = 'rich_editor';</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Default Value:</dt>
+							<dd>
+								'ckeditor'
+							</dd>
+							</dl>
+						
+
+					<hr />
+				
+					<a name=".status"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{string}</span>
+					<span class="light">CKEDITOR.</span><b>status</b>
+					
+					</div>
+					<div class="description">
+						Indicates the API loading status:
+		<ul>
+			<li><b>unloaded</b>: the API is not yet loaded.</li>
+			<li><b>basic_loaded</b>: the basic API features are available.</li>
+			<li><b>loading</b>: the full API is being loaded.</li>
+			<li><b>ready</b>: the API can be fully used.</li>
+		</ul>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">if ( <b>CKEDITOR.status</b> == 'ready' )
+{
+    // The API can now be fully used.
+}</pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name=".appendTo"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">CKEDITOR.</span><b>appendTo</b>(element, config)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_core__ckeditor_basic.js.html">ckeditor_basic.js</a>.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>element</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>config</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".create"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">CKEDITOR.</span><b>create</b>(instanceName, config)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_core__ckeditor_basic.js.html">ckeditor_basic.js</a>.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>instanceName</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>config</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".replace"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{undefined}</span>
+					<span class="light">CKEDITOR.</span><b>replace</b>(elementOrIdOrName, config)
+					
+					</div>
+					<div class="description">
+						Replaces a specific &lt;textarea&gt; with a CKEditor instance.
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_core__ckeditor_basic.js.html">ckeditor_basic.js</a>.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">&lt;textarea id="myfield" name="myfield"&gt;&lt:/textarea&gt;
+...
+<b>CKEDITOR.replace( 'myfield' )</b>;</pre>
+					
+					<pre class="code">var textarea = document.body.appendChild( document.createElement( 'textarea' ) );
+<b>CKEDITOR.replace( textarea )</b>;</pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{object|string}</span> <b>elementOrIdOrName</b>
+									
+								</dt>
+								<dd>The DOM element (textarea), its
+		ID or name.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>config</b>
+									<i>Optional</i>
+								</dt>
+								<dd>The specific configurations to apply to this
+		editor instance. Configurations set here will override global CKEditor
+		settings.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".replaceAll"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{undefined}</span>
+					<span class="light">CKEDITOR.</span><b>replaceAll</b>()
+					
+					</div>
+					<div class="description">
+						Replace all &lt;textarea&gt; elements available in the document with
+editor instances.
+						
+							<br />
+							<i>Defined in: </i> <a href="../symbols/src/_source_core__ckeditor_basic.js.html">ckeditor_basic.js</a>.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">// Replace all &lt;textarea&gt; elements in the page.
+CKEDITOR.replaceAll();</pre>
+					
+					<pre class="code">// Replace all &lt;textarea class="myClassName"&gt; elements in the page.
+CKEDITOR.replaceAll( 'myClassName' );</pre>
+					
+					<pre class="code">// 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.
+    } );</pre>
+					
+					
+					
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.loader.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.loader.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.loader.html	(revision 2083)
@@ -0,0 +1,544 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.loader</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Namespace CKEDITOR.loader
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+Load core scripts and their dependencies from _source.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__loader.js.html">loader.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.loader.">
+				<caption>Namespace 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.loader.html#constructor">CKEDITOR.loader</a></b>
+							</div>
+							<div class="description">Load core scripts and their dependencies from _source.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class CKEDITOR.loader.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								CKEDITOR.loader.<b><a href="../symbols/CKEDITOR.loader.html#.loadedScripts">loadedScripts</a></b>
+								</div>
+								<div class="description">The list of loaded scripts in the loading order.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.loader.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.loader.<b><a href="../symbols/CKEDITOR.loader.html#.load">load</a></b>(scriptName)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Namespace Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.loader</b>
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Load core scripts and their dependencies from _source.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name=".loadedScripts"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{Array}</span>
+					<span class="light">CKEDITOR.loader.</span><b>loadedScripts</b>
+					
+					</div>
+					<div class="description">
+						The list of loaded scripts in the loading order.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name=".load"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">CKEDITOR.loader.</span><b>load</b>(scriptName)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>scriptName</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.scriptLoader.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.scriptLoader.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.scriptLoader.html	(revision 2083)
@@ -0,0 +1,553 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.scriptLoader</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Namespace CKEDITOR.scriptLoader
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+Load scripts asynchronously.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__scriptloader.js.html">scriptloader.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.scriptLoader.">
+				<caption>Namespace 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.scriptLoader.html#constructor">CKEDITOR.scriptLoader</a></b>
+							</div>
+							<div class="description">Load scripts asynchronously.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.scriptLoader.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.scriptLoader.<b><a href="../symbols/CKEDITOR.scriptLoader.html#.load">load</a></b>(scriptUrl, callback, scope, noCheck)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.scriptLoader.<b><a href="../symbols/CKEDITOR.scriptLoader.html#.loadCode">loadCode</a></b>(code)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Namespace Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.scriptLoader</b>
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Load scripts asynchronously.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name=".load"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">CKEDITOR.scriptLoader.</span><b>load</b>(scriptUrl, callback, scope, noCheck)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>scriptUrl</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>scope</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>noCheck</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".loadCode"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">CKEDITOR.scriptLoader.</span><b>loadCode</b>(code)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>code</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.assert.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.assert.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.assert.html	(revision 2083)
@@ -0,0 +1,404 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.test.assert</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Namespace CKEDITOR.test.assert
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+The assertion namespace, containing all assertion functions. Currently,
+this is an alias for YAHOO.util.Assert.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__test.js.html">test.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.test.assert.">
+				<caption>Namespace 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.test.assert.html#constructor">CKEDITOR.test.assert</a></b>
+							</div>
+							<div class="description">The assertion namespace, containing all assertion functions.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Namespace Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.test.assert</b>
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					The assertion namespace, containing all assertion functions. Currently,
+this is an alias for YAHOO.util.Assert.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.test.html	(revision 2083)
@@ -0,0 +1,488 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.test</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Namespace CKEDITOR.test
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+Contains functions used at our testing environment. Currently,
+our testing system is based on the YUI Test Project.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__test.js.html">test.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.test.">
+				<caption>Namespace 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.test.html#constructor">CKEDITOR.test</a></b>
+							</div>
+							<div class="description">Contains functions used at our testing environment.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.test.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.test.<b><a href="../symbols/CKEDITOR.test.html#.addTestCase">addTestCase</a></b>(testCase)
+								</div>
+								<div class="description">Adds a test case to the test runner.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Namespace Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.test</b>
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Contains functions used at our testing environment. Currently,
+our testing system is based on the YUI Test Project.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name=".addTestCase"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">CKEDITOR.test.</span><b>addTestCase</b>(testCase)
+					
+					</div>
+					<div class="description">
+						Adds a test case to the test runner.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>testCase</b>
+									
+								</dt>
+								<dd>The test case object. See other tests for
+		examples.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.tools.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.tools.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.tools.html	(revision 2083)
@@ -0,0 +1,654 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.tools</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Namespace CKEDITOR.tools
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+Utility functions.
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__tools.js.html">tools.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.tools.">
+				<caption>Namespace 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.tools.html#constructor">CKEDITOR.tools</a></b>
+							</div>
+							<div class="description">Utility functions.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.tools.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.tools.<b><a href="../symbols/CKEDITOR.tools.html#.each">each</a></b>(object, callback, scope)
+								</div>
+								<div class="description"><span style="color:red">NO DOCUMENTATION AVAILABLE</span></div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.tools.<b><a href="../symbols/CKEDITOR.tools.html#.extend">extend</a></b>(target, source, overwrite)
+								</div>
+								<div class="description">Copy the properties from one object to another.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&lt;static&gt; &nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">CKEDITOR.tools.<b><a href="../symbols/CKEDITOR.tools.html#.globalEval">globalEval</a></b>(script, win)
+								</div>
+								<div class="description">Evaluates a script in a window (global) scope.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Namespace Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.tools</b>
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Utility functions.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name=".each"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					
+					<span class="light">CKEDITOR.tools.</span><b>each</b>(object, callback, scope)
+					
+					</div>
+					<div class="description">
+						<span style="color:red">NO DOCUMENTATION AVAILABLE</span>
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<b>object</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>callback</b>
+									
+								</dt>
+								<dd></dd>
+							
+								<dt>
+									<b>scope</b>
+									
+								</dt>
+								<dd></dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					<hr />
+				
+					<a name=".extend"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{Object}</span>
+					<span class="light">CKEDITOR.tools.</span><b>extend</b>(target, source, overwrite)
+					
+					</div>
+					<div class="description">
+						Copy the properties from one object to another. By default, properties
+already present in the target object <strong>are not</strong> overwritten.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">// Create the sample object.
+var myObject =
+{
+    prop1 : true
+};
+
+// Extend the above object with two properties.
+CKEDITOR.tools.extend( myObject,
+    {
+        prop2 : true,
+        prop3 : true
+    } );
+
+// Alert "prop1", "prop2" and "prop3".
+for ( var p in myObject )
+    alert( p ) ;</pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>target</b>
+									
+								</dt>
+								<dd>The object to be extended.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>source</b>
+									
+								</dt>
+								<dd>The object from which copy properties.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{Boolean}</span> <b>overwrite</b>
+									<i>Optional</i>
+								</dt>
+								<dd>Indicates that properties already present
+		in the target object must be overwritten.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{Object}</span> the extended object (target).</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name=".globalEval"> </a>
+					<div class="fixedFont">&lt;static&gt; 
+					
+					<span class="light">{undefined}</span>
+					<span class="light">CKEDITOR.tools.</span><b>globalEval</b>(script, win)
+					
+					</div>
+					<div class="description">
+						Evaluates a script in a window (global) scope.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">var script = 'function sample() { alert( "Go!" ); }';
+
+// Evaluates a script in the current window.
+CKEDITOR.tools.globalEval( script );
+
+// Evaluates a script in the parent window.
+CKEDITOR.tools.globalEval( script, window.parent );
+
+// Alerts "Go!" twice.
+window.sample();
+window.parent.sample();</pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>script</b>
+									
+								</dt>
+								<dd>The script code to be evaluated.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>win</b>
+									<i>Optional</i>
+								</dt>
+								<dd>The target window. Defaults to the current window.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.xml.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.xml.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/CKEDITOR.xml.html	(revision 2083)
@@ -0,0 +1,723 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - CKEDITOR.xml</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Class CKEDITOR.xml
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+				
+				
+					<br /><i>Defined in: </i> <a href="../symbols/src/_source_core__xml.js.html">xml.js</a>.
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+			<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class CKEDITOR.xml.">
+				<caption>Class 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">&nbsp;</td>
+						<td class="nameDescription" >
+							<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.xml.html#constructor">CKEDITOR.xml</a></b>(xmlObjectOrData)
+							</div>
+							<div class="description">Represents a loaded XML document.</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class CKEDITOR.xml.">
+					<caption>Field Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Field Attributes</th>
+							<th scope="col">Field Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont">
+								<b><a href="../symbols/CKEDITOR.xml.html#baseXml">baseXml</a></b>
+								</div>
+								<div class="description">The native XML (DOM document) used by the class instance.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+				
+				
+				<table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class CKEDITOR.xml.">
+					<caption>Method Summary</caption>
+					<thead>
+						<tr>
+							<th scope="col">Method Attributes</th>
+							<th scope="col">Method Name and Description</th>
+						</tr>
+					</thead>
+					<tbody>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.xml.html#getOuterXml">getOuterXml</a></b>(xpath, contextNode)
+								</div>
+								<div class="description">Gets the string representation of a XML node, based on a XPath query.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.xml.html#selectNodes">selectNodes</a></b>(xpath, contextNode)
+								</div>
+								<div class="description">Gets a list node from the XML document, based on a XPath query.</div>
+							</td>
+						</tr>
+					
+						<tr>
+							<td class="attributes">&nbsp;</td>
+							<td class="nameDescription">
+								<div class="fixedFont"><b><a href="../symbols/CKEDITOR.xml.html#selectSingleNode">selectSingleNode</a></b>(xpath, contextNode)
+								</div>
+								<div class="description">Get a single node from the XML document, based on a XPath query.</div>
+							</td>
+						</tr>
+					
+					</tbody>
+				</table>
+				
+				
+				
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+			<div class="details"><a name="constructor"> </a>
+				<div class="sectionTitle">
+					Class Detail
+				</div>
+				
+				<div class="fixedFont" style="float:left">
+						<b>CKEDITOR.xml</b>(xmlObjectOrData)
+				</div>
+				
+					
+						<div style="float:right">
+							<span class="heading">Since:</span>
+								3.0
+						</div>
+					
+				<div style="clear:both"></div>
+
+				<div class="description">
+					Represents a loaded XML document.
+					
+				</div>
+
+				
+				
+				
+				
+				
+				
+				
+					
+						<dl class="detailList">
+						<dt class="heading">Parameters:</dt>
+						
+							<dt>
+								<span class="light fixedFont">{object|string}</span>  <b>xmlObjectOrData</b>
+								
+							</dt>
+								<dd>A native XML (DOM document) object or
+		a string containing the XML definition to be loaded.</dd>
+						
+						</dl>
+					
+					
+					
+					
+					
+					
+
+			</div>
+			
+
+<!-- ============================== field details ========================== -->		
+			
+				<div class="sectionTitle">
+					Field Detail
+				</div>
+				
+					<a name="baseXml"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{object}</span>
+					<b>baseXml</b>
+					
+					</div>
+					<div class="description">
+						The native XML (DOM document) used by the class instance.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code"><span style="color:red">NO EXAMPLE AVAILABLE</span></pre>
+					
+					
+
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+						
+						
+						
+
+					
+				
+			
+
+<!-- ============================== method details ========================= -->		
+			
+				<div class="sectionTitle">
+					Method Detail
+				</div>
+				
+					<a name="getOuterXml"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{String}</span>
+					<b>getOuterXml</b>(xpath, contextNode)
+					
+					</div>
+					<div class="description">
+						Gets the string representation of a XML node, based on a XPath query.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">// Create the XML instance.
+var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
+// Alert "<item id="test1" />".
+alert( xml.getOuterXml( 'list/item' ) );</pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>xpath</b>
+									
+								</dt>
+								<dd>The XPath query to execute.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>contextNode</b>
+									<i>Optional</i>
+								</dt>
+								<dd>The XML DOM node to be used as the context
+		for the XPath query. The document root is used by default.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{String}</span> The textual representation of the XML node or null if
+		the query has no results.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="selectNodes"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{Array}</span>
+					<b>selectNodes</b>(xpath, contextNode)
+					
+					</div>
+					<div class="description">
+						Gets a list node from the XML document, based on a XPath query.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">// Create the XML instance.
+var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
+// Get the first <item> node.
+var itemNodes = xml.selectSingleNode( 'list/item' );
+// Alert "item" twice, one for each <item>.
+for ( var i = 0 ; i < itemNodes.length ; i++ )
+    alert( itemNodes[i].nodeName );</pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>xpath</b>
+									
+								</dt>
+								<dd>The XPath query to execute.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>contextNode</b>
+									<i>Optional</i>
+								</dt>
+								<dd>The XML DOM node to be used as the context
+		for the XPath query. The document root is used by default.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{Array}</span> An array containing all matched nodes. The array will
+		be empty if the query has no results.</dd>
+							
+							</dl>
+						
+						
+						
+
+					<hr />
+				
+					<a name="selectSingleNode"> </a>
+					<div class="fixedFont">
+					
+					<span class="light">{Object}</span>
+					<b>selectSingleNode</b>(xpath, contextNode)
+					
+					</div>
+					<div class="description">
+						Get a single node from the XML document, based on a XPath query.
+						
+						
+					</div>
+					
+					
+					
+					<pre class="code">// Create the XML instance.
+var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
+// Get the first <item> node.
+var itemNode = <b>xml.selectSingleNode( 'list/item' )</b>;
+// Alert "item".
+alert( itemNode.nodeName );</pre>
+					
+					
+					
+						
+							<dl class="detailList">
+							<dt class="heading">Parameters:</dt>
+							
+								<dt>
+									<span class="light fixedFont">{String}</span> <b>xpath</b>
+									
+								</dt>
+								<dd>The XPath query to execute.</dd>
+							
+								<dt>
+									<span class="light fixedFont">{Object}</span> <b>contextNode</b>
+									<i>Optional</i>
+								</dt>
+								<dd>The XML DOM node to be used as the context
+		for the XPath query. The document root is used by default.</dd>
+							
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Since:</dt>
+								<dd>3.0</dd>
+							</dl>
+							</dl>
+						
+						
+						
+							<dl class="detailList">
+							<dt class="heading">Returns:</dt>
+							
+								<dd><span class="light fixedFont">{Object}</span> A XML node element or null if the query has no results.</dd>
+							
+							</dl>
+						
+						
+						
+
+					
+				
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/_global_.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/_global_.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/_global_.html	(revision 2083)
@@ -0,0 +1,340 @@
+<!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=utf-8" />
+		<meta name="generator" content="JsDoc Toolkit" />
+		
+		<title>JsDoc Reference - _global_</title>
+
+		<style type="text/css">
+			/* default.css */
+body
+{
+	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+	width: 800px;
+}
+
+.header
+{
+	clear: both;
+	background-color: #ccc;
+	padding: 8px;
+}
+
+h1
+{
+	font-size: 150%;
+	font-weight: bold;
+	padding: 0;
+	margin: 1em 0 0 .3em;
+}
+
+hr
+{
+	border: none 0;
+	border-top: 1px solid #7F8FB1;
+	height: 1px;
+}
+
+pre.code
+{
+	display: block;
+	padding: 8px;
+	border: 1px dashed #ccc;
+}
+
+#index
+{
+	margin-top: 24px;
+	float: left;
+	width: 160px;
+	position: absolute;
+	left: 8px;
+	background-color: #F3F3F3;
+	padding: 8px;
+}
+
+#content
+{
+	margin-left: 190px;
+	width: 600px;
+}
+
+.classList
+{
+	list-style-type: none;
+	padding: 0;
+	margin: 0 0 0 8px;
+	font-family: arial, sans-serif;
+	font-size: 1em;
+	overflow: auto;
+}
+
+.classList li
+{
+	padding: 0;
+	margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+	font-size:170%;
+	line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+	background-color: #7F8FB1;
+	color: #fff;
+	font-size:130%;
+	text-align: left;
+	padding: 2px 6px 2px 6px;
+	border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+	vertical-align: top;
+	padding: 4px;
+	border-bottom: 1px #7F8FB1 solid;
+	border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+	border-left: 1px #7F8FB1 solid;
+	width: 140px;
+	text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+	line-height: 15px;
+	color: #002EBE;
+	font-family: "Courier New",Courier,monospace;
+	font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+	text-align: left;
+	font-size: 13px;
+	line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+	line-height: 15px;
+	padding: 4px;
+	padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+	list-style: square;
+	margin-left: 20px;
+	padding-left: 0;
+}
+
+.detailList {
+	margin-left: 20px; 
+	line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+	font-weight: bold;
+	padding-bottom: 6px;
+	margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+	color: #777;
+	font-style: italic;
+}
+
+.fineprint
+{
+	text-align: right;
+	font-size: 10px;
+}
+		</style>
+	</head>
+
+	<body>
+<!-- ============================== header ================================= -->	
+		<!-- begin static/header.html -->
+		<div id="header">
+</div>
+		<!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+		<div id="index">
+			<!-- begin publish.classesIndex -->
+			<div align="center"><a href="../index.html">Code Index</a>
+| <a href="../files.html">File Index</a></div>
+<hr />
+<h2>Namespaces</h2>
+<ul class="classList">
+	
+	<li><a href="../symbols/_global_.html">_global_</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.html">CKEDITOR</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.ajax.html">CKEDITOR.ajax</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.config.html">CKEDITOR.config</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.dom.html">CKEDITOR.dom</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.env.html">CKEDITOR.env</a></li>
+	
+	
+	
+	
+	
+	<li><a href="../symbols/CKEDITOR.loader.html">CKEDITOR.loader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.scriptLoader.html">CKEDITOR.scriptLoader</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.html">CKEDITOR.test</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.test.assert.html">CKEDITOR.test.assert</a></li>
+	
+	<li><a href="../symbols/CKEDITOR.tools.html">CKEDITOR.tools</a></li>
+	
+	
+	
+</ul>
+<h2>Classes</h2>
+<ul class="classList">
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.dom.element.html">CKEDITOR.dom.element</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.editor.html">CKEDITOR.editor</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.event.html">CKEDITOR.event</a>
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.eventInfo.html">CKEDITOR.eventInfo</a>
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			
+		</li>
+	
+		<li>
+			<a href="../symbols/CKEDITOR.xml.html">CKEDITOR.xml</a>
+		</li>
+	
+</ul>
+<hr />
+			<!-- end publish.classesIndex -->
+		</div>
+		
+		<div id="content">
+<!-- ============================== class title ============================ -->
+			<h1 class="classTitle">
+				
+				Built-In Namespace _global_
+			</h1>
+
+<!-- ============================== class summary ========================== -->			
+			<p class="description">
+				
+			
+				
+				
+				
+			</p>
+
+<!-- ============================== constructor summary ==================== -->			
+			
+
+<!-- ============================== properties summary ===================== -->
+			
+
+<!-- ============================== methods summary ======================== -->
+			
+
+<!-- ============================== constructor details ==================== -->		
+			
+
+<!-- ============================== field details ========================== -->		
+			
+
+<!-- ============================== method details ========================= -->		
+			
+			
+			<hr />
+		</div>
+		
+<!-- ============================== footer ================================= -->
+		<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 Jun 18 2008 00:23:53 GMT+0200 (CEST)
+		</div>
+	</body>
+</html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core___bootstrap.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core___bootstrap.js.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core___bootstrap.js.html	(revision 2083)
@@ -0,0 +1,42 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">	</span><span class="COMM">// Process all pending replacements.</span><span class="WHIT">
+<span class='line'> 25</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="PUNC">;</span><span class="WHIT">
+<span class='line'> 26</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">pending</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="WHIT">		</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.replace._pending</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 29</span> 
+<span class='line'> 30</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.tools.each</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">pending</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'> 31</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="WHIT">				</span><span class="NAME">CKEDITOR.replace</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 33</span> </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'> 34</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ajax.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ajax.js.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ajax.js.html	(revision 2083)
@@ -0,0 +1,162 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/**
+<span class='line'> 23</span>  * Ajax methods for data loading.
+<span class='line'> 24</span>  * @namespace
+<span class='line'> 25</span>  * @example
+<span class='line'> 26</span>  */</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="NAME">CKEDITOR.ajax</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'> 28</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">createXMLHttpRequest</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'> 30</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">		</span><span class="COMM">// In IE, using the native XMLHttpRequest for local files may throw</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="WHIT">		</span><span class="COMM">// "Access is Denied" errors.</span><span class="WHIT">
+<span class='line'> 33</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">CKEDITOR.env.IE</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">location.protocol</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">'file:'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">			</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">XMLHttpRequest</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 35</span> 
+<span class='line'> 36</span> </span><span class="WHIT">		</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ActiveXObject</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'Msxml2.XMLHTTP'</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="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </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">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">ActiveXObject</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'Microsoft.XMLHTTP'</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="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</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">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 41</span> 
+<span class='line'> 42</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">checkStatus</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">xhr</span><span class="WHIT"> </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="COMM">// HTTP Status Codes:</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">		</span><span class="COMM">//	 2xx : Success</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">		</span><span class="COMM">//	 304 : Not Modified</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">		</span><span class="COMM">//	   0 : Returned when running locally (file://)</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">		</span><span class="COMM">//	1223 : IE may change 204 to 1223 (see http://dev.jquery.com/ticket/1450)</span><span class="WHIT">
+<span class='line'> 49</span> 
+<span class='line'> 50</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">xhr.readyState</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">				</span><span class="PUNC">(</span><span class="WHIT">	</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xhr.status</span><span class="WHIT"> </span><span class="PUNC">>=</span><span class="WHIT"> </span><span class="NUMB">200</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">xhr.status</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NUMB">300</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">					</span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">xhr.status</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">304</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">					</span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">xhr.status</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">					</span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">xhr.status</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">1223</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'> 55</span> </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">var</span><span class="WHIT"> </span><span class="NAME">getResponseText</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">xhr</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">checkStatus</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xhr</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">xhr.responseText</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</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="KEYW">var</span><span class="WHIT"> </span><span class="NAME">getResponseXml</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">xhr</span><span class="WHIT"> </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="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">checkStatus</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xhr</span><span class="WHIT"> </span><span class="PUNC">)</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="KEYW">var</span><span class="WHIT"> </span><span class="NAME">xml</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">xhr.responseXML</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.xml</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xml</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">xml.firstChild</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">xml</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">xhr.responseText</span><span class="WHIT"> </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="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="WHIT">	</span><span class="PUNC">}</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="KEYW">var</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">url</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">getResponseFn</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">var</span><span class="WHIT"> </span><span class="NAME">async</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">!</span><span class="NAME">callback</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 77</span> 
+<span class='line'> 78</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">xhr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">createXMLHttpRequest</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="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">xhr</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="KEYW">null</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="NAME">xhr.open</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'GET'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">url</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">async</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">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">async</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">			</span><span class="COMM">// TODO: perform leak checks on this closure.</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">			</span><span class="COMM">/** @ignore */</span><span class="WHIT">
+<span class='line'> 89</span> </span><span class="WHIT">			</span><span class="NAME">xhr.onreadystatechange</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'> 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">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xhr.readyState</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">4</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="NAME">callback</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">getResponseFn</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xhr</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'> 94</span> </span><span class="WHIT">					</span><span class="NAME">xhr</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'> 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="PUNC">}</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 class='line'> 99</span> </span><span class="WHIT">		</span><span class="NAME">xhr.send</span><span class="PUNC">(</span><span class="KEYW">null</span><span class="PUNC">)</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="KEYW">return</span><span class="WHIT"> </span><span class="NAME">async</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="WHIT"> </span><span class="NAME">getResponseFn</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xhr</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="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">return</span><span class="WHIT"> 	</span><span class="COMM">/** @lends CKEDITOR.ajax */</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'>106</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'>107</span> 		 * Loads data from an URL as plain text.
+<span class='line'>108</span> 		 * @param {String} url The URL from which load data.
+<span class='line'>109</span> 		 * @param {Function} [callback] A callback function to be called on
+<span class='line'>110</span> 		 *		data load. If not provided, the data will be loaded
+<span class='line'>111</span> 		 *		asynchronously, passing the data value the function on load.
+<span class='line'>112</span> 		 * @returns {String} The loaded data. For asynchronous requests, an
+<span class='line'>113</span> 		 *		empty string. For invalid requests, null.
+<span class='line'>114</span> 		 * @example
+<span class='line'>115</span> 		 * // Load data synchronously.
+<span class='line'>116</span> 		 * var data = CKEDITOR.ajax.load( 'somedata.txt' );
+<span class='line'>117</span> 		 * alert( data );
+<span class='line'>118</span> 		 * @example
+<span class='line'>119</span> 		 * // Load data asynchronously.
+<span class='line'>120</span> 		 * var data = CKEDITOR.ajax.load( 'somedata.txt', function( data )
+<span class='line'>121</span> 		 *     {
+<span class='line'>122</span> 		 *         alert( data );
+<span class='line'>123</span> 		 *     } );
+<span class='line'>124</span> 		 */</span><span class="WHIT">
+<span class='line'>125</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">url</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'>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">load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">url</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">getResponseText</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="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> 		 * Loads data from an URL as XML.
+<span class='line'>132</span> 		 * @param {String} url The URL from which load data.
+<span class='line'>133</span> 		 * @param {Function} [callback] A callback function to be called on
+<span class='line'>134</span> 		 *		data load. If not provided, the data will be loaded
+<span class='line'>135</span> 		 *		asynchronously, passing the data value the function on load.
+<span class='line'>136</span> 		 * @returns {CKEDITOR.xml} An XML object holding the loaded data. For asynchronous requests, an
+<span class='line'>137</span> 		 *		empty string. For invalid requests, null.
+<span class='line'>138</span> 		 * @example
+<span class='line'>139</span> 		 * // Load XML synchronously.
+<span class='line'>140</span> 		 * var xml = CKEDITOR.ajax.loadXml( 'somedata.xml' );
+<span class='line'>141</span> 		 * alert( xml.getOuterXml() );
+<span class='line'>142</span> 		 * @example
+<span class='line'>143</span> 		 * // Load XML asynchronously.
+<span class='line'>144</span> 		 * var data = CKEDITOR.ajax.loadXml( 'somedata.xml', function( xml )
+<span class='line'>145</span> 		 *     {
+<span class='line'>146</span> 		 *         alert( xml.getOuterXml() );
+<span class='line'>147</span> 		 *     } );
+<span class='line'>148</span> 		 */</span><span class="WHIT">
+<span class='line'>149</span> </span><span class="WHIT">		</span><span class="NAME">loadXml</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">url</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'>150</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>151</span> </span><span class="WHIT">			</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">url</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">getResponseXml</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>152</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>153</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>154</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'>155</span> </span></pre></body></html>
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 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor.js.html	(revision 2083)
@@ -0,0 +1,128 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="NAME">CKEDITOR.instances</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'> 23</span> 
+<span class='line'> 24</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="WHIT">	</span><span class="COMM">// These function loads custom configuration files and cache the</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="WHIT">	</span><span class="COMM">// CKEDITOR.editorConfig functions defined on them, so there is no need to</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="WHIT">	</span><span class="COMM">// download them more than once for several instances.</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">loadConfigLoaded</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'> 30</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">loadConfig</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="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">customConfig</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">editor.config.customConfig</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 33</span> 
+<span class='line'> 34</span> </span><span class="WHIT">		</span><span class="COMM">// Check if there is a custom config to load.</span><span class="WHIT">
+<span class='line'> 35</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">customConfig</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">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 37</span> 
+<span class='line'> 38</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">loadedConfig</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">loadConfigLoaded</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">customConfig</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">loadConfigLoaded</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">customConfig</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">editors</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="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">		</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">		</span><span class="COMM">// If the custom config has already been downloaded, reuse it.</span><span class="WHIT">
+<span class='line'> 41</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">loadedConfig.fn</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">			</span><span class="COMM">// Call the cached CKEDITOR.editorConfig defined in the custom</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">			</span><span class="COMM">// config file for the editor instance depending on it.</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">			</span><span class="NAME">loadedConfig.fn.call</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">editor</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 46</span> 
+<span class='line'> 47</span> </span><span class="WHIT">			</span><span class="COMM">// If there is no other customConfig in the chain, fire the</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">			</span><span class="COMM">// "configloaded" event.</span><span class="WHIT">
+<span class='line'> 49</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">editor.config.customConfig</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">customConfig</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">loadConfig</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><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">				</span><span class="NAME">editor.fireOnce</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'configloaded'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">		</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">			</span><span class="COMM">// Add the editor to the list of editors waiting for this config.</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">			</span><span class="NAME">loadedConfig.editors.push</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><span class="WHIT">
+<span class='line'> 56</span> 
+<span class='line'> 57</span> </span><span class="WHIT">			</span><span class="COMM">// Load the custom configuration file.</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">			</span><span class="NAME">CKEDITOR.scriptLoader.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">customConfig</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'> 59</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">					</span><span class="COMM">// If the CKEDITOR.editorConfig function has been properly</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">					</span><span class="COMM">// defined in the custom configuration file, cache it.</span><span class="WHIT">
+<span class='line'> 62</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.editorConfig</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">						</span><span class="NAME">loadedConfig.fn</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.editorConfig</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">					</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">						</span><span class="NAME">loadedConfig.fn</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="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 66</span> 
+<span class='line'> 67</span> </span><span class="WHIT">					</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.editorConfig</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 68</span> 
+<span class='line'> 69</span> </span><span class="WHIT">					</span><span class="NAME">CKEDITOR.tools.each</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">loadedConfig.editors</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="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">						</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">							</span><span class="COMM">// Call the load config again. This time the custom</span><span class="WHIT">
+<span class='line'> 72</span> </span><span class="WHIT">							</span><span class="COMM">// config is already cached and so it will get loaded.</span><span class="WHIT">
+<span class='line'> 73</span> </span><span class="WHIT">							</span><span class="NAME">loadConfig</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'> 74</span> </span><span class="WHIT">						</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">					</span><span class="WHIT">
+<span class='line'> 76</span> </span><span class="WHIT">					</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">loadedConfig.editors</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><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 78</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">		</span><span class="WHIT">
+<span class='line'> 80</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'> 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">// Overwrite the basic _replaceElement implementation with the definitive one.</span><span class="WHIT">
+<span class='line'> 84</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'> 85</span> </span><span class="WHIT">	</span><span class="PUNC">{</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">textarea</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="NAME">textarea</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="NAME">textarea.hide</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">// Create the editor instance.</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">editor</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.editor</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">textarea</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.instances</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">editor.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">editor</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 92</span> </span><span class="WHIT">		</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">		</span><span class="COMM">// Setup the lister for the "configloaded" event.</span><span class="WHIT">
+<span class='line'> 94</span> </span><span class="WHIT">		</span><span class="NAME">editor.on</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'configloaded'</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'> 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="COMM">// Overwrite the settings from the in-page config.</span><span class="WHIT">
+<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="NAME">config</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">					</span><span class="NAME">CKEDITOR.tools.extend</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">editor.config</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">config</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT"> </span><span class="PUNC">)</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">// Fire the "instancecreated" event.</span><span class="WHIT">
+<span class='line'>101</span> </span><span class="WHIT">				</span><span class="NAME">CKEDITOR.fire</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'instancecreated'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">editor.name</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><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">			</span><span class="PUNC">}</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="COMM">// The instance config may override the customConfig setting to avoid</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">		</span><span class="COMM">// loading the default ~/config.js file.</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">config</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">config.customConfig</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'>107</span> </span><span class="WHIT">			</span><span class="NAME">editor.config.customConfig</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">config.customConfig</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">// Load configs from the custom configuration files.</span><span class="WHIT">
+<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">loadConfig</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><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">			</span><span class="NAME">editor.fireOnce</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'configloaded'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>113</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'>114</span> 
+<span class='line'>115</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'>116</span> </span><span class="COMM">// been created, and the rest is getting loaded.</span><span class="WHIT">
+<span class='line'>117</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'>118</span> 
+<span class='line'>119</span> </span><span class="COMM">// Load the bootstrap script.</span><span class="WHIT">
+<span class='line'>120</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'>121</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 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor_base.js.html	(revision 2083)
@@ -0,0 +1,111 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">// #### Compressed Code</span><span class="WHIT">
+<span class='line'> 23</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'> 24</span> </span><span class="COMM">// ckeditor.js and ckeditor_basic.js files.</span><span class="WHIT">
+<span class='line'> 25</span> 
+<span class='line'> 26</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'> 27</span> 
+<span class='line'> 28</span> </span><span class="COMM">// #### Raw code</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="COMM">// ATTENTION: read the above "Compressed Code" notes when changing this code.</span><span class="WHIT">
+<span class='line'> 30</span> 
+<span class='line'> 31</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">window.CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 34</span> 	 * This is the API entry point. The entire CKEditor code runs under this object.
+<span class='line'> 35</span> 	 * @name CKEDITOR
+<span class='line'> 36</span> 	 * @namespace
+<span class='line'> 37</span> 	 * @example
+<span class='line'> 38</span> 	 */</span><span class="WHIT">
+<span class='line'> 39</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'> 40</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">		</span><span class="COMM">/** @lends CKEDITOR */</span><span class="WHIT">
+<span class='line'> 42</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'> 43</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 44</span> 			 * Indicates the API loading status:
+<span class='line'> 45</span> 			 *		&lt;ul>
+<span class='line'> 46</span> 			 *			&lt;li>&lt;b>unloaded&lt;/b>: the API is not yet loaded.&lt;/li>
+<span class='line'> 47</span> 			 *			&lt;li>&lt;b>basic_loaded&lt;/b>: the basic API features are available.&lt;/li>
+<span class='line'> 48</span> 			 *			&lt;li>&lt;b>loading&lt;/b>: the full API is being loaded.&lt;/li>
+<span class='line'> 49</span> 			 *			&lt;li>&lt;b>ready&lt;/b>: the API can be fully used.&lt;/li>
+<span class='line'> 50</span> 			 *		&lt;/ul>
+<span class='line'> 51</span> 			 * @type string
+<span class='line'> 52</span> 			 * @example
+<span class='line'> 53</span> 			 * if ( &lt;b>CKEDITOR.status&lt;/b> == 'ready' )
+<span class='line'> 54</span> 			 * {
+<span class='line'> 55</span> 			 *     // The API can now be fully used.
+<span class='line'> 56</span> 			 * }
+<span class='line'> 57</span> 			 */</span><span class="WHIT">
+<span class='line'> 58</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'> 59</span> 
+<span class='line'> 60</span> </span><span class="WHIT">			</span><span class="COMM">/**
+<span class='line'> 61</span> 			 * Contains the full URL for the CKEditor installation directory.
+<span class='line'> 62</span> 			 * @type string
+<span class='line'> 63</span> 			 * @example
+<span class='line'> 64</span> 			 * // Alerts "http://www.example.com/ckeditor/" (e.g.)
+<span class='line'> 65</span> 			 * alert( &lt;b>CKEDITOR.basePath&lt;/b> );
+<span class='line'> 66</span> 			 */</span><span class="WHIT">
+<span class='line'> 67</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'> 68</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 69</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'> 70</span> </span><span class="WHIT">				</span><span class="COMM">// loader.basePath (core/loader.js).</span><span class="WHIT">
+<span class='line'> 71</span> </span><span class="WHIT">			</span><span class="WHIT">
+<span class='line'> 72</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'> 73</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'> 74</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'> 75</span> 
+<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="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'> 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">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'> 79</span> 
+<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">match</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="WHIT">
+<span class='line'> 82</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'> 83</span> </span><span class="WHIT">						</span><span class="KEYW">break</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="WHIT">
+<span class='line'> 86</span> 
+<span class='line'> 87</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'> 88</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'> 89</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'> 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="COMM">// Absolute path.</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">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'> 93</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'> 94</span> </span><span class="WHIT">					</span><span class="COMM">// Relative path.</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">					</span><span class="KEYW">else</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">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'> 97</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 98</span> 
+<span class='line'> 99</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'>100</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'>101</span> </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="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>103</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>104</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 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__ckeditor_basic.js.html	(revision 2083)
@@ -0,0 +1,195 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</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'> 23</span> 
+<span class='line'> 24</span> </span><span class="COMM">/** 
+<span class='line'> 25</span>  * The class name used to identify &lt;textarea&gt; elements to be replace
+<span class='line'> 26</span>  * by CKEditor instances.
+<span class='line'> 27</span>  * @type string
+<span class='line'> 28</span>  * @default 'ckeditor'
+<span class='line'> 29</span>  * @example
+<span class='line'> 30</span>  * CKEDITOR.replaceClass = 'rich_editor';
+<span class='line'> 31</span>  */</span><span class="WHIT">
+<span class='line'> 32</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'> 33</span> 
+<span class='line'> 34</span> </span><span class="COMM">/**
+<span class='line'> 35</span>  * Indicates that CKEditor will attempty to replace all textareas with
+<span class='line'> 36</span>  * class name matching {@link CKEDITOR.replaceClass}.
+<span class='line'> 37</span>  * @type Boolean
+<span class='line'> 38</span>  * @default true
+<span class='line'> 39</span>  * @example
+<span class='line'> 40</span>  * // Disable the auto-replace feature.
+<span class='line'> 41</span>  * CKEDITOR.replaceByClassEnabled = false;
+<span class='line'> 42</span>  */</span><span class="WHIT">
+<span class='line'> 43</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'> 44</span> 
+<span class='line'> 45</span> </span><span class="COMM">/** 
+<span class='line'> 46</span>  * Replaces a specific &lt;textarea&gt; with a CKEditor instance.
+<span class='line'> 47</span>  * @param {object|string} elementOrIdOrName The DOM element (textarea), its
+<span class='line'> 48</span>  *		ID or name.
+<span class='line'> 49</span>  * @param {Object} [config] The specific configurations to apply to this
+<span class='line'> 50</span>  *		editor instance. Configurations set here will override global CKEditor
+<span class='line'> 51</span>  *		settings.
+<span class='line'> 52</span>  * @type undefined
+<span class='line'> 53</span>  * @example
+<span class='line'> 54</span>  * &lt;textarea id="myfield" name="myfield"&gt;&lt:/textarea&gt;
+<span class='line'> 55</span>  * ...
+<span class='line'> 56</span>  * &lt;b>CKEDITOR.replace( 'myfield' )&lt;/b>;
+<span class='line'> 57</span>  * @example
+<span class='line'> 58</span>  * var textarea = document.body.appendChild( document.createElement( 'textarea' ) );
+<span class='line'> 59</span>  * &lt;b>CKEDITOR.replace( textarea )&lt;/b>;
+<span class='line'> 60</span>  */</span><span class="WHIT">
+<span class='line'> 61</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'> 62</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 63</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'> 64</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 65</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'> 66</span> 
+<span class='line'> 67</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'> 68</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 69</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'> 70</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'> 71</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'> 72</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'> 73</span> 
+<span class='line'> 74</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'> 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">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'> 77</span> </span><span class="WHIT">					</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 78</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'> 79</span> </span><span class="WHIT">			</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="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'> 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="NAME">alert</span><span class="PUNC">(</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="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 84</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 86</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 87</span> </span><span class="WHIT">		</span><span class="WHIT">
+<span class='line'> 88</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'> 89</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</span> 
+<span class='line'> 92</span> </span><span class="COMM">// This function will be overwritten by the fill core code implementation.</span><span class="WHIT">
+<span class='line'> 93</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'> 94</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 95</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'> 96</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'> 97</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'> 98</span> 
+<span class='line'> 99</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'>100</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'>101</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'>102</span> </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="COMM">/**
+<span class='line'>105</span>  * Replace all &lt;textarea&gt; elements available in the document with
+<span class='line'>106</span>  * editor instances.
+<span class='line'>107</span>  * @type undefined
+<span class='line'>108</span>  * @example
+<span class='line'>109</span>  * // Replace all &lt;textarea&gt; elements in the page.
+<span class='line'>110</span>  * CKEDITOR.replaceAll();
+<span class='line'>111</span>  * @example
+<span class='line'>112</span>  * // Replace all &lt;textarea class="myClassName"&gt; elements in the page.
+<span class='line'>113</span>  * CKEDITOR.replaceAll( 'myClassName' );
+<span class='line'>114</span>  * @example
+<span class='line'>115</span>  * // Selectively replace &lt;textarea&gt; elements, based on custom assertions.
+<span class='line'>116</span>  * CKEDITOR.replaceAll( function( textarea, config )
+<span class='line'>117</span>  *     {
+<span class='line'>118</span>  *         // Custom code to evaluate the replace, returning false
+<span class='line'>119</span>  *         // if it must not be done.
+<span class='line'>120</span>  *         // It also passes the "config" parameter, so the
+<span class='line'>121</span>  *         // developer can customize the instance.
+<span class='line'>122</span>  *     } );
+<span class='line'>123</span>  */</span><span class="WHIT">
+<span class='line'>124</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'>125</span> </span><span class="PUNC">{</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">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'>127</span> 
+<span class='line'>128</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'>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">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'>131</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'>132</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'>133</span> 
+<span class='line'>134</span> </span><span class="WHIT">		</span><span class="COMM">// The "name" attribute must exist.</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">name</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">name.length</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'>136</span> </span><span class="WHIT">			</span><span class="KEYW">continue</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="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'>139</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>140</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'>141</span> </span><span class="WHIT">			</span><span class="COMM">// parameter.</span><span class="WHIT">
+<span class='line'>142</span> 
+<span class='line'>143</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'>144</span> 
+<span class='line'>145</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'>146</span> </span><span class="WHIT">				</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>147</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>148</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'>149</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>150</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'>151</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'>152</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'>153</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'>154</span> </span><span class="WHIT">				</span><span class="KEYW">continue</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>156</span> 
+<span class='line'>157</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'>158</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>159</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>160</span> 
+<span class='line'>161</span> </span><span class="NAME">CKEDITOR.create</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">instanceName</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'>162</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>164</span> 
+<span class='line'>165</span> </span><span class="NAME">CKEDITOR.appendTo</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">element</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'>166</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'>169</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'>170</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>171</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'>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="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'>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="COMM">// Replace all textareas with the default class name.</span><span class="WHIT">
+<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="NAME">CKEDITOR.replaceByClassEnabled</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>177</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'>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="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'>181</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'>182</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'>183</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'>184</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'>185</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>186</span> 
+<span class='line'>187</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'>188</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__config.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__config.js.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__config.js.html	(revision 2083)
@@ -0,0 +1,54 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/**
+<span class='line'> 23</span>  * Holds the default configuration settings.
+<span class='line'> 24</span>  * @namespace
+<span class='line'> 25</span>  * @example
+<span class='line'> 26</span>  */</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="NAME">CKEDITOR.config</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="NAME">customConfig</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">'config.js'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 30</span> 
+<span class='line'> 31</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 32</span> 	 * The base href URL used to resolve relative and absolute URLs in the
+<span class='line'> 33</span> 	 * editor content.
+<span class='line'> 34</span> 	 * @type String
+<span class='line'> 35</span> 	 * @default '' (empty string)
+<span class='line'> 36</span> 	 * @example
+<span class='line'> 37</span> 	 * config.baseHref = 'http://www.example.com/path/';
+<span class='line'> 38</span> 	 */</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">	</span><span class="NAME">baseHref</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'> 40</span> 
+<span class='line'> 41</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 42</span> 	 * The theme to be used to build the UI.
+<span class='line'> 43</span> 	 * @type String
+<span class='line'> 44</span> 	 * @default 'default'
+<span class='line'> 45</span> 	 */</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">	</span><span class="NAME">theme</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">'default'</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="PUNC">}</span><span class="PUNC">;</span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom.js.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom.js.html	(revision 2083)
@@ -0,0 +1,36 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="COMM">/**
+<span class='line'> 23</span>  * DOM manipulation objects and function.
+<span class='line'> 24</span>  * @namespace
+<span class='line'> 25</span>  * @example
+<span class='line'> 26</span>  */</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="NAME">CKEDITOR.dom</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 29</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_element.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_element.js.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__dom_element.js.html	(revision 2083)
@@ -0,0 +1,139 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/**
+<span class='line'> 23</span>  * Represents a DOM element.
+<span class='line'> 24</span>  * @constructor
+<span class='line'> 25</span>  * @param {Object|String} element A native DOM element or the element name for new elements.
+<span class='line'> 26</span>  */</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="NAME">CKEDITOR.dom.element</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">element</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="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">element</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'> 30</span> </span><span class="WHIT">		</span><span class="NAME">element</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="NAME">element</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> 	 * The native DOM element represented by this class instance.
+<span class='line'> 34</span> 	 * @type Object
+<span class='line'> 35</span> 	 */</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">	</span><span class="NAME">this.$</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> 
+<span class='line'> 39</span> </span><span class="NAME">CKEDITOR.dom.element.getHead</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'> 40</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">head</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">'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="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">	</span><span class="KEYW">return</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="NAME">head</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 44</span> 
+<span class='line'> 45</span> </span><span class="NAME">CKEDITOR.dom.element.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">	</span><span class="NAME">append</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">node</span><span class="WHIT"> </span><span class="PUNC">)</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="NAME">this.$.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node.$</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 51</span> 
+<span class='line'> 52</span> </span><span class="WHIT">	</span><span class="NAME">appendTo</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">element</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">		</span><span class="NAME">element.append</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 55</span> </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="WHIT">
+<span class='line'> 57</span> </span><span class="WHIT">	</span><span class="NAME">appendText</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">text</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="NAME">this.$.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">document.createTextNode</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">text</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 class='line'> 62</span> </span><span class="WHIT">	</span><span class="NAME">setText</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">text</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">		</span><span class="NAME">this.$.text</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">text</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 66</span> 
+<span class='line'> 67</span> </span><span class="WHIT">	</span><span class="NAME">getId</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'> 68</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">		</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$.id</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 70</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">id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">id.length</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="PUNC">?</span><span class="WHIT"> </span><span class="NAME">id</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'> 71</span> </span><span class="WHIT">	</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> 	 * The value of the "name" attribute.
+<span class='line'> 75</span> 	 * @example
+<span class='line'> 76</span> 	 * var element = new CKEDITOR.dom.element( document.getElementsByName( 'test' )[0] );
+<span class='line'> 77</span> 	 * alert( element.getNameAtt() == 'test' );	// true
+<span class='line'> 78</span> 	 */</span><span class="WHIT">
+<span class='line'> 79</span> </span><span class="WHIT">	</span><span class="NAME">getNameAtt</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'> 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">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">this.$.name</span><span class="WHIT">
+<span class='line'> 82</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">name</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">name.length</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="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="KEYW">null</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> 	 * The element name. The name is always full lowercased.
+<span class='line'> 87</span> 	 * @example
+<span class='line'> 88</span> 	 * var element = new CKEDITOR.dom.element( 'span' );
+<span class='line'> 89</span> 	 * alert( element.getName() == 'span' );	// true
+<span class='line'> 90</span> 	 */</span><span class="WHIT">
+<span class='line'> 91</span> </span><span class="WHIT">	</span><span class="NAME">getName</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'> 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="COMM">// Cache the lowercased name inside a closure.</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">nodeName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.$.nodeName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 95</span> </span><span class="WHIT">		</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">		</span><span class="WHIT">
+<span class='line'> 97</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="WHIT">
+<span class='line'> 98</span> </span><span class="WHIT">		</span><span class="COMM">/** @ignore */</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">		</span><span class="NAME">this.getName</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'>100</span> </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">return</span><span class="WHIT"> </span><span class="NAME">nodeName</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>102</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'>103</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>104</span> 
+<span class='line'>105</span> </span><span class="WHIT">	</span><span class="NAME">hide</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'>106</span> </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">this.setStyle</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'display'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'none'</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="PUNC">,</span><span class="WHIT">
+<span class='line'>109</span> 
+<span class='line'>110</span> </span><span class="WHIT">	</span><span class="NAME">show</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'>111</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>112</span> </span><span class="WHIT">		</span><span class="NAME">this.setStyle</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'display'</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'>113</span> </span><span class="WHIT">	</span><span class="PUNC">}</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">setAttribute</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">attributeName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </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="NAME">this.$.setAttribute</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">attributeName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>118</span> </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="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">	</span><span class="NAME">setAttributes</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">attributesPairs</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="NAME">CKEDITOR.tools.each</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">attributesPairs</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">value</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'>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="NAME">this.$.setAttribute</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">value</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>126</span> </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="NAME">setStyle</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">styleName</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</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="NAME">this.$.style</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">styleName</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="PUNC">}</span><span class="PUNC">;</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 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__editor.js.html	(revision 2083)
@@ -0,0 +1,82 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="WHIT"> </span><span class="COMM">/**
+<span class='line'> 23</span>  * Represents an editor instance.
+<span class='line'> 24</span>  * @constructor
+<span class='line'> 25</span>  * @param {CKEDITOR.dom.element} element The original element replaced by this
+<span class='line'> 26</span>  *		editor instance.
+<span class='line'> 27</span>  */</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="NAME">CKEDITOR.editor</span><span class="WHIT"> </span><span class="PUNC">=</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'> 29</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">	</span><span class="COMM">// The counter for automatic instance names.</span><span class="WHIT">
+<span class='line'> 31</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">nameCounter</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'> 32</span> 
+<span class='line'> 33</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'> 34</span> </span><span class="WHIT">	</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">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'> 36</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'> 37</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'> 39</span> </span><span class="WHIT">	</span><span class="COMM">// Basic config class to inherit the default settings from CKEDITOR.config.</span><span class="WHIT">
+<span class='line'> 40</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">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">	</span><span class="NAME">config.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.config</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">element</span><span class="WHIT"> </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">// Call the base constructor.</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">		</span><span class="NAME">CKEDITOR.event.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 48</span> 
+<span class='line'> 49</span> </span><span class="WHIT">		</span><span class="NAME">this.element</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">element</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</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">element.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">element.getNameAtt</span><span class="PUNC">(</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="PUNC">;</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">		</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">		</span><span class="COMM">// Get the default settings.</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">		</span><span class="NAME">this.config</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">config</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 55</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'> 56</span> 
+<span class='line'> 57</span> </span><span class="NAME">CKEDITOR.editor.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">	</span><span class="COMM">// The CKEDITOR.editor.fire will always pass itself as the "editor"</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">	</span><span class="COMM">// param in CKEDITOR.event.fire. So, we override it to do that</span><span class="WHIT">
+<span class='line'> 61</span> </span><span class="WHIT">	</span><span class="COMM">// automaticaly.</span><span class="WHIT">
+<span class='line'> 62</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="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype.fire.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">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="KEYW">this</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="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 66</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'> 67</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="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype.fireOnce.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">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="KEYW">this</span><span class="WHIT"> </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="WHIT">
+<span class='line'> 71</span> </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="COMM">// "Inherit" (copy actually) from CKEDITOR.event.</span><span class="WHIT">
+<span class='line'> 74</span> </span><span class="NAME">CKEDITOR.tools.extend</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.editor.prototype</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.event.prototype</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 75</span> </span></pre></body></html>
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 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__env.js.html	(revision 2083)
@@ -0,0 +1,133 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/**
+<span class='line'> 23</span>  * Environment information.
+<span class='line'> 24</span>  * @namespace
+<span class='line'> 25</span>  * @example
+<span class='line'> 26</span>  */</span><span class="WHIT">
+<span class='line'> 27</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'> 28</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 29</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'> 30</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'> 31</span> 
+<span class='line'> 32</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'> 33</span> </span><span class="WHIT">	</span><span class="COMM">/** @lends CKEDITOR.env */</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 36</span> 		 * Indicates that CKEditor is running on Internet Explorer.
+<span class='line'> 37</span> 		 * @type Boolean
+<span class='line'> 38</span> 		 * @example
+<span class='line'> 39</span> 		 * if ( CKEDITOR.env.ie )
+<span class='line'> 40</span> 		 *     alert( "I'm on IE!" );
+<span class='line'> 41</span> 		 */</span><span class="WHIT">
+<span class='line'> 42</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'> 43</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 44</span> 		 * Indicates that CKEditor is running on Opera.
+<span class='line'> 45</span> 		 * @type Boolean
+<span class='line'> 46</span> 		 * @example
+<span class='line'> 47</span> 		 * if ( CKEDITOR.env.opera )
+<span class='line'> 48</span> 		 *     alert( "I'm on Opera!" );
+<span class='line'> 49</span> 		 */</span><span class="WHIT">
+<span class='line'> 50</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'> 51</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 52</span> 		 * Indicates that CKEditor is running on a WebKit based browser, like
+<span class='line'> 53</span> 		 * Safari.
+<span class='line'> 54</span> 		 * @type Boolean
+<span class='line'> 55</span> 		 * @example
+<span class='line'> 56</span> 		 * if ( CKEDITOR.env.webkit )
+<span class='line'> 57</span> 		 *     alert( "I'm on WebKit!" );
+<span class='line'> 58</span> 		 */</span><span class="WHIT">
+<span class='line'> 59</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'> 60</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 61</span> 		 * Indicates that CKEditor is running on Adobe AIR.
+<span class='line'> 62</span> 		 * @type Boolean
+<span class='line'> 63</span> 		 * @example
+<span class='line'> 64</span> 		 * if ( CKEDITOR.env.air )
+<span class='line'> 65</span> 		 *     alert( "I'm on AIR!" );
+<span class='line'> 66</span> 		 */</span><span class="WHIT">
+<span class='line'> 67</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'> 68</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 69</span> 		 * Indicates that CKEditor is running on Macintosh.
+<span class='line'> 70</span> 		 * @type Boolean
+<span class='line'> 71</span> 		 * @example
+<span class='line'> 72</span> 		 * if ( CKEDITOR.env.mac )
+<span class='line'> 73</span> 		 *     alert( "I love apples!" );
+<span class='line'> 74</span> 		 */</span><span class="WHIT">
+<span class='line'> 75</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'> 76</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 77</span> 
+<span class='line'> 78</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 79</span> 	 * Indicates that CKEditor is running on a Gecko based browser, like
+<span class='line'> 80</span> 	 * Firefox.
+<span class='line'> 81</span> 	 * @name CKEDITOR.env.gecko
+<span class='line'> 82</span> 	 * @type Boolean
+<span class='line'> 83</span> 	 * @example
+<span class='line'> 84</span> 	 * if ( CKEDITOR.env.gecko )
+<span class='line'> 85</span> 	 *     alert( "I'm riding a gecko!" );
+<span class='line'> 86</span> 	 */</span><span class="WHIT">
+<span class='line'> 87</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'> 88</span> 
+<span class='line'> 89</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 90</span> 	 * Indicates that CKEditor is running on a compatible browser.
+<span class='line'> 91</span> 	 * @name CKEDITOR.env.isCompatible
+<span class='line'> 92</span> 	 * @type Boolean
+<span class='line'> 93</span> 	 * @example
+<span class='line'> 94</span> 	 * if ( CKEDITOR.env.isCompatible )
+<span class='line'> 95</span> 	 *     alert( "Your browser is pretty cool!" );
+<span class='line'> 96</span> 	 */</span><span class="WHIT">
+<span class='line'> 97</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'> 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">// Internet Explorer 6.0+</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">env.ie</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">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'>102</span> 
+<span class='line'>103</span> </span><span class="WHIT">		</span><span class="COMM">// Gecko.</span><span class="WHIT">
+<span class='line'>104</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'>105</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'>106</span> 
+<span class='line'>107</span> </span><span class="WHIT">		</span><span class="COMM">// Opera 9.50+</span><span class="WHIT">
+<span class='line'>108</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'>109</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'>110</span> 
+<span class='line'>111</span> </span><span class="WHIT">		</span><span class="COMM">// Adobe AIR 1.0+</span><span class="WHIT">
+<span class='line'>112</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'>113</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'>114</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'>115</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'>116</span> 
+<span class='line'>117</span> </span><span class="WHIT">		</span><span class="COMM">// WebKit 522+ (Safari 3+)</span><span class="WHIT">
+<span class='line'>118</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'>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">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'>120</span> 
+<span class='line'>121</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'>122</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'>123</span> 
+<span class='line'>124</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'>125</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'>126</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 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__event.js.html	(revision 2083)
@@ -0,0 +1,251 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/**
+<span class='line'> 23</span>  * This is a base class for classes and objects that require event handling
+<span class='line'> 24</span>  * features.
+<span class='line'> 25</span>  * @constructor
+<span class='line'> 26</span>  * @example
+<span class='line'> 27</span>  */</span><span class="WHIT">
+<span class='line'> 28</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'> 29</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="WHIT">	</span><span class="NAME">this._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'> 31</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 32</span> 
+<span class='line'> 33</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'> 34</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 35</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'> 36</span> </span><span class="WHIT">	</span><span class="WHIT">
+<span class='line'> 37</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'> 38</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 39</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'> 40</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'> 41</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 43</span> 
+<span class='line'> 44</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'> 45</span> </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">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'> 47</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 48</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'> 49</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'> 50</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 51</span> 
+<span class='line'> 52</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'> 53</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</span> </span><span class="WHIT">		</span><span class="COMM">// Get the listener index for a specified function.</span><span class="WHIT">
+<span class='line'> 55</span> </span><span class="WHIT">		</span><span class="COMM">// Returns -1 if not found.</span><span class="WHIT">
+<span class='line'> 56</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'> 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="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'> 59</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 60</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'> 61</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'> 62</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 63</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'> 64</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 66</span> 
+<span class='line'> 67</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'> 68</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'> 69</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 70</span> </span><span class="WHIT">			</span><span class="COMM">// Get the event entry (create it if needed).</span><span class="WHIT">
+<span class='line'> 71</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'> 72</span> 
+<span class='line'> 73</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'> 74</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">				</span><span class="COMM">// Get the listeners.</span><span class="WHIT">
+<span class='line'> 76</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'> 77</span> 
+<span class='line'> 78</span> </span><span class="WHIT">				</span><span class="COMM">// Fill the scope.</span><span class="WHIT">
+<span class='line'> 79</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'> 80</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'> 81</span> 
+<span class='line'> 82</span> </span><span class="WHIT">				</span><span class="COMM">// Default the priority, if needed.</span><span class="WHIT">
+<span class='line'> 83</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'> 84</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'> 85</span> 
+<span class='line'> 86</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'> 87</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'> 88</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 89</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'> 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="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'> 92</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'> 93</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'> 94</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'> 95</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'> 96</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'> 97</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'> 98</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">					</span><span class="WHIT">
+<span class='line'>100</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'>101</span> </span><span class="WHIT">					</span><span class="WHIT">
+<span class='line'>102</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'>103</span> </span><span class="WHIT">				</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>104</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'>105</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'>106</span> 
+<span class='line'>107</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'>108</span> </span><span class="WHIT">				</span><span class="COMM">// priority.</span><span class="WHIT">
+<span class='line'>109</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'>110</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>111</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'>112</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'>113</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>114</span> </span><span class="WHIT">						</span><span class="COMM">// Insert the listener in the array.</span><span class="WHIT">
+<span class='line'>115</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'>116</span> </span><span class="WHIT">						</span><span class="KEYW">return</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="PUNC">}</span><span class="WHIT">
+<span class='line'>119</span> 
+<span class='line'>120</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'>121</span> </span><span class="WHIT">				</span><span class="COMM">// the front of list.</span><span class="WHIT">
+<span class='line'>122</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'>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="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="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'>127</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>128</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'>129</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'>130</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'>131</span> </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">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'>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">// Create the function that marks the event as cancelled.</span><span class="WHIT">
+<span class='line'>136</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'>137</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'>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="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'>140</span> </span><span class="WHIT">			</span><span class="PUNC">}</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">// Get the event entry.</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">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'>144</span> 
+<span class='line'>145</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'>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="COMM">// Loop through all listeners.</span><span class="WHIT">
+<span class='line'>148</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'>149</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>150</span> </span><span class="WHIT">					</span><span class="COMM">// Call the listener, passing the event data.</span><span class="WHIT">
+<span class='line'>151</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">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'>152</span> 
+<span class='line'>153</span> </span><span class="WHIT">					</span><span class="COMM">// No further calls is stopped or cancelled.</span><span class="WHIT">
+<span class='line'>154</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'>155</span> </span><span class="WHIT">						</span><span class="KEYW">break</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="PUNC">}</span><span class="WHIT">
+<span class='line'>158</span> 
+<span class='line'>159</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'>160</span> </span><span class="WHIT">		</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">		</span><span class="WHIT">
+<span class='line'>162</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'>163</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>164</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">editor</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'>165</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'>166</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'>167</span> </span><span class="WHIT">		</span><span class="PUNC">}</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="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'>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">// Get the event entry.</span><span class="WHIT">
+<span class='line'>172</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'>173</span> 
+<span class='line'>174</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'>175</span> </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">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'>177</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'>178</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'>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="WHIT">
+<span class='line'>181</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>182</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'>183</span> 
+<span class='line'>184</span> </span><span class="COMM">// The following is for documentation purposes only. It documents a virtual</span><span class="WHIT">
+<span class='line'>185</span> </span><span class="COMM">// CKEDITOR.eventInfo class that contains the defintions of event object passed</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="COMM">// to event listeners.</span><span class="WHIT">
+<span class='line'>187</span> 
+<span class='line'>188</span> </span><span class="COMM">/**
+<span class='line'>189</span>  * This class is not really part of the API. It just illustrates the features
+<span class='line'>190</span>  * of the event object passed to event listeners by a {@link CKEDITOR.event}
+<span class='line'>191</span>  * based object.
+<span class='line'>192</span>  * @name CKEDITOR.eventInfo
+<span class='line'>193</span>  * @constructor
+<span class='line'>194</span>  */</span><span class="WHIT">
+<span class='line'>195</span> 
+<span class='line'>196</span> </span><span class="COMM">/**
+<span class='line'>197</span>  * The event name.
+<span class='line'>198</span>  * @name CKEDITOR.eventInfo.prototype.name
+<span class='line'>199</span>  * @field
+<span class='line'>200</span>  * @type String
+<span class='line'>201</span>  */</span><span class="WHIT">
+<span class='line'>202</span> 
+<span class='line'>203</span> </span><span class="COMM">/**
+<span class='line'>204</span>  * The object that publishes (sends) the event.
+<span class='line'>205</span>  * @name CKEDITOR.eventInfo.prototype.sender
+<span class='line'>206</span>  * @field
+<span class='line'>207</span>  * @type Object
+<span class='line'>208</span>  */</span><span class="WHIT">
+<span class='line'>209</span> 
+<span class='line'>210</span> </span><span class="COMM">/**
+<span class='line'>211</span>  * The editor instance that holds the sender. May be the same as sender. May be
+<span class='line'>212</span>  * null if the sender is not part of an editor instance, like a component
+<span class='line'>213</span>  * running in standalone mode.
+<span class='line'>214</span>  * @name CKEDITOR.eventInfo.prototype.editor
+<span class='line'>215</span>  * @field
+<span class='line'>216</span>  * @type CKEDITOR.editor
+<span class='line'>217</span>  */</span><span class="WHIT">
+<span class='line'>218</span> 
+<span class='line'>219</span> </span><span class="COMM">/**
+<span class='line'>220</span>  * Any kind of additional data. Its format and usage is event dependent.
+<span class='line'>221</span>  * @name CKEDITOR.eventInfo.prototype.data
+<span class='line'>222</span>  * @field
+<span class='line'>223</span>  * @type Object
+<span class='line'>224</span>  */</span><span class="WHIT">
+<span class='line'>225</span> 
+<span class='line'>226</span> </span><span class="COMM">/**
+<span class='line'>227</span>  * Any extra data appended during the listener registration.
+<span class='line'>228</span>  * @name CKEDITOR.eventInfo.prototype.listenerData
+<span class='line'>229</span>  * @field
+<span class='line'>230</span>  * @type Object
+<span class='line'>231</span>  */</span><span class="WHIT">
+<span class='line'>232</span> 
+<span class='line'>233</span> </span><span class="COMM">/**
+<span class='line'>234</span>  * Indicates that no further listeners are to be called.
+<span class='line'>235</span>  * @name CKEDITOR.eventInfo.prototype.stop
+<span class='line'>236</span>  * @function
+<span class='line'>237</span>  */</span><span class="WHIT">
+<span class='line'>238</span> 
+<span class='line'>239</span> </span><span class="COMM">/**
+<span class='line'>240</span>  * Indicates that the event is to be cancelled (if cancelable).
+<span class='line'>241</span>  * @name CKEDITOR.eventInfo.prototype.cancel
+<span class='line'>242</span>  * @function
+<span class='line'>243</span>  */</span><span class="WHIT">
+<span class='line'>244</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 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__loader.js.html	(revision 2083)
@@ -0,0 +1,139 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </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">CKEDITOR</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'> 23</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR</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'> 24</span> 
+<span class='line'> 25</span> </span><span class="COMM">/**
+<span class='line'> 26</span>  * Load core scripts and their dependencies from _source.
+<span class='line'> 27</span>  * @namespace
+<span class='line'> 28</span>  * @example
+<span class='line'> 29</span>  */</span><span class="WHIT">
+<span class='line'> 30</span> </span><span class="NAME">CKEDITOR.loader</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'> 31</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="WHIT">	</span><span class="COMM">// Table of script names and their dependencies.</span><span class="WHIT">
+<span class='line'> 33</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 class='line'> 34</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 35</span> </span><span class="WHIT">		</span><span class="STRN">'core/_bootstrap'</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/config'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/ckeditor'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/scriptLoader'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/tools'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 36</span> </span><span class="WHIT">		</span><span class="STRN">'core/ajax'</span><span class="WHIT">				</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/xml'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 37</span> </span><span class="WHIT">		</span><span class="STRN">'core/ckeditor'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/ajax'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/ckeditor_basic'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/editor'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/dom/element'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/event'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/tools'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">		</span><span class="STRN">'core/ckeditor_base'</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'> 39</span> </span><span class="WHIT">		</span><span class="STRN">'core/ckeditor_basic'</span><span class="WHIT">	</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/env'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/event'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 40</span> </span><span class="WHIT">		</span><span class="STRN">'core/config'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/ckeditor_base'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">		</span><span class="STRN">'core/dom'</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'> 42</span> </span><span class="WHIT">		</span><span class="STRN">'core/dom/element'</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/dom'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">		</span><span class="STRN">'core/editor'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/config'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/event'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/tools'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 44</span> </span><span class="WHIT">		</span><span class="STRN">'core/env'</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'> 45</span> </span><span class="WHIT">		</span><span class="STRN">'core/event'</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'> 46</span> </span><span class="WHIT">		</span><span class="STRN">'core/scriptLoader'</span><span class="WHIT">		</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/dom/element'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'core/env'</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="STRN">'core/tools'</span><span class="WHIT">			</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/env'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 48</span> </span><span class="WHIT">		</span><span class="STRN">'core/xml'</span><span class="WHIT">				</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT"> </span><span class="STRN">'core/env'</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 50</span> 
+<span class='line'> 51</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">loadedScripts</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'> 52</span> 
+<span class='line'> 53</span> </span><span class="WHIT">	</span><span class="COMM">/** @lends CKEDITOR.loader */</span><span class="WHIT">
+<span class='line'> 54</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'> 55</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'> 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="COMM">// This is a copy of CKEDITOR.basePath, but requires the script having</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">			</span><span class="COMM">// "_source/core/loader.js".</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">CKEDITOR</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 class='line'> 60</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.basePath</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">// Find out the editor directory path, based on its &lt;script> tag.</span><span class="WHIT">
+<span class='line'> 63</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'> 64</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'> 65</span> 
+<span class='line'> 66</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'> 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="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'> 69</span> 
+<span class='line'> 70</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'> 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="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'> 73</span> </span><span class="WHIT">					</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 74</span> </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 class='line'> 77</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'> 78</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'> 79</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'> 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="COMM">// Absolute path.</span><span class="WHIT">
+<span class='line'> 82</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'> 83</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'> 84</span> </span><span class="WHIT">				</span><span class="COMM">// Relative path.</span><span class="WHIT">
+<span class='line'> 85</span> </span><span class="WHIT">				</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'> 86</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'> 87</span> </span><span class="WHIT">			</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">return</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 90</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'> 91</span> 
+<span class='line'> 92</span> </span><span class="WHIT">		</span><span class="COMM">/**
+<span class='line'> 93</span> 		 * The list of loaded scripts in the loading order.
+<span class='line'> 94</span> 		 * @type Array
+<span class='line'> 95</span> 		 */</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">		</span><span class="NAME">loadedScripts</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'> 97</span> 
+<span class='line'> 98</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">scriptName</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="COMM">// Check if the script has already been loaded.</span><span class="WHIT">
+<span class='line'>101</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">scriptName</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">loadedScripts</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>102</span> </span><span class="WHIT">				</span><span class="KEYW">return</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="COMM">// Get the script dependencies list.</span><span class="WHIT">
+<span class='line'>105</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">dependencies</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">scripts</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">scriptName</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="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">dependencies</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">throw</span><span class="WHIT"> </span><span class="STRN">'The script name"'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'" is not defined.'</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">// Mark the script as loaded, even before really loading it, to</span><span class="WHIT">
+<span class='line'>110</span> </span><span class="WHIT">			</span><span class="COMM">// avoid cross references recursion.</span><span class="WHIT">
+<span class='line'>111</span> </span><span class="WHIT">			</span><span class="NAME">loadedScripts</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">]</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'>112</span> </span><span class="WHIT">			</span><span class="WHIT">
+<span class='line'>113</span> </span><span class="WHIT">			</span><span class="COMM">// Load all dependencies first.</span><span class="WHIT">
+<span class='line'>114</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">dependencies.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'>115</span> </span><span class="WHIT">				</span><span class="NAME">this.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">dependencies</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="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="COMM">// Append this script to the list of loaded scripts.</span><span class="WHIT">
+<span class='line'>118</span> </span><span class="WHIT">			</span><span class="NAME">this.loadedScripts.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>119</span> 
+<span class='line'>120</span> </span><span class="WHIT">			</span><span class="COMM">// Append the &lt;script> element to the DOM.</span><span class="WHIT">
+<span class='line'>121</span> </span><span class="WHIT">			</span><span class="NAME">document.write</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'&lt;script src="'</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="STRN">'_source/'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">scriptName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">'.js" type="text/javascript">&lt;\/script>'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>122</span> </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="PUNC">;</span><span class="WHIT">
+<span class='line'>124</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'>125</span> 
+<span class='line'>126</span> </span><span class="COMM">// Check if any script has been defined for autoload.</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR._autoLoad</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>129</span> </span><span class="WHIT">	</span><span class="NAME">CKEDITOR.loader.load</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR._autoLoad</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>130</span> </span><span class="WHIT">	</span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">CKEDITOR._autoLoad</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>132</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 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__scriptloader.js.html	(revision 2083)
@@ -0,0 +1,96 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/**
+<span class='line'> 23</span>  * Load scripts asynchronously.
+<span class='line'> 24</span>  * @namespace
+<span class='line'> 25</span>  * @example
+<span class='line'> 26</span>  */</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="NAME">CKEDITOR.scriptLoader</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'> 28</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 29</span> </span><span class="WHIT">	</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">uniqueScripts</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'> 30</span> 
+<span class='line'> 31</span> </span><span class="WHIT">	</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="COMM">/** @lends CKEDITOR.scriptLoader */</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 32</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">scriptUrl</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="PUNC">,</span><span class="WHIT"> </span><span class="NAME">noCheck</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 33</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 34</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">noCheck</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT"> </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">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">uniqueScripts</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">scriptUrl</span><span class="WHIT"> </span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 37</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'> 38</span> 
+<span class='line'> 39</span> </span><span class="WHIT">				</span><span class="NAME">uniqueScripts</span><span class="PUNC">[</span><span class="WHIT"> </span><span class="NAME">scriptUrl</span><span class="WHIT"> </span><span class="PUNC">]</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'> 40</span> </span><span class="WHIT">			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 41</span> 
+<span class='line'> 42</span> </span><span class="WHIT">			</span><span class="COMM">// Create the &lt;script> element.</span><span class="WHIT">
+<span class='line'> 43</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'> 44</span> </span><span class="WHIT">			</span><span class="NAME">script.setAttributes</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="WHIT">				</span><span class="NAME">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'> 46</span> </span><span class="WHIT">				</span><span class="NAME">src</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">scriptUrl</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'> 47</span> 
+<span class='line'> 48</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">callback</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 49</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 50</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.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">				</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">					</span><span class="NAME">script.$.onreadystatechange</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 53</span> </span><span class="WHIT">					</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 54</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">script.$.readyState</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'loaded'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">script.$.readyState</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'complete'</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">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">CKEDITOR</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="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="KEYW">else</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="WHIT">					</span><span class="NAME">script.$.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'> 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="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">CKEDITOR</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 63</span> </span><span class="WHIT">					</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">				</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 class='line'> 67</span> </span><span class="WHIT">			</span><span class="COMM">// Append it to &lt;head>.</span><span class="WHIT">
+<span class='line'> 68</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'> 69</span> 
+<span class='line'> 70</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'> 71</span> </span><span class="WHIT">		</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="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'> 74</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 75</span> </span><span class="WHIT">			</span><span class="COMM">// Create the &lt;script> element.</span><span class="WHIT">
+<span class='line'> 76</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'> 77</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'> 78</span> 
+<span class='line'> 79</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.ie</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 80</span> </span><span class="WHIT">				</span><span class="NAME">script.setText</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'> 81</span> </span><span class="WHIT">			</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'> 82</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'> 83</span> 
+<span class='line'> 84</span> </span><span class="WHIT">			</span><span class="COMM">// Append it to &lt;head>.</span><span class="WHIT">
+<span class='line'> 85</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'> 86</span> </span><span class="WHIT">		</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="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 89</span> </span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__test.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__test.js.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__test.js.html	(revision 2083)
@@ -0,0 +1,53 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/**
+<span class='line'> 23</span>  * Contains functions used at our testing environment. Currently,
+<span class='line'> 24</span>  * our testing system is based on the YUI Test Project.
+<span class='line'> 25</span>  * @namespace
+<span class='line'> 26</span>  */</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="NAME">CKEDITOR.test</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> 	 * The assertion namespace, containing all assertion functions. Currently,
+<span class='line'> 31</span> 	 * this is an alias for YAHOO.util.Assert.
+<span class='line'> 32</span> 	 * @namespace
+<span class='line'> 33</span> 	 */</span><span class="WHIT">
+<span class='line'> 34</span> </span><span class="WHIT">	</span><span class="NAME">assert</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">YAHOO.util.Assert</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 35</span> 
+<span class='line'> 36</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 37</span> 	 * Adds a test case to the test runner.
+<span class='line'> 38</span> 	 * @param {Object} testCase The test case object. See other tests for
+<span class='line'> 39</span> 	 *		examples.
+<span class='line'> 40</span> 	 */</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">	</span><span class="NAME">addTestCase</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">testCase</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 43</span> </span><span class="WHIT">		</span><span class="NAME">YAHOO.tool.TestRunner.add</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">YAHOO.tool.TestCase</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">testCase</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'> 44</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 45</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 46</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 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__tools.js.html	(revision 2083)
@@ -0,0 +1,134 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/**
+<span class='line'> 23</span>  * Utility functions.
+<span class='line'> 24</span>  * @namespace
+<span class='line'> 25</span>  * @example
+<span class='line'> 26</span>  */</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="NAME">CKEDITOR.tools</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> 	 * Evaluates a script in a window (global) scope.
+<span class='line'> 31</span> 	 * @param {String} script The script code to be evaluated.
+<span class='line'> 32</span> 	 * @param {Object} [win] The target window. Defaults to the current window.
+<span class='line'> 33</span> 	 * @type undefined
+<span class='line'> 34</span> 	 * @example
+<span class='line'> 35</span> 	 * var script = 'function sample() { alert( "Go!" ); }';
+<span class='line'> 36</span> 	 *
+<span class='line'> 37</span> 	 * // Evaluates a script in the current window.
+<span class='line'> 38</span> 	 * CKEDITOR.tools.globalEval( script );
+<span class='line'> 39</span> 	 *
+<span class='line'> 40</span> 	 * // Evaluates a script in the parent window.
+<span class='line'> 41</span> 	 * CKEDITOR.tools.globalEval( script, window.parent );
+<span class='line'> 42</span> 	 *
+<span class='line'> 43</span> 	 * // Alerts "Go!" twice.
+<span class='line'> 44</span> 	 * window.sample();
+<span class='line'> 45</span> 	 * window.parent.sample();
+<span class='line'> 46</span> 	 */</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">	</span><span class="NAME">globalEval</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">script</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">win</span><span class="WHIT"> </span><span class="PUNC">)</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="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">win</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 50</span> </span><span class="WHIT">			</span><span class="NAME">win</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 class='line'> 51</span> 
+<span class='line'> 52</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">win.execScript</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 53</span> 			</span><span class="NAME">win.execScript</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><span class="COMM">// IE</span><span class="WHIT">
+<span class='line'> 54</span> 		</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">CKEDITOR.env.webkit</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 55</span> 		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 56</span> 			</span><span class="COMM">// win.eval in Safari executes in the current window environment,</span><span class="WHIT">
+<span class='line'> 57</span> </span><span class="WHIT">			</span><span class="COMM">// instead of win. The following should make it work.</span><span class="WHIT">
+<span class='line'> 58</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">doc</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">win.document</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 59</span> </span><span class="WHIT">			</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">scriptEl</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">doc.createElement</span><span class="PUNC">(</span><span class="STRN">'script'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 60</span> </span><span class="WHIT">			</span><span class="NAME">scriptEl.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">doc.createTextNode</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">script</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'> 61</span> </span><span class="WHIT">			</span><span class="NAME">doc.documentElement.appendChild</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">scriptEl</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 62</span> 		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 63</span> 		</span><span class="KEYW">else</span><span class="WHIT">
+<span class='line'> 64</span> 			</span><span class="NAME">eval.call</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">win</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'> 65</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 66</span> 
+<span class='line'> 67</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 68</span> 	 * Copy the properties from one object to another. By default, properties
+<span class='line'> 69</span> 	 * already present in the target object &lt;strong>are not&lt;/strong> overwritten.
+<span class='line'> 70</span> 	 * @param {Object} target The object to be extended.
+<span class='line'> 71</span> 	 * @param {Object} source The object from which copy properties.
+<span class='line'> 72</span> 	 * @param {Boolean} [overwrite] Indicates that properties already present
+<span class='line'> 73</span> 	 *		in the target object must be overwritten.
+<span class='line'> 74</span> 	 * @returns {Object} the extended object (target).
+<span class='line'> 75</span> 	 * @example
+<span class='line'> 76</span> 	 * // Create the sample object.
+<span class='line'> 77</span> 	 * var myObject =
+<span class='line'> 78</span> 	 * {
+<span class='line'> 79</span> 	 *     prop1 : true
+<span class='line'> 80</span> 	 * };
+<span class='line'> 81</span> 	 *
+<span class='line'> 82</span> 	 * // Extend the above object with two properties.
+<span class='line'> 83</span> 	 * CKEDITOR.tools.extend( myObject,
+<span class='line'> 84</span> 	 *     {
+<span class='line'> 85</span> 	 *         prop2 : true,
+<span class='line'> 86</span> 	 *         prop3 : true
+<span class='line'> 87</span> 	 *     } );
+<span class='line'> 88</span> 	 *
+<span class='line'> 89</span> 	 * // Alert "prop1", "prop2" and "prop3".
+<span class='line'> 90</span> 	 * for ( var p in myObject )
+<span class='line'> 91</span> 	 *     alert( p ) ;
+<span class='line'> 92</span> 	 */</span><span class="WHIT">
+<span class='line'> 93</span> </span><span class="WHIT">	</span><span class="NAME">extend</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">target</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">source</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">overwrite</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">this.each</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">source</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">value</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">propertyName</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 96</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<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="NAME">overwrite</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">target</span><span class="PUNC">[</span><span class="NAME">propertyName</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'> 98</span> </span><span class="WHIT">					</span><span class="NAME">target</span><span class="PUNC">[</span><span class="NAME">propertyName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</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><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>100</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">target</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>101</span> </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="COMM">// Call a function for each element present in an object.</span><span class="WHIT">
+<span class='line'>104</span> </span><span class="WHIT">	</span><span class="NAME">each</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="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'>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="PUNC">!</span><span class="NAME">scope</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">scope</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">object</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="KEYW">var</span><span class="WHIT"> </span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">object.length</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>110</span> 
+<span class='line'>111</span> 		</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">length</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'>112</span> 		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>113</span> 			</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">name</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">object</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>114</span> 			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>115</span> 				</span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</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="PUNC">,</span><span class="WHIT"> </span><span class="NAME">object</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><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">false</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>116</span> 					</span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>117</span> 			</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>118</span> 		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>119</span> 		</span><span class="KEYW">else</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="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">value</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 class='line'>122</span> 				</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">&lt;</span><span class="WHIT"> </span><span class="NAME">length</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">value</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">object</span><span class="PUNC">[</span><span class="NAME">i</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">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</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="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</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="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">i</span><span class="PUNC">++</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>123</span> 			</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>124</span> 		</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>125</span> 	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>126</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>127</span> </span></pre></body></html>
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 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_core__xml.js.html	(revision 2083)
@@ -0,0 +1,175 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> 
+<span class='line'> 22</span> </span><span class="COMM">/**
+<span class='line'> 23</span>  * @fileOverview The XML object class, representing a loaded XML document.
+<span class='line'> 24</span>  */</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="COMM">/**
+<span class='line'> 27</span>  * Represents a loaded XML document.
+<span class='line'> 28</span>  * @constructor
+<span class='line'> 29</span>  * @param {object|string} xmlObjectOrData A native XML (DOM document) object or
+<span class='line'> 30</span>  *		a string containing the XML definition to be loaded.
+<span class='line'> 31</span>  */</span><span class="WHIT">
+<span class='line'> 32</span> </span><span class="NAME">CKEDITOR.xml</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">xmlObjectOrData</span><span class="WHIT"> </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">baseXml</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'> 35</span> 
+<span class='line'> 36</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">xmlObjectOrData</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'> 37</span> </span><span class="WHIT">		</span><span class="NAME">baseXml</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">xmlObjectOrData</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 38</span> </span><span class="WHIT">	</span><span class="KEYW">else</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="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">window.DOMParser</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 41</span> </span><span class="WHIT">			</span><span class="NAME">baseXml</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">DOMParser</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">parseFromString</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xmlObjectOrData</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><span class="STRN">'text/xml'</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 42</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.ActiveXObject</span><span class="WHIT"> </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">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">baseXml</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">ActiveXObject</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'MSXML2.DOMDocument'</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 class='line'> 45</span> </span><span class="WHIT">			</span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 46</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 47</span> </span><span class="WHIT">				</span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">baseXml</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">ActiveXObject</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'Microsoft.XmlDom'</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="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</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 class='line'> 50</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">baseXml</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 51</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 52</span> </span><span class="WHIT">				</span><span class="NAME">baseXml.async</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'> 53</span> </span><span class="WHIT">				</span><span class="NAME">baseXml.resolveExternals</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'> 54</span> </span><span class="WHIT">				</span><span class="NAME">baseXml.validateOnParse</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'> 55</span> </span><span class="WHIT">				</span><span class="NAME">baseXml.loadXML</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xmlObjectOrData</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'> 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="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 class='line'> 60</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 61</span> 	 * The native XML (DOM document) used by the class instance.
+<span class='line'> 62</span> 	 * @type object
+<span class='line'> 63</span> 	 */</span><span class="WHIT">
+<span class='line'> 64</span> </span><span class="WHIT">	</span><span class="NAME">this.baseXml</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">baseXml</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 65</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 66</span> 
+<span class='line'> 67</span> </span><span class="NAME">CKEDITOR.xml.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT">
+<span class='line'> 68</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 69</span> </span><span class="WHIT">	</span><span class="COMM">/**
+<span class='line'> 70</span> 	 * Get a single node from the XML document, based on a XPath query.
+<span class='line'> 71</span> 	 * @param {String} xpath The XPath query to execute.
+<span class='line'> 72</span> 	 * @param {Object} [contextNode] The XML DOM node to be used as the context
+<span class='line'> 73</span> 	 *		for the XPath query. The document root is used by default.
+<span class='line'> 74</span> 	 * @returns {Object} A XML node element or null if the query has no results.
+<span class='line'> 75</span> 	 * @example
+<span class='line'> 76</span> 	 * // Create the XML instance.
+<span class='line'> 77</span> 	 * var xml = new CKEDITOR.xml( '&lt;list>&lt;item id="test1" />&lt;item id="test2" />&lt;/list>' );
+<span class='line'> 78</span> 	 * // Get the first &lt;item> node.
+<span class='line'> 79</span> 	 * var itemNode = &lt;b>xml.selectSingleNode( 'list/item' )&lt;/b>;
+<span class='line'> 80</span> 	 * // Alert "item".
+<span class='line'> 81</span> 	 * alert( itemNode.nodeName );
+<span class='line'> 82</span> 	 */</span><span class="WHIT">
+<span class='line'> 83</span> </span><span class="WHIT">	</span><span class="NAME">selectSingleNode</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">xpath</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">contextNode</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="KEYW">var</span><span class="WHIT"> </span><span class="NAME">baseXml</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.baseXml</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">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">contextNode</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">contextNode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">baseXml</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 88</span> </span><span class="WHIT">		</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 89</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.ie</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">contextNode.selectSingleNode</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">	</span><span class="COMM">// IE</span><span class="WHIT">
+<span class='line'> 90</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">contextNode.selectSingleNode</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xpath</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 91</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">baseXml.evaluate</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">							</span><span class="COMM">// Others</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">var</span><span class="WHIT"> </span><span class="NAME">result</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">baseXml.evaluate</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xpath</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">contextNode</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">9</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 94</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">result</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">result.singleNodeValue</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'> 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="PUNC">}</span><span class="WHIT">
+<span class='line'> 97</span> 
+<span class='line'> 98</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'> 99</span> </span><span class="WHIT">	</span><span class="PUNC">}</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">/**
+<span class='line'>102</span> 	 * Gets a list node from the XML document, based on a XPath query.
+<span class='line'>103</span> 	 * @param {String} xpath The XPath query to execute.
+<span class='line'>104</span> 	 * @param {Object} [contextNode] The XML DOM node to be used as the context
+<span class='line'>105</span> 	 *		for the XPath query. The document root is used by default.
+<span class='line'>106</span> 	 * @returns {Array} An array containing all matched nodes. The array will
+<span class='line'>107</span> 	 *		be empty if the query has no results.
+<span class='line'>108</span> 	 * @example
+<span class='line'>109</span> 	 * // Create the XML instance.
+<span class='line'>110</span> 	 * var xml = new CKEDITOR.xml( '&lt;list>&lt;item id="test1" />&lt;item id="test2" />&lt;/list>' );
+<span class='line'>111</span> 	 * // Get the first &lt;item> node.
+<span class='line'>112</span> 	 * var itemNodes = xml.selectSingleNode( 'list/item' );
+<span class='line'>113</span> 	 * // Alert "item" twice, one for each &lt;item>.
+<span class='line'>114</span> 	 * for ( var i = 0 ; i &lt; itemNodes.length ; i++ )
+<span class='line'>115</span> 	 *     alert( itemNodes[i].nodeName );
+<span class='line'>116</span> 	 */</span><span class="WHIT">
+<span class='line'>117</span> </span><span class="WHIT">	</span><span class="NAME">selectNodes</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">xpath</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">contextNode</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">var</span><span class="WHIT"> </span><span class="NAME">baseXml</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.baseXml</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>120</span> </span><span class="WHIT">			</span><span class="NAME">nodes</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'>121</span> 
+<span class='line'>122</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">contextNode</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">contextNode</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">baseXml</span><span class="WHIT"> </span><span class="PUNC">)</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="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">CKEDITOR.env.ie</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">contextNode.selectNodes</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">		</span><span class="COMM">// IE</span><span class="WHIT">
+<span class='line'>125</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">contextNode.selectNodes</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xpath</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>126</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">baseXml.evaluate</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">							</span><span class="COMM">// Others</span><span class="WHIT">
+<span class='line'>127</span> </span><span class="WHIT">			</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>128</span> </span><span class="WHIT">				</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">result</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">baseXml.evaluate</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xpath</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">contextNode</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">5</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">null</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="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">result</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'>131</span> </span><span class="WHIT">				</span><span class="PUNC">{</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">node</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT">					</span><span class="KEYW">while</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">result.iterateNext</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 class='line'>134</span> </span><span class="WHIT">						</span><span class="NAME">nodes.push</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>135</span> </span><span class="WHIT">				</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="WHIT">
+<span class='line'>138</span> 
+<span class='line'>139</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">nodes</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT">	</span><span class="PUNC">}</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">/**
+<span class='line'>143</span> 	 * Gets the string representation of a XML node, based on a XPath query.
+<span class='line'>144</span> 	 * @param {String} xpath The XPath query to execute.
+<span class='line'>145</span> 	 * @param {Object} [contextNode] The XML DOM node to be used as the context
+<span class='line'>146</span> 	 *		for the XPath query. The document root is used by default.
+<span class='line'>147</span> 	 * @returns {String} The textual representation of the XML node or null if
+<span class='line'>148</span> 	 *		the query has no results.
+<span class='line'>149</span> 	 * @example
+<span class='line'>150</span> 	 * // Create the XML instance.
+<span class='line'>151</span> 	 * var xml = new CKEDITOR.xml( '&lt;list>&lt;item id="test1" />&lt;item id="test2" />&lt;/list>' );
+<span class='line'>152</span> 	 * // Alert "&lt;item id="test1" />".
+<span class='line'>153</span> 	 * alert( xml.getOuterXml( 'list/item' ) );
+<span class='line'>154</span> 	 */</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT">	</span><span class="NAME">getOuterXml</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">xpath</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">contextNode</span><span class="WHIT"> </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">node</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.selectSingleNode</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">xpath</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">contextNode</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="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</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">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node.xml</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">				</span><span class="COMM">// IE</span><span class="WHIT">
+<span class='line'>161</span> </span><span class="WHIT">				</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">node.xml</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>162</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.XMLSerializer</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">	</span><span class="COMM">// Others</span><span class="WHIT">
+<span class='line'>163</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="KEYW">new</span><span class="WHIT"> </span><span class="NAME">XMLSerializer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">serializeToString</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="NAME">node</span><span class="WHIT"> </span><span class="PUNC">)</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 class='line'>166</span> </span><span class="WHIT">		</span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">null</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="PUNC">}</span><span class="PUNC">;</span></pre></body></html>
Index: /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__themes_default.js.html
===================================================================
--- /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__themes_default.js.html	(revision 2083)
+++ /CKEditor/branches/prototype/_docs/api/symbols/src/_source_plugins__themes_default.js.html	(revision 2083)
@@ -0,0 +1,35 @@
+<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
+	.KEYW {color: #933;}
+	.COMM {color: #bbb; font-style: italic;}
+	.NUMB {color: #393;}
+	.STRN {color: #393;}
+	.REGX {color: #339;}
+	.line {border-right: 1px dotted #666; color: #666; font-style: normal;}
+	</style></head><body><pre><span class='line'>  1</span> <span class="TOKN">﻿</span><span class="COMM">/*
+<span class='line'>  2</span>  * CKEditor - The text editor for Internet - http://ckeditor.com
+<span class='line'>  3</span>  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
+<span class='line'>  4</span>  *
+<span class='line'>  5</span>  * == BEGIN LICENSE ==
+<span class='line'>  6</span>  *
+<span class='line'>  7</span>  * Licensed under the terms of any of the following licenses at your
+<span class='line'>  8</span>  * choice:
+<span class='line'>  9</span>  *
+<span class='line'> 10</span>  *  - GNU General Public License Version 2 or later (the "GPL")
+<span class='line'> 11</span>  *    http://www.gnu.org/licenses/gpl.html
+<span class='line'> 12</span>  *
+<span class='line'> 13</span>  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+<span class='line'> 14</span>  *    http://www.gnu.org/licenses/lgpl.html
+<span class='line'> 15</span>  *
+<span class='line'> 16</span>  *  - Mozilla Public License Version 1.1 or later (the "MPL")
+<span class='line'> 17</span>  *    http://www.mozilla.org/MPL/MPL-1.1.html
+<span class='line'> 18</span>  *
+<span class='line'> 19</span>  * == END LICENSE ==
+<span class='line'> 20</span>  */</span><span class="WHIT">
+<span class='line'> 21</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'> 22</span> </span><span class="NAME">CKEDITOR.theme.add</span><span class="PUNC">(</span><span class="WHIT"> </span><span class="STRN">'default'</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 23</span> </span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 24</span> </span><span class="WHIT">	</span><span class="NAME">build</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">instance</span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT">
+<span class='line'> 25</span> </span><span class="WHIT">	</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'> 26</span> </span><span class="WHIT">		</span><span class="WHIT">
+<span class='line'> 27</span> </span><span class="WHIT">	</span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'> 28</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span></pre></body></html>
Index: /CKEditor/branches/prototype/_samples/sample.css
===================================================================
--- /CKEditor/branches/prototype/_samples/sample.css	(revision 2083)
+++ /CKEditor/branches/prototype/_samples/sample.css	(revision 2083)
@@ -0,0 +1,65 @@
+﻿/*
+ * 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 ==
+ */
+
+fieldset
+{
+	margin: 0;
+	padding: 10px;
+}
+
+form
+{
+	margin: 0;
+	padding: 0;
+}
+
+pre
+{
+	background-color: #F7F7F7;
+	border: 1px solid #D7D7D7;
+	overflow: auto;
+	margin: 0;
+	padding: 0.25em;
+}
+
+#alerts
+{
+	color: Red;
+}
+
+#footer hr
+{
+	margin: 10px 0 15px 0;
+	height: 1px;
+	border: solid 1px gray;
+	border-bottom: none;
+}
+
+#footer p
+{
+	margin: 0 10px 10px 10px;
+	float: left;
+}
+
+#footer #copy
+{
+	float: right;
+}
Index: /CKEditor/branches/prototype/_samples/sample.html
===================================================================
--- /CKEditor/branches/prototype/_samples/sample.html	(revision 2083)
+++ /CKEditor/branches/prototype/_samples/sample.html	(revision 2083)
@@ -0,0 +1,82 @@
+<!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>Sample - CKEditor</title>
+	<script type="text/javascript" src="../ckeditor.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+// Loaded dependencies of sample.js.
+CKEDITOR.loader.load( 'core/ajax' );
+CKEDITOR.loader.load( 'core/env' );
+
+	//]]>
+	</script>
+	<script type="text/javascript" src="sample.js"></script>
+	<link type="text/css" rel="stylesheet" href="sample.css" />
+</head>
+<body>
+	<h1>
+		CKEditor Sample
+	</h1>
+	<!-- This <div> holds alert messages to be display in the sample page. -->
+	<div id="alerts">
+		<noscript>
+			<p>
+				<strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
+				support, like yours, you should still see the contents (HTML data) and you should
+				be able to edit it normally, without a rich editor interface.
+			</p>
+		</noscript>
+	</div>
+	<!-- This <fieldset> holds the HTML that you will usually find in your
+	     pages. -->
+	<fieldset title="Output">
+		<legend>Output</legend>
+		<script type="text/javascript">
+		//<![CDATA[
+			document.write( CKEDITOR.samples.htmlData );
+		//]]>
+		</script>
+	</fieldset>
+	<!-- This <fieldset> contains the output readable code that illustrates
+	     how to use the editor, having the results shown in this sample. -->
+	<fieldset title="Code">
+		<legend>Code</legend>
+		<script type="text/javascript">
+		//<![CDATA[
+			document.write( CKEDITOR.samples.codeData );
+		//]]>
+		</script>
+	</fieldset>
+	<div id="footer">
+		<hr />
+		<p>
+			CKEditor - The text editor for Internet - <a href="http://ckeditor.com/">http://ckeditor.com</a>
+		</p>
+		<p id="copy">
+			Copyright &copy; 2003-2008 Frederico Caldeira Knabben (<a href="http://www.fredck.com/">FredCK.com</a>)
+		</p>
+	</div>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_samples/sample.js
===================================================================
--- /CKEditor/branches/prototype/_samples/sample.js	(revision 2083)
+++ /CKEditor/branches/prototype/_samples/sample.js	(revision 2083)
@@ -0,0 +1,134 @@
+﻿/*
+ * 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 ==
+ */
+
+(function()
+{
+	// The sample##.html files also include this script. We don't want them to
+	// run, so we redirect to the samples.html page, passing the correct
+	// querystring parameter to load the desired page.
+
+	var sampleMatch = window.location.pathname.match( /[\/\\]([^\/\\]+).html/ );
+	if ( sampleMatch && sampleMatch[1] != 'sample' )
+		window.location = 'sample.html?sample=' + sampleMatch[1] + ( location.search.length > 1 ? '&' + location.search.substr(1) : '' );
+})();
+
+if ( window.CKEDITOR )
+{
+	CKEDITOR.samples = (function()
+	{
+		var ajax = CKEDITOR.ajax;
+
+		// Default values for the CKEDITOR.samples properties.
+		var samples =
+		{
+			htmlData : '<p>No HTML data available.</p>',
+			codeData : '<p>No code data available.</p>'
+		};
+
+		if ( /[?&]sample=[^&]+/.test( document.location.search ) )
+		{
+			var currentSample = document.location.search.match( /[?&]sample=([^&]+)/ )[1];
+			var sampleData = ajax.loadXml( currentSample + '.html' );
+
+			if ( sampleData )
+			{
+				var getDivContents = function ( id )
+				{
+					try 
+					{ 
+						// The '//div[@id="html"]' XPath doesn't work with
+						// <html xmlns"..."> in FF, Safari and Opera.
+						return sampleData.getOuterXml( '//*[name()="div"][@id="' + id + '"]' ); 
+					}
+					catch(e)
+					{
+						// In IE instead, the "name()" expression is not
+						// understood, but xmlns doens't disturb it.
+						return sampleData.getOuterXml( '//div[@id="' + id + '"]' );
+					}
+				};
+			
+				var html = getDivContents( 'html' );
+				if ( html )
+					samples.htmlData = html;
+
+				html = getDivContents( 'code' );
+				if ( html )
+					samples.codeData = html;
+			}
+		}
+
+		return samples;
+	})();
+
+	(function()
+	{
+		var showCompatibilityMsg = function()
+		{
+			var env = CKEDITOR.env;
+
+			var html = '<p><strong>Your browser is not compatible with CKEditor.</strong>';
+
+			var browsers =
+			{
+				Gecko : 'Firefox 1.5',
+				IE : 'Internet Explorer 6.0',
+				Opera : 'Opera 9.5',
+				WebKit : 'Safari 3'
+			};
+
+			var alsoBrowsers = '';
+
+			for ( key in env )
+			{
+				if ( browsers[ key ] )
+				{
+					if ( env[key] )
+						html += ' CKEditor is compatible with ' + browsers[ key ] + ' or higher.';
+					else
+						alsoBrowsers += browsers[ key ] + '+, ';
+				}
+			}
+
+			alsoBrowsers = alsoBrowsers.replace( /\+,([^,]+), $/, '+ and $1' );
+
+			html += ' It is also compatible with ' + alsoBrowsers + '.';
+
+			html += '</p><p>With non compatible browsers, you should still be able to see and edit the contents (HTML) in a plain text field.</p>';
+
+			document.getElementById( 'alerts' ).innerHTML = html;
+		};
+
+		var onload = function()
+		{
+			// Show a friendly compatibility message as soon as the page is loaded,
+			// for those browsers that are not compatible with CKEditor.
+			if ( !CKEDITOR.env.isCompatible )
+				showCompatibilityMsg();
+		};
+
+		// Register the onload listener.
+		if ( window.addEventListener )
+			window.addEventListener( 'load', onload, false );
+		else if ( window.attachEvent )
+			window.attachEvent( 'onload', onload );
+	})();
+}
Index: /CKEditor/branches/prototype/_samples/sample01.html
===================================================================
--- /CKEditor/branches/prototype/_samples/sample01.html	(revision 2083)
+++ /CKEditor/branches/prototype/_samples/sample01.html	(revision 2083)
@@ -0,0 +1,63 @@
+<!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>Basic FCKeditor Integration</title>
+	<script type="text/javascript" src="sample.js"></script>
+</head>
+<body>
+	<div id="html">
+		<form action="">
+			<p>
+				<label for="editor1">
+					Editor 1:</label><br />
+				<textarea id="editor1" name="editor1" class="ckeditor" 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>
+			</p>
+			<p>
+				<label for="editor2">
+					Editor 2:</label><br />
+				<textarea id="editor2" name="editor2" class="ckeditor" 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>
+			</p>
+			<p>
+				<input type="submit" value="Submit" />
+			</p>
+		</form>
+	</div>
+	<div id="code">
+		<pre>
+&lt;p&gt;
+    &lt;label for="editor1"&gt;
+        Editor 1:&lt;/label&gt;&lt;br /&gt;
+    &lt;textarea id="editor1" name="editor1" class="ckeditor" rows="10" cols="80"&gt;&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;&lt;/textarea&gt;
+&lt;/p&gt;
+&lt;p&gt;
+    &lt;label for="editor2"&gt;
+        Editor 2:&lt;/label&gt;&lt;br /&gt;
+    &lt;textarea id="editor2" name="editor2" class="ckeditor" rows="10" cols="80"&gt;&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;&lt;/textarea&gt;
+&lt;/p&gt;
+&lt;p&gt;
+    &lt;input type="submit" value="Submit" /&gt;
+&lt;/p&gt;
+</pre>
+	</div>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_samples/sample02.html
===================================================================
--- /CKEditor/branches/prototype/_samples/sample02.html	(revision 2083)
+++ /CKEditor/branches/prototype/_samples/sample02.html	(revision 2083)
@@ -0,0 +1,59 @@
+<!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>Basic FCKeditor Integration</title>
+	<script type="text/javascript" src="sample.js"></script>
+</head>
+<body>
+	<div id="html">
+		<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[
+
+					// This call can be placed at any point after the
+					// <textarea>, or inside a <head><script> in a
+					// window.onload event handler.
+
+					// Replace the <textarea id="editor"> with an CKEditor
+					// instance, using default configurations.
+					CKEDITOR.replace( 'editor1' );
+
+				//]]>
+				</script>
+			</p>
+			<p>
+				<input type="submit" value="Submit" />
+			</p>
+		</form>
+	</div>
+	<div id="code">
+		<pre>
+TODO
+</pre>
+	</div>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_source/core/_bootstrap.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/_bootstrap.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/_bootstrap.js	(revision 2083)
@@ -0,0 +1,35 @@
+﻿/*
+ * 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 ==
+ */
+
+(function()
+{
+	// Process all pending replacements.
+	var pending = CKEDITOR.replace._pending;
+	if ( pending )
+	{
+		delete CKEDITOR.replace._pending;
+
+		CKEDITOR.tools.each( pending, function()
+			{
+				CKEDITOR.replace( this[0], this[1] );
+			} );
+	}
+})();
Index: /CKEditor/branches/prototype/_source/core/ajax.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/ajax.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/ajax.js	(revision 2083)
@@ -0,0 +1,154 @@
+﻿/*
+ * 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 ==
+ */
+
+/**
+ * Ajax methods for data loading.
+ * @namespace
+ * @example
+ */
+CKEDITOR.ajax = (function()
+{
+	var createXMLHttpRequest = function()
+	{
+		// In IE, using the native XMLHttpRequest for local files may throw
+		// "Access is Denied" errors.
+		if ( !CKEDITOR.env.IE || location.protocol != 'file:' )
+			try { return new XMLHttpRequest(); } catch(e) {}
+
+		try { return new ActiveXObject( 'Msxml2.XMLHTTP' ); } catch (e) {}
+		try { return new ActiveXObject( 'Microsoft.XMLHTTP' ); } catch (e) {}
+
+		return null;
+	};
+
+	var checkStatus = function( xhr )
+	{
+		// HTTP Status Codes:
+		//	 2xx : Success
+		//	 304 : Not Modified
+		//	   0 : Returned when running locally (file://)
+		//	1223 : IE may change 204 to 1223 (see http://dev.jquery.com/ticket/1450)
+
+		return ( xhr.readyState == 4 &&
+				(	( xhr.status >= 200 && xhr.status < 300 )
+					|| xhr.status == 304
+					|| xhr.status == 0
+					|| xhr.status == 1223 ) );
+	};
+
+	var getResponseText = function( xhr )
+	{
+		if ( checkStatus( xhr ) )
+			return xhr.responseText;
+		return null;
+	};
+
+	var getResponseXml = function( xhr )
+	{
+		if ( checkStatus( xhr ) )
+		{
+			var xml = xhr.responseXML;
+			return new CKEDITOR.xml( xml && xml.firstChild ? xml : xhr.responseText );
+		}
+		return null;
+	};
+
+	var load = function( url, callback, getResponseFn )
+	{
+		var async = !!callback;
+
+		var xhr = createXMLHttpRequest();
+
+		if ( !xhr )
+			return null;
+
+		xhr.open( 'GET', url, async );
+
+		if ( async )
+		{
+			// TODO: perform leak checks on this closure.
+			/** @ignore */
+			xhr.onreadystatechange = function()
+			{
+				if ( xhr.readyState == 4 )
+				{
+					callback( getResponseFn( xhr ) );
+					xhr = null;
+				}
+			};
+		}
+
+		xhr.send(null);
+
+		return async ? '' : getResponseFn( xhr );
+	};
+
+	return 	/** @lends CKEDITOR.ajax */ {
+	
+		/**
+		 * Loads data from an URL as plain text.
+		 * @param {String} url The URL from which load data.
+		 * @param {Function} [callback] A callback function to be called on
+		 *		data load. If not provided, the data will be loaded
+		 *		asynchronously, passing the data value the function on load.
+		 * @returns {String} The loaded data. For asynchronous requests, an
+		 *		empty string. For invalid requests, null.
+		 * @example
+		 * // Load data synchronously.
+		 * var data = CKEDITOR.ajax.load( 'somedata.txt' );
+		 * alert( data );
+		 * @example
+		 * // Load data asynchronously.
+		 * var data = CKEDITOR.ajax.load( 'somedata.txt', function( data )
+		 *     {
+		 *         alert( data );
+		 *     } );
+		 */
+		load : function( url, callback )
+		{
+			return load( url, callback, getResponseText );
+		},
+
+		/**
+		 * Loads data from an URL as XML.
+		 * @param {String} url The URL from which load data.
+		 * @param {Function} [callback] A callback function to be called on
+		 *		data load. If not provided, the data will be loaded
+		 *		asynchronously, passing the data value the function on load.
+		 * @returns {CKEDITOR.xml} An XML object holding the loaded data. For asynchronous requests, an
+		 *		empty string. For invalid requests, null.
+		 * @example
+		 * // Load XML synchronously.
+		 * var xml = CKEDITOR.ajax.loadXml( 'somedata.xml' );
+		 * alert( xml.getOuterXml() );
+		 * @example
+		 * // Load XML asynchronously.
+		 * var data = CKEDITOR.ajax.loadXml( 'somedata.xml', function( xml )
+		 *     {
+		 *         alert( xml.getOuterXml() );
+		 *     } );
+		 */
+		loadXml : function( url, callback )
+		{
+			return load( url, callback, getResponseXml );
+		}
+	};
+})();
Index: /CKEditor/branches/prototype/_source/core/ckeditor.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/ckeditor.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/ckeditor.js	(revision 2083)
@@ -0,0 +1,120 @@
+﻿/*
+ * 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 ==
+ */
+
+CKEDITOR.instances = {};
+
+(function()
+{
+	// These function loads custom configuration files and cache the
+	// CKEDITOR.editorConfig functions defined on them, so there is no need to
+	// download them more than once for several instances.
+	var loadConfigLoaded = {};
+	var loadConfig = function( editor )
+	{
+		var customConfig = editor.config.customConfig;
+
+		// Check if there is a custom config to load.
+		if ( !customConfig )
+			return false;
+
+		var loadedConfig = loadConfigLoaded[ customConfig ] || ( loadConfigLoaded[ customConfig ] = { editors : [] } );
+		
+		// If the custom config has already been downloaded, reuse it.
+		if ( loadedConfig.fn )
+		{
+			// Call the cached CKEDITOR.editorConfig defined in the custom
+			// config file for the editor instance depending on it.
+			loadedConfig.fn.call( editor, editor );
+
+			// If there is no other customConfig in the chain, fire the
+			// "configloaded" event.
+			if ( editor.config.customConfig == customConfig || !loadConfig( editor ) )
+				editor.fireOnce( 'configloaded' );
+		}
+		else
+		{
+			// Add the editor to the list of editors waiting for this config.
+			loadedConfig.editors.push( editor ); 
+
+			// Load the custom configuration file.
+			CKEDITOR.scriptLoader.load( customConfig, function()
+				{
+					// If the CKEDITOR.editorConfig function has been properly
+					// defined in the custom configuration file, cache it.
+					if ( CKEDITOR.editorConfig )
+						loadedConfig.fn = CKEDITOR.editorConfig;
+					else
+						loadedConfig.fn = function(){};
+
+					delete CKEDITOR.editorConfig;
+
+					CKEDITOR.tools.each( loadedConfig.editors, function( editor )
+						{
+							// Call the load config again. This time the custom
+							// config is already cached and so it will get loaded.
+							loadConfig( editor );
+						});
+					
+					delete loadedConfig.editors;
+				} );
+		}
+		
+		return true;
+	};
+
+	// Overwrite the basic _replaceElement implementation with the definitive one.
+	CKEDITOR.replace._replaceElement = function( textarea, config )
+	{
+		var textarea = new CKEDITOR.dom.element( textarea );
+		textarea.hide();
+
+		// Create the editor instance.
+		var editor = new CKEDITOR.editor( textarea );
+		CKEDITOR.instances[ editor.name ] = editor;
+		
+		// Setup the lister for the "configloaded" event.
+		editor.on( 'configloaded', function()
+			{
+				// Overwrite the settings from the in-page config.
+				if ( config )
+					CKEDITOR.tools.extend( editor.config, config, true );
+
+				// Fire the "instancecreated" event.
+				CKEDITOR.fire( 'instancecreated', editor.name, editor );				
+			});
+
+		// The instance config may override the customConfig setting to avoid
+		// loading the default ~/config.js file.
+		if ( config && config.customConfig != undefined )
+			editor.config.customConfig = config.customConfig;
+
+		// Load configs from the custom configuration files.
+		if ( !loadConfig( editor ) )
+			editor.fireOnce( 'configloaded' );
+	};
+})();
+
+// Set the status to "loading", which means that the main CKEDITOR object has
+// been created, and the rest is getting loaded.
+CKEDITOR.status = 'loading';
+
+// Load the bootstrap script.
+CKEDITOR.loader.load( 'core/_bootstrap' );
Index: /CKEditor/branches/prototype/_source/core/ckeditor_base.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/ckeditor_base.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/ckeditor_base.js	(revision 2083)
@@ -0,0 +1,103 @@
+﻿/*
+ * 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 Code
+// Must be updated on changes in the script, as well as updated in the
+// ckeditor.js and ckeditor_basic.js files.
+
+// if (!window.CKEDITOR){window.CKEDITOR=(function(){return {status:'unloaded',basePath:(function(){var A='';var B=document.getElementsByTagName('script');for (var i=0;i<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;})()};})();};
+
+// #### Raw code
+// ATTENTION: read the above "Compressed Code" notes when changing this code.
+
+if ( !window.CKEDITOR )
+{
+	/**
+	 * This is the API entry point. The entire CKEditor code runs under this object.
+	 * @name CKEDITOR
+	 * @namespace
+	 * @example
+	 */
+	window.CKEDITOR = (function()
+	{
+		/** @lends CKEDITOR */
+		return {
+			/**
+			 * Indicates the API loading status:
+			 *		<ul>
+			 *			<li><b>unloaded</b>: the API is not yet loaded.</li>
+			 *			<li><b>basic_loaded</b>: the basic API features are available.</li>
+			 *			<li><b>loading</b>: the full API is being loaded.</li>
+			 *			<li><b>ready</b>: the API can be fully used.</li>
+			 *		</ul>
+			 * @type string
+			 * @example
+			 * if ( <b>CKEDITOR.status</b> == 'ready' )
+			 * {
+			 *     // The API can now be fully used.
+			 * }
+			 */
+			status : 'unloaded',
+
+			/**
+			 * Contains the full URL for the CKEditor installation directory.
+			 * @type string
+			 * @example
+			 * // Alerts "http://www.example.com/ckeditor/" (e.g.)
+			 * alert( <b>CKEDITOR.basePath</b> );
+			 */
+			basePath : (function()
+			{
+				// ATTENTION: fixes on this code must be ported to
+				// loader.basePath (core/loader.js).
+			
+				// Find out the editor directory path, based on its <script> tag.
+				var path = '';
+				var scripts = document.getElementsByTagName( 'script' );
+
+				for ( var i = 0 ; i < scripts.length ; i++ )
+				{
+					var match = scripts[i].src.match( /(^|.*[\\\/])ckeditor(?:_basic)?.js(?:\?.*)?$/i );
+
+					if ( match )
+					{
+						path = match[1];
+						break;
+					}
+				}
+
+				// In IE (only) the script.src string is the raw valued entered in the
+				// HTML. Other browsers return the full resolved URL instead.
+				if ( path.indexOf('://') == -1 )
+				{
+					// Absolute path.
+					if ( path.indexOf( '/' ) == 0 )
+						path = location.href.match( /^.*?:\/\/[^\/]*/ )[0] + path;
+					// Relative path.
+					else
+						path = location.href.match( /^[^\?]*\// )[0] + path;
+				}
+
+				return path;
+			})()
+		};
+	})();
+}
Index: /CKEditor/branches/prototype/_source/core/ckeditor_basic.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/ckeditor_basic.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/ckeditor_basic.js	(revision 2083)
@@ -0,0 +1,187 @@
+﻿/*
+ * 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 ==
+ */
+
+CKEDITOR.event.implementOn( CKEDITOR );
+
+/** 
+ * The class name used to identify &lt;textarea&gt; elements to be replace
+ * by CKEditor instances.
+ * @type string
+ * @default 'ckeditor'
+ * @example
+ * CKEDITOR.replaceClass = 'rich_editor';
+ */
+CKEDITOR.replaceClass = 'ckeditor';
+
+/**
+ * Indicates that CKEditor will attempty to replace all textareas with
+ * class name matching {@link CKEDITOR.replaceClass}.
+ * @type Boolean
+ * @default true
+ * @example
+ * // Disable the auto-replace feature.
+ * CKEDITOR.replaceByClassEnabled = 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 )
+			{
+				alert( '[CKEDITOR.replace] The <textarea> with id or name "' + elementOrIdOrName + '" was not found' );
+				return;
+			}
+		}
+		
+		CKEDITOR.replace._replaceElement( textarea, config );
+	}
+};
+
+// This function will be overwritten by the fill 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 ] );
+};
+
+/**
+ * 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" attribute must exist.
+		if ( !name || name.length == 0 )
+			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 );
+	}
+};
+
+CKEDITOR.create = function( instanceName, config )
+{
+};
+
+CKEDITOR.appendTo = function( element, config )
+{
+};
+	
+if ( CKEDITOR.status == 'unloaded' )
+{
+	(function()
+	{
+		var onload = function()
+		{
+			// Replace all textareas with the default class name.
+			if ( CKEDITOR.replaceByClassEnabled )
+				CKEDITOR.replaceAll( CKEDITOR.replaceClass );
+		};
+
+		if ( window.addEventListener )
+			window.addEventListener( 'load', onload, false );
+		else if ( window.attachEvent )
+			window.attachEvent( 'onload', onload );
+	})();
+}
+
+CKEDITOR.status = 'basic_loaded';
Index: /CKEditor/branches/prototype/_source/core/config.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/config.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/config.js	(revision 2083)
@@ -0,0 +1,47 @@
+﻿/*
+ * 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 ==
+ */
+
+/**
+ * Holds the default configuration settings.
+ * @namespace
+ * @example
+ */
+CKEDITOR.config =
+{
+	customConfig : CKEDITOR.basePath + 'config.js',
+
+	/**
+	 * The base href URL used to resolve relative and absolute URLs in the
+	 * editor content.
+	 * @type String
+	 * @default '' (empty string)
+	 * @example
+	 * config.baseHref = 'http://www.example.com/path/';
+	 */
+	baseHref : '',
+
+	/**
+	 * The theme to be used to build the UI.
+	 * @type String
+	 * @default 'default'
+	 */
+	theme : 'default'
+};
Index: /CKEditor/branches/prototype/_source/core/dom.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/dom.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/dom.js	(revision 2083)
@@ -0,0 +1,28 @@
+﻿/*
+ * 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 ==
+ */
+ 
+/**
+ * DOM manipulation objects and function.
+ * @namespace
+ * @example
+ */
+CKEDITOR.dom = 
+{};
Index: /CKEditor/branches/prototype/_source/core/dom/element.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/dom/element.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/dom/element.js	(revision 2083)
@@ -0,0 +1,132 @@
+﻿/*
+ * 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 ==
+ */
+
+/**
+ * Represents a DOM element.
+ * @constructor
+ * @param {Object|String} element A native DOM element or the element name for new elements.
+ */
+CKEDITOR.dom.element = function( element )
+{
+	if ( typeof element == 'string' )
+		element = document.createElement( element );
+
+	/**
+	 * The native DOM element represented by this class instance.
+	 * @type Object
+	 */
+	this.$ = element;
+};
+
+CKEDITOR.dom.element.getHead = function()
+{
+	var head = document.getElementsByTagName( 'head' )[0];
+	return new CKEDITOR.dom.element( head );
+};
+
+CKEDITOR.dom.element.prototype =
+{
+	append : function( node )
+	{
+		this.$.appendChild( node.$ );
+	},
+
+	appendTo : function( element )
+	{
+		element.append( this );
+	},
+	
+	appendText : function( text )
+	{
+		this.$.appendChild( document.createTextNode( text ) );
+	},
+
+	setText : function( text )
+	{
+		this.$.text = text;
+	},
+
+	getId : function()
+	{
+		var id = this.$.id;
+		return ( id && id.length > 0 ) ? id : null;
+	},
+
+	/**
+	 * The value of the "name" attribute.
+	 * @example
+	 * var element = new CKEDITOR.dom.element( document.getElementsByName( 'test' )[0] );
+	 * alert( element.getNameAtt() == 'test' );	// true
+	 */
+	getNameAtt : function()
+	{
+		var name = this.$.name
+		return ( name && name.length > 0 ) ? name : null;
+	},
+
+	/**
+	 * The element name. The name is always full lowercased.
+	 * @example
+	 * var element = new CKEDITOR.dom.element( 'span' );
+	 * alert( element.getName() == 'span' );	// true
+	 */
+	getName : function()
+	{
+		// Cache the lowercased name inside a closure.
+		var nodeName = this.$.nodeName.toLowerCase();
+		
+		
+		return ( 
+		/** @ignore */
+		this.getName = function()
+			{
+				return nodeName;
+			})();
+	},
+
+	hide : function()
+	{
+		this.setStyle( 'display', 'none' );
+	},
+
+	show : function()
+	{
+		this.setStyle( 'display', '' );
+	},
+
+	setAttribute : function( attributeName, value )
+	{
+		this.$.setAttribute( attributeName, value );
+	},
+	
+	setAttributes : function( attributesPairs )
+	{
+		CKEDITOR.tools.each( attributesPairs, function( value, name )
+			{
+				this.$.setAttribute( name, value );
+			}, this);
+	},
+
+	setStyle : function( styleName, value )
+	{
+		this.$.style[ styleName ] = value;
+	}
+};
Index: /CKEditor/branches/prototype/_source/core/editor.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/editor.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/editor.js	(revision 2083)
@@ -0,0 +1,74 @@
+﻿/*
+ * 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 ==
+ */
+
+ /**
+ * Represents an editor instance.
+ * @constructor
+ * @param {CKEDITOR.dom.element} element The original element replaced by this
+ *		editor instance.
+ */
+CKEDITOR.editor = ( function()
+{
+	// The counter for automatic instance names.
+	var nameCounter = 0;
+
+	var getNewName = function()
+	{
+		var name = 'editor' + nameCounter++;
+		return CKEDITOR.instances[ name ] ? getNewName() : name;
+	};
+	
+	// Basic config class to inherit the default settings from CKEDITOR.config.
+	var config = function()
+	{}
+	config.prototype = CKEDITOR.config;
+	
+	return function( element )
+	{
+		// Call the base constructor.
+		CKEDITOR.event.call( this );
+
+		this.element = element;
+		this.name = element.getId() || element.getNameAtt() || getNewName();
+		
+		// Get the default settings.
+		this.config = new config();
+	};
+}());
+
+CKEDITOR.editor.prototype =
+{
+	// The CKEDITOR.editor.fire will always pass itself as the "editor"
+	// param in CKEDITOR.event.fire. So, we override it to do that
+	// automaticaly.
+	fire : function( eventName, data )
+	{
+		return CKEDITOR.event.prototype.fire.call( this, eventName, data, this );
+	},
+	
+	fireOnce : function( eventName, data )
+	{
+		return CKEDITOR.event.prototype.fireOnce.call( this, eventName, data, this );
+	}
+};
+
+// "Inherit" (copy actually) from CKEDITOR.event.
+CKEDITOR.tools.extend( CKEDITOR.editor.prototype, CKEDITOR.event.prototype );
Index: /CKEditor/branches/prototype/_source/core/env.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/env.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/env.js	(revision 2083)
@@ -0,0 +1,125 @@
+﻿/*
+ * 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 ==
+ */
+
+/**
+ * Environment information.
+ * @namespace
+ * @example
+ */
+CKEDITOR.env = (function()
+{
+	var agent = navigator.userAgent.toLowerCase();
+	var opera = window.opera;
+
+	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 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 );
+
+	/**
+	 * 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 );
+
+		// Gecko.
+		if ( env.gecko )
+			return navigator.productSub >= 20030210;
+
+		// Opera 9.50+
+		if ( env.opera )
+			return parseFloat( opera.version() ) >= 9.5;
+
+		// 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 );
+
+		// WebKit 522+ (Safari 3+)
+		if ( env.webkit )
+			return ( agent.match( / applewebkit\/(\d+)/ )[1] >= 522 );
+
+		return false;
+	})();
+
+	return env;
+})();
Index: /CKEditor/branches/prototype/_source/core/event.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/event.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/event.js	(revision 2083)
@@ -0,0 +1,243 @@
+﻿/*
+ * 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 ==
+ */
+
+/**
+ * This is a base class for classes and objects that require event handling
+ * features.
+ * @constructor
+ * @example
+ */
+CKEDITOR.event = function()
+{
+	this._events = {};
+};
+
+CKEDITOR.event.implementOn = function( targetObject )
+{
+	CKEDITOR.event.call( targetObject );
+	
+	for ( var prop in CKEDITOR.event.prototype )
+	{
+		if ( targetObject[ prop ] == undefined )
+			targetObject[ prop ] = CKEDITOR.event.prototype[ prop ];
+	}
+};
+
+CKEDITOR.event.prototype = (function()
+{
+	var eventEntry = function( eventName )
+	{
+		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 */ {
+		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 )
+				{
+					var ev =
+					{
+						name : eventName,
+						sender : this,
+						editor : editor,
+						data : publisherData,
+						listenerData : listenerData,
+						stop : stopFn,
+						cancel : cancelFn
+					};
+					
+					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 );
+			}
+		},
+
+		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.
+					data = listeners[i].call( this, editor, data, stopEvent, cancelEvent );
+
+					// No further calls is stopped or cancelled.
+					if ( stopped || cancelled )
+						break;
+				}
+			}
+
+			return cancelled || ( typeof data == 'undefined' ? false : data );
+		},
+		
+		fireOnce : function( eventName, data, editor )
+		{
+			var ret = this.fire( eventName, editor, data );
+			delete this._events[ eventName ];
+			return ret;
+		},
+
+		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 );
+			}
+		}
+	};
+})();
+
+// The following is for documentation purposes only. It documents a virtual
+// CKEDITOR.eventInfo class that contains the defintions of event object passed
+// to event listeners.
+
+/**
+ * This class is not really part of the API. It just illustrates the features
+ * of the event object passed to event listeners by a {@link CKEDITOR.event}
+ * based object.
+ * @name CKEDITOR.eventInfo
+ * @constructor
+ */
+
+/**
+ * The event name.
+ * @name CKEDITOR.eventInfo.prototype.name
+ * @field
+ * @type String
+ */
+
+/**
+ * The object that publishes (sends) the event.
+ * @name CKEDITOR.eventInfo.prototype.sender
+ * @field
+ * @type Object
+ */
+
+/**
+ * The editor instance that holds the sender. May be the same as sender. May be
+ * null if the sender is not part of an editor instance, like a component
+ * running in standalone mode.
+ * @name CKEDITOR.eventInfo.prototype.editor
+ * @field
+ * @type CKEDITOR.editor
+ */
+
+/**
+ * Any kind of additional data. Its format and usage is event dependent.
+ * @name CKEDITOR.eventInfo.prototype.data
+ * @field
+ * @type Object
+ */
+
+/**
+ * Any extra data appended during the listener registration.
+ * @name CKEDITOR.eventInfo.prototype.listenerData
+ * @field
+ * @type Object
+ */
+
+/**
+ * Indicates that no further listeners are to be called.
+ * @name CKEDITOR.eventInfo.prototype.stop
+ * @function
+ */
+
+/**
+ * Indicates that the event is to be cancelled (if cancelable).
+ * @name CKEDITOR.eventInfo.prototype.cancel
+ * @function
+ */
Index: /CKEditor/branches/prototype/_source/core/loader.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/loader.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/loader.js	(revision 2083)
@@ -0,0 +1,131 @@
+﻿/*
+ * 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 ==
+ */
+
+if ( typeof CKEDITOR == 'undefined' )
+	CKEDITOR = {};
+
+/**
+ * Load core scripts and their dependencies from _source.
+ * @namespace
+ * @example
+ */
+CKEDITOR.loader = (function()
+{
+	// Table of script names and their dependencies.
+	var scripts =
+	{
+		'core/_bootstrap'		: [ 'core/config', 'core/ckeditor', 'core/scriptLoader', 'core/tools' ],
+		'core/ajax'				: [ 'core/xml' ],
+		'core/ckeditor'			: [ 'core/ajax', 'core/ckeditor_basic', 'core/dom', 'core/editor', 'core/dom/element', 'core/event', 'core/tools' ],
+		'core/ckeditor_base'	: [],
+		'core/ckeditor_basic'	: [ 'core/env', 'core/event' ],
+		'core/config'			: [ 'core/ckeditor_base' ],
+		'core/dom'				: [],
+		'core/dom/element'		: [ 'core/dom' ],
+		'core/editor'			: [ 'core/config', 'core/event', 'core/tools' ],
+		'core/env'				: [],
+		'core/event'			: [],
+		'core/scriptLoader'		: [ 'core/dom/element', 'core/env' ],
+		'core/tools'			: [ 'core/env' ],
+		'core/xml'				: [ 'core/env' ]
+	};
+
+	var loadedScripts = {};
+
+	/** @lends CKEDITOR.loader */
+	return {
+		basePath : (function()
+		{
+			// This is a copy of CKEDITOR.basePath, but requires the script having
+			// "_source/core/loader.js".
+			if ( CKEDITOR && CKEDITOR.basePath )
+				return CKEDITOR.basePath;
+
+			// Find out the editor directory path, based on its <script> tag.
+			var path = '';
+			var scripts = document.getElementsByTagName( 'script' );
+
+			for ( var i = 0 ; i < scripts.length ; i++ )
+			{
+				var match = scripts[i].src.match( /(^|.*[\\\/])_source\/core\/loader.js(?:\?.*)?$/i );
+
+				if ( match )
+				{
+					path = match[1];
+					break;
+				}
+			}
+
+			// In IE (only) the script.src string is the raw valued entered in the
+			// HTML. Other browsers return the full resolved URL instead.
+			if ( path.indexOf('://') == -1 )
+			{
+				// Absolute path.
+				if ( path.indexOf( '/' ) == 0 )
+					path = location.href.match( /^.*?:\/\/[^\/]*/ )[0] + path;
+				// Relative path.
+				else
+					path = location.href.match( /^[^\?]*\// )[0] + path;
+			}
+
+			return path;
+		})(),
+
+		/**
+		 * The list of loaded scripts in the loading order.
+		 * @type Array
+		 */
+		loadedScripts : [],
+
+		load : function( scriptName )
+		{
+			// Check if the script has already been loaded.
+			if ( scriptName in loadedScripts )
+				return;
+
+			// Get the script dependencies list.
+			var dependencies = scripts[ scriptName ];
+			if ( !dependencies )
+				throw 'The script name"' + scriptName + '" is not defined.';
+
+			// Mark the script as loaded, even before really loading it, to
+			// avoid cross references recursion.
+			loadedScripts[ scriptName ] = true;
+			
+			// Load all dependencies first.
+			for ( var i = 0 ; i < dependencies.length ; i++ )
+				this.load( dependencies[ i ] );
+
+			// Append this script to the list of loaded scripts.
+			this.loadedScripts.push( scriptName );
+
+			// Append the <script> element to the DOM.
+			document.write( '<script src="' + this.basePath + '_source/' + scriptName + '.js" type="text/javascript"><\/script>' );
+		}
+	};
+})();
+
+// Check if any script has been defined for autoload.
+if ( CKEDITOR._autoLoad )
+{
+	CKEDITOR.loader.load( CKEDITOR._autoLoad );
+	delete CKEDITOR._autoLoad;
+}
Index: /CKEditor/branches/prototype/_source/core/scriptloader.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/scriptloader.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/scriptloader.js	(revision 2083)
@@ -0,0 +1,88 @@
+﻿/*
+ * 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 ==
+ */
+
+/**
+ * Load scripts asynchronously.
+ * @namespace
+ * @example
+ */
+CKEDITOR.scriptLoader = (function()
+{
+	var uniqueScripts = {};
+
+	return /** @lends CKEDITOR.scriptLoader */ {
+		load : function( scriptUrl, callback, scope, noCheck )
+		{
+			if ( noCheck !== true )
+			{
+				if ( uniqueScripts[ scriptUrl ] )
+					return false;
+
+				uniqueScripts[ scriptUrl ] = true;
+			}
+
+			// Create the <script> element.
+			var script = new CKEDITOR.dom.element( 'script' );
+			script.setAttributes( {
+				type : 'text/javascript',
+				src : scriptUrl } );
+
+			if ( callback )
+			{
+				if ( CKEDITOR.env.ie )
+				{
+					script.$.onreadystatechange = function ()
+					{
+						if ( script.$.readyState == 'loaded' || script.$.readyState == 'complete' )
+							callback.call( scope || CKEDITOR );
+					}
+				}
+				else
+				{
+					script.$.onload = function()
+					{
+						callback.call( scope || CKEDITOR );
+					}
+				}
+			}
+
+			// Append it to <head>.
+			script.appendTo( CKEDITOR.dom.element.getHead() );
+
+			return true;
+		},
+
+		loadCode : function( code )
+		{
+			// Create the <script> element.
+			var script = new CKEDITOR.dom.element( 'script' );
+			script.setAttribute( 'type', 'text/javascript' );
+
+			if ( CKEDITOR.env.ie )
+				script.setText( code );
+			else
+				script.appendText( code );
+
+			// Append it to <head>.
+			script.appendTo( CKEDITOR.dom.element.getHead() );
+		}
+	};
+})();
Index: /CKEditor/branches/prototype/_source/core/test.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/test.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/test.js	(revision 2083)
@@ -0,0 +1,45 @@
+﻿/*
+ * 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 ==
+ */
+
+/**
+ * Contains functions used at our testing environment. Currently,
+ * our testing system is based on the YUI Test Project.
+ * @namespace
+ */
+CKEDITOR.test =
+{
+	/**
+	 * The assertion namespace, containing all assertion functions. Currently,
+	 * this is an alias for YAHOO.util.Assert.
+	 * @namespace
+	 */
+	assert : YAHOO.util.Assert,
+
+	/**
+	 * Adds a test case to the test runner.
+	 * @param {Object} testCase The test case object. See other tests for
+	 *		examples.
+	 */
+	addTestCase : function( testCase )
+	{
+		YAHOO.tool.TestRunner.add( new YAHOO.tool.TestCase( testCase ) );
+	}
+};
Index: /CKEditor/branches/prototype/_source/core/tools.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/tools.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/tools.js	(revision 2083)
@@ -0,0 +1,126 @@
+﻿/*
+ * 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 ==
+ */
+
+/**
+ * Utility functions.
+ * @namespace
+ * @example
+ */
+CKEDITOR.tools =
+{
+	/**
+	 * Evaluates a script in a window (global) scope.
+	 * @param {String} script The script code to be evaluated.
+	 * @param {Object} [win] The target window. Defaults to the current window.
+	 * @type undefined
+	 * @example
+	 * var script = 'function sample() { alert( "Go!" ); }';
+	 *
+	 * // Evaluates a script in the current window.
+	 * CKEDITOR.tools.globalEval( script );
+	 *
+	 * // Evaluates a script in the parent window.
+	 * CKEDITOR.tools.globalEval( script, window.parent );
+	 *
+	 * // Alerts "Go!" twice.
+	 * window.sample();
+	 * window.parent.sample();
+	 */
+	globalEval : function( script, win )
+	{
+		if ( !win )
+			win = window;
+
+		if ( win.execScript )
+			win.execScript( script );	// IE
+		else if ( CKEDITOR.env.webkit )
+		{
+			// win.eval in Safari executes in the current window environment,
+			// instead of win. The following should make it work.
+			var doc = win.document;
+			var scriptEl = doc.createElement('script');
+			scriptEl.appendChild( doc.createTextNode( script ) );
+			doc.documentElement.appendChild( scriptEl );
+		}
+		else
+			eval.call( win, script );
+	},
+
+	/**
+	 * Copy the properties from one object to another. By default, properties
+	 * already present in the target object <strong>are not</strong> overwritten.
+	 * @param {Object} target The object to be extended.
+	 * @param {Object} source The object from which copy properties.
+	 * @param {Boolean} [overwrite] Indicates that properties already present
+	 *		in the target object must be overwritten.
+	 * @returns {Object} the extended object (target).
+	 * @example
+	 * // Create the sample object.
+	 * var myObject =
+	 * {
+	 *     prop1 : true
+	 * };
+	 *
+	 * // Extend the above object with two properties.
+	 * CKEDITOR.tools.extend( myObject,
+	 *     {
+	 *         prop2 : true,
+	 *         prop3 : true
+	 *     } );
+	 *
+	 * // Alert "prop1", "prop2" and "prop3".
+	 * for ( var p in myObject )
+	 *     alert( p ) ;
+	 */
+	extend : function( target, source, overwrite )
+	{
+		this.each( source, function( value, propertyName )
+			{
+				if ( overwrite || target[propertyName] == undefined )
+					target[propertyName] = value;
+			} );
+		return target;
+	},
+
+	// Call a function for each element present in an object.
+	each : function( object, callback, scope )
+	{
+		if ( !scope )
+			scope = object;
+
+		var length = object.length;
+
+		if ( length == undefined )
+		{
+			for ( var name in object )
+			{
+				if ( callback.call( scope, object[ name ], name ) === false )
+					break;
+			}
+		}
+		else
+		{
+			for ( var value, i = 0 ;
+				i < length && ( ( value = object[i] ) || 1) && callback.call( scope, value, i ) !== false ; i++ )
+			{}
+		}
+	}
+};
Index: /CKEditor/branches/prototype/_source/core/xml.js
===================================================================
--- /CKEditor/branches/prototype/_source/core/xml.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/core/xml.js	(revision 2083)
@@ -0,0 +1,168 @@
+﻿/*
+ * 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 ==
+ */
+
+/**
+ * @fileOverview The XML object class, representing a loaded XML document.
+ */
+ 
+/**
+ * Represents a loaded XML document.
+ * @constructor
+ * @param {object|string} xmlObjectOrData A native XML (DOM document) object or
+ *		a string containing the XML definition to be loaded.
+ */
+CKEDITOR.xml = function( xmlObjectOrData )
+{
+	var baseXml = null;
+
+	if ( typeof xmlObjectOrData == 'object' )
+		baseXml = xmlObjectOrData;
+	else
+	{
+		if ( window.DOMParser )
+			baseXml = (new DOMParser()).parseFromString( xmlObjectOrData || '', 'text/xml' );
+		else if ( window.ActiveXObject )
+		{
+			try { baseXml = new ActiveXObject( 'MSXML2.DOMDocument' ); }
+			catch(e)
+			{
+				try { baseXml = new ActiveXObject( 'Microsoft.XmlDom' ); } catch(e) {}
+			}
+
+			if ( baseXml )
+			{
+				baseXml.async = false;
+				baseXml.resolveExternals = false;
+				baseXml.validateOnParse = false;
+				baseXml.loadXML( xmlObjectOrData || '' );
+			}
+		}
+	}
+
+	/**
+	 * The native XML (DOM document) used by the class instance.
+	 * @type object
+	 */
+	this.baseXml = baseXml;
+};
+
+CKEDITOR.xml.prototype =
+{
+	/**
+	 * Get a single node from the XML document, based on a XPath query.
+	 * @param {String} xpath The XPath query to execute.
+	 * @param {Object} [contextNode] The XML DOM node to be used as the context
+	 *		for the XPath query. The document root is used by default.
+	 * @returns {Object} A XML node element or null if the query has no results.
+	 * @example
+	 * // Create the XML instance.
+	 * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
+	 * // Get the first <item> node.
+	 * var itemNode = <b>xml.selectSingleNode( 'list/item' )</b>;
+	 * // Alert "item".
+	 * alert( itemNode.nodeName );
+	 */
+	selectSingleNode : function( xpath, contextNode )
+	{
+		var baseXml = this.baseXml;
+
+		if ( contextNode || ( contextNode = baseXml ) )
+		{
+			if ( CKEDITOR.env.ie || contextNode.selectSingleNode )	// IE
+				return contextNode.selectSingleNode( xpath );
+			else if ( baseXml.evaluate )							// Others
+			{
+				var result = baseXml.evaluate( xpath, contextNode, null, 9, null);
+				return ( result && result.singleNodeValue ) || null;
+			}
+		}
+
+		return null;
+	},
+
+	/**
+	 * Gets a list node from the XML document, based on a XPath query.
+	 * @param {String} xpath The XPath query to execute.
+	 * @param {Object} [contextNode] The XML DOM node to be used as the context
+	 *		for the XPath query. The document root is used by default.
+	 * @returns {Array} An array containing all matched nodes. The array will
+	 *		be empty if the query has no results.
+	 * @example
+	 * // Create the XML instance.
+	 * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
+	 * // Get the first <item> node.
+	 * var itemNodes = xml.selectSingleNode( 'list/item' );
+	 * // Alert "item" twice, one for each <item>.
+	 * for ( var i = 0 ; i < itemNodes.length ; i++ )
+	 *     alert( itemNodes[i].nodeName );
+	 */
+	selectNodes : function( xpath, contextNode )
+	{
+		var baseXml = this.baseXml,
+			nodes = [];
+
+		if ( contextNode || ( contextNode = baseXml ) )
+		{
+			if ( CKEDITOR.env.ie || contextNode.selectNodes )		// IE
+				return contextNode.selectNodes( xpath );
+			else if ( baseXml.evaluate )							// Others
+			{
+				var result = baseXml.evaluate( xpath, contextNode, null, 5, null);
+
+				if ( result )
+				{
+					var node;
+					while( ( node = result.iterateNext() ) )
+						nodes.push( node );
+				}
+			}
+		}
+
+		return nodes;
+	},
+
+	/**
+	 * Gets the string representation of a XML node, based on a XPath query.
+	 * @param {String} xpath The XPath query to execute.
+	 * @param {Object} [contextNode] The XML DOM node to be used as the context
+	 *		for the XPath query. The document root is used by default.
+	 * @returns {String} The textual representation of the XML node or null if
+	 *		the query has no results.
+	 * @example
+	 * // Create the XML instance.
+	 * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
+	 * // Alert "<item id="test1" />".
+	 * alert( xml.getOuterXml( 'list/item' ) );
+	 */
+	getOuterXml : function( xpath, contextNode )
+	{
+		var node = this.selectSingleNode( xpath, contextNode );
+		if ( node )
+		{
+			if ( node.xml )				// IE
+				return node.xml;
+			else if ( window.XMLSerializer )	// Others
+				return ( new XMLSerializer() ).serializeToString( node );
+		}
+
+		return null;
+	}
+};
Index: /CKEditor/branches/prototype/_source/plugins/themes/default.js
===================================================================
--- /CKEditor/branches/prototype/_source/plugins/themes/default.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/plugins/themes/default.js	(revision 2083)
@@ -0,0 +1,28 @@
+﻿/*
+ * 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 ==
+ */
+ 
+CKEDITOR.theme.add( 'default',
+{
+	build : function { instance )
+	{
+		
+	}
+});
Index: /CKEditor/branches/prototype/_source/tests/_assets/sample.js
===================================================================
--- /CKEditor/branches/prototype/_source/tests/_assets/sample.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/_assets/sample.js	(revision 2083)
@@ -0,0 +1,1 @@
+﻿var testVar = 'Test!';
Index: /CKEditor/branches/prototype/_source/tests/_assets/sample.txt
===================================================================
--- /CKEditor/branches/prototype/_source/tests/_assets/sample.txt	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/_assets/sample.txt	(revision 2083)
@@ -0,0 +1,1 @@
+Sample Text
Index: /CKEditor/branches/prototype/_source/tests/_assets/sample.xml
===================================================================
--- /CKEditor/branches/prototype/_source/tests/_assets/sample.xml	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/_assets/sample.xml	(revision 2083)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<list>
+	<item id="test1" />
+	<item id="test2" />
+</list>
Index: /CKEditor/branches/prototype/_source/tests/_assets/sample_xml.txt
===================================================================
--- /CKEditor/branches/prototype/_source/tests/_assets/sample_xml.txt	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/_assets/sample_xml.txt	(revision 2083)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<list>
+	<item id="test1" />
+	<item id="test2" />
+</list>
Index: /CKEditor/branches/prototype/_source/tests/_template.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/_template.html	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/_template.html	(revision 2083)
@@ -0,0 +1,37 @@
+<!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">
+<head>
+	<title>CKEDITOR.script_name</title>
+	<link rel="stylesheet" type="text/css" href="../test.css" />
+	<script type="text/javascript" src="../../../ckeditor.js"></script>
+	<script type="text/javascript" src="../test.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+CKEDITOR.test.addTestCase( (function()
+{
+	// Local reference to the "assert" object.
+	var assert = CKEDITOR.test.assert;
+
+	return {
+		test_name : function()
+		{
+			assert.areEqual( desired, value, 'error_message' );
+			assert.areSame( desired, value, 'error_message' );
+
+			assert.isString( value, 'error_message' );
+
+			assert.isTrue( value, 'error_message' );
+			assert.isFalse( value, 'error_message' );
+		},
+
+		name : document.title
+	};
+})() );
+
+	//]]>
+	</script>
+</head>
+<body>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_source/tests/core/ajax.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/ajax.html	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/core/ajax.html	(revision 2083)
@@ -0,0 +1,139 @@
+<!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">
+<head>
+	<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="../test.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+CKEDITOR.test.addTestCase( (function()
+{
+	// Local reference to the "assert" object.
+	var assert = CKEDITOR.test.assert;
+
+	return {
+		test_load_sync : function()
+		{
+			var data = CKEDITOR.ajax.load( '../_assets/sample.txt' );
+			assert.areSame( 'Sample Text', data, 'The loaded data doesn\'t match' );
+		},
+
+		test_load_sync_404 : function()
+		{
+			var data = CKEDITOR.ajax.load( '../_assets/404.txt' );
+			assert.isNull( data );
+		},
+
+		test_load_async : function()
+		{
+			var testCase = this;
+			var callback = function( data )
+			{
+				testCase.resume( function()
+					{
+						assert.areSame( 'Sample Text', data, 'The loaded data doesn\'t match' );
+					} );
+			};
+
+			CKEDITOR.ajax.load( '../_assets/sample.txt', callback );
+			this.wait();
+		},
+
+		test_load_async_404 : function()
+		{
+			var testCase = this;
+			var callback = function( data )
+			{
+				testCase.resume( function()
+					{
+						assert.isNull( data );
+					} );
+			};
+
+			CKEDITOR.ajax.load( '../_assets/404.txt', callback );
+			this.wait();
+		},
+
+		test_loadXml_sync : function()
+		{
+			var data = CKEDITOR.ajax.loadXml( '../_assets/sample.xml' );
+			assert.isInstanceOf( CKEDITOR.xml, data );
+			assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
+			assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
+		},
+
+		test_loadXml_sync_404 : function()
+		{
+			var data = CKEDITOR.ajax.loadXml( '../_assets/404.xml' );
+			assert.isNull( data );
+		},
+
+		test_loadXml_async : function()
+		{
+			var testCase = this;
+			var callback = function( data )
+			{
+				testCase.resume( function()
+					{
+						assert.isInstanceOf( CKEDITOR.xml, data );
+						assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
+						assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
+					} );
+			};
+
+			CKEDITOR.ajax.loadXml( '../_assets/sample.xml', callback );
+			this.wait();
+		},
+
+		test_loadXml_async_404 : function()
+		{
+			var testCase = this;
+			var callback = function( data )
+			{
+				testCase.resume( function()
+					{
+						assert.isNull( data );
+					} );
+			};
+
+			CKEDITOR.ajax.loadXml( '../_assets/404.xml', callback );
+			this.wait();
+		},
+
+		test_loadXml_sync_txt : function()
+		{
+			var data = CKEDITOR.ajax.loadXml( '../_assets/sample_xml.txt' );
+			assert.isInstanceOf( CKEDITOR.xml, data );
+			assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
+			assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
+		},
+
+		test_loadXml_async_txt : function()
+		{
+			var testCase = this;
+			var callback = function( data )
+			{
+				testCase.resume( function()
+					{
+						assert.isInstanceOf( CKEDITOR.xml, data );
+						assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
+						assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
+					} );
+			};
+
+			CKEDITOR.ajax.loadXml( '../_assets/sample_xml.txt', callback );
+			this.wait();
+		},
+
+		name : document.title
+	};
+})() );
+
+	//]]>
+	</script>
+</head>
+<body>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_source/tests/core/dom/element.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/dom/element.html	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/core/dom/element.html	(revision 2083)
@@ -0,0 +1,87 @@
+﻿<!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">
+<head>
+	<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="../../test.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+CKEDITOR.test.addTestCase( (function()
+{
+	// Local reference to the "assert" object.
+	var assert = CKEDITOR.test.assert;
+
+	return {
+		test_$ : function()
+		{
+			var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
+			assert.areSame( document.getElementById( 'test1' ), element.$ );
+		},
+
+		test_getId1 : function()
+		{
+			var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
+			assert.areEqual( 'test1', element.getId() );
+		},
+
+		test_getId2 : function()
+		{
+			var element = new CKEDITOR.dom.element( document.getElementsByTagName( 'div' )[0] );
+			assert.isNull( element.getId() );
+		},
+
+		test_getNameAtt1 : function()
+		{
+			var element = new CKEDITOR.dom.element( document.getElementsByName( 'named1' )[0] );
+			assert.areEqual( 'named1', element.getNameAtt() );
+		},
+
+		test_getNameAtt2 : function()
+		{
+			var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
+			assert.isNull( element.getNameAtt() );
+		},
+
+		test_getName : function()
+		{
+			var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
+			assert.areEqual( 'textarea', element.getName() );
+		},
+
+		test_hide : function()
+		{
+			var nativeElement = document.getElementById( 'test1' );
+			nativeElement.style.display = '';
+
+			var element = new CKEDITOR.dom.element( nativeElement );
+			element.hide();
+
+			assert.areEqual( 'none', nativeElement.style.display );
+		},
+
+		test_show : function()
+		{
+			var nativeElement = document.getElementById( 'test1' );
+			nativeElement.style.display = '';
+
+			var element = new CKEDITOR.dom.element( nativeElement );
+			element.show();
+
+			assert.areEqual( '', nativeElement.style.display );
+		},
+
+		name : document.title
+	};
+})() );
+
+	//]]>
+	</script>
+</head>
+<body>
+	<textarea id="test1" rows="10" cols="80"></textarea>
+	<textarea name="named1" rows="10" cols="80"></textarea>
+	<div>Test</div>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_source/tests/core/env.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/env.html	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/core/env.html	(revision 2083)
@@ -0,0 +1,41 @@
+<!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">
+<head>
+	<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="../test.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+CKEDITOR.test.addTestCase( (function()
+{
+	// Local reference to the "assert" object.
+	var assert = CKEDITOR.test.assert;
+
+	return {
+		test_ie : function()
+		{
+			if ( window.ActiveXObject )
+			{
+				assert.isTrue( CKEDITOR.env.ie		, 'ie should be true' );
+				assert.isFalse( CKEDITOR.env.opera	, 'opera should be false' );
+				assert.isFalse( CKEDITOR.env.webkit	, 'webkit should be false' );
+				assert.isFalse( CKEDITOR.env.air	, 'air should be false' );
+				assert.isFalse( CKEDITOR.env.gecko	, 'gecko should be false' );
+				assert.isFalse( CKEDITOR.env.mac	, 'ismac should be false' );
+			}
+			else
+				assert.isFalse( CKEDITOR.env.ie );
+		},
+
+		name : document.title
+	};
+})() );
+
+	//]]>
+	</script>
+</head>
+<body>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_source/tests/core/event.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/event.html	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/core/event.html	(revision 2083)
@@ -0,0 +1,427 @@
+<!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">
+<head>
+	<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="../test.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+CKEDITOR.test.addTestCase( (function()
+{
+	// Local reference to the "assert" object.
+	var assert = CKEDITOR.test.assert;
+
+	return {
+		test_inherit : function()
+		{
+			// Create a testClass that inherits from CKEDITOR.event.
+			var testClass = function()
+			{
+				CKEDITOR.event.call( this );
+			};
+			testClass.prototype = CKEDITOR.event.prototype;
+
+			var calls = [];
+
+			var testInstance = new testClass();
+
+			testInstance.on( 'someevent', function( ev )
+				{
+					assert.areSame( testInstance, this, 'Scope 1 is not valid' );
+
+					assert.areSame( 'someevent', ev.name, 'ev.name (1) is wrong' );
+					assert.areSame( testInstance, ev.sender, 'ev.sender (1) is wrong' );
+					assert.isUndefined( ev.editor, 'ev.editor (1) is wrong' );
+					assert.isUndefined( ev.data, 'ev.data (1) is wrong' );
+					assert.isUndefined( ev.listenerData, 'ev.listenerData (1) is wrong' );
+
+					calls.push( 'a' );
+				} );
+
+			testInstance.on( 'someevent', function( ev )
+				{
+					assert.areSame( testInstance, this, 'Scope 2 is not valid' );
+
+					assert.areSame( 'someevent', ev.name, 'ev.name (2) is wrong' );
+					assert.areSame( testInstance, ev.sender, 'ev.sender (2) is wrong' );
+					assert.isUndefined( ev.editor, 'ev.editor (2) is wrong' );
+					assert.isUndefined( ev.data, 'ev.data (2) is wrong' );
+					assert.isUndefined( ev.listenerData, 'ev.listenerData (2) is wrong' );
+
+					calls.push( 'b' );
+				} );
+
+			assert.areSame( false, testInstance.fire( 'someevent' ) );
+
+			assert.areSame( 2, calls.length, 'number of calls doesn\'t match' );
+			assert.areSame( 'a,b', calls.toString() );
+		},
+
+		test_implementOn : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = { someprop : 'Test' };
+			CKEDITOR.event.implementOn( testObject );
+
+			assert.areSame( 'Test', testObject.someprop );
+
+			var calls = [];
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( testObject, this, 'Scope 1 is not valid' );
+
+					assert.areSame( 'someevent', ev.name, 'ev.name (1) is wrong' );
+					assert.areSame( testObject, ev.sender, 'ev.sender (1) is wrong' );
+					assert.isUndefined( ev.editor, 'ev.editor (1) is wrong' );
+					assert.isUndefined( ev.data, 'ev.data (1) is wrong' );
+					assert.isUndefined( ev.listenerData, 'ev.listenerData (1) is wrong' );
+
+					calls.push( 'a' );
+				} );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( testObject, this, 'Scope 2 is not valid' );
+
+					assert.areSame( 'someevent', ev.name, 'ev.name (2) is wrong' );
+					assert.areSame( testObject, ev.sender, 'ev.sender (2) is wrong' );
+					assert.isUndefined( ev.editor, 'ev.editor (2) is wrong' );
+					assert.isUndefined( ev.data, 'ev.data (2) is wrong' );
+					assert.isUndefined( ev.listenerData, 'ev.listenerData (2) is wrong' );
+
+					calls.push( 'b' );
+				} );
+
+			assert.areSame( false, testObject.fire( 'someevent' ) );
+
+			assert.areSame( 2, calls.length, 'number of calls doesn\'t match' );
+			assert.areSame( 'a,b', calls.toString() );
+		},
+
+		test_eventNameCase : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			var counter = 0;
+
+			// Event Names are case sensitive.
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( 'someevent', ev.name, 'ev.name (someevent) is wrong' );
+					counter++;
+				} );
+
+			testObject.on( 'SomeEvent', function( ev )
+				{
+					assert.areSame( 'SomeEvent', ev.name, 'ev.name (SomeEvent) is wrong' );
+					counter++;
+				} );
+
+			testObject.fire( 'someevent' );
+			assert.areSame( 1, counter, '"someevent" calls doesn\'t match' );
+
+			counter = 0;
+
+			testObject.fire( 'SomeEvent' );
+			assert.areSame( 1, counter, '"SomeEvent" calls doesn\'t match' );
+		},
+
+		test_scope : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			// Counter used just to check that the calls are effectively done.
+			var counter = 0;
+
+			var testScope = {};
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( testObject, this, 'scope (testObject) is wrong' );
+					assert.areSame( testObject, ev.sender, 'sender (testObject) is wrong' );
+					counter++;
+				} );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( testScope, this, 'scope (testScope) is wrong' );
+					assert.areSame( testObject, ev.sender, 'sender (testScope) is wrong' );
+					counter++;
+				}, testScope );
+
+			testObject.fire( 'someevent' );
+
+			assert.areSame( 2, counter, 'wrong number of calls' );
+		},
+
+		test_listenerData : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			// Counter used just to check that the calls are effectively done.
+			var counter = 0;
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( 'Test1', ev.listenerData, 'listenerData (1) is wrong' );
+					counter++;
+				}, null, 'Test1'  );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( 'Test2', ev.listenerData, 'listenerData (2) is wrong' );
+					counter++;
+				}, null, 'Test2' );
+
+			testObject.fire( 'someevent' );
+
+			assert.areSame( 2, counter, 'wrong number of calls' );
+		},
+
+		test_data : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			// Counter used just to check that the calls are effectively done.
+			var counter = 0;
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( 'Test data', ev.data, 'data (1) is wrong' );
+					counter++;
+				} );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( 'Test data', ev.data, 'data (2) is wrong' );
+					counter++;
+				} );
+
+			testObject.fire( 'someevent', 'Test data' );
+
+			assert.areSame( 2, counter, 'wrong number of calls' );
+		},
+
+		test_editor : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			// Counter used just to check that the calls are effectively done.
+			var counter = 0;
+			
+			var editor = {};
+			
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( editor, ev.editor, 'editor is wrong' );
+					counter++;
+				} );
+
+			testObject.fire( 'someevent', null, editor );
+
+			assert.areSame( 1, counter, 'wrong number of calls' );
+		},
+
+		test_stop : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			var counter = 0;
+
+			testObject.on( 'someevent', function( ev )
+				{
+					ev.stop();
+					counter++;
+				} );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					counter++;
+				} );
+
+			assert.areSame( false, testObject.fire( 'someevent' ), 'fire must return "false"' );
+			assert.areSame( 1, counter, 'number of calls doesn\'t match' );
+		},
+
+		test_cancel : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			var counter = 0;
+
+			testObject.on( 'someevent', function( ev )
+				{
+					ev.cancel();
+					counter++;
+				} );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					counter++;
+				} );
+
+			assert.areSame( true, testObject.fire( 'someevent' ), 'fire must return "true"' );
+			assert.areSame( 1, counter, 'number of calls doesn\'t match' );
+		},
+		
+		test_dataManipulation : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			var counter = 0;
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( 'Test1', ev.data );
+					ev.data = 'Test2';
+					counter++;
+				} );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( 'Test2', ev.data );
+					ev.data = 'Test3';
+					counter++;
+				} );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					assert.areSame( 'Test3', ev.data );
+					ev.data = 'Test4';
+					counter++;
+				} );
+
+			assert.areSame( 'Test4', testObject.fire( 'someevent', 'Test1' ), 'fire must return "Test4"' );
+			assert.areSame( 3, counter, 'number of calls doesn\'t match' );
+		},
+
+		test_priority : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			var calls = [];
+
+			testObject.on( 'someevent', function( ev )
+				{
+					calls.push( 'e' );
+				}, null, null, 11 );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					calls.push( 'c' );
+				} );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					calls.push( 'a' );
+				}, null, null, 9 );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					calls.push( 'f' );
+				}, null, null, 11 );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					calls.push( 'd' );
+				} );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					calls.push( 'b' );
+				}, null, null, 9 );
+
+			testObject.fire( 'someevent', 'Test data' );
+			assert.areSame( 'a,b,c,d,e,f', calls.toString() );
+		},
+
+		test_removeListener : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			var calls = [];
+			
+			var listener = function( ev )
+				{
+					calls.push( 'a' );
+				};
+
+			testObject.on( 'someevent', listener );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					calls.push( 'b' );
+				} );
+
+			testObject.fire( 'someevent', 'Test data' );
+			assert.areSame( 'a,b', calls.toString() );
+			
+			testObject.removeListener( 'someevent', listener );
+
+			calls = [];
+
+			testObject.fire( 'someevent', 'Test data' );
+			assert.areSame( 'b', calls.toString() );
+		},
+
+		test_fireOnce : function()
+		{
+			// Create a testObject and implement CKEDITOR.event on it.
+			var testObject = {};
+			CKEDITOR.event.implementOn( testObject );
+
+			var counter = 0;
+
+			testObject.on( 'someevent', function( ev )
+				{
+					counter++;
+				} );
+
+			testObject.on( 'someevent', function( ev )
+				{
+					counter++;
+				} );
+
+			assert.areSame( false, testObject.fireOnce( 'someevent' ), 'fireOnce must return "false"' );
+			assert.areSame( 2, counter, 'number of calls doesn\'t match' );
+
+			counter = 0;
+
+			assert.areSame( false, testObject.fire( 'someevent' ), 'fire must return "false"' );
+			assert.areSame( 0, counter, 'number of calls doesn\'t match' );
+		},
+
+		name : document.title
+	};
+})() );
+
+	//]]>
+	</script>
+</head>
+<body>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_source/tests/core/scriptloader.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/scriptloader.html	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/core/scriptloader.html	(revision 2083)
@@ -0,0 +1,48 @@
+﻿<!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">
+<head>
+	<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="../test.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+CKEDITOR.test.addTestCase( (function()
+{
+	// Local reference to the "assert" object.
+	var assert = CKEDITOR.test.assert;
+
+	return {
+		test_loadCode : function()
+		{
+			CKEDITOR.scriptLoader.loadCode( 'var test="Testing!";' );
+
+			assert.areEqual( 'Testing!', test );
+		},
+
+		test_load : function()
+		{
+			var testCase = this;
+			var callback = function( data )
+			{
+				testCase.resume( function()
+					{
+						assert.areSame( 'Test!', testVar );
+					} );
+			};
+
+			CKEDITOR.scriptLoader.load( '../_assets/sample.js', callback );
+			this.wait();
+		},
+
+		name : document.title
+	};
+})() );
+
+	//]]>
+	</script>
+</head>
+<body>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_source/tests/core/tools.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/core/tools.html	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/core/tools.html	(revision 2083)
@@ -0,0 +1,112 @@
+<!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">
+<head>
+	<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="../test.js"></script>
+	<script type="text/javascript">
+	//<![CDATA[
+
+CKEDITOR.test.addTestCase( (function()
+{
+	// Local reference to the "assert" object.
+	var assert = CKEDITOR.test.assert;
+
+	return {
+		test_globalEval_1 : function()
+		{
+			CKEDITOR.tools.globalEval( 'var __test_globalEval = "OK";' );
+			assert.isString( window.__test_globalEval, 'The global variable should be a string' );
+			assert.areEqual( 'OK', window.__test_globalEval, 'Global variable is corrupt' );
+		},
+
+		test_globalEval_2 : function()
+		{
+			var iframe = document.getElementsByTagName('iframe')[0];
+			var win = iframe.contentWindow;
+
+			CKEDITOR.tools.globalEval( 'var __test_globalEval = "OK";', win );
+			assert.isString( win.__test_globalEval, 'The global variable should be a string' );
+			assert.areEqual( 'OK', win.__test_globalEval, 'Global variable is corrupt' );
+		},
+
+		test_extend : function()
+		{
+			var fakeFn = function() {};
+			var fakeObj = { fake1 : 1, fake2 : 2 };
+			var fakeArray = [ 'Test', 10, fakeFn, fakeObj ];
+
+			var target =
+			{
+				prop1 : 'Test',
+				prop2 : 10,
+				prop3 : fakeFn,
+				prop4 : fakeObj,
+				prop5 : fakeArray
+			}
+
+			CKEDITOR.tools.extend( target,
+				{
+					prop3 : 'Wrong',
+					prop6 : 'Good',
+					prop7 : fakeArray
+				} );
+
+			assert.areSame( 'Test'		, target.prop1, 'prop1 doesn\'t match' );
+			assert.areSame( 10			, target.prop2, 'prop2 doesn\'t match' );
+			assert.areSame( fakeFn		, target.prop3, 'prop3 doesn\'t match' );
+			assert.areSame( fakeObj		, target.prop4, 'prop4 doesn\'t match' );
+			assert.areSame( fakeArray	, target.prop5, 'prop5 doesn\'t match' );
+			assert.areSame( 'Good'		, target.prop6, 'prop6 doesn\'t match' );
+			assert.areSame( fakeArray	, target.prop7, 'prop7 doesn\'t match' );
+		},
+		
+		test_each1 : function()
+		{
+			var source = [ 'T', 10, function(){}, [], {}, null ];
+			var target = [];
+			
+			CKEDITOR.tools.each ( source, function( value, index )
+				{
+					target[index] = value;
+				} );
+			
+			for ( var i = 0 ; i < source.length ; i++ )
+				assert.areSame( source[i], target[i], 'Index ' + i + ' doesn\'t match' );
+
+			assert.areEqual( source.length, target.length, 'Different lengths' );
+			assert.areNotEqual( source, target, 'Different arrays are expected' );
+		},
+
+		test_each2 : function()
+		{
+			var source = { a : 'T', b : 10, c : function(){}, d : [], e : {}, f : null };
+			var target = {};
+			
+			CKEDITOR.tools.each ( source, function( value, name )
+				{
+					target[name] = value;
+				} );
+			
+			assert.areSame( source.a, target.a, 'Property "a" doesn\'t match' );
+			assert.areSame( source.b, target.b, 'Property "b" doesn\'t match' );
+			assert.areSame( source.c, target.c, 'Property "c" doesn\'t match' );
+			assert.areSame( source.d, target.d, 'Property "d" doesn\'t match' );
+			assert.areSame( source.e, target.e, 'Property "e" doesn\'t match' );
+			assert.areSame( source.f, target.f, 'Property "f" doesn\'t match' );
+
+			assert.areNotEqual( source, target, 'Different objects are expected' );
+		},
+
+		name : document.title
+	};
+})() );
+
+	//]]>
+	</script>
+</head>
+<body>
+	<iframe></iframe>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_source/tests/test.css
===================================================================
--- /CKEditor/branches/prototype/_source/tests/test.css	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/test.css	(revision 2083)
@@ -0,0 +1,97 @@
+﻿/*
+ * 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 ==
+ */
+
+body
+{
+	margin:10px;
+}
+
+#testLogger
+{
+	position: absolute;
+	right: 10px;
+	left: 10px;
+	top: 10px;
+	font-family: Monospace;
+	border: solid 2px black;
+	background: #ffffff;
+	padding: 0px;
+}
+
+/* IE6 */
+* html #testLogger
+{
+	width: 100%;
+}
+
+#testLogger.testAll
+{
+	position: static;
+}
+
+#testLogger pre
+{
+	margin: 0 0 0 40px;
+	background-color: #f0f0f0;
+	padding: 1px 4px 1px 4px;
+}
+
+#testLogger div
+{
+	margin: 2px;
+}
+
+#testLogger div div
+{
+	margin-left: 20px;
+}
+
+.testEntry
+{
+	padding: 5px;
+	margin: 0 !important;
+}
+
+.testEntry:hover
+{
+	background-color: #ffff99;
+}
+
+.testFail, .testPass, .testIgnore
+{
+	padding-left: 3px;
+	padding-right: 3px;
+}
+
+.testFail
+{
+	background-color: #ff0000;
+}
+
+.testPass
+{
+	background-color: #00ff00;
+}
+
+.testIgnore
+{
+	background-color: #f1f100;
+}
Index: /CKEditor/branches/prototype/_source/tests/test.js
===================================================================
--- /CKEditor/branches/prototype/_source/tests/test.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/test.js	(revision 2083)
@@ -0,0 +1,77 @@
+﻿/*
+ * 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 ==
+ */
+
+// Inject the YUI Test files into the page.
+// URLs copied from http://developer.yahoo.com/yui/yuitest/
+document.write(
+	'<script type="text/javascript" src="' + CKEDITOR.basePath + '_source/tests/yuitest.js"></script>' );
+
+document.write(
+	'<script type="text/javascript" src="' + CKEDITOR.basePath + '_source/core/test.js"></script>' );
+
+(function()
+{
+	var createLogger = function()
+	{
+		document.body.appendChild( document.createElement( 'div' ) ).id = 'testLogger';
+	};
+
+	var outputResult = function( text )
+	{
+		var div = document.getElementById('testLogger').appendChild( document.createElement( 'div' ) );
+		div.className = 'testEntry';
+		div.innerHTML = text;
+	};
+
+	window.onload = function()
+	{
+		createLogger();
+		var runner = YAHOO.tool.TestRunner;
+
+		var handleTestResult = function( data )
+		{
+			switch( data.type )
+			{
+				case runner.TEST_FAIL_EVENT:
+					outputResult( '<span class="testFail">FAIL</span> Test named "' + data.testName + '" failed with message: "' + data.error.message + '".<div>Expected:</div><pre>' + data.error.expected + '</pre><div>Actual:</div><pre>' + data.error.actual + '</pre>' );
+					break;
+				case runner.TEST_PASS_EVENT:
+					outputResult( '<span class="testPass">PASS</span> Test named "' + data.testName + '" passed.' );
+					break;
+				case runner.TEST_IGNORE_EVENT:
+					outputResult( '<span class="testIgnore">IGNORE</span> Test named "' + data.testName + '" was ignored.' );
+					break;
+			}
+		};
+
+		runner.subscribe(runner.TEST_FAIL_EVENT, handleTestResult);
+		runner.subscribe(runner.TEST_IGNORE_EVENT, handleTestResult);
+		runner.subscribe(runner.TEST_PASS_EVENT, handleTestResult);
+
+		if ( window.parent && window.parent.onTestStart )
+		{
+			runner.subscribe(runner.TEST_CASE_BEGIN_EVENT, window.parent.onTestStart);
+			runner.subscribe(runner.TEST_CASE_COMPLETE_EVENT, window.parent.onTestComplete);
+		}
+
+		runner.run();
+	}
+})();
Index: /CKEditor/branches/prototype/_source/tests/testall.html
===================================================================
--- /CKEditor/branches/prototype/_source/tests/testall.html	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/testall.html	(revision 2083)
@@ -0,0 +1,84 @@
+<!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">
+<head>
+	<title>CKEditor Core Tests Runner</title>
+	<link rel="stylesheet" type="text/css" href="test.css" />
+	<script type="text/javascript">
+	//<![CDATA[
+
+var testList =
+[
+	'core/ajax',
+	'core/dom/element',
+	'core/env',
+	'core/event',
+	'core/scriptloader',
+	'core/tools'
+];
+
+var currentTest;
+var totalFailed = 0;
+var totalPassed = 0;
+
+function runTest()
+{
+	currentTest = testList.shift();
+	
+	if ( currentTest )
+		document.getElementById( 'testFrame' ).src = currentTest + '.html';
+}
+
+function onTestStart( data )
+{
+	var div = document.getElementById('testLogger').appendChild( document.createElement( 'div' ) );
+	div.className = 'testEntry';
+	div.innerHTML = 'Testing "' + data.testCase.name + '"...';
+}
+
+function onTestComplete( data )
+{
+	var failed = data.results.failed;
+	var passed = data.results.passed;
+	
+	var html = '<span class="testIgnore">Unknown</span>';
+
+	if ( failed > 0 ) 
+		html = '<span class="testFail">FAIL</span>';
+	else
+		html = '<span class="testPass">PASS</span>';
+
+	html += ' <a href="' + currentTest + '.html" target="_blank">Test case "' + data.testCase.name + '"</a> (' + failed + ' failed / ' + passed + ' passed)';
+
+	var div = document.getElementById('testLogger').lastChild;
+	div.innerHTML = html;
+
+	totalFailed += failed;
+	totalPassed += passed;
+
+	document.getElementById('testFailed').innerHTML = totalFailed;
+	document.getElementById('testPassed').innerHTML = totalPassed;
+	
+	document.title = totalFailed + ' failed / ' + totalPassed + ' passed - CKEditor Core Tests Runner';
+
+	runTest();
+}
+
+window.onload = function()
+{
+	// IE was "caching" the latest logged div on refresh. So, we must clean it
+	// on startup.
+	document.getElementById('testLogger').innerHTML = '';
+	
+	runTest();
+};
+
+	//]]>
+	</script>
+</head>
+<body>
+	<h1>CKEditor Core Tests Runner (<span id="testFailed">0</span> failed / <span id="testPassed">0</span> passed)</h1>
+	<iframe id="testFrame" src="javascript:;" style="position: absolute; width: 50px; height: 50px; left: -1000px">
+	</iframe>
+	<div id="testLogger" class="testAll"></div>
+</body>
+</html>
Index: /CKEditor/branches/prototype/_source/tests/yuitest.js
===================================================================
--- /CKEditor/branches/prototype/_source/tests/yuitest.js	(revision 2083)
+++ /CKEditor/branches/prototype/_source/tests/yuitest.js	(revision 2083)
@@ -0,0 +1,35 @@
+﻿/*
+Copyright (c) 2008, Yahoo! Inc. All rights reserved.
+Code licensed under the BSD License:
+http://developer.yahoo.net/yui/license.txt
+version: 2.5.2
+*/
+
+/*
+This file contains the YUI Tester code as well as its dependencies, in the
+order defined at:
+http://developer.yahoo.com/yui/yuitest/
+*/
+
+// yahoo-dom-event/yahoo-dom-event.js
+if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}A=B.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=A[0];}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var A=YAHOO.lang,C=["toString","valueOf"],B={isArray:function(D){if(D){return A.isNumber(D.length)&&A.isFunction(D.splice);}return false;},isBoolean:function(D){return typeof D==="boolean";},isFunction:function(D){return typeof D==="function";},isNull:function(D){return D===null;},isNumber:function(D){return typeof D==="number"&&isFinite(D);},isObject:function(D){return(D&&(typeof D==="object"||A.isFunction(D)))||false;},isString:function(D){return typeof D==="string";},isUndefined:function(D){return typeof D==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(F,E){for(var D=0;D<C.length;D=D+1){var H=C[D],G=E[H];if(A.isFunction(G)&&G!=Object.prototype[H]){F[H]=G;}}}:function(){},extend:function(H,I,G){if(!I||!H){throw new Error("extend failed, please check that "+"all dependencies are included.");}var E=function(){};E.prototype=I.prototype;H.prototype=new E();H.prototype.constructor=H;H.superclass=I.prototype;if(I.prototype.constructor==Object.prototype.constructor){I.prototype.constructor=I;}if(G){for(var D in G){if(A.hasOwnProperty(G,D)){H.prototype[D]=G[D];}}A._IEEnumFix(H.prototype,G);}},augmentObject:function(H,G){if(!G||!H){throw new Error("Absorb failed, verify dependencies.");}var D=arguments,F,I,E=D[2];if(E&&E!==true){for(F=2;F<D.length;F=F+1){H[D[F]]=G[D[F]];}}else{for(I in G){if(E||!(I in H)){H[I]=G[I];}}A._IEEnumFix(H,G);}},augmentProto:function(G,F){if(!F||!G){throw new Error("Augment failed, verify dependencies.");}var D=[G.prototype,F.prototype];for(var E=2;E<arguments.length;E=E+1){D.push(arguments[E]);}A.augmentObject.apply(this,D);},dump:function(D,I){var F,H,K=[],L="{...}",E="f(){...}",J=", ",G=" => ";if(!A.isObject(D)){return D+"";}else{if(D instanceof Date||("nodeType" in D&&"tagName" in D)){return D;}else{if(A.isFunction(D)){return E;}}}I=(A.isNumber(I))?I:3;if(A.isArray(D)){K.push("[");for(F=0,H=D.length;F<H;F=F+1){if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}if(K.length>1){K.pop();}K.push("]");}else{K.push("{");for(F in D){if(A.hasOwnProperty(D,F)){K.push(F+G);if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}}if(K.length>1){K.pop();}K.push("}");}return K.join("");},substitute:function(S,E,L){var I,H,G,O,P,R,N=[],F,J="dump",M=" ",D="{",Q="}";for(;;){I=S.lastIndexOf(D);if(I<0){break;}H=S.indexOf(Q,I);if(I+1>=H){break;}F=S.substring(I+1,H);O=F;R=null;G=O.indexOf(M);if(G>-1){R=O.substring(G+1);O=O.substring(0,G);}P=E[O];if(L){P=L(O,P,R);}if(A.isObject(P)){if(A.isArray(P)){P=A.dump(P,parseInt(R,10));}else{R=R||"";var K=R.indexOf(J);if(K>-1){R=R.substring(4);}if(P.toString===Object.prototype.toString||K>-1){P=A.dump(P,parseInt(R,10));}else{P=P.toString();}}}else{if(!A.isString(P)&&!A.isNumber(P)){P="~-"+N.length+"-~";N[N.length]=F;}}S=S.substring(0,I)+P+S.substring(H+1);}for(I=N.length-1;I>=0;I=I-1){S=S.replace(new RegExp("~-"+I+"-~"),"{"+N[I]+"}","g");}return S;},trim:function(D){try{return D.replace(/^\s+|\s+$/g,"");}catch(E){return D;}},merge:function(){var G={},E=arguments;for(var F=0,D=E.length;F<D;F=F+1){A.augmentObject(G,E[F],true);}return G;},later:function(K,E,L,G,H){K=K||0;E=E||{};var F=L,J=G,I,D;if(A.isString(L)){F=E[L];}if(!F){throw new TypeError("method undefined");}if(!A.isArray(J)){J=[G];}I=function(){F.apply(E,J);};D=(H)?setInterval(I,K):setTimeout(I,K);return{interval:H,cancel:function(){if(this.interval){clearInterval(D);}else{clearTimeout(D);}}};},isValue:function(D){return(A.isObject(D)||A.isString(D)||A.isNumber(D)||A.isBoolean(D));}};A.hasOwnProperty=(Object.prototype.hasOwnProperty)?function(D,E){return D&&D.hasOwnProperty(E);}:function(D,E){return !A.isUndefined(D[E])&&D.constructor.prototype[E]!==D[E];};B.augmentObject(A,B,true);YAHOO.util.Lang=A;A.augment=A.augmentProto;YAHOO.augment=A.augmentProto;YAHOO.extend=A.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.5.2",build:"1076"});YAHOO.util.Get=function(){var M={},L=0,Q=0,E=false,N=YAHOO.env.ua,R=YAHOO.lang;var J=function(V,S,W){var T=W||window,X=T.document,Y=X.createElement(V);for(var U in S){if(S[U]&&YAHOO.lang.hasOwnProperty(S,U)){Y.setAttribute(U,S[U]);}}return Y;};var H=function(S,T,V){var U=V||"utf-8";return J("link",{"id":"yui__dyn_"+(Q++),"type":"text/css","charset":U,"rel":"stylesheet","href":S},T);
+};var O=function(S,T,V){var U=V||"utf-8";return J("script",{"id":"yui__dyn_"+(Q++),"type":"text/javascript","charset":U,"src":S},T);};var A=function(S,T){return{tId:S.tId,win:S.win,data:S.data,nodes:S.nodes,msg:T,purge:function(){D(this.tId);}};};var B=function(S,V){var T=M[V],U=(R.isString(S))?T.win.document.getElementById(S):S;if(!U){P(V,"target node not found: "+S);}return U;};var P=function(V,U){var S=M[V];if(S.onFailure){var T=S.scope||S.win;S.onFailure.call(T,A(S,U));}};var C=function(V){var S=M[V];S.finished=true;if(S.aborted){var U="transaction "+V+" was aborted";P(V,U);return ;}if(S.onSuccess){var T=S.scope||S.win;S.onSuccess.call(T,A(S));}};var G=function(U,Y){var T=M[U];if(T.aborted){var W="transaction "+U+" was aborted";P(U,W);return ;}if(Y){T.url.shift();if(T.varName){T.varName.shift();}}else{T.url=(R.isString(T.url))?[T.url]:T.url;if(T.varName){T.varName=(R.isString(T.varName))?[T.varName]:T.varName;}}var b=T.win,a=b.document,Z=a.getElementsByTagName("head")[0],V;if(T.url.length===0){if(T.type==="script"&&N.webkit&&N.webkit<420&&!T.finalpass&&!T.varName){var X=O(null,T.win,T.charset);X.innerHTML='YAHOO.util.Get._finalize("'+U+'");';T.nodes.push(X);Z.appendChild(X);}else{C(U);}return ;}var S=T.url[0];if(T.type==="script"){V=O(S,b,T.charset);}else{V=H(S,b,T.charset);}F(T.type,V,U,S,b,T.url.length);T.nodes.push(V);if(T.insertBefore){var c=B(T.insertBefore,U);if(c){c.parentNode.insertBefore(V,c);}}else{Z.appendChild(V);}if((N.webkit||N.gecko)&&T.type==="css"){G(U,S);}};var K=function(){if(E){return ;}E=true;for(var S in M){var T=M[S];if(T.autopurge&&T.finished){D(T.tId);delete M[S];}}E=false;};var D=function(Z){var W=M[Z];if(W){var Y=W.nodes,S=Y.length,X=W.win.document,V=X.getElementsByTagName("head")[0];if(W.insertBefore){var U=B(W.insertBefore,Z);if(U){V=U.parentNode;}}for(var T=0;T<S;T=T+1){V.removeChild(Y[T]);}}W.nodes=[];};var I=function(T,S,U){var W="q"+(L++);U=U||{};if(L%YAHOO.util.Get.PURGE_THRESH===0){K();}M[W]=R.merge(U,{tId:W,type:T,url:S,finished:false,nodes:[]});var V=M[W];V.win=V.win||window;V.scope=V.scope||V.win;V.autopurge=("autopurge" in V)?V.autopurge:(T==="script")?true:false;R.later(0,V,G,W);return{tId:W};};var F=function(b,W,V,T,X,Y,a){var Z=a||G;if(N.ie){W.onreadystatechange=function(){var c=this.readyState;if("loaded"===c||"complete"===c){Z(V,T);}};}else{if(N.webkit){if(b==="script"){if(N.webkit>=420){W.addEventListener("load",function(){Z(V,T);});}else{var S=M[V];if(S.varName){var U=YAHOO.util.Get.POLL_FREQ;S.maxattempts=YAHOO.util.Get.TIMEOUT/U;S.attempts=0;S._cache=S.varName[0].split(".");S.timer=R.later(U,S,function(h){var e=this._cache,d=e.length,c=this.win,f;for(f=0;f<d;f=f+1){c=c[e[f]];if(!c){this.attempts++;if(this.attempts++>this.maxattempts){var g="Over retry limit, giving up";S.timer.cancel();P(V,g);}else{}return ;}}S.timer.cancel();Z(V,T);},null,true);}else{R.later(YAHOO.util.Get.POLL_FREQ,null,Z,[V,T]);}}}}else{W.onload=function(){Z(V,T);};}}};return{POLL_FREQ:10,PURGE_THRESH:20,TIMEOUT:2000,_finalize:function(S){R.later(0,null,C,S);},abort:function(T){var U=(R.isString(T))?T:T.tId;var S=M[U];if(S){S.aborted=true;}},script:function(S,T){return I("script",S,T);},css:function(S,T){return I("css",S,T);}};}();YAHOO.register("get",YAHOO.util.Get,{version:"2.5.2",build:"1076"});(function(){var Y=YAHOO,util=Y.util,lang=Y.lang,env=Y.env,PROV="_provides",SUPER="_supersedes",REQ="expanded",AFTER="_after";var YUI={dupsAllowed:{"yahoo":true,"get":true},info:{"base":"http://yui.yahooapis.com/2.5.2/build/","skin":{"defaultSkin":"sam","base":"assets/skins/","path":"skin.css","after":["reset","fonts","grids","base"],"rollup":3},dupsAllowed:["yahoo","get"],"moduleInfo":{"animation":{"type":"js","path":"animation/animation-min.js","requires":["dom","event"]},"autocomplete":{"type":"js","path":"autocomplete/autocomplete-min.js","requires":["dom","event"],"optional":["connection","animation"],"skinnable":true},"base":{"type":"css","path":"base/base-min.css","after":["reset","fonts","grids"]},"button":{"type":"js","path":"button/button-min.js","requires":["element"],"optional":["menu"],"skinnable":true},"calendar":{"type":"js","path":"calendar/calendar-min.js","requires":["event","dom"],"skinnable":true},"charts":{"type":"js","path":"charts/charts-experimental-min.js","requires":["element","json","datasource"]},"colorpicker":{"type":"js","path":"colorpicker/colorpicker-min.js","requires":["slider","element"],"optional":["animation"],"skinnable":true},"connection":{"type":"js","path":"connection/connection-min.js","requires":["event"]},"container":{"type":"js","path":"container/container-min.js","requires":["dom","event"],"optional":["dragdrop","animation","connection"],"supersedes":["containercore"],"skinnable":true},"containercore":{"type":"js","path":"container/container_core-min.js","requires":["dom","event"],"pkg":"container"},"cookie":{"type":"js","path":"cookie/cookie-beta-min.js","requires":["yahoo"]},"datasource":{"type":"js","path":"datasource/datasource-beta-min.js","requires":["event"],"optional":["connection"]},"datatable":{"type":"js","path":"datatable/datatable-beta-min.js","requires":["element","datasource"],"optional":["calendar","dragdrop"],"skinnable":true},"dom":{"type":"js","path":"dom/dom-min.js","requires":["yahoo"]},"dragdrop":{"type":"js","path":"dragdrop/dragdrop-min.js","requires":["dom","event"]},"editor":{"type":"js","path":"editor/editor-beta-min.js","requires":["menu","element","button"],"optional":["animation","dragdrop"],"supersedes":["simpleeditor"],"skinnable":true},"element":{"type":"js","path":"element/element-beta-min.js","requires":["dom","event"]},"event":{"type":"js","path":"event/event-min.js","requires":["yahoo"]},"fonts":{"type":"css","path":"fonts/fonts-min.css"},"get":{"type":"js","path":"get/get-min.js","requires":["yahoo"]},"grids":{"type":"css","path":"grids/grids-min.css","requires":["fonts"],"optional":["reset"]},"history":{"type":"js","path":"history/history-min.js","requires":["event"]},"imagecropper":{"type":"js","path":"imagecropper/imagecropper-beta-min.js","requires":["dom","event","dragdrop","element","resize"],"skinnable":true},"imageloader":{"type":"js","path":"imageloader/imageloader-min.js","requires":["event","dom"]},"json":{"type":"js","path":"json/json-min.js","requires":["yahoo"]},"layout":{"type":"js","path":"layout/layout-beta-min.js","requires":["dom","event","element"],"optional":["animation","dragdrop","resize","selector"],"skinnable":true},"logger":{"type":"js","path":"logger/logger-min.js","requires":["event","dom"],"optional":["dragdrop"],"skinnable":true},"menu":{"type":"js","path":"menu/menu-min.js","requires":["containercore"],"skinnable":true},"profiler":{"type":"js","path":"profiler/profiler-beta-min.js","requires":["yahoo"]},"profilerviewer":{"type":"js","path":"profilerviewer/profilerviewer-beta-min.js","requires":["profiler","yuiloader","element"],"skinnable":true},"reset":{"type":"css","path":"reset/reset-min.css"},"reset-fonts-grids":{"type":"css","path":"reset-fonts-grids/reset-fonts-grids.css","supersedes":["reset","fonts","grids","reset-fonts"],"rollup":4},"reset-fonts":{"type":"css","path":"reset-fonts/reset-fonts.css","supersedes":["reset","fonts"],"rollup":2},"resize":{"type":"js","path":"resize/resize-beta-min.js","requires":["dom","event","dragdrop","element"],"optional":["animation"],"skinnable":true},"selector":{"type":"js","path":"selector/selector-beta-min.js","requires":["yahoo","dom"]},"simpleeditor":{"type":"js","path":"editor/simpleeditor-beta-min.js","requires":["element"],"optional":["containercore","menu","button","animation","dragdrop"],"skinnable":true,"pkg":"editor"},"slider":{"type":"js","path":"slider/slider-min.js","requires":["dragdrop"],"optional":["animation"]},"tabview":{"type":"js","path":"tabview/tabview-min.js","requires":["element"],"optional":["connection"],"skinnable":true},"treeview":{"type":"js","path":"treeview/treeview-min.js","requires":["event"],"skinnable":true},"uploader":{"type":"js","path":"uploader/uploader-experimental.js","requires":["element"]},"utilities":{"type":"js","path":"utilities/utilities.js","supersedes":["yahoo","event","dragdrop","animation","dom","connection","element","yahoo-dom-event","get","yuiloader","yuiloader-dom-event"],"rollup":8},"yahoo":{"type":"js","path":"yahoo/yahoo-min.js"},"yahoo-dom-event":{"type":"js","path":"yahoo-dom-event/yahoo-dom-event.js","supersedes":["yahoo","event","dom"],"rollup":3},"yuiloader":{"type":"js","path":"yuiloader/yuiloader-beta-min.js","supersedes":["yahoo","get"]},"yuiloader-dom-event":{"type":"js","path":"yuiloader-dom-event/yuiloader-dom-event.js","supersedes":["yahoo","dom","event","get","yuiloader","yahoo-dom-event"],"rollup":5},"yuitest":{"type":"js","path":"yuitest/yuitest-min.js","requires":["logger"],"skinnable":true}}},ObjectUtil:{appendArray:function(o,a){if(a){for(var i=0;
+i<a.length;i=i+1){o[a[i]]=true;}}},keys:function(o,ordered){var a=[],i;for(i in o){if(lang.hasOwnProperty(o,i)){a.push(i);}}return a;}},ArrayUtil:{appendArray:function(a1,a2){Array.prototype.push.apply(a1,a2);},indexOf:function(a,val){for(var i=0;i<a.length;i=i+1){if(a[i]===val){return i;}}return -1;},toObject:function(a){var o={};for(var i=0;i<a.length;i=i+1){o[a[i]]=true;}return o;},uniq:function(a){return YUI.ObjectUtil.keys(YUI.ArrayUtil.toObject(a));}}};YAHOO.util.YUILoader=function(o){this._internalCallback=null;this._useYahooListener=false;this.onSuccess=null;this.onFailure=Y.log;this.onProgress=null;this.scope=this;this.data=null;this.insertBefore=null;this.charset=null;this.varName=null;this.base=YUI.info.base;this.ignore=null;this.force=null;this.allowRollup=true;this.filter=null;this.required={};this.moduleInfo=lang.merge(YUI.info.moduleInfo);this.rollups=null;this.loadOptional=false;this.sorted=[];this.loaded={};this.dirty=true;this.inserted={};var self=this;env.listeners.push(function(m){if(self._useYahooListener){self.loadNext(m.name);}});this.skin=lang.merge(YUI.info.skin);this._config(o);};Y.util.YUILoader.prototype={FILTERS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},SKIN_PREFIX:"skin-",_config:function(o){if(o){for(var i in o){if(lang.hasOwnProperty(o,i)){if(i=="require"){this.require(o[i]);}else{this[i]=o[i];}}}}var f=this.filter;if(lang.isString(f)){f=f.toUpperCase();if(f==="DEBUG"){this.require("logger");}if(!Y.widget.LogWriter){Y.widget.LogWriter=function(){return Y;};}this.filter=this.FILTERS[f];}},addModule:function(o){if(!o||!o.name||!o.type||(!o.path&&!o.fullpath)){return false;}o.ext=("ext" in o)?o.ext:true;o.requires=o.requires||[];this.moduleInfo[o.name]=o;this.dirty=true;return true;},require:function(what){var a=(typeof what==="string")?arguments:what;this.dirty=true;YUI.ObjectUtil.appendArray(this.required,a);},_addSkin:function(skin,mod){var name=this.formatSkin(skin),info=this.moduleInfo,sinf=this.skin,ext=info[mod]&&info[mod].ext;if(!info[name]){this.addModule({"name":name,"type":"css","path":sinf.base+skin+"/"+sinf.path,"after":sinf.after,"rollup":sinf.rollup,"ext":ext});}if(mod){name=this.formatSkin(skin,mod);if(!info[name]){var mdef=info[mod],pkg=mdef.pkg||mod;this.addModule({"name":name,"type":"css","after":sinf.after,"path":pkg+"/"+sinf.base+skin+"/"+mod+".css","ext":ext});}}return name;},getRequires:function(mod){if(!mod){return[];}if(!this.dirty&&mod.expanded){return mod.expanded;}mod.requires=mod.requires||[];var i,d=[],r=mod.requires,o=mod.optional,info=this.moduleInfo,m;for(i=0;i<r.length;i=i+1){d.push(r[i]);m=info[r[i]];YUI.ArrayUtil.appendArray(d,this.getRequires(m));}if(o&&this.loadOptional){for(i=0;i<o.length;i=i+1){d.push(o[i]);YUI.ArrayUtil.appendArray(d,this.getRequires(info[o[i]]));}}mod.expanded=YUI.ArrayUtil.uniq(d);return mod.expanded;},getProvides:function(name,notMe){var addMe=!(notMe),ckey=(addMe)?PROV:SUPER,m=this.moduleInfo[name],o={};if(!m){return o;}if(m[ckey]){return m[ckey];}var s=m.supersedes,done={},me=this;var add=function(mm){if(!done[mm]){done[mm]=true;lang.augmentObject(o,me.getProvides(mm));}};if(s){for(var i=0;i<s.length;i=i+1){add(s[i]);}}m[SUPER]=o;m[PROV]=lang.merge(o);m[PROV][name]=true;return m[ckey];},calculate:function(o){if(this.dirty){this._config(o);this._setup();this._explode();if(this.allowRollup){this._rollup();}this._reduce();this._sort();this.dirty=false;}},_setup:function(){var info=this.moduleInfo,name,i,j;for(name in info){var m=info[name];if(m&&m.skinnable){var o=this.skin.overrides,smod;if(o&&o[name]){for(i=0;i<o[name].length;i=i+1){smod=this._addSkin(o[name][i],name);}}else{smod=this._addSkin(this.skin.defaultSkin,name);}m.requires.push(smod);}}var l=lang.merge(this.inserted);if(!this._sandbox){l=lang.merge(l,env.modules);}if(this.ignore){YUI.ObjectUtil.appendArray(l,this.ignore);}if(this.force){for(i=0;i<this.force.length;i=i+1){if(this.force[i] in l){delete l[this.force[i]];}}}for(j in l){if(lang.hasOwnProperty(l,j)){lang.augmentObject(l,this.getProvides(j));}}this.loaded=l;},_explode:function(){var r=this.required,i,mod;for(i in r){mod=this.moduleInfo[i];if(mod){var req=this.getRequires(mod);if(req){YUI.ObjectUtil.appendArray(r,req);}}}},_skin:function(){},formatSkin:function(skin,mod){var s=this.SKIN_PREFIX+skin;if(mod){s=s+"-"+mod;}return s;},parseSkin:function(mod){if(mod.indexOf(this.SKIN_PREFIX)===0){var a=mod.split("-");return{skin:a[1],module:a[2]};}return null;},_rollup:function(){var i,j,m,s,rollups={},r=this.required,roll;if(this.dirty||!this.rollups){for(i in this.moduleInfo){m=this.moduleInfo[i];if(m&&m.rollup){rollups[i]=m;}}this.rollups=rollups;}for(;;){var rolled=false;for(i in rollups){if(!r[i]&&!this.loaded[i]){m=this.moduleInfo[i];s=m.supersedes;roll=false;if(!m.rollup){continue;}var skin=(m.ext)?false:this.parseSkin(i),c=0;if(skin){for(j in r){if(i!==j&&this.parseSkin(j)){c++;roll=(c>=m.rollup);if(roll){break;}}}}else{for(j=0;j<s.length;j=j+1){if(this.loaded[s[j]]&&(!YUI.dupsAllowed[s[j]])){roll=false;break;}else{if(r[s[j]]){c++;roll=(c>=m.rollup);if(roll){break;}}}}}if(roll){r[i]=true;rolled=true;this.getRequires(m);}}}if(!rolled){break;}}},_reduce:function(){var i,j,s,m,r=this.required;for(i in r){if(i in this.loaded){delete r[i];}else{var skinDef=this.parseSkin(i);if(skinDef){if(!skinDef.module){var skin_pre=this.SKIN_PREFIX+skinDef.skin;for(j in r){m=this.moduleInfo[j];var ext=m&&m.ext;if(!ext&&j!==i&&j.indexOf(skin_pre)>-1){delete r[j];}}}}else{m=this.moduleInfo[i];s=m&&m.supersedes;if(s){for(j=0;j<s.length;j=j+1){if(s[j] in r){delete r[s[j]];}}}}}}},_sort:function(){var s=[],info=this.moduleInfo,loaded=this.loaded,checkOptional=!this.loadOptional,me=this;var requires=function(aa,bb){if(loaded[bb]){return false;}var ii,mm=info[aa],rr=mm&&mm.expanded,after=mm&&mm.after,other=info[bb],optional=mm&&mm.optional;if(rr&&YUI.ArrayUtil.indexOf(rr,bb)>-1){return true;}if(after&&YUI.ArrayUtil.indexOf(after,bb)>-1){return true;
+}if(checkOptional&&optional&&YUI.ArrayUtil.indexOf(optional,bb)>-1){return true;}var ss=info[bb]&&info[bb].supersedes;if(ss){for(ii=0;ii<ss.length;ii=ii+1){if(requires(aa,ss[ii])){return true;}}}if(mm.ext&&mm.type=="css"&&(!other.ext)){return true;}return false;};for(var i in this.required){s.push(i);}var p=0;for(;;){var l=s.length,a,b,j,k,moved=false;for(j=p;j<l;j=j+1){a=s[j];for(k=j+1;k<l;k=k+1){if(requires(a,s[k])){b=s.splice(k,1);s.splice(j,0,b[0]);moved=true;break;}}if(moved){break;}else{p=p+1;}}if(!moved){break;}}this.sorted=s;},toString:function(){var o={type:"YUILoader",base:this.base,filter:this.filter,required:this.required,loaded:this.loaded,inserted:this.inserted};lang.dump(o,1);},insert:function(o,type){this.calculate(o);if(!type){var self=this;this._internalCallback=function(){self._internalCallback=null;self.insert(null,"js");};this.insert(null,"css");return ;}this._loading=true;this.loadType=type;this.loadNext();},sandbox:function(o,type){if(o){}else{}this._config(o);if(!this.onSuccess){throw new Error("You must supply an onSuccess handler for your sandbox");}this._sandbox=true;var self=this;if(!type||type!=="js"){this._internalCallback=function(){self._internalCallback=null;self.sandbox(null,"js");};this.insert(null,"css");return ;}if(!util.Connect){var ld=new YAHOO.util.YUILoader();ld.insert({base:this.base,filter:this.filter,require:"connection",insertBefore:this.insertBefore,charset:this.charset,onSuccess:function(){this.sandbox(null,"js");},scope:this},"js");return ;}this._scriptText=[];this._loadCount=0;this._stopCount=this.sorted.length;this._xhr=[];this.calculate();var s=this.sorted,l=s.length,i,m,url;for(i=0;i<l;i=i+1){m=this.moduleInfo[s[i]];if(!m){this.onFailure.call(this.scope,{msg:"undefined module "+m,data:this.data});for(var j=0;j<this._xhr.length;j=j+1){this._xhr[j].abort();}return ;}if(m.type!=="js"){this._loadCount++;continue;}url=m.fullpath||this._url(m.path);var xhrData={success:function(o){var idx=o.argument[0],name=o.argument[2];this._scriptText[idx]=o.responseText;if(this.onProgress){this.onProgress.call(this.scope,{name:name,scriptText:o.responseText,xhrResponse:o,data:this.data});}this._loadCount++;if(this._loadCount>=this._stopCount){var v=this.varName||"YAHOO";var t="(function() {\n";var b="\nreturn "+v+";\n})();";var ref=eval(t+this._scriptText.join("\n")+b);this._pushEvents(ref);if(ref){this.onSuccess.call(this.scope,{reference:ref,data:this.data});}else{this.onFailure.call(this.scope,{msg:this.varName+" reference failure",data:this.data});}}},failure:function(o){this.onFailure.call(this.scope,{msg:"XHR failure",xhrResponse:o,data:this.data});},scope:this,argument:[i,url,s[i]]};this._xhr.push(util.Connect.asyncRequest("GET",url,xhrData));}},loadNext:function(mname){if(!this._loading){return ;}if(mname){if(mname!==this._loading){return ;}this.inserted[mname]=true;if(this.onProgress){this.onProgress.call(this.scope,{name:mname,data:this.data});}}var s=this.sorted,len=s.length,i,m;for(i=0;i<len;i=i+1){if(s[i] in this.inserted){continue;}if(s[i]===this._loading){return ;}m=this.moduleInfo[s[i]];if(!m){this.onFailure.call(this.scope,{msg:"undefined module "+m,data:this.data});return ;}if(!this.loadType||this.loadType===m.type){this._loading=s[i];var fn=(m.type==="css")?util.Get.css:util.Get.script,url=m.fullpath||this._url(m.path),self=this,c=function(o){self.loadNext(o.data);};if(env.ua.webkit&&env.ua.webkit<420&&m.type==="js"&&!m.varName){c=null;this._useYahooListener=true;}fn(url,{data:s[i],onSuccess:c,insertBefore:this.insertBefore,charset:this.charset,varName:m.varName,scope:self});return ;}}this._loading=null;if(this._internalCallback){var f=this._internalCallback;this._internalCallback=null;f.call(this);}else{if(this.onSuccess){this._pushEvents();this.onSuccess.call(this.scope,{data:this.data});}}},_pushEvents:function(ref){var r=ref||YAHOO;if(r.util&&r.util.Event){r.util.Event._load();}},_url:function(path){var u=this.base||"",f=this.filter;u=u+path;if(f){u=u.replace(new RegExp(f.searchExp),f.replaceStr);}return u;}};})();(function(){var B=YAHOO.util,K,I,J={},F={},M=window.document;YAHOO.env._id_counter=YAHOO.env._id_counter||0;var C=YAHOO.env.ua.opera,L=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,G=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i,OP_SCROLL:/^(?:inline|table-row)$/i};var N=function(P){if(!E.HYPHEN.test(P)){return P;}if(J[P]){return J[P];}var Q=P;while(E.HYPHEN.exec(Q)){Q=Q.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}J[P]=Q;return Q;};var O=function(Q){var P=F[Q];if(!P){P=new RegExp("(?:^|\\s+)"+Q+"(?:\\s+|$)");F[Q]=P;}return P;};if(M.defaultView&&M.defaultView.getComputedStyle){K=function(P,S){var R=null;if(S=="float"){S="cssFloat";}var Q=P.ownerDocument.defaultView.getComputedStyle(P,"");if(Q){R=Q[N(S)];}return P.style[S]||R;};}else{if(M.documentElement.currentStyle&&G){K=function(P,R){switch(N(R)){case"opacity":var T=100;try{T=P.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(S){try{T=P.filters("alpha").opacity;}catch(S){}}return T/100;case"float":R="styleFloat";default:var Q=P.currentStyle?P.currentStyle[R]:null;return(P.style[R]||Q);}};}else{K=function(P,Q){return P.style[Q];};}}if(G){I=function(P,Q,R){switch(Q){case"opacity":if(YAHOO.lang.isString(P.style.filter)){P.style.filter="alpha(opacity="+R*100+")";if(!P.currentStyle||!P.currentStyle.hasLayout){P.style.zoom=1;}}break;case"float":Q="styleFloat";default:P.style[Q]=R;}};}else{I=function(P,Q,R){if(Q=="float"){Q="cssFloat";}P.style[Q]=R;};}var D=function(P,Q){return P&&P.nodeType==1&&(!Q||Q(P));};YAHOO.util.Dom={get:function(R){if(R&&(R.nodeType||R.item)){return R;}if(YAHOO.lang.isString(R)||!R){return M.getElementById(R);}if(R.length!==undefined){var S=[];for(var Q=0,P=R.length;Q<P;++Q){S[S.length]=B.Dom.get(R[Q]);}return S;}return R;},getStyle:function(P,R){R=N(R);var Q=function(S){return K(S,R);};return B.Dom.batch(P,Q,B.Dom,true);},setStyle:function(P,R,S){R=N(R);var Q=function(T){I(T,R,S);};B.Dom.batch(P,Q,B.Dom,true);},getXY:function(P){var Q=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=R.ownerDocument.body){return false;}return H(R);};return B.Dom.batch(P,Q,B.Dom,true);},getX:function(P){var Q=function(R){return B.Dom.getXY(R)[0];};return B.Dom.batch(P,Q,B.Dom,true);},getY:function(P){var Q=function(R){return B.Dom.getXY(R)[1];};return B.Dom.batch(P,Q,B.Dom,true);},setXY:function(P,S,R){var Q=function(V){var U=this.getStyle(V,"position");if(U=="static"){this.setStyle(V,"position","relative");U="relative";}var X=this.getXY(V);if(X===false){return false;}var W=[parseInt(this.getStyle(V,"left"),10),parseInt(this.getStyle(V,"top"),10)];if(isNaN(W[0])){W[0]=(U=="relative")?0:V.offsetLeft;}if(isNaN(W[1])){W[1]=(U=="relative")?0:V.offsetTop;}if(S[0]!==null){V.style.left=S[0]-X[0]+W[0]+"px";}if(S[1]!==null){V.style.top=S[1]-X[1]+W[1]+"px";}if(!R){var T=this.getXY(V);if((S[0]!==null&&T[0]!=S[0])||(S[1]!==null&&T[1]!=S[1])){this.setXY(V,S,true);}}};B.Dom.batch(P,Q,B.Dom,true);},setX:function(Q,P){B.Dom.setXY(Q,[P,null]);},setY:function(P,Q){B.Dom.setXY(P,[null,Q]);},getRegion:function(P){var Q=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=R.ownerDocument.body){return false;}var S=B.Region.getRegion(R);return S;};return B.Dom.batch(P,Q,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(T,X,U,V){X=X||"*";U=(U)?B.Dom.get(U):null||M;if(!U){return[];}var Q=[],P=U.getElementsByTagName(X),W=O(T);for(var R=0,S=P.length;R<S;++R){if(W.test(P[R].className)){Q[Q.length]=P[R];if(V){V.call(P[R],P[R]);}}}return Q;},hasClass:function(R,Q){var P=O(Q);var S=function(T){return P.test(T.className);};return B.Dom.batch(R,S,B.Dom,true);},addClass:function(Q,P){var R=function(S){if(this.hasClass(S,P)){return false;}S.className=YAHOO.lang.trim([S.className,P].join(" "));return true;};return B.Dom.batch(Q,R,B.Dom,true);},removeClass:function(R,Q){var P=O(Q);var S=function(T){if(!Q||!this.hasClass(T,Q)){return false;}var U=T.className;T.className=U.replace(P," ");if(this.hasClass(T,Q)){this.removeClass(T,Q);}T.className=YAHOO.lang.trim(T.className);return true;};return B.Dom.batch(R,S,B.Dom,true);},replaceClass:function(S,Q,P){if(!P||Q===P){return false;}var R=O(Q);var T=function(U){if(!this.hasClass(U,Q)){this.addClass(U,P);return true;}U.className=U.className.replace(R," "+P+" ");if(this.hasClass(U,Q)){this.replaceClass(U,Q,P);}U.className=YAHOO.lang.trim(U.className);return true;};return B.Dom.batch(S,T,B.Dom,true);},generateId:function(P,R){R=R||"yui-gen";var Q=function(S){if(S&&S.id){return S.id;}var T=R+YAHOO.env._id_counter++;if(S){S.id=T;}return T;};return B.Dom.batch(P,Q,B.Dom,true)||Q.apply(B.Dom,arguments);},isAncestor:function(P,Q){P=B.Dom.get(P);Q=B.Dom.get(Q);if(!P||!Q){return false;}if(P.contains&&Q.nodeType&&!L){return P.contains(Q);}else{if(P.compareDocumentPosition&&Q.nodeType){return !!(P.compareDocumentPosition(Q)&16);}else{if(Q.nodeType){return !!this.getAncestorBy(Q,function(R){return R==P;});}}}return false;},inDocument:function(P){return this.isAncestor(M.documentElement,P);},getElementsBy:function(W,Q,R,T){Q=Q||"*";R=(R)?B.Dom.get(R):null||M;if(!R){return[];}var S=[],V=R.getElementsByTagName(Q);for(var U=0,P=V.length;U<P;++U){if(W(V[U])){S[S.length]=V[U];if(T){T(V[U]);}}}return S;},batch:function(T,W,V,R){T=(T&&(T.tagName||T.item))?T:B.Dom.get(T);if(!T||!W){return false;}var S=(R)?V:window;if(T.tagName||T.length===undefined){return W.call(S,T,V);}var U=[];for(var Q=0,P=T.length;Q<P;++Q){U[U.length]=W.call(S,T[Q],V);}return U;},getDocumentHeight:function(){var Q=(M.compatMode!="CSS1Compat")?M.body.scrollHeight:M.documentElement.scrollHeight;var P=Math.max(Q,B.Dom.getViewportHeight());return P;},getDocumentWidth:function(){var Q=(M.compatMode!="CSS1Compat")?M.body.scrollWidth:M.documentElement.scrollWidth;var P=Math.max(Q,B.Dom.getViewportWidth());return P;},getViewportHeight:function(){var P=self.innerHeight;
+var Q=M.compatMode;if((Q||G)&&!C){P=(Q=="CSS1Compat")?M.documentElement.clientHeight:M.body.clientHeight;}return P;},getViewportWidth:function(){var P=self.innerWidth;var Q=M.compatMode;if(Q||G){P=(Q=="CSS1Compat")?M.documentElement.clientWidth:M.body.clientWidth;}return P;},getAncestorBy:function(P,Q){while(P=P.parentNode){if(D(P,Q)){return P;}}return null;},getAncestorByClassName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return B.Dom.hasClass(S,P);};return B.Dom.getAncestorBy(Q,R);},getAncestorByTagName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return S.tagName&&S.tagName.toUpperCase()==P.toUpperCase();};return B.Dom.getAncestorBy(Q,R);},getPreviousSiblingBy:function(P,Q){while(P){P=P.previousSibling;if(D(P,Q)){return P;}}return null;},getPreviousSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getPreviousSiblingBy(P);},getNextSiblingBy:function(P,Q){while(P){P=P.nextSibling;if(D(P,Q)){return P;}}return null;},getNextSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getNextSiblingBy(P);},getFirstChildBy:function(P,R){var Q=(D(P.firstChild,R))?P.firstChild:null;return Q||B.Dom.getNextSiblingBy(P.firstChild,R);},getFirstChild:function(P,Q){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getFirstChildBy(P);},getLastChildBy:function(P,R){if(!P){return null;}var Q=(D(P.lastChild,R))?P.lastChild:null;return Q||B.Dom.getPreviousSiblingBy(P.lastChild,R);},getLastChild:function(P){P=B.Dom.get(P);return B.Dom.getLastChildBy(P);},getChildrenBy:function(Q,S){var R=B.Dom.getFirstChildBy(Q,S);var P=R?[R]:[];B.Dom.getNextSiblingBy(R,function(T){if(!S||S(T)){P[P.length]=T;}return false;});return P;},getChildren:function(P){P=B.Dom.get(P);if(!P){}return B.Dom.getChildrenBy(P);},getDocumentScrollLeft:function(P){P=P||M;return Math.max(P.documentElement.scrollLeft,P.body.scrollLeft);},getDocumentScrollTop:function(P){P=P||M;return Math.max(P.documentElement.scrollTop,P.body.scrollTop);},insertBefore:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}return P.parentNode.insertBefore(Q,P);},insertAfter:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}if(P.nextSibling){return P.parentNode.insertBefore(Q,P.nextSibling);}else{return P.parentNode.appendChild(Q);}},getClientRegion:function(){var R=B.Dom.getDocumentScrollTop(),Q=B.Dom.getDocumentScrollLeft(),S=B.Dom.getViewportWidth()+Q,P=B.Dom.getViewportHeight()+R;return new B.Region(R,S,P,Q);}};var H=function(){if(M.documentElement.getBoundingClientRect){return function(Q){var R=Q.getBoundingClientRect();var P=Q.ownerDocument;return[R.left+B.Dom.getDocumentScrollLeft(P),R.top+B.Dom.getDocumentScrollTop(P)];};}else{return function(R){var S=[R.offsetLeft,R.offsetTop];var Q=R.offsetParent;var P=(L&&B.Dom.getStyle(R,"position")=="absolute"&&R.offsetParent==R.ownerDocument.body);if(Q!=R){while(Q){S[0]+=Q.offsetLeft;S[1]+=Q.offsetTop;if(!P&&L&&B.Dom.getStyle(Q,"position")=="absolute"){P=true;}Q=Q.offsetParent;}}if(P){S[0]-=R.ownerDocument.body.offsetLeft;S[1]-=R.ownerDocument.body.offsetTop;}Q=R.parentNode;while(Q.tagName&&!E.ROOT_TAG.test(Q.tagName)){if(Q.scrollTop||Q.scrollLeft){if(!E.OP_SCROLL.test(B.Dom.getStyle(Q,"display"))){if(!C||B.Dom.getStyle(Q,"overflow")!=="visible"){S[0]-=Q.scrollLeft;S[1]-=Q.scrollTop;}}}Q=Q.parentNode;}return S;};}}();})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.5.2",build:"1076"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var K=[],E=this.subscribers.length;if(!E&&this.silent){return true;}var I=[].slice.call(arguments,0),G=true,D,J=false;if(!this.silent){}var C=this.subscribers.slice(),A=YAHOO.util.Event.throwErrors;for(D=0;D<E;++D){var M=C[D];if(!M){J=true;}else{if(!this.silent){}var L=M.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var B=null;if(I.length>0){B=I[0];}try{G=M.fn.call(L,B,M.obj);}catch(F){this.lastError=F;if(A){throw F;}}}else{try{G=M.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=H;if(A){throw H;}}}if(false===G){if(!this.silent){}break;}}}return(G!==false);},unsubscribeAll:function(){for(var A=this.subscribers.length-1;A>-1;A--){this._delete(A);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){var K=this;var L=function(){K._tryPreloadAttach();};this._interval=setInterval(L,this.POLL_INTERVAL);}},onAvailable:function(P,M,Q,O,N){var K=(YAHOO.lang.isString(P))?[P]:P;for(var L=0;L<K.length;L=L+1){F.push({id:K[L],fn:M,obj:Q,override:O,checkReady:N});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(M,K,N,L){this.onAvailable(M,K,N,L,true);},onDOMReady:function(K,M,L){if(this.DOMReady){setTimeout(function(){var N=window;if(L){if(L===true){N=M;}else{N=L;}}K.call(N,"DOMReady",[],M);},0);}else{this.DOMReadyEvent.subscribe(K,M,L);}},addListener:function(M,K,V,Q,L){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var R=0,T=M.length;R<T;++R){W=this.on(M[R],K,V,Q,L)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var P=this.getEl(M);if(P){M=P;}else{this.onAvailable(M,function(){YAHOO.util.Event.on(M,K,V,Q,L);});return true;}}}if(!M){return false;}if("unload"==K&&Q!==this){J[J.length]=[M,K,V,Q,L];return true;}var Y=M;if(L){if(L===true){Y=Q;}else{Y=L;}}var N=function(Z){return V.call(Y,YAHOO.util.Event.getEvent(Z,M),Q);};var X=[M,K,V,N,Y,Q,L];var S=I.length;I[S]=X;if(this.useLegacyEvent(M,K)){var O=this.getLegacyIndex(M,K);if(O==-1||M!=G[O][0]){O=G.length;B[M.id+K]=O;G[O]=[M,K,M["on"+K]];E[O]=[];M["on"+K]=function(Z){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(Z),O);};}E[O].push(X);}else{try{this._simpleAdd(M,K,N,false);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}}return true;},fireLegacyEvent:function(O,M){var Q=true,K,S,R,T,P;S=E[M].slice();for(var L=0,N=S.length;L<N;++L){R=S[L];if(R&&R[this.WFN]){T=R[this.ADJ_SCOPE];P=R[this.WFN].call(T,O);Q=(Q&&P);}}K=G[M];if(K&&K[2]){K[2](O);}return Q;},getLegacyIndex:function(L,M){var K=this.generateId(L)+M;if(typeof B[K]=="undefined"){return -1;}else{return B[K];}},useLegacyEvent:function(L,M){if(this.webkit&&("click"==M||"dblclick"==M)){var K=parseInt(this.webkit,10);if(!isNaN(K)&&K<418){return true;}}return false;},removeListener:function(L,K,T){var O,R,V;if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var U=true;for(O=L.length-1;O>-1;O--){U=(this.removeListener(L[O],K,T)&&U);}return U;}}if(!T||!T.call){return this.purgeElement(L,false,K);}if("unload"==K){for(O=J.length-1;O>-1;O--){V=J[O];if(V&&V[0]==L&&V[1]==K&&V[2]==T){J.splice(O,1);return true;}}return false;}var P=null;var Q=arguments[3];if("undefined"===typeof Q){Q=this._getCacheIndex(L,K,T);}if(Q>=0){P=I[Q];}if(!L||!P){return false;}if(this.useLegacyEvent(L,K)){var N=this.getLegacyIndex(L,K);var M=E[N];if(M){for(O=0,R=M.length;O<R;++O){V=M[O];if(V&&V[this.EL]==L&&V[this.TYPE]==K&&V[this.FN]==T){M.splice(O,1);break;}}}}else{try{this._simpleRemove(L,K,P[this.WFN],false);}catch(S){this.lastError=S;return false;}}delete I[Q][this.WFN];delete I[Q][this.FN];I.splice(Q,1);return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;
+},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;}else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in D)){K=D[K];}return K;},_getCacheIndex:function(O,P,N){for(var M=0,L=I.length;M<L;M=M+1){var K=I[M];if(K&&K[this.FN]==N&&K[this.EL]==O&&K[this.TYPE]==P){return M;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+A;++A;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(F.length===0){C=0;clearInterval(this._interval);this._interval=null;return ;}if(this.locked){return ;}if(this.isIE){if(!this.DOMReady){this.startInterval();return ;}}this.locked=true;var Q=!H;if(!Q){Q=(C>0&&F.length>0);}var P=[];var R=function(T,U){var S=T;if(U.override){if(U.override===true){S=U.obj;}else{S=U.override;}}U.fn.call(S,U.obj);};var L,K,O,N,M=[];for(L=0,K=F.length;L<K;L=L+1){O=F[L];if(O){N=this.getEl(O.id);if(N){if(O.checkReady){if(H||N.nextSibling||!Q){M.push(O);F[L]=null;}}else{R(N,O);F[L]=null;}}else{P.push(O);}}}for(L=0,K=M.length;L<K;L=L+1){O=M[L];R(this.getEl(O.id),O);}C--;if(Q){for(L=F.length-1;L>-1;L--){O=F[L];if(!O||!O.id){F.splice(L,1);}}this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=Q.length-1;N>-1;N--){var L=Q[N];this.removeListener(M,L.type,L.fn);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[I,J];}else{if(K==="unload"){L=[J];}else{L=[I];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(Q){var K=YAHOO.util.Event,N,M,L,P,O,R=J.slice();for(N=0,P=J.length;N<P;++N){L=R[N];if(L){var S=window;if(L[K.ADJ_SCOPE]){if(L[K.ADJ_SCOPE]===true){S=L[K.UNLOAD_OBJ];}else{S=L[K.ADJ_SCOPE];}}L[K.FN].call(S,K.getEvent(Q,L[K.EL]),L[K.UNLOAD_OBJ]);R[N]=null;L=null;S=null;}}J=null;if(I){for(M=I.length-1;M>-1;M--){L=I[M];if(L){K.removeListener(L[K.EL],L[K.TYPE],L[K.FN],M);}}L=null;}G=null;K._simpleRemove(window,"unload",K._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;
+/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
+if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;
+if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.5.2",build:"1076"});YAHOO.register("yuiloader-dom-event", YAHOO, {version: "2.5.2", build: "1076"});
+
+// logger/logger-min.js
+YAHOO.widget.LogMsg=function(A){this.msg=this.time=this.category=this.source=this.sourceDetail=null;if(A&&(A.constructor==Object)){for(var B in A){this[B]=A[B];}}};YAHOO.widget.LogWriter=function(A){if(!A){YAHOO.log("Could not instantiate LogWriter due to invalid source.","error","LogWriter");return ;}this._source=A;};YAHOO.widget.LogWriter.prototype.toString=function(){return"LogWriter "+this._sSource;};YAHOO.widget.LogWriter.prototype.log=function(A,B){YAHOO.widget.Logger.log(A,B,this._source);};YAHOO.widget.LogWriter.prototype.getSource=function(){return this._sSource;};YAHOO.widget.LogWriter.prototype.setSource=function(A){if(!A){YAHOO.log("Could not set source due to invalid source.","error",this.toString());return ;}else{this._sSource=A;}};YAHOO.widget.LogWriter.prototype._source=null;YAHOO.widget.LogReader=function(B,A){this._sName=YAHOO.widget.LogReader._index;YAHOO.widget.LogReader._index++;this._buffer=[];this._filterCheckboxes={};this._lastTime=YAHOO.widget.Logger.getStartTime();if(A&&(A.constructor==Object)){for(var C in A){this[C]=A[C];}}this._initContainerEl(B);if(!this._elContainer){YAHOO.log("Could not instantiate LogReader due to an invalid container element "+B,"error",this.toString());return ;}this._initHeaderEl();this._initConsoleEl();this._initFooterEl();this._initDragDrop();this._initCategories();this._initSources();YAHOO.widget.Logger.newLogEvent.subscribe(this._onNewLog,this);YAHOO.widget.Logger.logResetEvent.subscribe(this._onReset,this);YAHOO.widget.Logger.categoryCreateEvent.subscribe(this._onCategoryCreate,this);YAHOO.widget.Logger.sourceCreateEvent.subscribe(this._onSourceCreate,this);this._filterLogs();YAHOO.log("LogReader initialized",null,this.toString());};YAHOO.lang.augmentObject(YAHOO.widget.LogReader,{_index:0,ENTRY_TEMPLATE:(function(){var A=document.createElement("pre");YAHOO.util.Dom.addClass(A,"yui-log-entry");return A;})(),VERBOSE_TEMPLATE:"<span class='{category}'>{label}</span>{totalTime}ms (+{elapsedTime}) {localTime}:</p><p>{sourceAndDetail}</p><p>{message}</p>",BASIC_TEMPLATE:"<p><span class='{category}'>{label}</span>{totalTime}ms (+{elapsedTime}) {localTime}: {sourceAndDetail}: {message}</p>"});YAHOO.widget.LogReader.prototype={logReaderEnabled:true,width:null,height:null,top:null,left:null,right:null,bottom:null,fontSize:null,footerEnabled:true,verboseOutput:true,entryFormat:null,newestOnTop:true,outputBuffer:100,thresholdMax:500,thresholdMin:100,isCollapsed:false,isPaused:false,draggable:true,toString:function(){return"LogReader instance"+this._sName;},pause:function(){this.isPaused=true;this._btnPause.value="Resume";this._timeout=null;this.logReaderEnabled=false;},resume:function(){this.isPaused=false;this._btnPause.value="Pause";this.logReaderEnabled=true;this._printBuffer();},hide:function(){this._elContainer.style.display="none";},show:function(){this._elContainer.style.display="block";},collapse:function(){this._elConsole.style.display="none";if(this._elFt){this._elFt.style.display="none";}this._btnCollapse.value="Expand";this.isCollapsed=true;},expand:function(){this._elConsole.style.display="block";if(this._elFt){this._elFt.style.display="block";}this._btnCollapse.value="Collapse";this.isCollapsed=false;},getCheckbox:function(A){return this._filterCheckboxes[A];},getCategories:function(){return this._categoryFilters;},showCategory:function(B){var D=this._categoryFilters;if(D.indexOf){if(D.indexOf(B)>-1){return ;}}else{for(var A=0;A<D.length;A++){if(D[A]===B){return ;}}}this._categoryFilters.push(B);this._filterLogs();var C=this.getCheckbox(B);if(C){C.checked=true;}},hideCategory:function(B){var D=this._categoryFilters;for(var A=0;A<D.length;A++){if(B==D[A]){D.splice(A,1);break;}}this._filterLogs();var C=this.getCheckbox(B);if(C){C.checked=false;}},getSources:function(){return this._sourceFilters;},showSource:function(A){var D=this._sourceFilters;if(D.indexOf){if(D.indexOf(A)>-1){return ;}}else{for(var B=0;B<D.length;B++){if(A==D[B]){return ;}}}D.push(A);this._filterLogs();var C=this.getCheckbox(A);if(C){C.checked=true;}},hideSource:function(A){var D=this._sourceFilters;for(var B=0;B<D.length;B++){if(A==D[B]){D.splice(B,1);break;}}this._filterLogs();var C=this.getCheckbox(A);if(C){C.checked=false;}},clearConsole:function(){this._timeout=null;this._buffer=[];this._consoleMsgCount=0;var A=this._elConsole;A.innerHTML="";},setTitle:function(A){this._title.innerHTML=this.html2Text(A);},getLastTime:function(){return this._lastTime;},formatMsg:function(C){var B=YAHOO.widget.LogReader,A=this.entryFormat||(this.verboseOutput?B.VERBOSE_TEMPLATE:B.BASIC_TEMPLATE),D={category:C.category,label:C.category.substring(0,4).toUpperCase(),sourceAndDetail:C.sourceDetail?C.source+" "+C.sourceDetail:C.source,message:this.html2Text(C.msg||C.message||"")};if(C.time&&C.time.getTime){D.localTime=C.time.toLocaleTimeString?C.time.toLocaleTimeString():C.time.toString();D.elapsedTime=C.time.getTime()-this.getLastTime();D.totalTime=C.time.getTime()-YAHOO.widget.Logger.getStartTime();}var E=B.ENTRY_TEMPLATE.cloneNode(true);if(this.verboseOutput){E.className+=" yui-log-verbose";}E.innerHTML=YAHOO.lang.substitute(A,D);return E;},html2Text:function(A){if(A){A+="";return A.replace(/&/g,"&#38;").replace(/</g,"&#60;").replace(/>/g,"&#62;");}return"";},_sName:null,_buffer:null,_consoleMsgCount:0,_lastTime:null,_timeout:null,_filterCheckboxes:null,_categoryFilters:null,_sourceFilters:null,_elContainer:null,_elHd:null,_elCollapse:null,_btnCollapse:null,_title:null,_elConsole:null,_elFt:null,_elBtns:null,_elCategoryFilters:null,_elSourceFilters:null,_btnPause:null,_btnClear:null,_initContainerEl:function(B){B=YAHOO.util.Dom.get(B);if(B&&B.tagName&&(B.tagName.toLowerCase()=="div")){this._elContainer=B;YAHOO.util.Dom.addClass(this._elContainer,"yui-log");}else{this._elContainer=document.body.appendChild(document.createElement("div"));YAHOO.util.Dom.addClass(this._elContainer,"yui-log");YAHOO.util.Dom.addClass(this._elContainer,"yui-log-container");var A=this._elContainer.style;
+if(this.width){A.width=this.width;}if(this.right){A.right=this.right;}if(this.top){A.top=this.top;}if(this.left){A.left=this.left;A.right="auto";}if(this.bottom){A.bottom=this.bottom;A.top="auto";}if(this.fontSize){A.fontSize=this.fontSize;}if(navigator.userAgent.toLowerCase().indexOf("opera")!=-1){document.body.style+="";}}},_initHeaderEl:function(){var A=this;if(this._elHd){YAHOO.util.Event.purgeElement(this._elHd,true);this._elHd.innerHTML="";}this._elHd=this._elContainer.appendChild(document.createElement("div"));this._elHd.id="yui-log-hd"+this._sName;this._elHd.className="yui-log-hd";this._elCollapse=this._elHd.appendChild(document.createElement("div"));this._elCollapse.className="yui-log-btns";this._btnCollapse=document.createElement("input");this._btnCollapse.type="button";this._btnCollapse.className="yui-log-button";this._btnCollapse.value="Collapse";this._btnCollapse=this._elCollapse.appendChild(this._btnCollapse);YAHOO.util.Event.addListener(A._btnCollapse,"click",A._onClickCollapseBtn,A);this._title=this._elHd.appendChild(document.createElement("h4"));this._title.innerHTML="Logger Console";},_initConsoleEl:function(){if(this._elConsole){YAHOO.util.Event.purgeElement(this._elConsole,true);this._elConsole.innerHTML="";}this._elConsole=this._elContainer.appendChild(document.createElement("div"));this._elConsole.className="yui-log-bd";if(this.height){this._elConsole.style.height=this.height;}},_initFooterEl:function(){var A=this;if(this.footerEnabled){if(this._elFt){YAHOO.util.Event.purgeElement(this._elFt,true);this._elFt.innerHTML="";}this._elFt=this._elContainer.appendChild(document.createElement("div"));this._elFt.className="yui-log-ft";this._elBtns=this._elFt.appendChild(document.createElement("div"));this._elBtns.className="yui-log-btns";this._btnPause=document.createElement("input");this._btnPause.type="button";this._btnPause.className="yui-log-button";this._btnPause.value="Pause";this._btnPause=this._elBtns.appendChild(this._btnPause);YAHOO.util.Event.addListener(A._btnPause,"click",A._onClickPauseBtn,A);this._btnClear=document.createElement("input");this._btnClear.type="button";this._btnClear.className="yui-log-button";this._btnClear.value="Clear";this._btnClear=this._elBtns.appendChild(this._btnClear);YAHOO.util.Event.addListener(A._btnClear,"click",A._onClickClearBtn,A);this._elCategoryFilters=this._elFt.appendChild(document.createElement("div"));this._elCategoryFilters.className="yui-log-categoryfilters";this._elSourceFilters=this._elFt.appendChild(document.createElement("div"));this._elSourceFilters.className="yui-log-sourcefilters";}},_initDragDrop:function(){if(YAHOO.util.DD&&this.draggable&&this._elHd){var A=new YAHOO.util.DD(this._elContainer);A.setHandleElId(this._elHd.id);this._elHd.style.cursor="move";}},_initCategories:function(){this._categoryFilters=[];var C=YAHOO.widget.Logger.categories;for(var A=0;A<C.length;A++){var B=C[A];this._categoryFilters.push(B);if(this._elCategoryFilters){this._createCategoryCheckbox(B);}}},_initSources:function(){this._sourceFilters=[];var C=YAHOO.widget.Logger.sources;for(var B=0;B<C.length;B++){var A=C[B];this._sourceFilters.push(A);if(this._elSourceFilters){this._createSourceCheckbox(A);}}},_createCategoryCheckbox:function(B){var A=this;if(this._elFt){var E=this._elCategoryFilters;var D=E.appendChild(document.createElement("span"));D.className="yui-log-filtergrp";var C=document.createElement("input");C.id="yui-log-filter-"+B+this._sName;C.className="yui-log-filter-"+B;C.type="checkbox";C.category=B;C=D.appendChild(C);C.checked=true;YAHOO.util.Event.addListener(C,"click",A._onCheckCategory,A);var F=D.appendChild(document.createElement("label"));F.htmlFor=C.id;F.className=B;F.innerHTML=B;this._filterCheckboxes[B]=C;}},_createSourceCheckbox:function(A){var D=this;if(this._elFt){var F=this._elSourceFilters;var E=F.appendChild(document.createElement("span"));E.className="yui-log-filtergrp";var C=document.createElement("input");C.id="yui-log-filter"+A+this._sName;C.className="yui-log-filter"+A;C.type="checkbox";C.source=A;C=E.appendChild(C);C.checked=true;YAHOO.util.Event.addListener(C,"click",D._onCheckSource,D);var B=E.appendChild(document.createElement("label"));B.htmlFor=C.id;B.className=A;B.innerHTML=A;this._filterCheckboxes[A]=C;}},_filterLogs:function(){if(this._elConsole!==null){this.clearConsole();this._printToConsole(YAHOO.widget.Logger.getStack());}},_printBuffer:function(){this._timeout=null;if(this._elConsole!==null){var B=this.thresholdMax;B=(B&&!isNaN(B))?B:500;if(this._consoleMsgCount<B){var A=[];for(var C=0;C<this._buffer.length;C++){A[C]=this._buffer[C];}this._buffer=[];this._printToConsole(A);}else{this._filterLogs();}if(!this.newestOnTop){this._elConsole.scrollTop=this._elConsole.scrollHeight;}}},_printToConsole:function(I){var B=I.length,M=document.createDocumentFragment(),P=[],Q=this.thresholdMin,C=this._sourceFilters.length,N=this._categoryFilters.length,K,H,G,F,L;if(isNaN(Q)||(Q>this.thresholdMax)){Q=0;}K=(B>Q)?(B-Q):0;for(H=K;H<B;H++){var E=false;var J=false;var O=I[H];var A=O.source;var D=O.category;for(G=0;G<C;G++){if(A==this._sourceFilters[G]){J=true;break;}}if(J){for(G=0;G<N;G++){if(D==this._categoryFilters[G]){E=true;break;}}}if(E){F=this.formatMsg(O);if(typeof F==="string"){P[P.length]=F;}else{M.insertBefore(F,this.newestOnTop?M.firstChild||null:null);}this._consoleMsgCount++;this._lastTime=O.time.getTime();}}if(P.length){P.splice(0,0,this._elConsole.innerHTML);this._elConsole.innerHTML=this.newestOnTop?P.reverse().join(""):P.join("");}else{if(M.firstChild){this._elConsole.insertBefore(M,this.newestOnTop?this._elConsole.firstChild||null:null);}}},_onCategoryCreate:function(D,C,A){var B=C[0];A._categoryFilters.push(B);if(A._elFt){A._createCategoryCheckbox(B);}},_onSourceCreate:function(D,C,A){var B=C[0];A._sourceFilters.push(B);if(A._elFt){A._createSourceCheckbox(B);}},_onCheckCategory:function(A,B){var C=this.category;if(!this.checked){B.hideCategory(C);}else{B.showCategory(C);}},_onCheckSource:function(A,B){var C=this.source;
+if(!this.checked){B.hideSource(C);}else{B.showSource(C);}},_onClickCollapseBtn:function(A,B){if(!B.isCollapsed){B.collapse();}else{B.expand();}},_onClickPauseBtn:function(A,B){if(!B.isPaused){B.pause();}else{B.resume();}},_onClickClearBtn:function(A,B){B.clearConsole();},_onNewLog:function(D,C,A){var B=C[0];A._buffer.push(B);if(A.logReaderEnabled===true&&A._timeout===null){A._timeout=setTimeout(function(){A._printBuffer();},A.outputBuffer);}},_onReset:function(C,B,A){A._filterLogs();}};if(!YAHOO.widget.Logger){YAHOO.widget.Logger={loggerEnabled:true,_browserConsoleEnabled:false,categories:["info","warn","error","time","window"],sources:["global"],_stack:[],maxStackEntries:2500,_startTime:new Date().getTime(),_lastTime:null,_windowErrorsHandled:false,_origOnWindowError:null};YAHOO.widget.Logger.log=function(B,F,G){if(this.loggerEnabled){if(!F){F="info";}else{F=F.toLocaleLowerCase();if(this._isNewCategory(F)){this._createNewCategory(F);}}var C="global";var A=null;if(G){var D=G.indexOf(" ");if(D>0){C=G.substring(0,D);A=G.substring(D,G.length);}else{C=G;}if(this._isNewSource(C)){this._createNewSource(C);}}var H=new Date();var J=new YAHOO.widget.LogMsg({msg:B,time:H,category:F,source:C,sourceDetail:A});var I=this._stack;var E=this.maxStackEntries;if(E&&!isNaN(E)&&(I.length>=E)){I.shift();}I.push(J);this.newLogEvent.fire(J);if(this._browserConsoleEnabled){this._printToBrowserConsole(J);}return true;}else{return false;}};YAHOO.widget.Logger.reset=function(){this._stack=[];this._startTime=new Date().getTime();this.loggerEnabled=true;this.log("Logger reset");this.logResetEvent.fire();};YAHOO.widget.Logger.getStack=function(){return this._stack;};YAHOO.widget.Logger.getStartTime=function(){return this._startTime;};YAHOO.widget.Logger.disableBrowserConsole=function(){YAHOO.log("Logger output to the function console.log() has been disabled.");this._browserConsoleEnabled=false;};YAHOO.widget.Logger.enableBrowserConsole=function(){this._browserConsoleEnabled=true;YAHOO.log("Logger output to the function console.log() has been enabled.");};YAHOO.widget.Logger.handleWindowErrors=function(){if(!YAHOO.widget.Logger._windowErrorsHandled){if(window.error){YAHOO.widget.Logger._origOnWindowError=window.onerror;}window.onerror=YAHOO.widget.Logger._onWindowError;YAHOO.widget.Logger._windowErrorsHandled=true;YAHOO.log("Logger handling of window.onerror has been enabled.");}else{YAHOO.log("Logger handling of window.onerror had already been enabled.");}};YAHOO.widget.Logger.unhandleWindowErrors=function(){if(YAHOO.widget.Logger._windowErrorsHandled){if(YAHOO.widget.Logger._origOnWindowError){window.onerror=YAHOO.widget.Logger._origOnWindowError;YAHOO.widget.Logger._origOnWindowError=null;}else{window.onerror=null;}YAHOO.widget.Logger._windowErrorsHandled=false;YAHOO.log("Logger handling of window.onerror has been disabled.");}else{YAHOO.log("Logger handling of window.onerror had already been disabled.");}};YAHOO.widget.Logger.categoryCreateEvent=new YAHOO.util.CustomEvent("categoryCreate",this,true);YAHOO.widget.Logger.sourceCreateEvent=new YAHOO.util.CustomEvent("sourceCreate",this,true);YAHOO.widget.Logger.newLogEvent=new YAHOO.util.CustomEvent("newLog",this,true);YAHOO.widget.Logger.logResetEvent=new YAHOO.util.CustomEvent("logReset",this,true);YAHOO.widget.Logger._createNewCategory=function(A){this.categories.push(A);this.categoryCreateEvent.fire(A);};YAHOO.widget.Logger._isNewCategory=function(B){for(var A=0;A<this.categories.length;A++){if(B==this.categories[A]){return false;}}return true;};YAHOO.widget.Logger._createNewSource=function(A){this.sources.push(A);this.sourceCreateEvent.fire(A);};YAHOO.widget.Logger._isNewSource=function(A){if(A){for(var B=0;B<this.sources.length;B++){if(A==this.sources[B]){return false;}}return true;}};YAHOO.widget.Logger._printToBrowserConsole=function(C){if(window.console&&console.log){var E=C.category;var D=C.category.substring(0,4).toUpperCase();var G=C.time;var F;if(G.toLocaleTimeString){F=G.toLocaleTimeString();}else{F=G.toString();}var H=G.getTime();var B=(YAHOO.widget.Logger._lastTime)?(H-YAHOO.widget.Logger._lastTime):0;YAHOO.widget.Logger._lastTime=H;var A=F+" ("+B+"ms): "+C.source+": ";console.log(A,C.msg);}};YAHOO.widget.Logger._onWindowError=function(A,C,B){try{YAHOO.widget.Logger.log(A+" ("+C+", line "+B+")","window");if(YAHOO.widget.Logger._origOnWindowError){YAHOO.widget.Logger._origOnWindowError();}}catch(D){return false;}};YAHOO.widget.Logger.log("Logger initialized");}YAHOO.register("logger",YAHOO.widget.Logger,{version:"2.5.2",build:"1076"});
+
+// yuitest/yuitest-min.js
+YAHOO.namespace("tool");YAHOO.tool.TestCase=function(A){this._should={};for(var B in A){this[B]=A[B];}if(!YAHOO.lang.isString(this.name)){this.name=YAHOO.util.Dom.generateId(null,"testCase");}};YAHOO.tool.TestCase.prototype={resume:function(A){YAHOO.tool.TestRunner.resume(A);},wait:function(B,A){throw new YAHOO.tool.TestCase.Wait(B,A);},setUp:function(){},tearDown:function(){}};YAHOO.tool.TestCase.Wait=function(B,A){this.segment=(YAHOO.lang.isFunction(B)?B:null);this.delay=(YAHOO.lang.isNumber(A)?A:0);};YAHOO.namespace("tool");YAHOO.tool.TestSuite=function(A){this.name="";this.items=[];if(YAHOO.lang.isString(A)){this.name=A;}else{if(YAHOO.lang.isObject(A)){YAHOO.lang.augmentObject(this,A,true);}}if(this.name===""){this.name=YAHOO.util.Dom.generateId(null,"testSuite");}};YAHOO.tool.TestSuite.prototype={add:function(A){if(A instanceof YAHOO.tool.TestSuite||A instanceof YAHOO.tool.TestCase){this.items.push(A);}},setUp:function(){},tearDown:function(){}};YAHOO.namespace("tool");YAHOO.tool.TestRunner=(function(){function B(C){this.testObject=C;this.firstChild=null;this.lastChild=null;this.parent=null;this.next=null;this.results={passed:0,failed:0,total:0,ignored:0};if(C instanceof YAHOO.tool.TestSuite){this.results.type="testsuite";this.results.name=C.name;}else{if(C instanceof YAHOO.tool.TestCase){this.results.type="testcase";this.results.name=C.name;}}}B.prototype={appendChild:function(C){var D=new B(C);if(this.firstChild===null){this.firstChild=this.lastChild=D;}else{this.lastChild.next=D;this.lastChild=D;}D.parent=this;return D;}};function A(){A.superclass.constructor.apply(this,arguments);this.masterSuite=new YAHOO.tool.TestSuite("YUI Test Results");this._cur=null;this._root=null;var D=[this.TEST_CASE_BEGIN_EVENT,this.TEST_CASE_COMPLETE_EVENT,this.TEST_SUITE_BEGIN_EVENT,this.TEST_SUITE_COMPLETE_EVENT,this.TEST_PASS_EVENT,this.TEST_FAIL_EVENT,this.TEST_IGNORE_EVENT,this.COMPLETE_EVENT,this.BEGIN_EVENT];for(var C=0;C<D.length;C++){this.createEvent(D[C],{scope:this});}}YAHOO.lang.extend(A,YAHOO.util.EventProvider,{TEST_CASE_BEGIN_EVENT:"testcasebegin",TEST_CASE_COMPLETE_EVENT:"testcasecomplete",TEST_SUITE_BEGIN_EVENT:"testsuitebegin",TEST_SUITE_COMPLETE_EVENT:"testsuitecomplete",TEST_PASS_EVENT:"pass",TEST_FAIL_EVENT:"fail",TEST_IGNORE_EVENT:"ignore",COMPLETE_EVENT:"complete",BEGIN_EVENT:"begin",_addTestCaseToTestTree:function(C,D){var E=C.appendChild(D);for(var F in D){if(F.indexOf("test")===0&&YAHOO.lang.isFunction(D[F])){E.appendChild(F);}}},_addTestSuiteToTestTree:function(C,F){var E=C.appendChild(F);for(var D=0;D<F.items.length;D++){if(F.items[D] instanceof YAHOO.tool.TestSuite){this._addTestSuiteToTestTree(E,F.items[D]);}else{if(F.items[D] instanceof YAHOO.tool.TestCase){this._addTestCaseToTestTree(E,F.items[D]);}}}},_buildTestTree:function(){this._root=new B(this.masterSuite);this._cur=this._root;for(var C=0;C<this.masterSuite.items.length;C++){if(this.masterSuite.items[C] instanceof YAHOO.tool.TestSuite){this._addTestSuiteToTestTree(this._root,this.masterSuite.items[C]);}else{if(this.masterSuite.items[C] instanceof YAHOO.tool.TestCase){this._addTestCaseToTestTree(this._root,this.masterSuite.items[C]);}}}},_handleTestObjectComplete:function(C){if(YAHOO.lang.isObject(C.testObject)){C.parent.results.passed+=C.results.passed;C.parent.results.failed+=C.results.failed;C.parent.results.total+=C.results.total;C.parent.results.ignored+=C.results.ignored;C.parent.results[C.testObject.name]=C.results;if(C.testObject instanceof YAHOO.tool.TestSuite){C.testObject.tearDown();this.fireEvent(this.TEST_SUITE_COMPLETE_EVENT,{testSuite:C.testObject,results:C.results});}else{if(C.testObject instanceof YAHOO.tool.TestCase){this.fireEvent(this.TEST_CASE_COMPLETE_EVENT,{testCase:C.testObject,results:C.results});}}}},_next:function(){if(this._cur.firstChild){this._cur=this._cur.firstChild;}else{if(this._cur.next){this._cur=this._cur.next;}else{while(this._cur&&!this._cur.next&&this._cur!==this._root){this._handleTestObjectComplete(this._cur);this._cur=this._cur.parent;}if(this._cur==this._root){this._cur.results.type="report";this._cur.results.timestamp=(new Date()).toLocaleString();this.fireEvent(this.COMPLETE_EVENT,{results:this._cur.results});this._cur=null;}else{this._handleTestObjectComplete(this._cur);this._cur=this._cur.next;}}}return this._cur;},_run:function(){var E=false;var D=this._next();if(D!==null){var C=D.testObject;if(YAHOO.lang.isObject(C)){if(C instanceof YAHOO.tool.TestSuite){this.fireEvent(this.TEST_SUITE_BEGIN_EVENT,{testSuite:C});C.setUp();}else{if(C instanceof YAHOO.tool.TestCase){this.fireEvent(this.TEST_CASE_BEGIN_EVENT,{testCase:C});}}if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}}else{this._runTest(D);}}},_resumeTest:function(G){var C=this._cur;var H=C.testObject;var E=C.parent.testObject;var K=(E._should.fail||{})[H];var D=(E._should.error||{})[H];var F=false;var I=null;try{G.apply(E);if(K){I=new YAHOO.util.ShouldFail();F=true;}else{if(D){I=new YAHOO.util.ShouldError();F=true;}}}catch(J){if(J instanceof YAHOO.util.AssertionError){if(!K){I=J;F=true;}}else{if(J instanceof YAHOO.tool.TestCase.Wait){if(YAHOO.lang.isFunction(J.segment)){if(YAHOO.lang.isNumber(J.delay)){if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._resumeTest(J.segment);},J.delay);}else{throw new Error("Asynchronous tests not supported in this environment.");}}}return ;}else{if(!D){I=new YAHOO.util.UnexpectedError(J);F=true;}else{if(YAHOO.lang.isString(D)){if(J.message!=D){I=new YAHOO.util.UnexpectedError(J);F=true;}}else{if(YAHOO.lang.isFunction(D)){if(!(J instanceof D)){I=new YAHOO.util.UnexpectedError(J);F=true;}}else{if(YAHOO.lang.isObject(D)){if(!(J instanceof D.constructor)||J.message!=D.message){I=new YAHOO.util.UnexpectedError(J);F=true;}}}}}}}}if(F){this.fireEvent(this.TEST_FAIL_EVENT,{testCase:E,testName:H,error:I});}else{this.fireEvent(this.TEST_PASS_EVENT,{testCase:E,testName:H});}E.tearDown();C.parent.results[H]={result:F?"fail":"pass",message:I?I.getMessage():"Test passed",type:"test",name:H};
+if(F){C.parent.results.failed++;}else{C.parent.results.passed++;}C.parent.results.total++;if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}},_runTest:function(F){var C=F.testObject;var D=F.parent.testObject;var G=D[C];var E=(D._should.ignore||{})[C];if(E){F.parent.results[C]={result:"ignore",message:"Test ignored",type:"test",name:C};F.parent.results.ignored++;F.parent.results.total++;this.fireEvent(this.TEST_IGNORE_EVENT,{testCase:D,testName:C});if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}}else{D.setUp();this._resumeTest(G);}},fireEvent:function(C,D){D=D||{};D.type=C;A.superclass.fireEvent.call(this,C,D);},add:function(C){this.masterSuite.add(C);},clear:function(){this.masterSuite.items=[];},resume:function(C){this._resumeTest(C||function(){});},run:function(C){var D=YAHOO.tool.TestRunner;D._buildTestTree();D.fireEvent(D.BEGIN_EVENT);D._run();}});return new A();})();YAHOO.namespace("util");YAHOO.util.Assert={_formatMessage:function(B,A){var C=B;if(YAHOO.lang.isString(B)&&B.length>0){return YAHOO.lang.substitute(B,{message:A});}else{return A;}},fail:function(A){throw new YAHOO.util.AssertionError(this._formatMessage(A,"Test force-failed."));},areEqual:function(B,C,A){if(B!=C){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Values should be equal."),B,C);}},areNotEqual:function(A,C,B){if(A==C){throw new YAHOO.util.UnexpectedValue(this._formatMessage(B,"Values should not be equal."),A);}},areNotSame:function(A,C,B){if(A===C){throw new YAHOO.util.UnexpectedValue(this._formatMessage(B,"Values should not be the same."),A);}},areSame:function(B,C,A){if(B!==C){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Values should be the same."),B,C);}},isFalse:function(B,A){if(false!==B){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be false."),false,B);}},isTrue:function(B,A){if(true!==B){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be true."),true,B);}},isNaN:function(B,A){if(!isNaN(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be NaN."),NaN,B);}},isNotNaN:function(B,A){if(isNaN(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Values should not be NaN."),NaN);}},isNotNull:function(B,A){if(YAHOO.lang.isNull(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Values should not be null."),null);}},isNotUndefined:function(B,A){if(YAHOO.lang.isUndefined(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should not be undefined."),undefined);}},isNull:function(B,A){if(!YAHOO.lang.isNull(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be null."),null,B);}},isUndefined:function(B,A){if(!YAHOO.lang.isUndefined(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be undefined."),undefined,B);}},isArray:function(B,A){if(!YAHOO.lang.isArray(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be an array."),B);}},isBoolean:function(B,A){if(!YAHOO.lang.isBoolean(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a Boolean."),B);}},isFunction:function(B,A){if(!YAHOO.lang.isFunction(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a function."),B);}},isInstanceOf:function(B,C,A){if(!(C instanceof B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value isn't an instance of expected type."),B,C);}},isNumber:function(B,A){if(!YAHOO.lang.isNumber(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a number."),B);}},isObject:function(B,A){if(!YAHOO.lang.isObject(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be an object."),B);}},isString:function(B,A){if(!YAHOO.lang.isString(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a string."),B);}},isTypeOf:function(A,C,B){if(typeof C!=A){throw new YAHOO.util.ComparisonFailure(this._formatMessage(B,"Value should be of type "+expected+"."),expected,typeof actual);}}};YAHOO.util.AssertionError=function(A){arguments.callee.superclass.constructor.call(this,A);this.message=A;this.name="AssertionError";};YAHOO.lang.extend(YAHOO.util.AssertionError,Error,{getMessage:function(){return this.message;},toString:function(){return this.name+": "+this.getMessage();},valueOf:function(){return this.toString();}});YAHOO.util.ComparisonFailure=function(B,A,C){arguments.callee.superclass.constructor.call(this,B);this.expected=A;this.actual=C;this.name="ComparisonFailure";};YAHOO.lang.extend(YAHOO.util.ComparisonFailure,YAHOO.util.AssertionError,{getMessage:function(){return this.message+"\nExpected: "+this.expected+" ("+(typeof this.expected)+")\nActual:"+this.actual+" ("+(typeof this.actual)+")";}});YAHOO.util.UnexpectedValue=function(B,A){arguments.callee.superclass.constructor.call(this,B);this.unexpected=A;this.name="UnexpectedValue";};YAHOO.lang.extend(YAHOO.util.UnexpectedValue,YAHOO.util.AssertionError,{getMessage:function(){return this.message+"\nUnexpected: "+this.unexpected+" ("+(typeof this.unexpected)+") ";}});YAHOO.util.ShouldFail=function(A){arguments.callee.superclass.constructor.call(this,A||"This test should fail but didn't.");this.name="ShouldFail";};YAHOO.lang.extend(YAHOO.util.ShouldFail,YAHOO.util.AssertionError);YAHOO.util.ShouldError=function(A){arguments.callee.superclass.constructor.call(this,A||"This test should have thrown an error but didn't.");this.name="ShouldError";};YAHOO.lang.extend(YAHOO.util.ShouldError,YAHOO.util.AssertionError);YAHOO.util.UnexpectedError=function(A){arguments.callee.superclass.constructor.call(this,"Unexpected error: "+A.message);this.cause=A;this.name="UnexpectedError";this.stack=A.stack;};YAHOO.lang.extend(YAHOO.util.UnexpectedError,YAHOO.util.AssertionError);YAHOO.util.ArrayAssert={contains:function(E,D,B){var C=false;
+var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(D[A]===E){C=true;}}if(!C){F.fail(F._formatMessage(B,"Value "+E+" ("+(typeof E)+") not found in array ["+D+"]."));}},containsItems:function(C,D,B){for(var A=0;A<C.length;A++){this.contains(C[A],D,B);}},containsMatch:function(E,D,B){if(typeof E!="function"){throw new TypeError("ArrayAssert.containsMatch(): First argument must be a function.");}var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(E(D[A])){C=true;}}if(!C){F.fail(F._formatMessage(B,"No match found in array ["+D+"]."));}},doesNotContain:function(E,D,B){var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(D[A]===E){C=true;}}if(C){F.fail(F._formatMessage(B,"Value found in array ["+D+"]."));}},doesNotContainItems:function(C,D,B){for(var A=0;A<C.length;A++){this.doesNotContain(C[A],D,B);}},doesNotContainMatch:function(E,D,B){if(typeof E!="function"){throw new TypeError("ArrayAssert.doesNotContainMatch(): First argument must be a function.");}var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(E(D[A])){C=true;}}if(C){F.fail(F._formatMessage(B,"Value found in array ["+D+"]."));}},indexOf:function(E,D,A,C){for(var B=0;B<D.length;B++){if(D[B]===E){YAHOO.util.Assert.areEqual(A,B,C||"Value exists at index "+B+" but should be at index "+A+".");return ;}}var F=YAHOO.util.Assert;F.fail(F._formatMessage(C,"Value doesn't exist in array ["+D+"]."));},itemsAreEqual:function(D,F,C){var A=Math.max(D.length,F.length);var E=YAHOO.util.Assert;for(var B=0;B<A;B++){E.areEqual(D[B],F[B],E._formatMessage(C,"Values in position "+B+" are not equal."));}},itemsAreEquivalent:function(E,F,B,D){if(typeof B!="function"){throw new TypeError("ArrayAssert.itemsAreEquivalent(): Third argument must be a function.");}var A=Math.max(E.length,F.length);for(var C=0;C<A;C++){if(!B(E[C],F[C])){throw new YAHOO.util.ComparisonFailure(YAHOO.util.Assert._formatMessage(D,"Values in position "+C+" are not equivalent."),E[C],F[C]);}}},isEmpty:function(C,A){if(C.length>0){var B=YAHOO.util.Assert;B.fail(B._formatMessage(A,"Array should be empty."));}},isNotEmpty:function(C,A){if(C.length===0){var B=YAHOO.util.Assert;B.fail(B._formatMessage(A,"Array should not be empty."));}},itemsAreSame:function(D,F,C){var A=Math.max(D.length,F.length);var E=YAHOO.util.Assert;for(var B=0;B<A;B++){E.areSame(D[B],F[B],E._formatMessage(C,"Values in position "+B+" are not the same."));}},lastIndexOf:function(E,D,A,C){var F=YAHOO.util.Assert;for(var B=D.length;B>=0;B--){if(D[B]===E){F.areEqual(A,B,F._formatMessage(C,"Value exists at index "+B+" but should be at index "+A+"."));return ;}}F.fail(F._formatMessage(C,"Value doesn't exist in array."));}};YAHOO.namespace("util");YAHOO.util.ObjectAssert={propertiesAreEqual:function(D,G,C){var F=YAHOO.util.Assert;var B=[];for(var E in D){B.push(E);}for(var A=0;A<B.length;A++){F.isNotUndefined(G[B[A]],F._formatMessage(C,"Property '"+B[A]+"' expected."));}},hasProperty:function(A,B,C){if(!(A in B)){var D=YAHOO.util.Assert;D.fail(D._formatMessage(C,"Property '"+A+"' not found on object."));}},hasOwnProperty:function(A,B,C){if(!YAHOO.lang.hasOwnProperty(B,A)){var D=YAHOO.util.Assert;D.fail(D._formatMessage(C,"Property '"+A+"' not found on object instance."));}}};YAHOO.util.DateAssert={datesAreEqual:function(B,D,A){if(B instanceof Date&&D instanceof Date){var C=YAHOO.util.Assert;C.areEqual(B.getFullYear(),D.getFullYear(),C._formatMessage(A,"Years should be equal."));C.areEqual(B.getMonth(),D.getMonth(),C._formatMessage(A,"Months should be equal."));C.areEqual(B.getDate(),D.getDate(),C._formatMessage(A,"Day of month should be equal."));}else{throw new TypeError("DateAssert.datesAreEqual(): Expected and actual values must be Date objects.");}},timesAreEqual:function(B,D,A){if(B instanceof Date&&D instanceof Date){var C=YAHOO.util.Assert;C.areEqual(B.getHours(),D.getHours(),C._formatMessage(A,"Hours should be equal."));C.areEqual(B.getMinutes(),D.getMinutes(),C._formatMessage(A,"Minutes should be equal."));C.areEqual(B.getSeconds(),D.getSeconds(),C._formatMessage(A,"Seconds should be equal."));}else{throw new TypeError("DateAssert.timesAreEqual(): Expected and actual values must be Date objects.");}}};YAHOO.namespace("util");YAHOO.util.UserAction={simulateKeyEvent:function(F,J,E,C,L,B,A,K,H,N,M){F=YAHOO.util.Dom.get(F);if(!F){throw new Error("simulateKeyEvent(): Invalid target.");}if(YAHOO.lang.isString(J)){J=J.toLowerCase();switch(J){case"keyup":case"keydown":case"keypress":break;case"textevent":J="keypress";break;default:throw new Error("simulateKeyEvent(): Event type '"+J+"' not supported.");}}else{throw new Error("simulateKeyEvent(): Event type must be a string.");}if(!YAHOO.lang.isBoolean(E)){E=true;}if(!YAHOO.lang.isBoolean(C)){C=true;}if(!YAHOO.lang.isObject(L)){L=window;}if(!YAHOO.lang.isBoolean(B)){B=false;}if(!YAHOO.lang.isBoolean(A)){A=false;}if(!YAHOO.lang.isBoolean(K)){K=false;}if(!YAHOO.lang.isBoolean(H)){H=false;}if(!YAHOO.lang.isNumber(N)){N=0;}if(!YAHOO.lang.isNumber(M)){M=0;}var I=null;if(YAHOO.lang.isFunction(document.createEvent)){try{I=document.createEvent("KeyEvents");I.initKeyEvent(J,E,C,L,B,A,K,H,N,M);}catch(G){try{I=document.createEvent("Events");}catch(D){I=document.createEvent("UIEvents");}finally{I.initEvent(J,E,C);I.view=L;I.altKey=A;I.ctrlKey=B;I.shiftKey=K;I.metaKey=H;I.keyCode=N;I.charCode=M;}}F.dispatchEvent(I);}else{if(YAHOO.lang.isObject(document.createEventObject)){I=document.createEventObject();I.bubbles=E;I.cancelable=C;I.view=L;I.ctrlKey=B;I.altKey=A;I.shiftKey=K;I.metaKey=H;I.keyCode=(M>0)?M:N;F.fireEvent("on"+J,I);}else{throw new Error("simulateKeyEvent(): No event simulation framework present.");}}},simulateMouseEvent:function(K,P,H,E,Q,J,G,F,D,B,C,A,O,M,I,L){K=YAHOO.util.Dom.get(K);if(!K){throw new Error("simulateMouseEvent(): Invalid target.");}if(YAHOO.lang.isString(P)){P=P.toLowerCase();switch(P){case"mouseover":case"mouseout":case"mousedown":case"mouseup":case"click":case"dblclick":case"mousemove":break;default:throw new Error("simulateMouseEvent(): Event type '"+P+"' not supported.");
+}}else{throw new Error("simulateMouseEvent(): Event type must be a string.");}if(!YAHOO.lang.isBoolean(H)){H=true;}if(!YAHOO.lang.isBoolean(E)){E=(P!="mousemove");}if(!YAHOO.lang.isObject(Q)){Q=window;}if(!YAHOO.lang.isNumber(J)){J=1;}if(!YAHOO.lang.isNumber(G)){G=0;}if(!YAHOO.lang.isNumber(F)){F=0;}if(!YAHOO.lang.isNumber(D)){D=0;}if(!YAHOO.lang.isNumber(B)){B=0;}if(!YAHOO.lang.isBoolean(C)){C=false;}if(!YAHOO.lang.isBoolean(A)){A=false;}if(!YAHOO.lang.isBoolean(O)){O=false;}if(!YAHOO.lang.isBoolean(M)){M=false;}if(!YAHOO.lang.isNumber(I)){I=0;}var N=null;if(YAHOO.lang.isFunction(document.createEvent)){N=document.createEvent("MouseEvents");if(N.initMouseEvent){N.initMouseEvent(P,H,E,Q,J,G,F,D,B,C,A,O,M,I,L);}else{N=document.createEvent("UIEvents");N.initEvent(P,H,E);N.view=Q;N.detail=J;N.screenX=G;N.screenY=F;N.clientX=D;N.clientY=B;N.ctrlKey=C;N.altKey=A;N.metaKey=M;N.shiftKey=O;N.button=I;N.relatedTarget=L;}if(L&&!N.relatedTarget){if(P=="mouseout"){N.toElement=L;}else{if(P=="mouseover"){N.fromElement=L;}}}K.dispatchEvent(N);}else{if(YAHOO.lang.isObject(document.createEventObject)){N=document.createEventObject();N.bubbles=H;N.cancelable=E;N.view=Q;N.detail=J;N.screenX=G;N.screenY=F;N.clientX=D;N.clientY=B;N.ctrlKey=C;N.altKey=A;N.metaKey=M;N.shiftKey=O;switch(I){case 0:N.button=1;break;case 1:N.button=4;break;case 2:break;default:N.button=0;}N.relatedTarget=L;K.fireEvent("on"+P,N);}else{throw new Error("simulateMouseEvent(): No event simulation framework present.");}}},fireMouseEvent:function(C,B,A){A=A||{};this.simulateMouseEvent(C,B,A.bubbles,A.cancelable,A.view,A.detail,A.screenX,A.screenY,A.clientX,A.clientY,A.ctrlKey,A.altKey,A.shiftKey,A.metaKey,A.button,A.relatedTarget);},click:function(B,A){this.fireMouseEvent(B,"click",A);},dblclick:function(B,A){this.fireMouseEvent(B,"dblclick",A);},mousedown:function(B,A){this.fireMouseEvent(B,"mousedown",A);},mousemove:function(B,A){this.fireMouseEvent(B,"mousemove",A);},mouseout:function(B,A){this.fireMouseEvent(B,"mouseout",A);},mouseover:function(B,A){this.fireMouseEvent(B,"mouseover",A);},mouseup:function(B,A){this.fireMouseEvent(B,"mouseup",A);},fireKeyEvent:function(B,C,A){A=A||{};this.simulateKeyEvent(C,B,A.bubbles,A.cancelable,A.view,A.ctrlKey,A.altKey,A.shiftKey,A.metaKey,A.keyCode,A.charCode);},keydown:function(B,A){this.fireKeyEvent("keydown",B,A);},keypress:function(B,A){this.fireKeyEvent("keypress",B,A);},keyup:function(B,A){this.fireKeyEvent("keyup",B,A);}};YAHOO.namespace("tool");YAHOO.tool.TestManager={TEST_PAGE_BEGIN_EVENT:"testpagebegin",TEST_PAGE_COMPLETE_EVENT:"testpagecomplete",TEST_MANAGER_BEGIN_EVENT:"testmanagerbegin",TEST_MANAGER_COMPLETE_EVENT:"testmanagercomplete",_curPage:null,_frame:null,_logger:null,_timeoutId:0,_pages:[],_results:null,_handleTestRunnerComplete:function(A){this.fireEvent(this.TEST_PAGE_COMPLETE_EVENT,{page:this._curPage,results:A.results});this._processResults(this._curPage,A.results);this._logger.clearTestRunner();if(this._pages.length){this._timeoutId=setTimeout(function(){YAHOO.tool.TestManager._run();},1000);}else{this.fireEvent(this.TEST_MANAGER_COMPLETE_EVENT,this._results);}},_processResults:function(C,A){var B=this._results;B.passed+=A.passed;B.failed+=A.failed;B.ignored+=A.ignored;B.total+=A.total;if(A.failed){B.failedPages.push(C);}else{B.passedPages.push(C);}A.name=C;A.type="page";B[C]=A;},_run:function(){this._curPage=this._pages.shift();this.fireEvent(this.TEST_PAGE_BEGIN_EVENT,this._curPage);this._frame.location.replace(this._curPage);},load:function(){if(parent.YAHOO.tool.TestManager!==this){parent.YAHOO.tool.TestManager.load();}else{if(this._frame){var A=this._frame.YAHOO.tool.TestRunner;this._logger.setTestRunner(A);A.subscribe(A.COMPLETE_EVENT,this._handleTestRunnerComplete,this,true);A.run();}}},setPages:function(A){this._pages=A;},start:function(){if(!this._initialized){this.createEvent(this.TEST_PAGE_BEGIN_EVENT);this.createEvent(this.TEST_PAGE_COMPLETE_EVENT);this.createEvent(this.TEST_MANAGER_BEGIN_EVENT);this.createEvent(this.TEST_MANAGER_COMPLETE_EVENT);if(!this._frame){var A=document.createElement("iframe");A.style.visibility="hidden";A.style.position="absolute";document.body.appendChild(A);this._frame=A.contentWindow||A.contentDocument.ownerWindow;}if(!this._logger){this._logger=new YAHOO.tool.TestLogger();}this._initialized=true;}this._results={passed:0,failed:0,ignored:0,total:0,type:"report",name:"YUI Test Results",failedPages:[],passedPages:[]};this.fireEvent(this.TEST_MANAGER_BEGIN_EVENT,null);this._run();},stop:function(){clearTimeout(this._timeoutId);}};YAHOO.lang.augmentObject(YAHOO.tool.TestManager,YAHOO.util.EventProvider.prototype);YAHOO.namespace("tool");YAHOO.tool.TestLogger=function(B,A){YAHOO.tool.TestLogger.superclass.constructor.call(this,B,A);this.init();};YAHOO.lang.extend(YAHOO.tool.TestLogger,YAHOO.widget.LogReader,{footerEnabled:true,newestOnTop:false,formatMsg:function(B){var A=B.category;var C=this.html2Text(B.msg);return"<pre><p><span class=\""+A+"\">"+A.toUpperCase()+"</span> "+C+"</p></pre>";},init:function(){if(YAHOO.tool.TestRunner){this.setTestRunner(YAHOO.tool.TestRunner);}this.hideSource("global");this.hideSource("LogReader");this.hideCategory("warn");this.hideCategory("window");this.hideCategory("time");this.clearConsole();},clearTestRunner:function(){if(this._runner){this._runner.unsubscribeAll();this._runner=null;}},setTestRunner:function(A){if(this._runner){this.clearTestRunner();}this._runner=A;A.subscribe(A.TEST_PASS_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_FAIL_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_IGNORE_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.BEGIN_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.COMPLETE_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_SUITE_BEGIN_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_SUITE_COMPLETE_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_CASE_BEGIN_EVENT,this._handleTestRunnerEvent,this,true);
+A.subscribe(A.TEST_CASE_COMPLETE_EVENT,this._handleTestRunnerEvent,this,true);},_handleTestRunnerEvent:function(D){var A=YAHOO.tool.TestRunner;var C="";var B="";switch(D.type){case A.BEGIN_EVENT:C="Testing began at "+(new Date()).toString()+".";B="info";break;case A.COMPLETE_EVENT:C="Testing completed at "+(new Date()).toString()+".\nPassed:"+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;case A.TEST_FAIL_EVENT:C=D.testName+": "+D.error.getMessage();B="fail";break;case A.TEST_IGNORE_EVENT:C=D.testName+": ignored.";B="ignore";break;case A.TEST_PASS_EVENT:C=D.testName+": passed.";B="pass";break;case A.TEST_SUITE_BEGIN_EVENT:C="Test suite \""+D.testSuite.name+"\" started.";B="info";break;case A.TEST_SUITE_COMPLETE_EVENT:C="Test suite \""+D.testSuite.name+"\" completed.\nPassed:"+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;case A.TEST_CASE_BEGIN_EVENT:C="Test case \""+D.testCase.name+"\" started.";B="info";break;case A.TEST_CASE_COMPLETE_EVENT:C="Test case \""+D.testCase.name+"\" completed.\nPassed:"+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;default:C="Unexpected event "+D.type;C="info";}YAHOO.log(C,B,"TestRunner");}});YAHOO.namespace("tool.TestFormat");YAHOO.tool.TestFormat.JSON=function(A){return YAHOO.lang.JSON.stringify(A);};YAHOO.tool.TestFormat.XML=function(C){var A=YAHOO.lang;var B="<"+C.type+" name=\""+C.name.replace(/"/g,"&quot;").replace(/'/g,"&apos;")+"\"";if(C.type=="test"){B+=" result=\""+C.result+"\" message=\""+C.message+"\">";}else{B+=" passed=\""+C.passed+"\" failed=\""+C.failed+"\" ignored=\""+C.ignored+"\" total=\""+C.total+"\">";for(var D in C){if(A.hasOwnProperty(C,D)&&A.isObject(C[D])&&!A.isArray(C[D])){B+=arguments.callee(C[D]);}}}B+="</"+C.type+">";return B;};YAHOO.namespace("tool");YAHOO.tool.TestReporter=function(A,B){this.url=A;this.format=B||YAHOO.tool.TestFormat.XML;this._fields=new Object();this._form=null;this._iframe=null;};YAHOO.tool.TestReporter.prototype={constructor:YAHOO.tool.TestReporter,addField:function(A,B){this._fields[A]=B;},clearFields:function(){this._fields=new Object();},destroy:function(){if(this._form){this._form.parentNode.removeChild(this._form);this._form=null;}if(this._iframe){this._iframe.parentNode.removeChild(this._iframe);this._iframe=null;}this._fields=null;},report:function(A){if(!this._form){this._form=document.createElement("form");this._form.method="post";this._form.style.visibility="hidden";this._form.style.position="absolute";this._form.style.top=0;document.body.appendChild(this._form);if(YAHOO.env.ua.ie){this._iframe=document.createElement("<iframe name=\"yuiTestTarget\" />");}else{this._iframe=document.createElement("iframe");this._iframe.name="yuiTestTarget";}this._iframe.src="javascript:false";this._iframe.style.visibility="hidden";this._iframe.style.position="absolute";this._iframe.style.top=0;document.body.appendChild(this._iframe);this._form.target="yuiTestTarget";}this._form.action=this.url;while(this._form.hasChildNodes()){this._form.removeChild(this._form.lastChild);}this._fields.results=this.format(A);this._fields.useragent=navigator.userAgent;this._fields.timestamp=(new Date()).toLocaleString();for(var B in this._fields){if(YAHOO.lang.hasOwnProperty(this._fields,B)&&typeof this._fields[B]!="function"){if(YAHOO.env.ua.ie){input=document.createElement("<input name=\""+B+"\" >");}else{input=document.createElement("input");input.name=B;}input.type="hidden";input.value=this._fields[B];this._form.appendChild(input);}}delete this._fields.results;delete this._fields.useragent;delete this._fields.timestamp;if(arguments[1]!==false){this._form.submit();}}};YAHOO.register("yuitest",YAHOO.tool.TestRunner,{version:"2.5.2",build:"1076"});
Index: /CKEditor/branches/prototype/ckeditor.js
===================================================================
--- /CKEditor/branches/prototype/ckeditor.js	(revision 2083)
+++ /CKEditor/branches/prototype/ckeditor.js	(revision 2083)
@@ -0,0 +1,30 @@
+﻿/*
+ * 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.
+if (!window.CKEDITOR){window.CKEDITOR=(function(){return {status:'unloaded',basePath:(function(){var A='';var B=document.getElementsByTagName('script');for (var i=0;i<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;})()};})();};
+
+// 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.basePath + '_source/core/loader.js"></script>' );
Index: /CKEditor/branches/prototype/ckeditor_basic.js
===================================================================
--- /CKEditor/branches/prototype/ckeditor_basic.js	(revision 2083)
+++ /CKEditor/branches/prototype/ckeditor_basic.js	(revision 2083)
@@ -0,0 +1,30 @@
+/*
+ * 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.
+if (!window.CKEDITOR){window.CKEDITOR=(function(){return {status:'unloaded',basePath:(function(){var A='';var B=document.getElementsByTagName('script');for (var i=0;i<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;})()};})();};
+
+// 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.basePath + '_source/core/loader.js"></script>' );
Index: /CKEditor/branches/prototype/config.js
===================================================================
--- /CKEditor/branches/prototype/config.js	(revision 2083)
+++ /CKEditor/branches/prototype/config.js	(revision 2083)
@@ -0,0 +1,28 @@
+/*
+ * 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 ==
+ */
+
+CKEDITOR.editorConfig = function( editor )
+{
+	var config = editor.config;
+
+	// Define changes to default configuration here. For example:
+	// config.theme = 'mytheme';
+};
