Changeset 5300


Ignore:
Timestamp:
10/17/09 16:24:40 (2 years ago)
Author:
PaulHarvey
Message:

Item2245: Upload TinyMCE 3.2.7

Location:
trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce
Files:
48 added
124 edited

Legend:

Unmodified
Added
Removed
  • trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/build.xml

    r3104 r5300  
    2222        <taskdef name="preprocess" classname="com.moxiecode.ant.tasks.PreProcessTask" classpathref="tasks.classpath" loaderref="tasks.classpath.loader" /> 
    2323        <taskdef name="yuicompress" classname="com.moxiecode.ant.tasks.YuiCompressTask" classpathref="tasks.classpath" loaderref="tasks.classpath.loader" /> 
     24        <taskdef name="moxiedoc" classname="com.moxiecode.ant.tasks.MoxieDocTask" classpathref="tasks.classpath" loaderref="tasks.classpath.loader" /> 
    2425        <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="tasks.classpath" loaderref="tasks.classpath.loader" />  
    2526        <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="tasks.classpath" loaderref="tasks.classpath.loader" /> 
    2627 
    2728        <!-- Generate JS documentation --> 
    28         <target name="yuidoc" depends="" description="Generates HTML documentation out of java source"> 
    29                  
     29        <target name="moxiedoc" depends="" description="Generates HTML documentation out of js source"> 
     30                <delete quiet="true"> 
     31                        <fileset dir="docs\api" includes="**/*"/> 
     32                </delete> 
     33 
     34                <moxiedoc outdir="docs\api" templatedir="tools\templates" msintellisense="docs\api\tinymce.vsdoc.js" eventclass="tinymce.util.Dispatcher" title="TinyMCE API"> 
     35                        <fileset dir="jscripts\tiny_mce\classes"> 
     36                                <include name="**/*.js" />  
     37                        </fileset> 
     38                </moxiedoc> 
    3039        </target> 
    3140 
     
    5261                        <fileset dir="${classes_dir}" includes="dom/TridentSelection.js" /> 
    5362                        <fileset dir="${classes_dir}" includes="dom/Sizzle.js" /> 
    54                         <fileset dir="${classes_dir}" includes="dom/Event.js" /> 
     63                        <fileset dir="${classes_dir}" includes="dom/EventUtils.js" /> 
    5564                        <fileset dir="${classes_dir}" includes="dom/Element.js" /> 
    5665                        <fileset dir="${classes_dir}" includes="dom/Selection.js" /> 
     
    147156                <yuicompress infile="${build_dir}/plugins/bbcode/editor_plugin_src.js" outfile="${build_dir}/plugins/bbcode/editor_plugin.js" /> 
    148157                <yuicompress infile="${build_dir}/plugins/safari/editor_plugin_src.js" outfile="${build_dir}/plugins/safari/editor_plugin.js" /> 
    149                 <yuicompress infile="${build_dir}/plugins/compat2x/editor_plugin_src.js" outfile="${build_dir}/plugins/compat2x/editor_plugin.js" /> 
    150158                <yuicompress infile="${build_dir}/plugins/pagebreak/editor_plugin_src.js" outfile="${build_dir}/plugins/pagebreak/editor_plugin.js" /> 
    151159                <yuicompress infile="${build_dir}/plugins/spellchecker/editor_plugin_src.js" outfile="${build_dir}/plugins/spellchecker/editor_plugin.js" /> 
    152160                <yuicompress infile="${build_dir}/plugins/tabfocus/editor_plugin_src.js" outfile="${build_dir}/plugins/tabfocus/editor_plugin.js" /> 
     161                <yuicompress infile="${build_dir}/plugins/autoresize/editor_plugin_src.js" outfile="${build_dir}/plugins/autoresize/editor_plugin.js" /> 
     162                <yuicompress infile="${build_dir}/plugins/wordcount/editor_plugin_src.js" outfile="${build_dir}/plugins/wordcount/editor_plugin.js" /> 
     163 
     164                <!-- Compress jQuery plugin --> 
     165                <yuicompress infile="${classes_dir}/adapter/jquery/jquery.tinymce.js" outfile="${build_dir}/jquery.tinymce.js" /> 
    153166 
    154167                <!-- Process dialogs --> 
     
    287300                <delete file="${package_dir}/tinymce_${file_version}.zip" quiet="true" /> 
    288301                <zip destfile="${package_dir}/tinymce_${file_version}.zip" excludes="**/classes"> 
    289                         <fileset dir="${export_dir}/tinymce"> 
    290                                 <include name="jscripts/**" /> 
    291                                 <include name="examples/**" /> 
    292                                 <include name="changelog.txt" /> 
    293                                 <exclude name="jscripts/tiny_mce/classes/**" /> 
    294                                 <exclude name="jscripts/tiny_mce/tiny_mce_dev.js" /> 
    295                                 <exclude name="jscripts/tiny_mce/tiny_mce_jquery.js" /> 
    296                                 <exclude name="jscripts/tiny_mce/tiny_mce_jquery_src.js" /> 
    297                                 <exclude name="jscripts/tiny_mce/tiny_mce_prototype.js" /> 
    298                                 <exclude name="jscripts/tiny_mce/tiny_mce_prototype_src.js" /> 
     302                        <fileset dir="${export_dir}"> 
     303                                <include name="tinymce/jscripts/**" /> 
     304                                <include name="tinymce/examples/**" /> 
     305                                <include name="tinymce/changelog.txt" /> 
     306                                <exclude name="tinymce/examples/full_jquery.html" /> 
     307                                <exclude name="tinymce/jscripts/tiny_mce/classes/**" /> 
     308                                <exclude name="tinymce/jscripts/tiny_mce/jquery.tinymce.js" /> 
     309                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_dev.js" /> 
     310                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_jquery.js" /> 
     311                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_jquery_src.js" /> 
     312                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_prototype.js" /> 
     313                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_prototype_src.js" /> 
    299314                        </fileset> 
    300315                </zip> 
     
    303318                <delete file="${package_dir}/tinymce_${file_version}_jquery.zip" quiet="true" /> 
    304319                <zip destfile="${package_dir}/tinymce_${file_version}_jquery.zip" excludes="**/classes"> 
     320                        <fileset dir="${export_dir}"> 
     321                                <include name="tinymce/jscripts/**" /> 
     322                                <include name="tinymce/examples/**" /> 
     323                                <include name="tinymce/changelog.txt" /> 
     324                                <exclude name="tinymce/examples/**" /> 
     325                                <exclude name="tinymce/jscripts/tiny_mce/classes/**" /> 
     326                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce.js" />  
     327                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_src.js" /> 
     328                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_dev.js" /> 
     329                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_jquery.js" /> 
     330                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_jquery_src.js" /> 
     331                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_prototype.js" /> 
     332                                <exclude name="tinymce/jscripts/tiny_mce/tiny_mce_prototype_src.js" /> 
     333                        </fileset> 
     334 
     335                        <zipfileset dir="${export_dir}" includes="tinymce/examples/full_jquery.html" fullpath="tinymce/examples/index.html"/> 
     336                        <zipfileset dir="${export_dir}" includes="tinymce/jscripts/tiny_mce/tiny_mce_jquery.js" fullpath="tinymce/jscripts/tiny_mce/tiny_mce.js"/> 
     337                        <zipfileset dir="${export_dir}" includes="tinymce/jscripts/tiny_mce/tiny_mce_jquery_src.js" fullpath="tinymce/jscripts/tiny_mce/tiny_mce_src.js"/> 
     338                </zip> 
     339 
     340                <!-- Remove copyright headers for commerical version --> 
     341                <replaceregexp match="^/\*(.*?)\*\/\s*" replace="" flags="gs" byline="false"> 
    305342                        <fileset dir="${export_dir}/tinymce"> 
    306                                 <include name="jscripts/**" /> 
    307                                 <include name="examples/**" /> 
    308                                 <include name="changelog.txt" /> 
    309                                 <exclude name="jscripts/tiny_mce/classes/**" /> 
    310                                 <exclude name="jscripts/tiny_mce/tiny_mce.js" /> 
    311                                 <exclude name="jscripts/tiny_mce/tiny_mce_src.js" /> 
    312                                 <exclude name="jscripts/tiny_mce/tiny_mce_dev.js" /> 
    313                                 <exclude name="jscripts/tiny_mce/tiny_mce_jquery.js" /> 
    314                                 <exclude name="jscripts/tiny_mce/tiny_mce_jquery_src.js" /> 
    315                                 <exclude name="jscripts/tiny_mce/tiny_mce_prototype.js" /> 
    316                                 <exclude name="jscripts/tiny_mce/tiny_mce_prototype_src.js" /> 
    317                         </fileset> 
    318  
    319                         <zipfileset dir="${export_dir}/tinymce" includes="jscripts/tiny_mce/tiny_mce_jquery.js" fullpath="jscripts/tiny_mce/tiny_mce.js"/> 
    320                         <zipfileset dir="${export_dir}/tinymce" includes="jscripts/tiny_mce/tiny_mce_jquery_src.js" fullpath="jscripts/tiny_mce/tiny_mce_src.js"/> 
     343                                <include name="**/*.js" /> 
     344                        </fileset> 
     345                </replaceregexp> 
     346 
     347                <echo file="${export_dir}/tinymce/license_info.txt" append="false"> 
     348TinyMCE Commercial Application License 
     349-------------------------------------- 
     350This copy of TinyMCE is under a commercial license, the LGPL headers are removed. 
     351 
     352A signed agreement from Moxiecode Systems AB is required in order to use this specific copy of TinyMCE. 
     353 
     354If you have any questions regarding your license, contact Moxiecode Systems AB (www.moxiecode.com). 
     355                </echo> 
     356 
     357                <!-- Compress development package (commercial) --> 
     358                <delete file="${package_dir}/tinymce_${file_version}_dev_commercial.zip" quiet="true" /> 
     359                <zip destfile="${package_dir}/tinymce_${file_version}_dev_commercial.zip" excludes="**/license.txt"> 
     360                        <fileset dir="${export_dir}"> 
     361                                <include name="tinymce/**" /> 
     362                                <exclude name="tinymce/**/license.txt" /> 
     363                                <exclude name="tinymce/**/advanced/about.htm" /> 
     364                        </fileset> 
    321365                </zip> 
    322366        </target> 
  • trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/changelog.txt

    r3104 r5300  
     1Version 3.2.7 (2009-09-22) 
     2        Fixed bug where uppercase paragraphs could still produce an invalid DOM tree on IE. 
     3        Fixed bug where split command didn't work on WebKit since the node serializer needs a real document to work with. 
     4        Fixed bug where it was impossible in Gecko to place the caret before a table if it was the first one. 
     5        Fixed bug where linking to urls like ../../ would produce an extra traling slash ../..//. 
     6        Fixed bug where the template cdate functionality was using an old 2.x API call. Patch contributed by vectorjohn. 
     7        Fixed bug where urls to the same site but different protocol would be converted when relative_urls where set to false. Patch contributed by Ted Rust. 
     8        Fixed bug where the paste plugin would remove mceItem prefixed classes. 
     9        Fixed bug where the paste plugin would sometimes add items in a reverse order on WebKit. 
     10        Fixed bug where the paste buttons would present an error message on Gecko even if you changed user.js. Patch contributed by Todd (teeaykay). 
     11        Fixed bug where Opera would crash if you had tables incorrectly placed inside paragraphs. 
     12        Fixed bug where styles elements wasn't properly processed if you had bad input HTML. 
     13        Fixed bug where style attributes wasn't properly forced into a specific format. 
     14        Fixed bug and issues with boolean attributes like checked, nowrap etc. 
     15        Fixed bug where input elements could override attributes on form elements. 
     16        Fixed bug where script or style elements could get modified by the DOMUtils processHTML method. 
     17        Fixed bug where the selected attribute could get lost when force root blocks logic got executed on IE. Patch contributed by Attila Mezei-Horvati. 
     18        Fixed bug where getAttribs method didn't handle boolean attributes correctly on IE. 
     19        Fixed so the paste from word dialog is presented if you paste content on an IE with to restrictive security settings. 
     20        Fixed so the paste_strip_class_attributes option is set to none by default in the paste plugin. 
     21        Removed default border=0 on tables for the default value of valid_elements. 
     22Version 3.2.6 (2009-08-19) 
     23        Added new wordcount plugin, this will display the number of typed words as you write. Contributed by Andrew Ozz. 
     24        Added new getNext and getPrev methods to DOM utils. These will return the first matching sibling. 
     25        Fixed bug where it was impossible to place the caret after a table on Gecko. It will now add a paragraph after tables. 
     26        Fixed bug where inline dialogs would fail if used in a window opened using a showModalDialog. Patch contributed by Derek Britt. 
     27        Fixed bug where IE could sometimes render a unknown runtime error on invalid input HTML. 
     28        Fixed bug where some incorrectly placed tables wouldn't be moved outside the paragraphs on IE. 
     29        Fixed bug where uppercase script/style element wouldn't be handled correctly and converted to valid lowercase. 
     30        Fixed bug where some WebKit versions on Mac OS X would produce issues with hidden select fields. 
     31        Fixed bug where the media plugin would fail on WebKit since the node wasn't properly imported to the right document. 
     32        Fixed bug where absolute URLs for the TinyMCE script using a base href element would cause loading problems in IE 6/7. 
     33        Fixed bug where pasting using the paste plugin wasn't possible on IE with to restrictive security settings. 
     34        Fixed bug where pasting of whitespace was impossible using the new custom paste method. 
     35        Fixed bug where pasting on some WebKit browsers would not work if you pasted specific contents due to a WebKit bug. 
     36        Fixed bug where doctypes with multiple lines would not be parsed correctly by the fullpage plugin. Patch contributed by Colin. 
     37        Fixed bug where the autoresize plugin would break the fullscreen functionality. 
     38        Fixed bug where tables would be chopped up running on IE using invalid contents and pasting paragraphs into a cell. 
     39        Fixed bug where the each method of jQuery build didn't iterate styleSheets. We now use the TinyMCE API one instead. 
     40        Fixed bug where auto switching to paragraphs after headers some times failed in Gecko.   
     41        Fixed so all editor options gets passed to the Serializer class. Patch contributed by Jasper Mattsson. 
     42        Fixed so script/style blocks isn't wrapped in paragraphs as other inline elements. 
     43        Fixed so the XHR requests sends the X-Requested-With HTTP header. 
     44        Fixed so the data url scheme is handled in the tinymce.util.URI class. 
     45        Changed inline documentation to use moxiedoc style comments. 
     46        Removed the compat2x plugin people should have upgraded to the 3.x API by now. 3.0 was released more then a year ago. 
     47        Re-added Gecko specific message for users who doesn't understand the security concept regarding paste. 
     48Version 3.2.5 (2009-06-29) 
     49        Added new jQuery plugin for the jQuery specific package. This enables you to more easily load and use TinyMCE. 
     50        Added new autoresize plugin contributed by Peter Dekkers. This plugin will auto resize the editor to the size of the contents. 
     51        Fixed so all packages have the same directory structure. Previous releases had a different structure for the production package. 
     52        Fixed so the paste from word dialog forces the contents to be processed as word contents even if it's not. 
     53        Fixed so the jQuery build adapter build works. It's currently only excluding Sizzle. 
     54        Fixed so noscript element contents is retained during the editing process. 
     55        Fixed bug where the getBookmark method would need a "simple" string input when the documented way is a boolean. 
     56        Fixed bug where invalid contents could break the fix_table_elements logic. 
     57        Fixed bug where Sizzle specific attributes would be serialized if the valid_elements was set to *[*]. 
     58        Fixed bug where IE would produce an error if you specified a relative content_css and opened the paste dialog. 
     59        Fixed bug where pasting images on IE would produce broken images if they came from an external site. 
     60        Fixed bug where memory was leaked if you add/remove controls dynamically. Some event handlers wasn't removed properly. 
     61        Fixed bug where domain relaxing wasn't treated correctly if you added it after the TinyMCE script element. 
     62        Fixed bug where the activeEditor wasn't set to null if the last editor instance was removed. 
     63        Fixed bug where IE was leaking memory on the onbeforeunload event due to some recently introduced logic. Patch contributed by Options. 
     64        Fixed bug where inserting tables in Safari 4 didn't work due to a new WebKit bug where some element names are reserved. 
     65        Fixed bug where URLs having a :// value in the query string would make it absolute regardless of URL settings. 
     66        Fixed the WebKit specific bug where DOM Ranges would fail if the node wasn't attached to something in a different way. 
     67        Removed the auto_resize option and the resizeToContent method from the tinymce.Editor class. Use the new autoresize plugin instead. 
     68Version 3.2.4.1 (2009-05-25) 
     69        Fixed bug where Gecko browsers would produce an extra space after for example strong when loaded from sub domains. 
     70        Fixed bug where script elements would be removed if they where placed inside a paragraph element. 
     71        Fixed bug where IE 8 would produce 1 item remaining when loading CSS files dynamically with an empty cache. 
     72        Fixed bug where bound events would be removed from other editor instances if a specific one was removed. 
     73        Fixed various bugs and issues with script and style elements inside the editor. 
     74        Fixed so all script contents gets wrapped in CDATA sections so that they can be parsed using a XML parser. 
     75        Fixed so it's impossible for elements marked as closed to have child nodes rendered in output. 
     76Version 3.2.4 (2009-05-21) 
     77        Added new paste_remove_styles/paste_remove_styles_if_webkit option to paste plugin concept contributed by Hadrien Gardeur. 
     78        Added new functionality to paste plugin contributed by Scott Eade aka monkeybrain. 
     79        Added new paste_block_drop option to the paste plugin this is disabled by default and will block any drag/drop event. 
     80        Added new bind/unbind methods to DOMUtils these works like Event.add/Event.remove but is easier to access. 
     81        Added new paste_dialog_width/paste_dialog_height options to paste pluign. Enables you to change the dialog sizes. 
     82        Fixed bug on IE 8 where it would sometimes produce a "1 item remaining" status message that would never finish. 
     83        Fixed bug on Safari 4 beta that would produce DOM Range exceptions on the DOMUtils split method since the browser has a bug. 
     84        Fixed bug where the paste plugin could accidentally think that some word sentences was supposed to be list elements. 
     85        Fixed bug where paste plugin would produce one extra empty undo level on some browsers. 
     86        Fixed bug where spans wasn't produced correctly on new line when the keep_styles option was enabled. 
     87        Fixed bug where the caret would be placed at the beginning of contents in IE 8 if you selected colors from the color pickers. 
     88        Fixed so the Event class is a normal class instead of a static one. The tinymce.dom.Event is now a global instance of that class. 
     89        Fixed so internal events for instances gets removed when the DOMUtils instance is removed. 
     90        Fixed so preventDefault and stopPropagation methods can be used on the event object in all browsers. 
     91Version 3.2.3.1 (2009-05-05) 
     92        Fixed bug where paragraphs containing form elements such as input or textarea would be removed. 
     93        Fixed bug where some IE versions would produce a wrapper function for events attributes. 
     94        Fixed bug where table cell contents could be removed if you pressed return/enter at the end of the cell contents. 
     95        Fixed bug where the paste plugin would remove a extra character if the selection range was collapsed. 
     96        Fixed bug where creating tables with % width wouldn't be handled correctly on WebKit browsers. 
     97Version 3.2.3 (2009-04-23) 
     98        Added new paste plugin logic. This new version will autodetect Word contents and clean it up. 
     99        Added a optional root element argument to getPos so you can tell it where to stop the calculation. 
     100        Added new DOM ready logic to remove the usage of document.write. We now use basically the same method as jQuery. 
     101        Fixed bug where WebKit browsers would fail when selecting all contents in the area using Ctrl+A. 
     102        Fixed bug where IE would produce paragraphs with empty inline style elements. 
     103        Fixed bug where WebKit browsers would fail when inserting tables with a non pixel width. 
     104        Fixed bug where block elements could get a redundant br element at the end of the element. 
     105        Fixed bug where the tabfocus plugin only worked with a single editor instance on page. 
     106        Fixed bug where IE 8 was loosing caret position if the selection was collapsed and a menu was clicked. 
     107        Fixed bug with application/xhtml+xml mode where menus wasn't working properly. 
     108        Fixed bug where the onstop workaround fix for IE would produce errors in an ASP update panel. 
     109        Fixed bug where the submit function override could produce errors if executed in the wrong scope. 
     110        Fixed bug where the area element wasn't closed by a short ending. 
     111        Fixed various number issues in the style plugins properties dialog. Contributed by datpaulchen. 
     112        Fixed issues with size suffix values in the style plugin dialog. 
     113        Fixed issue where hasDuplicate variable would leak out to the global space due to a bug in the Sizzle engine. 
     114        Fixed issue where the paste event would fire a dialog warning on IE since we extracted the text contents. 
     115        Updated Sizzle engine to the latest version, this version fixes a few bugs that was reported. 
     116Version 3.2.2.3 (2009-03-26) 
     117        Fixed regression bug with the getPos method, it would return invalid if the view port was to small. 
     118Version 3.2.2.2 (2009-03-25) 
     119        Fixed so the DOMUtils getPos method can be used cross documents if needed. 
     120        Fixed bug where undo/redo wasn't working correctly in Gecko browsers. 
     121Version 3.2.2.1 (2009-03-19) 
     122        Added support for tel: URL prefixes. Even though this doesn't match any official RFC. 
     123        Fixed so the select method of the Selection class selects the first best suitable contents. 
     124        Fixed bug where the regexps for www. prefixes for link and advlink dialogs would match wwwX. 
     125        Fixed bug where the preview dialog would fail to open if the content_css wasn't defined. Patch contributed by David Bildström (ChronoZ). 
     126        Fixed bug where editors wasn't converted in application/xhtml+xml mode due to an issue with Sizzle. 
     127        Fixed bug where alignment would fail if multiple lines where selected. 
     128        Updated Sizzle engine to the latest version, this version fixes a few bugs that was reported. 
    1129Version 3.2.2 (2009-03-05) 
    2130        Added new CSS selector engine. Sizzle the same one that jQuery and other libraries are using. 
  • trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/examples/full.html

    r3104 r5300  
    1111                mode : "textareas", 
    1212                theme : "advanced", 
    13                 plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template", 
     13                plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount", 
    1414 
    1515                // Theme options 
     
    5757                        <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"> 
    5858                                &lt;p&gt; 
    59                                 &lt;img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /&gt;  TinyMCE is a platform independent web based Javascript HTML &lt;strong&gt;WYSIWYG&lt;/strong&gt; editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems. 
     59                                        This is some example text that you can edit inside the &lt;strong&gt;TinyMCE editor&lt;/strong&gt;. 
    6060                                &lt;/p&gt; 
    6161                                &lt;p&gt; 
    62                                 We recommend &lt;a href="http://www.getfirefox.com" target="_blank"&gt;Firefox&lt;/a&gt; and &lt;a href="http://www.google.com" target="_blank"&gt;Google&lt;/a&gt; &lt;br /&gt; 
     62                                Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 
    6363                                &lt;/p&gt; 
    6464                        </textarea> 
  • trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/examples/simple.html

    r3104 r5300  
    2828        <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"> 
    2929                &lt;p&gt; 
    30                 &lt;img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /&gt;  TinyMCE is a platform independent web based Javascript HTML &lt;strong&gt;WYSIWYG&lt;/strong&gt; editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems. 
     30                        This is some example text that you can edit inside the &lt;strong&gt;TinyMCE editor&lt;/strong&gt;. 
    3131                &lt;/p&gt; 
    3232                &lt;p&gt; 
    33                 We recommend &lt;a href="http://www.getfirefox.com" target="_blank"&gt;Firefox&lt;/a&gt; and &lt;a href="http://www.google.com" target="_blank"&gt;Google&lt;/a&gt; &lt;br /&gt; 
     33                Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 
    3434                &lt;/p&gt; 
    3535        </textarea> 
  • trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/examples/skins.html

    r3104 r5300  
    164164        <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"> 
    165165                &lt;p&gt; 
    166                 &lt;img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /&gt;  TinyMCE is a platform independent web based Javascript HTML &lt;strong&gt;WYSIWYG&lt;/strong&gt; editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems. 
    167                 &lt;/p&gt; 
    168                 &lt;p&gt; 
    169                 We recommend &lt;a href="http://www.getfirefox.com" target="_blank"&gt;Firefox&lt;/a&gt; and &lt;a href="http://www.google.com" target="_blank"&gt;Google&lt;/a&gt; &lt;br /&gt; 
     166                        This is some example text that you can edit inside the &lt;strong&gt;TinyMCE editor&lt;/strong&gt;. 
     167                &lt;/p&gt; 
     168                &lt;p&gt; 
     169                Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 
    170170                &lt;/p&gt; 
    171171        </textarea> 
     
    175175        <textarea id="elm2" name="elm2" rows="15" cols="80" style="width: 80%"> 
    176176                &lt;p&gt; 
    177                 &lt;img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /&gt;  TinyMCE is a platform independent web based Javascript HTML &lt;strong&gt;WYSIWYG&lt;/strong&gt; editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems. 
    178                 &lt;/p&gt; 
    179                 &lt;p&gt; 
    180                 We recommend &lt;a href="http://www.getfirefox.com" target="_blank"&gt;Firefox&lt;/a&gt; and &lt;a href="http://www.google.com" target="_blank"&gt;Google&lt;/a&gt; &lt;br /&gt; 
     177                        This is some example text that you can edit inside the &lt;strong&gt;TinyMCE editor&lt;/strong&gt;. 
     178                &lt;/p&gt; 
     179                &lt;p&gt; 
     180                Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 
    181181                &lt;/p&gt; 
    182182        </textarea> 
     
    186186        <textarea id="elm3" name="elm3" rows="15" cols="80" style="width: 80%"> 
    187187                &lt;p&gt; 
    188                 &lt;img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /&gt;  TinyMCE is a platform independent web based Javascript HTML &lt;strong&gt;WYSIWYG&lt;/strong&gt; editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems. 
    189                 &lt;/p&gt; 
    190                 &lt;p&gt; 
    191                 We recommend &lt;a href="http://www.getfirefox.com" target="_blank"&gt;Firefox&lt;/a&gt; and &lt;a href="http://www.google.com" target="_blank"&gt;Google&lt;/a&gt; &lt;br /&gt; 
     188                        This is some example text that you can edit inside the &lt;strong&gt;TinyMCE editor&lt;/strong&gt;. 
     189                &lt;/p&gt; 
     190                &lt;p&gt; 
     191                Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 
    192192                &lt;/p&gt; 
    193193        </textarea> 
     
    197197        <textarea id="elm4" name="elm4" rows="15" cols="80" style="width: 80%"> 
    198198                &lt;p&gt; 
    199                 &lt;img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /&gt;  TinyMCE is a platform independent web based Javascript HTML &lt;strong&gt;WYSIWYG&lt;/strong&gt; editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems. 
    200                 &lt;/p&gt; 
    201                 &lt;p&gt; 
    202                 We recommend &lt;a href="http://www.getfirefox.com" target="_blank"&gt;Firefox&lt;/a&gt; and &lt;a href="http://www.google.com" target="_blank"&gt;Google&lt;/a&gt; &lt;br /&gt; 
     199                        This is some example text that you can edit inside the &lt;strong&gt;TinyMCE editor&lt;/strong&gt;. 
     200                &lt;/p&gt; 
     201                &lt;p&gt; 
     202                Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 
    203203                &lt;/p&gt; 
    204204        </textarea> 
  • trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/examples/translate.html

    r3104 r5300  
    6969        <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%"> 
    7070                &lt;p&gt; 
    71                 &lt;img src="media/logo.jpg" alt=" " hspace="5" vspace="5" width="250" height="48" align="right" /&gt;  TinyMCE is a platform independent web based Javascript HTML &lt;strong&gt;WYSIWYG&lt;/strong&gt; editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems. 
     71                        This is some example text that you can edit inside the &lt;strong&gt;TinyMCE editor&lt;/strong&gt;. 
    7272                &lt;/p&gt; 
    7373                &lt;p&gt; 
    74                 We recommend &lt;a href="http://www.getfirefox.com" target="_blank"&gt;Firefox&lt;/a&gt; and &lt;a href="http://www.google.com" target="_blank"&gt;Google&lt;/a&gt; &lt;br /&gt; 
     74                Nam nisi elit, cursus in rhoncus sit amet, pulvinar laoreet leo. Nam sed lectus quam, ut sagittis tellus. Quisque dignissim mauris a augue rutrum tempor. Donec vitae purus nec massa vestibulum ornare sit amet id tellus. Nunc quam mauris, fermentum nec lacinia eget, sollicitudin nec ante. Aliquam molestie volutpat dapibus. Nunc interdum viverra sodales. Morbi laoreet pulvinar gravida. Quisque ut turpis sagittis nunc accumsan vehicula. Duis elementum congue ultrices. Cras faucibus feugiat arcu quis lacinia. In hac habitasse platea dictumst. Pellentesque fermentum magna sit amet tellus varius ullamcorper. Vestibulum at urna augue, eget varius neque. Fusce facilisis venenatis dapibus. Integer non sem at arcu euismod tempor nec sed nisl. Morbi ultricies, mauris ut ultricies adipiscing, felis odio condimentum massa, et luctus est nunc nec eros. 
    7575                &lt;/p&gt; 
    7676        </textarea> 
  • trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/jscripts/tiny_mce/classes/AddOnManager.js

    r3104 r5300  
    99        var Dispatcher = tinymce.util.Dispatcher, each = tinymce.each; 
    1010 
    11         /**#@+ 
    12          * @class This class handles the loading of themes/plugins or other add-ons and their language packs. 
    13          * @member tinymce.AddOnManager 
     11        /** 
     12         * This class handles the loading of themes/plugins or other add-ons and their language packs. 
     13         * 
     14         * @class tinymce.AddOnManager 
    1415         */ 
    1516        tinymce.create('tinymce.AddOnManager', { 
     
    1718                urls : {}, 
    1819                lookup : {}, 
     20 
     21                /** 
     22                 * Fires when a item is added. 
     23                 * 
     24                 * @event onAdd 
     25                 */ 
    1926                onAdd : new Dispatcher(this), 
    20  
    21                 /**#@+ 
    22                  * @method 
    23                  */ 
    2427 
    2528                /** 
    2629                 * Returns the specified add on by the short name. 
    2730                 * 
     31                 * @method get 
    2832                 * @param {String} n Add-on to look for. 
    2933                 * @return {tinymce.Theme/tinymce.Plugin} Theme or plugin add-on instance or undefined. 
     
    3640                 * Loads a language pack for the specified add-on. 
    3741                 * 
     42                 * @method requireLangPack 
    3843                 * @param {String} n Short name of the add-on. 
    3944                 */ 
     
    5459                 * Adds a instance of the add-on by it's short name. 
    5560                 * 
     61                 * @method add 
    5662                 * @param {String} id Short name/id for the add-on. 
    5763                 * @param {tinymce.Theme/tinymce.Plugin} o Theme or plugin to add. 
     
    6975                 * Loads an add-on from a specific url. 
    7076                 * 
     77                 * @method load 
    7178                 * @param {String} n Short name of the add-on that gets loaded. 
    7279                 * @param {String} u URL to the add-on that will get loaded. 
     
    8693                        tinymce.ScriptLoader.add(u, cb, s); 
    8794                } 
    88  
    89                 /**#@-*/ 
    9095        }); 
    9196 
     
    9499        tinymce.ThemeManager = new tinymce.AddOnManager(); 
    95100}(tinymce)); 
     101 
     102/** 
     103 * TinyMCE theme class. 
     104 * 
     105 * @class tinymce.Theme 
     106 */ 
     107 
     108/** 
     109 * TinyMCE plugin class. 
     110 * 
     111 * @class tinymce.Plugin 
     112 */ 
  • trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/jscripts/tiny_mce/classes/ControlManager.js

    r3104 r5300  
    11/** 
    2  * $Id: ControlManager.js 1045 2009-03-04 20:03:18Z spocke $ 
     2 * $Id: ControlManager.js 1190 2009-08-12 17:59:29Z spocke $ 
    33 * 
    44 * @author Moxiecode 
     
    1010        var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, extend = tinymce.extend; 
    1111 
    12         /**#@+ 
    13          * @class This class is responsible for managing UI control instances. It's both a factory and a collection for the controls. 
    14          * @member tinymce.ControlManager 
     12        /** 
     13         * This class is responsible for managing UI control instances. It's both a factory and a collection for the controls. 
     14         * @class tinymce.ControlManager 
    1515         */ 
    1616        tinymce.create('tinymce.ControlManager', { 
     
    2020                 * 
    2121                 * @constructor 
     22                 * @method ControlManager 
    2223                 * @param {tinymce.Editor} ed TinyMCE editor instance to add the control to. 
    2324                 * @param {Object} s Optional settings object for the control manager. 
     
    4142                }, 
    4243 
    43                 /**#@+ 
    44                  * @method 
    45                  */ 
    46  
    4744                /** 
    4845                 * Returns a control by id or undefined it it wasn't found. 
    4946                 * 
     47                 * @method get 
    5048                 * @param {String} id Control instance name. 
    5149                 * @return {tinymce.ui.Control} Control instance or undefined. 
     
    5856                 * Sets the active state of a control by id. 
    5957                 * 
     58                 * @method setActive 
    6059                 * @param {String} id Control id to set state on. 
    61                  * @param {bool} s Active state true/false. 
     60                 * @param {Boolean} s Active state true/false. 
    6261                 * @return {tinymce.ui.Control} Control instance that got activated or null if it wasn't found. 
    6362                 */ 
     
    7473                 * Sets the dsiabled state of a control by id. 
    7574                 * 
     75                 * @method setDisabled 
    7676                 * @param {String} id Control id to set state on. 
    77                  * @param {bool} s Active state true/false. 
     77                 * @param {Boolean} s Active state true/false. 
    7878                 * @return {tinymce.ui.Control} Control instance that got disabled or null if it wasn't found. 
    7979                 */ 
     
    9090                 * Adds a control to the control collection inside the manager. 
    9191                 * 
     92                 * @method add 
    9293                 * @param {tinymce.ui.Control} Control instance to add to collection. 
    9394                 * @return {tinymce.ui.Control} Control instance that got passed in. 
     
    109110                 * will be used. 
    110111                 * 
     112                 * @method createControl 
    111113                 * @param {String} n Control name to create for example "separator". 
    112114                 * @return {tinymce.ui.Control} Control instance that got created and added. 
     
    139141                 * Creates a drop menu control instance by id. 
    140142                 * 
     143                 * @method createDropMenu 
    141144                 * @param {String} id Unique id for the new dropdown instance. For example "some menu". 
    142145                 * @param {Object} s Optional settings object for the control. 
     
    178181                        if (tinymce.isIE) { 
    179182                                c.onShowMenu.add(function() { 
     183                                        // IE 8 needs focus in order to store away a range with the current collapsed caret location 
     184                                        ed.focus(); 
     185 
    180186                                        bm = ed.selection.getBookmark(1); 
    181187                                }); 
     
    196202                 * depends on the use_native_selects settings state. 
    197203                 * 
     204                 * @method createListBox 
    198205                 * @param {String} id Unique id for the new listbox instance. For example "styles". 
    199206                 * @param {Object} s Optional settings object for the control. 
     
    239246                                        // Store bookmark on mousedown 
    240247                                        Event.add(n, 'mousedown', function() { 
    241                                                 ed.bookmark = ed.selection.getBookmark('simple'); 
     248                                                ed.bookmark = ed.selection.getBookmark(1); 
    242249                                        }); 
    243250 
     
    259266                 * Creates a button control instance by id. 
    260267                 * 
     268                 * @method createButton 
    261269                 * @param {String} id Unique id for the new button instance. For example "bold". 
    262270                 * @param {Object} s Optional settings object for the control. 
     
    305313                 * Creates a menu button control instance by id. 
    306314                 * 
     315                 * @method createMenuButton 
    307316                 * @param {String} id Unique id for the new menu button instance. For example "menu1". 
    308317                 * @param {Object} s Optional settings object for the control. 
     
    320329                 * Creates a split button control instance by id. 
    321330                 * 
     331                 * @method createSplitButton 
    322332                 * @param {String} id Unique id for the new split button instance. For example "spellchecker". 
    323333                 * @param {Object} s Optional settings object for the control. 
     
    364374                 * Creates a color split button control instance by id. 
    365375                 * 
     376                 * @method createColorSplitButton 
    366377                 * @param {String} id Unique id for the new color split button instance. For example "forecolor". 
    367378                 * @param {Object} s Optional settings object for the control. 
     
    382393                                        if (tinymce.isIE) 
    383394                                                bm = ed.selection.getBookmark(1); 
    384          
     395 
    385396                                        ed.execCommand(s.cmd, s.ui || false, v || s.value); 
    386397                                }; 
     
    413424                        // Fix for bug #1897785, #1898007 
    414425                        if (tinymce.isIE) { 
     426                                c.onShowMenu.add(function() { 
     427                                        // IE 8 needs focus in order to store away a range with the current collapsed caret location 
     428                                        ed.focus(); 
     429                                        bm = ed.selection.getBookmark(1); 
     430                                }); 
     431 
    415432                                c.onHideMenu.add(function() { 
    416433                                        if (bm) { 
     
    427444                 * Creates a toolbar container control instance by id. 
    428445                 * 
     446                 * @method createToolbar 
    429447                 * @param {String} id Unique id for the new toolbar container control instance. For example "toolbar1". 
    430448                 * @param {Object} s Optional settings object for the control. 
     
    448466                 * Creates a separator control instance. 
    449467                 * 
     468                 * @method createSeparator 
    450469                 * @param {Object} cc Optional control class to use instead of the default one. 
    451470                 * @return {tinymce.ui.Control} Control instance that got created and added. 
     
    460479                 * Overrides a specific control type with a custom class. 
    461480                 * 
     481                 * @method setControlType 
    462482                 * @param {string} n Name of the control to override for example button or dropmenu. 
    463483                 * @param {function} c Class reference to use instead of the default one. 
     
    467487                        return this._cls[n.toLowerCase()] = c; 
    468488                }, 
    469  
     489         
     490                /** 
     491                 * Destroy. 
     492                 * 
     493                 * @method destroy 
     494                 */ 
    470495                destroy : function() { 
    471496                        each(this.controls, function(c) { 
     
    475500                        this.controls = null; 
    476501                } 
    477  
    478                 /**#@-*/ 
    479502        }); 
    480503})(tinymce); 
  • trunk/TinyMCEPlugin/pub/System/TinyMCEPlugin/tinymce/jscripts/tiny_mce/classes/Editor.js

    r3104 r5300  
    11/** 
    2  * $Id: Editor.js 1045 2009-03-04 20:03:18Z spocke $ 
     2 * $Id: Editor.js 1228 2009-09-17 15:58:45Z spocke $ 
    33 * 
    44 * @author Moxiecode 
     
    1212        var inArray = tinymce.inArray, grep = tinymce.grep, explode = tinymce.explode; 
    1313 
    14         /**#@+ 
    15          * @class This class contains the core logic for a TinyMCE editor. 
    16          * @member tinymce.Editor 
     14        /** 
     15         * This class contains the core logic for a TinyMCE editor. 
     16         * 
     17         * @class tinymce.Editor 
     18         * @author Moxiecode 
     19         * @example 
     20         * // Add a class to all paragraphs in the editor. 
     21         * tinyMCE.activeEditor.dom.addClass(tinyMCE.activeEditor.dom.select('p'), 'someclass'); 
     22         *  
     23         * // Gets the current editors selection as text 
     24         * tinyMCE.activeEditor.selection.getContent({format : 'text'}); 
     25         *  
     26         * // Creates a new editor instance 
     27         * var ed = new tinymce.Editor('textareaid', { 
     28         *     some_setting : 1 
     29         * }); 
     30         *  
     31         * // Select each item the user clicks on 
     32         * ed.onClick.add(function(ed, e) { 
     33         *     ed.selection.select(e.target); 
     34         * }); 
     35         *  
     36         * ed.render(); 
    1737         */ 
    1838        tinymce.create('tinymce.Editor', { 
     
    2141                 * 
    2242                 * @constructor 
    23                  * @member tinymce.Editor 
     43                 * @method Editor 
    2444                 * @param {String} id Unique id for the editor. 
    2545                 * @param {Object} s Optional settings string for the editor. 
     46                 * @author Moxiecode 
    2647                 */ 
    2748                Editor : function(id, s) { 
    2849                        var t = this; 
    2950 
     51                        /** 
     52                         * Editor instance id, normally the same as the div/textarea that was replaced.  
     53                         * 
     54                         * @property id 
     55                         * @type String 
     56                         */ 
    3057                        t.id = t.editorId = id; 
     58 
    3159                        t.execCommands = {}; 
    3260                        t.queryStateCommands = {}; 
    3361                        t.queryValueCommands = {}; 
     62 
     63                        /** 
     64                         * State to force the editor to return false on a isDirty call.  
     65                         * 
     66                         * @property isNotDirty 
     67                         * @type Boolean 
     68                         */ 
     69                        t.isNotDirty = false; 
     70 
     71                        /** 
     72                         * Name/Value object containting plugin instances. 
     73                         * 
     74                         * @property plugins 
     75                         * @type Object 
     76                         */ 
    3477                        t.plugins = {}; 
    3578 
    3679                        // Add events to the editor 
    3780                        each([ 
     81                                /** 
     82                                 * Fires before the initialization of the editor. 
     83                                 * 
     84                                 * @event onPreInit 
     85                                 * @param {tinymce.Editor} sender Editor instance. 
     86                                 * @see #onInit 
     87                                 */ 
    3888                                'onPreInit', 
     89 
     90                                /** 
     91                                 * Fires before the initialization of the editor. 
     92                                 * 
     93                                 * @event onBeforeRenderUI 
     94                                 * @param {tinymce.Editor} sender Editor instance. 
     95                                 */ 
    3996                                'onBeforeRenderUI', 
     97 
     98                                /** 
     99                                 * Fires after the rendering has completed. 
     100                                 * 
     101                                 * @event onPostRender 
     102                                 * @param {tinymce.Editor} sender Editor instance. 
     103                                 */ 
    40104                                'onPostRender', 
     105 
     106                                /** 
     107                                 * Fires after the initialization of the editor is done. 
     108                                 * 
     109                                 * @event onInit 
     110                                 * @param {tinymce.Editor} sender Editor instance. 
     111                                 * @see #onPreInit 
     112                                 */ 
    41113                                'onInit', 
     114 
     115                                /** 
     116                                 * Fires when the editor instance is removed from page. 
     117                                 * 
     118                                 * @event onRemove 
     119                                 * @param {tinymce.Editor} sender Editor instance. 
     120                                 */ 
    42121                                'onRemove', 
     122 
     123                                /** 
     124                                 * Fires when the editor is activated. 
     125                                 * 
     126                                 * @event onActivate 
     127                                 * @param {tinymce.Editor} sender Editor instance. 
     128                                 */ 
    43129                                'onActivate', 
     130 
     131                                /** 
     132                                 * Fires when the editor is deactivated. 
     133                                 * 
     134                                 * @event onDeactivate 
     135                                 * @param {tinymce.Editor} sender Editor instance. 
     136                                 */ 
    44137                                'onDeactivate', 
     138 
     139                                /** 
     140                                 * Fires when something in the body of the editor is clicked. 
     141                                 * 
     142                                 * @event onClick 
     143                                 * @param {tinymce.Editor} sender Editor instance. 
     144                                 * @param {Event} evt W3C DOM Event instance. 
     145                                 */ 
    45146                                'onClick', 
     147 
     148                                /** 
     149                                 * Fires when a registered event is intercepted. 
     150                                 * 
     151                                 * @event onEvent 
     152                                 * @param {tinymce.Editor} sender Editor instance. 
     153                                 * @param {Event} evt W3C DOM Event instance. 
     154                                 */ 
    46155                                'onEvent', 
     156 
     157                                /** 
     158                                 * Fires when a mouseup event is intercepted inside the editor. 
     159                                 * 
     160                                 * @event onMouseUp 
     161                                 * @param {tinymce.Editor} sender Editor instance. 
     162                                 * @param {Event} evt W3C DOM Event instance. 
     163                                 */ 
    47164                                'onMouseUp', 
     165 
     166                                /** 
     167                                 * Fires when a mousedown event is intercepted inside the editor. 
     168                                 * 
     169                                 * @event onMouseDown 
     170                                 * @param {tinymce.Editor} sender Editor instance. 
     171                                 * @param {Event} evt W3C DOM Event instance. 
     172                                 */ 
    48173                                'onMouseDown', 
     174 
     175                                /** 
     176                                 * Fires when a dblclick event is intercepted inside the editor. 
     177                                 * 
     178                                 * @event onDblClick 
     179                                 * @param {tinymce.Editor} sender Editor instance. 
     180                                 * @param {Event} evt W3C DOM Event instance. 
     181                                 */ 
    49182                                'onDblClick', 
     183 
     184                                /** 
     185                                 * Fires when a keydown event is intercepted inside the editor. 
     186                                 * 
     187                                 * @event onKeyDown 
     188                                 * @param {tinymce.Editor} sender Editor instance. 
     189                                 * @param {Event} evt W3C DOM Event instance. 
     190                                 */ 
    50191                                'onKeyDown', 
     192 
     193                                /** 
     194                                 * Fires when a keydown event is intercepted inside the editor. 
     195                                 * 
     196                                 * @event onKeyUp 
     197                                 * @param {tinymce.Editor} sender Editor instance. 
     198                                 * @param {Event} evt W3C DOM Event instance. 
     199                                 */ 
    51200                                'onKeyUp', 
     201 
     202                                /** 
     203                                 * Fires when a keypress event is intercepted inside the editor. 
     204                                 * 
     205                                 * @event onKeyPress 
     206                                 * @param {tinymce.Editor} sender Editor instance. 
     207                                 * @param {Event} evt W3C DOM Event instance. 
     208                                 */ 
    52209                                'onKeyPress', 
     210 
     211                                /** 
     212                                 * Fires when a contextmenu event is intercepted inside the editor. 
     213                                 * 
     214                                 * @event onContextMenu 
     215                                 * @param {tinymce.Editor} sender Editor instance. 
     216                                 * @param {Event} evt W3C DOM Event instance. 
     217                                 */ 
    53218                                'onContextMenu', 
     219 
     220                                /** 
     221                                 * Fires when a form submit event is intercepted. 
     222                                 * 
     223                                 * @event onSubmit 
     224                                 * @param {tinymce.Editor} sender Editor instance. 
     225                                 * @param {Event} evt W3C DOM Event instance. 
     226                                 */ 
    54227                                'onSubmit', 
     228 
     229                                /** 
     230                                 * Fires when a form reset event is intercepted. 
     231                                 * 
     232                                 * @event onReset 
     233                                 * @param {tinymce.Editor} sender Editor instance. 
     234                                 * @param {Event} evt W3C DOM Event instance. 
     235                                 */ 
    55236                                'onReset', 
     237 
     238                                /** 
     239                                 * Fires when a paste event is intercepted inside the editor. 
     240                                 * 
     241                                 * @event onPaste 
     242                                 * @param {tinymce.Editor} sender Editor instance. 
     243                                 * @param {Event} evt W3C DOM Event instance. 
     244                                 */ 
    56245                                'onPaste', 
     246 
     247                                /** 
     248                                 * Fires when the Serializer does a preProcess on the contents. 
     249                                 * 
     250                                 * @event onPreProcess 
     251                                 * @param {tinymce.Editor} sender Editor instance. 
     252                                 * @param {Object} obj PreProcess object. 
     253                                 */ 
    57254                                'onPreProcess', 
     255 
     256                                /** 
     257                                 * Fires when the Serializer does a postProcess on the contents. 
     258                                 * 
     259                                 * @event onPostProcess 
     260                                 * @param {tinymce.Editor} sender Editor instance. 
     261                                 * @param {Object} obj PreProcess object. 
     262                                 */ 
    58263                                'onPostProcess', 
     264 
     265                                /** 
     266                                 * Fires before new contents is added to the editor. Using for example setContent. 
     267                                 * 
     268                                 * @event onBeforeSetContent 
     269                                 * @param {tinymce.Editor} sender Editor instance. 
     270                                 */ 
    59271                                'onBeforeSetContent', 
     272 
     273                                /** 
     274                                 * Fires before contents is extracted from the editor using for example getContent. 
     275                                 * 
     276                                 * @event onBeforeGetContent 
     277                                 * @param {tinymce.Editor} sender Editor instance. 
     278                                 * @param {Event} evt W3C DOM Event instance. 
     279                                 */ 
    60280                                'onBeforeGetContent', 
     281 
     282                                /** 
     283                                 * Fires after the contents has been added to the editor using for example onSetContent. 
     284                                 * 
     285                                 * @event onSetContent 
     286                                 * @param {tinymce.Editor} sender Editor instance. 
     287                                 */ 
    61288                                'onSetContent', 
     289 
     290                                /** 
     291                                 * Fires after the contents has been extracted from the editor using for example getContent. 
     292                                 * 
     293                                 * @event onGetContent 
     294                                 * @param {tinymce.Editor} sender Editor instance. 
     295                                 */ 
    62296                                'onGetContent', 
     297 
     298                                /** 
     299                                 * Fires when the editor gets loaded with contents for example when the load method is executed. 
     300                                 * 
     301                                 * @event onLoadContent 
     302                                 * @param {tinymce.Editor} sender Editor instance. 
     303                                 */ 
    63304                                'onLoadContent', 
     305 
     306                                /** 
     307                                 * Fires when the editor contents gets saved for example when the save method is executed. 
     308                                 * 
     309                                 * @event onSaveContent 
     310                                 * @param {tinymce.Editor} sender Editor instance. 
     311                                 */ 
    64312                                'onSaveContent', 
     313 
     314                                /** 
     315                                 * Fires when the user changes node location using the mouse or keyboard. 
     316                                 * 
     317                                 * @event onNodeChange 
     318                                 * @param {tinymce.Editor} sender Editor instance. 
     319                                 */ 
    65320                                'onNodeChange', 
     321 
     322                                /** 
     323                                 * Fires when a new undo level is added to the editor. 
     324                                 * 
     325                                 * @event onChange 
     326                                 * @param {tinymce.Editor} sender Editor instance. 
     327                                 */ 
    66328                                'onChange', 
     329 
     330                                /** 
     331                                 * Fires before a command gets executed for example "Bold". 
     332                                 * 
     333                                 * @event onBeforeExecCommand 
     334                                 * @param {tinymce.Editor} sender Editor instance. 
     335                                 */ 
    67336                                'onBeforeExecCommand', 
     337 
     338                                /** 
     339                                 * Fires after a command is executed for example "Bold". 
     340                                 * 
     341                                 * @event onExecCommand 
     342                                 * @param {tinymce.Editor} sender Editor instance. 
     343                                 */ 
    68344                                'onExecCommand', 
     345 
     346                                /** 
     347                                 * Fires when the contents is undo:ed. 
     348                                 * 
     349                                 * @event onUndo 
     350                                 * @param {tinymce.Editor} sender Editor instance. 
     351                                 * @param {Event} evt W3C DOM Event instance. 
     352                                 */ 
    69353                                'onUndo', 
     354 
     355                                /** 
     356                                 * Fires when the contents is redo:ed. 
     357                                 * 
     358                                 * @event onRedo 
     359                                 * @param {tinymce.Editor} sender Editor instance. 
     360                                 * @param {Event} evt W3C DOM Event instance. 
     361                                 */ 
    70362                                'onRedo', 
     363 
     364                                /** 
     365                                 * Fires when visual aids is enabled/disabled. 
     366                                 * 
     367                                 * @event onVisualAid 
     368                                 * @param {tinymce.Editor} sender Editor instance. 
     369                                 */ 
    71370                                'onVisualAid', 
     371 
     372                                /** 
     373                                 * Fires when the progress throbber is shown above the editor. 
     374                                 * 
     375                                 * @event onSetProgressState 
     376                                 * @param {tinymce.Editor} sender Editor instance. 
     377                                 */ 
    72378                                'onSetProgressState' 
    73379                        ], function(e) { 
     
    75381                        }); 
    76382 
    77                         // Default editor config 
     383                        /** 
     384                         * Name/value collection with editor settings. 
     385                         * 
     386                         * @property settings 
     387                         * @type Object 
     388                         */ 
    78389                        t.settings = s = extend({ 
    79390                                id : id, 
     
    110421                                directionality : 'ltr', 
    111422                                forced_root_block : 'p', 
    112                                 valid_elements : '@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big', 
     423                                valid_elements : '@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p,-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big', 
    113424                                hidden_input : 1, 
    114425                                padd_empty_editor : 1, 
     
    122433                        }, s); 
    123434 
    124                         // Setup URIs 
     435                        /** 
     436                         * URI object to document configured for the TinyMCE instance. 
     437                         * 
     438                         * @property documentBaseURI 
     439                         * @type tinymce.util.URI 
     440                         */ 
    125441                        t.documentBaseURI = new tinymce.util.URI(s.document_base_url || tinymce.documentBaseURL, { 
    126442                                base_uri : tinyMCE.baseURI 
    127443                        }); 
     444 
     445                        /** 
     446                         * URI object to current document that holds the TinyMCE editor instance. 
     447                         * 
     448                         * @property baseURI 
     449                         * @type tinymce.util.URI 
     450                         */ 
    128451                        t.baseURI = EditorManager.baseURI; 
    129452 
     
    132455                }, 
    133456 
    134                 /**#@+ 
    135                  * @method 
    136                  */ 
    137  
    138457                /** 
    139458                 * Renderes the editor/adds it to the page. 
     459                 * 
     460                 * @method render 
    140461                 */ 
    141462                render : function(nst) { 
     
    169490                                DOM.insertAfter(DOM.create('input', {type : 'hidden', name : id}), id); 
    170491 
     492                        /** 
     493                         * Window manager reference, use this to open new windows and dialogs. 
     494                         * 
     495                         * @property windowManager 
     496                         * @type tinymce.WindowManager 
     497                         */ 
    171498                        if (tinymce.WindowManager) 
    172499                                t.windowManager = new tinymce.WindowManager(t); 
     
    217544                                                        t.isNotDirty = 1; 
    218545 
    219                                                         return this._mceOldSubmit(this); 
     546                                                        return t.formElement._mceOldSubmit(t.formElement); 
    220547                                                }; 
    221548                                        } 
     
    250577                        }; 
    251578 
    252                         // Load compat2x first 
    253                         if (s.plugins.indexOf('compat2x') != -1) { 
    254                                 PluginManager.load('compat2x', 'plugins/compat2x/editor_plugin' + tinymce.suffix + '.js'); 
    255                                 sl.loadQueue(loadScripts); 
    256                         } else 
    257                                 loadScripts(); 
     579                        loadScripts(); 
    258580                }, 
    259581 
     
    262584                 * all plugins/themes and language packs are loaded by the rendered method. 
    263585                 * This method will setup the iframe and create the theme and plugin instances. 
     586                 * 
     587                 * @method init 
    264588                 */ 
    265589                init : function() { 
     
    268592                        EditorManager.add(t); 
    269593 
    270                         // Create theme 
     594                        /** 
     595                         * Reference to the theme instance that was used to generate the UI.  
     596                         * 
     597                         * @property theme 
     598                         * @type tinymce.Theme 
     599                         */ 
    271600                        if (s.theme) { 
    272601                                s.theme = s.theme.replace(/-/, ''); 
     
    303632                                s.popup_css += ',' + t.documentBaseURI.toAbsolute(s.popup_css_add); 
    304633 
    305                         // Setup control factory 
     634                        /** 
     635                         * Control manager instance for the editor. Will enables you to create new UI elements and change their states etc. 
     636                         * 
     637                         * @property controlManager 
     638                         * @type tinymce.ControlManager 
     639                         */ 
    306640                        t.controlManager = new tinymce.ControlManager(t); 
     641 
     642                        /** 
     643                         * Undo manager instance, responsible for handling undo levels.  
     644                         * 
     645                         * @property undoManager 
     646                         * @type tinymce.UndoManager 
     647                         */ 
    307648                        t.undoManager = new tinymce.UndoManager(t); 
    308649 
     
    384725                        // #endif 
    385726 
     727                        // User specified a document.domain value 
     728                        if (document.domain && location.hostname != document.domain) 
     729                                tinymce.relaxedDomain = document.domain; 
     730 
    386731                        // Resize editor 
    387732                        DOM.setStyles(o.sizeContainer || o.editorContainer, { 
     
    394739                                h = 100; 
    395740 
    396                         t.iframeHTML = s.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="' + t.documentBaseURI.getURI() + '" />'; 
     741                        t.iframeHTML = s.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml">'; 
     742 
     743                        // We only need to override paths if we have to 
     744                        // IE has a bug where it remove site absolute urls to relative ones if this is specified 
     745                        if (s.document_base_url != tinymce.documentBaseURL) 
     746                                t.iframeHTML += '<base href="' + t.documentBaseURI.getURI() + '" />'; 
     747 
    397748                        t.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'; 
    398749 
     
    448799                 * It will fill the iframe with contents, setups DOM and selection objects for the iframe. 
    449800                 * This method should not be called directly. 
     801                 * 
     802                 * @method setupIframe 
    450803                 */ 
    451804                setupIframe : function() { 
     
    482835                        } 
    483836 
    484                         // Setup objects 
    485                         t.dom = new tinymce.DOM.DOMUtils(t.getDoc(), { 
     837                        /** 
     838                         * DOM instance for the editor. 
     839                         * 
     840                         * @property dom 
     841                         * @type tinymce.dom.DOMUtils 
     842                         */ 
     843                        t.dom = new tinymce.dom.DOMUtils(t.getDoc(), { 
    486844                                keep_values : true, 
    487845                                url_converter : t.convertURL, 
     
    493851                        }); 
    494852 
    495                         t.serializer = new tinymce.dom.Serializer({ 
    496                                 entity_encoding : s.entity_encoding, 
    497                                 entities : s.entities, 
     853                        /** 
     854                         * DOM serializer for the editor. 
     855                         * 
     856                         * @property serializer 
     857                         * @type tinymce.dom.Serializer 
     858                         */ 
     859                        t.serializer = new tinymce.dom.Serializer(extend(s, { 
    498860                                valid_elements : s.verify_html === false ? '*[*]' : s.valid_elements, 
    499                                 extended_valid_elements : s.extended_valid_elements, 
    500                                 valid_child_elements : s.valid_child_elements, 
    501                                 invalid_elements : s.invalid_elements, 
    502                                 fix_table_elements : s.fix_table_elements, 
    503                                 fix_list_elements : s.fix_list_elements, 
    504                                 fix_content_duplication : s.fix_content_duplication, 
    505                                 convert_fonts_to_spans : s.convert_fonts_to_spans, 
    506                                 font_size_classes  : s.font_size_classes, 
    507                                 font_size_style_values : s.font_size_style_values, 
    508                                 apply_source_formatting : s.apply_source_formatting, 
    509                                 remove_linebreaks : s.remove_linebreaks, 
    510                                 element_format : s.element_format, 
    511861                                dom : t.dom 
    512                         }); 
    513  
     862                        })); 
     863 
     864                        /** 
     865                         * Selection instance for the editor. 
     866                         * 
     867                         * @property selection 
     868                         * @type tinymce.dom.Selection 
     869                         */ 
    514870                        t.selection = new tinymce.dom.Selection(t.dom, t.getWin(), t.serializer); 
     871 
    515872                        t.forceBlocks = new tinymce.ForceBlocks(t, { 
    516873                                forced_root_block : s.forced_root_block 
     
    543900                        if (s.nowrap) 
    544901                                t.getBody().style.whiteSpace = "nowrap"; 
    545  
    546                         if (s.auto_resize) 
    547                                 t.onNodeChange.add(t.resizeToContent, t); 
    548902 
    549903                        if (s.custom_elements) { 
     
    566920                                t.onPostProcess.add(function(ed, o) { 
    567921                                        if (o.set) 
    568                                                 handleCustom(ed, o) 
     922                                                handleCustom(ed, o); 
    569923                                }); 
    570924                        } 
     
    6951049                        } 
    6961050 
    697                         // Fix gecko link bug, when a link is placed at the end of block elements there is 
    698                         // no way to move the caret behind the link. This fix adds a bogus br element after the link 
    6991051                        if (isGecko) { 
     1052                                // Fix gecko link bug, when a link is placed at the end of block elements there is 
     1053                                // no way to move the caret behind the link. This fix adds a bogus br element after the link 
    7001054                                function fixLinks(ed, o) { 
    7011055                                        each(ed.dom.select('a'), function(n) { 
     
    7131067 
    7141068                                t.onSetContent.add(t.selection.onSetContent.add(fixLinks)); 
    715                         } 
    716  
    717                         if (isGecko && !s.readonly) { 
    718                                 try { 
    719                                         // Design mode must be set here once again to fix a bug where 
    720                                         // Ctrl+A/Delete/Backspace didn't work if the editor was added using mceAddControl then removed then added again 
    721                                         d.designMode = 'Off'; 
    722                                         d.designMode = 'On'; 
    723                                 } catch (ex) { 
    724                                         // Will fail on Gecko if the editor is placed in an hidden container element 
    725                                         // The design mode will be set ones the editor is focused 
     1069 
     1070                                if (!s.readonly) { 
     1071                                        try { 
     1072                                                // Design mode must be set here once again to fix a bug where 
     1073                                                // Ctrl+A/Delete/Backspace didn't work if the editor was added using mceAddControl then removed then added again 
     1074                                                d.designMode = 'Off'; 
     1075                                                d.designMode = 'On'; 
     1076                                        } catch (ex) { 
     1077                                                // Will fail on Gecko if the editor is placed in an hidden container element 
     1078                                                // The design mode will be set ones the editor is focused 
     1079                                        } 
    7261080                                } 
    7271081                        } 
     
    7691123                /** 
    7701124                 * Sets up the contentEditable mode. 
     1125                 * 
     1126                 * @method setupContentEditable 
    7711127                 */ 
    7721128                setupContentEditable : function() { 
     
    7811137 
    7821138                        DOM.hide(e); 
    783                         e.contentEditable = true; 
     1139                        e.contentEditable = t.getParam('content_editable_state', true); 
    7841140                        DOM.show(e); 
    7851141 
     
    7881144 
    7891145                        // Setup objects 
    790                         t.dom = new tinymce.DOM.DOMUtils(t.getDoc(), { 
     1146                        t.dom = new tinymce.dom.DOMUtils(t.getDoc(), { 
    7911147                                keep_values : true, 
    7921148                                url_converter : t.convertURL, 
     
    8481204                        }); 
    8491205 
    850                         t.load({initial : true, format : (s.cleanup_on_startup ? 'html' : 'raw')}); 
     1206                        //t.load({initial : true, format : (s.cleanup_on_startup ? 'html' : 'raw')}); 
    8511207                        t.startContent = t.getContent({format : 'raw'}); 
    8521208                        t.undoManager.add({initial : true}); 
     
    8661222                        if (isIE) { 
    8671223                                // Store away selection 
    868                                 Event.add(t.getElement(), 'beforedeactivate', function() { 
     1224                                t.dom.bind(t.getElement(), 'beforedeactivate', function() { 
    8691225                                        t.lastSelectionBookmark = t.selection.getBookmark(1); 
    8701226                                }); 
     
    8881244                 * it will also place DOM focus inside the editor. 
    8891245                 * 
    890                  * @param {bool} sf Skip DOM focus. Just set is as the active editor. 
     1246                 * @method focus 
     1247                 * @param {Boolean} sf Skip DOM focus. Just set is as the active editor. 
    8911248                 */ 
    8921249                focus : function(sf) { 
     
    9061263                                        if (tinymce.isWebKit) 
    9071264                                                t.getWin().focus(); 
    908                                         else 
    909                                                 t.getElement().focus(); 
     1265                                        else { 
     1266                                                if (tinymce.isIE) 
     1267                                                        t.getElement().setActive(); 
     1268                                                else 
     1269                                                        t.getElement().focus(); 
     1270                                        } 
    9101271                                } 
    9111272 
     
    9271288                 * There new event model is a better way to add callback so this method might be removed in the future. 
    9281289                 * 
     1290                 * @method execCallback 
    9291291                 * @param {String} n Name of the callback to execute. 
    9301292                 * @return {Object} Return value passed from callback function. 
     
    9571319                 * a key mathcin the input. 
    9581320                 * 
     1321                 * @method translate 
    9591322                 * @param {String} s String to translate by the language pack data. 
    9601323                 * @return {String} Translated string. 
     
    9741337                 * Returns a language pack item by name/key. 
    9751338                 * 
     1339                 * @method getLang 
    9761340                 * @param {String} n Name/key to get from the language pack. 
    9771341                 * @param {String} dv Optional default value to retrive. 
     
    9841348                 * Returns a configuration parameter by name. 
    9851349                 * 
     1350                 * @method getParam 
    9861351                 * @param {String} n Configruation parameter to retrive. 
    9871352                 * @param {String} dv Optional default value to return. 
     
    10171382                 * need to update the UI states or element path etc. 
    10181383                 * 
     1384                 * @method nodeChanged 
    10191385                 * @param {Object} o Optional object to pass along for the node changed event. 
    10201386                 */ 
     
    10391405                 * powerfull if you need more control use the ControlManagers factory methods instead. 
    10401406                 * 
     1407                 * @method addButton 
    10411408                 * @param {String} n Button name to add. 
    10421409                 * @param {Object} s Settings object with title, cmd etc. 
     
    10531420                 * The command that you add can be executed with execCommand. 
    10541421                 * 
     1422                 * @method addCommand 
    10551423                 * @param {String} n Command name to add/override. 
    10561424                 * @param {function} f Function to execute when the command occurs. 
     
    10651433                 * The command that you add can be executed with queryCommandState function. 
    10661434                 * 
     1435                 * @method addQueryStateHandler 
    10671436                 * @param {String} n Command name to add/override. 
    10681437                 * @param {function} f Function to execute when the command state retrival occurs. 
     
    10771446                 * The command that you add can be executed with queryCommandValue function. 
    10781447                 * 
     1448                 * @method addQueryValueHandler 
    10791449                 * @param {String} n Command name to add/override. 
    10801450                 * @param {function} f Function to execute when the command value retrival occurs. 
     
    10881458                 * Adds a keyboard shortcut for some command or function. 
    10891459                 * 
     1460                 * @method addShortcut 
    10901461                 * @param {String} pa Shortcut pattern. Like for example: ctrl+alt+o. 
    10911462                 * @param {String} desc Text description for the command. 
    10921463                 * @param {String/Function} cmd_func Command name string or function to execute when the key is pressed. 
    10931464                 * @param {Object} sc Optional scope to execute the function in. 
    1094                  * @return {bool} true/false state if the shortcut was added or not. 
     1465                 * @return {Boolean} true/false state if the shortcut was added or not. 
    10951466                 */ 
    10961467                addShortcut : function(pa, desc, cmd_func, sc) { 
     
    11541525                 * return true it will handle the command as a internal browser command. 
    11551526                 * 
     1527                 * @method execCommand 
    11561528                 * @param {String} cmd Command name to execute, for example mceLink or Bold. 
    1157                  * @param {bool} ui True/false state if a UI (dialog) should be presented or not. 
     1529                 * @param {Boolean} ui True/false state if a UI (dialog) should be presented or not. 
    11581530                 * @param {mixed} val Optional command value, this can be anything. 
    11591531                 * @param {Object} a Optional arguments object. 
    1160                  * @return {bool} True/false if the command was executed or not. 
     1532                 * @return {Boolean} True/false if the command was executed or not. 
    11611533                 */ 
    11621534                execCommand : function(cmd, ui, val, a) { 
     
    12261598                 * Returns a command specific state, for example if bold is enabled or not. 
    12271599                 * 
     1600                 * @method queryCommandState 
    12281601                 * @param {string} c Command to query state from. 
    1229                  * @return {bool} Command specific state, for example if bold is enabled or not. 
     1602                 * @return {Boolean} Command specific state, for example if bold is enabled or not. 
    12301603                 */ 
    12311604                queryCommandState : function(c) { 
     
    12611634                 * Returns a command specific value, for example the current font size. 
    12621635                 * 
     1636                 * @method queryCommandValue 
    12631637                 * @param {string} c Command to query value from. 
    12641638                 * @return {Object} Command specific value, for example the current font size. 
     
    12951669                /** 
    12961670                 * Shows the editor and hides any textarea/div that the editor is supposed to replace. 
     1671                 * 
     1672                 * @method show 
    12971673                 */ 
    12981674                show : function() { 
     
    13061682                /** 
    13071683                 * Hides the editor and shows any textarea/div that the editor is supposed to replace. 
     1684                 * 
     1685                 * @method hide 
    13081686                 */ 
    13091687                hide : function() { 
     
    13231701                 * Returns true/false if the editor is hidden or not. 
    13241702                 * 
    1325                  * @return {bool} True/false if the editor is hidden or not. 
     1703                 * @method isHidden 
     1704                 * @return {Boolean} True/false if the editor is hidden or not. 
    13261705                 */ 
    13271706                isHidden : function() { 
     
    13331712                 * This is ideal for asycronous operations like an AJAX save call. 
    13341713                 * 
    1335                  * @param {bool} b Boolean state if the progress should be shown or hidden. 
     1714                 * @method setProgressState 
     1715                 * @param {Boolean} b Boolean state if the progress should be shown or hidden. 
    13361716                 * @param {Number} ti Optional time to wait before the progress gets shown. 
    13371717                 * @param {Object} o Optional object to pass to the progress observers. 
    1338                  * @return {bool} Same as the input state. 
     1718                 * @return {Boolean} Same as the input state. 
    13391719                 */ 
    13401720                setProgressState : function(b, ti, o) { 
     
    13421722 
    13431723                        return b; 
    1344                 }, 
    1345  
    1346                 /** 
    1347                  * Resizes the editor to the current contents width and height. 
    1348                  */ 
    1349                 resizeToContent : function() { 
    1350                         var t = this; 
    1351  
    1352                         DOM.setStyle(t.id + "_ifr", 'height', t.getBody().scrollHeight); 
    13531724                }, 
    13541725 
     
    13581729                 * so all events etc that method has will get dispatched as well. 
    13591730                 * 
     1731                 * @method load 
    13601732                 * @param {Object} o Optional content object, this gets passed around through the whole load process. 
    13611733                 * @return {String} HTML string that got set into the editor. 
     
    13861758                 * so all events etc that method has will get dispatched as well. 
    13871759                 * 
     1760                 * @method save 
    13881761                 * @param {Object} o Optional content object, this gets passed around through the whole save process. 
    13891762                 * @return {String} HTML string that got set into the textarea/div. 
     
    14361809                 * the different cleanup rules options. 
    14371810                 * 
     1811                 * @method setContent 
    14381812                 * @param {String} h Content to set to editor, normally HTML contents but can be other formats as well. 
    14391813                 * @param {Object} o Optional content object, this gets passed around through the whole set process. 
     
    14751849                 * the different cleanup rules options. 
    14761850                 * 
     1851                 * @method getContent 
    14771852                 * @param {Object} o Optional content object, this gets passed around through the whole get process. 
    14781853                 * @return {String} Cleaned content string, normally HTML contents. 
     
    15061881                 * Returns true/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. 
    15071882                 * 
    1508                  * @return {bool} True/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. 
     1883                 * @method isDirty 
     1884                 * @return {Boolean} True/false if the editor is dirty or not. It will get dirty if the user has made modifications to the contents. 
    15091885                 */ 
    15101886                isDirty : function() { 
     
    15181894                 * all the elements added to the page for the editor. Such as UI, iframe etc. 
    15191895                 * 
     1896                 * @method getContainer 
    15201897                 * @return {Element} HTML DOM element for the editor container. 
    15211898                 */ 
     
    15331910                 * holds the iframe or the editable element. 
    15341911                 * 
     1912                 * @method getContentAreaContainer 
    15351913                 * @return {Element} HTML DOM element for the editor area container. 
    15361914                 */ 
     
    15421920                 * Returns the target element/textarea that got replaced with a TinyMCE editor instance. 
    15431921                 * 
     1922                 * @method getElement 
    15441923                 * @return {Element} HTML DOM element for the replaced element. 
    15451924                 */ 
     
    15511930                 * Returns the iframes window object. 
    15521931                 * 
     1932                 * @method getWin 
    15531933                 * @return {Window} Iframe DOM window object. 
    15541934                 */ 
     
    15691949                 * Returns the iframes document object. 
    15701950                 * 
     1951                 * @method getDoc 
    15711952                 * @return {Document} Iframe DOM document object. 
    15721953                 */ 
     
    15871968                 * Returns the iframes body element. 
    15881969                 * 
     1970                 * @method getBody 
    15891971                 * @return {Element} Iframe body element. 
    15901972                 */ 
     
    15981980                 * manipulation functions. 
    15991981                 * 
     1982                 * @method convertURL 
    16001983                 * @param {string} u URL to convert. 
    16011984                 * @param {string} n Attribute name src, href etc. 
     
    16272010                 * Adds visual aid for tables, anchors etc so they can be more easily edited inside the editor. 
    16282011                 * 
     2012                 * @method addVisual 
    16292013                 * @param {Element} e Optional root element to loop though to find tables etc that needs the visual aid. 
    16302014                 */ 
     
    16722056                /** 
    16732057                 * Removes the editor from the dom and EditorManager collection. 
     2058                 * 
     2059                 * @method remove 
    16742060                 */ 
    16752061                remove : function() { 
     
    16942080                 * but you can also call it directly if you know what you are doing. 
    16952081                 * 
    1696                  * @param {bool} s Optional state if the destroy is an automatic destroy or user called one. 
     2082                 * @method destroy 
     2083                 * @param {Boolean} s Optional state if the destroy is an automatic destroy or user called one. 
    16972084                 */ 
    16982085                destroy : function(s) { 
     
    17802167                                                if (tinymce.isOpera) { 
    17812168                                                        // Fake contextmenu on Opera 
    1782                                                         Event.add(t.getBody(), 'mousedown', function(e) { 
     2169                                                        t.dom.bind(t.getBody(), 'mousedown', function(e) { 
    17832170                                                                if (e.ctrlKey) { 
    17842171                                                                        e.fakeType = 'contextmenu'; 
     
    17872174                                                        }); 
    17882175                                                } else 
    1789                                                         Event.add(t.getBody(), k, eventHandler); 
     2176                                                        t.dom.bind(t.getBody(), k, eventHandler); 
    17902177                                                break; 
    17912178 
    17922179                                        case 'paste': 
    1793                                                 Event.add(t.getBody(), k, function(e) { 
    1794                                                         var tx, h, el, r; 
    1795  
    1796                                                         // Get plain text data 
    1797                                                         if (e.clipboardData) 
    1798                                                                 tx = e.clipboardData.getData('text/plain'); 
    1799                                                         else if (tinymce.isIE) 
    1800                                                                 tx = t.getWin().clipboardData.getData('Text'); 
    1801  
    1802                                                         // Get HTML data 
    1803                                                         /*if (tinymce.isIE) { 
    1804                                                                 el = DOM.add(DOM.doc.body, 'div', {style : 'visibility:hidden;overflow:hidden;position:absolute;width:1px;height:1px'}); 
    1805                                                                 r = DOM.doc.body.createTextRange(); 
    1806                                                                 r.moveToElementText(el); 
    1807                                                                 r.execCommand('Paste'); 
    1808                                                                 h = el.innerHTML; 
    1809                                                                 DOM.remove(el); 
    1810                                                         }*/ 
    1811  
    1812                                                         eventHandler(e, {text : tx, html : h}); 
     2180                                                t.dom.bind(t.getBody(), k, function(e) { 
     2181                                                        eventHandler(e); 
    18132182                                                }); 
    18142183                                                break; 
     
    18162185                                        case 'submit': 
    18172186                                        case 'reset': 
    1818                                                 Event.add(t.getElement().form || DOM.getParent(t.id, 'form'), k, eventHandler); 
     2187                                                t.dom.bind(t.getElement().form || DOM.getParent(t.id, 'form'), k, eventHandler); 
    18192188                                                break; 
    18202189 
    18212190                                        default: 
    1822                                                 Event.add(s.content_editable ? t.getBody() : t.getDoc(), k, eventHandler); 
     2191                                                t.dom.bind(s.content_editable ? t.getBody() : t.getDoc(), k, eventHandler); 
    18232192                                } 
    18242193                        }); 
    18252194 
    1826                         Event.add(s.content_editable ? t.getBody() : (isGecko ? t.getDoc() : t.getWin()), 'focus', function(e) { 
     2195                        t.dom.bind(s.content_editable ? t.getBody() : (isGecko ? t.getDoc() : t.getWin()), 'focus', function(e) { 
    18272196                                t.focus(true); 
    18282197                        }); 
     
    18362205                                }; 
    18372206 
    1838                                 Event.add(t.getBody(), 'click', doFocus); 
    1839                                 Event.add(t.getBody(), 'keydown', doFocus); 
     2207                                t.dom.bind(t.getBody(), 'click', doFocus); 
     2208                                t.dom.bind(t.getBody(), 'keydown', doFocus); 
    18402209                        } 
    18412210 
     
    18552224                                });*/ 
    18562225 
    1857                                 Event.add(t.getDoc(), 'DOMNodeInserted', function(e) { 
     2226                                t.dom.bind(t.getDoc(), 'DOMNodeInserted', function(e) { 
    18582227                                        var v; 
    18592228 
     
    19922361                                // Fix so resize will only update the width and height attributes not the styles of an image 
    19932362                                // It will also block mceItemNoResize items 
    1994                                 Event.add(t.getDoc(), 'controlselect', function(e) { 
     2363                                t.dom.bind(t.getDoc(), 'controlselect', function(e) { 
    19952364                                        var re = t.resizeInfo, cb; 
    19962365 
     
    20022371 
    20032372                                        if (re) 
    2004                                                 Event.remove(re.node, re.ev, re.cb); 
     2373                                                t.dom.unbind(re.node, re.ev, re.cb); 
    20052374 
    20062375                                        if (!t.dom.hasClass(e, 'mceItemNoResize')) { 
    20072376                                                ev = 'resizeend'; 
    2008                                                 cb = Event.add(e, ev, function(e) { 
     2377                                                cb = t.dom.bind(e, ev, function(e) { 
    20092378                                                        var v; 
    20102379 
     
    20232392                                        } else { 
    20242393                                                ev = 'resizestart'; 
    2025                                                 cb = Event.add(e, 'resizestart', Event.cancel, Event); 
     2394                                                cb = t.dom.bind(e, 'resizestart', Event.cancel, Event); 
    20262395                                        } 
    20272396 
     
    20432412                                        } 
    20442413                                }); 
     2414