--- /dev/null
+tinyMCE.addI18n({en:{\r
+common:{\r
+edit_confirm:"Do you want to use the WYSIWYG mode for this textarea?",\r
+apply:"Apply",\r
+insert:"Insert",\r
+update:"Update",\r
+cancel:"Cancel",\r
+close:"Close",\r
+browse:"Browse",\r
+class_name:"Class",\r
+not_set:"-- Not set --",\r
+clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?",\r
+clipboard_no_support:"Currently not supported by your browser, use keyboard shortcuts instead.",\r
+popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.",\r
+invalid_data:"Error: Invalid values entered, these are marked in red.",\r
+more_colors:"More colors"\r
+},\r
+contextmenu:{\r
+align:"Alignment",\r
+left:"Left",\r
+center:"Center",\r
+right:"Right",\r
+full:"Full"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Insert date",\r
+inserttime_desc:"Insert time",\r
+months_long:"January,February,March,April,May,June,July,August,September,October,November,December",\r
+months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",\r
+day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",\r
+day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"\r
+},\r
+print:{\r
+print_desc:"Print"\r
+},\r
+preview:{\r
+preview_desc:"Preview"\r
+},\r
+directionality:{\r
+ltr_desc:"Direction left to right",\r
+rtl_desc:"Direction right to left"\r
+},\r
+layer:{\r
+insertlayer_desc:"Insert new layer",\r
+forward_desc:"Move forward",\r
+backward_desc:"Move backward",\r
+absolute_desc:"Toggle absolute positioning",\r
+content:"New layer..."\r
+},\r
+save:{\r
+save_desc:"Save",\r
+cancel_desc:"Cancel all changes"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Insert non-breaking space character"\r
+},\r
+iespell:{\r
+iespell_desc:"Run spell checking",\r
+download:"ieSpell not detected. Do you want to install it now?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horizontale rule"\r
+},\r
+emotions:{\r
+emotions_desc:"Emotions"\r
+},\r
+searchreplace:{\r
+search_desc:"Find",\r
+replace_desc:"Find/Replace"\r
+},\r
+advimage:{\r
+image_desc:"Insert/edit image"\r
+},\r
+advlink:{\r
+link_desc:"Insert/edit link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"Abbreviation",\r
+acronym_desc:"Acronym",\r
+del_desc:"Deletion",\r
+ins_desc:"Insertion",\r
+attribs_desc:"Insert/Edit Attributes"\r
+},\r
+style:{\r
+desc:"Edit CSS Style"\r
+},\r
+paste:{\r
+paste_text_desc:"Paste as Plain Text",\r
+paste_word_desc:"Paste from Word",\r
+selectall_desc:"Select All"\r
+},\r
+paste_dlg:{\r
+text_title:"Use CTRL+V on your keyboard to paste the text into the window.",\r
+text_linebreaks:"Keep linebreaks",\r
+word_title:"Use CTRL+V on your keyboard to paste the text into the window."\r
+},\r
+table:{\r
+desc:"Inserts a new table",\r
+row_before_desc:"Insert row before",\r
+row_after_desc:"Insert row after",\r
+delete_row_desc:"Delete row",\r
+col_before_desc:"Insert column before",\r
+col_after_desc:"Insert column after",\r
+delete_col_desc:"Remove column",\r
+split_cells_desc:"Split merged table cells",\r
+merge_cells_desc:"Merge table cells",\r
+row_desc:"Table row properties",\r
+cell_desc:"Table cell properties",\r
+props_desc:"Table properties",\r
+paste_row_before_desc:"Paste table row before",\r
+paste_row_after_desc:"Paste table row after",\r
+cut_row_desc:"Cut table row",\r
+copy_row_desc:"Copy table row",\r
+del:"Delete table",\r
+row:"Row",\r
+col:"Column",\r
+cell:"Cell"\r
+},\r
+autosave:{\r
+unload_msg:"The changes you made will be lost if you navigate away from this page."\r
+},\r
+fullscreen:{\r
+desc:"Toggle fullscreen mode"\r
+},\r
+media:{\r
+desc:"Insert / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"Document properties"\r
+},\r
+template:{\r
+desc:"Insert predefined template content"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"Toggle spellchecker",\r
+menu:"Spellchecker settings",\r
+ignore_word:"Ignore word",\r
+ignore_words:"Ignore all",\r
+langs:"Languages",\r
+wait:"Please wait...",\r
+sug:"Suggestions",\r
+no_sug:"No suggestions",\r
+no_mpell:"No misspellings found."\r
+},\r
+pagebreak:{\r
+desc:"Insert page break."\r
+}}});
\ No newline at end of file
--- /dev/null
+ GNU LESSER GENERAL PUBLIC LICENSE\r
+ Version 2.1, February 1999\r
+\r
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.\r
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r
+ Everyone is permitted to copy and distribute verbatim copies\r
+ of this license document, but changing it is not allowed.\r
+\r
+[This is the first released version of the Lesser GPL. It also counts\r
+ as the successor of the GNU Library Public License, version 2, hence\r
+ the version number 2.1.]\r
+\r
+ Preamble\r
+\r
+ The licenses for most software are designed to take away your\r
+freedom to share and change it. By contrast, the GNU General Public\r
+Licenses are intended to guarantee your freedom to share and change\r
+free software--to make sure the software is free for all its users.\r
+\r
+ This license, the Lesser General Public License, applies to some\r
+specially designated software packages--typically libraries--of the\r
+Free Software Foundation and other authors who decide to use it. You\r
+can use it too, but we suggest you first think carefully about whether\r
+this license or the ordinary General Public License is the better\r
+strategy to use in any particular case, based on the explanations below.\r
+\r
+ When we speak of free software, we are referring to freedom of use,\r
+not price. Our General Public Licenses are designed to make sure that\r
+you have the freedom to distribute copies of free software (and charge\r
+for this service if you wish); that you receive source code or can get\r
+it if you want it; that you can change the software and use pieces of\r
+it in new free programs; and that you are informed that you can do\r
+these things.\r
+\r
+ To protect your rights, we need to make restrictions that forbid\r
+distributors to deny you these rights or to ask you to surrender these\r
+rights. These restrictions translate to certain responsibilities for\r
+you if you distribute copies of the library or if you modify it.\r
+\r
+ For example, if you distribute copies of the library, whether gratis\r
+or for a fee, you must give the recipients all the rights that we gave\r
+you. You must make sure that they, too, receive or can get the source\r
+code. If you link other code with the library, you must provide\r
+complete object files to the recipients, so that they can relink them\r
+with the library after making changes to the library and recompiling\r
+it. And you must show them these terms so they know their rights.\r
+\r
+ We protect your rights with a two-step method: (1) we copyright the\r
+library, and (2) we offer you this license, which gives you legal\r
+permission to copy, distribute and/or modify the library.\r
+\r
+ To protect each distributor, we want to make it very clear that\r
+there is no warranty for the free library. Also, if the library is\r
+modified by someone else and passed on, the recipients should know\r
+that what they have is not the original version, so that the original\r
+author's reputation will not be affected by problems that might be\r
+introduced by others.\r
+\r
+ Finally, software patents pose a constant threat to the existence of\r
+any free program. We wish to make sure that a company cannot\r
+effectively restrict the users of a free program by obtaining a\r
+restrictive license from a patent holder. Therefore, we insist that\r
+any patent license obtained for a version of the library must be\r
+consistent with the full freedom of use specified in this license.\r
+\r
+ Most GNU software, including some libraries, is covered by the\r
+ordinary GNU General Public License. This license, the GNU Lesser\r
+General Public License, applies to certain designated libraries, and\r
+is quite different from the ordinary General Public License. We use\r
+this license for certain libraries in order to permit linking those\r
+libraries into non-free programs.\r
+\r
+ When a program is linked with a library, whether statically or using\r
+a shared library, the combination of the two is legally speaking a\r
+combined work, a derivative of the original library. The ordinary\r
+General Public License therefore permits such linking only if the\r
+entire combination fits its criteria of freedom. The Lesser General\r
+Public License permits more lax criteria for linking other code with\r
+the library.\r
+\r
+ We call this license the "Lesser" General Public License because it\r
+does Less to protect the user's freedom than the ordinary General\r
+Public License. It also provides other free software developers Less\r
+of an advantage over competing non-free programs. These disadvantages\r
+are the reason we use the ordinary General Public License for many\r
+libraries. However, the Lesser license provides advantages in certain\r
+special circumstances.\r
+\r
+ For example, on rare occasions, there may be a special need to\r
+encourage the widest possible use of a certain library, so that it becomes\r
+a de-facto standard. To achieve this, non-free programs must be\r
+allowed to use the library. A more frequent case is that a free\r
+library does the same job as widely used non-free libraries. In this\r
+case, there is little to gain by limiting the free library to free\r
+software only, so we use the Lesser General Public License.\r
+\r
+ In other cases, permission to use a particular library in non-free\r
+programs enables a greater number of people to use a large body of\r
+free software. For example, permission to use the GNU C Library in\r
+non-free programs enables many more people to use the whole GNU\r
+operating system, as well as its variant, the GNU/Linux operating\r
+system.\r
+\r
+ Although the Lesser General Public License is Less protective of the\r
+users' freedom, it does ensure that the user of a program that is\r
+linked with the Library has the freedom and the wherewithal to run\r
+that program using a modified version of the Library.\r
+\r
+ The precise terms and conditions for copying, distribution and\r
+modification follow. Pay close attention to the difference between a\r
+"work based on the library" and a "work that uses the library". The\r
+former contains code derived from the library, whereas the latter must\r
+be combined with the library in order to run.\r
+\r
+ GNU LESSER GENERAL PUBLIC LICENSE\r
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r
+\r
+ 0. This License Agreement applies to any software library or other\r
+program which contains a notice placed by the copyright holder or\r
+other authorized party saying it may be distributed under the terms of\r
+this Lesser General Public License (also called "this License").\r
+Each licensee is addressed as "you".\r
+\r
+ A "library" means a collection of software functions and/or data\r
+prepared so as to be conveniently linked with application programs\r
+(which use some of those functions and data) to form executables.\r
+\r
+ The "Library", below, refers to any such software library or work\r
+which has been distributed under these terms. A "work based on the\r
+Library" means either the Library or any derivative work under\r
+copyright law: that is to say, a work containing the Library or a\r
+portion of it, either verbatim or with modifications and/or translated\r
+straightforwardly into another language. (Hereinafter, translation is\r
+included without limitation in the term "modification".)\r
+\r
+ "Source code" for a work means the preferred form of the work for\r
+making modifications to it. For a library, complete source code means\r
+all the source code for all modules it contains, plus any associated\r
+interface definition files, plus the scripts used to control compilation\r
+and installation of the library.\r
+\r
+ Activities other than copying, distribution and modification are not\r
+covered by this License; they are outside its scope. The act of\r
+running a program using the Library is not restricted, and output from\r
+such a program is covered only if its contents constitute a work based\r
+on the Library (independent of the use of the Library in a tool for\r
+writing it). Whether that is true depends on what the Library does\r
+and what the program that uses the Library does.\r
+ \r
+ 1. You may copy and distribute verbatim copies of the Library's\r
+complete source code as you receive it, in any medium, provided that\r
+you conspicuously and appropriately publish on each copy an\r
+appropriate copyright notice and disclaimer of warranty; keep intact\r
+all the notices that refer to this License and to the absence of any\r
+warranty; and distribute a copy of this License along with the\r
+Library.\r
+\r
+ You may charge a fee for the physical act of transferring a copy,\r
+and you may at your option offer warranty protection in exchange for a\r
+fee.\r
+\r
+ 2. You may modify your copy or copies of the Library or any portion\r
+of it, thus forming a work based on the Library, and copy and\r
+distribute such modifications or work under the terms of Section 1\r
+above, provided that you also meet all of these conditions:\r
+\r
+ a) The modified work must itself be a software library.\r
+\r
+ b) You must cause the files modified to carry prominent notices\r
+ stating that you changed the files and the date of any change.\r
+\r
+ c) You must cause the whole of the work to be licensed at no\r
+ charge to all third parties under the terms of this License.\r
+\r
+ d) If a facility in the modified Library refers to a function or a\r
+ table of data to be supplied by an application program that uses\r
+ the facility, other than as an argument passed when the facility\r
+ is invoked, then you must make a good faith effort to ensure that,\r
+ in the event an application does not supply such function or\r
+ table, the facility still operates, and performs whatever part of\r
+ its purpose remains meaningful.\r
+\r
+ (For example, a function in a library to compute square roots has\r
+ a purpose that is entirely well-defined independent of the\r
+ application. Therefore, Subsection 2d requires that any\r
+ application-supplied function or table used by this function must\r
+ be optional: if the application does not supply it, the square\r
+ root function must still compute square roots.)\r
+\r
+These requirements apply to the modified work as a whole. If\r
+identifiable sections of that work are not derived from the Library,\r
+and can be reasonably considered independent and separate works in\r
+themselves, then this License, and its terms, do not apply to those\r
+sections when you distribute them as separate works. But when you\r
+distribute the same sections as part of a whole which is a work based\r
+on the Library, the distribution of the whole must be on the terms of\r
+this License, whose permissions for other licensees extend to the\r
+entire whole, and thus to each and every part regardless of who wrote\r
+it.\r
+\r
+Thus, it is not the intent of this section to claim rights or contest\r
+your rights to work written entirely by you; rather, the intent is to\r
+exercise the right to control the distribution of derivative or\r
+collective works based on the Library.\r
+\r
+In addition, mere aggregation of another work not based on the Library\r
+with the Library (or with a work based on the Library) on a volume of\r
+a storage or distribution medium does not bring the other work under\r
+the scope of this License.\r
+\r
+ 3. You may opt to apply the terms of the ordinary GNU General Public\r
+License instead of this License to a given copy of the Library. To do\r
+this, you must alter all the notices that refer to this License, so\r
+that they refer to the ordinary GNU General Public License, version 2,\r
+instead of to this License. (If a newer version than version 2 of the\r
+ordinary GNU General Public License has appeared, then you can specify\r
+that version instead if you wish.) Do not make any other change in\r
+these notices.\r
+\r
+ Once this change is made in a given copy, it is irreversible for\r
+that copy, so the ordinary GNU General Public License applies to all\r
+subsequent copies and derivative works made from that copy.\r
+\r
+ This option is useful when you wish to copy part of the code of\r
+the Library into a program that is not a library.\r
+\r
+ 4. You may copy and distribute the Library (or a portion or\r
+derivative of it, under Section 2) in object code or executable form\r
+under the terms of Sections 1 and 2 above provided that you accompany\r
+it with the complete corresponding machine-readable source code, which\r
+must be distributed under the terms of Sections 1 and 2 above on a\r
+medium customarily used for software interchange.\r
+\r
+ If distribution of object code is made by offering access to copy\r
+from a designated place, then offering equivalent access to copy the\r
+source code from the same place satisfies the requirement to\r
+distribute the source code, even though third parties are not\r
+compelled to copy the source along with the object code.\r
+\r
+ 5. A program that contains no derivative of any portion of the\r
+Library, but is designed to work with the Library by being compiled or\r
+linked with it, is called a "work that uses the Library". Such a\r
+work, in isolation, is not a derivative work of the Library, and\r
+therefore falls outside the scope of this License.\r
+\r
+ However, linking a "work that uses the Library" with the Library\r
+creates an executable that is a derivative of the Library (because it\r
+contains portions of the Library), rather than a "work that uses the\r
+library". The executable is therefore covered by this License.\r
+Section 6 states terms for distribution of such executables.\r
+\r
+ When a "work that uses the Library" uses material from a header file\r
+that is part of the Library, the object code for the work may be a\r
+derivative work of the Library even though the source code is not.\r
+Whether this is true is especially significant if the work can be\r
+linked without the Library, or if the work is itself a library. The\r
+threshold for this to be true is not precisely defined by law.\r
+\r
+ If such an object file uses only numerical parameters, data\r
+structure layouts and accessors, and small macros and small inline\r
+functions (ten lines or less in length), then the use of the object\r
+file is unrestricted, regardless of whether it is legally a derivative\r
+work. (Executables containing this object code plus portions of the\r
+Library will still fall under Section 6.)\r
+\r
+ Otherwise, if the work is a derivative of the Library, you may\r
+distribute the object code for the work under the terms of Section 6.\r
+Any executables containing that work also fall under Section 6,\r
+whether or not they are linked directly with the Library itself.\r
+\r
+ 6. As an exception to the Sections above, you may also combine or\r
+link a "work that uses the Library" with the Library to produce a\r
+work containing portions of the Library, and distribute that work\r
+under terms of your choice, provided that the terms permit\r
+modification of the work for the customer's own use and reverse\r
+engineering for debugging such modifications.\r
+\r
+ You must give prominent notice with each copy of the work that the\r
+Library is used in it and that the Library and its use are covered by\r
+this License. You must supply a copy of this License. If the work\r
+during execution displays copyright notices, you must include the\r
+copyright notice for the Library among them, as well as a reference\r
+directing the user to the copy of this License. Also, you must do one\r
+of these things:\r
+\r
+ a) Accompany the work with the complete corresponding\r
+ machine-readable source code for the Library including whatever\r
+ changes were used in the work (which must be distributed under\r
+ Sections 1 and 2 above); and, if the work is an executable linked\r
+ with the Library, with the complete machine-readable "work that\r
+ uses the Library", as object code and/or source code, so that the\r
+ user can modify the Library and then relink to produce a modified\r
+ executable containing the modified Library. (It is understood\r
+ that the user who changes the contents of definitions files in the\r
+ Library will not necessarily be able to recompile the application\r
+ to use the modified definitions.)\r
+\r
+ b) Use a suitable shared library mechanism for linking with the\r
+ Library. A suitable mechanism is one that (1) uses at run time a\r
+ copy of the library already present on the user's computer system,\r
+ rather than copying library functions into the executable, and (2)\r
+ will operate properly with a modified version of the library, if\r
+ the user installs one, as long as the modified version is\r
+ interface-compatible with the version that the work was made with.\r
+\r
+ c) Accompany the work with a written offer, valid for at\r
+ least three years, to give the same user the materials\r
+ specified in Subsection 6a, above, for a charge no more\r
+ than the cost of performing this distribution.\r
+\r
+ d) If distribution of the work is made by offering access to copy\r
+ from a designated place, offer equivalent access to copy the above\r
+ specified materials from the same place.\r
+\r
+ e) Verify that the user has already received a copy of these\r
+ materials or that you have already sent this user a copy.\r
+\r
+ For an executable, the required form of the "work that uses the\r
+Library" must include any data and utility programs needed for\r
+reproducing the executable from it. However, as a special exception,\r
+the materials to be distributed need not include anything that is\r
+normally distributed (in either source or binary form) with the major\r
+components (compiler, kernel, and so on) of the operating system on\r
+which the executable runs, unless that component itself accompanies\r
+the executable.\r
+\r
+ It may happen that this requirement contradicts the license\r
+restrictions of other proprietary libraries that do not normally\r
+accompany the operating system. Such a contradiction means you cannot\r
+use both them and the Library together in an executable that you\r
+distribute.\r
+\r
+ 7. You may place library facilities that are a work based on the\r
+Library side-by-side in a single library together with other library\r
+facilities not covered by this License, and distribute such a combined\r
+library, provided that the separate distribution of the work based on\r
+the Library and of the other library facilities is otherwise\r
+permitted, and provided that you do these two things:\r
+\r
+ a) Accompany the combined library with a copy of the same work\r
+ based on the Library, uncombined with any other library\r
+ facilities. This must be distributed under the terms of the\r
+ Sections above.\r
+\r
+ b) Give prominent notice with the combined library of the fact\r
+ that part of it is a work based on the Library, and explaining\r
+ where to find the accompanying uncombined form of the same work.\r
+\r
+ 8. You may not copy, modify, sublicense, link with, or distribute\r
+the Library except as expressly provided under this License. Any\r
+attempt otherwise to copy, modify, sublicense, link with, or\r
+distribute the Library is void, and will automatically terminate your\r
+rights under this License. However, parties who have received copies,\r
+or rights, from you under this License will not have their licenses\r
+terminated so long as such parties remain in full compliance.\r
+\r
+ 9. You are not required to accept this License, since you have not\r
+signed it. However, nothing else grants you permission to modify or\r
+distribute the Library or its derivative works. These actions are\r
+prohibited by law if you do not accept this License. Therefore, by\r
+modifying or distributing the Library (or any work based on the\r
+Library), you indicate your acceptance of this License to do so, and\r
+all its terms and conditions for copying, distributing or modifying\r
+the Library or works based on it.\r
+\r
+ 10. Each time you redistribute the Library (or any work based on the\r
+Library), the recipient automatically receives a license from the\r
+original licensor to copy, distribute, link with or modify the Library\r
+subject to these terms and conditions. You may not impose any further\r
+restrictions on the recipients' exercise of the rights granted herein.\r
+You are not responsible for enforcing compliance by third parties with\r
+this License.\r
+\r
+ 11. If, as a consequence of a court judgment or allegation of patent\r
+infringement or for any other reason (not limited to patent issues),\r
+conditions are imposed on you (whether by court order, agreement or\r
+otherwise) that contradict the conditions of this License, they do not\r
+excuse you from the conditions of this License. If you cannot\r
+distribute so as to satisfy simultaneously your obligations under this\r
+License and any other pertinent obligations, then as a consequence you\r
+may not distribute the Library at all. For example, if a patent\r
+license would not permit royalty-free redistribution of the Library by\r
+all those who receive copies directly or indirectly through you, then\r
+the only way you could satisfy both it and this License would be to\r
+refrain entirely from distribution of the Library.\r
+\r
+If any portion of this section is held invalid or unenforceable under any\r
+particular circumstance, the balance of the section is intended to apply,\r
+and the section as a whole is intended to apply in other circumstances.\r
+\r
+It is not the purpose of this section to induce you to infringe any\r
+patents or other property right claims or to contest validity of any\r
+such claims; this section has the sole purpose of protecting the\r
+integrity of the free software distribution system which is\r
+implemented by public license practices. Many people have made\r
+generous contributions to the wide range of software distributed\r
+through that system in reliance on consistent application of that\r
+system; it is up to the author/donor to decide if he or she is willing\r
+to distribute software through any other system and a licensee cannot\r
+impose that choice.\r
+\r
+This section is intended to make thoroughly clear what is believed to\r
+be a consequence of the rest of this License.\r
+\r
+ 12. If the distribution and/or use of the Library is restricted in\r
+certain countries either by patents or by copyrighted interfaces, the\r
+original copyright holder who places the Library under this License may add\r
+an explicit geographical distribution limitation excluding those countries,\r
+so that distribution is permitted only in or among countries not thus\r
+excluded. In such case, this License incorporates the limitation as if\r
+written in the body of this License.\r
+\r
+ 13. The Free Software Foundation may publish revised and/or new\r
+versions of the Lesser General Public License from time to time.\r
+Such new versions will be similar in spirit to the present version,\r
+but may differ in detail to address new problems or concerns.\r
+\r
+Each version is given a distinguishing version number. If the Library\r
+specifies a version number of this License which applies to it and\r
+"any later version", you have the option of following the terms and\r
+conditions either of that version or of any later version published by\r
+the Free Software Foundation. If the Library does not specify a\r
+license version number, you may choose any version ever published by\r
+the Free Software Foundation.\r
+\r
+ 14. If you wish to incorporate parts of the Library into other free\r
+programs whose distribution conditions are incompatible with these,\r
+write to the author to ask for permission. For software which is\r
+copyrighted by the Free Software Foundation, write to the Free\r
+Software Foundation; we sometimes make exceptions for this. Our\r
+decision will be guided by the two goals of preserving the free status\r
+of all derivatives of our free software and of promoting the sharing\r
+and reuse of software generally.\r
+\r
+ NO WARRANTY\r
+\r
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\r
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\r
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\r
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY\r
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\r
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\r
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\r
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\r
+\r
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\r
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\r
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\r
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\r
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\r
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\r
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\r
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\r
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\r
+DAMAGES.\r
+\r
+ END OF TERMS AND CONDITIONS\r
+\r
+ How to Apply These Terms to Your New Libraries\r
+\r
+ If you develop a new library, and you want it to be of the greatest\r
+possible use to the public, we recommend making it free software that\r
+everyone can redistribute and change. You can do so by permitting\r
+redistribution under these terms (or, alternatively, under the terms of the\r
+ordinary General Public License).\r
+\r
+ To apply these terms, attach the following notices to the library. It is\r
+safest to attach them to the start of each source file to most effectively\r
+convey the exclusion of warranty; and each file should have at least the\r
+"copyright" line and a pointer to where the full notice is found.\r
+\r
+ <one line to give the library's name and a brief idea of what it does.>\r
+ Copyright (C) <year> <name of author>\r
+\r
+ This library is free software; you can redistribute it and/or\r
+ modify it under the terms of the GNU Lesser General Public\r
+ License as published by the Free Software Foundation; either\r
+ version 2.1 of the License, or (at your option) any later version.\r
+\r
+ This library is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
+ Lesser General Public License for more details.\r
+\r
+ You should have received a copy of the GNU Lesser General Public\r
+ License along with this library; if not, write to the Free Software\r
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r
+\r
+Also add information on how to contact you by electronic and paper mail.\r
+\r
+You should also get your employer (if you work as a programmer) or your\r
+school, if any, to sign a "copyright disclaimer" for the library, if\r
+necessary. Here is a sample; alter the names:\r
+\r
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the\r
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.\r
+\r
+ <signature of Ty Coon>, 1 April 1990\r
+ Ty Coon, President of Vice\r
+\r
+That's all there is to it!\r
+\r
+\r
--- /dev/null
+input.radio {border:1px none #000; background:transparent; vertical-align:middle;}\r
+.panel_wrapper div.current {height:80px;}\r
+#width {width:50px; vertical-align:middle;}\r
+#width2 {width:50px; vertical-align:middle;}\r
+#size {width:100px;}\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.AdvancedHRPlugin',{init:function(ed,url){ed.addCommand('mceAdvancedHr',function(){ed.windowManager.open({file:url+'/rule.htm',width:250+parseInt(ed.getLang('advhr.delta_width',0)),height:160+parseInt(ed.getLang('advhr.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('advhr',{title:'advhr.advhr_desc',cmd:'mceAdvancedHr'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('advhr',n.nodeName=='HR');});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='HR')ed.selection.select(e);});},getInfo:function(){return{longname:'Advanced HR',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advhr',tinymce.plugins.AdvancedHRPlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.AdvancedHRPlugin', {\r
+ init : function(ed, url) {\r
+ // Register commands\r
+ ed.addCommand('mceAdvancedHr', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/rule.htm',\r
+ width : 250 + parseInt(ed.getLang('advhr.delta_width', 0)),\r
+ height : 160 + parseInt(ed.getLang('advhr.delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('advhr', {\r
+ title : 'advhr.advhr_desc',\r
+ cmd : 'mceAdvancedHr'\r
+ });\r
+\r
+ ed.onNodeChange.add(function(ed, cm, n) {\r
+ cm.setActive('advhr', n.nodeName == 'HR');\r
+ });\r
+\r
+ ed.onClick.add(function(ed, e) {\r
+ e = e.target;\r
+\r
+ if (e.nodeName === 'HR')\r
+ ed.selection.select(e);\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Advanced HR',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('advhr', tinymce.plugins.AdvancedHRPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+var AdvHRDialog = {\r
+ init : function(ed) {\r
+ var dom = ed.dom, f = document.forms[0], n = ed.selection.getNode(), w;\r
+\r
+ w = dom.getAttrib(n, 'width');\r
+ f.width.value = w ? parseInt(w) : '';\r
+ f.size.value = dom.getAttrib(n, 'size');\r
+ f.noshade.checked = !!dom.getAttrib(n, 'noshade');\r
+ selectByValue(f, 'width2', w.indexOf('%') != -1 ? '%' : 'px');\r
+ },\r
+\r
+ update : function() {\r
+ var ed = tinyMCEPopup.editor, h, f = document.forms[0];\r
+\r
+ h = '<hr';\r
+\r
+ if (f.size.value)\r
+ h += ' size="' + f.size.value + '"';\r
+\r
+ if (f.width.value)\r
+ h += ' width="' + f.width.value + (f.width2.value == '%' ? '%' : '') + '"';\r
+\r
+ if (f.noshade.checked)\r
+ h += ' noshade="noshade"';\r
+\r
+ h += ' />';\r
+\r
+ ed.execCommand("mceInsertContent", false, h);\r
+ tinyMCEPopup.close();\r
+ }\r
+};\r
+\r
+tinyMCEPopup.requireLangPack();\r
+tinyMCEPopup.onInit.add(AdvHRDialog.init, AdvHRDialog);\r
--- /dev/null
+tinyMCE.addI18n('en.advhr_dlg',{\r
+width:"Width",\r
+size:"Height",\r
+noshade:"No shadow"\r
+});
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#advhr.advhr_desc}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="js/rule.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <link href="css/advhr.css" rel="stylesheet" type="text/css" />\r
+ <base target="_self" />\r
+</head>\r
+<body>\r
+<form onsubmit="AdvHRDialog.update();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advhr.advhr_desc}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td><label for="width">{#advhr_dlg.width}</label></td>\r
+ <td nowrap="nowrap">\r
+ <input id="width" name="width" type="text" value="" class="mceFocus" />\r
+ <select name="width2" id="width2">\r
+ <option value="">px</option>\r
+ <option value="%">%</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="size">{#advhr_dlg.size}</label></td>\r
+ <td><select id="size" name="size">\r
+ <option value="">Normal</option>\r
+ <option value="1">1</option>\r
+ <option value="2">2</option>\r
+ <option value="3">3</option>\r
+ <option value="4">4</option>\r
+ <option value="5">5</option>\r
+ </select></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="noshade">{#advhr_dlg.noshade}</label></td>\r
+ <td><input type="checkbox" name="noshade" id="noshade" class="radio" /></td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+#src_list, #over_list, #out_list {width:280px;}\r
+.mceActionPanel {margin-top:7px;}\r
+.alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;}\r
+.checkbox {border:0;}\r
+.panel_wrapper div.current {height:305px;}\r
+#prev {margin:0; border:1px solid #000; width:99%; height:150px; overflow:auto;}\r
+#align, #classlist {width:150px;}\r
+#width, #height {vertical-align:middle; width:50px; text-align:center;}\r
+#vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;}\r
+#class_list {width:180px;}\r
+input {width: 280px;}\r
+#constrain, #onmousemovecheck {width:auto;}\r
+#id, #dir, #lang, #usemap, #longdesc {width:200px;}\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.AdvancedImagePlugin',{init:function(ed,url){ed.addCommand('mceAdvImage',function(){if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({file:url+'/image.htm',width:480+parseInt(ed.getLang('advimage.delta_width',0)),height:385+parseInt(ed.getLang('advimage.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('image',{title:'advimage.image_desc',cmd:'mceAdvImage'});},getInfo:function(){return{longname:'Advanced image',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advimage',tinymce.plugins.AdvancedImagePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.AdvancedImagePlugin', {\r
+ init : function(ed, url) {\r
+ // Register commands\r
+ ed.addCommand('mceAdvImage', function() {\r
+ // Internal image object like a flash placeholder\r
+ if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)\r
+ return;\r
+\r
+ ed.windowManager.open({\r
+ file : url + '/image.htm',\r
+ width : 480 + parseInt(ed.getLang('advimage.delta_width', 0)),\r
+ height : 385 + parseInt(ed.getLang('advimage.delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('image', {\r
+ title : 'advimage.image_desc',\r
+ cmd : 'mceAdvImage'\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Advanced image',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('advimage', tinymce.plugins.AdvancedImagePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#advimage_dlg.dialog_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="../../utils/validate.js"></script>\r
+ <script type="text/javascript" src="js/image.js"></script>\r
+ <link href="css/advimage.css" rel="stylesheet" type="text/css" />\r
+ <base target="_self" />\r
+</head>\r
+<body id="advimage" style="display: none">\r
+ <form onsubmit="ImageDialog.insert();return false;" action="#"> \r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advimage_dlg.tab_general}</a></span></li>\r
+ <li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{#advimage_dlg.tab_appearance}</a></span></li>\r
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#advimage_dlg.tab_advanced}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#advimage_dlg.general}</legend>\r
+\r
+ <table class="properties">\r
+ <tr>\r
+ <td class="column1"><label id="srclabel" for="src">{#advimage_dlg.src}</label></td>\r
+ <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">\r
+ <tr> \r
+ <td><input name="src" type="text" id="src" value="" class="mceFocus" onchange="ImageDialog.showPreviewImage(this.value);" /></td> \r
+ <td id="srcbrowsercontainer"> </td>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="src_list">{#advimage_dlg.image_list}</label></td>\r
+ <td><select id="src_list" name="src_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;document.getElementById('title').value=this.options[this.selectedIndex].text;ImageDialog.showPreviewImage(this.options[this.selectedIndex].value);"></select></td>\r
+ </tr>\r
+ <tr> \r
+ <td class="column1"><label id="altlabel" for="alt">{#advimage_dlg.alt}</label></td> \r
+ <td colspan="2"><input id="alt" name="alt" type="text" value="" /></td> \r
+ </tr> \r
+ <tr> \r
+ <td class="column1"><label id="titlelabel" for="title">{#advimage_dlg.title}</label></td> \r
+ <td colspan="2"><input id="title" name="title" type="text" value="" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset>\r
+ <legend>{#advimage_dlg.preview}</legend>\r
+ <div id="prev"></div>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="appearance_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#advimage_dlg.tab_appearance}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr> \r
+ <td class="column1"><label id="alignlabel" for="align">{#advimage_dlg.align}</label></td> \r
+ <td><select id="align" name="align" onchange="ImageDialog.updateStyle('align');ImageDialog.changeAppearance();"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="baseline">{#advimage_dlg.align_baseline}</option>\r
+ <option value="top">{#advimage_dlg.align_top}</option>\r
+ <option value="middle">{#advimage_dlg.align_middle}</option>\r
+ <option value="bottom">{#advimage_dlg.align_bottom}</option>\r
+ <option value="text-top">{#advimage_dlg.align_texttop}</option>\r
+ <option value="text-bottom">{#advimage_dlg.align_textbottom}</option>\r
+ <option value="left">{#advimage_dlg.align_left}</option>\r
+ <option value="right">{#advimage_dlg.align_right}</option>\r
+ </select> \r
+ </td>\r
+ <td rowspan="6" valign="top">\r
+ <div class="alignPreview">\r
+ <img id="alignSampleImg" src="img/sample.gif" alt="{#advimage_dlg.example_img}" />\r
+ Lorem ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing elit, sed diam\r
+ nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Loreum ipsum\r
+ edipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam\r
+ erat volutpat.\r
+ </div>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="widthlabel" for="width">{#advimage_dlg.dimensions}</label></td>\r
+ <td nowrap="nowrap">\r
+ <input name="width" type="text" id="width" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeHeight();" /> x \r
+ <input name="height" type="text" id="height" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeWidth();" /> px\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td> </td>\r
+ <td><table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>\r
+ <td><label id="constrainlabel" for="constrain">{#advimage_dlg.constrain_proportions}</label></td>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="vspacelabel" for="vspace">{#advimage_dlg.vspace}</label></td> \r
+ <td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('vspace');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('vspace');ImageDialog.changeAppearance();" />\r
+ </td>\r
+ </tr>\r
+\r
+ <tr> \r
+ <td class="column1"><label id="hspacelabel" for="hspace">{#advimage_dlg.hspace}</label></td> \r
+ <td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('hspace');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('hspace');ImageDialog.changeAppearance();" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="borderlabel" for="border">{#advimage_dlg.border}</label></td> \r
+ <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('border');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('border');ImageDialog.changeAppearance();" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="class_list">{#class_name}</label></td>\r
+ <td><select id="class_list" name="class_list"></select></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="stylelabel" for="style">{#advimage_dlg.style}</label></td> \r
+ <td colspan="2"><input id="style" name="style" type="text" value="" onchange="ImageDialog.changeAppearance();" /></td> \r
+ </tr>\r
+\r
+ <!-- <tr>\r
+ <td class="column1"><label id="classeslabel" for="classes">{#advimage_dlg.classes}</label></td> \r
+ <td colspan="2"><input id="classes" name="classes" type="text" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td> \r
+ </tr> -->\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="advanced_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#advimage_dlg.swap_image}</legend>\r
+\r
+ <input type="checkbox" id="onmousemovecheck" name="onmousemovecheck" class="checkbox" onclick="ImageDialog.setSwapImage(this.checked);" />\r
+ <label id="onmousemovechecklabel" for="onmousemovecheck">{#advimage_dlg.alt_image}</label>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0" width="100%">\r
+ <tr>\r
+ <td class="column1"><label id="onmouseoversrclabel" for="onmouseoversrc">{#advimage_dlg.mouseover}</label></td> \r
+ <td><table border="0" cellspacing="0" cellpadding="0"> \r
+ <tr> \r
+ <td><input id="onmouseoversrc" name="onmouseoversrc" type="text" value="" /></td> \r
+ <td id="onmouseoversrccontainer"> </td>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="over_list">{#advimage_dlg.image_list}</label></td>\r
+ <td><select id="over_list" name="over_list" onchange="document.getElementById('onmouseoversrc').value=this.options[this.selectedIndex].value;"></select></td>\r
+ </tr>\r
+ <tr> \r
+ <td class="column1"><label id="onmouseoutsrclabel" for="onmouseoutsrc">{#advimage_dlg.mouseout}</label></td> \r
+ <td class="column2"><table border="0" cellspacing="0" cellpadding="0"> \r
+ <tr> \r
+ <td><input id="onmouseoutsrc" name="onmouseoutsrc" type="text" value="" /></td> \r
+ <td id="onmouseoutsrccontainer"> </td>\r
+ </tr> \r
+ </table></td> \r
+ </tr>\r
+ <tr>\r
+ <td><label for="out_list">{#advimage_dlg.image_list}</label></td>\r
+ <td><select id="out_list" name="out_list" onchange="document.getElementById('onmouseoutsrc').value=this.options[this.selectedIndex].value;"></select></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset>\r
+ <legend>{#advimage_dlg.misc}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label id="idlabel" for="id">{#advimage_dlg.id}</label></td> \r
+ <td><input id="id" name="id" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="dirlabel" for="dir">{#advimage_dlg.langdir}</label></td> \r
+ <td>\r
+ <select id="dir" name="dir" onchange="ImageDialog.changeAppearance();"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#advimage_dlg.ltr}</option> \r
+ <option value="rtl">{#advimage_dlg.rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="langlabel" for="lang">{#advimage_dlg.langcode}</label></td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" />\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="usemaplabel" for="usemap">{#advimage_dlg.map}</label></td> \r
+ <td>\r
+ <input id="usemap" name="usemap" type="text" value="" />\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="longdesclabel" for="longdesc">{#advimage_dlg.long_desc}</label></td>\r
+ <td><table border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td><input id="longdesc" name="longdesc" type="text" value="" /></td>\r
+ <td id="longdesccontainer"> </td>\r
+ </tr>\r
+ </table></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+ </form>\r
+</body> \r
+</html> \r
--- /dev/null
+var ImageDialog = {\r
+ preInit : function() {\r
+ var url;\r
+\r
+ tinyMCEPopup.requireLangPack();\r
+\r
+ if (url = tinyMCEPopup.getParam("external_image_list_url"))\r
+ document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
+ },\r
+\r
+ init : function(ed) {\r
+ var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();\r
+\r
+ tinyMCEPopup.resizeToInnerSize();\r
+ this.fillClassList('class_list');\r
+ this.fillFileList('src_list', 'tinyMCEImageList');\r
+ this.fillFileList('over_list', 'tinyMCEImageList');\r
+ this.fillFileList('out_list', 'tinyMCEImageList');\r
+\r
+ if (n.nodeName == 'IMG') {\r
+ nl.src.value = dom.getAttrib(n, 'src');\r
+ nl.width.value = dom.getAttrib(n, 'width');\r
+ nl.height.value = dom.getAttrib(n, 'height');\r
+ nl.alt.value = dom.getAttrib(n, 'alt');\r
+ nl.title.value = dom.getAttrib(n, 'title');\r
+ nl.vspace.value = this.getAttrib(n, 'vspace');\r
+ nl.hspace.value = this.getAttrib(n, 'hspace');\r
+ nl.border.value = this.getAttrib(n, 'border');\r
+ selectByValue(f, 'align', this.getAttrib(n, 'align'));\r
+ selectByValue(f, 'class_list', dom.getAttrib(n, 'class'));\r
+ nl.style.value = dom.getAttrib(n, 'style');\r
+ nl.id.value = dom.getAttrib(n, 'id');\r
+ nl.dir.value = dom.getAttrib(n, 'dir');\r
+ nl.lang.value = dom.getAttrib(n, 'lang');\r
+ nl.usemap.value = dom.getAttrib(n, 'usemap');\r
+ nl.longdesc.value = dom.getAttrib(n, 'longdesc');\r
+ nl.insert.value = ed.getLang('update');\r
+\r
+ if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseover')))\r
+ nl.onmouseoversrc.value = dom.getAttrib(n, 'onmouseover').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');\r
+\r
+ if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseout')))\r
+ nl.onmouseoutsrc.value = dom.getAttrib(n, 'onmouseout').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');\r
+\r
+ if (ed.settings.inline_styles) {\r
+ // Move attribs to styles\r
+ if (dom.getAttrib(n, 'align'))\r
+ this.updateStyle('align');\r
+\r
+ if (dom.getAttrib(n, 'hspace'))\r
+ this.updateStyle('hspace');\r
+\r
+ if (dom.getAttrib(n, 'border'))\r
+ this.updateStyle('border');\r
+\r
+ if (dom.getAttrib(n, 'vspace'))\r
+ this.updateStyle('vspace');\r
+ }\r
+ }\r
+\r
+ // Setup browse button\r
+ document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');\r
+ if (isVisible('srcbrowser'))\r
+ document.getElementById('src').style.width = '260px';\r
+\r
+ // Setup browse button\r
+ document.getElementById('onmouseoversrccontainer').innerHTML = getBrowserHTML('overbrowser','onmouseoversrc','image','theme_advanced_image');\r
+ if (isVisible('overbrowser'))\r
+ document.getElementById('onmouseoversrc').style.width = '260px';\r
+\r
+ // Setup browse button\r
+ document.getElementById('onmouseoutsrccontainer').innerHTML = getBrowserHTML('outbrowser','onmouseoutsrc','image','theme_advanced_image');\r
+ if (isVisible('outbrowser'))\r
+ document.getElementById('onmouseoutsrc').style.width = '260px';\r
+\r
+ // If option enabled default contrain proportions to checked\r
+ if (ed.getParam("advimage_constrain_proportions", true))\r
+ f.constrain.checked = true;\r
+\r
+ // Check swap image if valid data\r
+ if (nl.onmouseoversrc.value || nl.onmouseoutsrc.value)\r
+ this.setSwapImage(true);\r
+ else\r
+ this.setSwapImage(false);\r
+\r
+ this.changeAppearance();\r
+ this.showPreviewImage(nl.src.value, 1);\r
+ },\r
+\r
+ insert : function(file, title) {\r
+ var ed = tinyMCEPopup.editor, t = this, f = document.forms[0];\r
+\r
+ if (f.src.value === '') {\r
+ if (ed.selection.getNode().nodeName == 'IMG') {\r
+ ed.dom.remove(ed.selection.getNode());\r
+ ed.execCommand('mceRepaint');\r
+ }\r
+\r
+ tinyMCEPopup.close();\r
+ return;\r
+ }\r
+\r
+ if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {\r
+ if (!f.alt.value) {\r
+ tinyMCEPopup.editor.windowManager.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {\r
+ if (s)\r
+ t.insertAndClose();\r
+ });\r
+\r
+ return;\r
+ }\r
+ }\r
+\r
+ t.insertAndClose();\r
+ },\r
+\r
+ insertAndClose : function() {\r
+ var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;\r
+\r
+ tinyMCEPopup.restoreSelection();\r
+\r
+ // Fixes crash in Safari\r
+ if (tinymce.isWebKit)\r
+ ed.getWin().focus();\r
+\r
+ if (!ed.settings.inline_styles) {\r
+ args = {\r
+ vspace : nl.vspace.value,\r
+ hspace : nl.hspace.value,\r
+ border : nl.border.value,\r
+ align : getSelectValue(f, 'align')\r
+ };\r
+ } else {\r
+ // Remove deprecated values\r
+ args = {\r
+ vspace : '',\r
+ hspace : '',\r
+ border : '',\r
+ align : ''\r
+ };\r
+ }\r
+\r
+ tinymce.extend(args, {\r
+ src : nl.src.value,\r
+ width : nl.width.value,\r
+ height : nl.height.value,\r
+ alt : nl.alt.value,\r
+ title : nl.title.value,\r
+ 'class' : getSelectValue(f, 'class_list'),\r
+ style : nl.style.value,\r
+ id : nl.id.value,\r
+ dir : nl.dir.value,\r
+ lang : nl.lang.value,\r
+ usemap : nl.usemap.value,\r
+ longdesc : nl.longdesc.value\r
+ });\r
+\r
+ args.onmouseover = args.onmouseout = '';\r
+\r
+ if (f.onmousemovecheck.checked) {\r
+ if (nl.onmouseoversrc.value)\r
+ args.onmouseover = "this.src='" + nl.onmouseoversrc.value + "';";\r
+\r
+ if (nl.onmouseoutsrc.value)\r
+ args.onmouseout = "this.src='" + nl.onmouseoutsrc.value + "';";\r
+ }\r
+\r
+ el = ed.selection.getNode();\r
+\r
+ if (el && el.nodeName == 'IMG') {\r
+ ed.dom.setAttribs(el, args);\r
+ } else {\r
+ ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" src="javascript:;" />', {skip_undo : 1});\r
+ ed.dom.setAttribs('__mce_tmp', args);\r
+ ed.dom.setAttrib('__mce_tmp', 'id', '');\r
+ ed.undoManager.add();\r
+ }\r
+\r
+ tinyMCEPopup.close();\r
+ },\r
+\r
+ getAttrib : function(e, at) {\r
+ var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;\r
+\r
+ if (ed.settings.inline_styles) {\r
+ switch (at) {\r
+ case 'align':\r
+ if (v = dom.getStyle(e, 'float'))\r
+ return v;\r
+\r
+ if (v = dom.getStyle(e, 'vertical-align'))\r
+ return v;\r
+\r
+ break;\r
+\r
+ case 'hspace':\r
+ v = dom.getStyle(e, 'margin-left')\r
+ v2 = dom.getStyle(e, 'margin-right');\r
+\r
+ if (v && v == v2)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+\r
+ case 'vspace':\r
+ v = dom.getStyle(e, 'margin-top')\r
+ v2 = dom.getStyle(e, 'margin-bottom');\r
+ if (v && v == v2)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+\r
+ case 'border':\r
+ v = 0;\r
+\r
+ tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {\r
+ sv = dom.getStyle(e, 'border-' + sv + '-width');\r
+\r
+ // False or not the same as prev\r
+ if (!sv || (sv != v && v !== 0)) {\r
+ v = 0;\r
+ return false;\r
+ }\r
+\r
+ if (sv)\r
+ v = sv;\r
+ });\r
+\r
+ if (v)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+ }\r
+ }\r
+\r
+ if (v = dom.getAttrib(e, at))\r
+ return v;\r
+\r
+ return '';\r
+ },\r
+\r
+ setSwapImage : function(st) {\r
+ var f = document.forms[0];\r
+\r
+ f.onmousemovecheck.checked = st;\r
+ setBrowserDisabled('overbrowser', !st);\r
+ setBrowserDisabled('outbrowser', !st);\r
+\r
+ if (f.over_list)\r
+ f.over_list.disabled = !st;\r
+\r
+ if (f.out_list)\r
+ f.out_list.disabled = !st;\r
+\r
+ f.onmouseoversrc.disabled = !st;\r
+ f.onmouseoutsrc.disabled = !st;\r
+ },\r
+\r
+ fillClassList : function(id) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
+\r
+ if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {\r
+ cl = [];\r
+\r
+ tinymce.each(v.split(';'), function(v) {\r
+ var p = v.split('=');\r
+\r
+ cl.push({'title' : p[0], 'class' : p[1]});\r
+ });\r
+ } else\r
+ cl = tinyMCEPopup.editor.dom.getClasses();\r
+\r
+ if (cl.length > 0) {\r
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
+\r
+ tinymce.each(cl, function(o) {\r
+ lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);\r
+ });\r
+ } else\r
+ dom.remove(dom.getParent(id, 'tr'));\r
+ },\r
+\r
+ fillFileList : function(id, l) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
+\r
+ l = window[l];\r
+\r
+ if (l && l.length > 0) {\r
+ lst.options[lst.options.length] = new Option('', '');\r
+\r
+ tinymce.each(l, function(o) {\r
+ lst.options[lst.options.length] = new Option(o[0], o[1]);\r
+ });\r
+ } else\r
+ dom.remove(dom.getParent(id, 'tr'));\r
+ },\r
+\r
+ resetImageData : function() {\r
+ var f = document.forms[0];\r
+\r
+ f.elements.width.value = f.elements.height.value = '';\r
+ },\r
+\r
+ updateImageData : function(img, st) {\r
+ var f = document.forms[0];\r
+\r
+ if (!st) {\r
+ f.elements.width.value = img.width;\r
+ f.elements.height.value = img.height;\r
+ }\r
+\r
+ this.preloadImg = img;\r
+ },\r
+\r
+ changeAppearance : function() {\r
+ var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg');\r
+\r
+ if (img) {\r
+ if (ed.getParam('inline_styles')) {\r
+ ed.dom.setAttrib(img, 'style', f.style.value);\r
+ } else {\r
+ img.align = f.align.value;\r
+ img.border = f.border.value;\r
+ img.hspace = f.hspace.value;\r
+ img.vspace = f.vspace.value;\r
+ }\r
+ }\r
+ },\r
+\r
+ changeHeight : function() {\r
+ var f = document.forms[0], tp, t = this;\r
+\r
+ if (!f.constrain.checked || !t.preloadImg) {\r
+ return;\r
+ }\r
+\r
+ if (f.width.value == "" || f.height.value == "")\r
+ return;\r
+\r
+ tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height;\r
+ f.height.value = tp.toFixed(0);\r
+ },\r
+\r
+ changeWidth : function() {\r
+ var f = document.forms[0], tp, t = this;\r
+\r
+ if (!f.constrain.checked || !t.preloadImg) {\r
+ return;\r
+ }\r
+\r
+ if (f.width.value == "" || f.height.value == "")\r
+ return;\r
+\r
+ tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width;\r
+ f.width.value = tp.toFixed(0);\r
+ },\r
+\r
+ updateStyle : function(ty) {\r
+ var dom = tinyMCEPopup.dom, st, v, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value});\r
+\r
+ if (tinyMCEPopup.editor.settings.inline_styles) {\r
+ // Handle align\r
+ if (ty == 'align') {\r
+ dom.setStyle(img, 'float', '');\r
+ dom.setStyle(img, 'vertical-align', '');\r
+\r
+ v = getSelectValue(f, 'align');\r
+ if (v) {\r
+ if (v == 'left' || v == 'right')\r
+ dom.setStyle(img, 'float', v);\r
+ else\r
+ img.style.verticalAlign = v;\r
+ }\r
+ }\r
+\r
+ // Handle border\r
+ if (ty == 'border') {\r
+ dom.setStyle(img, 'border', '');\r
+\r
+ v = f.border.value;\r
+ if (v || v == '0') {\r
+ if (v == '0')\r
+ img.style.border = '';\r
+ else\r
+ img.style.border = v + 'px solid black';\r
+ }\r
+ }\r
+\r
+ // Handle hspace\r
+ if (ty == 'hspace') {\r
+ dom.setStyle(img, 'marginLeft', '');\r
+ dom.setStyle(img, 'marginRight', '');\r
+\r
+ v = f.hspace.value;\r
+ if (v) {\r
+ img.style.marginLeft = v + 'px';\r
+ img.style.marginRight = v + 'px';\r
+ }\r
+ }\r
+\r
+ // Handle vspace\r
+ if (ty == 'vspace') {\r
+ dom.setStyle(img, 'marginTop', '');\r
+ dom.setStyle(img, 'marginBottom', '');\r
+\r
+ v = f.vspace.value;\r
+ if (v) {\r
+ img.style.marginTop = v + 'px';\r
+ img.style.marginBottom = v + 'px';\r
+ }\r
+ }\r
+\r
+ // Merge\r
+ dom.get('style').value = dom.serializeStyle(dom.parseStyle(img.style.cssText));\r
+ }\r
+ },\r
+\r
+ changeMouseMove : function() {\r
+ },\r
+\r
+ showPreviewImage : function(u, st) {\r
+ if (!u) {\r
+ tinyMCEPopup.dom.setHTML('prev', '');\r
+ return;\r
+ }\r
+\r
+ if (!st && tinyMCEPopup.getParam("advimage_update_dimensions_onchange", true))\r
+ this.resetImageData();\r
+\r
+ u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u);\r
+\r
+ if (!st)\r
+ tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this);" onerror="ImageDialog.resetImageData();" />');\r
+ else\r
+ tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this, 1);" />');\r
+ }\r
+};\r
+\r
+ImageDialog.preInit();\r
+tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);\r
--- /dev/null
+tinyMCE.addI18n('en.advimage_dlg',{\r
+tab_general:"General",\r
+tab_appearance:"Appearance",\r
+tab_advanced:"Advanced",\r
+general:"General",\r
+title:"Title",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+langdir:"Language direction",\r
+langcode:"Language code",\r
+long_desc:"Long description link",\r
+style:"Style",\r
+classes:"Classes",\r
+ltr:"Left to right",\r
+rtl:"Right to left",\r
+id:"Id",\r
+map:"Image map",\r
+swap_image:"Swap image",\r
+alt_image:"Alternative image",\r
+mouseover:"for mouse over",\r
+mouseout:"for mouse out",\r
+misc:"Miscellaneous",\r
+example_img:"Appearance preview image",\r
+missing_alt:"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.",\r
+dialog_title:"Insert/edit image",\r
+src:"Image URL",\r
+alt:"Image description",\r
+list:"Image list",\r
+border:"Border",\r
+dimensions:"Dimensions",\r
+vspace:"Vertical space",\r
+hspace:"Horizontal space",\r
+align:"Alignment",\r
+align_baseline:"Baseline",\r
+align_top:"Top",\r
+align_middle:"Middle",\r
+align_bottom:"Bottom",\r
+align_texttop:"Text top",\r
+align_textbottom:"Text bottom",\r
+align_left:"Left",\r
+align_right:"Right",\r
+image_list:"Image list"\r
+});
\ No newline at end of file
--- /dev/null
+.mceLinkList, .mceAnchorList, #targetlist {width:280px;}\r
+.mceActionPanel {margin-top:7px;}\r
+.panel_wrapper div.current {height:320px;}\r
+#classlist, #title, #href {width:280px;}\r
+#popupurl, #popupname {width:200px;}\r
+#popupwidth, #popupheight, #popupleft, #popuptop {width:30px;vertical-align:middle;text-align:center;}\r
+#id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {width:200px;}\r
+#events_panel input {width:200px;}\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.AdvancedLinkPlugin',{init:function(ed,url){this.editor=ed;ed.addCommand('mceAdvLink',function(){var se=ed.selection;if(se.isCollapsed()&&!ed.dom.getParent(se.getNode(),'A'))return;ed.windowManager.open({file:url+'/link.htm',width:480+parseInt(ed.getLang('advlink.delta_width',0)),height:400+parseInt(ed.getLang('advlink.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('link',{title:'advlink.link_desc',cmd:'mceAdvLink'});ed.addShortcut('ctrl+k','advlink.advlink_desc','mceAdvLink');ed.onNodeChange.add(function(ed,cm,n,co){cm.setDisabled('link',co&&n.nodeName!='A');cm.setActive('link',n.nodeName=='A'&&!n.name);});},getInfo:function(){return{longname:'Advanced link',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advlink',tinymce.plugins.AdvancedLinkPlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.AdvancedLinkPlugin', {\r
+ init : function(ed, url) {\r
+ this.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceAdvLink', function() {\r
+ var se = ed.selection;\r
+\r
+ // No selection and not in link\r
+ if (se.isCollapsed() && !ed.dom.getParent(se.getNode(), 'A'))\r
+ return;\r
+\r
+ ed.windowManager.open({\r
+ file : url + '/link.htm',\r
+ width : 480 + parseInt(ed.getLang('advlink.delta_width', 0)),\r
+ height : 400 + parseInt(ed.getLang('advlink.delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('link', {\r
+ title : 'advlink.link_desc',\r
+ cmd : 'mceAdvLink'\r
+ });\r
+\r
+ ed.addShortcut('ctrl+k', 'advlink.advlink_desc', 'mceAdvLink');\r
+\r
+ ed.onNodeChange.add(function(ed, cm, n, co) {\r
+ cm.setDisabled('link', co && n.nodeName != 'A');\r
+ cm.setActive('link', n.nodeName == 'A' && !n.name);\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Advanced link',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('advlink', tinymce.plugins.AdvancedLinkPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+/* Functions for the advlink plugin popup */\r
+\r
+tinyMCEPopup.requireLangPack();\r
+\r
+var templates = {\r
+ "window.open" : "window.open('${url}','${target}','${options}')"\r
+};\r
+\r
+function preinit() {\r
+ var url;\r
+\r
+ if (url = tinyMCEPopup.getParam("external_link_list_url"))\r
+ document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
+}\r
+\r
+function changeClass() {\r
+ var formObj = document.forms[0];\r
+ formObj.classes.value = getSelectValue(formObj, 'classlist');\r
+}\r
+\r
+function init() {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ var formObj = document.forms[0];\r
+ var inst = tinyMCEPopup.editor;\r
+ var elm = inst.selection.getNode();\r
+ var action = "insert";\r
+ var html;\r
+\r
+ document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','advlink');\r
+ document.getElementById('popupurlbrowsercontainer').innerHTML = getBrowserHTML('popupurlbrowser','popupurl','file','advlink');\r
+ document.getElementById('linklisthrefcontainer').innerHTML = getLinkListHTML('linklisthref','href');\r
+ document.getElementById('anchorlistcontainer').innerHTML = getAnchorListHTML('anchorlist','href');\r
+ document.getElementById('targetlistcontainer').innerHTML = getTargetListHTML('targetlist','target');\r
+\r
+ // Link list\r
+ html = getLinkListHTML('linklisthref','href');\r
+ if (html == "")\r
+ document.getElementById("linklisthrefrow").style.display = 'none';\r
+ else\r
+ document.getElementById("linklisthrefcontainer").innerHTML = html;\r
+\r
+ // Resize some elements\r
+ if (isVisible('hrefbrowser'))\r
+ document.getElementById('href').style.width = '260px';\r
+\r
+ if (isVisible('popupurlbrowser'))\r
+ document.getElementById('popupurl').style.width = '180px';\r
+\r
+ elm = inst.dom.getParent(elm, "A");\r
+ if (elm != null && elm.nodeName == "A")\r
+ action = "update";\r
+\r
+ formObj.insert.value = tinyMCEPopup.getLang(action, 'Insert', true); \r
+\r
+ setPopupControlsDisabled(true);\r
+\r
+ if (action == "update") {\r
+ var href = inst.dom.getAttrib(elm, 'href');\r
+ var onclick = inst.dom.getAttrib(elm, 'onclick');\r
+\r
+ // Setup form data\r
+ setFormValue('href', href);\r
+ setFormValue('title', inst.dom.getAttrib(elm, 'title'));\r
+ setFormValue('id', inst.dom.getAttrib(elm, 'id'));\r
+ setFormValue('style', inst.dom.getAttrib(elm, "style"));\r
+ setFormValue('rel', inst.dom.getAttrib(elm, 'rel'));\r
+ setFormValue('rev', inst.dom.getAttrib(elm, 'rev'));\r
+ setFormValue('charset', inst.dom.getAttrib(elm, 'charset'));\r
+ setFormValue('hreflang', inst.dom.getAttrib(elm, 'hreflang'));\r
+ setFormValue('dir', inst.dom.getAttrib(elm, 'dir'));\r
+ setFormValue('lang', inst.dom.getAttrib(elm, 'lang'));\r
+ setFormValue('tabindex', inst.dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));\r
+ setFormValue('accesskey', inst.dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));\r
+ setFormValue('type', inst.dom.getAttrib(elm, 'type'));\r
+ setFormValue('onfocus', inst.dom.getAttrib(elm, 'onfocus'));\r
+ setFormValue('onblur', inst.dom.getAttrib(elm, 'onblur'));\r
+ setFormValue('onclick', onclick);\r
+ setFormValue('ondblclick', inst.dom.getAttrib(elm, 'ondblclick'));\r
+ setFormValue('onmousedown', inst.dom.getAttrib(elm, 'onmousedown'));\r
+ setFormValue('onmouseup', inst.dom.getAttrib(elm, 'onmouseup'));\r
+ setFormValue('onmouseover', inst.dom.getAttrib(elm, 'onmouseover'));\r
+ setFormValue('onmousemove', inst.dom.getAttrib(elm, 'onmousemove'));\r
+ setFormValue('onmouseout', inst.dom.getAttrib(elm, 'onmouseout'));\r
+ setFormValue('onkeypress', inst.dom.getAttrib(elm, 'onkeypress'));\r
+ setFormValue('onkeydown', inst.dom.getAttrib(elm, 'onkeydown'));\r
+ setFormValue('onkeyup', inst.dom.getAttrib(elm, 'onkeyup'));\r
+ setFormValue('target', inst.dom.getAttrib(elm, 'target'));\r
+ setFormValue('classes', inst.dom.getAttrib(elm, 'class'));\r
+\r
+ // Parse onclick data\r
+ if (onclick != null && onclick.indexOf('window.open') != -1)\r
+ parseWindowOpen(onclick);\r
+ else\r
+ parseFunction(onclick);\r
+\r
+ // Select by the values\r
+ selectByValue(formObj, 'dir', inst.dom.getAttrib(elm, 'dir'));\r
+ selectByValue(formObj, 'rel', inst.dom.getAttrib(elm, 'rel'));\r
+ selectByValue(formObj, 'rev', inst.dom.getAttrib(elm, 'rev'));\r
+ selectByValue(formObj, 'linklisthref', href);\r
+\r
+ if (href.charAt(0) == '#')\r
+ selectByValue(formObj, 'anchorlist', href);\r
+\r
+ addClassesToList('classlist', 'advlink_styles');\r
+\r
+ selectByValue(formObj, 'classlist', inst.dom.getAttrib(elm, 'class'), true);\r
+ selectByValue(formObj, 'targetlist', inst.dom.getAttrib(elm, 'target'), true);\r
+ } else\r
+ addClassesToList('classlist', 'advlink_styles');\r
+}\r
+\r
+function checkPrefix(n) {\r
+ if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_email')))\r
+ n.value = 'mailto:' + n.value;\r
+\r
+ if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_external')))\r
+ n.value = 'http://' + n.value;\r
+}\r
+\r
+function setFormValue(name, value) {\r
+ document.forms[0].elements[name].value = value;\r
+}\r
+\r
+function parseWindowOpen(onclick) {\r
+ var formObj = document.forms[0];\r
+\r
+ // Preprocess center code\r
+ if (onclick.indexOf('return false;') != -1) {\r
+ formObj.popupreturn.checked = true;\r
+ onclick = onclick.replace('return false;', '');\r
+ } else\r
+ formObj.popupreturn.checked = false;\r
+\r
+ var onClickData = parseLink(onclick);\r
+\r
+ if (onClickData != null) {\r
+ formObj.ispopup.checked = true;\r
+ setPopupControlsDisabled(false);\r
+\r
+ var onClickWindowOptions = parseOptions(onClickData['options']);\r
+ var url = onClickData['url'];\r
+\r
+ formObj.popupname.value = onClickData['target'];\r
+ formObj.popupurl.value = url;\r
+ formObj.popupwidth.value = getOption(onClickWindowOptions, 'width');\r
+ formObj.popupheight.value = getOption(onClickWindowOptions, 'height');\r
+\r
+ formObj.popupleft.value = getOption(onClickWindowOptions, 'left');\r
+ formObj.popuptop.value = getOption(onClickWindowOptions, 'top');\r
+\r
+ if (formObj.popupleft.value.indexOf('screen') != -1)\r
+ formObj.popupleft.value = "c";\r
+\r
+ if (formObj.popuptop.value.indexOf('screen') != -1)\r
+ formObj.popuptop.value = "c";\r
+\r
+ formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes";\r
+ formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes";\r
+ formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes";\r
+ formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes";\r
+ formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes";\r
+ formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes";\r
+ formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes";\r
+\r
+ buildOnClick();\r
+ }\r
+}\r
+\r
+function parseFunction(onclick) {\r
+ var formObj = document.forms[0];\r
+ var onClickData = parseLink(onclick);\r
+\r
+ // TODO: Add stuff here\r
+}\r
+\r
+function getOption(opts, name) {\r
+ return typeof(opts[name]) == "undefined" ? "" : opts[name];\r
+}\r
+\r
+function setPopupControlsDisabled(state) {\r
+ var formObj = document.forms[0];\r
+\r
+ formObj.popupname.disabled = state;\r
+ formObj.popupurl.disabled = state;\r
+ formObj.popupwidth.disabled = state;\r
+ formObj.popupheight.disabled = state;\r
+ formObj.popupleft.disabled = state;\r
+ formObj.popuptop.disabled = state;\r
+ formObj.popuplocation.disabled = state;\r
+ formObj.popupscrollbars.disabled = state;\r
+ formObj.popupmenubar.disabled = state;\r
+ formObj.popupresizable.disabled = state;\r
+ formObj.popuptoolbar.disabled = state;\r
+ formObj.popupstatus.disabled = state;\r
+ formObj.popupreturn.disabled = state;\r
+ formObj.popupdependent.disabled = state;\r
+\r
+ setBrowserDisabled('popupurlbrowser', state);\r
+}\r
+\r
+function parseLink(link) {\r
+ link = link.replace(new RegExp(''', 'g'), "'");\r
+\r
+ var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1");\r
+\r
+ // Is function name a template function\r
+ var template = templates[fnName];\r
+ if (template) {\r
+ // Build regexp\r
+ var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi"));\r
+ var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\(";\r
+ var replaceStr = "";\r
+ for (var i=0; i<variableNames.length; i++) {\r
+ // Is string value\r
+ if (variableNames[i].indexOf("'${") != -1)\r
+ regExp += "'(.*)'";\r
+ else // Number value\r
+ regExp += "([0-9]*)";\r
+\r
+ replaceStr += "$" + (i+1);\r
+\r
+ // Cleanup variable name\r
+ variableNames[i] = variableNames[i].replace(new RegExp("[^A-Za-z0-9]", "gi"), "");\r
+\r
+ if (i != variableNames.length-1) {\r
+ regExp += "\\s*,\\s*";\r
+ replaceStr += "<delim>";\r
+ } else\r
+ regExp += ".*";\r
+ }\r
+\r
+ regExp += "\\);?";\r
+\r
+ // Build variable array\r
+ var variables = new Array();\r
+ variables["_function"] = fnName;\r
+ var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('<delim>');\r
+ for (var i=0; i<variableNames.length; i++)\r
+ variables[variableNames[i]] = variableValues[i];\r
+\r
+ return variables;\r
+ }\r
+\r
+ return null;\r
+}\r
+\r
+function parseOptions(opts) {\r
+ if (opts == null || opts == "")\r
+ return new Array();\r
+\r
+ // Cleanup the options\r
+ opts = opts.toLowerCase();\r
+ opts = opts.replace(/;/g, ",");\r
+ opts = opts.replace(/[^0-9a-z=,]/g, "");\r
+\r
+ var optionChunks = opts.split(',');\r
+ var options = new Array();\r
+\r
+ for (var i=0; i<optionChunks.length; i++) {\r
+ var parts = optionChunks[i].split('=');\r
+\r
+ if (parts.length == 2)\r
+ options[parts[0]] = parts[1];\r
+ }\r
+\r
+ return options;\r
+}\r
+\r
+function buildOnClick() {\r
+ var formObj = document.forms[0];\r
+\r
+ if (!formObj.ispopup.checked) {\r
+ formObj.onclick.value = "";\r
+ return;\r
+ }\r
+\r
+ var onclick = "window.open('";\r
+ var url = formObj.popupurl.value;\r
+\r
+ onclick += url + "','";\r
+ onclick += formObj.popupname.value + "','";\r
+\r
+ if (formObj.popuplocation.checked)\r
+ onclick += "location=yes,";\r
+\r
+ if (formObj.popupscrollbars.checked)\r
+ onclick += "scrollbars=yes,";\r
+\r
+ if (formObj.popupmenubar.checked)\r
+ onclick += "menubar=yes,";\r
+\r
+ if (formObj.popupresizable.checked)\r
+ onclick += "resizable=yes,";\r
+\r
+ if (formObj.popuptoolbar.checked)\r
+ onclick += "toolbar=yes,";\r
+\r
+ if (formObj.popupstatus.checked)\r
+ onclick += "status=yes,";\r
+\r
+ if (formObj.popupdependent.checked)\r
+ onclick += "dependent=yes,";\r
+\r
+ if (formObj.popupwidth.value != "")\r
+ onclick += "width=" + formObj.popupwidth.value + ",";\r
+\r
+ if (formObj.popupheight.value != "")\r
+ onclick += "height=" + formObj.popupheight.value + ",";\r
+\r
+ if (formObj.popupleft.value != "") {\r
+ if (formObj.popupleft.value != "c")\r
+ onclick += "left=" + formObj.popupleft.value + ",";\r
+ else\r
+ onclick += "left='+(screen.availWidth/2-" + (formObj.popupwidth.value/2) + ")+',";\r
+ }\r
+\r
+ if (formObj.popuptop.value != "") {\r
+ if (formObj.popuptop.value != "c")\r
+ onclick += "top=" + formObj.popuptop.value + ",";\r
+ else\r
+ onclick += "top='+(screen.availHeight/2-" + (formObj.popupheight.value/2) + ")+',";\r
+ }\r
+\r
+ if (onclick.charAt(onclick.length-1) == ',')\r
+ onclick = onclick.substring(0, onclick.length-1);\r
+\r
+ onclick += "');";\r
+\r
+ if (formObj.popupreturn.checked)\r
+ onclick += "return false;";\r
+\r
+ // tinyMCE.debug(onclick);\r
+\r
+ formObj.onclick.value = onclick;\r
+\r
+ if (formObj.href.value == "")\r
+ formObj.href.value = url;\r
+}\r
+\r
+function setAttrib(elm, attrib, value) {\r
+ var formObj = document.forms[0];\r
+ var valueElm = formObj.elements[attrib.toLowerCase()];\r
+ var dom = tinyMCEPopup.editor.dom;\r
+\r
+ if (typeof(value) == "undefined" || value == null) {\r
+ value = "";\r
+\r
+ if (valueElm)\r
+ value = valueElm.value;\r
+ }\r
+\r
+ // Clean up the style\r
+ if (attrib == 'style')\r
+ value = dom.serializeStyle(dom.parseStyle(value));\r
+\r
+ dom.setAttrib(elm, attrib, value);\r
+}\r
+\r
+function getAnchorListHTML(id, target) {\r
+ var inst = tinyMCEPopup.editor;\r
+ var nodes = inst.dom.select('a.mceItemAnchor,img.mceItemAnchor'), name, i;\r
+ var html = "";\r
+\r
+ html += '<select id="' + id + '" name="' + id + '" class="mceAnchorList" o2nfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target + '.value=';\r
+ html += 'this.options[this.selectedIndex].value;">';\r
+ html += '<option value="">---</option>';\r
+\r
+ for (i=0; i<nodes.length; i++) {\r
+ if ((name = inst.dom.getAttrib(nodes[i], "name")) != "")\r
+ html += '<option value="#' + name + '">' + name + '</option>';\r
+ }\r
+\r
+ html += '</select>';\r
+\r
+ return html;\r
+}\r
+\r
+function insertAction() {\r
+ var inst = tinyMCEPopup.editor;\r
+ var elm, elementArray, i;\r
+\r
+ elm = inst.selection.getNode();\r
+ checkPrefix(document.forms[0].href);\r
+\r
+ elm = inst.dom.getParent(elm, "A");\r
+\r
+ // Remove element if there is no href\r
+ if (!document.forms[0].href.value) {\r
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
+ i = inst.selection.getBookmark();\r
+ inst.dom.remove(elm, 1);\r
+ inst.selection.moveToBookmark(i);\r
+ tinyMCEPopup.execCommand("mceEndUndoLevel");\r
+ tinyMCEPopup.close();\r
+ return;\r
+ }\r
+\r
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
+\r
+ // Create new anchor elements\r
+ if (elm == null) {\r
+ tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});\r
+\r
+ elementArray = tinymce.grep(inst.dom.select("a"), function(n) {return inst.dom.getAttrib(n, 'href') == '#mce_temp_url#';});\r
+ for (i=0; i<elementArray.length; i++) {\r
+ elm = elementArray[i];\r
+\r
+ // Move cursor to end\r
+ try {\r
+ tinyMCEPopup.editor.selection.collapse(false);\r
+ } catch (ex) {\r
+ // Ignore\r
+ }\r
+\r
+ // Move cursor behind the new anchor\r
+ // Don't remember why this was needed so it's now removed\r
+ /*\r
+ if (tinyMCE.isGecko) {\r
+ var sp = inst.getDoc().createTextNode(" ");\r
+\r
+ if (elm.nextSibling)\r
+ elm.parentNode.insertBefore(sp, elm.nextSibling);\r
+ else\r
+ elm.parentNode.appendChild(sp);\r
+\r
+ // Set range after link\r
+ var rng = inst.getDoc().createRange();\r
+ rng.setStartAfter(elm);\r
+ rng.setEndAfter(elm);\r
+\r
+ // Update selection\r
+ var sel = inst.getSel();\r
+ sel.removeAllRanges();\r
+ sel.addRange(rng);\r
+ }\r
+ */\r
+\r
+ setAllAttribs(elm);\r
+ }\r
+ } else\r
+ setAllAttribs(elm);\r
+\r
+ tinyMCEPopup.execCommand("mceEndUndoLevel");\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function setAllAttribs(elm) {\r
+ var formObj = document.forms[0];\r
+ var href = formObj.href.value;\r
+ var target = getSelectValue(formObj, 'targetlist');\r
+\r
+ setAttrib(elm, 'href', href);\r
+ setAttrib(elm, 'mce_href', href);\r
+ setAttrib(elm, 'title');\r
+ setAttrib(elm, 'target', target == '_self' ? '' : target);\r
+ setAttrib(elm, 'id');\r
+ setAttrib(elm, 'style');\r
+ setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));\r
+ setAttrib(elm, 'rel');\r
+ setAttrib(elm, 'rev');\r
+ setAttrib(elm, 'charset');\r
+ setAttrib(elm, 'hreflang');\r
+ setAttrib(elm, 'dir');\r
+ setAttrib(elm, 'lang');\r
+ setAttrib(elm, 'tabindex');\r
+ setAttrib(elm, 'accesskey');\r
+ setAttrib(elm, 'type');\r
+ setAttrib(elm, 'onfocus');\r
+ setAttrib(elm, 'onblur');\r
+ setAttrib(elm, 'onclick');\r
+ setAttrib(elm, 'ondblclick');\r
+ setAttrib(elm, 'onmousedown');\r
+ setAttrib(elm, 'onmouseup');\r
+ setAttrib(elm, 'onmouseover');\r
+ setAttrib(elm, 'onmousemove');\r
+ setAttrib(elm, 'onmouseout');\r
+ setAttrib(elm, 'onkeypress');\r
+ setAttrib(elm, 'onkeydown');\r
+ setAttrib(elm, 'onkeyup');\r
+\r
+ // Refresh in old MSIE\r
+ if (tinyMCE.isMSIE5)\r
+ elm.outerHTML = elm.outerHTML;\r
+}\r
+\r
+function getSelectValue(form_obj, field_name) {\r
+ var elm = form_obj.elements[field_name];\r
+\r
+ if (elm == null || elm.options == null)\r
+ return "";\r
+\r
+ return elm.options[elm.selectedIndex].value;\r
+}\r
+\r
+function getLinkListHTML(elm_id, target_form_element, onchange_func) {\r
+ if (typeof(tinyMCELinkList) == "undefined" || tinyMCELinkList.length == 0)\r
+ return "";\r
+\r
+ var html = "";\r
+\r
+ html += '<select id="' + elm_id + '" name="' + elm_id + '"';\r
+ html += ' class="mceLinkList" onfoc2us="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';\r
+ html += 'this.options[this.selectedIndex].value;';\r
+\r
+ if (typeof(onchange_func) != "undefined")\r
+ html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,this.options[this.selectedIndex].value);';\r
+\r
+ html += '"><option value="">---</option>';\r
+\r
+ for (var i=0; i<tinyMCELinkList.length; i++)\r
+ html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>';\r
+\r
+ html += '</select>';\r
+\r
+ return html;\r
+\r
+ // tinyMCE.debug('-- image list start --', html, '-- image list end --');\r
+}\r
+\r
+function getTargetListHTML(elm_id, target_form_element) {\r
+ var targets = tinyMCEPopup.getParam('theme_advanced_link_targets', '').split(';');\r
+ var html = '';\r
+\r
+ html += '<select id="' + elm_id + '" name="' + elm_id + '" onf2ocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';\r
+ html += 'this.options[this.selectedIndex].value;">';\r
+ html += '<option value="_self">' + tinyMCEPopup.getLang('advlink_dlg.target_same') + '</option>';\r
+ html += '<option value="_blank">' + tinyMCEPopup.getLang('advlink_dlg.target_blank') + ' (_blank)</option>';\r
+ html += '<option value="_parent">' + tinyMCEPopup.getLang('advlink_dlg.target_parent') + ' (_parent)</option>';\r
+ html += '<option value="_top">' + tinyMCEPopup.getLang('advlink_dlg.target_top') + ' (_top)</option>';\r
+\r
+ for (var i=0; i<targets.length; i++) {\r
+ var key, value;\r
+\r
+ if (targets[i] == "")\r
+ continue;\r
+\r
+ key = targets[i].split('=')[0];\r
+ value = targets[i].split('=')[1];\r
+\r
+ html += '<option value="' + key + '">' + value + ' (' + key + ')</option>';\r
+ }\r
+\r
+ html += '</select>';\r
+\r
+ return html;\r
+}\r
+\r
+// While loading\r
+preinit();\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCE.addI18n('en.advlink_dlg',{\r
+title:"Insert/edit link",\r
+url:"Link URL",\r
+target:"Target",\r
+titlefield:"Title",\r
+is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
+is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
+list:"Link list",\r
+general_tab:"General",\r
+popup_tab:"Popup",\r
+events_tab:"Events",\r
+advanced_tab:"Advanced",\r
+general_props:"General properties",\r
+popup_props:"Popup properties",\r
+event_props:"Events",\r
+advanced_props:"Advanced properties",\r
+popup_opts:"Options",\r
+anchor_names:"Anchors",\r
+target_same:"Open in this window / frame",\r
+target_parent:"Open in parent window / frame",\r
+target_top:"Open in top frame (replaces all frames)",\r
+target_blank:"Open in new window",\r
+popup:"Javascript popup",\r
+popup_url:"Popup URL",\r
+popup_name:"Window name",\r
+popup_return:"Insert 'return false'",\r
+popup_scrollbars:"Show scrollbars",\r
+popup_statusbar:"Show status bar",\r
+popup_toolbar:"Show toolbars",\r
+popup_menubar:"Show menu bar",\r
+popup_location:"Show location bar",\r
+popup_resizable:"Make window resizable",\r
+popup_dependent:"Dependent (Mozilla/Firefox only)",\r
+popup_size:"Size",\r
+popup_position:"Position (X/Y)",\r
+id:"Id",\r
+style:"Style",\r
+classes:"Classes",\r
+target_name:"Target name",\r
+langdir:"Language direction",\r
+target_langcode:"Target language",\r
+langcode:"Language code",\r
+encoding:"Target character encoding",\r
+mime:"Target MIME type",\r
+rel:"Relationship page to target",\r
+rev:"Relationship target to page",\r
+tabindex:"Tabindex",\r
+accesskey:"Accesskey",\r
+ltr:"Left to right",\r
+rtl:"Right to left",\r
+link_list:"Link list"\r
+});
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#advlink_dlg.title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="../../utils/validate.js"></script>\r
+ <script type="text/javascript" src="js/advlink.js"></script>\r
+ <link href="css/advlink.css" rel="stylesheet" type="text/css" />\r
+ <base target="_self" />\r
+</head>\r
+<body id="advlink" style="display: none">\r
+ <form onsubmit="insertAction();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advlink_dlg.general_tab}</a></span></li>\r
+ <li id="popup_tab"><span><a href="javascript:mcTabs.displayTab('popup_tab','popup_panel');" onmousedown="return false;">{#advlink_dlg.popup_tab}</a></span></li>\r
+ <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#advlink_dlg.events_tab}</a></span></li>\r
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#advlink_dlg.advanced_tab}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#advlink_dlg.general_props}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td nowrap="nowrap"><label id="hreflabel" for="href">{#advlink_dlg.url}</label></td>\r
+ <td><table border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td><input id="href" name="href" type="text" class="mceFocus" value="" onchange="selectByValue(this.form,'linklisthref',this.value);" /></td>\r
+ <td id="hrefbrowsercontainer"> </td>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ <tr id="linklisthrefrow">\r
+ <td class="column1"><label for="linklisthref">{#advlink_dlg.list}</label></td>\r
+ <td colspan="2" id="linklisthrefcontainer"> </td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="anchorlist">{#advlink_dlg.anchor_names}</label></td>\r
+ <td colspan="2" id="anchorlistcontainer"> </td>\r
+ </tr>\r
+ <tr>\r
+ <td><label id="targetlistlabel" for="targetlist">{#advlink_dlg.target}</label></td>\r
+ <td id="targetlistcontainer"> </td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label id="titlelabel" for="title">{#advlink_dlg.titlefield}</label></td>\r
+ <td><input id="title" name="title" type="text" value="" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label id="classlabel" for="classlist">{#class_name}</label></td>\r
+ <td>\r
+ <select id="classlist" name="classlist" onchange="changeClass();">\r
+ <option value="" selected>{#not_set}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="popup_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#advlink_dlg.popup_props}</legend>\r
+\r
+ <input type="checkbox" id="ispopup" name="ispopup" class="radio" onclick="setPopupControlsDisabled(!this.checked);buildOnClick();" />\r
+ <label id="ispopuplabel" for="ispopup">{#advlink_dlg.popup}</label>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="popupurl">{#advlink_dlg.popup_url}</label> </td>\r
+ <td>\r
+ <table border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td><input type="text" name="popupurl" id="popupurl" value="" onchange="buildOnClick();" /></td>\r
+ <td id="popupurlbrowsercontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="popupname">{#advlink_dlg.popup_name}</label> </td>\r
+ <td><input type="text" name="popupname" id="popupname" value="" onchange="buildOnClick();" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label>{#advlink_dlg.popup_size}</label> </td>\r
+ <td nowrap="nowrap">\r
+ <input type="text" id="popupwidth" name="popupwidth" value="" onchange="buildOnClick();" /> x\r
+ <input type="text" id="popupheight" name="popupheight" value="" onchange="buildOnClick();" /> px\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap" id="labelleft"><label>{#advlink_dlg.popup_position}</label> </td>\r
+ <td nowrap="nowrap">\r
+ <input type="text" id="popupleft" name="popupleft" value="" onchange="buildOnClick();" /> / \r
+ <input type="text" id="popuptop" name="popuptop" value="" onchange="buildOnClick();" /> (c /c = center)\r
+ </td>\r
+ </tr>\r
+ </table>\r
+\r
+ <fieldset>\r
+ <legend>{#advlink_dlg.popup_opts}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td><input type="checkbox" id="popuplocation" name="popuplocation" class="checkbox" onchange="buildOnClick();" /></td>\r
+ <td nowrap="nowrap"><label id="popuplocationlabel" for="popuplocation">{#advlink_dlg.popup_location}</label></td>\r
+ <td><input type="checkbox" id="popupscrollbars" name="popupscrollbars" class="checkbox" onchange="buildOnClick();" /></td>\r
+ <td nowrap="nowrap"><label id="popupscrollbarslabel" for="popupscrollbars">{#advlink_dlg.popup_scrollbars}</label></td>\r
+ </tr>\r
+ <tr>\r
+ <td><input type="checkbox" id="popupmenubar" name="popupmenubar" class="checkbox" onchange="buildOnClick();" /></td>\r
+ <td nowrap="nowrap"><label id="popupmenubarlabel" for="popupmenubar">{#advlink_dlg.popup_menubar}</label></td>\r
+ <td><input type="checkbox" id="popupresizable" name="popupresizable" class="checkbox" onchange="buildOnClick();" /></td>\r
+ <td nowrap="nowrap"><label id="popupresizablelabel" for="popupresizable">{#advlink_dlg.popup_resizable}</label></td>\r
+ </tr>\r
+ <tr>\r
+ <td><input type="checkbox" id="popuptoolbar" name="popuptoolbar" class="checkbox" onchange="buildOnClick();" /></td>\r
+ <td nowrap="nowrap"><label id="popuptoolbarlabel" for="popuptoolbar">{#advlink_dlg.popup_toolbar}</label></td>\r
+ <td><input type="checkbox" id="popupdependent" name="popupdependent" class="checkbox" onchange="buildOnClick();" /></td>\r
+ <td nowrap="nowrap"><label id="popupdependentlabel" for="popupdependent">{#advlink_dlg.popup_dependent}</label></td>\r
+ </tr>\r
+ <tr>\r
+ <td><input type="checkbox" id="popupstatus" name="popupstatus" class="checkbox" onchange="buildOnClick();" /></td>\r
+ <td nowrap="nowrap"><label id="popupstatuslabel" for="popupstatus">{#advlink_dlg.popup_statusbar}</label></td>\r
+ <td><input type="checkbox" id="popupreturn" name="popupreturn" class="checkbox" onchange="buildOnClick();" checked="checked" /></td>\r
+ <td nowrap="nowrap"><label id="popupreturnlabel" for="popupreturn">{#advlink_dlg.popup_return}</label></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="advanced_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#advlink_dlg.advanced_props}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="column1"><label id="idlabel" for="id">{#advlink_dlg.id}</label></td> \r
+ <td><input id="id" name="id" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="stylelabel" for="style">{#advlink_dlg.style}</label></td>\r
+ <td><input type="text" id="style" name="style" value="" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="classeslabel" for="classes">{#advlink_dlg.classes}</label></td>\r
+ <td><input type="text" id="classes" name="classes" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="targetlabel" for="target">{#advlink_dlg.target_name}</label></td>\r
+ <td><input type="text" id="target" name="target" value="" onchange="selectByValue(this.form,'targetlist',this.value,true);" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="dirlabel" for="dir">{#advlink_dlg.langdir}</label></td> \r
+ <td>\r
+ <select id="dir" name="dir"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#advlink_dlg.ltr}</option> \r
+ <option value="rtl">{#advlink_dlg.rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="hreflanglabel" for="hreflang">{#advlink_dlg.target_langcode}</label></td>\r
+ <td><input type="text" id="hreflang" name="hreflang" value="" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="langlabel" for="lang">{#advlink_dlg.langcode}</label></td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" />\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="charsetlabel" for="charset">{#advlink_dlg.encoding}</label></td>\r
+ <td><input type="text" id="charset" name="charset" value="" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="typelabel" for="type">{#advlink_dlg.mime}</label></td>\r
+ <td><input type="text" id="type" name="type" value="" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="rellabel" for="rel">{#advlink_dlg.rel}</label></td>\r
+ <td><select id="rel" name="rel"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="lightbox">Lightbox</option> \r
+ <option value="alternate">Alternate</option> \r
+ <option value="designates">Designates</option> \r
+ <option value="stylesheet">Stylesheet</option> \r
+ <option value="start">Start</option> \r
+ <option value="next">Next</option> \r
+ <option value="prev">Prev</option> \r
+ <option value="contents">Contents</option> \r
+ <option value="index">Index</option> \r
+ <option value="glossary">Glossary</option> \r
+ <option value="copyright">Copyright</option> \r
+ <option value="chapter">Chapter</option> \r
+ <option value="subsection">Subsection</option> \r
+ <option value="appendix">Appendix</option> \r
+ <option value="help">Help</option> \r
+ <option value="bookmark">Bookmark</option>\r
+ <option value="nofollow">No Follow</option>\r
+ <option value="tag">Tag</option>\r
+ </select> \r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="revlabel" for="rev">{#advlink_dlg.rev}</label></td>\r
+ <td><select id="rev" name="rev"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="alternate">Alternate</option> \r
+ <option value="designates">Designates</option> \r
+ <option value="stylesheet">Stylesheet</option> \r
+ <option value="start">Start</option> \r
+ <option value="next">Next</option> \r
+ <option value="prev">Prev</option> \r
+ <option value="contents">Contents</option> \r
+ <option value="index">Index</option> \r
+ <option value="glossary">Glossary</option> \r
+ <option value="copyright">Copyright</option> \r
+ <option value="chapter">Chapter</option> \r
+ <option value="subsection">Subsection</option> \r
+ <option value="appendix">Appendix</option> \r
+ <option value="help">Help</option> \r
+ <option value="bookmark">Bookmark</option> \r
+ </select> \r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="tabindexlabel" for="tabindex">{#advlink_dlg.tabindex}</label></td>\r
+ <td><input type="text" id="tabindex" name="tabindex" value="" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="accesskeylabel" for="accesskey">{#advlink_dlg.accesskey}</label></td>\r
+ <td><input type="text" id="accesskey" name="accesskey" value="" /></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="events_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#advlink_dlg.event_props}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="column1"><label for="onfocus">onfocus</label></td> \r
+ <td><input id="onfocus" name="onfocus" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="onblur">onblur</label></td> \r
+ <td><input id="onblur" name="onblur" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="onclick">onclick</label></td> \r
+ <td><input id="onclick" name="onclick" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="ondblclick">ondblclick</label></td> \r
+ <td><input id="ondblclick" name="ondblclick" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="onmousedown">onmousedown</label></td> \r
+ <td><input id="onmousedown" name="onmousedown" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="onmouseup">onmouseup</label></td> \r
+ <td><input id="onmouseup" name="onmouseup" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="onmouseover">onmouseover</label></td> \r
+ <td><input id="onmouseover" name="onmouseover" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="onmousemove">onmousemove</label></td> \r
+ <td><input id="onmousemove" name="onmousemove" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="onmouseout">onmouseout</label></td> \r
+ <td><input id="onmouseout" name="onmouseout" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="onkeypress">onkeypress</label></td> \r
+ <td><input id="onkeypress" name="onkeypress" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="onkeydown">onkeydown</label></td> \r
+ <td><input id="onkeydown" name="onkeydown" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="onkeyup">onkeyup</label></td> \r
+ <td><input id="onkeyup" name="onkeyup" type="text" value="" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+ </form>\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.AutoSavePlugin',{init:function(ed,url){var t=this;t.editor=ed;window.onbeforeunload=tinymce.plugins.AutoSavePlugin._beforeUnloadHandler;},getInfo:function(){return{longname:'Auto save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',version:tinymce.majorVersion+"."+tinymce.minorVersion};},'static':{_beforeUnloadHandler:function(){var msg;tinymce.each(tinyMCE.editors,function(ed){if(ed.getParam("fullscreen_is_enabled"))return;if(ed.isDirty()){msg=ed.getLang("autosave.unload_msg");return false;}});return msg;}}});tinymce.PluginManager.add('autosave',tinymce.plugins.AutoSavePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.AutoSavePlugin', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ window.onbeforeunload = tinymce.plugins.AutoSavePlugin._beforeUnloadHandler;\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Auto save',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private plugin internal methods\r
+\r
+ 'static' : {\r
+ _beforeUnloadHandler : function() {\r
+ var msg;\r
+\r
+ tinymce.each(tinyMCE.editors, function(ed) {\r
+ if (ed.getParam("fullscreen_is_enabled"))\r
+ return;\r
+\r
+ if (ed.isDirty()) {\r
+ msg = ed.getLang("autosave.unload_msg");\r
+ return false;\r
+ }\r
+ });\r
+\r
+ return msg;\r
+ }\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('autosave', tinymce.plugins.AutoSavePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.BBCodePlugin',{init:function(ed,url){var t=this,dialect=ed.getParam('bbcode_dialect','punbb').toLowerCase();ed.onBeforeSetContent.add(function(ed,o){o.content=t['_'+dialect+'_bbcode2html'](o.content);});ed.onPostProcess.add(function(ed,o){if(o.set)o.content=t['_'+dialect+'_bbcode2html'](o.content);if(o.get)o.content=t['_'+dialect+'_html2bbcode'](o.content);});},getInfo:function(){return{longname:'BBCode Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_punbb_html2bbcode:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");rep(/<font>(.*?)<\/font>/gi,"$1");rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");rep(/<\/(strong|b)>/gi,"[/b]");rep(/<(strong|b)>/gi,"[b]");rep(/<\/(em|i)>/gi,"[/i]");rep(/<(em|i)>/gi,"[i]");rep(/<\/u>/gi,"[/u]");rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");rep(/<u>/gi,"[u]");rep(/<br \/>/gi,"\n");rep(/<br\/>/gi,"\n");rep(/<br>/gi,"\n");rep(/<p>/gi,"");rep(/<\/p>/gi,"\n");rep(/ /gi," ");rep(/"/gi,"\"");rep(/</gi,"<");rep(/>/gi,">");rep(/&/gi,"&");return s;},_punbb_bbcode2html:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/\n/gi,"<br />");rep(/\[b\]/gi,"<strong>");rep(/\[\/b\]/gi,"</strong>");rep(/\[i\]/gi,"<em>");rep(/\[\/i\]/gi,"</em>");rep(/\[u\]/gi,"<u>");rep(/\[\/u\]/gi,"</u>");rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> ");rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> ");return s;}});tinymce.PluginManager.add('bbcode',tinymce.plugins.BBCodePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.BBCodePlugin', {\r
+ init : function(ed, url) {\r
+ var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase();\r
+\r
+ ed.onBeforeSetContent.add(function(ed, o) {\r
+ o.content = t['_' + dialect + '_bbcode2html'](o.content);\r
+ });\r
+\r
+ ed.onPostProcess.add(function(ed, o) {\r
+ if (o.set)\r
+ o.content = t['_' + dialect + '_bbcode2html'](o.content);\r
+\r
+ if (o.get)\r
+ o.content = t['_' + dialect + '_html2bbcode'](o.content);\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'BBCode Plugin',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private methods\r
+\r
+ // HTML -> BBCode in PunBB dialect\r
+ _punbb_html2bbcode : function(s) {\r
+ s = tinymce.trim(s);\r
+\r
+ function rep(re, str) {\r
+ s = s.replace(re, str);\r
+ };\r
+\r
+ // example: <strong> to [b]\r
+ rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");\r
+ rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");\r
+ rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");\r
+ rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");\r
+ rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");\r
+ rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");\r
+ rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");\r
+ rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");\r
+ rep(/<font>(.*?)<\/font>/gi,"$1");\r
+ rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");\r
+ rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");\r
+ rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");\r
+ rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");\r
+ rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");\r
+ rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");\r
+ rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");\r
+ rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");\r
+ rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");\r
+ rep(/<\/(strong|b)>/gi,"[/b]");\r
+ rep(/<(strong|b)>/gi,"[b]");\r
+ rep(/<\/(em|i)>/gi,"[/i]");\r
+ rep(/<(em|i)>/gi,"[i]");\r
+ rep(/<\/u>/gi,"[/u]");\r
+ rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");\r
+ rep(/<u>/gi,"[u]");\r
+ rep(/<br \/>/gi,"\n");\r
+ rep(/<br\/>/gi,"\n");\r
+ rep(/<br>/gi,"\n");\r
+ rep(/<p>/gi,"");\r
+ rep(/<\/p>/gi,"\n");\r
+ rep(/ /gi," ");\r
+ rep(/"/gi,"\"");\r
+ rep(/</gi,"<");\r
+ rep(/>/gi,">");\r
+ rep(/&/gi,"&");\r
+\r
+ return s; \r
+ },\r
+\r
+ // BBCode -> HTML from PunBB dialect\r
+ _punbb_bbcode2html : function(s) {\r
+ s = tinymce.trim(s);\r
+\r
+ function rep(re, str) {\r
+ s = s.replace(re, str);\r
+ };\r
+\r
+ // example: [b] to <strong>\r
+ rep(/\n/gi,"<br />");\r
+ rep(/\[b\]/gi,"<strong>");\r
+ rep(/\[\/b\]/gi,"</strong>");\r
+ rep(/\[i\]/gi,"<em>");\r
+ rep(/\[\/i\]/gi,"</em>");\r
+ rep(/\[u\]/gi,"<u>");\r
+ rep(/\[\/u\]/gi,"</u>");\r
+ rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");\r
+ rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");\r
+ rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");\r
+ rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");\r
+ rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> ");\r
+ rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> ");\r
+\r
+ return s; \r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,is=tinymce.is;tinymce.create('tinymce.plugins.Compat2x',{getInfo:function(){return{longname:'Compat2x',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};}});(function(){tinymce.extend(tinyMCE,{addToLang:function(p,l){each(l,function(v,k){tinyMCE.i18n[(tinyMCE.settings.language||'en')+'.'+(p?p+'_':'')+k]=v;});},getInstanceById:function(n){return this.get(n);}});})();(function(){var EditorManager=tinymce.EditorManager;tinyMCE.instances={};tinyMCE.plugins={};tinymce.PluginManager.onAdd.add(function(pm,n,p){tinyMCE.plugins[n]=p;});tinyMCE.majorVersion=tinymce.majorVersion;tinyMCE.minorVersion=tinymce.minorVersion;tinyMCE.releaseDate=tinymce.releaseDate;tinyMCE.baseURL=tinymce.baseURL;tinyMCE.isIE=tinyMCE.isMSIE=tinymce.isIE||tinymce.isOpera;tinyMCE.isMSIE5=tinymce.isIE;tinyMCE.isMSIE5_0=tinymce.isIE;tinyMCE.isMSIE7=tinymce.isIE;tinyMCE.isGecko=tinymce.isGecko;tinyMCE.isSafari=tinymce.isWebKit;tinyMCE.isOpera=tinymce.isOpera;tinyMCE.isMac=false;tinyMCE.isNS7=false;tinyMCE.isNS71=false;tinyMCE.compat=true;TinyMCE_Engine=tinyMCE;tinymce.extend(tinyMCE,{getParam:function(n,dv){return this.activeEditor.getParam(n,dv);},addEvent:function(e,na,f,sc){tinymce.dom.Event.add(e,na,f,sc||this);},getControlHTML:function(n){return EditorManager.activeEditor.controlManager.createControl(n);},loadCSS:function(u){tinymce.DOM.loadCSS(u);},importCSS:function(doc,u){if(doc==document)this.loadCSS(u);else new tinymce.dom.DOMUtils(doc).loadCSS(u);},log:function(){console.debug.apply(console,arguments);},getLang:function(n,dv){var v=EditorManager.activeEditor.getLang(n.replace(/^lang_/g,''),dv);if(/^[0-9\-.]+$/g.test(v))return parseInt(v);return v;},isInstance:function(o){return o!=null&&typeof(o)=="object"&&o.execCommand;},triggerNodeChange:function(){EditorManager.activeEditor.nodeChanged();},regexpReplace:function(in_str,reg_exp,replace_str,opts){var re;if(in_str==null)return in_str;if(typeof(opts)=="undefined")opts='g';re=new RegExp(reg_exp,opts);return in_str.replace(re,replace_str);},trim:function(s){return tinymce.trim(s);},xmlEncode:function(s){return tinymce.DOM.encode(s);},explode:function(s,d){var o=[];tinymce.each(s.split(d),function(v){if(v!='')o.push(v);});return o;},switchClass:function(id,cls){var b;if(/^mceButton/.test(cls)){b=EditorManager.activeEditor.controlManager.get(id);if(!b)return;switch(cls){case"mceButtonNormal":b.setDisabled(false);b.setActive(false);return;case"mceButtonDisabled":b.setDisabled(true);return;case"mceButtonSelected":b.setActive(true);b.setDisabled(false);return;}}},addCSSClass:function(e,n,b){return tinymce.DOM.addClass(e,n,b);},hasCSSClass:function(e,n){return tinymce.DOM.hasClass(e,n);},removeCSSClass:function(e,n){return tinymce.DOM.removeClass(e,n);},getCSSClasses:function(){var cl=EditorManager.activeEditor.dom.getClasses(),o=[];each(cl,function(c){o.push(c['class']);});return o;},setWindowArg:function(n,v){EditorManager.activeEditor.windowManager.params[n]=v;},getWindowArg:function(n,dv){var wm=EditorManager.activeEditor.windowManager,v;v=wm.getParam(n);if(v==='')return'';return v||wm.getFeature(n)||dv;},getParentNode:function(n,f){return this._getDOM().getParent(n,f);},selectElements:function(n,na,f){var i,a=[],nl,x;for(x=0,na=na.split(',');x<na.length;x++)for(i=0,nl=n.getElementsByTagName(na[x]);i<nl.length;i++)(!f||f(nl[i]))&&a.push(nl[i]);return a;},getNodeTree:function(n,na,t,nn){return this.selectNodes(n,function(n){return(!t||n.nodeType==t)&&(!nn||n.nodeName==nn);},na?na:[]);},getAttrib:function(e,n,dv){return this._getDOM().getAttrib(e,n,dv);},setAttrib:function(e,n,v){return this._getDOM().setAttrib(e,n,v);},getElementsByAttributeValue:function(n,e,a,v){var i,nl=n.getElementsByTagName(e),o=[];for(i=0;i<nl.length;i++){if(tinyMCE.getAttrib(nl[i],a).indexOf(v)!=-1)o[o.length]=nl[i];}return o;},selectNodes:function(n,f,a){var i;if(!a)a=[];if(f(n))a[a.length]=n;if(n.hasChildNodes()){for(i=0;i<n.childNodes.length;i++)tinyMCE.selectNodes(n.childNodes[i],f,a);}return a;},getContent:function(){return EditorManager.activeEditor.getContent();},getParentElement:function(n,na,f){if(na)na=new RegExp('^('+na.toUpperCase().replace(/,/g,'|')+')$','g');return this._getDOM().getParent(n,function(n){return n.nodeType==1&&(!na||na.test(n.nodeName))&&(!f||f(n));},this.activeEditor.getBody());},importPluginLanguagePack:function(n){tinymce.PluginManager.requireLangPack(n);},getButtonHTML:function(cn,lang,img,c,u,v){var ed=EditorManager.activeEditor;img=img.replace(/\{\$pluginurl\}/g,tinyMCE.pluginURL);img=img.replace(/\{\$themeurl\}/g,tinyMCE.themeURL);lang=lang.replace(/^lang_/g,'');return ed.controlManager.createButton(cn,{title:lang,command:c,ui:u,value:v,scope:this,'class':'compat',image:img});},addSelectAccessibility:function(e,s,w){if(!s._isAccessible){s.onkeydown=tinyMCE.accessibleEventHandler;s.onblur=tinyMCE.accessibleEventHandler;s._isAccessible=true;s._win=w;}return false;},accessibleEventHandler:function(e){var elm,win=this._win;e=tinymce.isIE?win.event:e;elm=tinymce.isIE?e.srcElement:e.target;if(e.type=="blur"){if(elm.oldonchange){elm.onchange=elm.oldonchange;elm.oldonchange=null;}return true;}if(elm.nodeName=="SELECT"&&!elm.oldonchange){elm.oldonchange=elm.onchange;elm.onchange=null;}if(e.keyCode==13||e.keyCode==32){elm.onchange=elm.oldonchange;elm.onchange();elm.oldonchange=null;tinyMCE.cancelEvent(e);return false;}return true;},cancelEvent:function(e){return tinymce.dom.Event.cancel(e);},handleVisualAid:function(e){EditorManager.activeEditor.addVisual(e);},getAbsPosition:function(n,r){return tinymce.DOM.getPos(n,r);},cleanupEventStr:function(s){s=""+s;s=s.replace('function anonymous()\n{\n','');s=s.replace('\n}','');s=s.replace(/^return true;/gi,'');return s;},getVisualAidClass:function(s){return s;},parseStyle:function(s){return this._getDOM().parseStyle(s);},serializeStyle:function(s){return this._getDOM().serializeStyle(s);},openWindow:function(tpl,args){var ed=EditorManager.activeEditor,o={},n;for(n in tpl)o[n]=tpl[n];tpl=o;args=args||{};tpl.url=new tinymce.util.URI(tinymce.ThemeManager.themeURLs[ed.settings.theme]).toAbsolute(tpl.file);tpl.inline=tpl.inline||args.inline;ed.windowManager.open(tpl,args);},closeWindow:function(win){EditorManager.activeEditor.windowManager.close(win);},getOuterHTML:function(e){return tinymce.DOM.getOuterHTML(e);},setOuterHTML:function(e,h,d){return tinymce.DOM.setOuterHTML(e,h,d);},hasPlugin:function(n){return tinymce.PluginManager.get(n)!=null;},_setEventsEnabled:function(){},addPlugin:function(pn,f){var t=this;function PluginWrapper(ed){tinyMCE.selectedInstance=ed;ed.onInit.add(function(){t.settings=ed.settings;t.settings['base_href']=tinyMCE.documentBasePath;tinyMCE.settings=t.settings;tinyMCE.documentBasePath=ed.documentBasePath;if(f.initInstance)f.initInstance(ed);ed.contentDocument=ed.getDoc();ed.contentWindow=ed.getWin();ed.undoRedo=ed.undoManager;ed.startContent=ed.getContent({format:'raw'});tinyMCE.instances[ed.id]=ed;tinyMCE.loadedFiles=[];});ed.onActivate.add(function(){tinyMCE.settings=ed.settings;tinyMCE.selectedInstance=ed;});if(f.handleNodeChange){ed.onNodeChange.add(function(ed,cm,n){f.handleNodeChange(ed.id,n,0,0,false,!ed.selection.isCollapsed());});}if(f.onChange){ed.onChange.add(function(ed,n){return f.onChange(ed);});}if(f.cleanup){ed.onGetContent.add(function(){});}this.getInfo=function(){return f.getInfo();};this.createControl=function(n){tinyMCE.pluginURL=tinymce.baseURL+'/plugins/'+pn;tinyMCE.themeURL=tinymce.baseURL+'/themes/'+tinyMCE.activeEditor.settings.theme;if(f.getControlHTML)return f.getControlHTML(n);return null;};this.execCommand=function(cmd,ui,val){if(f.execCommand)return f.execCommand(ed.id,ed.getBody(),cmd,ui,val);return false;};};tinymce.PluginManager.add(pn,PluginWrapper);},_getDOM:function(){return tinyMCE.activeEditor?tinyMCE.activeEditor.dom:tinymce.DOM;},convertRelativeToAbsoluteURL:function(b,u){return new tinymce.util.URI(b).toAbsolute(u);},convertAbsoluteURLToRelativeURL:function(b,u){return new tinymce.util.URI(b).toRelative(u);}});tinymce.extend(tinymce.Editor.prototype,{getFocusElement:function(){return this.selection.getNode();},getData:function(n){if(!this.data)this.data=[];if(!this.data[n])this.data[n]=[];return this.data[n];},hasPlugin:function(n){return this.plugins[n]!=null;},getContainerWin:function(){return window;},getHTML:function(raw){return this.getContent({format:raw?'raw':'html'});},setHTML:function(h){this.setContent(h);},getSel:function(){return this.selection.getSel();},getRng:function(){return this.selection.getRng();},isHidden:function(){var s;if(!tinymce.isGecko)return false;s=this.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},translate:function(s){var c=this.settings.language,o;o=tinymce.EditorManager.i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{#'+b+'}';});o=o.replace(/{\$lang_([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{$lang_'+b+'}';});return o;},repaint:function(){this.execCommand('mceRepaint');}});tinymce.extend(tinymce.dom.Selection.prototype,{getSelectedText:function(){return this.getContent({format:'text'});},getSelectedHTML:function(){return this.getContent({format:'html'});},getFocusElement:function(){return this.getNode();},selectNode:function(node,collapse,select_text_node,to_start){var t=this;t.select(node,select_text_node||0);if(!is(collapse))collapse=true;if(collapse){if(!is(to_start))to_start=true;t.collapse(to_start);}}});}).call(this);tinymce.PluginManager.add('compat2x',tinymce.plugins.Compat2x);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is;\r
+\r
+ tinymce.create('tinymce.plugins.Compat2x', {\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Compat2x',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x',\r
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ (function() {\r
+ // Extend tinyMCE/EditorManager\r
+ tinymce.extend(tinyMCE, {\r
+ addToLang : function(p, l) {\r
+ each(l, function(v, k) {\r
+ tinyMCE.i18n[(tinyMCE.settings.language || 'en') + '.' + (p ? p + '_' : '') + k] = v;\r
+ });\r
+ },\r
+\r
+ getInstanceById : function(n) {\r
+ return this.get(n);\r
+ }\r
+ });\r
+ })();\r
+\r
+ (function() {\r
+ var EditorManager = tinymce.EditorManager;\r
+\r
+ tinyMCE.instances = {};\r
+ tinyMCE.plugins = {};\r
+ tinymce.PluginManager.onAdd.add(function(pm, n, p) {\r
+ tinyMCE.plugins[n] = p;\r
+ });\r
+\r
+ tinyMCE.majorVersion = tinymce.majorVersion;\r
+ tinyMCE.minorVersion = tinymce.minorVersion;\r
+ tinyMCE.releaseDate = tinymce.releaseDate;\r
+ tinyMCE.baseURL = tinymce.baseURL;\r
+ tinyMCE.isIE = tinyMCE.isMSIE = tinymce.isIE || tinymce.isOpera;\r
+ tinyMCE.isMSIE5 = tinymce.isIE;\r
+ tinyMCE.isMSIE5_0 = tinymce.isIE;\r
+ tinyMCE.isMSIE7 = tinymce.isIE;\r
+ tinyMCE.isGecko = tinymce.isGecko;\r
+ tinyMCE.isSafari = tinymce.isWebKit;\r
+ tinyMCE.isOpera = tinymce.isOpera;\r
+ tinyMCE.isMac = false;\r
+ tinyMCE.isNS7 = false;\r
+ tinyMCE.isNS71 = false;\r
+ tinyMCE.compat = true;\r
+\r
+ // Extend tinyMCE class\r
+ TinyMCE_Engine = tinyMCE;\r
+ tinymce.extend(tinyMCE, {\r
+ getParam : function(n, dv) {\r
+ return this.activeEditor.getParam(n, dv);\r
+ },\r
+\r
+ addEvent : function(e, na, f, sc) {\r
+ tinymce.dom.Event.add(e, na, f, sc || this);\r
+ },\r
+\r
+ getControlHTML : function(n) {\r
+ return EditorManager.activeEditor.controlManager.createControl(n);\r
+ },\r
+\r
+ loadCSS : function(u) {\r
+ tinymce.DOM.loadCSS(u);\r
+ },\r
+\r
+ importCSS : function(doc, u) {\r
+ if (doc == document)\r
+ this.loadCSS(u);\r
+ else\r
+ new tinymce.dom.DOMUtils(doc).loadCSS(u);\r
+ },\r
+\r
+ log : function() {\r
+ console.debug.apply(console, arguments);\r
+ },\r
+\r
+ getLang : function(n, dv) {\r
+ var v = EditorManager.activeEditor.getLang(n.replace(/^lang_/g, ''), dv);\r
+\r
+ // Is number\r
+ if (/^[0-9\-.]+$/g.test(v))\r
+ return parseInt(v);\r
+\r
+ return v;\r
+ },\r
+\r
+ isInstance : function(o) {\r
+ return o != null && typeof(o) == "object" && o.execCommand;\r
+ },\r
+\r
+ triggerNodeChange : function() {\r
+ EditorManager.activeEditor.nodeChanged();\r
+ },\r
+\r
+ regexpReplace : function(in_str, reg_exp, replace_str, opts) {\r
+ var re;\r
+\r
+ if (in_str == null)\r
+ return in_str;\r
+\r
+ if (typeof(opts) == "undefined")\r
+ opts = 'g';\r
+\r
+ re = new RegExp(reg_exp, opts);\r
+\r
+ return in_str.replace(re, replace_str);\r
+ },\r
+\r
+ trim : function(s) {\r
+ return tinymce.trim(s);\r
+ },\r
+\r
+ xmlEncode : function(s) {\r
+ return tinymce.DOM.encode(s);\r
+ },\r
+\r
+ explode : function(s, d) {\r
+ var o = [];\r
+\r
+ tinymce.each(s.split(d), function(v) {\r
+ if (v != '')\r
+ o.push(v);\r
+ });\r
+\r
+ return o;\r
+ },\r
+\r
+ switchClass : function(id, cls) {\r
+ var b;\r
+\r
+ if (/^mceButton/.test(cls)) {\r
+ b = EditorManager.activeEditor.controlManager.get(id);\r
+\r
+ if (!b)\r
+ return;\r
+\r
+ switch (cls) {\r
+ case "mceButtonNormal":\r
+ b.setDisabled(false);\r
+ b.setActive(false);\r
+ return;\r
+\r
+ case "mceButtonDisabled":\r
+ b.setDisabled(true);\r
+ return;\r
+\r
+ case "mceButtonSelected":\r
+ b.setActive(true);\r
+ b.setDisabled(false);\r
+ return;\r
+ }\r
+ }\r
+ },\r
+\r
+ addCSSClass : function(e, n, b) {\r
+ return tinymce.DOM.addClass(e, n, b);\r
+ },\r
+\r
+ hasCSSClass : function(e, n) {\r
+ return tinymce.DOM.hasClass(e, n);\r
+ },\r
+\r
+ removeCSSClass : function(e, n) {\r
+ return tinymce.DOM.removeClass(e, n);\r
+ },\r
+\r
+ getCSSClasses : function() {\r
+ var cl = EditorManager.activeEditor.dom.getClasses(), o = [];\r
+\r
+ each(cl, function(c) {\r
+ o.push(c['class']);\r
+ });\r
+\r
+ return o;\r
+ },\r
+\r
+ setWindowArg : function(n, v) {\r
+ EditorManager.activeEditor.windowManager.params[n] = v;\r
+ },\r
+\r
+ getWindowArg : function(n, dv) {\r
+ var wm = EditorManager.activeEditor.windowManager, v;\r
+\r
+ v = wm.getParam(n);\r
+ if (v === '')\r
+ return '';\r
+\r
+ return v || wm.getFeature(n) || dv;\r
+ },\r
+\r
+ getParentNode : function(n, f) {\r
+ return this._getDOM().getParent(n, f);\r
+ },\r
+\r
+ selectElements : function(n, na, f) {\r
+ var i, a = [], nl, x;\r
+\r
+ for (x=0, na = na.split(','); x<na.length; x++)\r
+ for (i=0, nl = n.getElementsByTagName(na[x]); i<nl.length; i++)\r
+ (!f || f(nl[i])) && a.push(nl[i]);\r
+\r
+ return a;\r
+ },\r
+\r
+ getNodeTree : function(n, na, t, nn) {\r
+ return this.selectNodes(n, function(n) {\r
+ return (!t || n.nodeType == t) && (!nn || n.nodeName == nn);\r
+ }, na ? na : []);\r
+ },\r
+\r
+ getAttrib : function(e, n, dv) {\r
+ return this._getDOM().getAttrib(e, n, dv);\r
+ },\r
+\r
+ setAttrib : function(e, n, v) {\r
+ return this._getDOM().setAttrib(e, n, v);\r
+ },\r
+\r
+ getElementsByAttributeValue : function(n, e, a, v) {\r
+ var i, nl = n.getElementsByTagName(e), o = [];\r
+\r
+ for (i=0; i<nl.length; i++) {\r
+ if (tinyMCE.getAttrib(nl[i], a).indexOf(v) != -1)\r
+ o[o.length] = nl[i];\r
+ }\r
+\r
+ return o;\r
+ },\r
+\r
+ selectNodes : function(n, f, a) {\r
+ var i;\r
+\r
+ if (!a)\r
+ a = [];\r
+\r
+ if (f(n))\r
+ a[a.length] = n;\r
+\r
+ if (n.hasChildNodes()) {\r
+ for (i=0; i<n.childNodes.length; i++)\r
+ tinyMCE.selectNodes(n.childNodes[i], f, a);\r
+ }\r
+\r
+ return a;\r
+ },\r
+\r
+ getContent : function() {\r
+ return EditorManager.activeEditor.getContent();\r
+ },\r
+\r
+ getParentElement : function(n, na, f) {\r
+ if (na)\r
+ na = new RegExp('^(' + na.toUpperCase().replace(/,/g, '|') + ')$', 'g');\r
+\r
+ return this._getDOM().getParent(n, function(n) {\r
+ return n.nodeType == 1 && (!na || na.test(n.nodeName)) && (!f || f(n));\r
+ }, this.activeEditor.getBody());\r
+ },\r
+\r
+ importPluginLanguagePack : function(n) {\r
+ tinymce.PluginManager.requireLangPack(n);\r
+ },\r
+\r
+ getButtonHTML : function(cn, lang, img, c, u, v) {\r
+ var ed = EditorManager.activeEditor;\r
+\r
+ img = img.replace(/\{\$pluginurl\}/g, tinyMCE.pluginURL);\r
+ img = img.replace(/\{\$themeurl\}/g, tinyMCE.themeURL);\r
+ lang = lang.replace(/^lang_/g, '');\r
+\r
+ return ed.controlManager.createButton(cn, {\r
+ title : lang,\r
+ command : c,\r
+ ui : u,\r
+ value : v,\r
+ scope : this,\r
+ 'class' : 'compat',\r
+ image : img\r
+ });\r
+ },\r
+\r
+ addSelectAccessibility : function(e, s, w) {\r
+ // Add event handlers \r
+ if (!s._isAccessible) {\r
+ s.onkeydown = tinyMCE.accessibleEventHandler;\r
+ s.onblur = tinyMCE.accessibleEventHandler;\r
+ s._isAccessible = true;\r
+ s._win = w;\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ accessibleEventHandler : function(e) {\r
+ var elm, win = this._win;\r
+\r
+ e = tinymce.isIE ? win.event : e;\r
+ elm = tinymce.isIE ? e.srcElement : e.target;\r
+\r
+ // Unpiggyback onchange on blur\r
+ if (e.type == "blur") {\r
+ if (elm.oldonchange) {\r
+ elm.onchange = elm.oldonchange;\r
+ elm.oldonchange = null;\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ // Piggyback onchange\r
+ if (elm.nodeName == "SELECT" && !elm.oldonchange) {\r
+ elm.oldonchange = elm.onchange;\r
+ elm.onchange = null;\r
+ }\r
+\r
+ // Execute onchange and remove piggyback\r
+ if (e.keyCode == 13 || e.keyCode == 32) {\r
+ elm.onchange = elm.oldonchange;\r
+ elm.onchange();\r
+ elm.oldonchange = null;\r
+\r
+ tinyMCE.cancelEvent(e);\r
+ return false;\r
+ }\r
+\r
+ return true;\r
+ },\r
+\r
+ cancelEvent : function(e) {\r
+ return tinymce.dom.Event.cancel(e);\r
+ },\r
+\r
+ handleVisualAid : function(e) {\r
+ EditorManager.activeEditor.addVisual(e);\r
+ },\r
+\r
+ getAbsPosition : function(n, r) {\r
+ return tinymce.DOM.getPos(n, r);\r
+ },\r
+\r
+ cleanupEventStr : function(s) {\r
+ s = "" + s;\r
+ s = s.replace('function anonymous()\n{\n', '');\r
+ s = s.replace('\n}', '');\r
+ s = s.replace(/^return true;/gi, ''); // Remove event blocker\r
+\r
+ return s;\r
+ },\r
+\r
+ getVisualAidClass : function(s) {\r
+ // TODO: Implement\r
+ return s;\r
+ },\r
+\r
+ parseStyle : function(s) {\r
+ return this._getDOM().parseStyle(s);\r
+ },\r
+\r
+ serializeStyle : function(s) {\r
+ return this._getDOM().serializeStyle(s);\r
+ },\r
+\r
+ openWindow : function(tpl, args) {\r
+ var ed = EditorManager.activeEditor, o = {}, n;\r
+\r
+ // Convert name/value array to object\r
+ for (n in tpl)\r
+ o[n] = tpl[n];\r
+\r
+ tpl = o;\r
+\r
+ args = args || {};\r
+ tpl.url = new tinymce.util.URI(tinymce.ThemeManager.themeURLs[ed.settings.theme]).toAbsolute(tpl.file);\r
+ tpl.inline = tpl.inline || args.inline;\r
+\r
+ ed.windowManager.open(tpl, args);\r
+ },\r
+\r
+ closeWindow : function(win) {\r
+ EditorManager.activeEditor.windowManager.close(win);\r
+ },\r
+\r
+ getOuterHTML : function(e) {\r
+ return tinymce.DOM.getOuterHTML(e);\r
+ },\r
+\r
+ setOuterHTML : function(e, h, d) {\r
+ return tinymce.DOM.setOuterHTML(e, h, d);\r
+ },\r
+\r
+ hasPlugin : function(n) {\r
+ return tinymce.PluginManager.get(n) != null;\r
+ },\r
+\r
+ _setEventsEnabled : function() {\r
+ // Ignore it!!\r
+ },\r
+\r
+ addPlugin : function(pn, f) {\r
+ var t = this;\r
+\r
+ function PluginWrapper(ed) {\r
+ tinyMCE.selectedInstance = ed;\r
+\r
+ ed.onInit.add(function() {\r
+ t.settings = ed.settings;\r
+ t.settings['base_href'] = tinyMCE.documentBasePath;\r
+ tinyMCE.settings = t.settings;\r
+ tinyMCE.documentBasePath = ed.documentBasePath;\r
+ //ed.formElement = DOM.get(ed.id);\r
+\r
+ if (f.initInstance)\r
+ f.initInstance(ed);\r
+\r
+ ed.contentDocument = ed.getDoc();\r
+ ed.contentWindow = ed.getWin();\r
+ ed.undoRedo = ed.undoManager;\r
+ ed.startContent = ed.getContent({format : 'raw'});\r
+\r
+ tinyMCE.instances[ed.id] = ed;\r
+ tinyMCE.loadedFiles = [];\r
+ });\r
+\r
+ ed.onActivate.add(function() {\r
+ tinyMCE.settings = ed.settings;\r
+ tinyMCE.selectedInstance = ed;\r
+ });\r
+\r
+ /* if (f.removeInstance) {\r
+ ed.onDestroy.add(function() {\r
+ return f.removeInstance(ed.id);\r
+ });\r
+ }*/\r
+\r
+ if (f.handleNodeChange) {\r
+ ed.onNodeChange.add(function(ed, cm, n) {\r
+ f.handleNodeChange(ed.id, n, 0, 0, false, !ed.selection.isCollapsed());\r
+ });\r
+ }\r
+\r
+ if (f.onChange) {\r
+ ed.onChange.add(function(ed, n) {\r
+ return f.onChange(ed);\r
+ });\r
+ }\r
+\r
+ if (f.cleanup) {\r
+ ed.onGetContent.add(function() {\r
+ //f.cleanup(type, content, inst);\r
+ });\r
+ }\r
+\r
+ this.getInfo = function() {\r
+ return f.getInfo();\r
+ };\r
+\r
+ this.createControl = function(n) {\r
+ tinyMCE.pluginURL = tinymce.baseURL + '/plugins/' + pn;\r
+ tinyMCE.themeURL = tinymce.baseURL + '/themes/' + tinyMCE.activeEditor.settings.theme;\r
+\r
+ if (f.getControlHTML)\r
+ return f.getControlHTML(n);\r
+\r
+ return null;\r
+ };\r
+\r
+ this.execCommand = function(cmd, ui, val) {\r
+ if (f.execCommand)\r
+ return f.execCommand(ed.id, ed.getBody(), cmd, ui, val);\r
+\r
+ return false;\r
+ };\r
+ };\r
+\r
+ tinymce.PluginManager.add(pn, PluginWrapper);\r
+ },\r
+\r
+ _getDOM : function() {\r
+ return tinyMCE.activeEditor ? tinyMCE.activeEditor.dom : tinymce.DOM;\r
+ },\r
+\r
+ convertRelativeToAbsoluteURL : function(b, u) {\r
+ return new tinymce.util.URI(b).toAbsolute(u);\r
+ },\r
+\r
+ convertAbsoluteURLToRelativeURL : function(b, u) {\r
+ return new tinymce.util.URI(b).toRelative(u);\r
+ }\r
+ });\r
+\r
+ // Extend Editor class\r
+ tinymce.extend(tinymce.Editor.prototype, {\r
+ getFocusElement : function() {\r
+ return this.selection.getNode();\r
+ },\r
+\r
+ getData : function(n) {\r
+ if (!this.data)\r
+ this.data = [];\r
+\r
+ if (!this.data[n])\r
+ this.data[n] = [];\r
+\r
+ return this.data[n];\r
+ },\r
+\r
+ hasPlugin : function(n) {\r
+ return this.plugins[n] != null;\r
+ },\r
+\r
+ getContainerWin : function() {\r
+ return window;\r
+ },\r
+\r
+ getHTML : function(raw) {\r
+ return this.getContent({ format : raw ? 'raw' : 'html'});\r
+ },\r
+\r
+ setHTML : function(h) {\r
+ this.setContent(h);\r
+ },\r
+\r
+ getSel : function() {\r
+ return this.selection.getSel();\r
+ },\r
+\r
+ getRng : function() {\r
+ return this.selection.getRng();\r
+ },\r
+\r
+ isHidden : function() {\r
+ var s;\r
+\r
+ if (!tinymce.isGecko)\r
+ return false;\r
+\r
+ s = this.getSel();\r
+\r
+ // Weird, wheres that cursor selection?\r
+ return (!s || !s.rangeCount || s.rangeCount == 0);\r
+ },\r
+\r
+ translate : function(s) {\r
+ var c = this.settings.language, o;\r
+\r
+ o = tinymce.EditorManager.i18n[c + '.' + s] || s.replace(/{\#([^}]+)\}/g, function(a, b) {\r
+ return tinymce.EditorManager.i18n[c + '.' + b] || '{#' + b + '}';\r
+ });\r
+\r
+ o = o.replace(/{\$lang_([^}]+)\}/g, function(a, b) {\r
+ return tinymce.EditorManager.i18n[c + '.' + b] || '{$lang_' + b + '}';\r
+ });\r
+\r
+ return o;\r
+ },\r
+\r
+ repaint : function() {\r
+ this.execCommand('mceRepaint');\r
+ }\r
+ });\r
+\r
+ // Extend selection\r
+ tinymce.extend(tinymce.dom.Selection.prototype, {\r
+ getSelectedText : function() {\r
+ return this.getContent({format : 'text'});\r
+ },\r
+\r
+ getSelectedHTML : function() {\r
+ return this.getContent({format : 'html'});\r
+ },\r
+\r
+ getFocusElement : function() {\r
+ return this.getNode();\r
+ },\r
+\r
+ selectNode : function(node, collapse, select_text_node, to_start) {\r
+ var t = this;\r
+\r
+ t.select(node, select_text_node || 0);\r
+\r
+ if (!is(collapse))\r
+ collapse = true;\r
+\r
+ if (collapse) {\r
+ if (!is(to_start))\r
+ to_start = true;\r
+\r
+ t.collapse(to_start);\r
+ }\r
+ }\r
+ });\r
+ }).call(this);\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('compat2x', tinymce.plugins.Compat2x);\r
+})();\r
+\r
--- /dev/null
+(function(){var Event=tinymce.dom.Event,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.ContextMenu',{init:function(ed){var t=this;t.editor=ed;t.onContextMenu=new tinymce.util.Dispatcher(this);ed.onContextMenu.add(function(ed,e){if(!e.ctrlKey){t._getMenu(ed).showMenu(e.clientX,e.clientY);Event.cancel(e);}});function hide(){if(t._menu){t._menu.removeAll();t._menu.destroy();}};ed.onMouseDown.add(hide);ed.onKeyDown.add(hide);Event.add(document,'click',hide);},_getMenu:function(ed){var t=this,m=t._menu,se=ed.selection,col=se.isCollapsed(),el=se.getNode()||ed.getBody(),am,p1,p2;if(m){m.removeAll();m.destroy();}p1=DOM.getPos(ed.getContentAreaContainer());p2=DOM.getPos(ed.getContainer());m=ed.controlManager.createDropMenu('contextmenu',{offset_x:p1.x,offset_y:p1.y,constrain:1});t._menu=m;m.add({title:'advanced.cut_desc',icon:'cut',cmd:'Cut'}).setDisabled(col);m.add({title:'advanced.copy_desc',icon:'copy',cmd:'Copy'}).setDisabled(col);m.add({title:'advanced.paste_desc',icon:'paste',cmd:'Paste'});if((el.nodeName=='A'&&!ed.dom.getAttrib(el,'name'))||!col){m.addSeparator();m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});}m.addSeparator();m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();am=m.addMenu({title:'contextmenu.align'});am.add({title:'contextmenu.left',icon:'justifyleft',cmd:'JustifyLeft'});am.add({title:'contextmenu.center',icon:'justifycenter',cmd:'JustifyCenter'});am.add({title:'contextmenu.right',icon:'justifyright',cmd:'JustifyRight'});am.add({title:'contextmenu.full',icon:'justifyfull',cmd:'JustifyFull'});t.onContextMenu.dispatch(t,m,el,col);return m;}});tinymce.PluginManager.add('contextmenu',tinymce.plugins.ContextMenu);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var Event = tinymce.dom.Event, each = tinymce.each, DOM = tinymce.DOM;\r
+\r
+ tinymce.create('tinymce.plugins.ContextMenu', {\r
+ init : function(ed) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+ t.onContextMenu = new tinymce.util.Dispatcher(this);\r
+\r
+ ed.onContextMenu.add(function(ed, e) {\r
+ if (!e.ctrlKey) {\r
+ t._getMenu(ed).showMenu(e.clientX, e.clientY);\r
+ Event.cancel(e);\r
+ }\r
+ });\r
+\r
+ function hide() {\r
+ if (t._menu) {\r
+ t._menu.removeAll();\r
+ t._menu.destroy();\r
+ }\r
+ };\r
+\r
+ ed.onMouseDown.add(hide);\r
+ ed.onKeyDown.add(hide);\r
+ Event.add(document, 'click', hide);\r
+ },\r
+\r
+ _getMenu : function(ed) {\r
+ var t = this, m = t._menu, se = ed.selection, col = se.isCollapsed(), el = se.getNode() || ed.getBody(), am, p1, p2;\r
+\r
+ if (m) {\r
+ m.removeAll();\r
+ m.destroy();\r
+ }\r
+\r
+ p1 = DOM.getPos(ed.getContentAreaContainer());\r
+ p2 = DOM.getPos(ed.getContainer());\r
+\r
+ m = ed.controlManager.createDropMenu('contextmenu', {\r
+ offset_x : p1.x,\r
+ offset_y : p1.y,\r
+/* vp_offset_x : p2.x,\r
+ vp_offset_y : p2.y,*/\r
+ constrain : 1\r
+ });\r
+\r
+ t._menu = m;\r
+\r
+ m.add({title : 'advanced.cut_desc', icon : 'cut', cmd : 'Cut'}).setDisabled(col);\r
+ m.add({title : 'advanced.copy_desc', icon : 'copy', cmd : 'Copy'}).setDisabled(col);\r
+ m.add({title : 'advanced.paste_desc', icon : 'paste', cmd : 'Paste'});\r
+\r
+ if ((el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) || !col) {\r
+ m.addSeparator();\r
+ m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});\r
+ m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});\r
+ }\r
+\r
+ m.addSeparator();\r
+ m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});\r
+\r
+ m.addSeparator();\r
+ am = m.addMenu({title : 'contextmenu.align'});\r
+ am.add({title : 'contextmenu.left', icon : 'justifyleft', cmd : 'JustifyLeft'});\r
+ am.add({title : 'contextmenu.center', icon : 'justifycenter', cmd : 'JustifyCenter'});\r
+ am.add({title : 'contextmenu.right', icon : 'justifyright', cmd : 'JustifyRight'});\r
+ am.add({title : 'contextmenu.full', icon : 'justifyfull', cmd : 'JustifyFull'});\r
+\r
+ t.onContextMenu.dispatch(t, m, el, col);\r
+\r
+ return m;\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('contextmenu', tinymce.plugins.ContextMenu);\r
+})();
\ No newline at end of file
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.Directionality',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceDirectionLTR',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,"dir")!="ltr")ed.dom.setAttrib(e,"dir","ltr");else ed.dom.setAttrib(e,"dir","");}ed.nodeChanged();});ed.addCommand('mceDirectionRTL',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,"dir")!="rtl")ed.dom.setAttrib(e,"dir","rtl");else ed.dom.setAttrib(e,"dir","");}ed.nodeChanged();});ed.addButton('ltr',{title:'directionality.ltr_desc',cmd:'mceDirectionLTR'});ed.addButton('rtl',{title:'directionality.rtl_desc',cmd:'mceDirectionRTL'});ed.onNodeChange.add(t._nodeChange,t);},getInfo:function(){return{longname:'Directionality',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var dom=ed.dom,dir;n=dom.getParent(n,dom.isBlock);if(!n){cm.setDisabled('ltr',1);cm.setDisabled('rtl',1);return;}dir=dom.getAttrib(n,'dir');cm.setActive('ltr',dir=="ltr");cm.setDisabled('ltr',0);cm.setActive('rtl',dir=="rtl");cm.setDisabled('rtl',0);}});tinymce.PluginManager.add('directionality',tinymce.plugins.Directionality);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.Directionality', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ ed.addCommand('mceDirectionLTR', function() {\r
+ var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);\r
+\r
+ if (e) {\r
+ if (ed.dom.getAttrib(e, "dir") != "ltr")\r
+ ed.dom.setAttrib(e, "dir", "ltr");\r
+ else\r
+ ed.dom.setAttrib(e, "dir", "");\r
+ }\r
+\r
+ ed.nodeChanged();\r
+ });\r
+\r
+ ed.addCommand('mceDirectionRTL', function() {\r
+ var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);\r
+\r
+ if (e) {\r
+ if (ed.dom.getAttrib(e, "dir") != "rtl")\r
+ ed.dom.setAttrib(e, "dir", "rtl");\r
+ else\r
+ ed.dom.setAttrib(e, "dir", "");\r
+ }\r
+\r
+ ed.nodeChanged();\r
+ });\r
+\r
+ ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});\r
+ ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'});\r
+\r
+ ed.onNodeChange.add(t._nodeChange, t);\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Directionality',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _nodeChange : function(ed, cm, n) {\r
+ var dom = ed.dom, dir;\r
+\r
+ n = dom.getParent(n, dom.isBlock);\r
+ if (!n) {\r
+ cm.setDisabled('ltr', 1);\r
+ cm.setDisabled('rtl', 1);\r
+ return;\r
+ }\r
+\r
+ dir = dom.getAttrib(n, 'dir');\r
+ cm.setActive('ltr', dir == "ltr");\r
+ cm.setDisabled('ltr', 0);\r
+ cm.setActive('rtl', dir == "rtl");\r
+ cm.setDisabled('rtl', 0);\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality);\r
+})();
\ No newline at end of file
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - License</title>\r
+</head>\r
+<body>\r
+\r
+<span style=" color: #000099; font-size: x-large; font-family: Arial;"><strong>DragMath copyright information</strong></span>\r
+\r
+<span style=" font-size: small; font-family: Arial;">\r
+\r
+<p>DragMath is licensed under the GNU General Public License (GPL) (<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>)\r
+</p><p>\r
+All source code in this package is written by <a href="http://www.abillingsley.co.uk">Alex Billingsley</a> except the libraries used. The copyright information for the libaries is included below:</p>\r
+<br>\r
+<p>\r
+<h4>JDOM<br> <a href="http://www.jdom.org">http://www.jdom.org</a></h4>\r
+JDOM is available under an Apache-style open source license, with the acknowledgment clause removed. This license is among the least restrictive license available, enabling developers to use JDOM in creating new products without requiring them to release their own products as open source. This is the license model used by the Apache Project, which created the Apache server. The license is available at the top of every source file and in LICENSE.txt in the root of the distribution.\r
+</p>\r
+<br>\r
+<p>\r
+<h4>JEP<br><a href="https://sourceforge.net/projects/jep/">https://sourceforge.net/projects/jep/</a></h4>\r
+JEP is licensed under the GNU General Public License (GPL) (<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>)</p>\r
+<p>\r
+<br>\r
+<h4>glyFX Common Toolbar Set Icons<br> <a href="http://www.glyfx.com">http://www.glyfx.com</a></h4>\r
+Icons used in software, license found at; <a href="http://www.glyfx.com/license-toolbar.html">http://www.glyfx.com/license-toolbar.html</a></p>\r
+</span>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+ GNU GENERAL PUBLIC LICENSE\r
+ Version 2, June 1991\r
+\r
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.\r
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+ Everyone is permitted to copy and distribute verbatim copies\r
+ of this license document, but changing it is not allowed.\r
+\r
+ Preamble\r
+\r
+ The licenses for most software are designed to take away your\r
+freedom to share and change it. By contrast, the GNU General Public\r
+License is intended to guarantee your freedom to share and change free\r
+software--to make sure the software is free for all its users. This\r
+General Public License applies to most of the Free Software\r
+Foundation's software and to any other program whose authors commit to\r
+using it. (Some other Free Software Foundation software is covered by\r
+the GNU Library General Public License instead.) You can apply it to\r
+your programs, too.\r
+\r
+ When we speak of free software, we are referring to freedom, not\r
+price. Our General Public Licenses are designed to make sure that you\r
+have the freedom to distribute copies of free software (and charge for\r
+this service if you wish), that you receive source code or can get it\r
+if you want it, that you can change the software or use pieces of it\r
+in new free programs; and that you know you can do these things.\r
+\r
+ To protect your rights, we need to make restrictions that forbid\r
+anyone to deny you these rights or to ask you to surrender the rights.\r
+These restrictions translate to certain responsibilities for you if you\r
+distribute copies of the software, or if you modify it.\r
+\r
+ For example, if you distribute copies of such a program, whether\r
+gratis or for a fee, you must give the recipients all the rights that\r
+you have. You must make sure that they, too, receive or can get the\r
+source code. And you must show them these terms so they know their\r
+rights.\r
+\r
+ We protect your rights with two steps: (1) copyright the software, and\r
+(2) offer you this license which gives you legal permission to copy,\r
+distribute and/or modify the software.\r
+\r
+ Also, for each author's protection and ours, we want to make certain\r
+that everyone understands that there is no warranty for this free\r
+software. If the software is modified by someone else and passed on, we\r
+want its recipients to know that what they have is not the original, so\r
+that any problems introduced by others will not reflect on the original\r
+authors' reputations.\r
+\r
+ Finally, any free program is threatened constantly by software\r
+patents. We wish to avoid the danger that redistributors of a free\r
+program will individually obtain patent licenses, in effect making the\r
+program proprietary. To prevent this, we have made it clear that any\r
+patent must be licensed for everyone's free use or not licensed at all.\r
+\r
+ The precise terms and conditions for copying, distribution and\r
+modification follow.\r
+\r
+ GNU GENERAL PUBLIC LICENSE\r
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r
+\r
+ 0. This License applies to any program or other work which contains\r
+a notice placed by the copyright holder saying it may be distributed\r
+under the terms of this General Public License. The "Program", below,\r
+refers to any such program or work, and a "work based on the Program"\r
+means either the Program or any derivative work under copyright law:\r
+that is to say, a work containing the Program or a portion of it,\r
+either verbatim or with modifications and/or translated into another\r
+language. (Hereinafter, translation is included without limitation in\r
+the term "modification".) Each licensee is addressed as "you".\r
+\r
+Activities other than copying, distribution and modification are not\r
+covered by this License; they are outside its scope. The act of\r
+running the Program is not restricted, and the output from the Program\r
+is covered only if its contents constitute a work based on the\r
+Program (independent of having been made by running the Program).\r
+Whether that is true depends on what the Program does.\r
+\r
+ 1. You may copy and distribute verbatim copies of the Program's\r
+source code as you receive it, in any medium, provided that you\r
+conspicuously and appropriately publish on each copy an appropriate\r
+copyright notice and disclaimer of warranty; keep intact all the\r
+notices that refer to this License and to the absence of any warranty;\r
+and give any other recipients of the Program a copy of this License\r
+along with the Program.\r
+\r
+You may charge a fee for the physical act of transferring a copy, and\r
+you may at your option offer warranty protection in exchange for a fee.\r
+\r
+ 2. You may modify your copy or copies of the Program or any portion\r
+of it, thus forming a work based on the Program, and copy and\r
+distribute such modifications or work under the terms of Section 1\r
+above, provided that you also meet all of these conditions:\r
+\r
+ a) You must cause the modified files to carry prominent notices\r
+ stating that you changed the files and the date of any change.\r
+\r
+ b) You must cause any work that you distribute or publish, that in\r
+ whole or in part contains or is derived from the Program or any\r
+ part thereof, to be licensed as a whole at no charge to all third\r
+ parties under the terms of this License.\r
+\r
+ c) If the modified program normally reads commands interactively\r
+ when run, you must cause it, when started running for such\r
+ interactive use in the most ordinary way, to print or display an\r
+ announcement including an appropriate copyright notice and a\r
+ notice that there is no warranty (or else, saying that you provide\r
+ a warranty) and that users may redistribute the program under\r
+ these conditions, and telling the user how to view a copy of this\r
+ License. (Exception: if the Program itself is interactive but\r
+ does not normally print such an announcement, your work based on\r
+ the Program is not required to print an announcement.)\r
+\r
+These requirements apply to the modified work as a whole. If\r
+identifiable sections of that work are not derived from the Program,\r
+and can be reasonably considered independent and separate works in\r
+themselves, then this License, and its terms, do not apply to those\r
+sections when you distribute them as separate works. But when you\r
+distribute the same sections as part of a whole which is a work based\r
+on the Program, the distribution of the whole must be on the terms of\r
+this License, whose permissions for other licensees extend to the\r
+entire whole, and thus to each and every part regardless of who wrote it.\r
+\r
+Thus, it is not the intent of this section to claim rights or contest\r
+your rights to work written entirely by you; rather, the intent is to\r
+exercise the right to control the distribution of derivative or\r
+collective works based on the Program.\r
+\r
+In addition, mere aggregation of another work not based on the Program\r
+with the Program (or with a work based on the Program) on a volume of\r
+a storage or distribution medium does not bring the other work under\r
+the scope of this License.\r
+\r
+ 3. You may copy and distribute the Program (or a work based on it,\r
+under Section 2) in object code or executable form under the terms of\r
+Sections 1 and 2 above provided that you also do one of the following:\r
+\r
+ a) Accompany it with the complete corresponding machine-readable\r
+ source code, which must be distributed under the terms of Sections\r
+ 1 and 2 above on a medium customarily used for software interchange; or,\r
+\r
+ b) Accompany it with a written offer, valid for at least three\r
+ years, to give any third party, for a charge no more than your\r
+ cost of physically performing source distribution, a complete\r
+ machine-readable copy of the corresponding source code, to be\r
+ distributed under the terms of Sections 1 and 2 above on a medium\r
+ customarily used for software interchange; or,\r
+\r
+ c) Accompany it with the information you received as to the offer\r
+ to distribute corresponding source code. (This alternative is\r
+ allowed only for noncommercial distribution and only if you\r
+ received the program in object code or executable form with such\r
+ an offer, in accord with Subsection b above.)\r
+\r
+The source code for a work means the preferred form of the work for\r
+making modifications to it. For an executable work, complete source\r
+code means all the source code for all modules it contains, plus any\r
+associated interface definition files, plus the scripts used to\r
+control compilation and installation of the executable. However, as a\r
+special exception, the source code distributed need not include\r
+anything that is normally distributed (in either source or binary\r
+form) with the major components (compiler, kernel, and so on) of the\r
+operating system on which the executable runs, unless that component\r
+itself accompanies the executable.\r
+\r
+If distribution of executable or object code is made by offering\r
+access to copy from a designated place, then offering equivalent\r
+access to copy the source code from the same place counts as\r
+distribution of the source code, even though third parties are not\r
+compelled to copy the source along with the object code.\r
+\r
+ 4. You may not copy, modify, sublicense, or distribute the Program\r
+except as expressly provided under this License. Any attempt\r
+otherwise to copy, modify, sublicense or distribute the Program is\r
+void, and will automatically terminate your rights under this License.\r
+However, parties who have received copies, or rights, from you under\r
+this License will not have their licenses terminated so long as such\r
+parties remain in full compliance.\r
+\r
+ 5. You are not required to accept this License, since you have not\r
+signed it. However, nothing else grants you permission to modify or\r
+distribute the Program or its derivative works. These actions are\r
+prohibited by law if you do not accept this License. Therefore, by\r
+modifying or distributing the Program (or any work based on the\r
+Program), you indicate your acceptance of this License to do so, and\r
+all its terms and conditions for copying, distributing or modifying\r
+the Program or works based on it.\r
+\r
+ 6. Each time you redistribute the Program (or any work based on the\r
+Program), the recipient automatically receives a license from the\r
+original licensor to copy, distribute or modify the Program subject to\r
+these terms and conditions. You may not impose any further\r
+restrictions on the recipients' exercise of the rights granted herein.\r
+You are not responsible for enforcing compliance by third parties to\r
+this License.\r
+\r
+ 7. If, as a consequence of a court judgment or allegation of patent\r
+infringement or for any other reason (not limited to patent issues),\r
+conditions are imposed on you (whether by court order, agreement or\r
+otherwise) that contradict the conditions of this License, they do not\r
+excuse you from the conditions of this License. If you cannot\r
+distribute so as to satisfy simultaneously your obligations under this\r
+License and any other pertinent obligations, then as a consequence you\r
+may not distribute the Program at all. For example, if a patent\r
+license would not permit royalty-free redistribution of the Program by\r
+all those who receive copies directly or indirectly through you, then\r
+the only way you could satisfy both it and this License would be to\r
+refrain entirely from distribution of the Program.\r
+\r
+If any portion of this section is held invalid or unenforceable under\r
+any particular circumstance, the balance of the section is intended to\r
+apply and the section as a whole is intended to apply in other\r
+circumstances.\r
+\r
+It is not the purpose of this section to induce you to infringe any\r
+patents or other property right claims or to contest validity of any\r
+such claims; this section has the sole purpose of protecting the\r
+integrity of the free software distribution system, which is\r
+implemented by public license practices. Many people have made\r
+generous contributions to the wide range of software distributed\r
+through that system in reliance on consistent application of that\r
+system; it is up to the author/donor to decide if he or she is willing\r
+to distribute software through any other system and a licensee cannot\r
+impose that choice.\r
+\r
+This section is intended to make thoroughly clear what is believed to\r
+be a consequence of the rest of this License.\r
+\r
+ 8. If the distribution and/or use of the Program is restricted in\r
+certain countries either by patents or by copyrighted interfaces, the\r
+original copyright holder who places the Program under this License\r
+may add an explicit geographical distribution limitation excluding\r
+those countries, so that distribution is permitted only in or among\r
+countries not thus excluded. In such case, this License incorporates\r
+the limitation as if written in the body of this License.\r
+\r
+ 9. The Free Software Foundation may publish revised and/or new versions\r
+of the General Public License from time to time. Such new versions will\r
+be similar in spirit to the present version, but may differ in detail to\r
+address new problems or concerns.\r
+\r
+Each version is given a distinguishing version number. If the Program\r
+specifies a version number of this License which applies to it and "any\r
+later version", you have the option of following the terms and conditions\r
+either of that version or of any later version published by the Free\r
+Software Foundation. If the Program does not specify a version number of\r
+this License, you may choose any version ever published by the Free Software\r
+Foundation.\r
+\r
+ 10. If you wish to incorporate parts of the Program into other free\r
+programs whose distribution conditions are different, write to the author\r
+to ask for permission. For software which is copyrighted by the Free\r
+Software Foundation, write to the Free Software Foundation; we sometimes\r
+make exceptions for this. Our decision will be guided by the two goals\r
+of preserving the free status of all derivatives of our free software and\r
+of promoting the sharing and reuse of software generally.\r
+\r
+ NO WARRANTY\r
+\r
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\r
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\r
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\r
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\r
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\r
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\r
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\r
+REPAIR OR CORRECTION.\r
+\r
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\r
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\r
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\r
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\r
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\r
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\r
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\r
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\r
+POSSIBILITY OF SUCH DAMAGES.\r
+\r
+ END OF TERMS AND CONDITIONS\r
+\r
+ How to Apply These Terms to Your New Programs\r
+\r
+ If you develop a new program, and you want it to be of the greatest\r
+possible use to the public, the best way to achieve this is to make it\r
+free software which everyone can redistribute and change under these terms.\r
+\r
+ To do so, attach the following notices to the program. It is safest\r
+to attach them to the start of each source file to most effectively\r
+convey the exclusion of warranty; and each file should have at least\r
+the "copyright" line and a pointer to where the full notice is found.\r
+\r
+ <one line to give the program's name and a brief idea of what it does.>\r
+ Copyright (C) <year> <name of author>\r
+\r
+ This program is free software; you can redistribute it and/or modify\r
+ it under the terms of the GNU General Public License as published by\r
+ the Free Software Foundation; either version 2 of the License, or\r
+ (at your option) any later version.\r
+\r
+ This program is distributed in the hope that it will be useful,\r
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ GNU General Public License for more details.\r
+\r
+ You should have received a copy of the GNU General Public License\r
+ along with this program; if not, write to the Free Software\r
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\r
+\r
+\r
+Also add information on how to contact you by electronic and paper mail.\r
+\r
+If the program is interactive, make it output a short notice like this\r
+when it starts in an interactive mode:\r
+\r
+ Gnomovision version 69, Copyright (C) year name of author\r
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\r
+ This is free software, and you are welcome to redistribute it\r
+ under certain conditions; type `show c' for details.\r
+\r
+The hypothetical commands `show w' and `show c' should show the appropriate\r
+parts of the General Public License. Of course, the commands you use may\r
+be called something other than `show w' and `show c'; they could even be\r
+mouse-clicks or menu items--whatever suits your program.\r
+\r
+You should also get your employer (if you work as a programmer) or your\r
+school, if any, to sign a "copyright disclaimer" for the program, if\r
+necessary. Here is a sample; alter the names:\r
+\r
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program\r
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.\r
+\r
+ <signature of Ty Coon>, 1 April 1989\r
+ Ty Coon, President of Vice\r
+\r
+This General Public License does not permit incorporating your program into\r
+proprietary programs. If your program is a subroutine library, you may\r
+consider it more useful to permit linking proprietary applications with the\r
+library. If this is what you want to do, use the GNU Library General\r
+Public License instead of this License.\r
+\r
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath - README</title>\r
+</head>\r
+<body>\r
+<span style=" color: #000099; font-size: x-large; font-family: Arial;"><strong>\r
+DragMath README\r
+</strong></span>\r
+<span style=" font-size: small; font-family: Arial;"> \r
+<p>\r
+<font size=3>\r
+<p>\r
+<br>\r
+This is an open-source drag and drop equation editor written in Java. Once an expression is created the user can convert it into a variety of different linear syntax for mathematics, including MathML, LaTeX, Maple, Maxima or any user defined style.\r
+</p>\r
+DragMath Website:<a href="www.dragmath.bham.ac.uk">www.dragmath.bham.ac.uk</a><br>\r
+SoureForge.net Project:<a href="http://sourceforge.net/projects/dragmath">http://sourceforge.net/projects/dragmath</a>\r
+</p>\r
+<br>\r
+<p>\r
+<b>Package Contents:</b>\r
+</p>\r
+<br>\r
+<dl>\r
+\r
+<dt><b>README.html</b>\r
+<dd>This file</dd>\r
+</dt>\r
+<br>\r
+<dt><b>LICENSE-gpl.txt</b>\r
+<dd>License Agreement</dd>\r
+</dt>\r
+<br>\r
+<dt><b>COPYRIGHT.html </b>\r
+<dd>Copyright Information</dd>\r
+</dt>\r
+<br>\r
+<dt><b>Release Notes.html </b>\r
+<dd>Release Notes for this version</dd>\r
+</dt>\r
+<br>\r
+<dt><b>index.html</b>\r
+<dd>DragMath Website including Demonstrations</dd>\r
+</dt>\r
+<br><br>\r
+<dt><b>doc/</b>\r
+<dd>Documentation</dd>\r
+</dt>\r
+<br>\r
+<br>\r
+<dt><b>applet/classes/</b>\r
+<dl>\r
+<dt><b>formats/</b>\r
+<dd>Export formats</dd>\r
+</dt>\r
+<dt><b>lang/</b>\r
+<dd>Language files</dd>\r
+</dt>\r
+</dl>\r
+</dt>\r
+</dl>\r
+\r
+</font>\r
+</span>\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath - Release Notes for Version 0.7.1</title>\r
+</head>\r
+<body>\r
+<span style=" color: #000099; font-size: x-large; font-family: Arial;"><strong>\r
+Release Notes for DragMath 0.7.1\r
+</strong></span>\r
+<span style=" font-size: small; font-family: Arial;"> \r
+<p>\r
+<font size=3>\r
+<b><a href="www.dragmath.bham.ac.uk">www.dragmath.bham.ac.uk</a></b>\r
+</p>\r
+<br>\r
+\r
+<b>DragMath 0.7.1 released 28/02/2008</b>\r
+<p>\r
+New Features:\r
+</p>\r
+<ol>\r
+<li>Export to image</li>\r
+</ol>\r
+New languages:\r
+</p>\r
+<ol>\r
+<li>Portuguese (Brazilian)</li>\r
+</ol>\r
+<br>\r
+\r
+\r
+</font>\r
+</span>\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\HotEqn\HotEqn.class --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/HotEqn HotEqn.class\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\HotEqn\HotEqn.jar --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/HotEqn HotEqn.jar\r
+2008.01.23 10:48 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\HotEqn\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/HotEqn WS_FTP.LOG\r
+2008.01.23 10:59 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\HotEqn\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/HotEqn WS_FTP.LOG\r
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
+<html>\r
+<head>\r
+\r
+<title>DragMath Latex Example</title>\r
+\r
+<script>\r
+function renderLatex() {\r
+ var ans = document.DragMath.getMathExpression(); \r
+ var source = '<html>'\r
+ + '<body>'\r
+ + '<h4>Latex Syntax: '\r
+ + ans\r
+ + '</h4>'\r
+ + '<applet code="HotEqn.class" codebase="HotEqn" archive="HotEqn.jar" height="300" width="600" name="my equation">'\r
+ + '<param name="equation" value="' \r
+ + ans\r
+ + '"/>'\r
+ + '</applet>'\r
+ + '</body>'\r
+ + '</html>'\r
+ + '';\r
+\r
+ var target = document.getElementById('outputID');\r
+ var doc = target.contentDocument;\r
+ if (doc == undefined || doc == null)\r
+ doc = target.contentWindow.document;\r
+ doc.open();\r
+ doc.write(source);\r
+ doc.close();\r
+\r
+ \r
+}\r
+</script>\r
+\r
+</head>\r
+<body>\r
+\r
+<div id="mainContent">\r
+\r
+\r
+<DIV align=left><FONT face=Arial color=#000080 \r
+size=6><STRONG>DragMath Latex Example</STRONG></FONT></DIV>\r
+<br><br>\r
+\r
+<applet name="DragMath" codebase="classes" code="Display.MainApplet.class" archive="Project.jar,AbsoluteLayout.jar,swing-layout-1.0.jar,jdom.jar,jep.jar" width=540 height=333>\r
+<param name=language value="en">\r
+<param name=showOutputToolBar value="false">\r
+<param name=outputFormat value="Latex">\r
+To use this page you need a Java-enabled browser. Download the latest Java plug-in from <a href="http://www.java.com">Java.com</a>\r
+</applet >\r
+<br>\r
+\r
+<form>\r
+<input type='button' value='Render Latex' onclick='renderLatex(); return true;' />\r
+</form>\r
+\r
+<H2>Latex Rendering:</H2>\r
+\r
+<iframe id='outputID' src='' width='98%' height='150'>\r
+</iframe>\r
+\r
+</div>\r
+<br>\r
+Latex rendering performed by freeware Java applet <a href="http://www.atp.ruhr-uni-bochum.de/VCLab/software/HotEqn/HotEqn.html">HotEqn </a>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
+<html>\r
+<head>\r
+\r
+<title>DragMath MathML Example</title>\r
+\r
+<script>\r
+function renderMathML() {\r
+ var ans = document.DragMath.getMathExpression(); \r
+ var source = '<?xml version="1.0"?>'\r
+ + '<!DOCTYPE html PUBLIC'\r
+ + ' "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"'\r
+ + ' "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd"'\r
+ + '['\r
+ + ' <!ENTITY mathml "http://www.w3.org/1998/Math/MathML">'\r
+ + ']>'\r
+ + ''\r
+ + '<body>'\r
+ + ans\r
+ + '</body>'\r
+ + '';\r
+ var target = document.getElementById('outputID');\r
+ target.setAttribute('src','data:text/xml;charset=utf-8,' + escape(source));\r
+}\r
+function resetMathML() {\r
+ var source = 'The MathML rendering will appear here.';\r
+ var target = document.getElementById('outputID');\r
+ target.setAttribute('src','data:text/html,' + escape(source));\r
+}\r
+</script>\r
+\r
+</head>\r
+<body>\r
+\r
+<div id="mainContent">\r
+\r
+\r
+<DIV align=left><FONT face=Arial color=#000080 \r
+size=6><STRONG>DragMath MathML Example</STRONG></FONT></DIV>\r
+<br><br>\r
+\r
+<applet name="DragMath" codebase="classes" code="Display.MainApplet.class" archive="Project.jar,AbsoluteLayout.jar,swing-layout-1.0.jar,jdom.jar,jep.jar" width=540 height=333>\r
+<param name=language value="en">\r
+<param name=outputFormat value="MathML">\r
+To use this page you need a Java-enabled browser. Download the latest Java plug-in from <a href="http://www.java.com">Java.com</a>\r
+</applet >\r
+<br>\r
+\r
+<form>\r
+<input type='button' value='Render MathML' onclick='renderMathML(); return true;' />\r
+</form>\r
+\r
+<H2>MathML Rendering:</H2>\r
+\r
+<iframe id='outputID' src='data:text/html' width='98%' height='150'>\r
+You need a MathML-enabled Gecko-based browser.\r
+</iframe>\r
+\r
+</div>\r
+<br>\r
+JavaScript used for rendering from <a href="http://www.mozilla.org/projects/mathml/demo/tester.html">Mozilla website</a>, re-used under <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons License</a>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Maxima Example</title>\r
+\r
+<script language="JavaScript">\r
+var thedata;\r
+var newwin;\r
+var thenumber;\r
+function edit(textarea)\r
+{\r
+ thenumber = textarea;\r
+ thedata = document.forms['exampleform'].elements[textarea].value\r
+\r
+ newwin = window.open("MaximaPopup.html","","width=565,height=400,resizable")\r
+}\r
+</script>\r
+</head>\r
+\r
+\r
+<body>\r
+<DIV align=left><FONT face=Arial color=#000080 \r
+size=6><STRONG>DragMath Maxima Example</STRONG></FONT></DIV>\r
+<br><br>\r
+\r
+<FORM name="exampleform">\r
+\r
+<p>Factorise 20*x+5\r
+<br>\r
+<input type="text" id="data0" name="data0" cols="15" />\r
+<input type="button" value="Editor" onclick="edit('data0')">\r
+</p>\r
+\r
+<p>Differentiate 2·x5+2·x4-x3+3·x2-2·x with respect to x\r
+<br>\r
+<input type="text" id="data1" name="data1" cols="15">\r
+<input type="button" value="Editor" onclick="edit('data1')">\r
+</p>\r
+\r
+<p>Integrate cos( 5·x ) with respect to x\r
+<br>\r
+<input type="text" id="data3" name="data3" cols="15">\r
+<input type="button" value="Editor" onclick="edit('data3')">\r
+</p>\r
+\r
+<input type="submit" name="submit" value="Submit" />\r
+</FORM>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+\r
+<html>\r
+<head>\r
+\r
+<script language="Javascript">\r
+\r
+var exp = opener.document.forms['exampleform'].elements[opener.thenumber].value\r
+document.write('<applet name="DragMath" codebase="classes" code="Display.MainApplet.class" archive="Project.jar,AbsoluteLayout.jar,swing-layout-1.0.jar,jdom.jar,jep.jar" width=540 height=333>',\r
+ '<param name=language value="en">',\r
+ '<param name=outputFormat value="Maxima">',\r
+ '<param name=openWithExpression value="' + exp + '">',\r
+ 'To use this page you need a Java-enabled browser. Download the latest Java plug-in from <a href="http://www.java.com">Java.com</a>',\r
+ '</applet>');\r
+\r
+var whichone;\r
+function writedata()\r
+{\r
+ whichone = opener.thenumber\r
+\r
+}\r
+\r
+function updateit()\r
+{\r
+ var applet = document.DragMath;\r
+ var ans = document.DragMath.getMathExpression(); \r
+ \r
+ opener.document.forms['exampleform'].elements[whichone].value = ans \r
+ window.close()\r
+}\r
+</script>\r
+<body onload="writedata()">\r
+\r
+\r
+<form name="checkit">\r
+<input type="hidden" cols="20" id="data" />\r
+<br />\r
+<input type="button" value="Save & Close" onclick="updateit()">\r
+</body>\r
+</html>\r
--- /dev/null
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\Latex.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet Latex.html\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\MathML.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet MathML.html\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\Maxima.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet Maxima.html\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\MaximaPopup.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet MaximaPopup.html\r
+2008.01.23 10:48 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet WS_FTP.LOG\r
+2008.01.23 10:59 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet WS_FTP.LOG\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Document : Config.xml
+ Created on : 13 December 2007, 19:28
+ Author : Alex Billingsley
+ Description:
+ Purpose of the document follows.
+-->
+
+<Config>
+ <Languages>
+ <Lang displayName="Català" fileName="ca"></Lang>
+ <Lang displayName="čeština" fileName="cz"></Lang>
+ <Lang displayName="Deutsch" fileName="de"></Lang>
+ <Lang displayName="English" fileName="en"></Lang>
+ <Lang displayName="Español" fileName="es"></Lang>
+ <Lang displayName="français" fileName="fr"></Lang>
+ <Lang displayName="Nederlands" fileName="nl"></Lang>
+ <Lang displayName="polski" fileName="pl"></Lang>
+ <Lang displayName="Pyccĸий" fileName="ru"></Lang>
+ <Lang displayName="svenska" fileName="sv"></Lang>
+ <Lang displayName="português brasileiro" fileName="pt-br"></Lang>
+ </Languages>
+
+ <Formats>
+ <Format displayName="LaTeX" fileName="Latex"></Format>
+ <Format displayName="Maple" fileName="Maple"></Format>
+ <Format displayName="MathML" fileName="MathML"></Format>
+ <Format displayName="Maxima" fileName="Maxima"></Format>
+ </Formats>
+</Config>
--- /dev/null
+2008.01.23 10:09 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\Display\MainApplet.class --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/Display MainApplet.class\r
+2008.01.23 10:48 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\Display\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/Display WS_FTP.LOG\r
+2008.01.23 10:58 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\Display\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/Display WS_FTP.LOG\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<Syntax>\r
+ <name AutoBrackets="false">Latex</name>\r
+ \r
+ <Initial>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </Initial>\r
+ <Text>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </Text>\r
+ <Variable>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </Variable>\r
+ <RealNumber>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </RealNumber>\r
+ \r
+ \r
+ \r
+ <!-- Nary Operators -->\r
+ <Add>\r
+ <output>+</output>\r
+ </Add>\r
+ <Multiply>\r
+ <output> \cdot </output>\r
+ </Multiply>\r
+ <Multiply2>\r
+ <output> \times </output>\r
+ </Multiply2>\r
+ <Equals>\r
+ <output>=</output>\r
+ </Equals>\r
+ <Union>\r
+ <output> \cup </output>\r
+ </Union>\r
+ <Intersection>\r
+ <output> \cap </output>\r
+ </Intersection>\r
+ <Comma>\r
+ <output>,</output>\r
+ </Comma>\r
+ <Equiv>\r
+ <output> \equiv </output>\r
+ </Equiv>\r
+ \r
+ \r
+ \r
+ <!-- Functions -->\r
+ <UMinus>\r
+ <output1>-</output1>\r
+ <output2></output2>\r
+ </UMinus>\r
+ <Factorial brackets="false">\r
+ <output1>{</output1>\r
+ <output2>}!</output2>\r
+ </Factorial>\r
+ <NaturalLogarithm>\r
+ <output1> \ln </output1>\r
+ <output2></output2>\r
+ </NaturalLogarithm>\r
+ <Logarithm>\r
+ <output1> \log </output1>\r
+ <output2></output2>\r
+ </Logarithm>\r
+ <Sine>\r
+ <output1> \sin </output1>\r
+ <output2></output2>\r
+ </Sine>\r
+ <Cosine>\r
+ <output1> \cos </output1>\r
+ <output2></output2>\r
+ </Cosine>\r
+ <Tangent>\r
+ <output1> \tan </output1>\r
+ <output2></output2>\r
+ </Tangent>\r
+ <ArcSine>\r
+ <output1> \sin^{-1} </output1>\r
+ <output2></output2>\r
+ </ArcSine>\r
+ <ArcCosine>\r
+ <output1> \cos^{-1} </output1>\r
+ <output2></output2>\r
+ </ArcCosine>\r
+ <ArcTangent>\r
+ <output1> \tan^{-1} </output1>\r
+ <output2></output2>\r
+ </ArcTangent>\r
+ <SineH>\r
+ <output1> \sinh </output1>\r
+ <output2></output2>\r
+ </SineH>\r
+ <CosineH>\r
+ <output1> \cosh </output1>\r
+ <output2></output2>\r
+ </CosineH>\r
+ <TanH>\r
+ <output1> \tanh </output1>\r
+ <output2></output2>\r
+ </TanH>\r
+ <ArcSineH>\r
+ <output1> \sinh^{-1} </output1>\r
+ <output2></output2>\r
+ </ArcSineH>\r
+ <ArcCosineH>\r
+ <output1> \cosh^{-1} </output1>\r
+ <output2></output2>\r
+ </ArcCosineH>\r
+ <ArcTanH>\r
+ <output1> \tanh^{-1} </output1>\r
+ <output2></output2>\r
+ </ArcTanH>\r
+ <SquareRoot brackets="false">\r
+ <output1> \sqrt{</output1>\r
+ <output2>} </output2>\r
+ </SquareRoot>\r
+ <Exp brackets="false">\r
+ <output1> e^{</output1>\r
+ <output2>} </output2>\r
+ </Exp>\r
+ <Max>\r
+ <output1>\max</output1>\r
+ <output2></output2>\r
+ </Max>\r
+ <Min>\r
+ <output1>\min</output1>\r
+ <output2></output2>\r
+ </Min>\r
+ <Determinant>\r
+ <output1>\det</output1>\r
+ <output2></output2>\r
+ </Determinant>\r
+ <Trace>\r
+ <output1>Tr</output1>\r
+ <output2></output2>\r
+ </Trace>\r
+ \r
+ \r
+ \r
+ <!-- Binary Operators -->\r
+ <NotEqual>\r
+ <output1></output1>\r
+ <output2> \neq </output2>\r
+ <output3></output3>\r
+ </NotEqual>\r
+ <PlusMinus>\r
+ <output1></output1>\r
+ <output2> \pm </output2>\r
+ <output3></output3>\r
+ </PlusMinus> \r
+ <Assignment>\r
+ <output1></output1>\r
+ <output2>:=</output2>\r
+ <output3></output3>\r
+ </Assignment>\r
+ <Subtract>\r
+ <output1></output1>\r
+ <output2>-</output2>\r
+ <output3></output3>\r
+ </Subtract>\r
+ <Divide brackets="false">\r
+ <output1> \frac{</output1>\r
+ <output2>}{</output2>\r
+ <output3>} </output3>\r
+ </Divide>\r
+ <Divide2> \r
+ <output1></output1>\r
+ <output2> \div </output2>\r
+ <output3></output3>\r
+ </Divide2>\r
+ <LessThan>\r
+ <output1></output1>\r
+ <output2><![CDATA[<]]></output2>\r
+ <output3></output3>\r
+ </LessThan> \r
+ <GreaterThan>\r
+ <output1></output1>\r
+ <output2>></output2>\r
+ <output3></output3>\r
+ </GreaterThan> \r
+ <LTEQ>\r
+ <output1></output1>\r
+ <output2> \le </output2>\r
+ <output3></output3>\r
+ </LTEQ> \r
+ <GTEQ>\r
+ <output1></output1>\r
+ <output2> \ge </output2>\r
+ <output3></output3>\r
+ </GTEQ> \r
+ <Subset>\r
+ <output1></output1>\r
+ <output2> \subset </output2>\r
+ <output3></output3>\r
+ </Subset> \r
+ <SubsetEq>\r
+ <output1></output1>\r
+ <output2> \subseteq </output2>\r
+ <output3></output3>\r
+ </SubsetEq> \r
+ <NSubset>\r
+ <output1></output1>\r
+ <output2> \not\subset </output2>\r
+ <output3></output3>\r
+ </NSubset> \r
+ <NSubsetEq>\r
+ <output1></output1>\r
+ <output2> \not\subseteq </output2>\r
+ <output3></output3>\r
+ </NSubsetEq> \r
+ <Power>\r
+ <output1></output1>\r
+ <output2>^{</output2>\r
+ <output3>}</output3>\r
+ </Power>\r
+ <Subscript>\r
+ <output1></output1>\r
+ <output2>_{</output2>\r
+ <output3>}</output3>\r
+ </Subscript> \r
+ <NthRoot reverse="true" brackets="false">\r
+ <output1> \sqrt[</output1>\r
+ <output2>]{</output2>\r
+ <output3>} </output3>\r
+ </NthRoot> \r
+ <Function>\r
+ <output1></output1>\r
+ <output2>\left(</output2>\r
+ <output3>\right)</output3>\r
+ </Function>\r
+ <LeftArrow>\r
+ <output1></output1>\r
+ <output2> \leftarrow </output2>\r
+ <output3></output3>\r
+ </LeftArrow> \r
+ <RightArrow>\r
+ <output1></output1>\r
+ <output2> \rightarrow </output2>\r
+ <output3></output3>\r
+ </RightArrow> \r
+ <UpArrow>\r
+ <output1></output1>\r
+ <output2> \uparrow </output2>\r
+ <output3></output3>\r
+ </UpArrow> \r
+ <DownArrow>\r
+ <output1></output1>\r
+ <output2> \downarrow </output2>\r
+ <output3></output3>\r
+ </DownArrow> \r
+ <LeftDblArrow>\r
+ <output1></output1>\r
+ <output2> \Leftarrow </output2>\r
+ <output3></output3>\r
+ </LeftDblArrow> \r
+ <RightDblArrow>\r
+ <output1></output1>\r
+ <output2> \Rightarrow </output2>\r
+ <output3></output3>\r
+ </RightDblArrow> \r
+ <LeftRightArrow>\r
+ <output1></output1>\r
+ <output2> \leftrightarrow </output2>\r
+ <output3></output3>\r
+ </LeftRightArrow> \r
+ <LeftRightDblArrow>\r
+ <output1></output1>\r
+ <output2> \Leftrightarrow </output2>\r
+ <output3></output3>\r
+ </LeftRightDblArrow> \r
+ <NorthEastArrow>\r
+ <output1></output1>\r
+ <output2> \nearrow </output2>\r
+ <output3></output3>\r
+ </NorthEastArrow> \r
+ <SouthEastArrow>\r
+ <output1></output1>\r
+ <output2> \searrow </output2>\r
+ <output3></output3>\r
+ </SouthEastArrow> \r
+ <NorthWestArrow> \r
+ <output1></output1>\r
+ <output2> \nwarrow </output2>\r
+ <output3></output3>\r
+ </NorthWestArrow> \r
+ <SouthWestArrow>\r
+ <output1></output1>\r
+ <output2> \swarrow </output2>\r
+ <output3></output3>\r
+ </SouthWestArrow> \r
+ \r
+ <Exists>\r
+ <output1></output1>\r
+ <output2> \exists </output2>\r
+ <output3></output3>\r
+ </Exists>\r
+ <ForAll>\r
+ <output1></output1>\r
+ <output2> \forall </output2>\r
+ <output3></output3>\r
+ </ForAll>\r
+ <IsIn> \r
+ <output1></output1>\r
+ <output2> \epsilon </output2>\r
+ <output3></output3>\r
+ </IsIn>\r
+ <NotExists>\r
+ <output1></output1>\r
+ <output2> \not\exists </output2>\r
+ <output3></output3>\r
+ </NotExists>\r
+ <NotIn>\r
+ <output1></output1>\r
+ <output2> \not\epsilon </output2>\r
+ <output3></output3>\r
+ </NotIn>\r
+ <SimEq>\r
+ <output1></output1>\r
+ <output2> \simeq </output2>\r
+ <output3></output3>\r
+ </SimEq>\r
+ <Or> \r
+ <output1></output1>\r
+ <output2> \vee </output2>\r
+ <output3></output3>\r
+ </Or>\r
+ <And>\r
+ <output1></output1>\r
+ <output2> \wedge </output2>\r
+ <output3></output3>\r
+ </And>\r
+ <Not>\r
+ <output1></output1>\r
+ <output2> \neg </output2>\r
+ <output3></output3>\r
+ </Not>\r
+ \r
+ \r
+ <!-- Nary Functions -->\r
+ <Integral>\r
+ <output1> \int </output1>\r
+ <output2>\,d</output2>\r
+ <output3></output3>\r
+ </Integral>\r
+ <Differential order="1,0">\r
+ <output1> \frac{d}{d</output1>\r
+ <output2>}</output2>\r
+ <output3></output3>\r
+ </Differential>\r
+ <PartialDifferential order="1,0">\r
+ <output1> \frac{\partial}{\partial </output1>\r
+ <output2>}</output2>\r
+ <output3></output3>\r
+ </PartialDifferential>\r
+ <Sum order="1,2,3,0">\r
+ <output1> \sum_{{</output1>\r
+ <output2>}={</output2>\r
+ <output3>}}^{</output3>\r
+ <output4>}</output4>\r
+ <output5></output5>\r
+ </Sum>\r
+ <Product order="1,2,3,0">\r
+ <output1> \prod_{{</output1>\r
+ <output2>}={</output2>\r
+ <output3>}}^{</output3>\r
+ <output4>}</output4>\r
+ <output5></output5>\r
+ </Product>\r
+ <Limit order="1,2,0">\r
+ <output1> \lim_{</output1>\r
+ <output2>\to</output2>\r
+ <output3>}</output3>\r
+ <output4></output4>\r
+ </Limit>\r
+ <Evaluate>\r
+ <output1></output1>\r
+ <output2>\left|_{{</output2>\r
+ <output3>}={</output3>\r
+ <output4>}}</output4>\r
+ </Evaluate>\r
+ <DefiniteIntegral order="2,3,0,1">\r
+ <output1> \int_{</output1>\r
+ <output2>}^{</output2>\r
+ <output3>}</output3>\r
+ <output4>\,d</output4>\r
+ <output5></output5>\r
+ </DefiniteIntegral>\r
+ \r
+ \r
+ \r
+ <!-- Matrix -->\r
+ <Matrix>\r
+ <matrixStart> \left( \begin{array}{ccc} </matrixStart>\r
+ <rowStart></rowStart>\r
+ <elementStart></elementStart>\r
+ <elementEnd></elementEnd>\r
+ <elementSeparator><![CDATA[ & ]]></elementSeparator>\r
+ <rowEnd>\\</rowEnd>\r
+ <rowSeparator></rowSeparator>\r
+ <matrixEnd> \end{array} \right) </matrixEnd>\r
+ </Matrix>\r
+ \r
+ \r
+ \r
+ <!-- Grouping -->\r
+ <BracketsRnd>\r
+ <output1>\left(</output1>\r
+ <output2>\right)</output2>\r
+ </BracketsRnd>\r
+ <BracketsCurl>\r
+ <output1>\{</output1>\r
+ <output2>\}</output2>\r
+ </BracketsCurl>\r
+ <BracketsSq>\r
+ <output1>\left[</output1>\r
+ <output2>\right]</output2>\r
+ </BracketsSq>\r
+ <Abs>\r
+ <output1>\left|</output1>\r
+ <output2>\right|</output2>\r
+ </Abs>\r
+ \r
+ \r
+ \r
+ <!-- Symbols -->\r
+ <Infinity>\r
+ <output>\infty</output>\r
+ </Infinity>\r
+ \r
+ \r
+ <Γ>\r
+ <output> \Gamma </output>\r
+ </Γ>\r
+ <Δ>\r
+ <output> \Delta </output>\r
+ </Δ>\r
+ <Θ>\r
+ <output> \Theta </output>\r
+ </Θ>\r
+ <Λ>\r
+ <output> \Lamda </output>\r
+ </Λ>\r
+ <Ξ>\r
+ <output> \Xi </output>\r
+ </Ξ>\r
+ <Π>\r
+ <output> \Pi </output>\r
+ </Π>\r
+ <Σ>\r
+ <output> \Sigma </output>\r
+ </Σ>\r
+ <Υ>\r
+ <output> \Upsilon </output>\r
+ </Υ>\r
+ <Φ>\r
+ <output> \Phi </output>\r
+ </Φ>\r
+ <Ψ>\r
+ <output> \Psi </output>\r
+ </Ψ>\r
+ <Ω>\r
+ <output> \Omega </output>\r
+ </Ω>\r
+ \r
+ \r
+ <α>\r
+ <output> \alpha </output>\r
+ </α>\r
+ <β>\r
+ <output> \beta </output>\r
+ </β>\r
+ <γ>\r
+ <output> \gamma </output>\r
+ </γ>\r
+ <δ>\r
+ <output> \delta </output>\r
+ </δ>\r
+ <ε>\r
+ <output> \epsilon </output>\r
+ </ε>\r
+ <ζ>\r
+ <output> \zeta </output>\r
+ </ζ>\r
+ <η>\r
+ <output> \eta </output>\r
+ </η>\r
+ <θ>\r
+ <output> \theta </output>\r
+ </θ>\r
+ <ι>\r
+ <output> \iota </output>\r
+ </ι>\r
+ <κ>\r
+ <output> \kappa </output>\r
+ </κ>\r
+ <λ>\r
+ <output> \lambda </output>\r
+ </λ>\r
+ <μ>\r
+ <output> \mu </output>\r
+ </μ>\r
+ <ν>\r
+ <output> \nu </output>\r
+ </ν>\r
+ <ξ>\r
+ <output> \xi </output>\r
+ </ξ>\r
+ <π>\r
+ <output> \pi </output>\r
+ </π>\r
+ <ρ>\r
+ <output> \rho </output>\r
+ </ρ>\r
+ <σ>\r
+ <output> \sigma </output>\r
+ </σ>\r
+ <τ>\r
+ <output> \tau </output>\r
+ </τ>\r
+ <υ>\r
+ <output> \upsilon </output>\r
+ </υ>\r
+ <φ>\r
+ <output> \phi </output>\r
+ </φ>\r
+ <χ>\r
+ <output> \chi </output>\r
+ </χ>\r
+ <ψ>\r
+ <output> \psi </output>\r
+ </ψ> \r
+ <ω>\r
+ <output> \omega </output>\r
+ </ω>\r
+ \r
+</Syntax>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<Syntax>\r
+ <name AutoBrackets="true">Maple</name>\r
+ \r
+ <Initial>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </Initial>\r
+ <Text>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </Text>\r
+ <Variable>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </Variable>\r
+ <RealNumber>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </RealNumber>\r
+ \r
+ \r
+ <!-- Nary Operators --> \r
+ <Add>\r
+ <output>+</output>\r
+ </Add>\r
+ <Multiply>\r
+ <output>*</output>\r
+ </Multiply>\r
+ <Multiply2>\r
+ <output>*</output>\r
+ </Multiply2>\r
+ <Equals>\r
+ <output>=</output>\r
+ </Equals>\r
+ <Union>\r
+ <output> union </output>\r
+ </Union>\r
+ <Intersection>\r
+ <output> intersect </output>\r
+ </Intersection>\r
+ <Comma>\r
+ <output>,</output>\r
+ </Comma>\r
+ <Equiv>\r
+ <output>≡</output>\r
+ </Equiv>\r
+ \r
+ \r
+ \r
+ <!-- Functions --> \r
+ <UMinus>\r
+ <output1>-</output1>\r
+ <output2></output2>\r
+ </UMinus>\r
+ <Factorial>\r
+ <output1>factorial</output1>\r
+ <output2></output2>\r
+ </Factorial>\r
+ <NaturalLogarithm>\r
+ <output1>ln</output1>\r
+ <output2></output2>\r
+ </NaturalLogarithm>\r
+ <Logarithm>\r
+ <output1>log</output1>\r
+ <output2></output2>\r
+ </Logarithm>\r
+ <Sine>\r
+ <output1>sin</output1>\r
+ <output2></output2>\r
+ </Sine>\r
+ <Cosine>\r
+ <output1>cos</output1>\r
+ <output2></output2>\r
+ </Cosine>\r
+ <Tangent>\r
+ <output1>tan</output1>\r
+ <output2></output2>\r
+ </Tangent>\r
+ <ArcSine>\r
+ <output1>arcsin</output1>\r
+ <output2></output2>\r
+ </ArcSine>\r
+ <ArcCosine>\r
+ <output1>arccos</output1>\r
+ <output2></output2>\r
+ </ArcCosine>\r
+ <ArcTangent>\r
+ <output1>arctan</output1>\r
+ <output2></output2>\r
+ </ArcTangent>\r
+ <SineH>\r
+ <output1>sinh</output1>\r
+ <output2></output2>\r
+ </SineH>\r
+ <CosineH>\r
+ <output1>cosh</output1>\r
+ <output2></output2>\r
+ </CosineH>\r
+ <TanH>\r
+ <output1>tanh</output1>\r
+ <output2></output2>\r
+ </TanH>\r
+ <ArcSineH>\r
+ <output1>arcsinh</output1>\r
+ <output2></output2>\r
+ </ArcSineH>\r
+ <ArcCosineH>\r
+ <output1>arccosh</output1>\r
+ <output2></output2>\r
+ </ArcCosineH>\r
+ <ArcTanH>\r
+ <output1>arctanh</output1>\r
+ <output2></output2>\r
+ </ArcTanH>\r
+ <SquareRoot>\r
+ <output1>sqrt</output1>\r
+ <output2></output2>\r
+ </SquareRoot>\r
+ <Exp>\r
+ <output1>exp</output1>\r
+ <output2></output2>\r
+ </Exp>\r
+ <Max>\r
+ <output1>max</output1>\r
+ <output2></output2>\r
+ </Max>\r
+ <Min>\r
+ <output1>min</output1>\r
+ <output2></output2>\r
+ </Min>\r
+ <Determinant>\r
+ <output1>det</output1>\r
+ <output2></output2>\r
+ </Determinant>\r
+ <Trace>\r
+ <output1>trace</output1>\r
+ <output2></output2>\r
+ </Trace>\r
+ \r
+ \r
+ \r
+ <!-- Binary Operators --> \r
+ <NotEqual>\r
+ <output1></output1>\r
+ <output2>≠</output2>\r
+ <output3></output3>\r
+ </NotEqual>\r
+ <PlusMinus>\r
+ <output1></output1>\r
+ <output2>±</output2>\r
+ <output3></output3>\r
+ </PlusMinus>\r
+ <Assignment>\r
+ <output1></output1>\r
+ <output2>:=</output2>\r
+ <output3></output3>\r
+ </Assignment>\r
+ <Subtract>\r
+ <output1></output1>\r
+ <output2>-</output2>\r
+ <output3></output3>\r
+ </Subtract>\r
+ <Divide>\r
+ <output1></output1>\r
+ <output2>/</output2>\r
+ <output3></output3>\r
+ </Divide> \r
+ <Divide2>\r
+ <output1></output1>\r
+ <output2>/</output2>\r
+ <output3></output3>\r
+ </Divide2> \r
+ <LessThan>\r
+ <output1></output1>\r
+ <output2><![CDATA[<]]></output2>\r
+ <output3></output3>\r
+ </LessThan> \r
+ <GreaterThan>\r
+ <output1></output1>\r
+ <output2>></output2>\r
+ <output3></output3>\r
+ </GreaterThan> \r
+ <LTEQ>\r
+ <output1></output1>\r
+ <output2><![CDATA[<=]]></output2>\r
+ <output3></output3>\r
+ </LTEQ> \r
+ <GTEQ>\r
+ <output1></output1>\r
+ <output2>>=</output2>\r
+ <output3></output3>\r
+ </GTEQ> \r
+ <Subset>\r
+ <output1>`subset`(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </Subset> \r
+ <SubsetEq>\r
+ <output1>`subset`(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </SubsetEq> \r
+ <NSubset>\r
+ <output1>not `subset`(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </NSubset> \r
+ <NSubsetEq>\r
+ <output1>not `subset`(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </NSubsetEq> \r
+ <Power>\r
+ <output1></output1>\r
+ <output2>^</output2>\r
+ <output3></output3>\r
+ </Power>\r
+ <Subscript>\r
+ <output1></output1>\r
+ <output2>[</output2>\r
+ <output3>]</output3>\r
+ </Subscript> \r
+ <NthRoot>\r
+ <output1>surd(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </NthRoot>\r
+ <Function>\r
+ <output1></output1>\r
+ <output2>(</output2>\r
+ <output3>)</output3>\r
+ </Function>\r
+ <LeftArrow>\r
+ <output1></output1>\r
+ <output2>←</output2>\r
+ <output3></output3>\r
+ </LeftArrow> \r
+ <RightArrow>\r
+ <output1></output1>\r
+ <output2>→</output2>\r
+ <output3></output3>\r
+ </RightArrow> \r
+ <UpArrow>\r
+ <output1></output1>\r
+ <output2>↑</output2>\r
+ <output3></output3>\r
+ </UpArrow> \r
+ <DownArrow>\r
+ <output1></output1>\r
+ <output2>↓</output2>\r
+ <output3></output3>\r
+ </DownArrow> \r
+ <LeftDblArrow>\r
+ <output1></output1>\r
+ <output2>⇐</output2>\r
+ <output3></output3>\r
+ </LeftDblArrow> \r
+ <RightDblArrow>\r
+ <output1></output1>\r
+ <output2>⇒</output2>\r
+ <output3></output3>\r
+ </RightDblArrow> \r
+ <LeftRightArrow>\r
+ <output1></output1>\r
+ <output2>↔</output2>\r
+ <output3></output3>\r
+ </LeftRightArrow> \r
+ <LeftRightDblArrow>\r
+ <output1></output1>\r
+ <output2>⇔</output2>\r
+ <output3></output3>\r
+ </LeftRightDblArrow> \r
+ <NorthEastArrow>\r
+ <output1></output1>\r
+ <output2>↗</output2>\r
+ <output3></output3>\r
+ </NorthEastArrow> \r
+ <SouthEastArrow>\r
+ <output1></output1>\r
+ <output2>↘</output2>\r
+ <output3></output3>\r
+ </SouthEastArrow> \r
+ <NorthWestArrow> \r
+ <output1></output1>\r
+ <output2>↖</output2>\r
+ <output3></output3>\r
+ </NorthWestArrow> \r
+ <SouthWestArrow>\r
+ <output1></output1>\r
+ <output2>↙</output2>\r
+ <output3></output3>\r
+ </SouthWestArrow> \r
+ \r
+ <Exists>\r
+ <output1></output1>\r
+ <output2>∃</output2>\r
+ <output3></output3>\r
+ </Exists>\r
+ <ForAll>\r
+ <output1></output1>\r
+ <output2>∀</output2>\r
+ <output3></output3>\r
+ </ForAll>\r
+ <IsIn> \r
+ <output1></output1>\r
+ <output2>∈</output2>\r
+ <output3></output3>\r
+ </IsIn>\r
+ <NotExists>\r
+ <output1></output1>\r
+ <output2>∄</output2>\r
+ <output3></output3>\r
+ </NotExists>\r
+ <NotIn>\r
+ <output1></output1>\r
+ <output2>∉</output2>\r
+ <output3></output3>\r
+ </NotIn>\r
+ <SimEq>\r
+ <output1></output1>\r
+ <output2>≃</output2>\r
+ <output3></output3>\r
+ </SimEq>\r
+ <Or> \r
+ <output1></output1>\r
+ <output2>∨</output2>\r
+ <output3></output3>\r
+ </Or>\r
+ <And>\r
+ <output1></output1>\r
+ <output2>∧</output2>\r
+ <output3></output3>\r
+ </And>\r
+ <Not>\r
+ <output1></output1>\r
+ <output2>¬</output2>\r
+ <output3></output3>\r
+ </Not>\r
+ \r
+ \r
+ <!-- Nary Functions --> \r
+ <Integral>\r
+ <output1>int(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </Integral>\r
+ <Differential>\r
+ <output1>diff(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </Differential>\r
+ <PartialDifferential>\r
+ <output1>diff(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </PartialDifferential>\r
+ <Sum>\r
+ <output1>sum(</output1>\r
+ <output2>,</output2>\r
+ <output3>=</output3>\r
+ <output4>..</output4>\r
+ <output5>)</output5>\r
+ </Sum>\r
+ <Product>\r
+ <output1>product(</output1>\r
+ <output2>,</output2>\r
+ <output3>=</output3>\r
+ <output4>..</output4>\r
+ <output5>)</output5>\r
+ </Product>\r
+ <Limit>\r
+ <output1>limit(</output1>\r
+ <output2>,</output2>\r
+ <output3>=</output3>\r
+ <output4>)</output4>\r
+ </Limit>\r
+ <Evaluate order="2,3,1">\r
+ <output1>subs(</output1>\r
+ <output2>=</output2>\r
+ <output3>,</output3>\r
+ <output4>)</output4>\r
+ </Evaluate>\r
+ <DefiniteIntegral>\r
+ <output1>int(</output1>\r
+ <output2>,</output2>\r
+ <output3>=</output3>\r
+ <output4>..</output4>\r
+ <output5>)</output5>\r
+ </DefiniteIntegral>\r
+ \r
+ \r
+ \r
+ <!-- Matrix --> \r
+ <Matrix>\r
+ <matrixStart>Matrix([</matrixStart>\r
+ <rowStart>[</rowStart>\r
+ <elementStart></elementStart>\r
+ <elementEnd></elementEnd>\r
+ <elementSeparator>,</elementSeparator>\r
+ <rowEnd>]</rowEnd>\r
+ <rowSeparator>,</rowSeparator>\r
+ <matrixEnd>])</matrixEnd>\r
+ </Matrix>\r
+ \r
+ \r
+ \r
+ <!-- Grouping --> \r
+ <BracketsRnd>\r
+ <output1>(</output1>\r
+ <output2>)</output2>\r
+ </BracketsRnd>\r
+ <BracketsCurl>\r
+ <output1>{</output1>\r
+ <output2>}</output2>\r
+ </BracketsCurl>\r
+ <BracketsSq>\r
+ <output1>[</output1>\r
+ <output2>]</output2>\r
+ </BracketsSq>\r
+ <Abs>\r
+ <output1>abs(</output1>\r
+ <output2>)</output2>\r
+ </Abs>\r
+ \r
+ \r
+ \r
+ <!-- Symbols --> \r
+ <Infinity>\r
+ <output>infinity</output>\r
+ </Infinity>\r
+ \r
+ <Γ>\r
+ <output> Gamma </output>\r
+ </Γ>\r
+ <Δ>\r
+ <output> Delta </output>\r
+ </Δ>\r
+ <Θ>\r
+ <output> Theta </output>\r
+ </Θ>\r
+ <Λ>\r
+ <output> Lamda </output>\r
+ </Λ>\r
+ <Ξ>\r
+ <output> Xi </output>\r
+ </Ξ>\r
+ <Π>\r
+ <output> PI </output>\r
+ </Π>\r
+ <Σ>\r
+ <output> Sigma </output>\r
+ </Σ>\r
+ <Υ>\r
+ <output> Upsilon </output>\r
+ </Υ>\r
+ <Φ>\r
+ <output> Phi </output>\r
+ </Φ>\r
+ <Ψ>\r
+ <output> Psi </output>\r
+ </Ψ>\r
+ <Ω>\r
+ <output> Omega </output>\r
+ </Ω>\r
+ \r
+ \r
+ <α>\r
+ <output> alpha </output>\r
+ </α>\r
+ <β>\r
+ <output> beta </output>\r
+ </β>\r
+ <γ>\r
+ <output> gamma </output>\r
+ </γ>\r
+ <δ>\r
+ <output> delta </output>\r
+ </δ>\r
+ <ε>\r
+ <output> epsilon </output>\r
+ </ε>\r
+ <ζ>\r
+ <output> zeta </output>\r
+ </ζ>\r
+ <η>\r
+ <output> eta </output>\r
+ </η>\r
+ <θ>\r
+ <output> theta </output>\r
+ </θ>\r
+ <ι>\r
+ <output> iota </output>\r
+ </ι>\r
+ <κ>\r
+ <output> kappa </output>\r
+ </κ>\r
+ <λ>\r
+ <output> lambda </output>\r
+ </λ>\r
+ <μ>\r
+ <output> mu </output>\r
+ </μ>\r
+ <ν>\r
+ <output> nu </output>\r
+ </ν>\r
+ <ξ>\r
+ <output> xi </output>\r
+ </ξ>\r
+ <π>\r
+ <output> Pi </output>\r
+ </π>\r
+ <ρ>\r
+ <output> rho </output>\r
+ </ρ>\r
+ <σ>\r
+ <output> sigma </output>\r
+ </σ>\r
+ <τ>\r
+ <output> tau </output>\r
+ </τ>\r
+ <υ>\r
+ <output> upsilon </output>\r
+ </υ>\r
+ <φ>\r
+ <output> phi </output>\r
+ </φ>\r
+ <χ>\r
+ <output> chi </output>\r
+ </χ>\r
+ <ψ>\r
+ <output> psi </output>\r
+ </ψ> \r
+ <ω>\r
+ <output> omega </output>\r
+ </ω>\r
+ \r
+</Syntax>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<Syntax>\r
+ <name AutoBrackets="false">MathML</name>\r
+ \r
+ <Initial> \r
+ <output1><![CDATA[ <math xmlns="http://www.w3.org/1998/Math/MathML"> ]]></output1>\r
+ <output2><![CDATA[</math>]]></output2>\r
+ </Initial>\r
+ <Text>\r
+ <output1><![CDATA[<mtext>]]></output1>\r
+ <output2><![CDATA[</mtext>]]></output2>\r
+ </Text>\r
+ <Variable>\r
+ <output1><![CDATA[<mi>]]></output1>\r
+ <output2><![CDATA[</mi>]]></output2>\r
+ </Variable>\r
+ <RealNumber>\r
+ <output1><![CDATA[<mn>]]></output1>\r
+ <output2><![CDATA[</mn>]]></output2>\r
+ </RealNumber>\r
+ \r
+ \r
+ \r
+ <!-- Nary Operators -->\r
+ <Add>\r
+ <output><![CDATA[<mo> + </mo>]]></output> \r
+ </Add>\r
+ <Multiply>\r
+ <output><![CDATA[<mo> ⋅ </mo>]]></output>\r
+ </Multiply> \r
+ <Multiply2>\r
+ <output><![CDATA[<mo> × </mo>]]></output>\r
+ </Multiply2>\r
+ <Equals>\r
+ <output><![CDATA[<mo> = </mo>]]></output>\r
+ </Equals>\r
+ <Union>\r
+ <output><![CDATA[<mo> ⋃ </mo>]]></output>\r
+ </Union>\r
+ <Intersection>\r
+ <output><![CDATA[<mo> ⋂ </mo>]]></output>\r
+ </Intersection>\r
+ <Comma>\r
+ <output><![CDATA[<mo> , </mo>]]></output>\r
+ </Comma>\r
+ <Equiv>\r
+ <output><![CDATA[ <mo> ≡ </mo>]]></output>\r
+ </Equiv>\r
+ \r
+ \r
+ \r
+ <!-- Functions -->\r
+ <UMinus>\r
+ <output1><![CDATA[<mo> − </mo]]></output1>\r
+ <output2></output2>\r
+ </UMinus> \r
+ <Factorial brackets="false">\r
+ <output1><![CDATA[<mrow>]]></output1>\r
+ <output2><![CDATA[<mo>!</mo></mrow>]]></output2>\r
+ </Factorial>\r
+ <NaturalLogarithm>\r
+ <output1><![CDATA[<mi> ln </mi>]]></output1>\r
+ <output2></output2>\r
+ </NaturalLogarithm>\r
+ <Logarithm>\r
+ <output1><![CDATA[<mi> log </mi>]]></output1>\r
+ <output2></output2>\r
+ </Logarithm>\r
+ <Sine>\r
+ <output1><![CDATA[<mi> sin </mi>]]></output1>\r
+ <output2></output2>\r
+ </Sine>\r
+ <Cosine>\r
+ <output1><![CDATA[<mi> cos </mi>]]></output1>\r
+ <output2></output2>\r
+ </Cosine>\r
+ <Tangent>\r
+ <output1><![CDATA[<mi> tan </mi>]]></output1>\r
+ <output2></output2>\r
+ </Tangent>\r
+ <ArcSine>\r
+ <output1><![CDATA[ <msup> <mrow><mi>sin</mi></mrow><mrow><mn>-1</mn></mrow></msup> ]]></output1>\r
+ <output2></output2>\r
+ </ArcSine>\r
+ <ArcCosine>\r
+ <output1><![CDATA[ <msup> <mrow><mi>cos</mi></mrow><mrow><mn>-1</mn></mrow></msup> ]]></output1>\r
+ <output2></output2>\r
+ </ArcCosine>\r
+ <ArcTangent>\r
+ <output1><![CDATA[ <msup> <mrow><mi>tan</mi></mrow><mrow><mn>-1</mn></mrow></msup> ]]></output1>\r
+ <output2></output2>\r
+ </ArcTangent>\r
+ <SineH>\r
+ <output1><![CDATA[<mi> sinh </mi>]]></output1>\r
+ <output2></output2>\r
+ </SineH>\r
+ <CosineH>\r
+ <output1><![CDATA[<mi> cosh </mi>]]></output1>\r
+ <output2></output2>\r
+ </CosineH>\r
+ <TanH>\r
+ <output1><![CDATA[<mi> tanh </mi>]]></output1>\r
+ <output2></output2>\r
+ </TanH>\r
+ <ArcSineH>\r
+ <output1><![CDATA[ <msup> <mrow><mi>sinh</mi></mrow><mrow><mn>-1</mn></mrow></msup> ]]></output1>\r
+ <output2></output2>\r
+ </ArcSineH>\r
+ <ArcCosineH>\r
+ <output1><![CDATA[ <msup> <mrow><mi>cosh</mi></mrow><mrow><mn>-1</mn></mrow></msup> ]]></output1>\r
+ <output2></output2>\r
+ </ArcCosineH>\r
+ <ArcTanH>\r
+ <output1><![CDATA[ <msup> <mrow><mi>tanh</mi></mrow><mrow><mn>-1</mn></mrow></msup> ]]></output1>\r
+ <output2></output2>\r
+ </ArcTanH>\r
+ <SquareRoot brackets="false">\r
+ <output1><![CDATA[<msqrt> <mrow>]]></output1>\r
+ <output2><![CDATA[</mrow> </msqrt>]]></output2>\r
+ </SquareRoot>\r
+ <Exp brackets="false">\r
+ <output1><![CDATA[ <msup> <mrow><mtext>e</mtext></mrow> <mrow>]]></output1>\r
+ <output2><![CDATA[</mrow> </msup>]]></output2>\r
+ </Exp>\r
+ <Max>\r
+ <output1><![CDATA[<mi> max </mi>]]></output1>\r
+ <output2></output2>\r
+ </Max>\r
+ <Min>\r
+ <output1><![CDATA[<mi> min </mi>]]></output1>\r
+ <output2></output2>\r
+ </Min>\r
+ <Determinant>\r
+ <output1><![CDATA[<mi> det </mi>]]></output1>\r
+ <output2></output2>\r
+ </Determinant>\r
+ <Trace>\r
+ <output1><![CDATA[<mi> trace </mi>]]></output1>\r
+ <output2></output2>\r
+ </Trace>\r
+ \r
+ \r
+ \r
+ <!-- Binary Operators -->\r
+ <NotEqual>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> ≠ </mo>]]></output2>\r
+ <output3></output3>\r
+ </NotEqual>\r
+ <PlusMinus>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> ± </mo>]]></output2>\r
+ <output3></output3>\r
+ </PlusMinus>\r
+ <Assignment>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> ≔ </mo>]]></output2>\r
+ <output3></output3>\r
+ </Assignment>\r
+ <Subtract>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> − </mo>]]></output2>\r
+ <output3></output3>\r
+ </Subtract>\r
+ <Divide brackets="false">\r
+ <output1><![CDATA[<mfrac> <mrow>]]></output1>\r
+ <output2><![CDATA[</mrow> <mrow>]]></output2>\r
+ <output3><![CDATA[</mrow> </mfrac>]]></output3>\r
+ </Divide>\r
+ <Divide2> \r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> ÷ </mo>]]></output2>\r
+ <output3></output3>\r
+ </Divide2>\r
+ <LessThan>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> < </mo>]]></output2>\r
+ <output3></output3>\r
+ </LessThan> \r
+ <GreaterThan>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> > </mo>]]></output2>\r
+ <output3></output3>\r
+ </GreaterThan> \r
+ <LTEQ>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> ≤ </mo>]]></output2>\r
+ <output3></output3>\r
+ </LTEQ> \r
+ <GTEQ>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> ≥ </mo>]]></output2>\r
+ <output3></output3>\r
+ </GTEQ> \r
+ <Subset>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> ⊂ </mo>]]></output2>\r
+ <output3></output3>\r
+ </Subset> \r
+ <SubsetEq>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> ⊆ </mo>]]></output2>\r
+ <output3></output3>\r
+ </SubsetEq> \r
+ <NSubset>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> ⊄ </mo> ]]></output2>\r
+ <output3></output3>\r
+ </NSubset> \r
+ <NSubsetEq>\r
+ <output1></output1>\r
+ <output2><![CDATA[<mo> ⊈ </mo>]]></output2>\r
+ <output3></output3>\r
+ </NSubsetEq> \r
+ <Power>\r
+ <output1><![CDATA[<msup> <mrow>]]></output1>\r
+ <output2><![CDATA[</mrow> <mrow>]]></output2>\r
+ <output3><![CDATA[</mrow> </msup>]]></output3>\r
+ </Power>\r
+ <Subscript>\r
+ <output1><![CDATA[<msub> <mrow>]]></output1>\r
+ <output2><![CDATA[ </mrow> <mrow> ]]></output2>\r
+ <output3><![CDATA[ </mrow> </msub>]]></output3>\r
+ </Subscript> \r
+ <NthRoot brackets="false">\r
+ <output1><![CDATA[<mroot> <mrow>]]></output1>\r
+ <output2><![CDATA[</mrow> <mrow>]]></output2>\r
+ <output3><![CDATA[</mrow> </mroot>]]></output3>\r
+ </NthRoot> \r
+ <Function>\r
+ <output1><![CDATA[<mrow>]]></output1>\r
+ <output2><![CDATA[</mrow> <mfenced> <mrow>]]></output2>\r
+ <output3><![CDATA[</mrow> </mfenced>]]></output3>\r
+ </Function>\r
+ \r
+ \r
+ <!-- Nary Functions -->\r
+ <Integral>\r
+ <output1><![CDATA[<mrow><mo>∫</mo> <mrow>]]></output1>\r
+ <output2><![CDATA[</mrow> <mo>ⅆ</mo> <mrow>]]></output2>\r
+ <output3><![CDATA[</mrow> </mrow>]]></output3>\r
+ </Integral>\r
+ <Differential order="1,0">\r
+ <output1><![CDATA[<mrow> <mfrac> <mrow><mo>ⅆ</mo></mrow> <mrow><mo>ⅆ</mo>]]></output1>\r
+ <output2><![CDATA[</mrow> </mfrac> <mrow>]]></output2>\r
+ <output3><![CDATA[</mrow> </mrow>]]></output3>\r
+ </Differential>\r
+ <PartialDifferential order="1,0">\r
+ <output1><![CDATA[<mrow> <mfrac> <mrow><mo>∂</mo></mrow> <mrow><mo>∂</mo>]]></output1>\r
+ <output2><![CDATA[</mrow> </mfrac> <mrow>]]></output2>\r
+ <output3><![CDATA[</mrow> </mrow>]]></output3>\r
+ </PartialDifferential>\r
+ <Sum order="1,2,3,0">\r
+ <output1><![CDATA[<mrow> <munderover> <mo>∑</mo> <mrow>]]></output1>\r
+ <output2><![CDATA[ <mo> = </mo>]]></output2>\r
+ <output3><![CDATA[</mrow> <mrow>]]></output3>\r
+ <output4><![CDATA[</mrow> </munderover> <mrow>]]></output4>\r
+ <output5><![CDATA[</mrow> </mrow>]]></output5>\r
+ </Sum>\r
+ <Product order="1,2,3,0">\r
+ <output1><![CDATA[<mrow> <munderover> <mo>∏</mo> <mrow>]]></output1>\r
+ <output2><![CDATA[<mo> = </mo>]]></output2>\r
+ <output3><![CDATA[</mrow> <mrow>]]></output3>\r
+ <output4><![CDATA[</mrow> </munderover> <mrow>]]></output4>\r
+ <output5><![CDATA[</mrow> </mrow>]]></output5>\r
+ </Product>\r
+ <Limit order="1,2,0">\r
+ <output1><![CDATA[<mrow> <munder> <mrow> <mi>lim</mi> </mrow> <mrow>]]></output1>\r
+ <output2><![CDATA[ <mo>→</mo> ]]></output2>\r
+ <output3><![CDATA[</mrow> </munder> <mrow>]]></output3>\r
+ <output4><![CDATA[</mrow> </mrow>]]></output4>\r
+ </Limit>\r
+ <Evaluate>\r
+ <output1></output1>\r
+ <output2><![CDATA[<msub> <mrow> <mi>|</mi> </mrow> <mrow>]]></output2>\r
+ <output3><![CDATA[ <mo> = </mo>]]></output3>\r
+ <output4><![CDATA[ </mrow> </msub>]]></output4>\r
+ </Evaluate>\r
+ <DefiniteIntegral order="2,3,0,1">\r
+ <output1><![CDATA[<mrow> <msubsup> <mo>∫</mo> <mrow>]]></output1>\r
+ <output2><![CDATA[</mrow> <mrow>]]></output2>\r
+ <output3><![CDATA[</mrow> </msubsup> <mrow>]]></output3>\r
+ <output4><![CDATA[</mrow> <mo>ⅆ</mo> <mrow>]]></output4>\r
+ <output5><![CDATA[</mrow> </mrow>]]></output5>\r
+ </DefiniteIntegral>\r
+ <LeftArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ← </mo>]]></output2>\r
+ <output3></output3>\r
+ </LeftArrow> \r
+ <RightArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> → </mo>]]></output2>\r
+ <output3></output3>\r
+ </RightArrow> \r
+ <UpArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ↑ </mo>]]></output2>\r
+ <output3></output3>\r
+ </UpArrow> \r
+ <DownArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ↓ </mo>]]></output2>\r
+ <output3></output3>\r
+ </DownArrow> \r
+ <LeftDblArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ⇐ </mo>]]></output2>\r
+ <output3></output3>\r
+ </LeftDblArrow> \r
+ <RightDblArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ⇒ </mo>]]></output2>\r
+ <output3></output3>\r
+ </RightDblArrow> \r
+ <LeftRightArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ↔ </mo>]]></output2>\r
+ <output3></output3>\r
+ </LeftRightArrow> \r
+ <LeftRightDblArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ⇔ </mo>]]></output2>\r
+ <output3></output3>\r
+ </LeftRightDblArrow> \r
+ <NorthEastArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ↗ </mo>]]></output2>\r
+ <output3></output3>\r
+ </NorthEastArrow> \r
+ <SouthEastArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ↘ </mo>]]></output2>\r
+ <output3></output3>\r
+ </SouthEastArrow> \r
+ <NorthWestArrow> \r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ↖ </mo>]]></output2>\r
+ <output3></output3>\r
+ </NorthWestArrow> \r
+ <SouthWestArrow>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ↙ </mo>]]></output2>\r
+ <output3></output3>\r
+ </SouthWestArrow> \r
+ \r
+ <Exists>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ∃ </mo>]]></output2>\r
+ <output3></output3>\r
+ </Exists>\r
+ <ForAll>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ∀ </mo>]]></output2>\r
+ <output3></output3>\r
+ </ForAll>\r
+ <IsIn> \r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ∈ </mo>]]></output2>\r
+ <output3></output3>\r
+ </IsIn>\r
+ <NotExists>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ∄ </mo>]]></output2>\r
+ <output3></output3>\r
+ </NotExists>\r
+ <NotIn>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ∉ </mo>]]></output2>\r
+ <output3></output3>\r
+ </NotIn>\r
+ <SimEq>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ≃ </mo>]]></output2>\r
+ <output3></output3>\r
+ </SimEq>\r
+ <Or> \r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ∨ </mo>]]></output2>\r
+ <output3></output3>\r
+ </Or>\r
+ <And>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ∧ </mo>]]></output2>\r
+ <output3></output3>\r
+ </And>\r
+ <Not>\r
+ <output1></output1>\r
+ <output2><![CDATA[ <mo> ¬ </mo>]]></output2>\r
+ <output3></output3>\r
+ </Not>\r
+ \r
+ \r
+ \r
+ <!-- Grouping -->\r
+ <BracketsRnd>\r
+ <output1><![CDATA[<mfenced> <mrow>]]></output1>\r
+ <output2><![CDATA[</mrow> </mfenced>]]></output2>\r
+ </BracketsRnd>\r
+ <BracketsCurl>\r
+ <output1><![CDATA[<mfenced open="{" close="}"><mrow>]]></output1>\r
+ <output2><![CDATA[</mrow></mfenced>]]></output2>\r
+ </BracketsCurl>\r
+ <BracketsSq>\r
+ <output1><![CDATA[<mfenced open="[" close="]"><mrow>]]></output1>\r
+ <output2><![CDATA[</mrow></mfenced>]]></output2>\r
+ </BracketsSq>\r
+ <Abs>\r
+ <output1><![CDATA[<mfenced open="|" close="|"><mrow>]]></output1>\r
+ <output2><![CDATA[</mrow></mfenced>]]></output2>\r
+ </Abs>\r
+ \r
+ \r
+ \r
+ <!-- Matrix -->\r
+ <Matrix>\r
+ <matrixStart><![CDATA[<mfenced open="[" close="]"><mtable>]]></matrixStart>\r
+ <rowStart><![CDATA[<mtr>]]></rowStart>\r
+ <elementStart><![CDATA[<mtd>]]></elementStart>\r
+ <elementEnd><![CDATA[</mtd>]]></elementEnd>\r
+ <elementSeparator></elementSeparator>\r
+ <rowEnd><![CDATA[</mtr>]]></rowEnd>\r
+ <rowSeparator></rowSeparator>\r
+ <matrixEnd><![CDATA[</mtable></mfenced>]]></matrixEnd>\r
+ </Matrix>\r
+ \r
+ \r
+ \r
+ <!-- Symbols -->\r
+ <Infinity>\r
+ <output><![CDATA[<mi> ∞ </mi>]]></output>\r
+ </Infinity>\r
+ \r
+ <Γ>\r
+ <output> <![CDATA[<mi> Γ </mi>]]> </output>\r
+ </Γ>\r
+ <Δ>\r
+ <output> <![CDATA[<mi> Δ </mi>]]> </output>\r
+ </Δ>\r
+ <Θ>\r
+ <output> <![CDATA[<mi> Θ </mi>]]> </output>\r
+ </Θ>\r
+ <Λ>\r
+ <output> <![CDATA[<mi> &Lamda; </mi>]]> </output>\r
+ </Λ>\r
+ <Ξ>\r
+ <output> <![CDATA[<mi> Ξ </mi>]]> </output>\r
+ </Ξ>\r
+ <Π>\r
+ <output> <![CDATA[<mi> Π </mi>]]> </output>\r
+ </Π>\r
+ <Σ>\r
+ <output> <![CDATA[<mi> Σ </mi>]]> </output>\r
+ </Σ>\r
+ <Υ>\r
+ <output> <![CDATA[<mi> Υ </mi>]]> </output>\r
+ </Υ>\r
+ <Φ>\r
+ <output> <![CDATA[<mi> Φ </mi>]]> </output>\r
+ </Φ>\r
+ <Ψ>\r
+ <output> <![CDATA[<mi> Ψ </mi>]]> </output>\r
+ </Ψ>\r
+ <Ω>\r
+ <output> <![CDATA[<mi> Ω </mi>]]> </output>\r
+ </Ω>\r
+ \r
+ \r
+ <α>\r
+ <output> <![CDATA[<mi> α </mi>]]> </output>\r
+ </α>\r
+ <β>\r
+ <output> <![CDATA[<mi> β </mi>]]> </output>\r
+ </β>\r
+ <γ>\r
+ <output> <![CDATA[<mi> γ </mi>]]> </output>\r
+ </γ>\r
+ <δ>\r
+ <output> <![CDATA[<mi> δ </mi>]]> </output>\r
+ </δ>\r
+ <ε>\r
+ <output> <![CDATA[<mi> ε </mi>]]> </output>\r
+ </ε>\r
+ <ζ>\r
+ <output> <![CDATA[<mi> ζ </mi>]]> </output>\r
+ </ζ>\r
+ <η>\r
+ <output> <![CDATA[<mi> η </mi>]]> </output>\r
+ </η>\r
+ <θ>\r
+ <output> <![CDATA[<mi> θ </mi>]]> </output>\r
+ </θ>\r
+ <ι>\r
+ <output> <![CDATA[<mi> ι </mi>]]> </output>\r
+ </ι>\r
+ <κ>\r
+ <output> <![CDATA[<mi> κ </mi>]]> </output>\r
+ </κ>\r
+ <λ>\r
+ <output> <![CDATA[<mi> &lamda; </mi>]]> </output>\r
+ </λ>\r
+ <μ>\r
+ <output> <![CDATA[<mi> μ </mi>]]> </output>\r
+ </μ>\r
+ <ν>\r
+ <output> <![CDATA[<mi> ν </mi>]]> </output>\r
+ </ν>\r
+ <ξ>\r
+ <output> <![CDATA[<mi> ξ </mi>]]> </output>\r
+ </ξ>\r
+ <π>\r
+ <output> <![CDATA[<mi> π </mi>]]> </output>\r
+ </π>\r
+ <ρ>\r
+ <output> <![CDATA[<mi> ρ </mi>]]> </output>\r
+ </ρ>\r
+ <σ>\r
+ <output> <![CDATA[<mi> σ </mi>]]> </output>\r
+ </σ>\r
+ <τ>\r
+ <output> <![CDATA[<mi> τ </mi>]]> </output>\r
+ </τ>\r
+ <υ>\r
+ <output> <![CDATA[<mi> υ </mi>]]> </output>\r
+ </υ>\r
+ <φ>\r
+ <output> <![CDATA[<mi> φ </mi>]]> </output>\r
+ </φ>\r
+ <χ>\r
+ <output> <![CDATA[<mi> χ </mi>]]> </output>\r
+ </χ>\r
+ <ψ>\r
+ <output> <![CDATA[<mi> ψ </mi>]]> </output>\r
+ </ψ> \r
+ <ω>\r
+ <output> <![CDATA[<mi> ω </mi>]]> </output>\r
+ </ω>\r
+</Syntax>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<Syntax>\r
+ <name AutoBrackets="true">Maxima</name>\r
+ \r
+ <Initial>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </Initial>\r
+ <Text>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </Text>\r
+ <Variable>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </Variable>\r
+ <RealNumber>\r
+ <output1></output1>\r
+ <output2></output2>\r
+ </RealNumber>\r
+ \r
+ \r
+ \r
+ <!-- Nary Operators -->\r
+ <Add>\r
+ <output>+</output>\r
+ </Add>\r
+ <Multiply>\r
+ <output>*</output>\r
+ </Multiply>\r
+ <Multiply2>\r
+ <output>*</output>\r
+ </Multiply2>\r
+ <Equals>\r
+ <output>=</output>\r
+ </Equals>\r
+ <Union>\r
+ <initial>union(</initial>\r
+ <output>,</output>\r
+ <final>)</final>\r
+ </Union>\r
+ <Intersection>\r
+ <initial>intersection(</initial>\r
+ <output>,</output>\r
+ <final>)</final>\r
+ </Intersection>\r
+ <Comma>\r
+ <output>,</output>\r
+ </Comma>\r
+ <Equiv>\r
+ <output>≡</output>\r
+ </Equiv>\r
+ \r
+ \r
+ \r
+ <!-- Functions -->\r
+ <UMinus>\r
+ <output1>-</output1>\r
+ <output2></output2>\r
+ </UMinus>\r
+ <Factorial brackets="false">\r
+ <output1>(</output1>\r
+ <output2>)!</output2>\r
+ </Factorial>\r
+ <NaturalLogarithm>\r
+ <output1>log</output1>\r
+ <output2></output2>\r
+ </NaturalLogarithm>\r
+ <Logarithm>\r
+ <output1>log10</output1>\r
+ <output2></output2>\r
+ </Logarithm>\r
+ <Sine>\r
+ <output1>sin</output1>\r
+ <output2></output2>\r
+ </Sine>\r
+ <Cosine>\r
+ <output1>cos</output1>\r
+ <output2></output2>\r
+ </Cosine>\r
+ <Tangent>\r
+ <output1>tan</output1>\r
+ <output2></output2>\r
+ </Tangent>\r
+ <ArcSine>\r
+ <output1>asin</output1>\r
+ <output2></output2>\r
+ </ArcSine>\r
+ <ArcCosine>\r
+ <output1>acos</output1>\r
+ <output2></output2>\r
+ </ArcCosine>\r
+ <ArcTangent>\r
+ <output1>atan</output1>\r
+ <output2></output2>\r
+ </ArcTangent>\r
+ <SineH>\r
+ <output1>sinh</output1>\r
+ <output2></output2>\r
+ </SineH>\r
+ <CosineH>\r
+ <output1>cosh</output1>\r
+ <output2></output2>\r
+ </CosineH>\r
+ <TanH>\r
+ <output1>tanh</output1>\r
+ <output2></output2>\r
+ </TanH>\r
+ <ArcSineH>\r
+ <output1>asinh</output1>\r
+ <output2></output2>\r
+ </ArcSineH>\r
+ <ArcCosineH>\r
+ <output1>acosh</output1>\r
+ <output2></output2>\r
+ </ArcCosineH>\r
+ <ArcTanH>\r
+ <output1>atanh</output1>\r
+ <output2></output2>\r
+ </ArcTanH>\r
+ <SquareRoot>\r
+ <output1>sqrt</output1>\r
+ <output2></output2>\r
+ </SquareRoot>\r
+ <Exp>\r
+ <output1>exp</output1>\r
+ <output2></output2>\r
+ </Exp>\r
+ <Max>\r
+ <output1>max</output1>\r
+ <output2></output2>\r
+ </Max>\r
+ <Min>\r
+ <output1>min</output1>\r
+ <output2></output2>\r
+ </Min>\r
+ <Determinant>\r
+ <output1>det</output1>\r
+ <output2></output2>\r
+ </Determinant>\r
+ <Trace>\r
+ <output1>trace</output1>\r
+ <output2></output2>\r
+ </Trace>\r
+ \r
+ \r
+ \r
+ <!-- Binary Operators -->\r
+ <NotEqual>\r
+ <output1></output1>\r
+ <output2>≠</output2>\r
+ <output3></output3>\r
+ </NotEqual>\r
+ <PlusMinus>\r
+ <output1></output1>\r
+ <output2>±</output2>\r
+ <output3></output3>\r
+ </PlusMinus>\r
+ <Assignment>\r
+ <output1></output1>\r
+ <output2>:</output2>\r
+ <output3></output3>\r
+ </Assignment>\r
+ <Subtract>\r
+ <output1></output1>\r
+ <output2>-</output2>\r
+ <output3></output3>\r
+ </Subtract>\r
+ <Divide>\r
+ <output1></output1>\r
+ <output2>/</output2>\r
+ <output3></output3>\r
+ </Divide> \r
+ <Divide2>\r
+ <output1></output1>\r
+ <output2>/</output2>\r
+ <output3></output3>\r
+ </Divide2> \r
+ <LessThan>\r
+ <output1></output1>\r
+ <output2><![CDATA[<]]></output2>\r
+ <output3></output3>\r
+ </LessThan> \r
+ <GreaterThan>\r
+ <output1></output1>\r
+ <output2>></output2>\r
+ <output3></output3>\r
+ </GreaterThan> \r
+ <LTEQ>\r
+ <output1></output1>\r
+ <output2><![CDATA[<=]]></output2>\r
+ <output3></output3>\r
+ </LTEQ> \r
+ <GTEQ>\r
+ <output1></output1>\r
+ <output2>>=</output2>\r
+ <output3></output3>\r
+ </GTEQ> \r
+ <Subset>\r
+ <output1>subsetp(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </Subset> \r
+ <SubsetEq>\r
+ <output1>subsetp(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </SubsetEq> \r
+ <NSubset>\r
+ <output1>not(subsetp(</output1>\r
+ <output2>,</output2>\r
+ <output3>))</output3>\r
+ </NSubset> \r
+ <NSubsetEq>\r
+ <output1>not(subsetp(</output1>\r
+ <output2>,</output2>\r
+ <output3>))</output3>\r
+ </NSubsetEq> \r
+ <Power>\r
+ <output1></output1>\r
+ <output2>^</output2>\r
+ <output3></output3>\r
+ </Power>\r
+ <Subscript>\r
+ <output1></output1>\r
+ <output2>[</output2>\r
+ <output3>]</output3>\r
+ </Subscript> \r
+ <NthRoot>\r
+ <output1>(</output1>\r
+ <output2>)^(1/(</output2>\r
+ <output3>))</output3>\r
+ </NthRoot> \r
+ <Function>\r
+ <output1></output1>\r
+ <output2>(</output2>\r
+ <output3>)</output3>\r
+ </Function>\r
+ <LeftArrow>\r
+ <output1></output1>\r
+ <output2>←</output2>\r
+ <output3></output3>\r
+ </LeftArrow> \r
+ <RightArrow>\r
+ <output1></output1>\r
+ <output2>→</output2>\r
+ <output3></output3>\r
+ </RightArrow> \r
+ <UpArrow>\r
+ <output1></output1>\r
+ <output2>↑</output2>\r
+ <output3></output3>\r
+ </UpArrow> \r
+ <DownArrow>\r
+ <output1></output1>\r
+ <output2>↓</output2>\r
+ <output3></output3>\r
+ </DownArrow> \r
+ <LeftDblArrow>\r
+ <output1></output1>\r
+ <output2>⇐</output2>\r
+ <output3></output3>\r
+ </LeftDblArrow> \r
+ <RightDblArrow>\r
+ <output1></output1>\r
+ <output2>⇒</output2>\r
+ <output3></output3>\r
+ </RightDblArrow> \r
+ <LeftRightArrow>\r
+ <output1></output1>\r
+ <output2>↔</output2>\r
+ <output3></output3>\r
+ </LeftRightArrow> \r
+ <LeftRightDblArrow>\r
+ <output1></output1>\r
+ <output2>⇔</output2>\r
+ <output3></output3>\r
+ </LeftRightDblArrow> \r
+ <NorthEastArrow>\r
+ <output1></output1>\r
+ <output2>↗</output2>\r
+ <output3></output3>\r
+ </NorthEastArrow> \r
+ <SouthEastArrow>\r
+ <output1></output1>\r
+ <output2>↘</output2>\r
+ <output3></output3>\r
+ </SouthEastArrow> \r
+ <NorthWestArrow> \r
+ <output1></output1>\r
+ <output2>↖</output2>\r
+ <output3></output3>\r
+ </NorthWestArrow> \r
+ <SouthWestArrow>\r
+ <output1></output1>\r
+ <output2>↙</output2>\r
+ <output3></output3>\r
+ </SouthWestArrow> \r
+ \r
+ <Exists>\r
+ <output1></output1>\r
+ <output2>∃</output2>\r
+ <output3></output3>\r
+ </Exists>\r
+ <ForAll>\r
+ <output1></output1>\r
+ <output2>∀</output2>\r
+ <output3></output3>\r
+ </ForAll>\r
+ <IsIn> \r
+ <output1></output1>\r
+ <output2>∈</output2>\r
+ <output3></output3>\r
+ </IsIn>\r
+ <NotExists>\r
+ <output1></output1>\r
+ <output2>∄</output2>\r
+ <output3></output3>\r
+ </NotExists>\r
+ <NotIn>\r
+ <output1></output1>\r
+ <output2>∉</output2>\r
+ <output3></output3>\r
+ </NotIn>\r
+ <SimEq>\r
+ <output1></output1>\r
+ <output2>≃</output2>\r
+ <output3></output3>\r
+ </SimEq>\r
+ <Or> \r
+ <output1></output1>\r
+ <output2>∨</output2>\r
+ <output3></output3>\r
+ </Or>\r
+ <And>\r
+ <output1></output1>\r
+ <output2>∧</output2>\r
+ <output3></output3>\r
+ </And>\r
+ <Not>\r
+ <output1></output1>\r
+ <output2>¬</output2>\r
+ <output3></output3>\r
+ </Not>\r
+ \r
+ \r
+ <!-- Nary Functions -->\r
+ <Integral>\r
+ <output1> integrate(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </Integral>\r
+ <Differential>\r
+ <output1>diff(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </Differential>\r
+ <PartialDifferential>\r
+ <output1>diff(</output1>\r
+ <output2>,</output2>\r
+ <output3>)</output3>\r
+ </PartialDifferential>\r
+ <Sum>\r
+ <output1>sum(</output1>\r
+ <output2>,</output2>\r
+ <output3>,</output3>\r
+ <output4>,</output4>\r
+ <output5>);</output5>\r
+ </Sum>\r
+ <Product>\r
+ <output1>product(</output1>\r
+ <output2>,</output2>\r
+ <output3>,</output3>\r
+ <output4>,</output4>\r
+ <output5>);</output5>\r
+ </Product>\r
+ <Limit>\r
+ <output1>limit(</output1>\r
+ <output2>,</output2>\r
+ <output3>=</output3>\r
+ <output4>);</output4>\r
+ </Limit>\r
+ <Evaluate order="1,2,0">\r
+ <output1>subst(</output1>\r
+ <output2>=</output2>\r
+ <output3>,</output3>\r
+ <output4>)</output4>\r
+ </Evaluate>\r
+ <DefiniteIntegral>\r
+ <output1>integrate(</output1>\r
+ <output2>,</output2>\r
+ <output3>,</output3>\r
+ <output4>,</output4>\r
+ <output5>)</output5>\r
+ </DefiniteIntegral>\r
+ \r
+ \r
+ \r
+ <!-- Matrix -->\r
+ <Matrix>\r
+ <matrixStart>matrix(</matrixStart>\r
+ <rowStart>[</rowStart>\r
+ <elementStart></elementStart>\r
+ <elementEnd></elementEnd>\r
+ <elementSeparator>,</elementSeparator>\r
+ <rowEnd>]</rowEnd>\r
+ <rowSeparator>,</rowSeparator>\r
+ <matrixEnd>)</matrixEnd>\r
+ </Matrix>\r
+ \r
+ \r
+ \r
+ <!-- Grouping -->\r
+ <BracketsRnd>\r
+ <output1>(</output1>\r
+ <output2>)</output2>\r
+ </BracketsRnd>\r
+ <BracketsCurl>\r
+ <output1>{</output1>\r
+ <output2>}</output2>\r
+ </BracketsCurl>\r
+ <BracketsSq>\r
+ <output1>[</output1>\r
+ <output2>]</output2>\r
+ </BracketsSq>\r
+ <Abs>\r
+ <output1>abs(</output1>\r
+ <output2>)</output2>\r
+ </Abs>\r
+ \r
+ \r
+ \r
+ <!-- Symbols -->\r
+ <Infinity>\r
+ <output>infinity</output>\r
+ </Infinity>\r
+ \r
+ <Γ>\r
+ <output> Gamma </output>\r
+ </Γ>\r
+ <Δ>\r
+ <output> Delta </output>\r
+ </Δ>\r
+ <Θ>\r
+ <output> Theta </output>\r
+ </Θ>\r
+ <Λ>\r
+ <output> Lamda </output>\r
+ </Λ>\r
+ <Ξ>\r
+ <output> Xi </output>\r
+ </Ξ>\r
+ <Π>\r
+ <output> Pi </output>\r
+ </Π>\r
+ <Σ>\r
+ <output> Sigma </output>\r
+ </Σ>\r
+ <Υ>\r
+ <output> Upsilon </output>\r
+ </Υ>\r
+ <Φ>\r
+ <output> Phi </output>\r
+ </Φ>\r
+ <Ψ>\r
+ <output> Psi </output>\r
+ </Ψ>\r
+ <Ω>\r
+ <output> Omega </output>\r
+ </Ω>\r
+ \r
+ \r
+ <α>\r
+ <output> alpha </output>\r
+ </α>\r
+ <β>\r
+ <output> beta </output>\r
+ </β>\r
+ <γ>\r
+ <output> %gamma </output>\r
+ </γ>\r
+ <δ>\r
+ <output> delta </output>\r
+ </δ>\r
+ <ε>\r
+ <output> epsilon </output>\r
+ </ε>\r
+ <ζ>\r
+ <output> zeta </output>\r
+ </ζ>\r
+ <η>\r
+ <output> eta </output>\r
+ </η>\r
+ <θ>\r
+ <output> theta </output>\r
+ </θ>\r
+ <ι>\r
+ <output> iota </output>\r
+ </ι>\r
+ <κ>\r
+ <output> kappa </output>\r
+ </κ>\r
+ <λ>\r
+ <output> lambda </output>\r
+ </λ>\r
+ <μ>\r
+ <output> mu </output>\r
+ </μ>\r
+ <ν>\r
+ <output> nu </output>\r
+ </ν>\r
+ <ξ>\r
+ <output> xi </output>\r
+ </ξ>\r
+ <π>\r
+ <output> %pi </output>\r
+ </π>\r
+ <ρ>\r
+ <output> rho </output>\r
+ </ρ>\r
+ <σ>\r
+ <output> sigma </output>\r
+ </σ>\r
+ <τ>\r
+ <output> tau </output>\r
+ </τ>\r
+ <υ>\r
+ <output> upsilon </output>\r
+ </υ>\r
+ <φ>\r
+ <output> phi </output>\r
+ </φ>\r
+ <χ>\r
+ <output> chi </output>\r
+ </χ>\r
+ <ψ>\r
+ <output> psi </output>\r
+ </ψ> \r
+ <ω>\r
+ <output> omega </output>\r
+ </ω>\r
+ \r
+</Syntax>\r
--- /dev/null
+2008.01.23 10:09 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\formats\Latex.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/formats Latex.xml\r
+2008.01.23 10:09 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\formats\Maple.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/formats Maple.xml\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\formats\MathML.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/formats MathML.xml\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\formats\Maxima.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/formats Maxima.xml\r
+2008.01.23 10:48 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\formats\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/formats WS_FTP.LOG\r
+2008.01.23 10:59 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\formats\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/formats WS_FTP.LOG\r
--- /dev/null
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\cz.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang cz.xml\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\de.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang de.xml\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\en.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang en.xml\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\es.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang es.xml\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\fr.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang fr.xml\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\nl.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang nl.xml\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\pl.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang pl.xml\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\ru.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang ru.xml\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\sv.xml --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang sv.xml\r
+2008.01.23 10:48 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang WS_FTP.LOG\r
+2008.01.23 10:59 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\applet\classes\lang\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/applet/classes/lang WS_FTP.LOG\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Document : ca.xml
+ Created on : 17 December 2007, 15:13
+ Author : Joan Queralt i Gil i Daniel Ureña Zafra
+ Description:
+ Versió catalana de la interfície de DragMath. Es pot, per tant millorar.
+-->
+
+<Language>
+
+ <!-- Error Messages -->
+ <ReadingFile>Error llegint el fitxer: Comproveu-ne la validesa</ReadingFile>
+ <ReadingFile2>Error carregant el fitxer amb format: </ReadingFile2>
+ <LoadingExp>Error carregant l'expressió desada</LoadingExp>
+ <SavingExp>Error desant l'expressió</SavingExp>
+ <Cut>No es pot retallar la selecció: </Cut>
+ <Copy>No es pot copiar la selecció: </Copy>
+ <Tree>No es pot mostrar l'arbre: </Tree>
+ <Action>No s'ha pogut completar l'acció: </Action>
+ <AddMatrix>No es pot afegir la Matriu a aquesta posició</AddMatrix>
+ <Operator>Manca un operador en aquesta posició</Operator>
+ <Argument>Manca un argument o operador en aquesta posició</Argument>
+ <Image>Error: Cannot export to image. Check internet connection and access to http://www.mathtran.org</Image>
+
+ <!-- Status Bar Messages -->
+ <ParseExp>L'expressió no pot ser analitzada</ParseExp>
+ <LoadExpression>DragMath - Escull una expressió per ser carregada</LoadExpression>
+ <SaveExpression>DragMath - Escull un lloc on desar l'expressió</SaveExpression>
+ <EnterRows>Introduïu el nombre de files de la matriu</EnterRows>
+ <EnterColumns>Introduïu el nombre de columnes de la matriu</EnterColumns>
+ <MatrixDim>Dimensions de la matriu</MatrixDim>
+ <NoCut>No hi ha res seleccionat per retallar</NoCut>
+ <NoPaste>No hi ha res per enganxar</NoPaste>
+ <NoBox>No hi ha cap quadre seleccionat per enganxar-hi</NoBox>
+ <NoCopy>No hi ha res seleccionat per copiar</NoCopy>
+ <Copied>Copiat</Copied>
+ <ReadingData>S'ha produït un error al llegir les dades de sortida</ReadingData>
+ <Clipboard>S'ha copiat l'expressió al porta-retalls</Clipboard>
+ <NoExpression>No hi ha cap expressió per convertir</NoExpression>
+ <NoFormat>Encara no s'ha carregat un fitxer amb format</NoFormat>
+ <ImageSize>Choose the image size 1-10 (Smallest-Largest)</ImageSize>
+
+ <!-- Tooltips for buttons -->
+ <Multiply>Multiplica</Multiply>
+ <Divide>Divideix</Divide>
+ <Add>Suma</Add>
+ <Subtract>Resta</Subtract>
+ <Comma>Coma</Comma>
+ <PlusMinus>Més-menys</PlusMinus>
+ <NotEqual>No es igual</NotEqual>
+ <SquareRoot>Arrel Quadrada</SquareRoot>
+ <NthRoot>Arrel n-éssima</NthRoot>
+ <Power>Superíndex</Power>
+ <Subscript>Subíndex</Subscript>
+ <Matrix>Matriu</Matrix>
+ <Integral>Integral</Integral>
+ <Differential>Diferencial</Differential>
+ <LessThan>Menor que</LessThan>
+ <GreaterThan>Major que</GreaterThan>
+ <LTEQ>Menor o igual que</LTEQ>
+ <GTEQ>Major o igual que</GTEQ>
+ <Equals>Igual</Equals>
+ <Union>Unió</Union>
+ <Intersection>Intersecció</Intersection>
+ <Subset>Subconjunt</Subset>
+ <SubsetEq>Subconjunt o igual que</SubsetEq>
+ <NSubset>No inclòs</NSubset>
+ <NSubsetEq>No inclòs o igual que</NSubsetEq>
+ <Sine>Sinus</Sine>
+ <Cosine>Cosinus</Cosine>
+ <Tangent>Tangent</Tangent>
+ <ArcSine>Arcsinus</ArcSine>
+ <ArcCosine>Arccosinus</ArcCosine>
+ <ArcTangent>Arctangent</ArcTangent>
+ <SineH>Sinus hiperbòlic</SineH>
+ <CosineH>Cosinus hiperbòlic</CosineH>
+ <TanH>Tangent hiperbòlica</TanH>
+ <ArcSineH>Invers del sinus hiperbòlic</ArcSineH>
+ <ArcCosineH>Invers del cosinus hiperbòlic</ArcCosineH>
+ <ArcTanH>Invers de la tangent hiperbòlica</ArcTanH>
+ <Logarithm>Logaritme</Logarithm>
+ <NaturalLogarithm>Logaritme neperià</NaturalLogarithm>
+ <Exp>Exponencial</Exp>
+ <UMinus>Menys</UMinus>
+ <BracketsRnd>Parèntesis</BracketsRnd>
+ <BracketsCurl>Claus</BracketsCurl>
+ <BracketsSq>Claudàtors</BracketsSq>
+ <Abs>Valor absolut</Abs>
+ <Infinity>Infinit</Infinity>
+ <GreekLetter>Lletra grega</GreekLetter>
+ <Factorial>Factorial</Factorial>
+ <Max>Màxim del conjunt</Max>
+ <Min>Mínim del conjunt</Min>
+ <Assignment>Assignació</Assignment>
+ <Function>Funció general</Function>
+ <Determinant>Determinant</Determinant>
+ <Trace>Traça</Trace>
+ <DefiniteIntegral>Integral definida</DefiniteIntegral>
+ <Product>Producte</Product>
+ <Sum>Suma</Sum>
+ <Limit>Límit</Limit>
+ <Evaluate>Avalua una expressió en un punt</Evaluate>
+ <LeftArrow>Fletxa esquerra</LeftArrow>
+ <RightArrow>Fletxa dreta</RightArrow>
+ <UpArrow>Fletxa amunt</UpArrow>
+ <DownArrow>Fletxa avall</DownArrow>
+ <LeftRightArrow>Fletxa esquerra-dreta</LeftRightArrow>
+ <LeftDblArrow>Fletxa doble esquerra</LeftDblArrow>
+ <RightDblArrow>Fletxa doble dreta</RightDblArrow>
+ <LeftRightDblArrow>Fletxa doble esquerra-dreta</LeftRightDblArrow>
+ <NorthEastArrow>Fletxa dreta-amunt</NorthEastArrow>
+ <SouthEastArrow>Fletxa dreta-avall</SouthEastArrow>
+ <NorthWestArrow>Fletxa esquerra-amun</NorthWestArrow>
+ <SouthWestArrow>Fletxa esquerra-avall</SouthWestArrow>
+ <Multiply2>Multiplica</Multiply2>
+ <Divide2>Divideix</Divide2>
+ <Equiv>Equivalència</Equiv>
+ <Exists>Existeix</Exists>
+ <ForAll>Per a tot</ForAll>
+ <IsIn>Pertany</IsIn>
+ <NotExists>No existeix</NotExists>
+ <NotIn>No pertany</NotIn>
+ <SimEq>Semblant</SimEq>
+ <Or>Unió Lògica</Or>
+ <And>Intersecció lògica</And>
+ <Not>Negació lògica</Not>
+ <PartialDifferential>Partial Differential</PartialDifferential>
+
+ <!-- Tooltips for command buttons -->
+ <OpenButton>Carrega un format personalitzat de sortida</OpenButton>
+ <SaveButton>Desar fórmula a un fitxer</SaveButton>
+ <ExportButton>Exportar l'expressió al porta-retalls</ExportButton>
+ <UndoButton>Desfés</UndoButton>
+ <RedoButton>Refés</RedoButton>
+ <CutButton>Retalla</CutButton>
+ <CopyButton>Còpia</CopyButton>
+ <PasteButton>Enganxa</PasteButton>
+ <ClearButton>Neteja tot l'àrea de treball</ClearButton>
+ <SelectButton>Selecciona tot l'àrea de treball</SelectButton>
+ <LoadFormatButton>Carrega un fitxer amb format exportat</LoadFormatButton>
+ <LoadLangButton>Carrega un fitxer d'idioma</LoadLangButton>
+ <ShowTreeButton>Mostra l'arbre de l'expressió</ShowTreeButton>
+ <OutlineButton>Mostra el contorn</OutlineButton>
+ <OnlineHelpButton>Carrega documents d'ajuda al navegador</OnlineHelpButton>
+ <AboutButton>Quant a DragMath</AboutButton>
+
+ <!-- Menu -->
+ <FileMenu>Fitxer</FileMenu>
+ <OpenMenu>Obrir...</OpenMenu>
+ <SaveAsMenu>Anomenar i desar...</SaveAsMenu>
+ <ExportMenu>Exportar al porta-retalls</ExportMenu>
+ <ImageMenu>Export to image</ImageMenu>
+
+ <EditMenu>Edició</EditMenu>
+ <UndoMenu>Desfer</UndoMenu>
+ <RedoMenu>Refer</RedoMenu>
+ <CutMenu>Retallar</CutMenu>
+ <CopyMenu>Còpia</CopyMenu>
+ <PasteMenu>Enganxa</PasteMenu>
+ <ClearMenu>Neteja tot</ClearMenu>
+ <SelectMenu>Seleccionar tot</SelectMenu>
+
+ <OptionsMenu>Opcions</OptionsMenu>
+ <SetExportMenu>Format d'Exportació</SetExportMenu>
+ <SetLanguageMenu>Idioma</SetLanguageMenu>
+
+ <HelpMenu>Ajuda</HelpMenu>
+ <DebugMenu>Depuració</DebugMenu>
+ <TreeMenu>Mostrar arbre de l'expressió</TreeMenu>
+ <OutlineMenu>Mostrar contorn</OutlineMenu>
+ <OnlineHelpMenu>Ajuda en línia</OnlineHelpMenu>
+ <AboutMenu>Quant a DragMath</AboutMenu>
+
+</Language>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<!--\r
+ Document : cz.xml\r
+ Created on : 30 July 2007, 15:43\r
+ Author : Alex Billingsley \r
+ Translator : Miroslava Tihlaříková\r
+ Description:\r
+ Purpose of the document follows.\r
+-->\r
+\r
+<Language>\r
+ \r
+ <!-- Error Messages --> \r
+ <ReadingFile>Chyba při načítání souboru s formátem</ReadingFile> \r
+ <ReadingFile2>Chyba při načítání souboru s formátem</ReadingFile2> \r
+ <LoadingExp>Chyba při načítání uložených výrazů</LoadingExp>\r
+ <SavingExp>Chyba při ukládání výrazů</SavingExp>\r
+ <Cut>Nelze vyjmout výběr:</Cut>\r
+ <Copy>Nelze zkopírovat výrěr:</Copy>\r
+ <Tree>Nelze zobrazit strom:</Tree>\r
+ <Action>Akce nemůže být dokončena:</Action>\r
+ <AddMatrix>Sem nelze přidat matici</AddMatrix>\r
+ <Operator>Chybí operátor</Operator>\r
+ <Argument>Chybí proměnná či operátor (na vhodné pozici)</Argument>\r
+ <Image>Error: Cannot export to image. Check internet connection and access to http://www.mathtran.org</Image>\r
+ \r
+ <!-- Status Bar Messages --> \r
+ <ParseExp>Výraz nelze rozpoznat</ParseExp>\r
+ <LoadExpression>DragMath - Vyberte soubor s výrazem k načtení</LoadExpression>\r
+ <SaveExpression>DragMath - Vyberte umístění kam uložit výraz</SaveExpression>\r
+ <EnterRows>Zadejte počet řádků matice</EnterRows>\r
+ <EnterColumns>Zadejte počet sloupců matice</EnterColumns>\r
+ <MatrixDim>Rozměr matice</MatrixDim>\r
+ <NoCut>Nebylo vybráno nic na vyjmutí</NoCut>\r
+ <NoPaste>Nic na vložení</NoPaste>\r
+ <NoBox>Není vybráno políčko kam vkládat</NoBox>\r
+ <NoCopy>Není nic vybráno ke kopírování</NoCopy>\r
+ <Copied>Zkopírováno</Copied>\r
+ <ReadingData>Cyba při čtení výstupních dat</ReadingData>\r
+ <Clipboard>: výrazy uloženy do schránky</Clipboard>\r
+ <NoExpression>Žádné výrazy na konvertování</NoExpression>\r
+ <NoFormat>Ještě nebyl načten soubor s definicí formátu</NoFormat>\r
+ <ImageSize>Choose the image size 1-10 (Smallest-Largest)</ImageSize>\r
+ \r
+ <!-- Tooltips for buttons -->\r
+ <Multiply>Součin</Multiply>\r
+ <Divide>Podíl</Divide> \r
+ <Add>Součet</Add> \r
+ <Subtract>Rozdíl</Subtract> \r
+ <Comma>Desetinná čárka</Comma> \r
+ <PlusMinus>Plus-Minus</PlusMinus>\r
+ <SquareRoot>Druhá odmocnina</SquareRoot> \r
+ <NthRoot>N-tá odmocnina</NthRoot> \r
+ <Power>Horní index nebo mocnina</Power> \r
+ <Subscript>Dolní index</Subscript> \r
+ <Matrix>Matice</Matrix> \r
+ <Integral>Integrál</Integral>\r
+ <Differential>Derivace</Differential>\r
+ <LessThan>Menší než</LessThan> \r
+ <GreaterThan>Větší než</GreaterThan> \r
+ <LTEQ>Menší nebo rovno</LTEQ> \r
+ <GTEQ>Větší nebo rovno</GTEQ>\r
+ <Equals>Rovno</Equals>\r
+ <NotEqual>Není rovno</NotEqual> \r
+ <Union>Sjednocení</Union> \r
+ <Intersection>Průnik</Intersection> \r
+ <Subset>Vlastní podmnožina</Subset> \r
+ <SubsetEq>Podmnožina</SubsetEq> \r
+ <NSubset>Není vlastní podmnožinou</NSubset> \r
+ <NSubsetEq>Není podmnožinou</NSubsetEq> \r
+ <Sine>Sinus</Sine> \r
+ <Cosine>Kosinus</Cosine> \r
+ <Tangent>Tangens</Tangent> \r
+ <ArcSine>Arkus sinus</ArcSine> \r
+ <ArcCosine>Arkus kosinus</ArcCosine> \r
+ <ArcTangent>Arkus tangens</ArcTangent> \r
+ <SineH>Hyperbolický sinus</SineH> \r
+ <CosineH>Hyperbolický kosinus</CosineH> \r
+ <TanH>Hyperbolický tangens</TanH> \r
+ <ArcSineH>Hyperbolický arkus sinus</ArcSineH> \r
+ <ArcCosineH>Hyperbolický arkus kosinus</ArcCosineH> \r
+ <ArcTanH>Hyperbolický arkus tangens</ArcTanH> \r
+ <Logarithm>Logaritmus</Logarithm>\r
+ <NaturalLogarithm>Přirozený logaritmus</NaturalLogarithm> \r
+ <Exp>Exponenciální funkce</Exp> \r
+ <UMinus>Mínus</UMinus> \r
+ <BracketsRnd>Kulaté závorky</BracketsRnd> \r
+ <BracketsCurl>Složené závorky</BracketsCurl> \r
+ <BracketsSq>Hranaté závorky</BracketsSq> \r
+ <Abs>Absolutní hodnota</Abs> \r
+ <Infinity>Nekonečno</Infinity>\r
+ <GreekLetter>Řecká písmena</GreekLetter> \r
+ <Factorial>Faktoriál</Factorial> \r
+ <Max>Maximum množiny </Max>\r
+ <Min>Minimum množiny</Min> \r
+ <Assignment>Přiřazení</Assignment>\r
+ <Function>Uživatelem definovaná funkce</Function> \r
+ <Determinant>Determinant</Determinant>\r
+ <Trace>Stopa</Trace>\r
+ <DefiniteIntegral>Určitý integrál</DefiniteIntegral>\r
+ <Product>Součin</Product>\r
+ <Sum>Suma</Sum>\r
+ <Limit>Limita</Limit>\r
+ <Evaluate>Hodnota výrazu v bodě</Evaluate>\r
+ <LeftArrow>Left arrow</LeftArrow> \r
+ <RightArrow>Right arrow</RightArrow> \r
+ <UpArrow>Up arrow</UpArrow> \r
+ <DownArrow>Down arrow</DownArrow> \r
+ <LeftDblArrow>Left double arrow</LeftDblArrow> \r
+ <RightDblArrow>Right double arrow</RightDblArrow> \r
+ <LeftRightArrow>Left-Right arrow</LeftRightArrow> \r
+ <LeftRightDblArrow>Left-Right double arrow</LeftRightDblArrow> \r
+ <NorthEastArrow>North-East arrow</NorthEastArrow> \r
+ <SouthEastArrow>South-East arrow</SouthEastArrow> \r
+ <NorthWestArrow>North-West arrow</NorthWestArrow> \r
+ <SouthWestArrow>South-West arrow</SouthWestArrow>\r
+ <Multiply2>Multiplication</Multiply2>\r
+ <Divide2>Division</Divide2>\r
+ <Equiv>Equivalence</Equiv>\r
+ <Exists>There Exists</Exists>\r
+ <ForAll>For All</ForAll>\r
+ <IsIn>Element Of</IsIn>\r
+ <NotExists>There Does Not Exist</NotExists>\r
+ <NotIn>Not An Element Of</NotIn>\r
+ <SimEq>Asymptotically Equivalent To</SimEq>\r
+ <Or>Or</Or>\r
+ <And>And</And>\r
+ <Not>Not</Not>\r
+ <PartialDifferential>Partial Differential</PartialDifferential>\r
+ \r
+ \r
+ <!-- Tooltips for command buttons -->\r
+ <OpenButton>Načíst výraz ze souboru</OpenButton>\r
+ <SaveButton>Uložit výraz do souboru</SaveButton>\r
+ <ExportButton>Exportovat výraz do schránky</ExportButton>\r
+ <UndoButton>Zpět</UndoButton>\r
+ <RedoButton>Opakovat</RedoButton>\r
+ <CutButton>Vyjmout</CutButton>\r
+ <CopyButton>Zkopírovat</CopyButton>\r
+ <PasteButton>Vložit</PasteButton>\r
+ <ClearButton>Vyčistit pracovní plochu</ClearButton>\r
+ <SelectButton>Vybrat celou pracovní plochu</SelectButton>\r
+ <LoadFormatButton>Nahrát formát pro export</LoadFormatButton>\r
+ <LoadLangButton>Nahrát soubor s jazykovym nastavením</LoadLangButton>\r
+ <ShowTreeButton>Zobrazit stromovou strukturu výrazů</ShowTreeButton>\r
+ <OutlineButton>Zobrazit obrysy výrazů na pracovní ploše</OutlineButton>\r
+ <OnlineHelpButton>Nahrát nápovědu ve webovém prohlížeči</OnlineHelpButton>\r
+ <AboutButton>O programu</AboutButton>\r
+ \r
+ <!-- Menu -->\r
+ <FileMenu>Soubor</FileMenu>\r
+ <OpenMenu>Otevřít...</OpenMenu>\r
+ <SaveAsMenu>Uložit jako...</SaveAsMenu>\r
+ <ExportMenu>Exportovat do schránky</ExportMenu>\r
+ <ImageMenu>Export to image</ImageMenu>\r
+ \r
+ <EditMenu>Změnit</EditMenu>\r
+ <UndoMenu>Zpět</UndoMenu>\r
+ <RedoMenu>Opakovat</RedoMenu>\r
+ <CutMenu>Vyjmout</CutMenu>\r
+ <CopyMenu>Zkopírovat</CopyMenu>\r
+ <PasteMenu>Vložit</PasteMenu>\r
+ <ClearMenu>Vyčistit pracovní plochu</ClearMenu>\r
+ <SelectMenu>Vybrat vše</SelectMenu>\r
+ \r
+ <OptionsMenu>Možnosti</OptionsMenu>\r
+ <SetExportMenu>Nastavit formát pro export</SetExportMenu>\r
+ <SetLanguageMenu>Nastavit jazyk</SetLanguageMenu>\r
+ \r
+ <HelpMenu>Nápověda</HelpMenu>\r
+ <DebugMenu>Ladění</DebugMenu>\r
+ <TreeMenu>Zobrazit strukturu vzorce</TreeMenu>\r
+ <OutlineMenu>Zobrazit výstup</OutlineMenu>\r
+ <OnlineHelpMenu>Online nápověda</OnlineHelpMenu>\r
+ <AboutMenu>O programu</AboutMenu>\r
+ \r
+</Language>\r
+\r
+\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<!--\r
+ Document : de.xml\r
+ Created on : 02 January 2008, 22:00\r
+ Author : Andy Tagliani e-instructor.de\r
+ Description: Purpose of the document follows.\r
+-->\r
+\r
+<Language>\r
+ \r
+ <!-- Error Messages --> \r
+ <ReadingFile>Fehler beim Lesen des Dateiformats: Bitte auf Gültigkeit überprüfen</ReadingFile> \r
+ <ReadingFile2>Fehler beim Laden der Datei: </ReadingFile2> \r
+ <LoadingExp>Fehler beim Laden der Erweiterung</LoadingExp>\r
+ <SavingExp>Fehler beim Speichern der Erweiterung</SavingExp>\r
+ <Cut>Ausschneiden der Auswahl nicht möglich: </Cut>\r
+ <Copy>Kopieren der Auswahl nicht möglich: </Copy>\r
+ <Tree>Verzeichnisbaum kann nicht angezeigt werden: </Tree>\r
+ <Action>Aktion konnte nicht fertiggestellt werden: </Action>\r
+ <AddMatrix>Matrix konnte an der Stelle nicht hinzugefügt werden</AddMatrix>\r
+ <Operator>Operator fehlt an Position </Operator>\r
+ <Argument>Argument des Operators fehlt an Position </Argument>\r
+ <Image>Error: Cannot export to image. Check internet connection and access to http://www.mathtran.org</Image>\r
+ \r
+ <!-- Status Bar Messages --> \r
+ <ParseExp>Ausdruck kann mathematisch nicht bestimmt werden</ParseExp>\r
+ <LoadExpression>DragMath - Wählen Sie eine Datei im DragMath-Format zum Laden</LoadExpression>\r
+ <SaveExpression>DragMath - Wählen Sie einen Speicherort zum Speichern der Datei im DragMath-Format</SaveExpression>\r
+ <EnterRows>Geben Sie die Anzahl der Reihen der Matrix ein</EnterRows>\r
+ <EnterColumns>Geben Sie die Anzahl der Spalten der Matrix ein</EnterColumns>\r
+ <MatrixDim>Dimension der Matrix</MatrixDim>\r
+ <NoCut>Nichts zum Ausschneiden gewählt</NoCut>\r
+ <NoPaste>Nichts zum Kopieren gewählt</NoPaste>\r
+ <NoBox>Keine Box zum Hineinkopieren gewählt</NoBox>\r
+ <NoCopy>Nichts zum Kopieren ausgewählt</NoCopy>\r
+ <Copied>Kopiert</Copied>\r
+ <ReadingData>Fehler beim Lesen des Ausgabeformats</ReadingData>\r
+ <Clipboard>Format wurde in die Zwischenablage kopiert</Clipboard>\r
+ <NoExpression>Kein Format zum Konvertieren</NoExpression>\r
+ <NoFormat>Es wurde kein Dateiformat geladen</NoFormat>\r
+ <ImageSize>Choose the image size 1-10 (Smallest-Largest)</ImageSize>\r
+ \r
+ <!-- Tooltips for math buttons -->\r
+ <Multiply>Multiplikation</Multiply>\r
+ <Divide>Division</Divide> \r
+ <Add>Addition</Add> \r
+ <Subtract>Subtraktion</Subtract> \r
+ <Comma>Komma</Comma>\r
+ <PlusMinus>Plus-Minus</PlusMinus>\r
+ <SquareRoot>Quadratwurzel</SquareRoot> \r
+ <NthRoot>n-te Wurzel</NthRoot> \r
+ <Power>Hochgestellt</Power> \r
+ <Subscript>Tiefgestellt</Subscript> \r
+ <Matrix>Matrix</Matrix> \r
+ <Integral>Integration</Integral>\r
+ <Differential>Differentation</Differential>\r
+ <LessThan>kleiner als</LessThan> \r
+ <GreaterThan>größer als</GreaterThan> \r
+ <LTEQ>kleiner als oder gleich</LTEQ> \r
+ <GTEQ>größer als oder gleich</GTEQ>\r
+ <Equals>gleich</Equals>\r
+ <NotEqual>ungleich</NotEqual> \r
+ <Union>Vereinigung</Union> \r
+ <Intersection>Durchschnitt</Intersection> \r
+ <Subset>Teilmenge</Subset> \r
+ <SubsetEq>Echte Teilmenge</SubsetEq> \r
+ <NSubset>Keine Teilmenge</NSubset> \r
+ <NSubsetEq>Keine echte Teilmenge</NSubsetEq> \r
+ <Sine>Sinus</Sine> \r
+ <Cosine>Kosinus</Cosine> \r
+ <Tangent>Tangens</Tangent> \r
+ <ArcSine>Arkusinus</ArcSine> \r
+ <ArcCosine>Arkuskosinus</ArcCosine> \r
+ <ArcTangent>Arkustangens</ArcTangent> \r
+ <SineH>Sinus Hyperbolicus</SineH> \r
+ <CosineH>Kosinus Hyperbolicus</CosineH> \r
+ <TanH>Tangens Hyperbolicus</TanH> \r
+ <ArcSineH>Areasinus Hyperbolicus</ArcSineH> \r
+ <ArcCosineH>Areakosinus Hyperbolicus</ArcCosineH> \r
+ <ArcTanH>Areatangens Hyperbolicus</ArcTanH> \r
+ <Logarithm>Logarithmus</Logarithm>\r
+ <NaturalLogarithm>Natürlicher Logarithmus</NaturalLogarithm> \r
+ <Exp>Exponentialfunktion</Exp> \r
+ <UMinus>Minus</UMinus> \r
+ <BracketsRnd>Runde Klammern</BracketsRnd> \r
+ <BracketsCurl>Geschwungene Klammern</BracketsCurl> \r
+ <BracketsSq>Eckige Klammern</BracketsSq> \r
+ <Abs>Betrag</Abs> \r
+ <Infinity>Unendlich</Infinity>\r
+ <GreekLetter>Griechische Buchstaben</GreekLetter> \r
+ <Factorial>Faktorisieren</Factorial> \r
+ <Max>Maximum</Max> \r
+ <Min>Minimum</Min> \r
+ <Assignment>Aufgabe</Assignment>\r
+ <Function>Unbekannte Funktion</Function> \r
+ <Determinant>Determinante</Determinant>\r
+ <Trace>Spur</Trace>\r
+ <DefiniteIntegral>Bestimmtes Integral</DefiniteIntegral>\r
+ <Product>Produkt</Product>\r
+ <Sum>Summe</Sum>\r
+ <Limit>Grenzwert</Limit>\r
+ <Evaluate>Ausdruck auswerten</Evaluate>\r
+ <LeftArrow>Links arrow</LeftArrow> \r
+ <RightArrow>Recht arrow</RightArrow> \r
+ <UpArrow>Bis arrow</UpArrow> \r
+ <DownArrow>Down arrow</DownArrow> \r
+ <LeftDblArrow>Links doppel arrow</LeftDblArrow> \r
+ <RightDblArrow>Recht doppel arrow</RightDblArrow> \r
+ <LeftRightArrow>Links-Recht arrow</LeftRightArrow> \r
+ <LeftRightDblArrow>Links-Recht doppel arrow</LeftRightDblArrow> \r
+ <NorthEastArrow>Nord-Ost Pfeil</NorthEastArrow> \r
+ <SouthEastArrow>Süd-Ost Pfeil</SouthEastArrow> \r
+ <NorthWestArrow>Nord-West Pfeil</NorthWestArrow> \r
+ <SouthWestArrow>Süd-West Pfeil</SouthWestArrow>\r
+ <Multiply2>Multiplikation</Multiply2>\r
+ <Divide2>Division</Divide2>\r
+ <Equiv>Gleichwertigkeit</Equiv>\r
+ <Exists>Vorhanden</Exists>\r
+ <ForAll>Für alle</ForAll>\r
+ <IsIn>Ist in</IsIn>\r
+ <NotExists>Nicht vorhanden</NotExists>\r
+ <NotIn>Nicht in</NotIn>\r
+ <SimEq>Asymptotisch äquivalent zu</SimEq>\r
+ <Or>Oder</Or>\r
+ <And>Und</And>\r
+ <Not>Nicht</Not>\r
+ <PartialDifferential>Partial Differential</PartialDifferential>\r
+ \r
+ <!-- Tooltips for command buttons -->\r
+ <OpenButton>Lade Format von Datei</OpenButton>\r
+ <SaveButton>Speichere Format als Datei</SaveButton>\r
+ <ExportButton>Exportiere Format in die Zwischenablage</ExportButton>\r
+ <UndoButton>Rückgägig</UndoButton>\r
+ <RedoButton>Wiederholen</RedoButton>\r
+ <CutButton>Ausschneiden</CutButton>\r
+ <CopyButton>Kopieren</CopyButton>\r
+ <PasteButton>Einfügen</PasteButton>\r
+ <ClearButton>Leere das gesamte Arbeitsfeld</ClearButton>\r
+ <SelectButton>Wähle das gesamte Arbeitsfeld</SelectButton>\r
+ <LoadFormatButton>Lade eine Formatdatei</LoadFormatButton>\r
+ <LoadLangButton>Lade eine Sprachdatei</LoadLangButton>\r
+ <ShowTreeButton>Zeige Baumstruktur eines Ausdrucks</ShowTreeButton>\r
+ <OutlineButton>Zeige außerhalb des Objektes im Arbeitsfeld</OutlineButton>\r
+ <OnlineHelpButton>Lade Hilfedateien im Browser</OnlineHelpButton>\r
+ <AboutButton>Über DragMath</AboutButton>\r
+ \r
+ <!-- Menu -->\r
+ <FileMenu>Datei</FileMenu>\r
+ <OpenMenu>Öffnen...</OpenMenu>\r
+ <SaveAsMenu>Speichern als...</SaveAsMenu>\r
+ <ExportMenu>Exportiere in die Zwischenablage</ExportMenu>\r
+ <ImageMenu>Export to image</ImageMenu>\r
+ \r
+ <EditMenu>Bearbeiten</EditMenu>\r
+ <UndoMenu>Rückgängig</UndoMenu>\r
+ <RedoMenu>Wiederholen</RedoMenu>\r
+ <CutMenu>Ausschneiden</CutMenu>\r
+ <CopyMenu>Kopieren</CopyMenu>\r
+ <PasteMenu>Einfügen</PasteMenu>\r
+ <ClearMenu>Arbeitsfeld leeren</ClearMenu>\r
+ <SelectMenu>Alle auswählen</SelectMenu>\r
+ \r
+ <OptionsMenu>Optionen</OptionsMenu>\r
+ <SetExportMenu>Export-Format einstellen</SetExportMenu>\r
+ <SetLanguageMenu>Sprache einstellen</SetLanguageMenu>\r
+ \r
+ <HelpMenu>Hilfe</HelpMenu>\r
+ <DebugMenu>Debug</DebugMenu>\r
+ <TreeMenu>Zeige Ausdruck in Baumstruktur</TreeMenu>\r
+ <OutlineMenu>Zeige außerhalb</OutlineMenu>\r
+ <OnlineHelpMenu>Online-Hilfe</OnlineHelpMenu>\r
+ <AboutMenu>Über DragMath</AboutMenu>\r
+ \r
+</Language>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<!--\r
+ Document : en.xml\r
+ Created on : 30 July 2007, 15:43\r
+ Author : Alex Billingsley\r
+ Description:\r
+ Purpose of the document follows.\r
+-->\r
+\r
+<Language>\r
+ \r
+ <!-- Error Messages --> \r
+ <ReadingFile>Error reading format file: Check file is valid</ReadingFile> \r
+ <ReadingFile2>Error loading format file: </ReadingFile2> \r
+ <LoadingExp>Error loading saved expression</LoadingExp>\r
+ <SavingExp>Error saving expression</SavingExp>\r
+ <Cut>Cannot cut selection: </Cut>\r
+ <Copy>Cannot copy selection: </Copy>\r
+ <Tree>Cannot display tree: </Tree>\r
+ <Action>Action could not be completed: </Action>\r
+ <AddMatrix>Cannot add Matrix at this location</AddMatrix>\r
+ <Operator>Operator missing at position </Operator>\r
+ <Argument>Argument of operator missing at position </Argument>\r
+ <Image>Error: Cannot export to image. Check internet connection and access to http://www.mathtran.org</Image>\r
+ \r
+ <!-- Status Bar Messages --> \r
+ <ParseExp>Expression could not be parsed</ParseExp>\r
+ <LoadExpression>DragMath - Choose an expression file to load</LoadExpression>\r
+ <SaveExpression>DragMath - Choose the location to save the expression</SaveExpression>\r
+ <EnterRows>Enter number of rows of matrix</EnterRows>\r
+ <EnterColumns>Enter number of columns of matrix</EnterColumns>\r
+ <MatrixDim>Matrix Dimensions</MatrixDim>\r
+ <NoCut>Nothing selected to cut</NoCut>\r
+ <NoPaste>Nothing to paste</NoPaste>\r
+ <NoBox>No box selected to paste into</NoBox>\r
+ <NoCopy>Nothing selected to copy</NoCopy>\r
+ <Copied>Copied</Copied>\r
+ <ReadingData>Error reading output data</ReadingData>\r
+ <Clipboard>Expression exported to clipboard</Clipboard>\r
+ <NoExpression>No expression to convert</NoExpression>\r
+ <NoFormat>No format file has been loaded yet</NoFormat>\r
+ <ImageSize>Choose the image size 1-10 (Smallest-Largest)</ImageSize>\r
+ \r
+ <!-- Tooltips for math buttons -->\r
+ <Multiply>Multiplication</Multiply>\r
+ <Divide>Division</Divide> \r
+ <Add>Addition</Add> \r
+ <Subtract>Subtraction</Subtract> \r
+ <Comma>Comma</Comma>\r
+ <PlusMinus>Plus-Minus</PlusMinus>\r
+ <SquareRoot>Square Root</SquareRoot> \r
+ <NthRoot>N-th Root</NthRoot> \r
+ <Power>Superscript</Power> \r
+ <Subscript>Subscript</Subscript> \r
+ <Matrix>Matrix</Matrix> \r
+ <Integral>Integration</Integral>\r
+ <Differential>Differentiation</Differential>\r
+ <LessThan>Less Than</LessThan> \r
+ <GreaterThan>Greater Than</GreaterThan> \r
+ <LTEQ>Less Than or Equal To</LTEQ> \r
+ <GTEQ>Greater Than or Equal To</GTEQ>\r
+ <Equals>Equals</Equals>\r
+ <NotEqual>Not Equal</NotEqual> \r
+ <Union>Union</Union> \r
+ <Intersection>Intersection</Intersection> \r
+ <Subset>Subset</Subset> \r
+ <SubsetEq>Subset or Equal To</SubsetEq> \r
+ <NSubset>Not Subset</NSubset> \r
+ <NSubsetEq>Not Subset or Equal To</NSubsetEq> \r
+ <Sine>Sine</Sine> \r
+ <Cosine>Cosine</Cosine> \r
+ <Tangent>Tangent</Tangent> \r
+ <ArcSine>Inverse Sine</ArcSine> \r
+ <ArcCosine>Inverse Cosine</ArcCosine> \r
+ <ArcTangent>Inverse Tangent</ArcTangent> \r
+ <SineH>Hyperbolic Sine</SineH> \r
+ <CosineH>Hyperbolic Cosine</CosineH> \r
+ <TanH>Hyperbolic Tangent</TanH> \r
+ <ArcSineH>Inverse Hyperbolic Sine</ArcSineH> \r
+ <ArcCosineH>Inverse Hyperbolic Cosine</ArcCosineH> \r
+ <ArcTanH>Inverse Hyperbolic Tangent</ArcTanH> \r
+ <Logarithm>Logarithm</Logarithm>\r
+ <NaturalLogarithm>Natural Logarithm</NaturalLogarithm> \r
+ <Exp>Exponential Function</Exp> \r
+ <UMinus>Minus</UMinus> \r
+ <BracketsRnd>Round Brackets</BracketsRnd> \r
+ <BracketsCurl>Curly Brackets</BracketsCurl> \r
+ <BracketsSq>Square Brackets</BracketsSq> \r
+ <Abs>Absolute Value</Abs> \r
+ <Infinity>Infinity</Infinity>\r
+ <GreekLetter>Greek letter</GreekLetter> \r
+ <Factorial>Factorial</Factorial> \r
+ <Max>Maximum of a set</Max> \r
+ <Min>Minimum of a set</Min> \r
+ <Assignment>Assignment</Assignment>\r
+ <Function>Unknown function</Function> \r
+ <Determinant>Determinant</Determinant>\r
+ <Trace>Trace</Trace>\r
+ <DefiniteIntegral>Definite Integral</DefiniteIntegral>\r
+ <Product>Product</Product>\r
+ <Sum>Sum</Sum>\r
+ <Limit>Limit</Limit>\r
+ <Evaluate>Evaluate an expression at a point</Evaluate>\r
+ <LeftArrow>Left arrow</LeftArrow> \r
+ <RightArrow>Right arrow</RightArrow> \r
+ <UpArrow>Up arrow</UpArrow> \r
+ <DownArrow>Down arrow</DownArrow> \r
+ <LeftDblArrow>Left double arrow</LeftDblArrow> \r
+ <RightDblArrow>Right double arrow</RightDblArrow> \r
+ <LeftRightArrow>Left-Right arrow</LeftRightArrow> \r
+ <LeftRightDblArrow>Left-Right double arrow</LeftRightDblArrow> \r
+ <NorthEastArrow>North-East arrow</NorthEastArrow> \r
+ <SouthEastArrow>South-East arrow</SouthEastArrow> \r
+ <NorthWestArrow>North-West arrow</NorthWestArrow> \r
+ <SouthWestArrow>South-West arrow</SouthWestArrow>\r
+ <Multiply2>Multiplication</Multiply2>\r
+ <Divide2>Division</Divide2>\r
+ <Equiv>Equivalence</Equiv>\r
+ <Exists>There Exists</Exists>\r
+ <ForAll>For All</ForAll>\r
+ <IsIn>Element Of</IsIn>\r
+ <NotExists>There Does Not Exist</NotExists>\r
+ <NotIn>Not An Element Of</NotIn>\r
+ <SimEq>Asymptotically Equivalent To</SimEq>\r
+ <Or>Or</Or>\r
+ <And>And</And>\r
+ <Not>Not</Not>\r
+ <PartialDifferential>Partial Differential</PartialDifferential>\r
+ \r
+ \r
+ <!-- Tooltips for command buttons -->\r
+ <OpenButton>Load expression from file</OpenButton>\r
+ <SaveButton>Save expression to file</SaveButton>\r
+ <ExportButton>Export expression to clipboard</ExportButton>\r
+ <UndoButton>Undo</UndoButton>\r
+ <RedoButton>Redo</RedoButton>\r
+ <CutButton>Cut</CutButton>\r
+ <CopyButton>Copy</CopyButton>\r
+ <PasteButton>Paste</PasteButton>\r
+ <ClearButton>Clear the entire workspace</ClearButton>\r
+ <SelectButton>Select the entire workspace</SelectButton>\r
+ <LoadFormatButton>Load an export format file</LoadFormatButton>\r
+ <LoadLangButton>Load a language file</LoadLangButton>\r
+ <ShowTreeButton>Show tree structure of expression</ShowTreeButton>\r
+ <OutlineButton>Display outline of objects on workspace</OutlineButton>\r
+ <OnlineHelpButton>Loads help documents in web browser</OnlineHelpButton>\r
+ <AboutButton>About DragMath</AboutButton>\r
+ \r
+ <!-- Menu -->\r
+ <FileMenu>File</FileMenu>\r
+ <OpenMenu>Open...</OpenMenu>\r
+ <SaveAsMenu>Save As...</SaveAsMenu>\r
+ <ExportMenu>Export to clipboard</ExportMenu>\r
+ <ImageMenu>Export to image</ImageMenu>\r
+ \r
+ <EditMenu>Edit</EditMenu>\r
+ <UndoMenu>Undo</UndoMenu>\r
+ <RedoMenu>Redo</RedoMenu>\r
+ <CutMenu>Cut</CutMenu>\r
+ <CopyMenu>Copy</CopyMenu>\r
+ <PasteMenu>Paste</PasteMenu>\r
+ <ClearMenu>Clear Workspace</ClearMenu>\r
+ <SelectMenu>Select All</SelectMenu>\r
+ \r
+ <OptionsMenu>Options</OptionsMenu>\r
+ <SetExportMenu>Set export format</SetExportMenu>\r
+ <SetLanguageMenu>Set language</SetLanguageMenu>\r
+ \r
+ <HelpMenu>Help</HelpMenu>\r
+ <DebugMenu>Debug</DebugMenu>\r
+ <TreeMenu>Show expression tree</TreeMenu>\r
+ <OutlineMenu>Show outline</OutlineMenu>\r
+ <OnlineHelpMenu>Online Help</OnlineHelpMenu>\r
+ <AboutMenu>About DragMath</AboutMenu>\r
+ \r
+</Language>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<!--\r
+ Document : es.xml \r
+ Created on : 12 December 2007, 9:36 \r
+ Author : Francisco Rivas <taken2k4@gmail.com> \r
+ Description: \r
+ Purpose of the document follows.\r
+-->\r
+\r
+<Language>\r
+ \r
+ <!-- Error Messages --> \r
+ <ReadingFile>Error leyendo el archivo: Verifique archivo</ReadingFile> \r
+ <ReadingFile2>Error cargando el archivo con formato: </ReadingFile2> \r
+ <LoadingExp>Error cargando expresión guardada</LoadingExp>\r
+ <SavingExp>Error guardando expresión</SavingExp>\r
+ <Cut>No se puede cortar selección: </Cut>\r
+ <Copy>No se puede copiar selección: </Copy>\r
+ <Tree>No se puede mostrar el árbol: </Tree>\r
+ <Action>Acción no puede ser completada: </Action>\r
+ <AddMatrix>No se puede agregar una matriz en este lugar</AddMatrix>\r
+ <Operator>Operador no encontrado en esta posición </Operator>\r
+ <Argument>Argumento del operador no encontrado </Argument>\r
+ <Image>Error: Cannot export to image. Check internet connection and access to http://www.mathtran.org</Image>\r
+ \r
+ <!-- Status Bar Messages --> \r
+ <ParseExp>Expresión no puede ser enviada</ParseExp>\r
+ <LoadExpression>DragMath - Seleccione un archivo de expresiones</LoadExpression>\r
+ <SaveExpression>DragMath - ¿Dónde desea guardar el archivo?</SaveExpression>\r
+ <EnterRows>Inserte el número de filas de la matriz</EnterRows>\r
+ <EnterColumns>Inserte el número de columnas de la matriz</EnterColumns>\r
+ <MatrixDim>Dimensiones de la matriz</MatrixDim>\r
+ <NoCut>No ha seleccionado nada para cortar</NoCut>\r
+ <NoPaste>Nada para pegar</NoPaste>\r
+ <NoBox>No ha seleccionado sitio para pegar</NoBox>\r
+ <NoCopy>No ha seleccionado nada para copiar</NoCopy>\r
+ <Copied>Copiado</Copied>\r
+ <ReadingData>Error leyendo datos de salida</ReadingData>\r
+ <Clipboard>Expresión exportada al portapapeles</Clipboard>\r
+ <NoExpression>No ha seleccionado expresión para convertir</NoExpression>\r
+ <NoFormat>No ha cargado un archivo con formato aún</NoFormat>\r
+ <ImageSize>Choose the image size 1-10 (Smallest-Largest)</ImageSize>\r
+ \r
+ <!-- Tooltips for math buttons -->\r
+ <Multiply>Multiplicación</Multiply>\r
+ <Divide>Fracción</Divide> \r
+ <Add>Adición</Add> \r
+ <Subtract>Sustracción</Subtract> \r
+ <Comma>Coma</Comma>\r
+ <PlusMinus>Mas-Menos</PlusMinus>\r
+ <SquareRoot>Raíz Cuadrada</SquareRoot> \r
+ <NthRoot>N-ésima Raíz</NthRoot> \r
+ <Power>SuperIndice</Power> \r
+ <Subscript>SubIndice</Subscript> \r
+ <Matrix>Matriz</Matrix> \r
+ <Integral>Integración</Integral>\r
+ <Differential>Diferenciación</Differential>\r
+ <LessThan>Menor que</LessThan> \r
+ <GreaterThan>Mayor que</GreaterThan> \r
+ <LTEQ>Menor o Igual que</LTEQ> \r
+ <GTEQ>Mayor o Igual que</GTEQ>\r
+ <Equals>Igual</Equals>\r
+ <NotEqual>No Igual</NotEqual> \r
+ <Union>Unión</Union> \r
+ <Intersection>Intersección</Intersection> \r
+ <Subset>SubConjunto</Subset> \r
+ <SubsetEq>SubConjunto o Igual que</SubsetEq> \r
+ <NSubset>No SubConjunto</NSubset> \r
+ <NSubsetEq>No es SubConjunto o Igual que</NSubsetEq> \r
+ <Sine>Seno</Sine> \r
+ <Cosine>Coseno</Cosine> \r
+ <Tangent>Tangente</Tangent> \r
+ <ArcSine>Inversa Seno</ArcSine> \r
+ <ArcCosine>Inversa Coseno</ArcCosine> \r
+ <ArcTangent>Inversa Tangente</ArcTangent> \r
+ <SineH>Seno Hiperbólico</SineH> \r
+ <CosineH>Coseno Hiperbólico</CosineH> \r
+ <TanH>Tangente Hiperbólico</TanH> \r
+ <ArcSineH>Seno Hiperbólico Inverso</ArcSineH> \r
+ <ArcCosineH>Coseno Hiperbólico Inverso</ArcCosineH> \r
+ <ArcTanH>Tangente Hiperbólica Inversa</ArcTanH> \r
+ <Logarithm>Logaritmo</Logarithm>\r
+ <NaturalLogarithm>Logaritmo Natural</NaturalLogarithm> \r
+ <Exp>Función Exponencial</Exp> \r
+ <UMinus>Menos</UMinus> \r
+ <BracketsRnd>Parentesis</BracketsRnd> \r
+ <BracketsCurl>Llaves</BracketsCurl> \r
+ <BracketsSq>Corchetes</BracketsSq> \r
+ <Abs>Valor Absoluto</Abs> \r
+ <Infinity>Infinito</Infinity>\r
+ <GreekLetter>Letras Griegas</GreekLetter> \r
+ <Factorial>Factorial</Factorial> \r
+ <Max>Máximo del Conjunto</Max> \r
+ <Min>Minimo del Conjutno</Min> \r
+ <Assignment>Asignación</Assignment>\r
+ <Function>Función Desconocida</Function> \r
+ <Determinant>Determinante</Determinant>\r
+ <Trace>Ruta</Trace>\r
+ <DefiniteIntegral>Integral Definida</DefiniteIntegral>\r
+ <Product>Productoria</Product>\r
+ <Sum>Sumatoria</Sum>\r
+ <Limit>Limite</Limit>\r
+ <Evaluate>Evaluar una expresión en un punto</Evaluate>\r
+ <LeftArrow>Flecha izquierda</LeftArrow> \r
+ <RightArrow>Flecha derecha</RightArrow> \r
+ <UpArrow>Flecha arriba</UpArrow> \r
+ <DownArrow>Flecha abajo</DownArrow> \r
+ <LeftRightArrow>Flecha izquierda-dreta</LeftRightArrow> \r
+ <LeftDblArrow>Flecha doble izquierda</LeftDblArrow> \r
+ <RightDblArrow>Flecha doble derecha</RightDblArrow> \r
+ <LeftRightDblArrow>Flecha doble izquierda-derecha</LeftRightDblArrow> \r
+ <NorthEastArrow>Flecha derecha-arriba</NorthEastArrow> \r
+ <SouthEastArrow>Flecha derecha-abajo</SouthEastArrow> \r
+ <NorthWestArrow>Flecha izquierda-arriba</NorthWestArrow> \r
+ <SouthWestArrow>Flecha izquierda-abajo</SouthWestArrow> \r
+ <Multiply2>Multiplicación</Multiply2>\r
+ <Divide2>División</Divide2>\r
+ <Equiv>Equivalencia</Equiv>\r
+ <Exists>Existe</Exists>\r
+ <ForAll>Para todo</ForAll>\r
+ <IsIn>Pertenece</IsIn>\r
+ <NotExists>No existe</NotExists>\r
+ <NotIn>No pertenece</NotIn>\r
+ <SimEq>Parecido</SimEq>\r
+ <Or>Unión Lógica</Or>\r
+ <And>Intersección lógica</And>\r
+ <Not>Negación lógica</Not>\r
+ <PartialDifferential>Diferenciales Parciales</PartialDifferential>\r
+ \r
+ <!-- Tooltips for command buttons -->\r
+ <OpenButton>Cargar una expresión de un archivo</OpenButton>\r
+ <SaveButton>Salvar una expresión a un archivo</SaveButton>\r
+ <ExportButton>Exportar la expresión al portapapeles</ExportButton>\r
+ <UndoButton>Deshacer</UndoButton>\r
+ <RedoButton>Rehacer</RedoButton>\r
+ <CutButton>Cortar</CutButton>\r
+ <CopyButton>Copiar</CopyButton>\r
+ <PasteButton>Pegar</PasteButton>\r
+ <ClearButton>Limpiar toda el área de trabajo</ClearButton>\r
+ <SelectButton>Seleccionar toda el área de trabajo</SelectButton>\r
+ <LoadFormatButton>Cargar archivo con formato exportado</LoadFormatButton>\r
+ <LoadLangButton>Cargar un archivo de lenguaje</LoadLangButton>\r
+ <ShowTreeButton>Mostrar la expresión como un árbol</ShowTreeButton>\r
+ <OutlineButton>Mostrar bordes de expresiones</OutlineButton>\r
+ <OnlineHelpButton>Cargar documentos de ayuda en el navegador</OnlineHelpButton>\r
+ <AboutButton>Acerca de DragMath</AboutButton>\r
+ \r
+ <!-- Menu -->\r
+ <FileMenu>Archivo</FileMenu>\r
+ <OpenMenu>Abrir...</OpenMenu>\r
+ <SaveAsMenu>Salvar como...</SaveAsMenu>\r
+ <ExportMenu>Exportar al portapapeles</ExportMenu>\r
+ <ImageMenu>Export to image</ImageMenu>\r
+ \r
+ <EditMenu>Editar</EditMenu>\r
+ <UndoMenu>Deshacer</UndoMenu>\r
+ <RedoMenu>Rehacer</RedoMenu>\r
+ <CutMenu>Cortar</CutMenu>\r
+ <CopyMenu>Copiar</CopyMenu>\r
+ <PasteMenu>Pegar</PasteMenu>\r
+ <ClearMenu>Limpiar todo</ClearMenu>\r
+ <SelectMenu>Seleccionar todo</SelectMenu>\r
+ \r
+ <OptionsMenu>Opciones</OptionsMenu>\r
+ <SetExportMenu>Formato de Exportación</SetExportMenu>\r
+ <SetLanguageMenu>Lenguaje</SetLanguageMenu>\r
+ \r
+ <HelpMenu>Ayuda</HelpMenu>\r
+ <DebugMenu>Depurar</DebugMenu>\r
+ <TreeMenu>Mostrar árbol de expresión</TreeMenu>\r
+ <OutlineMenu>Mostrar bordes</OutlineMenu>\r
+ <OnlineHelpMenu>Ayuda en linea</OnlineHelpMenu>\r
+ <AboutMenu>Acerca de DragMath</AboutMenu>\r
+ \r
+</Language>\r
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>\r
+\r
+<!--\r
+ Document : fr.xml\r
+ Created on : 19 Decembre 2007, 10:54\r
+ Author : Philippe Quattrociocchi\r
+ Description:\r
+ Purpose of the document follows.\r
+-->\r
+\r
+<Language>\r
+ \r
+ <!-- Error Messages --> \r
+ <ReadingFile>Erreur de lecture du format de fichier: Vérifiez si le fichier est valide</ReadingFile> \r
+ <ReadingFile2>Erreur de lecture du fichier: </ReadingFile2> \r
+ <LoadingExp>Erreur lors du chargement des expressions</LoadingExp>\r
+ <SavingExp>Erreur lors de l'enregistrement des expressions</SavingExp>\r
+ <Cut>Découpe de la sélection impossible: </Cut>\r
+ <Copy>Copie de la sélection impossible: </Copy>\r
+ <Tree>Affichage de l'arbre impossible</Tree>\r
+ <Action>L'action n'a pas pu être terminée: </Action>\r
+ <AddMatrix>La matrice n'a pas pu être ajoutée à cette position</AddMatrix>\r
+ <Operator>L'opérateur est manquant à cette position</Operator>\r
+ <Argument>L'argument de l'opérateur est manquant à cette position</Argument>\r
+ <Image>Error: Cannot export to image. Check internet connection and access to http://www.mathtran.org</Image>\r
+ \r
+ <!-- Status Bar Messages --> \r
+ <ParseExp>L'expression n'a pas pu être lu</ParseExp>\r
+ <LoadExpression>DragMath - Choisissez un fichier d'expression à lire</LoadExpression>\r
+ <SaveExpression>DragMath - Choisissez un endroit pour sauver l'expression</SaveExpression>\r
+ <EnterRows>Entrez le nombre de lignes de la matrice</EnterRows>\r
+ <EnterColumns>Entrez le nombre de colonne de la matrice</EnterColumns>\r
+ <MatrixDim>Dimensions de la matrice</MatrixDim>\r
+ <NoCut>Rien à couper</NoCut>\r
+ <NoPaste>Rien à coller</NoPaste>\r
+ <NoBox>Pas de boîte sélectionné pour collage</NoBox>\r
+ <NoCopy>Rien à copier</NoCopy>\r
+ <Copied>Copié</Copied>\r
+ <ReadingData>Erreur lors de la lecture des données de sortie</ReadingData>\r
+ <Clipboard>Expression exporté dans le Presse-papiers</Clipboard>\r
+ <NoExpression>Aucune expression à convertir</NoExpression>\r
+ <NoFormat>Aucun format de fichier n'a encore été chargé</NoFormat>\r
+ <ImageSize>Choose the image size 1-10 (Smallest-Largest)</ImageSize>\r
+ \r
+ <!-- Tooltips for math buttons -->\r
+ <Multiply>Multiplication</Multiply>\r
+ <Divide>Division</Divide> \r
+ <Add>Addition</Add> \r
+ <Subtract>Soustraction</Subtract> \r
+ <Comma>Virgule</Comma>\r
+ <PlusMinus>Plus ou Moin</PlusMinus>\r
+ <SquareRoot>Carré</SquareRoot> \r
+ <NthRoot>Racine</NthRoot> \r
+ <Power>Puissance</Power> \r
+ <Subscript>Indice</Subscript> \r
+ <Matrix>Matrice</Matrix> \r
+ <Integral>Integrale</Integral>\r
+ <Differential>Différenciation</Differential>\r
+ <LessThan>Inférieur à</LessThan> \r
+ <GreaterThan>Supérieur à</GreaterThan> \r
+ <LTEQ>Inférieur ou égal à</LTEQ> \r
+ <GTEQ>Supérieur ou égal à</GTEQ>\r
+ <Equals>Egal</Equals>\r
+ <NotEqual>Inégal</NotEqual> \r
+ <Union>Union</Union> \r
+ <Intersection>Intersection</Intersection> \r
+ <Subset>Appartient</Subset> \r
+ <SubsetEq>Appartient ou est égal à</SubsetEq> \r
+ <NSubset>N'appartient pas</NSubset> \r
+ <NSubsetEq>N'appartient pas ou est égal à</NSubsetEq> \r
+ <Sine>Sinus</Sine> \r
+ <Cosine>Cosinus</Cosine> \r
+ <Tangent>Tangente</Tangent> \r
+ <ArcSine>Sinus Inverse</ArcSine> \r
+ <ArcCosine>Cosinus Inverse</ArcCosine> \r
+ <ArcTangent>Tangente inversée</ArcTangent> \r
+ <SineH>Hyperbolic Sinus</SineH> \r
+ <CosineH>Cosinus hyperbolique</CosineH> \r
+ <TanH>Tangente hyperbolique</TanH> \r
+ <ArcSineH>Sinus hyperbolique inversée</ArcSineH> \r
+ <ArcCosineH>Cosinus hyperbolique inversée</ArcCosineH> \r
+ <ArcTanH>Tangente hyperbolique inversée</ArcTanH> \r
+ <Logarithm>Logarithme</Logarithm>\r
+ <NaturalLogarithm>Logarithme naturelle</NaturalLogarithm> \r
+ <Exp>Exposant</Exp> \r
+ <UMinus>Moins</UMinus> \r
+ <BracketsRnd>Parenthèses</BracketsRnd> \r
+ <BracketsCurl>Accolades</BracketsCurl> \r
+ <BracketsSq>Crochets</BracketsSq> \r
+ <Abs>Valeur absolue</Abs> \r
+ <Infinity>Infinie</Infinity>\r
+ <GreekLetter>Lettres grecque</GreekLetter> \r
+ <Factorial>Factoriel</Factorial> \r
+ <Max>Maximale d'un ensemble</Max> \r
+ <Min>Minimum d'un ensemble</Min> \r
+ <Assignment>Cession</Assignment>\r
+ <Function>Fonction inconnue</Function> \r
+ <Determinant>Déterminant</Determinant>\r
+ <Trace>Trace</Trace>\r
+ <DefiniteIntegral>Integrale définie</DefiniteIntegral>\r
+ <Product>Produit</Product>\r
+ <Sum>Somme</Sum>\r
+ <Limit>Limite</Limit>\r
+ <Evaluate>Évaluer l'expression en un point</Evaluate>\r
+ <LeftArrow>Gauche arrow</LeftArrow> \r
+ <RightArrow>Droite arrow</RightArrow> \r
+ <UpArrow>Up arrow</UpArrow> \r
+ <DownArrow>Down arrow</DownArrow> \r
+ <LeftDblArrow>Gauche double arrow</LeftDblArrow> \r
+ <RightDblArrow>Right double arrow</RightDblArrow> \r
+ <LeftRightArrow>Gauche-Droite arrow</LeftRightArrow> \r
+ <LeftRightDblArrow>Gauche-Droite double arrow</LeftRightDblArrow> \r
+ <NorthEastArrow>Nord-Est Arrow</NorthEastArrow> \r
+ <SouthEastArrow>Sud-Est arrow</SouthEastArrow> \r
+ <NorthWestArrow>Nord-Ouest arrow</NorthWestArrow> \r
+ <SouthWestArrow>Sud-Ouest arrow</SouthWestArrow> \r
+ <LeftUpArrow>Gauche-Up arrow</LeftUpArrow> \r
+ <LeftDownArrow>Gauche-Down arrow</LeftDownArrow> \r
+ <RightUpArrow>Right-Up arrow</RightUpArrow> \r
+ <RightDownArrow>Droite-down arrow</RightDownArrow> \r
+ \r
+ <Multiply2>Multiplication</Multiply2>\r
+ <Divide2>Division</Divide2>\r
+ <Equiv>Equivalence</Equiv>\r
+ <Exists>Il existe</Exists>\r
+ <ForAll>Pour tous</ForAll>\r
+ <IsIn>Est en</IsIn>\r
+ <NotExists>Il n'existe pas</NotExists>\r
+ <NotIn>Pas un élément de</NotIn>\r
+ <SimEq>Asymptotiquement équivalente à</SimEq>\r
+ <Or>Ou</Or>\r
+ <And>Et</And>\r
+ <Not>Non</Not>\r
+ <PartialDifferential>Dérivée partielle</PartialDifferential>\r
+ \r
+ <!-- Tooltips for command buttons -->\r
+ <OpenButton>Charger une expression à partir d'un fichier</OpenButton>\r
+ <SaveButton>Sauvegarde de l'expression à partir d'un fichier</SaveButton>\r
+ <ExportButton>Exporter l'expression dans le presse-papier</ExportButton>\r
+ <UndoButton>Défaire</UndoButton>\r
+ <RedoButton>Refaire</RedoButton>\r
+ <CutButton>Couper</CutButton>\r
+ <CopyButton>Copier</CopyButton>\r
+ <PasteButton>Coller</PasteButton>\r
+ <ClearButton>Tout effacer</ClearButton>\r
+ <SelectButton>Tout sélectionner</SelectButton>\r
+ <LoadFormatButton>Charger un fichier de format d'expression</LoadFormatButton>\r
+ <LoadLangButton>Charger un fichier de langage</LoadLangButton>\r
+ <ShowTreeButton>Afficher l'arborescence de l'expression</ShowTreeButton>\r
+ <OutlineButton>Afficher la structure de l'expression</OutlineButton>\r
+ <OnlineHelpButton>Charger l'aide en ligne</OnlineHelpButton>\r
+ <AboutButton>A propos de DragMath</AboutButton>\r
+ \r
+ <!-- Menu -->\r
+ <FileMenu>Fichier</FileMenu>\r
+ <OpenMenu>Ouvrir...</OpenMenu>\r
+ <SaveAsMenu>Enregistrer sous...</SaveAsMenu>\r
+ <ExportMenu>Exporter dans le presse-papier</ExportMenu>\r
+ <ImageMenu>Export to image</ImageMenu>\r
+ \r
+ <EditMenu>Editer</EditMenu>\r
+ <UndoMenu>Défaire</UndoMenu>\r
+ <RedoMenu>Refaire</RedoMenu>\r
+ <CutMenu>Couper</CutMenu>\r
+ <CopyMenu>Copier</CopyMenu>\r
+ <PasteMenu>Coller</PasteMenu>\r
+ <ClearMenu>Tout effacer</ClearMenu>\r
+ <SelectMenu>Tout sélectionner</SelectMenu>\r
+ \r
+ <OptionsMenu>Options</OptionsMenu>\r
+ <SetExportMenu>Changer de format de sorti</SetExportMenu>\r
+ <SetLanguageMenu>Changer de langue</SetLanguageMenu>\r
+ \r
+ <HelpMenu>Aide</HelpMenu>\r
+ <DebugMenu>Debug</DebugMenu>\r
+ <TreeMenu>Afficher l'arborescence de l'expression</TreeMenu>\r
+ <OutlineMenu>Afficher la structure de l'expression</OutlineMenu>\r
+ <OnlineHelpMenu>Aide Online</OnlineHelpMenu>\r
+ <AboutMenu>A propos de DragMath</AboutMenu>\r
+ \r
+</Language>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<!--\r
+ Document : nl.xml\r
+ Created on : 26 december 2007\r
+ Author : Patrick Tydtgat\r
+ Description:\r
+ Purpose of the document follows.\r
+-->\r
+\r
+<Language>\r
+ \r
+ <!-- Error Messages --> \r
+ <ReadingFile>Fout bij lezen bestand: Controleer geldigheid bestandstype</ReadingFile> \r
+ <ReadingFile2>Fout bij laden bestand: </ReadingFile2> \r
+ <LoadingExp>Fout bij laden uitdrukking</LoadingExp>\r
+ <SavingExp>Fout bij bewaren uitdrukking</SavingExp>\r
+ <Cut>Kan selectie niet knippen: </Cut>\r
+ <Copy>Kan selectie niet kopiëren: </Copy>\r
+ <Tree>Kan boomstructuur niet weergeven: </Tree>\r
+ <Action>Kon bewerking niet uitvoeren: </Action>\r
+ <AddMatrix>Kan matrix hier niet invoegen</AddMatrix>\r
+ <Operator>Operator ontbreekt </Operator>\r
+ <Argument>Argument ontbreekt </Argument>\r
+ <Image>Error: Cannot export to image. Check internet connection and access to http://www.mathtran.org</Image>\r
+ \r
+ <!-- Status Bar Messages --> \r
+ <ParseExp>Uitdrukking kon niet behandeld worden</ParseExp>\r
+ <LoadExpression>DragMath - Kies een te laden bestand</LoadExpression>\r
+ <SaveExpression>DragMath - Kies een map om de uitdrukking te bewaren</SaveExpression>\r
+ <EnterRows>Aantal in te voegen</EnterRows>\r
+ <EnterColumns>Aantal in te voegen kolommen</EnterColumns>\r
+ <MatrixDim>Matrix Dimensies</MatrixDim>\r
+ <NoCut>Niets geselecteerd om te knippen</NoCut>\r
+ <NoPaste>Niets te plakken</NoPaste>\r
+ <NoBox>Geen box geselecteerd waarin geplakt moet worden</NoBox>\r
+ <NoCopy>Niets geselecteerd om te kopiëren</NoCopy>\r
+ <Copied>Gekopieerd</Copied>\r
+ <ReadingData>Fout bij lezen output gegevens</ReadingData>\r
+ <Clipboard>Gekopieerd naar klembord</Clipboard>\r
+ <NoExpression>Niets te converteren</NoExpression>\r
+ <NoFormat>ER werd geen format-bestand geladen</NoFormat>\r
+ <ImageSize>Choose the image size 1-10 (Smallest-Largest)</ImageSize>\r
+ \r
+ <!-- Tooltips for math buttons -->\r
+ <Multiply>Vermenigvuldigen</Multiply>\r
+ <Divide>Delen</Divide> \r
+ <Add>Optellen</Add> \r
+ <Subtract>Aftrekken</Subtract> \r
+ <Comma>Komma</Comma>\r
+ <PlusMinus>Plus-Minus</PlusMinus>\r
+ <SquareRoot>Vierkantswortel</SquareRoot> \r
+ <NthRoot>N-de Machtswortel</NthRoot> \r
+ <Power>Superscript</Power> \r
+ <Subscript>Subscript</Subscript> \r
+ <Matrix>Matrix</Matrix> \r
+ <Integral>Integreren</Integral>\r
+ <Differential>Differentiëren</Differential>\r
+ <LessThan>Kleiner Dan</LessThan> \r
+ <GreaterThan>Groter Dan</GreaterThan> \r
+ <LTEQ>Kleiner dan of Gelijk Aan</LTEQ> \r
+ <GTEQ>Groter Dan of Gelijk Aan</GTEQ>\r
+ <Equals>Gelijk</Equals>\r
+ <NotEqual>Niet Gelijk</NotEqual> \r
+ <Union>Vereniging</Union> \r
+ <Intersection>Doorsnede</Intersection> \r
+ <Subset>Deelverzameling</Subset> \r
+ <SubsetEq>Deelverzameling of Gelijk Aan</SubsetEq> \r
+ <NSubset>Geen Deelverzameling</NSubset> \r
+ <NSubsetEq>Geen Deelverzameling of Gelijk Aan</NSubsetEq> \r
+ <Sine>Sinus</Sine> \r
+ <Cosine>Cosinus</Cosine> \r
+ <Tangent>Tangens</Tangent> \r
+ <ArcSine>Boog Sinus</ArcSine> \r
+ <ArcCosine>Boog Cosinus</ArcCosine> \r
+ <ArcTangent>Boog Tangens</ArcTangent> \r
+ <SineH>Sinus Hyperbolicus</SineH> \r
+ <CosineH>Cosinus Hyperbolicus</CosineH> \r
+ <TanH>Tangens Hyperbolicus</TanH> \r
+ <ArcSineH>Boog Sinus Hyperbolicus</ArcSineH> \r
+ <ArcCosineH>Boog Cosinus Hyperbolicus</ArcCosineH> \r
+ <ArcTanH>Boog Tangens Hyperbolicus</ArcTanH> \r
+ <Logarithm>Logaritme</Logarithm>\r
+ <NaturalLogarithm>Natuurlijke Logaritmen</NaturalLogarithm> \r
+ <Exp>Exponentiële Functie</Exp> \r
+ <UMinus>Min</UMinus> \r
+ <BracketsRnd>Rondde Haakjes</BracketsRnd> \r
+ <BracketsCurl>Accolades</BracketsCurl> \r
+ <BracketsSq>Vierkante Haakjes</BracketsSq> \r
+ <Abs>Absolute Waarde</Abs> \r
+ <Infinity>Oneindig</Infinity>\r
+ <GreekLetter>Griekse letter</GreekLetter> \r
+ <Factorial>Factor</Factorial> \r
+ <Max>Maximum</Max> \r
+ <Min>Minimum</Min> \r
+ <Assignment>Toekenning</Assignment>\r
+ <Function>Onbekende functie</Function> \r
+ <Determinant>Determinant</Determinant>\r
+ <Trace>Spoor</Trace>\r
+ <DefiniteIntegral>Bepaalde Integraal</DefiniteIntegral>\r
+ <Product>Product</Product>\r
+ <Sum>Som</Sum>\r
+ <Limit>Limiet</Limit>\r
+ <Evaluate>Evalueer een uitdrukking in een punt</Evaluate>\r
+ <LeftArrow>Links arrow</LeftArrow> \r
+ <RightArrow>Recht arrow</RightArrow> \r
+ <UpArrow>Up arrow</UpArrow> \r
+ <DownArrow>Omlaag arrow</DownArrow> \r
+ <LeftDblArrow>Links dubbel arrow</LeftDblArrow> \r
+ <RightDblArrow>Right dubbel arrow</RightDblArrow> \r
+ <LeftRightArrow>Links-Recht arrow</LeftRightArrow> \r
+ <LeftRightDblArrow>Links-Recht dubbel arrow</LeftRightDblArrow> \r
+ <NorthEastArrow>Noord-Oost-arrow</NorthEastArrow> \r
+ <SouthEastArrow>Zuid-Oost-arrow</SouthEastArrow> \r
+ <NorthWestArrow>Noord-West-arrow</NorthWestArrow> \r
+ <SouthWestArrow>Zuid-West arrow</SouthWestArrow> \r
+ <Multiply2>Vermenigvuldigen</Multiply2>\r
+ <Divide2>Divisie</Divide2>\r
+ <Equiv>Gelijkwaardigheid</Equiv>\r
+ <Exists>Er Bestaat</Exists>\r
+ <ForAll>Voor alle</ForAll>\r
+ <IsIn>Element van</IsIn>\r
+ <NotExists>Er bestaat niet</NotExists>\r
+ <NotIn>Niet een element van</NotIn>\r
+ <SimEq>Asymptotically gelijk aan</SimEq>\r
+ <Or>Of</Or>\r
+ <And>En</And>\r
+ <Not>Niet</Not>\r
+ <PartialDifferential>Partiële differentiaalvergelijking</PartialDifferential>\r
+ \r
+ \r
+ <!-- Tooltips for command buttons -->\r
+ <OpenButton>Laad uitdrukking uit bestand</OpenButton>\r
+ <SaveButton>Bewaar uitdrukking in bestand</SaveButton>\r
+ <ExportButton>Exporteer uitdrukking naar het klembord</ExportButton>\r
+ <UndoButton>Ongedaan maken</UndoButton>\r
+ <RedoButton>Herstellen</RedoButton>\r
+ <CutButton>Knippen</CutButton>\r
+ <CopyButton>Kopiëren</CopyButton>\r
+ <PasteButton>Plakken</PasteButton>\r
+ <ClearButton>Alles Wissen</ClearButton>\r
+ <SelectButton>Alles Selecteren</SelectButton>\r
+ <LoadFormatButton>Laad een export format bestand</LoadFormatButton>\r
+ <LoadLangButton>Laad een Taalbestand</LoadLangButton>\r
+ <ShowTreeButton>Toon Boomstructuur</ShowTreeButton>\r
+ <OutlineButton>Toon outline of objecten</OutlineButton>\r
+ <OnlineHelpButton>Laad help in webbrowser</OnlineHelpButton>\r
+ <AboutButton>About DragMath</AboutButton>\r
+ \r
+ <!-- Menu -->\r
+ <FileMenu>Bestand</FileMenu>\r
+ <OpenMenu>Openen...</OpenMenu>\r
+ <SaveAsMenu>Bewaar Als...</SaveAsMenu>\r
+ <ExportMenu>Kopieer naar klembord</ExportMenu>\r
+ <ImageMenu>Export to image</ImageMenu>\r
+ \r
+ <EditMenu>Bewerk</EditMenu>\r
+ <UndoMenu>Ongedaan maken</UndoMenu>\r
+ <RedoMenu>Herstellen</RedoMenu>\r
+ <CutMenu>Knippen</CutMenu>\r
+ <CopyMenu>Kopiëren</CopyMenu>\r
+ <PasteMenu>Plakken</PasteMenu>\r
+ <ClearMenu>Alles Wissen</ClearMenu>\r
+ <SelectMenu>Alles Selecteren</SelectMenu>\r
+ \r
+ <OptionsMenu>Opties</OptionsMenu>\r
+ <SetExportMenu>Kies Export Format</SetExportMenu>\r
+ <SetLanguageMenu>Kies Taal</SetLanguageMenu>\r
+ \r
+ <HelpMenu>Help</HelpMenu>\r
+ <DebugMenu>Debug</DebugMenu>\r
+ <TreeMenu>Toon boomstructuur</TreeMenu>\r
+ <OutlineMenu>Toon outline</OutlineMenu>\r
+ <OnlineHelpMenu>Online Help</OnlineHelpMenu>\r
+ <AboutMenu>About DragMath</AboutMenu>\r
+ \r
+</Language>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<!--\r
+ Document : pl.xml\r
+ Created on : 30 July 2007, 15:43\r
+ Author : Alex Billingsley \r
+ Translator : Agnieszka Herczak-Ciara\r
+ Description:\r
+ Purpose of the document follows.\r
+-->\r
+\r
+<Language>\r
+ \r
+ <!-- Error Messages --> \r
+ <ReadingFile>Błąd wczytania pliku: Sprawdź format pliku</ReadingFile> \r
+ <ReadingFile2>Błąd wczytania pliku</ReadingFile2> \r
+ <LoadingExp>Błąd wczytania wyrażenia</LoadingExp>\r
+ <SavingExp>Błąd zapisu wyrażenia</SavingExp>\r
+ <Cut>Nie można wyciąć</Cut>\r
+ <Copy>Nie można skopiować</Copy>\r
+ <Tree>Nie można wyświetlić drzewa</Tree>\r
+ <Action>Działanie nie może zostać zakończone</Action>\r
+ <AddMatrix>Nie można dodać macierzy w tym miejscu</AddMatrix>\r
+ <Operator>Brakujący operator na pozycji</Operator>\r
+ <Argument>Brakujący argument na pozycji</Argument>\r
+ <Image>Error: Cannot export to image. Check internet connection and access to http://www.mathtran.org</Image>\r
+ \r
+ <!-- Status Bar Messages --> \r
+ <ParseExp>Błąd parsowania wyrażenia</ParseExp>\r
+ <LoadExpression>DragMath -Wybierz plik do wczytania</LoadExpression>\r
+ <SaveExpression>DragMath - Wybierz lokalizację zapisu</SaveExpression>\r
+ <EnterRows>Wprowadź liczbę wierszy macierzy</EnterRows>\r
+ <EnterColumns>Wprowadź liczbę kolumn macierzy</EnterColumns>\r
+ <MatrixDim>Wymiar macierzy</MatrixDim>\r
+ <NoCut>Nie zaznaczono nic do wycięcia</NoCut>\r
+ <NoPaste>Brak elementów do wklejenia</NoPaste>\r
+ <NoBox>Nie wybrano nic do wklejenia</NoBox>\r
+ <NoCopy>Nie wybrano nic do skopiowania</NoCopy>\r
+ <Copied>Skopiowane</Copied>\r
+ <ReadingData>Błąd wczytania danych</ReadingData>\r
+ <Clipboard>Eksport wyrażenia do schowka</Clipboard>\r
+ <NoExpression>Brak wyrażenia do konwersji</NoExpression>\r
+ <NoFormat>Nie wybrano żadnego formatu </NoFormat>\r
+ <ImageSize>Choose the image size 1-10 (Smallest-Largest)</ImageSize>\r
+ \r
+ <!-- Tooltips for math buttons -->\r
+ <Multiply>Mnożenie</Multiply>\r
+ <Divide>Ułamek</Divide> \r
+ <Add>Dodawanie</Add> \r
+ <Subtract>Odejmowanie</Subtract> \r
+ <Comma>Przecinek dziesiętny</Comma>\r
+ <PlusMinus>Plus-Minus</PlusMinus>\r
+ <SquareRoot>Pierwiastek kwadratowy</SquareRoot> \r
+ <NthRoot>Pierwiastek n-tego stopnia</NthRoot> \r
+ <Power>Indeks górny</Power> \r
+ <Subscript>Indeks dolny</Subscript> \r
+ <Matrix>Macierz</Matrix> \r
+ <Integral>Całka nieoznaczona</Integral>\r
+ <Differential>Różniczkowanie</Differential>\r
+ <LessThan>Mniejsze niż</LessThan> \r
+ <GreaterThan>Większe niż</GreaterThan> \r
+ <LTEQ>Mniejsze lub równe</LTEQ> \r
+ <GTEQ>Większe lub równe</GTEQ>\r
+ <Equals>Równe</Equals>\r
+ <NotEqual>Nie równe</NotEqual> \r
+ <Union>Suma</Union> \r
+ <Intersection>Iloczyn </Intersection> \r
+ <Subset>Zawiera się</Subset> \r
+ <SubsetEq>Zawiera się lub jest równy</SubsetEq> \r
+ <NSubset>Nie zawiera się</NSubset> \r
+ <NSubsetEq>Nie zawiera się i nie jest równy</NSubsetEq> \r
+ <Sine>sin (sinus)</Sine> \r
+ <Cosine>cos (cosinus)</Cosine> \r
+ <Tangent>tg (tangens)</Tangent> \r
+ <ArcSine>arcsin (arcus sinus)</ArcSine> \r
+ <ArcCosine>arccos (arcus cosinus)</ArcCosine> \r
+ <ArcTangent>arctg (arcus tangens)</ArcTangent> \r
+ <SineH>sinh (sinus hiperboliczny)</SineH> \r
+ <CosineH>cosh (cosinus hiperboliczny)</CosineH> \r
+ <TanH>tgh (tangens hiperboliczny)</TanH> \r
+ <ArcSineH>arcsinh (arcus sinus hiperboliczny)</ArcSineH> \r
+ <ArcCosineH>arccosh (arcus cosinus hiperboliczny)</ArcCosineH> \r
+ <ArcTanH>arctgh (arcus tangens hiperboliczny)</ArcTanH> \r
+ <Logarithm>Logarytm</Logarithm>\r
+ <NaturalLogarithm>Logarytm naturalny</NaturalLogarithm> \r
+ <Exp>Exp (Funkcja eksponencjalna)</Exp> \r
+ <UMinus>Minus</UMinus> \r
+ <BracketsRnd>Nawiasy okrągłe</BracketsRnd> \r
+ <BracketsCurl>Nawiasy klamrowe</BracketsCurl> \r
+ <BracketsSq>Nawiasy kwadratowe</BracketsSq> \r
+ <Abs>Wartość bezwzględna</Abs> \r
+ <Infinity>Nieskończoność</Infinity>\r
+ <GreekLetter>Greckie litery</GreekLetter> \r
+ <Factorial>Silnia</Factorial> \r
+ <Max>Maksimum</Max> \r
+ <Min>Minimum</Min> \r
+ <Assignment>Przypisanie</Assignment>\r
+ <Function>Funkcja</Function> \r
+ <Determinant>Wyznacznik macierzy</Determinant>\r
+ <Trace>Ślad macierzy</Trace>\r
+ <DefiniteIntegral>Całka oznaczona</DefiniteIntegral>\r
+ <Product>Iloczyn </Product>\r
+ <Sum>Suma</Sum>\r
+ <Limit>Granica</Limit>\r
+ <Evaluate>Wartość wyrażenia w punkcie</Evaluate>\r
+ <LeftArrow>Left arrow</LeftArrow> \r
+ <RightArrow>Right arrow</RightArrow> \r
+ <UpArrow>Up arrow</UpArrow> \r
+ <DownArrow>Down arrow</DownArrow> \r
+ <LeftDblArrow>Left double arrow</LeftDblArrow> \r
+ <RightDblArrow>Right double arrow</RightDblArrow> \r
+ <LeftRightArrow>Left-Right arrow</LeftRightArrow> \r
+ <LeftRightDblArrow>Left-Right double arrow</LeftRightDblArrow> \r
+ <NorthEastArrow>North-East arrow</NorthEastArrow> \r
+ <SouthEastArrow>South-East arrow</SouthEastArrow> \r
+ <NorthWestArrow>North-West arrow</NorthWestArrow> \r
+ <SouthWestArrow>South-West arrow</SouthWestArrow>\r
+ <Multiply2>Multiplication</Multiply2>\r
+ <Divide2>Division</Divide2>\r
+ <Equiv>Equivalence</Equiv>\r
+ <Exists>There Exists</Exists>\r
+ <ForAll>For All</ForAll>\r
+ <IsIn>Element Of</IsIn>\r
+ <NotExists>There Does Not Exist</NotExists>\r
+ <NotIn>Not An Element Of</NotIn>\r
+ <SimEq>Asymptotically Equivalent To</SimEq>\r
+ <Or>Or</Or>\r
+ <And>And</And>\r
+ <Not>Not</Not>\r
+ <PartialDifferential>Partial Differential</PartialDifferential>\r
+ \r
+ <!-- Tooltips for command buttons -->\r
+ <OpenButton>Wczytaj wyrażenie z pliku</OpenButton>\r
+ <SaveButton>Zapisz wyrażenie do pliku</SaveButton>\r
+ <ExportButton>Eksportuj wyrażenie do schowka</ExportButton>\r
+ <UndoButton>Cofnij</UndoButton>\r
+ <RedoButton>Ponów</RedoButton>\r
+ <CutButton>Wytnij</CutButton>\r
+ <CopyButton>Kopiuj</CopyButton>\r
+ <PasteButton>Wklej</PasteButton>\r
+ <ClearButton>Wyczyść wszystko</ClearButton>\r
+ <SelectButton>Zaznacz wszystko</SelectButton>\r
+ <LoadFormatButton>Wczytaj format pliku do eksportu</LoadFormatButton>\r
+ <LoadLangButton>Wczytaj plik językowy</LoadLangButton>\r
+ <ShowTreeButton>Pokaż strukturę drzewiastą wyrażenia</ShowTreeButton>\r
+ <OutlineButton>Display outline of objects on workspace</OutlineButton>\r
+ <OnlineHelpButton>Pomoc online</OnlineHelpButton>\r
+ <AboutButton>O DragMath</AboutButton>\r
+ \r
+ <!-- Menu -->\r
+ <FileMenu>Plik</FileMenu>\r
+ <OpenMenu>Otwórz ...</OpenMenu>\r
+ <SaveAsMenu>Zapisz jako ...</SaveAsMenu>\r
+ <ExportMenu>Eksportuj do schowka</ExportMenu>\r
+ <ImageMenu>Export to image</ImageMenu>\r
+ \r
+ <EditMenu>Edycja</EditMenu>\r
+ <UndoMenu>Cofnij</UndoMenu>\r
+ <RedoMenu>Ponów</RedoMenu>\r
+ <CutMenu>Wytnij</CutMenu>\r
+ <CopyMenu>Kopiuj</CopyMenu>\r
+ <PasteMenu>Wklej</PasteMenu>\r
+ <ClearMenu>Wyczyść wszystko</ClearMenu>\r
+ <SelectMenu>Zaznacz wszystko</SelectMenu>\r
+ \r
+ <OptionsMenu>Opcje</OptionsMenu>\r
+ <SetExportMenu>Wybierz format (Latex,MathML,...)</SetExportMenu>\r
+ <SetLanguageMenu>Wybierz język (pl,eng...)</SetLanguageMenu>\r
+ \r
+ <HelpMenu>Pomoc</HelpMenu>\r
+ <DebugMenu>Debug</DebugMenu>\r
+ <TreeMenu>Pokaż drzewo wyrażenia</TreeMenu>\r
+ <OutlineMenu>Outline</OutlineMenu>\r
+ <OnlineHelpMenu>Pomoc Online</OnlineHelpMenu>\r
+ <AboutMenu>O programie DragMath</AboutMenu>\r
+ \r
+</Language>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<!--\r
+ Document : pt-br.xml\r
+ Created on : 27th February 2008, 15:56\r
+ Author : Mauricio Chamati\r
+ Description:\r
+ Purpose of the document follows.\r
+-->\r
+\r
+<Language>\r
+ \r
+ <!-- Error Messages --> \r
+ <ReadingFile>Erro lendo arquivo: Verifique se o arquivo é válido</ReadingFile> \r
+ <ReadingFile2>Erro lendo arquivo: </ReadingFile2> \r
+ <LoadingExp>Erro carregando expressão salva</LoadingExp>\r
+ <SavingExp>Erro salvando expressão</SavingExp>\r
+ <Cut>Seleção não pode ser recortada: </Cut>\r
+ <Copy>Seleção não pode ser copiada: </Copy>\r
+ <Tree>Árvore não pode ser mostrada: </Tree>\r
+ <Action>Ação não pode ser completada: </Action>\r
+ <AddMatrix>Matriz não pode ser adicionada neste local</AddMatrix>\r
+ <Operator>Operador faltando na posição </Operator>\r
+ <Argument>Argumento do operador faltando na posição </Argument>\r
+ <Image>Erro: Não é possível exportar para imagem. Verifique sua conexão com a internet e acesse http://www.mathtran.org</Image>\r
+ \r
+ <!-- Status Bar Messages --> \r
+ <ParseExp>Expressão não pode ser analisada</ParseExp>\r
+ <LoadExpression>DragMath - Escolha uma expressão em arquivo para ser carregada</LoadExpression>\r
+ <SaveExpression>DragMath - Escolha o local para salvar a expressão</SaveExpression>\r
+ <EnterRows>Informe o número de linhas da matriz</EnterRows>\r
+ <EnterColumns>Informe o número de colunas da matriz</EnterColumns>\r
+ <MatrixDim>Dimensões da Matriz</MatrixDim>\r
+ <NoCut>Nada selecionado para recortar</NoCut>\r
+ <NoPaste>Nada para colar</NoPaste>\r
+ <NoBox>Nenhuma caixa selecionada para colar dentro</NoBox>\r
+ <NoCopy>Nada selecionado para copiar</NoCopy>\r
+ <Copied>Copiado</Copied>\r
+ <ReadingData>Erro lendo dados externos</ReadingData>\r
+ <Clipboard>Expressão exportada para a área de transferência</Clipboard>\r
+ <NoExpression>Nenhuma expressão para converter</NoExpression>\r
+ <NoFormat>Nenhum formato de arquivo foi carregado ainda</NoFormat>\r
+ <ImageSize>Escolha o tamanho da imagem de 1-10 (Menor-Maior)</ImageSize>\r
+ \r
+ <!-- Tooltips for math buttons -->\r
+ <Multiply>Multiplicação</Multiply>\r
+ <Divide>Divisão</Divide> \r
+ <Add>Adição</Add> \r
+ <Subtract>Subtração</Subtract> \r
+ <Comma>Vírgula</Comma>\r
+ <PlusMinus>Mais-Menos</PlusMinus>\r
+ <SquareRoot>Raiz Quadrada</SquareRoot> \r
+ <NthRoot>Raiz de N</NthRoot> \r
+ <Power>Sobrescrito</Power> \r
+ <Subscript>Subscrito</Subscript> \r
+ <Matrix>Matriz</Matrix> \r
+ <Integral>Integral</Integral>\r
+ <Differential>Diferencial</Differential>\r
+ <LessThan>Menor Que</LessThan> \r
+ <GreaterThan>Maior Que</GreaterThan> \r
+ <LTEQ>Menor Que ou Igual A</LTEQ> \r
+ <GTEQ>Maior Que ou Igual A</GTEQ>\r
+ <Equals>Igual</Equals>\r
+ <NotEqual>Diferente</NotEqual> \r
+ <Union>União</Union> \r
+ <Intersection>Intersecção</Intersection> \r
+ <Subset>Subconjunto</Subset> \r
+ <SubsetEq>Subconjunto ou Igual A</SubsetEq> \r
+ <NSubset>Não é Subconjunto</NSubset> \r
+ <NSubsetEq>Não é Subconjunto ou Igual A</NSubsetEq> \r
+ <Sine>Seno</Sine> \r
+ <Cosine>Cosseno</Cosine> \r
+ <Tangent>Tangente</Tangent> \r
+ <ArcSine>Arco-Seno</ArcSine> \r
+ <ArcCosine>Arco-Cosseno</ArcCosine> \r
+ <ArcTangent>Arco-Tangente</ArcTangent> \r
+ <SineH>Seno Hiperbólico</SineH> \r
+ <CosineH>Cosseno Hiperbólico</CosineH> \r
+ <TanH>Tangente Hiperbólica</TanH> \r
+ <ArcSineH>Arco-Seno Hiperbólico</ArcSineH> \r
+ <ArcCosineH>Arco-Cosseno Hiperbólico</ArcCosineH> \r
+ <ArcTanH>Arco-Tangente Hiperbólico</ArcTanH> \r
+ <Logarithm>Logaritmo</Logarithm>\r
+ <NaturalLogarithm>Logaritmo Neperiano</NaturalLogarithm> \r
+ <Exp>Função Exponencial</Exp> \r
+ <UMinus>Menos</UMinus> \r
+ <BracketsRnd>Parênteses</BracketsRnd> \r
+ <BracketsCurl>Chaves</BracketsCurl> \r
+ <BracketsSq>Colchetes</BracketsSq> \r
+ <Abs>Valor Absoluto</Abs> \r
+ <Infinity>Infinito</Infinity>\r
+ <GreekLetter>Letra Grega</GreekLetter> \r
+ <Factorial>Fatorial</Factorial> \r
+ <Max>Máximo de um conjunto</Max> \r
+ <Min>Mínimo de um conjunto</Min> \r
+ <Assignment>Atribuição</Assignment>\r
+ <Function>Função desconhecida</Function> \r
+ <Determinant>Determinante</Determinant>\r
+ <Trace>Traço</Trace>\r
+ <DefiniteIntegral>Integral Definida</DefiniteIntegral>\r
+ <Product>Produto</Product>\r
+ <Sum>Soma</Sum>\r
+ <Limit>Limite</Limit>\r
+ <Evaluate>Determina uma expressão num ponto</Evaluate>\r
+ <LeftArrow>Seta para esquerda</LeftArrow> \r
+ <RightArrow>Seta para direita</RightArrow> \r
+ <UpArrow>Seta para cima</UpArrow> \r
+ <DownArrow>Seta para baixo</DownArrow> \r
+ <LeftDblArrow>Seta dupla para esquerda</LeftDblArrow> \r
+ <RightDblArrow>Seta dupla para direita</RightDblArrow> \r
+ <LeftRightArrow>Seta para Esquerda-Direita</LeftRightArrow> \r
+ <LeftRightDblArrow>Seta dupla para Esquerda-Direita</LeftRightDblArrow> \r
+ <NorthEastArrow>Seta para Nordeste</NorthEastArrow> \r
+ <SouthEastArrow>Seta para Sudeste</SouthEastArrow> \r
+ <NorthWestArrow>Seta para Noroeste</NorthWestArrow> \r
+ <SouthWestArrow>Seta para Sudoeste</SouthWestArrow>\r
+ <Multiply2>Multiplicação</Multiply2>\r
+ <Divide2>Divisão</Divide2>\r
+ <Equiv>Equivalência</Equiv>\r
+ <Exists>Existe</Exists>\r
+ <ForAll>Para Todos</ForAll>\r
+ <IsIn>Elemento De</IsIn>\r
+ <NotExists>Não Existe</NotExists>\r
+ <NotIn>Não É Um Elemento De</NotIn>\r
+ <SimEq>Assintoticamente Equivalente A</SimEq>\r
+ <Or>Ou</Or>\r
+ <And>E</And>\r
+ <Not>Não</Not>\r
+ <PartialDifferential>Diferencial Parcial</PartialDifferential>\r
+ \r
+ <!-- Tooltips for command buttons -->\r
+ <OpenButton>Carregar expressão de um arquivo</OpenButton>\r
+ <SaveButton>Salvar expressão em arquivo</SaveButton>\r
+ <ExportButton>Exportar expressão para área de transferência</ExportButton>\r
+ <UndoButton>Desfazer</UndoButton>\r
+ <RedoButton>Refazer</RedoButton>\r
+ <CutButton>Recortar</CutButton>\r
+ <CopyButton>Copiar</CopyButton>\r
+ <PasteButton>Colar</PasteButton>\r
+ <ClearButton>Limpar toda a área de trabalho</ClearButton>\r
+ <SelectButton>Selecionar toda a área de trabalho</SelectButton>\r
+ <LoadFormatButton>Carregar um formato de exportação</LoadFormatButton>\r
+ <LoadLangButton>Carregar um arquivo de idioma</LoadLangButton>\r
+ <ShowTreeButton>Mostrar estrutura em árvore da expressão</ShowTreeButton>\r
+ <OutlineButton>Mostrar contorno dos objetos da área de trabalho</OutlineButton>\r
+ <OnlineHelpButton>Carregar documentos de ajuda no navegador</OnlineHelpButton>\r
+ <AboutButton>Sobre DragMath</AboutButton>\r
+ \r
+ <!-- Menu -->\r
+ <FileMenu>Arquivo</FileMenu>\r
+ <OpenMenu>Abrir...</OpenMenu>\r
+ <SaveAsMenu>Salvar Como...</SaveAsMenu>\r
+ <ExportMenu>Exportar para área de transferência</ExportMenu>\r
+ <ImageMenu>Exportar para imagem</ImageMenu>\r
+ \r
+ <EditMenu>Editar</EditMenu>\r
+ <UndoMenu>Desfazer</UndoMenu>\r
+ <RedoMenu>Refazer</RedoMenu>\r
+ <CutMenu>Recortar</CutMenu>\r
+ <CopyMenu>Copiar</CopyMenu>\r
+ <PasteMenu>Colar</PasteMenu>\r
+ <ClearMenu>Limpar a área de trabalho</ClearMenu>\r
+ <SelectMenu>Selecionar Tudo</SelectMenu>\r
+ \r
+ <OptionsMenu>Opções</OptionsMenu>\r
+ <SetExportMenu>Escolher formato de exportação</SetExportMenu>\r
+ <SetLanguageMenu>Escolher idioma</SetLanguageMenu>\r
+ \r
+ <HelpMenu>Ajuda</HelpMenu>\r
+ <DebugMenu>Debugar</DebugMenu>\r
+ <TreeMenu>Mostrar árvore de expressão</TreeMenu>\r
+ <OutlineMenu>Mostrar contorno</OutlineMenu>\r
+ <OnlineHelpMenu>Ajuda Online</OnlineHelpMenu>\r
+ <AboutMenu>Sobre DragMath</AboutMenu>\r
+ \r
+</Language>\r
--- /dev/null
+<?xml version="1.0" encoding="Windows-1251"?>\r
+\r
+<!--\r
+ Document : ru.xml\r
+ Created on : 19 December 2007, 15:43\r
+ Author : Sedletskiy Nikolay\r
+ Description:\r
+ Purpose of the document follows.\r
+-->\r
+\r
+<Language>\r
+ \r
+ <!-- Error Messages --> \r
+ <ReadingFile>Îøèáêà ôîðìàòà ôàéëà: Ïðîâåðüòå ïðàâèëüíîñòü óêàçàííîãî ôàéëà</ReadingFile> \r
+ <ReadingFile2>Îøèáêà çàãðóçêè ôîðìàòà ôàéëà: </ReadingFile2> \r
+ <LoadingExp>Îøèáêà çàãðóçêè ñîõðàíåííîãî âûðàæåíèÿ</LoadingExp>\r
+ <SavingExp>Îøèáêà ñîõðàíåíèÿ âûðàæåíèÿ</SavingExp>\r
+ <Cut>Íåâîçìîæíî âûðåçàòü âûáðàííîå: </Cut>\r
+ <Copy>Íåâîçìîæíî êîïèðîâàòü âûáðàííîå: </Copy>\r
+ <Tree>Íåâîçìîæíî îòîáðàçèòü äåðåâî: </Tree>\r
+ <Action>Äåéñòâèå íå ìîæåò áûòü âûïîëíåííî: </Action>\r
+ <AddMatrix>Íåâîçìîæíî äàáàâèòü Ìàòðèöó â óêàçàííîå ìåñòî</AddMatrix>\r
+ <Operator>Îòñóòâòâóåò Îïåðàòîð íà ïîçèöèè </Operator>\r
+ <Argument>Îòñóòñòâóåò àðãóìåíò îïåðàòîðà íà ïîçèöèè </Argument>\r
+ <Image>Error: Cannot export to image. Check internet connection and access to http://www.mathtran.org</Image>\r
+ \r
+ <!-- Status Bar Messages --> \r
+ <ParseExp>Íåâîçìîæåí ðàçáîð âûðàæåíèÿ</ParseExp>\r
+ <LoadExpression>DragMath - Âûáåðèòå ôàéë âûðàæåíèÿ äëÿ çàãðóçêè</LoadExpression>\r
+ <SaveExpression>DragMath - Âûáåðèòå ìåñòîïîëîæåíèå äëÿ ñîõðàíåíèÿ âûðàæåíèÿ</SaveExpression>\r
+ <EnterRows>Ââåäèòå êîëè÷åñòâî ñòðîê â ìàòðèöå</EnterRows>\r
+ <EnterColumns>Ââåäèòå êîëè÷åñòâî ñòîëáöåâ â ìàòðèöå</EnterColumns>\r
+ <MatrixDim>Ðàçìåð Ìàòðèöû</MatrixDim>\r
+ <NoCut>Íè÷åãî íå âûáðàííî ÷òîáû âûðåçàòü</NoCut>\r
+ <NoPaste>Íå÷åãî âñòàâëÿòü</NoPaste>\r
+ <NoBox>Íå âûáðàí áëîê äëÿ âñòàâêè</NoBox>\r
+ <NoCopy>Íè÷åãî íå âûáðàíî äëÿ êîïèðîâàíèÿ</NoCopy>\r
+ <Copied>Ñêîïèðîâàíî</Copied>\r
+ <ReadingData>Îøèáêà ÷òåíèÿ âûõîäíûõ äàííûõ</ReadingData>\r
+ <Clipboard>Âûðàæåíèå ýêñïîðòèðîâàííî â áóôåð îáìåíà</Clipboard>\r
+ <NoExpression>Íåò âûðàæåíèÿ äëÿ êîíâåðòàöèè</NoExpression>\r
+ <NoFormat>Íå çàãðóæåí ôàéë ôîðìàòà </NoFormat>\r
+ <ImageSize>Choose the image size 1-10 (Smallest-Largest)</ImageSize>\r
+ \r
+ <!-- Tooltips for math buttons -->\r
+ <Multiply>Óìíàæåíèå</Multiply>\r
+ <Divide>Äåëåíèå</Divide> \r
+ <Add>Ñëîæåíèå</Add> \r
+ <Subtract>Âû÷èòàíèå</Subtract> \r
+ <Comma>Çàïÿòàÿ</Comma>\r
+ <PlusMinus>Ïëþñ-Ìèíóñ</PlusMinus>\r
+ <SquareRoot>Êâàäðàòíûé Êîðåíü</SquareRoot> \r
+ <NthRoot>N-é Êîðåíü</NthRoot> \r
+ <Power>Âåðõíèé Èíäåêñ</Power> \r
+ <Subscript>Íèæíèé Èíäåêñ</Subscript> \r
+ <Matrix>Ìàòðèöà</Matrix> \r
+ <Integral>Èíòåãðèðîâàíèå</Integral>\r
+ <Differential>Äèôôåðåíöèðîâàíèå</Differential>\r
+ <LessThan>Ìåíüøå</LessThan> \r
+ <GreaterThan>Áîëüøå</GreaterThan> \r
+ <LTEQ>Ìåíüøå èëè Ðàâíî</LTEQ> \r
+ <GTEQ>Áîëüøè èëè Ðàâíî</GTEQ>\r
+ <Equals>Ðàâåíñòâî</Equals>\r
+ <NotEqual>Íåðàâåíñòâî</NotEqual> \r
+ <Union>Îáúåäèíåíèå</Union> \r
+ <Intersection>Ïåðåñå÷åíèå</Intersection> \r
+ <Subset>Ïîäìíîæåñòâî</Subset> \r
+ <SubsetEq>Ïîäìíîæåñòâî èëè Ðàâåíñòâî</SubsetEq> \r
+ <NSubset>Íå Ïîäìíîæåñòâî</NSubset> \r
+ <NSubsetEq>Íå Ïîäìíîæåñòâî èëè Ðàâåíñòâî</NSubsetEq> \r
+ <Sine>Ñèíóñ</Sine> \r
+ <Cosine>Êîñèíóñ</Cosine> \r
+ <Tangent>Tangent</Tangent> \r
+ <ArcSine>Èíâåðñíûé Ñèíóñ</ArcSine> \r
+ <ArcCosine>Èíâåðñíûé Êîñèíóñ</ArcCosine> \r
+ <ArcTangent>Èíâåðñíûé Òàíãåíñ</ArcTangent> \r
+ <SineH>Ãèïåðáîëè÷åñêèé Ñèíóñ</SineH> \r
+ <CosineH>Ãèïåðáîëè÷åñêèé Êîñèíóñ</CosineH> \r
+ <TanH>Ãèïåðáîëè÷åñêèé Òàíãåíñ</TanH> \r
+ <ArcSineH>Èíâåðñíûé Ãèïåðáîëè÷åñêèé Ñèíóñ</ArcSineH> \r
+ <ArcCosineH>Èíâåðñíûé Ãèïåðáîëè÷åñêèé Êîñèíóñ</ArcCosineH> \r
+ <ArcTanH>Èíâåðñíûé Ãèïåðáîëè÷åñêèé Òàíãåíñ</ArcTanH> \r
+ <Logarithm>Ëîãàðèôì</Logarithm>\r
+ <NaturalLogarithm>Íàòóðàëüíûé Ëîãàðèôì</NaturalLogarithm> \r
+ <Exp>Ýêñïîíåíöèàëüíàÿ Ôóíêöèÿ</Exp> \r
+ <UMinus>Ìèíóñ</UMinus> \r
+ <BracketsRnd>Êðóãëûå Ñêîáêè</BracketsRnd> \r
+ <BracketsCurl>Ôèãóðíûå Ñêîáêè</BracketsCurl> \r
+ <BracketsSq>Êâàäðàòíûå Ñêîáêè</BracketsSq> \r
+ <Abs>Ìîäóëü</Abs> \r
+ <Infinity>Áåñêîíåñíîñòü</Infinity>\r
+ <GreekLetter>Ãðå÷åñêàÿ Áóêâà</GreekLetter> \r
+ <Factorial>Ôàêòîðèàë</Factorial> \r
+ <Max>Ìàêñèìóì</Max> \r
+ <Min>Ìèíèìóì</Min> \r
+ <Assignment>Ïðèñâàèâàíèå</Assignment>\r
+ <Function>Íåèçâåñòíàÿ ôóíêöèÿ</Function> \r
+ <Determinant>Äåòåðìèíàíò</Determinant>\r
+ <Trace>Òðàññèðîâêà</Trace>\r
+ <DefiniteIntegral>Îïðåäåë¸ííûé Èíòåãðàë</DefiniteIntegral>\r
+ <Product>Ïðîèçâåäåíèå</Product>\r
+ <Sum>Ñóììèðîâàíèå</Sum>\r
+ <Limit>Ïðåäåë</Limit>\r
+ <Evaluate>Âû÷èñëèòü âûðàæåíèå â òî÷êå</Evaluate>\r
+ <LeftArrow>Left arrow</LeftArrow> \r
+ <RightArrow>Right arrow</RightArrow> \r
+ <UpArrow>Up arrow</UpArrow> \r
+ <DownArrow>Down arrow</DownArrow> \r
+ <LeftDblArrow>Left double arrow</LeftDblArrow> \r
+ <RightDblArrow>Right double arrow</RightDblArrow> \r
+ <LeftRightArrow>Left-Right arrow</LeftRightArrow> \r
+ <LeftRightDblArrow>Left-Right double arrow</LeftRightDblArrow> \r
+ <NorthEastArrow>North-East arrow</NorthEastArrow> \r
+ <SouthEastArrow>South-East arrow</SouthEastArrow> \r
+ <NorthWestArrow>North-West arrow</NorthWestArrow> \r
+ <SouthWestArrow>South-West arrow</SouthWestArrow>\r
+ <Multiply2>Multiplication</Multiply2>\r
+ <Divide2>Division</Divide2>\r
+ <Equiv>Equivalence</Equiv>\r
+ <Exists>There Exists</Exists>\r
+ <ForAll>For All</ForAll>\r
+ <IsIn>Element Of</IsIn>\r
+ <NotExists>There Does Not Exist</NotExists>\r
+ <NotIn>Not An Element Of</NotIn>\r
+ <SimEq>Asymptotically Equivalent To</SimEq>\r
+ <Or>Or</Or>\r
+ <And>And</And>\r
+ <Not>Not</Not>\r
+ <PartialDifferential>Partial Differential</PartialDifferential>\r
+ \r
+ <!-- Tooltips for command buttons -->\r
+ <OpenButton>Çàãðóçèòü âûðàæåíèå èç ôàéëà</OpenButton>\r
+ <SaveButton>Ñîõðàíèòü âûðàæåíèå â ôàéë</SaveButton>\r
+ <ExportButton>Ýêñïîðòèðîâàòü âûðàæåíèå â áóôåð îáìåíà</ExportButton>\r
+ <UndoButton>Îòìåíèòü</UndoButton>\r
+ <RedoButton>Ïîâòîðèòü</RedoButton>\r
+ <CutButton>Âûðåçàòü</CutButton>\r
+ <CopyButton>Êîïèðîâàòü</CopyButton>\r
+ <PasteButton>Âñòàâèòü</PasteButton>\r
+ <ClearButton>Î÷èñòèòü ðàáî÷åå ïðîñòðàíñòâî</ClearButton>\r
+ <SelectButton>Âûáðàòü ðàáî÷åå ïðîñòðàíñòâî</SelectButton>\r
+ <LoadFormatButton>Çàãðóçèòü ýêñïîðò ôàéëà ôîðìàòà</LoadFormatButton>\r
+ <LoadLangButton>Çàãðóçèòü ÿçûêîâîé ôàë</LoadLangButton>\r
+ <ShowTreeButton>Ïîêàçàòü äðåâîâèäíóþ ñòðóêòóðó âûðàæåíèÿ</ShowTreeButton>\r
+ <OutlineButton>Ïîêàçàòü î÷åðòàíèå îáúåêòîâ íà ðàáî÷åì ïðîñòðàíñòâå</OutlineButton>\r
+ <OnlineHelpButton>Çàãðóçèòü äîêóìåíò ïîìîùè â âåá-áðàóçåðå</OnlineHelpButton>\r
+ <AboutButton>Î DragMath</AboutButton>\r
+ \r
+ <!-- Menu -->\r
+ <FileMenu>Ôàéë</FileMenu>\r
+ <OpenMenu>Îòêðûòü...</OpenMenu>\r
+ <SaveAsMenu>Ñîõðàíèòü êàê...</SaveAsMenu>\r
+ <ExportMenu>Ýêñïîðòèðîâàòü â áóôåð îáìåíà</ExportMenu>\r
+ <ImageMenu>Export to image</ImageMenu>\r
+ \r
+ <EditMenu>Ïðàâêà</EditMenu>\r
+ <UndoMenu>Îòìåíèòü</UndoMenu>\r
+ <RedoMenu>Ïîâòîðèòü</RedoMenu>\r
+ <CutMenu>Âûðåçàòü</CutMenu>\r
+ <CopyMenu>Êîïèðîâàòü</CopyMenu>\r
+ <PasteMenu>Âûðåçàòü</PasteMenu>\r
+ <ClearMenu>Î÷èñòèòü Ðàáî÷åå Ïðîñòðàíñòâî</ClearMenu>\r
+ <SelectMenu>Âûáðàòü Âñ¸</SelectMenu>\r
+ \r
+ <OptionsMenu>Íàñòðîéêè</OptionsMenu>\r
+ <SetExportMenu>Óñòàíîâèòü ôîðìàò ýêñïîðòà</SetExportMenu>\r
+ <SetLanguageMenu>Óñòàíîâèòü ÿçûê</SetLanguageMenu>\r
+ \r
+ <HelpMenu>Ïîìîùü</HelpMenu>\r
+ <DebugMenu>Îòëàäêà</DebugMenu>\r
+ <TreeMenu>Ïîêàçàòü äåðåâî âûðàæåíèÿ</TreeMenu>\r
+ <OutlineMenu>Ïîêàçàòü î÷åðòàíèÿ</OutlineMenu>\r
+ <OnlineHelpMenu>Îíëàéí Ïîìîùü</OnlineHelpMenu>\r
+ <AboutMenu>Î DragMath</AboutMenu>\r
+ \r
+</Language>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+\r
+<!--\r
+ Document : en.xml\r
+ Created on : 30 July 2007, 15:43\r
+ Author : Alex Billingsley\r
+ Description:\r
+ Purpose of the document follows.\r
+-->\r
+\r
+<Language>\r
+ \r
+ <!-- Error Messages --> \r
+ <ReadingFile>Fel vid format filläsning: Kolla att filen är giltig</ReadingFile> \r
+ <ReadingFile2>Error loading format file: </ReadingFile2>\r
+ <LoadingExp>Fel vid laddning av sparad uttryck</LoadingExp>\r
+ <SavingExp>Fel vid sparande av uttryck</SavingExp>\r
+ <Cut>Kan inte klippa ut markeringen: </Cut>\r
+ <Copy>Kan inte kopiera markeringen: </Copy>\r
+ <Tree>Kan inte visa trädet: </Tree>\r
+ <Action>Åtgärden kunde inte fullgöras: </Action>\r
+ <AddMatrix>Kan inte lägga till en Matris här</AddMatrix>\r
+ <Operator>Operator saknas vid läge </Operator>\r
+ <Argument>Operatorns variabel (Argument) saknas vid läge </Argument>\r
+ <Image>Error: Cannot export to image. Check internet connection and access to http://www.mathtran.org</Image>\r
+ \r
+ <!-- Status Bar Messages --> \r
+ <ParseExp>Uttrycket kan inte tolkas</ParseExp>\r
+ <ChooseFile>DragMath - Välj en format fil att ladda</ChooseFile>\r
+ <LoadExpression>DragMath - Välj en uttrycksfil att ladda</LoadExpression>\r
+ <SaveExpression>DragMath - Välj var du vill spara uttrycket</SaveExpression>\r
+ <EnterRows>Ange antalet rader i matrisen</EnterRows>\r
+ <EnterColumns>Ange antalet kolumner i matrisen</EnterColumns>\r
+ <MatrixDim>Matris mått</MatrixDim>\r
+ <NoCut>Inget vald att klippa ut</NoCut>\r
+ <NoPaste>Ingeting att klistra in</NoPaste>\r
+ <NoBox>Ingen box vald att klistra in i</NoBox>\r
+ <NoCopy>Inget vald att kopiera</NoCopy>\r
+ <Copied>Kopierad</Copied>\r
+ <ReadingData>Fel vid läsning av output data</ReadingData>\r
+ <Clipboard> uttryck kopierad till minnet</Clipboard>\r
+ <NoExpression>Inget uttryck att omvandla</NoExpression>\r
+ <NoCustom>Ingen format fil har laddats än</NoCustom>\r
+ <ImageSize>Choose the image size 1-10 (Smallest-Largest)</ImageSize>\r
+ \r
+ <!-- Tooltips for buttons -->\r
+ <Multiply>Multiplikation</Multiply>\r
+ <Divide>Division</Divide> \r
+ <Add>Addition</Add> \r
+ <Subtract>Subtraktion</Subtract> \r
+ <Comma>Komma</Comma> \r
+ <PlusMinus>Plus-Minus</PlusMinus>\r
+ <SquareRoot>Kvadratrot</SquareRoot> \r
+ <NthRoot>N-te rot</NthRoot> \r
+ <Power>exponent</Power> \r
+ <Subscript>index</Subscript> \r
+ <Matrix>Matris</Matrix> \r
+ <Integral>Integration</Integral>\r
+ <Differential>Differentiering</Differential>\r
+ <LessThan>mindre än</LessThan> \r
+ <GreaterThan>större än</GreaterThan> \r
+ <LTEQ>mindre än eller lika med</LTEQ> \r
+ <GTEQ>större än eller lika med</GTEQ>\r
+ <Equals>lika med</Equals>\r
+ <NotEqual>Ingen lika med</NotEqual>\r
+ <Union>Union</Union> \r
+ <Intersection>Intersektion</Intersection> \r
+ <Subset>Subset (undergrupp)</Subset> \r
+ <SubsetEq>Subset (undergrupp) eller lika med</SubsetEq> \r
+ <NSubset>Ingen Subset (undergrupp)</NSubset> \r
+ <NSubsetEq>Ingen Subset (undergrupp) eller lika med</NSubsetEq> \r
+ <Sine>Sinus</Sine> \r
+ <Cosine>Cosinus</Cosine> \r
+ <Tangent>Tangens</Tangent> \r
+ <ArcSine>Invers Sinus</ArcSine> \r
+ <ArcCosine>Invers Cosinus</ArcCosine> \r
+ <ArcTangent>Invers Tangens</ArcTangent> \r
+ <SineH>Hyperbolisk Sinus</SineH> \r
+ <CosineH>Hyperbolisk Cosinus</CosineH> \r
+ <TanH>Hyperbolisk Tangens</TanH> \r
+ <ArcSineH>Invers Hyperbolisk Sinus</ArcSineH> \r
+ <ArcCosineH>Invers Hyperbolisk Cosinus</ArcCosineH> \r
+ <ArcTanH>Invers Hyperbolisk Tangens</ArcTanH> \r
+ <Logarithm>Logaritm</Logarithm>\r
+ <NaturalLogarithm>Naturlig Logaritm</NaturalLogarithm> \r
+ <Exp>Exponentiell Funktion</Exp> \r
+ <UMinus>Minus</UMinus> \r
+ <BracketsRnd>rundparentes</BracketsRnd> \r
+ <BracketsCurl>klammerparentes</BracketsCurl> \r
+ <BracketsSq>hakparentes</BracketsSq> \r
+ <Abs>Absolut Värde</Abs> \r
+ <Infinity>oändlighet</Infinity>\r
+ <GreekLetter>Grekisk bokstav</GreekLetter> \r
+ <Factorial>Faktorial</Factorial> \r
+ <Max>Maximum av en mängd</Max> \r
+ <Min>Minimum av en mängd</Min> \r
+ <Assignment>Assignment</Assignment>\r
+ <Function>okänd funktion</Function> \r
+ <Determinant>Determinant</Determinant>\r
+ <Trace>Trace</Trace>\r
+ <DefiniteIntegral>Bestämd Integral</DefiniteIntegral>\r
+ <Product>Produkt</Product>\r
+ <Sum>Summa</Sum>\r
+ <Limit>Gränvärdet</Limit>\r
+ <Evaluate>utvärdera ett uttryck vid en punkt</Evaluate>\r
+ <LeftArrow>Left arrow</LeftArrow> \r
+ <RightArrow>Right arrow</RightArrow> \r
+ <UpArrow>Up arrow</UpArrow> \r
+ <DownArrow>Down arrow</DownArrow> \r
+ <LeftDblArrow>Left double arrow</LeftDblArrow> \r
+ <RightDblArrow>Right double arrow</RightDblArrow> \r
+ <LeftRightArrow>Left-Right arrow</LeftRightArrow> \r
+ <LeftRightDblArrow>Left-Right double arrow</LeftRightDblArrow> \r
+ <NorthEastArrow>North-East arrow</NorthEastArrow> \r
+ <SouthEastArrow>South-East arrow</SouthEastArrow> \r
+ <NorthWestArrow>North-West arrow</NorthWestArrow> \r
+ <SouthWestArrow>South-West arrow</SouthWestArrow>\r
+ <Multiply2>Multiplication</Multiply2>\r
+ <Divide2>Division</Divide2>\r
+ <Equiv>Equivalence</Equiv>\r
+ <Exists>There Exists</Exists>\r
+ <ForAll>For All</ForAll>\r
+ <IsIn>Element Of</IsIn>\r
+ <NotExists>There Does Not Exist</NotExists>\r
+ <NotIn>Not An Element Of</NotIn>\r
+ <SimEq>Asymptotically Equivalent To</SimEq>\r
+ <Or>Or</Or>\r
+ <And>And</And>\r
+ <Not>Not</Not>\r
+ <PartialDifferential>Partial Differential</PartialDifferential>\r
+ \r
+ <!-- Tooltips for command buttons -->\r
+ <OpenButton>Ladda uttryck från en fil</OpenButton>\r
+ <SaveButton>Spara uttryck till fil</SaveButton>\r
+ <ExportButton>Export expression to clipboard</ExportButton>\r
+ <UndoButton>Ångra</UndoButton>\r
+ <RedoButton>Redo</RedoButton>\r
+ <CutButton>Klipp ut</CutButton>\r
+ <CopyButton>Kopiera</CopyButton>\r
+ <PasteButton>klistra in</PasteButton>\r
+ <ClearButton>Clear the entire workspace</ClearButton>\r
+ <SelectButton>Select the entire workspace</SelectButton>\r
+ <LoadFormatButton>Load an export format file</LoadFormatButton>\r
+ <LoadLangButton>Load a language file</LoadLangButton>\r
+ <ShowTreeButton>Visa träd för Uttrycket</ShowTreeButton>\r
+ <OutlineButton>Display outline of objects on workspace</OutlineButton>\r
+ <OnlineHelpButton>Loads help documents in web browser</OnlineHelpButton>\r
+ <AboutButton>Om DragMath</AboutButton>\r
+ \r
+ <!-- Menu -->\r
+ <FileMenu>File</FileMenu>\r
+ <OpenMenu>Open...</OpenMenu>\r
+ <SaveAsMenu>Save As...</SaveAsMenu>\r
+ <ExportMenu>Export to clipboard</ExportMenu>\r
+ <ImageMenu>Export to image</ImageMenu>\r
+ \r
+ <EditMenu>Edit</EditMenu>\r
+ <UndoMenu>Ångra</UndoMenu>\r
+ <RedoMenu>Redo</RedoMenu>\r
+ <CutMenu>Klipp ut</CutMenu>\r
+ <CopyMenu>Kopiera</CopyMenu>\r
+ <PasteMenu>klistra in</PasteMenu>\r
+ <ClearMenu>Clear Workspace</ClearMenu>\r
+ <SelectMenu>Select All</SelectMenu>\r
+ \r
+ <OptionsMenu>Options</OptionsMenu>\r
+ <SetExportMenu>Set export format</SetExportMenu>\r
+ <SetLanguageMenu>Set language</SetLanguageMenu>\r
+ \r
+ <HelpMenu>Help</HelpMenu>\r
+ <DebugMenu>Debug</DebugMenu>\r
+ <TreeMenu>Visa träd för uttryck</TreeMenu>\r
+ <OutlineMenu>Visa innehållsblock</OutlineMenu>\r
+ <OnlineHelpMenu>Online Help</OnlineHelpMenu>\r
+ <AboutMenu>Om DragMath</AboutMenu>\r
+ \r
+ \r
+</Language>\r
--- /dev/null
+\r
+<html>\r
+<head>\r
+<title>DragMath - Demonstration</title>\r
+</head>\r
+<body>\r
+\r
+<font size="3"; style="font-family: Arial;">\r
+\r
+<p></p>\r
+<h1 style="text-align: center;"><span style="color: rgb(0, 0, 128);">DragMath</span></h1>\r
+<hr />\r
+\r
+<span style="color: rgb(0, 0, 128);">\r
+<center>\r
+<h4>\r
+<a href="index.html">Home</a> \r
+<a href="demo.html">Demonstration</a> \r
+<a href="index.html#Download">Download</a> \r
+<a href="doc/index.html">Documentation</a> \r
+<a href="integrations.html">Integrations</a> \r
+<a href="support.html">Support DragMath</a> \r
+<a href="index.html#Contact">Contact</a>\r
+</h4>\r
+</center>\r
+</span>\r
+\r
+<hr />\r
+\r
+<h2><span style="color: rgb(0, 0, 128);"><a name="Demonstration">Demonstration</a></span></h2>\r
+<p>\r
+<applet width="540" height="333" archive="Project.jar,AbsoluteLayout.jar,swing-layout-1.0.jar,jdom.jar,jep.jar" code="Display.MainApplet.class" codebase="applet/classes" name="DragMath">\r
+<param value="en" name="language" />To use this page you need a Java-enabled browser. Download the latest Java plug-in from <a href="http://www.java.com/">Java.com</a> \r
+</applet></p>\r
+<br>\r
+\r
+</h2>\r
+<p><a href="applet/Maxima.html"><b>Maxima Demo</b></a><br />\r
+This example shows setting the default output format to 'Maxima', and how JavaScript can be used to provide further interaction between a web-page and DragMath.<br />\r
+<br />\r
+<a href="applet/Latex.html"><b>LaTeX Demo</b></a><br />\r
+This example sets the default output format to 'LaTeX', and passes the LaTeX syntax to an external applet which renders it dynamically.<br />\r
+<br />\r
+<a href="applet/MathML.html"><b>MathML Demo</b></a><br />\r
+This example dynamically inserts the generated MathML syntax in the web-page, so the created expression is displayed with MathML.It requires a MathML enabled Gecko browser, or Internet Explorer and a MathML plugin.<br />\r
+ </p>\r
+<hr />\r
+<center>\r
+<p>© 2008 Alex Billingsley, Chris Sangwin\r
+</center>\r
+</p>\r
+\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\about.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc about.html\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\acknowledgments.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc acknowledgments.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\browser.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc browser.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\complex.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc complex.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\cvs.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc cvs.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\editing.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc editing.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\index.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc index.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\integrations.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc integrations.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\language.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc language.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\navframe.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc navframe.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\newformat.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc newformat.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\newobject.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc newobject.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\options.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc options.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\parameters.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc parameters.html\r
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\simple.html --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc simple.html\r
+2008.01.23 10:48 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc WS_FTP.LOG\r
+2008.01.23 10:59 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc WS_FTP.LOG\r
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - About DragMath</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<p><h2><span style=" color: #000099;"><strong>About DragMath</strong></span></h2></p>\r
+\r
+<p>\r
+DragMath is a simple "drag and drop" equation editor for mathematics. Accepting certain traditional mathematical conventions, the user can build a mathematical expression. This expression can be exported in a number of different formats. DragMath is a simple Java applet, and could be incorporated into web-based applications or other Java applications.\r
+</p>\r
+<p>\r
+DragMath started as a final-year University project at the <a href ="http://www.bham.ac.uk/">University of Birmingham<a/> by <a href="http://www.abillingsley.co.uk">Alex Billingsley</a> under the supervision of <a href ="http://web.mat.bham.ac.uk/C.J.Sangwin/">Chris Sangwin</a>. It's main application is therefore directed toward an educational one.\r
+</p>\r
+\r
+</font>\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - License</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<h2><span style="color: #000099;"><strong>DragMath copyright information</strong></span></h2>\r
+\r
+<p>DragMath is licensed under the GNU General Public License (GPL) (<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>)\r
+</p><p>\r
+All source code in this package is written by <a href="http://www.abillingsley.co.uk">Alex Billingsley</a> except the libraries used. The copyright information for the libaries is included below:</p>\r
+<br>\r
+<p>\r
+<h4>JDOM<br> <a href="http://www.jdom.org">http://www.jdom.org</a></h4>\r
+JDOM is available under an Apache-style open source license, with the acknowledgment clause removed. This license is among the least restrictive license available, enabling developers to use JDOM in creating new products without requiring them to release their own products as open source. This is the license model used by the Apache Project, which created the Apache server. The license is available at the top of every source file and in LICENSE.txt in the root of the distribution.\r
+</p>\r
+<br>\r
+<p>\r
+<h4>JEP<br><a href="https://sourceforge.net/projects/jep/">https://sourceforge.net/projects/jep/</a></h4>\r
+JEP is licensed under the GNU General Public License (GPL) (<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>)</p>\r
+<p>\r
+<br>\r
+<h4>glyFX Common Toolbar Set Icons<br> <a href="http://www.glyfx.com">http://www.glyfx.com</a></h4>\r
+Icons used in software, license found at; <a href="http://www.glyfx.com/license-toolbar.html">http://www.glyfx.com/license-toolbar.html</a></p>\r
+\r
+\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - Running applet in web browser</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<h2><span style=" color: #000099;"><strong>Running applet in web browser</strong></span></h2>\r
+\r
+<p>\r
+Details are given on the file structure of the required files, and <APPLET> tag to enable the applet to run in a web browser.\r
+ </p><p>\r
+The applet currently requires Java Runtime Environment (JRE) 1.4 or higher to run, which can be obtained from <A href="http://www.java.com">www.java.com</A>\r
+ </p><p>\r
+The recommended file structure is:\r
+ </p>\r
+\r
+<dl>\r
+ <dd>applet.html</dd>\r
+ <br>\r
+ <dd>\dragmath</dd>\r
+<br>\r
+ <dl>\r
+ <dd>\Display</dd>\r
+ <dl>\r
+ <dd>MainApplet.class</dd>\r
+ </dl>\r
+<br>\r
+ <dd>\lang</dd>\r
+ <dl>\r
+ <dd>en.xml</dd>\r
+ </dl>\r
+<br>\r
+ <dd>\formats</dd>\r
+ <dl>\r
+ <dd>Maple.xml</dd>\r
+ <dd>Latex.xml</dd>\r
+ <dd>MathML.xml</dd>\r
+ <dd>Maxima.xml</dd>\r
+ </dl>\r
+<br>\r
+ <dd>AbsoluteLayout.jar</dd>\r
+ <dd>swing-layouts-1.0.jar</dd>\r
+ <dd>jdom.jar</dd>\r
+ <dd>jep.jar</dd>\r
+ <dd>Project.jar</dd>\r
+ </dl>\r
+</dl>\r
+<br>\r
+Using this structure the following <APPLET> tag should be used:\r
+</p>\r
+ <p>\r
+<STRONG>\r
+<FONT color=#800080><applet</FONT>\r
+name=</STRONG>\r
+<FONT color=#0000ff>"dragmath"</FONT>\r
+<STRONG>codebase=</STRONG><FONT \r
+color=#0000ff>"classes"</FONT>\r
+<STRONG>code=</STRONG>\r
+<FONT color=#0000ff>"Display.MainApplet.class"</FONT>\r
+ <STRONG>archive=</STRONG>\r
+<FONT color=#0000ff>"Project.jar,AbsoluteLayout.jar,swing-layout-1.0.jar,,jdom.jar,,jep.jar"</FONT>\r
+<STRONG> width=</STRONG>\r
+<FONT color=#0000ff>540</FONT>\r
+<STRONG> height=</STRONG>\r
+<FONT color=#0000ff>300</FONT>\r
+<STRONG>><BR>\r
+<FONT color=#800080><param</FONT> \r
+name=</STRONG>\r
+<FONT color=#0000ff>language </FONT>\r
+<STRONG>value=</STRONG>\r
+<FONT color=#0000ff>"en"</FONT>\r
+<STRONG> ><BR>\r
+<FONT color=#800080></applet ></FONT>\r
+</STRONG>\r
+ </p>\r
+ \r
+All of the .jar files in the \dragmath directory require digitally signing. A tutorial on how to do this can be viewed at,<br>\r
+<A href="http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html#example">http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html#example</A>\r
+\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - Creating complex expressions</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<h2><span style=" color: #000099;"><strong>Creating complex expressions</strong></span></h2>\r
+\r
+<p>\r
+To apply an object to multiple objects, you will need to select the multiple objects and then click on the object to apply in the toolbar. Selection is performed as it is in any program, by using the mouse to highlight the desired area.\r
+</p>\r
+ <p>\r
+Operators and functions can be entered into text boxes using the keyboard with the following syntax:\r
+</p>\r
+<br>\r
+\r
+<table border="1">\r
+<tr>\r
+<th>Name</th>\r
+<th>Syntax</th>\r
+</tr>\r
+<tr>\r
+<td>Addition</td>\r
+<td>+</td>\r
+</tr>\r
+<tr>\r
+<td>Multiplication</td>\r
+<td>*</td>\r
+</tr>\r
+<tr>\r
+<td>Division</td>\r
+<td>/</td>\r
+</tr>\r
+<tr>\r
+<td>Greater than</td>\r
+<td>></td>\r
+</tr>\r
+<tr>\r
+<td>Less than</td>\r
+<td><</td>\r
+</tr>\r
+<tr>\r
+<td>Equal</td>\r
+<td>=<br>==</td>\r
+</tr>\r
+<tr>\r
+<td>Less than or Equal</td>\r
+<td><=</td>\r
+</tr>\r
+<tr>\r
+<td>Greater than or Equal</td>\r
+<td>>=</td>\r
+</tr>\r
+<tr>\r
+<td>Power</td>\r
+<td>^</td>\r
+</tr>\r
+<tr>\r
+<td>Sine</td>\r
+<td>sin(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Cosine</td>\r
+<td>cos(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Tangent</td>\r
+<td>tan(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Arc Sine</td>\r
+<td>asin(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Arc Cosine</td>\r
+<td>acos(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Arc Tangent</td>\r
+<td>atan(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Hyperbolic Sine</td>\r
+<td>sinh(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Hyperbolic Cosine</td>\r
+<td>cosh(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Hyperbolic Tangent</td>\r
+<td>tanh(x)</td>\r
+</tr>\r
+<td>Inverse Hyperbolic Sine</td>\r
+<td>asinh(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Inverse Hyperbolic Cosine</td>\r
+<td>acosh(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Inverse Hyperbolic Tangent</td>\r
+<td>atanh(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Natural Logarithm</td>\r
+<td>ln(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Logarithm</td>\r
+<td>log(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Exponential</td>\r
+<td>exp(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Absolute Value</td>\r
+<td>abs(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Square Root</td>\r
+<td>sqrt(x)</td>\r
+</tr>\r
+<tr>\r
+<td>Union</td>\r
+<td>union(a,b)</td>\r
+</tr>\r
+<tr>\r
+<td>Intersection</td>\r
+<td>intersection(a,b)</td>\r
+</tr>\r
+<tr>\r
+<td>Determinant</td>\r
+<td>det(a)</td>\r
+</tr>\r
+<tr>\r
+<td>Trace</td>\r
+<td>trace(a)</td>\r
+</tr>\r
+<tr>\r
+<td>Subset</td>\r
+<td>subset(a,b)</td>\r
+</tr>\r
+<tr>\r
+<td>Integral</td>\r
+<td>integrate(f,x)<br>\r
+int(f,x)</td>\r
+</tr>\r
+<tr>\r
+<td>Definite Integral</td>\r
+<td>integrate(f,x,a,b)<br>\r
+int(f,x,a,b)\r
+</td>\r
+</tr>\r
+<tr>\r
+<td>Differential</td>\r
+<td>diff(f,x)</td>\r
+</tr>\r
+<td>Sum</td>\r
+<td>sum(n^2,n,1,10)</td>\r
+</tr>\r
+<td>Product</td>\r
+<td>product(n^2,n,1,10)</td>\r
+</tr>\r
+\r
+</table>\r
+\r
+<p>\r
+Once the box that you have been typing in has been left then the text is turned into templates automatically for you.\r
+</p>\r
+<br>\r
+<font size=3>\r
+<b>How to use layout templates</b>\r
+</font>\r
+\r
+<p>\r
+There are special templates called layout templates, beause they each take a unique layout. These are:<br>\r
+Fraction<br>\r
+Square Root<br>\r
+N-th Root<br>\r
+Subscript<br>\r
+Superscript<br>\r
+Matrix<br>\r
+Integral<br>\r
+Differential<br>\r
+Product<br>\r
+Sum<br>\r
+Limit<br>\r
+Evaluate at a point<br>\r
+Grouping (round brackets, curly brackets, square brackets, modulus)<br>\r
+</p>\r
+ <p>\r
+These layout templates can be used in exactly the same way as the other math templates.\r
+</p>\r
+ \r
+<br>\r
+<font size=3>\r
+<b>How to add symbols</b>\r
+</font>\r
+<p>\r
+Symbols such as greek letters are added by clicking in the box you wish to insert the symbol, and then clicking on the symbol in the toolbar.\r
+</p>\r
+\r
+</font>\r
+</body>\r
+</html>\r
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - Setting up DragMath CVS in NetBeans</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<h2><span style=" color: #000099;"><strong>Setting up DragMath CVS in NetBeans</strong></span></h2>\r
+\r
+<p>\r
+Below are the instructions on how to get active as a developer of DragMath and set up NetBeans with the DragMath code versioning system (CVS).</p>\r
+<p>\r
+1. Install NetBeans<br>\r
+2. Get source code from DragMath CVS repository<br>\r
+3. Update and Commiting your local source code copy\r
+</p>\r
+<br>\r
+\r
+<font size=3><b>\r
+1. Install NetBeans\r
+</b></font>\r
+<br>\r
+<p>\r
+NetBeans is the integrated development environment (IDE) used for DragMath.\r
+It is open source and can be downloaded from http://www.netbeans.org.\r
+</p>\r
+<br>\r
+\r
+<font size=3><b>\r
+2. Get source code from DragMath CVS repository\r
+</b></font>\r
+<p>\r
+Start NetBeans and do the following to get the DragMath source code:<br>\r
+<p>\r
+1. File -> New Project\r
+</p><p>\r
+2. Choose the 'General' category, and then 'Java Application' under Projects, then click Next.\r
+</p><p>\r
+3. Set the Project Name as "ddma". Click Browse to choose the location where you would like the code stored. Then click Next.\r
+</p><p>\r
+4. CVS -> Checkout. The click Edit.\r
+</p><p>\r
+5. Fill in the location information identifying the DragMath CVS repository and click OK.<br>\r
+ <b>Access Method:</b> pserver for anonymous, ext for developer accounts<br>\r
+ <b>User:</b> "anonymous" or your DragMath developer account at SourceForge<br>\r
+ <b>Host:</b> dragmath.cvs.sourceforge.net<br>\r
+ <b>Repository Path:</b> /cvsroot/dragmath\r
+</p><p>\r
+6. Enter your password, none for anonymous login, then click Next\r
+</p><p>\r
+7. Set the Module as "ddma", and the Local Folder to the same location the Project was created. Then click Finish.\r
+</p><p>\r
+8. Once the source code has been downloaded, click Close to the popup message about opening the project.\r
+</p><p>\r
+9. The different packages containing the source code can now be seen in the projects window. The package 'ddma' containing the Main.java class can be deleted, as it was created for the new Project and is not part of the DragMath source code.\r
+</p><p>\r
+10. The libraries used by DragMath must now be added to the Project. Right click on Libraries in the Project window, and go to 'Add JAR/Folder...'. Navigate to the ddma -> lib folder and add all the .jar files from this folder.\r
+</p><p>\r
+11. The code is now ready to work on.\r
+</p>\r
+<br>\r
+<font size=3><b>\r
+3. Update and Commiting your local source code copy\r
+</b></font>\r
+<p>\r
+The code can be updated and commited using the Update and Commit options under the CVS menu in NetBeans.\r
+</p>\r
+\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - Editing an expression</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<h2><span style=" color: #000099;"><strong>Editing an expression</strong></span></h2>\r
+\r
+<p>\r
+Basic editing options are supplied to edit the expression:\r
+</p>\r
+\r
+<ul>\r
+<li><p>\r
+Select - Selection is performed similar to any program, by dragging the mouse to highlight the desired area. Objects can also be selected by double clicking on them. You can select all the objects on the workspace by using Select All on the menu, or Ctrl+A on the keyboard.\r
+</p>\r
+<li><p>\r
+Cut \96 Select the desired area to cut, then either click the Cut button or use Ctrl+X on the keyboard.\r
+</p>\r
+<li><p>\r
+Copy \96 Select the desired area to copy, then either click the Copy button or use Ctrl+C on the keyboard.\r
+</p>\r
+<li><p>\r
+Paste \96 Once a selection has been copied, it can be pasted into any box, by clicking on the box to select it, and then either clicking the Paste button or using Ctrl+V on the keyboard.\r
+</p>\r
+<li><p>\r
+Delete \96 Delete is performed by selecting the area to delete and pressing delete on the keyboard.\r
+</p>\r
+<li><p>\r
+Undo \96 You can perform an undo by clicking the Undo button\r
+</p>\r
+<li><p>\r
+Redo \96 You can perform a redo by clicking the Redo button\r
+</p>\r
+<li><p>\r
+Open \96 Saved expressions can be opened from a file using the Open button\r
+</p>\r
+<li><p>\r
+Save \96 Expressions can be saved to a file using the Save button \r
+</p>\r
+</ul>\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\img\plus.jpg --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc/img plus.jpg\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\img\sin on box.jpg --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc/img sin on box.jpg\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\img\sin on plus.jpg --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc/img sin on plus.jpg\r
+2008.01.23 10:10 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\img\sin.jpg --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc/img sin.jpg\r
+2008.01.23 10:48 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\img\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc/img WS_FTP.LOG\r
+2008.01.23 10:59 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\doc\img\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/doc/img WS_FTP.LOG\r
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation</title>\r
+</head>\r
+\r
+\r
+<frameset cols="330,*">\r
+\r
+<frame src="navframe.html">\r
+<frame src="simple.html" \r
+name="showframe">\r
+\r
+</frameset>\r
+\r
+\r
+</html>\r
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - Integrations</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<h2><span style=" color: #000099;"><strong>Integrations</strong></span></h2>\r
+\r
+ <p>\r
+DragMath has been successfully integrated with a number of different systems. The main method used for extracting the expression in the desired format is by using the getMathExpression() method called from JavaScript within a web page. This method returns the expression in the format specified.\r
+</p>\r
+<br>\r
+\r
+<font size=3>\r
+<b><a href ="http://www.moodle.org/">Moodle</a></b>\r
+</font>\r
+<p>\r
+Moodle is a free, open source course management system (CMS). Also know as a Learning Managment System (LMS) or Virtual Learning Environment (VLE). For further details please see the specific Moodle <a href ="http://docs.moodle.org/en/DragMath_equation_editor">installation instructions</a>.\r
+</p>\r
+<br>\r
+\r
+<font size=3>\r
+<b><a href ="http://stack.bham.ac.uk/">STACK</a></b>\r
+</font>\r
+<p>\r
+STACK is a computer aided assessment (CAA) package for mathematics. It was mainly developed by <a href ="http://web.mat.bham.ac.uk/C.J.Sangwin/">Chris Sangwin</a> (a developer of DragMath).\r
+</p>\r
+<br>\r
+\r
+<font size=3>\r
+<b><a href ="http://www.yourmathstutor.info/">YourMathsTutor Website</a></b>\r
+</font>\r
+<p>\r
+YourMathsTutor is a website created primarily to help students studying the for the UK's Key Stage 3, GCSE, AS and A Level mathematics and physics exams. DragMath has been integrated into the forum on this website. The forum is a <a href ="http://www.simplemachines.org/">Simple Machines Forum</a> (SMF), which is a powerful open source forum. More information on how it was <a href ="http://yourmathstutor.blogspot.com/2007/08/dragmath.html">integrated</a> and how it is <a href ="http://www.yourmathstutor.info/forum/index.php?topic=4.0">used</a> in the forum.\r
+</p>\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - Adding a language</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<h2><span style=" color: #000099;"><strong>Adding a language</strong></span></h2>\r
+\r
+<p>\r
+The software is supplied with an English language file, \91en.xml\92. This can be used as a template for creating other language files. To change the language data simply change the text within the tags in XML file.\r
+</p>\r
+<p>\r
+For example consider the error message when a file cannot be read,\r
+</p><p>\r
+<strong>\r
+<font color=#800080><ReadingFile></font>\r
+Error reading format file: Check file is valid\r
+<font color=#800080></ReadingFile></font>\r
+</strong>\r
+ </p><p>\r
+To change the language of this message, simply change the message between the tags (the bold text). The tags should not be changed, otherwise the language file will not work.\r
+ </p><p>\r
+Once a new language file has been created it should be placed in the \lang folder where the English file was found, and then an entry corresponding to that file entered in the Config.xml file. To change which language file the software uses see the <A href="options.html">Options</A> section or the <A href="parameters.html">Changing applet parameters</A> section.\r
+ </p>\r
+\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<html>\r
+<body>\r
+<br>\r
+<DIV><FONT face=Arial color=#000080\r
+size=5><STRONG>DragMath</STRONG></FONT></DIV>\r
+<br>\r
+<FONT face=Arial>\r
+<dl>\r
+<dt><b>Basic Usage</b><br></dt>\r
+<dd><a href ="simple.html" target ="showframe">Creating simple expressions</a><br></dd>\r
+<dd><a href ="complex.html" target ="showframe">Creating complex expressions</a><br></dd>\r
+<dd><a href ="editing.html" target ="showframe">Editing an expression</a><br></dd>\r
+<dd><a href ="options.html" target ="showframe">Options</a><br></dd>\r
+<br>\r
+<dt><b>Advanced Usage</b><br></dt>\r
+<dd><a href ="language.html" target ="showframe">Adding a language</a><br></dd>\r
+<dd><a href ="newformat.html" target ="showframe">Adding an output format</a><br></dd>\r
+<dd><a href ="parameters.html" target ="showframe">Changing applet parameters</a></dd>\r
+<dd><a href ="integrations.html" target ="showframe">Integrations</a><br></dd>\r
+<br>\r
+<dt><b>Developer Usage</b><br></dt>\r
+<dd><a href ="cvs.html" target ="showframe">Setting up DragMath CVS in NetBeans</a><br></dd>\r
+<dd><a href ="browser.html" target ="showframe">Running applet in web browser</a><br></dd>\r
+<dd><a href ="newobject.html" target ="showframe">Adding a function/operator</a><br></dd>\r
+<br>\r
+<dt><b>About</b><br></dt>\r
+<dd><a href ="acknowledgments.html" target ="showframe">License</a><br></dd>\r
+<dd><a href ="about.html" target ="showframe">About DragMath</a><br></dd>\r
+</dl>\r
+<br><br/>\r
+<b><center><a href ="http://www.dragmath.bham.ac.uk" target ="_top">www.dragmath.bham.ac.uk</a></center></b>\r
+</FONT>\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
+<HTML><HEAD><TITLE>DragMath Documentation - Adding an output format</TITLE>\r
+<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">\r
+<META content="MSHTML 6.00.6000.16525" name=GENERATOR></HEAD>\r
+<BODY>\r
+<DIV><FONT face=Arial color=#000080 size=5><STRONG>Adding an output format</STRONG></FONT></DIV>\r
+<DIV><FONT face=Arial size=2>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2>\r
+<p>\r
+The formats supplied\r
+are Maple, Latex, MathML and Maxima, with the corresponding files found in\r
+the \formats folder. These files can be edited to reflect the syntax you prefer. These\r
+files can also be used as templates for creating files for different formats.\r
+There are a number of rules and options that you need to be aware of to\r
+successfully create an XML file for a new format.</p>Each math object has\r
+its own element in the XML document, with a familiar name describing it, for\r
+example \93Add\94. Within this element there are a number of sub-elements depending\r
+upon how many arguments the object has.</FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><BR>N-ary operators\r
+have a single \91output\92 element e.g. for addition this\r
+is <BR> <STRONG><FONT\r
+color=#800080><Add></FONT><BR> \r
+<FONT color=#800080><output></FONT>+<FONT\r
+color=#800080></output><BR></FONT> <FONT\r
+color=#800080></Add><BR></FONT></STRONG><BR>Binary Operators have 3\r
+\91output\92 elements e.g. for fraction in Latex this is<BR> <FONT\r
+color=#800080><STRONG><Divide</STRONG> <FONT\r
+color=#000000>brackets=</FONT><FONT\r
+color=#0000ff>"false"</FONT><STRONG>></STRONG></FONT><BR> \r
+<STRONG><FONT color=#800080><output1></FONT>\frac<FONT color=#800080><FONT\r
+color=#000000>{</FONT></output1></FONT><BR> \r
+<FONT color=#800080><output2></FONT>}{<FONT\r
+color=#800080></output2><BR></FONT> \r
+<FONT color=#800080><output3></FONT>}<FONT\r
+color=#800080></output3><BR></FONT> <FONT\r
+color=#800080></Divide></FONT><BR></STRONG><BR>Functions have 2 \91output\92\r
+elements e.g. for square root in Latex this is<BR> <STRONG> \r
+</STRONG><FONT color=#800080><STRONG><SquareRoot</STRONG> <FONT\r
+color=#000000>brackets=</FONT><FONT\r
+color=#0000ff>"false"</FONT><STRONG>><BR> \r
+<output1><FONT\r
+color=#000000>\sqrt{</FONT></output1><BR> \r
+<output2><FONT\r
+color=#000000>}</FONT></output2><BR> \r
+</SquareRoot></STRONG></FONT><BR><BR></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT size=2>N-ary functions have 'n' output elements\r
+e.g. for definite integral in Latex it has\r
+5</FONT></FONT></FONT></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2> \r
+<FONT color=#800080><STRONG><DefiniteIntegral</STRONG> <FONT\r
+color=#000000>reverse=</FONT><FONT\r
+color=#0000ff>"true"</FONT><STRONG>><BR> \r
+<output1> <FONT\r
+color=#000000>\int_{</FONT></output1><BR> \r
+<output2><FONT\r
+color=#000000>}^{</FONT></output2><BR> \r
+<output3><FONT\r
+color=#000000>}</FONT></output3><BR> \r
+<output4><FONT\r
+color=#000000>\,\mathrm{d</FONT></output4><BR> \r
+<output5><FONT\r
+color=#000000>}</FONT></output5><BR> \r
+</DefiniteIntegral></STRONG></FONT></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT\r
+size=2></FONT></FONT></FONT></FONT></FONT></FONT> </DIV></DIV>\r
+<DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT size=2>Symbols have 1 \91output\92 element e.g. for\r
+Infinity in Latex this is<BR> <STRONG> <FONT color=#800080>\r
+<Infinity><BR> \r
+<output><FONT\r
+color=#000000>\infty</FONT></output><BR> \r
+</Infinity></FONT></STRONG><BR><BR>Groupings have 2 \91output\92 elements e.g.\r
+for square brackets in Latex this is<BR> <FONT\r
+color=#800080><STRONG><BracketsSq><BR> \r
+<output1><FONT\r
+color=#000000>\left[</FONT></output1><BR> \r
+<output2><FONT\r
+color=#000000>\right]</FONT></output2><BR> \r
+</BracketsSq></STRONG><BR></FONT><BR>Matrix in Latex is as\r
+follows:<BR> <STRONG><FONT\r
+color=#800080><Matrix><BR> \r
+<matrixStart><FONT color=#000000>\left(\r
+\begin{array}{ccc}</FONT></matrixStart><BR> \r
+<rowStart /><BR> \r
+<elementStart /><BR> \r
+<elementEnd /><BR> \r
+<elementSeparator><FONT color=#808000><![CDATA[ &\r
+]]></FONT></elementSeparator><BR> \r
+<rowEnd> <FONT\r
+color=#000000>\\</FONT> </rowEnd><BR> \r
+<rowSeparator /><BR> \r
+<matrixEnd><FONT color=#000000>\end{array}\r
+\right)</FONT></matrixEnd><BR> \r
+</Matrix></FONT></STRONG><BR><BR><BR>The syntax within these tags is used\r
+when converting an expression to that particular format. The actual arguments of\r
+the objects appear in the syntax between each pair of tags. For example consider\r
+½ in Latex format. It has 3 \91output\92 elements. So the first part will be\r
+\91\frac{\91, then the first argument will be appended to the string giving us,\r
+\91\frac{1\92, then the 2nd output will be appended, \91\frac{1}{\91, then the 2nd\r
+argment, \frac{1}{2\92 and then the final output, \91\frac{1}{2}\92. A similar process\r
+takes place with all the object types of objects, with the argument being\r
+appended between each pair of output elements.<BR><BR>There are various options\r
+that can be set to allow more control over the\r
+output.</FONT></FONT></FONT></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT\r
+size=2></FONT></FONT></FONT></FONT></FONT></FONT> </DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT size=2><U>Reverse</U><BR>If you find the arguments\r
+of a binary operator being output in the wrong order for a format, you can\r
+reverse the order of them by setting, reverse=\94true\94. An example of this is with\r
+the N-th root in Latex,<BR> <FONT\r
+color=#800080><STRONG><NthRoot</STRONG> <FONT\r
+color=#000000>reverse=</FONT><FONT color=#0000ff>"true"</FONT> <FONT\r
+color=#000000>brackets=</FONT><FONT\r
+color=#0000ff>"false"</FONT><STRONG>><BR> \r
+<output1><FONT color=#000000>\sqrt[</FONT>\r
+</output1><BR> \r
+<output2><FONT\r
+color=#000000>]{</FONT></output2><BR> \r
+<output3><FONT\r
+color=#000000>}</FONT></output3><BR> \r
+</NthRoot></STRONG></FONT><BR><U></U></FONT></FONT></FONT></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT\r
+size=2><U></U></FONT></FONT></FONT></FONT></FONT></FONT> </DIV>\r
+<DIV><U>Argument Order</U></DIV>\r
+<DIV>If you find the arguments of an N-ary Function being output in the wrong\r
+order for a format, you can re-arrange the order of them by setting,\r
+order=\94#1,#2,#3,...,#n\94. An example of this is with the Sum in Latex.\r
+Obviously, the default order for this is 0,1,2,3, and it is being\r
+changed to 1,2,3,0.<BR> <FONT\r
+color=#800080><STRONG><Sum</STRONG> <FONT color=#000000>order=</FONT><FONT\r
+color=#0000ff>"1,2,3,0"</FONT><STRONG>><BR> \r
+<output1> <FONT\r
+color=#000000>\sum_{{</FONT></output1><BR> \r
+<output2><FONT\r
+color=#000000>}={</FONT></output2><BR> \r
+<output3><FONT\r
+color=#000000>}}^{</FONT></output3><BR> \r
+<output4><FONT\r
+color=#000000>}</FONT></output4><BR> \r
+<output5></output5><BR> \r
+</Sum></STRONG></FONT><BR></DIV><br>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT size=2><U>AutoBrackets</U><BR>By default, round\r
+brackets are placed around n-ary operators and binary operators where necessary\r
+to ensure operator precedence is preserved. For presentational formats, such as\r
+Latex this is often unnecessary, so there is the option to turn automatic\r
+placing of brackets on/off. This is set in the element that specifies the name\r
+of the format. An example of this is shown for\r
+Latex,</FONT></FONT></FONT></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT size=2> <FONT\r
+color=#800080><STRONG><name</STRONG> <FONT\r
+color=#000000>AutoBrackets=</FONT><FONT\r
+color=#0000ff>"false"</FONT><STRONG>><FONT\r
+color=#000000>Latex</FONT></name></STRONG></FONT><BR><U></U></FONT></FONT></FONT></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT\r
+size=2><U></U></FONT></FONT></FONT></FONT></FONT></FONT> </DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT size=2><U>Brackets on Functions<BR></U>Brackets\r
+are added by default around the argument of a function. For example Sine in\r
+Latex is,<BR> <STRONG><FONT\r
+color=#800080><Sine><BR> \r
+<output1><FONT color=#000000>\sin</FONT>\r
+</output1><BR> <output2\r
+/><BR> </Sine></FONT></STRONG><BR><BR>Brackets are\r
+automatically added after the \91\sin\92 and after the 2nd output, resulting in\r
+"\sin(arg)". This is often the desired result but if you need to turn the\r
+brackets off, they can be set for each individual function. An example of\r
+turning them off is shown here for Square root in\r
+Latex,<BR> <STRONG> </STRONG><FONT\r
+color=#800080><STRONG><SquareRoot</STRONG> <FONT\r
+color=#000000>brackets=</FONT><FONT\r
+color=#0000ff>"false"</FONT><STRONG>><BR> \r
+<output1><FONT\r
+color=#000000>\sqrt{</FONT></output1><BR> \r
+<output2><FONT\r
+color=#000000>}</FONT></output2><BR> \r
+</SquareRoot></STRONG></FONT><BR><U></U></FONT></FONT></FONT></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT\r
+size=2><U></U></FONT></FONT></FONT></FONT></FONT></FONT> </DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT size=2><U>Initial</U><BR>As well as the structured\r
+number of output elements for each type of object, there is the option of having\r
+an \91initial\92 element. The data in this element is added to the string before any\r
+other output element is. An example of its use for describing multiplication in\r
+MathML Content is shown below.<BR> <STRONG><FONT\r
+color=#800080><Add> <BR> \r
+<initial><FONT\r
+color=#000000><times/></FONT></initial><BR> \r
+<output</output> <BR> \r
+</Add><BR></FONT></STRONG><BR> \91a x b x c\92 would then be converted\r
+to,<BR> \r
+<times/><BR> \r
+<ci>a</ci><BR> \r
+<ci>b</ci><BR> \r
+<ci>c</ci> </FONT></FONT></FONT></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><U><FONT face=Arial\r
+size=2></FONT></U></FONT></FONT></FONT></FONT> </DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><U><FONT face=Arial\r
+size=2>Final</FONT></U></FONT></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial size=2>N-ary operators can also have an optional 'final'\r
+element for adding data after everything else. An example of this is with Union\r
+in Maxima.</FONT></FONT></FONT></FONT></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2> <STRONG><FONT\r
+color=#800080><Union><BR> \r
+<initial><FONT\r
+color=#000000>union(</FONT></initial><BR> \r
+<output><FONT\r
+color=#000000>,</FONT></output><BR> \r
+<final><FONT color=#000000>)</FONT></final><BR> \r
+</Union></FONT></STRONG></FONT></FONT></FONT></FONT></DIV></DIV></FONT></FONT></DIV></FONT></DIV></FONT></DIV></FONT></DIV>\r
+<DIV><FONT face=Arial size=2><FONT face=Arial size=2><FONT face=Arial\r
+size=2><FONT face=Arial size=2><FONT face=Arial><FONT size=2><FONT face=Arial\r
+size=2><FONT face=Arial><FONT size=2><FONT face=Arial size=2><SPAN\r
+class=875382513-08082007> </DIV></SPAN></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></FONT></BODY></HTML>\r
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - Adding a function/operator</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<h2><span style=" color: #000099;"><strong>Adding a function/operator</strong></span></h2>\r
+\r
+<p>\r
+The code can be easily modified and recompiled to add additional operators and functions.\r
+ </p><p>\r
+However, they must adhere to the standard display layout shown below:\r
+</p><p>\r
+Operator:\r
+<br>\r
+<IMG alt="" hspace=0 src="img/plus.jpg" align=bottom border=0>\r
+</p><p>\r
+Function:\r
+<br>\r
+<IMG alt="" hspace=0 src="img/sin.jpg" align=bottom border=0>\r
+</p><p>\r
+The steps to adding one:\r
+</p>\r
+<ol>\r
+\r
+ <LI>A new element in the CompConfig.xml, which is located in the Display package. The element must be given a unique name as the name of the object. A unique ID number, by simply choosing the next available ID number. A group number as follows:\r
+<br> N-ary operator - 1\r
+<br> Binary Operator - 2\r
+<br> Function - 3\r
+<br> The name of the GIF file that holds a transparent image of the object, of size 16x16, 24x24 or 32x32 pixels.<BR> The text of the element should hold the \r
+ characters that represent the object. \r
+<LI>A new JButton placed on one of the tabs, in the MainApplet.java file. This button can have Text or an Icon to inform the user what it is. The JButton must have the name field set to 'ID-Name' e.g. for Addition this is '2-Add'. \r
+<LI>A new element in the language file you intend to use, with the same element name as in the CompConfig.xml file. The text of the element should be a description of the object for use in the status bar of the program.\r
+<LI>The array ‘inputComponents’ should be initialised to the size of the highest ID number now in CompConfig.xml. This line of code is found near the start of the init() method in the MainApplet.java file, in the Display package.\r
+<LI>The Precedence.java file in the Tree package should be adjusted, so the ‘value’ array is initialised to the size of the highest ID number now in CompConfig.xml, and the precedence of the new object should be set if required.\r
+<LI>An entry in each format XML file will be required for the new object. For details on how to do this see <A href="newformat.html">here</A>.\r
+\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - Options</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<h2><span style=" color: #000099;"><strong>Options</strong></span></h2>\r
+\r
+<p>\r
+<font size=3>\r
+<b>Exporting an expression</b>\r
+</font>\r
+</p>\r
+<p>\r
+To choose which format to export to click 'Set export format' under the Options menu, and select a file from the list. The files available will be those in the \formats folder. If no format is specified in an applet paramater the default is LaTeX.\r
+To export an expression click the Export button. Once exported the syntax will be copied to the clipboard, so you can simply paste it into any other program you desire.\r
+ </p>\r
+<br>\r
+<font size=3>\r
+<b>Changing the language</b>\r
+</font>\r
+<p>\r
+The language can be changed by clicking 'Set language' under the Options menu, and selected a file from the list. The files available will be those in the \lang folder. If no language is specified in an applet parameter the default is English.\r
+ </p> \r
+\r
+<br>\r
+<font size=3>\r
+<b>Help</b>\r
+</font>\r
+<p>\r
+If there appears to be a problem with the way the software is behaving it can be useful to use the two tools under the Debug menu, which is under the Help menu. These can show the current expression as a tree, and outline the borders of all the objects on the workspace.\r
+Under the Help menu there is also a link to the Online Documentation.\r
+ </p>\r
+</font>\r
+ </body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<html>\r
+<head>\r
+<title>DragMath Documentation - Changing applet parameters</title>\r
+</head>\r
+<body>\r
+\r
+<font size="2"; style="font-family: Arial;">\r
+\r
+<h2><span style=" color: #000099;"><strong>Changing Applet parameters</strong></span></h2>\r
+\r
+<p>\r
+There are various parameters that can be set inside the <APPLET> tag, to change particular options of the applet.\r
+</p>\r
+ \r
+<font size=3>\r
+<b>Language</b>\r
+</font>\r
+<p>\r
+<strong>\r
+<font color=#800080><param</font>\r
+name=\r
+</strong>\r
+<font color=#0000ff>language</font>\r
+<strong>\r
+value=\r
+</strong>\r
+<font color=#0000ff>"en"</font>\r
+<strong>\r
+<font color=#800080>></font>\r
+</strong>\r
+<br>\r
+The value is the name of the XML file, so this example refers to language file en.xml in the \lang folder. If the parameter is not used the default value is "en".\r
+ </p>\r
+\r
+<font size=3>\r
+<b>Output Format</b>\r
+</font>\r
+<p>\r
+<strong>\r
+<font color=#800080><param</font>\r
+name=\r
+</strong>\r
+<font color=#0000ff>outputFormat</font>\r
+<strong>\r
+value=\r
+</strong>\r
+<font color=#0000ff>"MathML"</font>\r
+<strong>\r
+<font color=#800080>></font>\r
+</strong>\r
+<br>\r
+The value is the name of the XML file, so this example refers to output format file MathML.xml in the \formats folder. The purpose of setting this is to have the default format to use automatically set when the software loads.\r
+</p>\r
+\r
+<font size=3>\r
+<b>Open applet with an expression</b>\r
+</font>\r
+<p>\r
+<strong>\r
+<font color=#800080><param</font>\r
+name=\r
+</strong>\r
+<font color=#0000ff>openWithExpression</font>\r
+<strong>\r
+value=\r
+</strong>\r
+<font color=#0000ff>"sin(1+x)"</font>\r
+<strong>\r
+<font color=#800080>></font>\r
+</strong>\r
+<br>\r
+The value can be any expression you would like the applet to be opened with. The Maxima example on the DragMath website gives an example of this being used.\r
+</p>\r
+\r
+</font>\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+<?php\r
+\r
+#################################################################################\r
+##\r
+## $Id$\r
+##\r
+#################################################################################\r
+\r
+ require("../../../../../../../config.php");\r
+\r
+ $id = optional_param('id', SITEID, PARAM_INT);\r
+\r
+ require_course_login($id);\r
+ @header('Content-Type: text/html; charset=utf-8');\r
+\r
+?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+<html>\r
+<head>\r
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r
+<title>"DragMath Equation Editor</title>\r
+<link rel="stylesheet" href="dialog.css" type="text/css" />\r
+<script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+<script type="text/javascript" src="js/dragmath.js"></script>\r
+</head>\r
+<body>\r
+\r
+<applet \r
+ name="dragmath" \r
+ codebase="<?php echo $CFG->wwwroot.'/lib/editor/tinymce/jscripts/tiny_mce/plugins/dragmath/applet/classes' ?>" \r
+ code="Display.MainApplet.class" \r
+ archive="Project.jar,AbsoluteLayout.jar,swing-layout-1.0.jar,jdom.jar,jep.jar" \r
+ width=540 height=300\r
+>\r
+ <param name=language value="en">\r
+ <param name=outputFormat value="Latex">\r
+ <param name=showOutputToolBar value="false">\r
+ To use this page you need a Java-enabled browser. \r
+ Download the latest Java plug-in from \r
+ <a> href="http://www.java.com">Java.com</a>\r
+</applet >\r
+<form name="form">\r
+ <div>\r
+ <button type="button" onclick="return DragMathDialog.insert();">Insert</button>\r
+ <button type="button" onclick="return tinyMCEPopup.close();">Cancel</button>\r
+ </div>\r
+</form>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.DragMathPlugin',{init:function(ed,url){course_id=tinyMCE.activeEditor.getParam('moodleimage_course_id');ed.addCommand('mceDragMath',function(){ed.windowManager.open({file:url+'/dragmath.php?id='+course_id,width:540,height:380,inline:1},{plugin_url:url,some_custom_arg:'custom arg'});});ed.addButton('dragmath',{title:'Insert Equation',cmd:'mceDragMath',image:url+'/img/dragmath.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('dragmath',n.nodeName=='IMG');});},createControl:function(n,cm){return null;},getInfo:function(){return{longname:'Moodle Dragmath plugin',author:'Glen Davies',authorurl:'http://www.canterbury.ac.nz',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',version:"1.0"};}});tinymce.PluginManager.add('dragmath',tinymce.plugins.DragMathPlugin);})();
\ No newline at end of file
--- /dev/null
+(function() {\r
+ // Load plugin specific language pack\r
+ //tinymce.PluginManager.requireLangPack('example');\r
+\r
+ tinymce.create('tinymce.plugins.DragMathPlugin', {\r
+ /**\r
+ * Initializes the plugin, this will be executed after the plugin has been created.\r
+ * This call is done before the editor instance has finished it's initialization so use the onInit event\r
+ * of the editor instance to intercept that event.\r
+ *\r
+ * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.\r
+ * @param {string} url Absolute URL to where the plugin is located.\r
+ */\r
+ init : function(ed, url) {\r
+ // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');\r
+ course_id = tinyMCE.activeEditor.getParam('moodleimage_course_id');\r
+ \r
+ ed.addCommand('mceDragMath', function() {\r
+ ed.windowManager.open({\r
+ \r
+ file : url + '/dragmath.php?id=' + course_id,\r
+ width : 540,\r
+ height : 380,\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url, // Plugin absolute URL\r
+ some_custom_arg : 'custom arg' // Custom argument\r
+ });\r
+ });\r
+\r
+ // Register example button\r
+ ed.addButton('dragmath', {\r
+ title : 'Insert Equation',\r
+ cmd : 'mceDragMath',\r
+ image : url + '/img/dragmath.gif'\r
+ });\r
+ \r
+\r
+ // Add a node change handler, selects the button in the UI when a image is selected\r
+ ed.onNodeChange.add(function(ed, cm, n) {\r
+ cm.setActive('dragmath', n.nodeName == 'IMG');\r
+ });\r
+ },\r
+\r
+ /**\r
+ * Creates control instances based in the incomming name. This method is normally not\r
+ * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons\r
+ * but you sometimes need to create more complex controls like listboxes, split buttons etc then this\r
+ * method can be used to create those.\r
+ *\r
+ * @param {String} n Name of the control to create.\r
+ * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.\r
+ * @return {tinymce.ui.Control} New control instance or null if no control was created.\r
+ */\r
+ createControl : function(n, cm) {\r
+ return null;\r
+ },\r
+\r
+ /**\r
+ * Returns information about the plugin as a name/value array.\r
+ * The current keys are longname, author, authorurl, infourl and version.\r
+ *\r
+ * @return {Object} Name/value array containing information about the plugin.\r
+ */\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Moodle Dragmath plugin',\r
+ author : 'Glen Davies',\r
+ authorurl : 'http://www.canterbury.ac.nz',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',\r
+ version : "1.0"\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('dragmath', tinymce.plugins.DragMathPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+\r
+<html>\r
+<head>\r
+<title>DragMath - Home Page</title>\r
+</head>\r
+<body>\r
+\r
+<font size="3"; style="font-family: Arial;">\r
+\r
+<h1 style="text-align: center;"><span style="color: rgb(0, 0, 128);">DragMath</span></h1>\r
+<hr />\r
+\r
+<span style="color: rgb(0, 0, 128);">\r
+<h4 style="text-align: center;">\r
+<a href="index.html">Home</a> \r
+<a href="demo.html">Demonstration</a> \r
+<a href="#Download">Download</a> \r
+<a href="doc/index.html">Documentation</a> \r
+<a href="integrations.html">Integrations</a> \r
+<a href="support.html">Support DragMath</a> \r
+<a href="#Contact">Contact</a>\r
+</h4>\r
+</span>\r
+\r
+<hr />\r
+\r
+<h2><a name="Introduction"><span style="color: rgb(0, 0, 128);">Introduction</span></a></h2>\r
+<p>\r
+DragMath is a free "drag and drop" equation editor. It is a Java applet which can simply run within a web browser on most computers.<br />\r
+<br />\r
+The editor lets users build up mathematical expressions in a traditional two dimensional way, and then output the results in a correctly formed syntax. This is not so easy: mathematical notation contains some ambiguities. Still, we appear to be stuck with traditional notation for the foreseeable future, see for example this\r
+<a href="http://web.mat.bham.ac.uk/C.J.Sangwin/Publications/2007-Sangwin_Ramsden_Syntax.pdf">article</a> for some comments on notation. This gives some idea of the design of DragMath.<br />\r
+<br />\r
+The supplied output formats are MathML, LaTeX, Maple, Maxima. It is also possible to convert the expression to almost any user defined style by creating an XML file with the correct syntax data in it. Details of how to do this are included in the documentation.<br></br>Although mathematics is less dependent on language than many things, the applet loads a language file which makes it possible to translate DragMath into other languages. DragMath has currently been translated into: Catalan, Czech, Dutch, English, French, German, Polish, Russian, Spanish and Swedish. The latest language files can be downloaded from <a href="http://dragmath.cvs.sourceforge.net/dragmath/ddma/lang/">here</a>.<br />\r
+</p>\r
+<p>\r
+DragMath makes use of the MathTran service to automatically convert expressions to images. More details of MathTran available at <a href="http://www.mathtran.org">www.mathtran.org</a>\r
+</p>\r
+<p>\r
+DragMath has a project on <a href="http://sourceforge.net/projects/dragmath/">SourceForge.net</a>, an open-source software development web site. This allows users to:\r
+<ul>\r
+<li><a href="http://sourceforge.net/tracker/?group_id=201862&atid=979259">Request new features</a></li>\r
+<li><a href="http://sourceforge.net/tracker/?group_id=201862&atid=979256">Submit bugs</a></li>\r
+<li><a href="http://sourceforge.net/project/showfiles.php?group_id=201862">Download the latest release</a></li>\r
+</ul>\r
+<a href="http://sourceforge.net/projects/dragmath/"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=201862&type=5" width="210" height="62" border="0" alt="SourceForge.net Logo" /></a>\r
+</p>\r
+<hr />\r
+\r
+\r
+<h2><span style="color: rgb(0, 0, 128);"><a name="Download">Download</a></span><a name="Download"></a></h2>\r
+<p>\r
+As DragMath is open-source, you are free to download and re-distribute. See the <a href="LICENSE-gpl.txt">DragMath license</a> for details.<br /><br />\r
+DragMath requires Java 1.4.2 or later is installed. If you do not have it, you can download it from <a href="http://www.java.com">www.java.com</a>.<br />\r
+To download the latest version visit our project site on <a href="http://sourceforge.net/project/showfiles.php?group_id=201862">SourceForge.net</a>.<br />\r
+</p>\r
+<hr />\r
+\r
+<h2><a name="Contact"><span style="color: rgb(0, 0, 128);">Contact</span></a></h2>\r
+<p>\r
+<b>Project leader</b><br />\r
+Chris Sangwin<br />\r
+Website: <a href="http://web.mat.bham.ac.uk/C.J.Sangwin/">http://web.mat.bham.ac.uk/C.J.Sangwin/</a><br>\r
+Email: <a href="mailto:C.J.Sangwin@bham.ac.uk?subject=DragMath">C.J.Sangwin@bham.ac.uk</a></p>\r
+<p><br />\r
+<b>Developer</b><br />\r
+Alex Billingsley<br />\r
+Website: <a href="http://www.abillingsley.co.uk/">http://www.abillingsley.co.uk/</a><br>\r
+Email: <a href="mailto:email@abillingsley.co.uk?subject=DragMath">email@abillingsley.co.uk</a></p>\r
+<hr />\r
+\r
+<center>\r
+<p>© 2008 Alex Billingsley, Chris Sangwin\r
+</center>\r
+\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+\r
+<html>\r
+<head>\r
+<title>DragMath - Integrations</title>\r
+</head>\r
+<body>\r
+\r
+<font size="3"; style="font-family: Arial;">\r
+\r
+<p></p>\r
+<h1 style="text-align: center;"><span style="color: rgb(0, 0, 128);">DragMath</span></h1>\r
+<hr />\r
+\r
+<span style="color: rgb(0, 0, 128);">\r
+<center>\r
+<h4>\r
+<a href="index.html">Home</a> \r
+<a href="demo.html">Demonstration</a> \r
+<a href="index.html#Download">Download</a> \r
+<a href="doc/index.html">Documentation</a> \r
+<a href="integrations.html">Integrations</a> \r
+<a href="support.html">Support DragMath</a> \r
+<a href="index.html#Contact">Contact</a>\r
+</h4>\r
+</center>\r
+</span>\r
+\r
+<hr />\r
+\r
+\r
+<h2><a name="Integrations"><span style="color: rgb(0, 0, 128);">Integrations</span></a></h2>\r
+\r
+<p>As a Java applet, DragMath can be easily embedded into many other web based systems. It has currently been successfully integrated with:\r
+<p><a href="http://www.moodle.org/"><b>Moodle</b></a><br />\r
+Moodle is a free, open source course management system (CMS). Also know as a Learning Managment System (LMS) or Virtual Learning Environment (VLE). For further details please see the specific Moodle <a href="http://docs.moodle.org/en/DragMath_equation_editor">installation instructions</a>.<br />\r
+<br />\r
+<a href="http://stack.bham.ac.uk/"><b>STACK</b></a><br />\r
+STACK is a computer aided assessment (CAA) package for mathematics, a project by <a href="http://web.mat.bham.ac.uk/C.J.Sangwin/">Chris Sangwin</a> (a developer of DragMath).<br />\r
+<br />\r
+<a href="http://www.yourmathstutor.info/"><b>YourMathsTutor</b></a><br />\r
+YourMathsTutor is a website created primarily to help students studying the for the UK's Key Stage 3, GCSE, AS and A Level mathematics and physics exams. DragMath has been integrated into the forum on this website. The forum is a <a href="http://www.simplemachines.org/">Simple Machines Forum</a> (SMF), which is a powerful open source forum. More information on how it was <a href="http://yourmathstutor.blogspot.com/2007/08/dragmath.html">integrated</a> and how it is <a href="http://www.yourmathstutor.info/forum/index.php?topic=4.0">used</a> in the forum.<br />\r
+</p>\r
+<p>Please let us know if any other successful integrations have occured.<br />\r
+</p>\r
+<br>\r
+\r
+<hr />\r
+<center>\r
+<p>© 2008 Alex Billingsley, Chris Sangwin\r
+</center>\r
+\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var DragMathDialog = {\r
+ init : function(ed) {\r
+ \r
+ },\r
+ \r
+ \r
+\r
+ insert : function(file, title) {\r
+ \r
+ var ed = tinyMCEPopup.editor;\r
+ var mathExpression = document.dragmath.getMathExpression();\r
+ //\r
+ // TBD any massaging needed here?\r
+ //\r
+ var text = mathExpression;\r
+ //\r
+ // Escape the expression\r
+ //\r
+ var text = '$$' + text + '$$';\r
+ ed.execCommand('mceInsertContent', false, text);\r
+\r
+ tinyMCEPopup.close();\r
+ }\r
+\r
+ \r
+ \r
+};\r
+\r
+tinyMCEPopup.onInit.add(DragMathDialog.init, DragMathDialog);\r
--- /dev/null
+2008.01.23 10:11 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\langs\en_dlg.js --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/langs en_dlg.js\r
+2008.01.23 10:49 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\langs\en_dlg.js --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/langs en_dlg.js\r
+2008.01.23 10:49 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\langs\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/langs WS_FTP.LOG\r
+2008.01.23 11:00 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\langs\en_dlg.js --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/langs en_dlg.js\r
+2008.01.23 11:00 B C:\www\webroot\moodle\lib\editor\tinymce3\plugins\dragmath\langs\WS_FTP.LOG --> www.host4learning.com /public_html/moodlemce/lib/editor/tinymce3/plugins/dragmath/langs WS_FTP.LOG\r
--- /dev/null
+tinyMCE.addI18n('en.dragmath_dlg',{\r
+title:"Insert Equation"\r
+});
\ No newline at end of file
--- /dev/null
+\r
+<html>\r
+<head>\r
+<title>DragMath - Home Page</title>\r
+</head>\r
+<body>\r
+\r
+<font size="3"; style="font-family: Arial;">\r
+\r
+<p></p>\r
+<h1 style="text-align: center;"><span style="color: rgb(0, 0, 128);">DragMath</span></h1>\r
+<hr />\r
+\r
+<span style="color: rgb(0, 0, 128);">\r
+<center>\r
+<h4>\r
+<a href="index.html">Home</a> \r
+<a href="demo.html">Demonstration</a> \r
+<a href="index.html#Download">Download</a> \r
+<a href="doc/index.html">Documentation</a> \r
+<a href="integrations.html">Integrations</a> \r
+<a href="support.html">Support DragMath</a> \r
+<a href="index.html#Contact">Contact</a>\r
+</h4>\r
+</center>\r
+</span>\r
+\r
+<hr />\r
+\r
+<h2><span style="color: rgb(0, 0, 128);"><a name="Support_DragMath">Support DragMath</a></span><br /></h2>\r
+<p>DragMath is an open-source project that started as a final-year Computer Science project in 2006 at the <a href ="http://www.bham.ac.uk/">University of Birmingham<a/> by <a href="http://www.abillingsley.co.uk">Alex Billingsley</a> under the supervision of <a href ="http://web.mat.bham.ac.uk/C.J.Sangwin/">Chris Sangwin</a>. It's main application is therefore directed toward an educational one.<br />\r
+</p>\r
+<p>Please make a donation to help support the future development of DragMath. Donations can be securely made through the SourceForge.net website.<br />\r
+<br>\r
+<a href="http://sourceforge.net/project/project_donations.php?group_id=201862"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project"/></a>\r
+ </p>\r
+<p>We currently need help translating the English language file into many different languages. As new versions of DragMath are created the current language files need updating as well. If you can help, then please contact us.\r
+</p>\r
+<p><b>Contributions by:</b>\r
+<ul>\r
+<li>Miroslava Tihlarikova - Czech language file</li>\r
+<li>Francisco Rivas - Spanish language file</li>\r
+<li>Agnieszka Herczak-Ciara - Polish language file</li>\r
+<li>Philippe Quattrociocchi - French language file</li>\r
+<li>Sedletskiy Nikolay - Russian language file</li>\r
+<li>Andy Tagliani - German language file</li>\r
+<li>Patrick Tydtgat - Dutch language file</li>\r
+<li>Daniel Ureña Zafra (<a href ="http://www.ub.edu/">University of Barcelona<a/>):\r
+<ul>\r
+<li>Additional operators and functions</li>\r
+<li>Catalan language file</li>\r
+</ul>\r
+</li>\r
+<li>Mauricio Chamati - Portuguese (Brazilian) language file</li>\r
+</ul>\r
+<br>\r
+\r
+<hr />\r
+<center>\r
+<p>© 2008 Alex Billingsley, Chris Sangwin\r
+</center>\r
+\r
+\r
+</font>\r
+\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.emoticonsPlugin',{init:function(ed,url){ed.addCommand('mceemoticon',function(){ed.windowManager.open({file:url+'/emoticons.php',width:300+parseInt(ed.getLang('emoticons.delta_width',0)),height:300+parseInt(ed.getLang('emoticons.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('emoticons',{title:'emoticons.emoticons_desc',cmd:'mceemoticon',image:url+'/img/smiley.gif'});},getInfo:function(){return{longname:'emoticons',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emoticons',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('emoticons',tinymce.plugins.emoticonsPlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.emoticonsPlugin', {\r
+ init : function(ed, url) {\r
+ // Register commands\r
+ ed.addCommand('mceemoticon', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/emoticons.php',\r
+ width : 300 + parseInt(ed.getLang('emoticons.delta_width', 0)),\r
+ height : 300 + parseInt(ed.getLang('emoticons.delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('emoticons', {title : 'emoticons.emoticons_desc', cmd : 'mceemoticon', image : url + '/img/smiley.gif'});\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'emoticons',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emoticons',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('emoticons', tinymce.plugins.emoticonsPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+<?php\r
+\r
+ require("../../../../../../../config.php");\r
+\r
+ $id = optional_param('id', SITEID, PARAM_INT);\r
+\r
+ require_course_login($id);\r
+ @header('Content-Type: text/html; charset=utf-8');\r
+\r
+ $pixpath = "$CFG->pixpath/s";\r
+\r
+ $fullnames = get_list_of_pixnames();\r
+\r
+ $emoticons = array ( 'smiley' => ':-)',\r
+ 'biggrin' => ':-D',\r
+ 'wink' => ';-)',\r
+ 'mixed' => ':-/',\r
+ 'thoughtful' => 'V-.',\r
+ 'tongueout' => ':-P',\r
+ 'cool' => 'B-)',\r
+ 'approve' => '^-)',\r
+ 'wideeyes' => '8-)',\r
+ 'clown' => ':o)',\r
+ 'sad' => ':-(',\r
+ 'shy' => '8-.',\r
+ 'blush' => ':-I',\r
+ 'kiss' => ':-X',\r
+ 'surprise' => '8-o',\r
+ 'blackeye' => 'P-|',\r
+ 'angry' => '8-[',\r
+ 'dead' => 'xx-P',\r
+ 'sleepy' => '|-.',\r
+ 'evil' => '}-]' );\r
+\r
+?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#emoticons_dlg.title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js?v=307"></script>\r
+ <script type="text/javascript" src="js/emoticons.js?v=307"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body style="display: none">\r
+ <div align="center">\r
+<table class="dlg" cellpadding="0" cellspacing="2" width="100%">\r
+<tr><td><table width="100%"><tr><td class="title" nowrap="nowrap"><?php print_string('chooseicon', 'editor'); ?></td></tr></table></td></tr>\r
+<tr>\r
+<td>\r
+ <table border="0" align="center" cellpadding="5">\r
+ <tr valign="top">\r
+ <td>\r
+ <table border="0">\r
+<?php\r
+ $list = array('smiley', 'biggrin', 'wink', 'mixed', 'thoughtful', 'tongueout', 'cool', 'approve', 'wideeyes', 'surprise');\r
+ foreach ($list as $image) {\r
+ $name = $fullnames[$image];\r
+ $icon = $emoticons[$image];\r
+ echo '<tr>';\r
+echo "<td><a href=\"javascript:emoticonsDialog.insert('$pixpath/$image.gif','$name');\"><img alt=\"$name\" class=\"icon\" src=\"$pixpath/$image.gif\" width=\"15\" height=\"15\" border=\"0\" title=\"$name\" /></a></td>";\r
+ echo "<td>$name</td>";\r
+ echo "<td class=\"smile\">$icon</td>";\r
+ echo "</tr>";\r
+ }\r
+?>\r
+ </table>\r
+ </td>\r
+ <td>\r
+ <table border="0" align="center">\r
+\r
+<?php\r
+ $list = array('sad', 'shy', 'blush', 'kiss', 'clown', 'blackeye', 'angry', 'dead', 'sleepy', 'evil');\r
+ foreach ($list as $image) {\r
+ $name = $fullnames[$image];\r
+ $icon = $emoticons[$image];\r
+ echo '<tr>';\r
+echo "<td><a href=\"javascript:emoticonsDialog.insert('$pixpath/$image.gif','$name');\"><img alt=\"$name\" class=\"icon\" src=\"$pixpath/$image.gif\" width=\"15\" height=\"15\" border=\"0\" title=\"$name\" /></a></td>";\r
+ echo "<td>$name</td>";\r
+ echo "<td class=\"smile\">$icon</td>";\r
+ echo "</tr>";\r
+ }\r
+?>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+\r
+ </td>\r
+ </tr>\r
+</table>\r
+ </div>\r
+</body>\r
+</html>
\ No newline at end of file
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var emoticonsDialog = {\r
+ init : function(ed) {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+ },\r
+\r
+ insert : function(file, title) {\r
+ var ed = tinyMCEPopup.editor, dom = ed.dom;\r
+\r
+ tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', {\r
+ src : file,\r
+ alt : title,\r
+ title : title,\r
+ border : 0\r
+ }));\r
+\r
+ tinyMCEPopup.close();\r
+ }\r
+};\r
+\r
+tinyMCEPopup.onInit.add(emoticonsDialog.init, emoticonsDialog);\r
--- /dev/null
+tinyMCE.addI18n('en.emoticons_dlg',{\r
+title:"Insert emoticon",\r
+desc:"emoticons",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.EmotionsPlugin',{init:function(ed,url){ed.addCommand('mceEmotion',function(){ed.windowManager.open({file:url+'/emotions.htm',width:250+parseInt(ed.getLang('emotions.delta_width',0)),height:160+parseInt(ed.getLang('emotions.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('emotions',{title:'emotions.emotions_desc',cmd:'mceEmotion'});},getInfo:function(){return{longname:'Emotions',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('emotions',tinymce.plugins.EmotionsPlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.EmotionsPlugin', {\r
+ init : function(ed, url) {\r
+ // Register commands\r
+ ed.addCommand('mceEmotion', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/emotions.htm',\r
+ width : 250 + parseInt(ed.getLang('emotions.delta_width', 0)),\r
+ height : 160 + parseInt(ed.getLang('emotions.delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'});\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Emotions',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#emotions_dlg.title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="js/emotions.js"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body style="display: none">\r
+ <div align="center">\r
+ <div class="title">{#emotions_dlg.title}:<br /><br /></div>\r
+\r
+ <table border="0" cellspacing="0" cellpadding="4">\r
+ <tr>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-cool.gif','emotions_dlg.cool');"><img src="img/smiley-cool.gif" width="18" height="18" border="0" alt="{#emotions_dlg.cool}" title="{#emotions_dlg.cool}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-cry.gif','emotions_dlg.cry');"><img src="img/smiley-cry.gif" width="18" height="18" border="0" alt="{#emotions_dlg.cry}" title="{#emotions_dlg.cry}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-embarassed.gif','emotions_dlg.embarassed');"><img src="img/smiley-embarassed.gif" width="18" height="18" border="0" alt="{#emotions_dlg.embarassed}" title="{#emotions_dlg.embarassed}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-foot-in-mouth.gif','emotions_dlg.foot_in_mouth');"><img src="img/smiley-foot-in-mouth.gif" width="18" height="18" border="0" alt="{#emotions_dlg.foot_in_mouth}" title="{#emotions_dlg.foot_in_mouth}" /></a></td>\r
+ </tr>\r
+ <tr>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-frown.gif','emotions_dlg.frown');"><img src="img/smiley-frown.gif" width="18" height="18" border="0" alt="{#emotions_dlg.frown}" title="{#emotions_dlg.frown}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-innocent.gif','emotions_dlg.innocent');"><img src="img/smiley-innocent.gif" width="18" height="18" border="0" alt="{#emotions_dlg.innocent}" title="{#emotions_dlg.innocent}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-kiss.gif','emotions_dlg.kiss');"><img src="img/smiley-kiss.gif" width="18" height="18" border="0" alt="{#emotions_dlg.kiss}" title="{#emotions_dlg.kiss}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-laughing.gif','emotions_dlg.laughing');"><img src="img/smiley-laughing.gif" width="18" height="18" border="0" alt="{#emotions_dlg.laughing}" title="{#emotions_dlg.laughing}" /></a></td>\r
+ </tr>\r
+ <tr>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-money-mouth.gif','emotions_dlg.money_mouth');"><img src="img/smiley-money-mouth.gif" width="18" height="18" border="0" alt="{#emotions_dlg.money_mouth}" title="{#emotions_dlg.money_mouth}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-sealed.gif','emotions_dlg.sealed');"><img src="img/smiley-sealed.gif" width="18" height="18" border="0" alt="{#emotions_dlg.sealed}" title="{#emotions_dlg.sealed}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-smile.gif','emotions_dlg.smile');"><img src="img/smiley-smile.gif" width="18" height="18" border="0" alt="{#emotions_dlg.smile}" title="{#emotions_dlg.smile}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-surprised.gif','emotions_dlg.surprised');"><img src="img/smiley-surprised.gif" width="18" height="18" border="0" alt="{#emotions_dlg.surprised}" title="{#emotions_dlg.surprised}" /></a></td>\r
+ </tr>\r
+ <tr>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-tongue-out.gif','emotions_dlg.tongue_out');"><img src="img/smiley-tongue-out.gif" width="18" height="18" border="0" alt="{#emotions_dlg.tongue-out}" title="{#emotions_dlg.tongue_out}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-undecided.gif','emotions_dlg.undecided');"><img src="img/smiley-undecided.gif" width="18" height="18" border="0" alt="{#emotions_dlg.undecided}" title="{#emotions_dlg.undecided}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-wink.gif','emotions_dlg.wink');"><img src="img/smiley-wink.gif" width="18" height="18" border="0" alt="{#emotions_dlg.wink}" title="{#emotions_dlg.wink}" /></a></td>\r
+ <td><a href="javascript:EmotionsDialog.insert('smiley-yell.gif','emotions_dlg.yell');"><img src="img/smiley-yell.gif" width="18" height="18" border="0" alt="{#emotions_dlg.yell}" title="{#emotions_dlg.yell}" /></a></td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+</body>\r
+</html>\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var EmotionsDialog = {\r
+ init : function(ed) {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+ },\r
+\r
+ insert : function(file, title) {\r
+ var ed = tinyMCEPopup.editor, dom = ed.dom;\r
+\r
+ tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', {\r
+ src : tinyMCEPopup.getWindowArg('plugin_url') + '/img/' + file,\r
+ alt : ed.getLang(title),\r
+ title : ed.getLang(title),\r
+ border : 0\r
+ }));\r
+\r
+ tinyMCEPopup.close();\r
+ }\r
+};\r
+\r
+tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog);\r
--- /dev/null
+tinyMCE.addI18n('en.emotions_dlg',{\r
+title:"Insert emotion",\r
+desc:"Emotions",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#example_dlg.title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="js/dialog.js"></script>\r
+</head>\r
+<body>\r
+\r
+<form onsubmit="ExampleDialog.insert();return false;" action="#">\r
+ <p>Here is a example dialog.</p>\r
+ <p>Selected text: <input id="someval" name="someval" type="text" class="text" /></p>\r
+ <p>Custom arg: <input id="somearg" name="somearg" type="text" class="text" /></p>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="button" id="insert" name="insert" value="{#insert}" onclick="ExampleDialog.insert();" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</form>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){tinymce.PluginManager.requireLangPack('example');tinymce.create('tinymce.plugins.ExamplePlugin',{init:function(ed,url){ed.addCommand('mceExample',function(){ed.windowManager.open({file:url+'/dialog.htm',width:320+parseInt(ed.getLang('example.delta_width',0)),height:120+parseInt(ed.getLang('example.delta_height',0)),inline:1},{plugin_url:url,some_custom_arg:'custom arg'});});ed.addButton('example',{title:'example.desc',cmd:'mceExample',image:url+'/img/example.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('example',n.nodeName=='IMG');});},createControl:function(n,cm){return null;},getInfo:function(){return{longname:'Example plugin',author:'Some author',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',version:"1.0"};}});tinymce.PluginManager.add('example',tinymce.plugins.ExamplePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ // Load plugin specific language pack\r
+ tinymce.PluginManager.requireLangPack('example');\r
+\r
+ tinymce.create('tinymce.plugins.ExamplePlugin', {\r
+ /**\r
+ * Initializes the plugin, this will be executed after the plugin has been created.\r
+ * This call is done before the editor instance has finished it's initialization so use the onInit event\r
+ * of the editor instance to intercept that event.\r
+ *\r
+ * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.\r
+ * @param {string} url Absolute URL to where the plugin is located.\r
+ */\r
+ init : function(ed, url) {\r
+ // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');\r
+ ed.addCommand('mceExample', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/dialog.htm',\r
+ width : 320 + parseInt(ed.getLang('example.delta_width', 0)),\r
+ height : 120 + parseInt(ed.getLang('example.delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url, // Plugin absolute URL\r
+ some_custom_arg : 'custom arg' // Custom argument\r
+ });\r
+ });\r
+\r
+ // Register example button\r
+ ed.addButton('example', {\r
+ title : 'example.desc',\r
+ cmd : 'mceExample',\r
+ image : url + '/img/example.gif'\r
+ });\r
+\r
+ // Add a node change handler, selects the button in the UI when a image is selected\r
+ ed.onNodeChange.add(function(ed, cm, n) {\r
+ cm.setActive('example', n.nodeName == 'IMG');\r
+ });\r
+ },\r
+\r
+ /**\r
+ * Creates control instances based in the incomming name. This method is normally not\r
+ * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons\r
+ * but you sometimes need to create more complex controls like listboxes, split buttons etc then this\r
+ * method can be used to create those.\r
+ *\r
+ * @param {String} n Name of the control to create.\r
+ * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.\r
+ * @return {tinymce.ui.Control} New control instance or null if no control was created.\r
+ */\r
+ createControl : function(n, cm) {\r
+ return null;\r
+ },\r
+\r
+ /**\r
+ * Returns information about the plugin as a name/value array.\r
+ * The current keys are longname, author, authorurl, infourl and version.\r
+ *\r
+ * @return {Object} Name/value array containing information about the plugin.\r
+ */\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Example plugin',\r
+ author : 'Some author',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',\r
+ version : "1.0"\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('example', tinymce.plugins.ExamplePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var ExampleDialog = {\r
+ init : function() {\r
+ var f = document.forms[0];\r
+\r
+ // Get the selected contents as text and place it in the input\r
+ f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'});\r
+ f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg');\r
+ },\r
+\r
+ insert : function() {\r
+ // Insert the contents from the input into the document\r
+ tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value);\r
+ tinyMCEPopup.close();\r
+ }\r
+};\r
+\r
+tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog);\r
--- /dev/null
+tinyMCE.addI18n('en.example',{\r
+ desc : 'This is just a template button'\r
+});\r
--- /dev/null
+tinyMCE.addI18n('en.example_dlg',{\r
+ title : 'This is just a example title'\r
+});\r
--- /dev/null
+/* Hide the advanced tab */\r
+#advanced_tab {\r
+ display: none;\r
+}\r
+\r
+#metatitle, #metakeywords, #metadescription, #metaauthor, #metacopyright {\r
+ width: 280px;\r
+}\r
+\r
+#doctype, #docencoding {\r
+ width: 200px;\r
+}\r
+\r
+#langcode {\r
+ width: 30px;\r
+}\r
+\r
+#bgimage {\r
+ width: 220px; \r
+}\r
+\r
+#fontface {\r
+ width: 240px;\r
+}\r
+\r
+#leftmargin, #rightmargin, #topmargin, #bottommargin {\r
+ width: 50px;\r
+}\r
+\r
+.panel_wrapper div.current {\r
+ height: 400px;\r
+}\r
+\r
+#stylesheet, #style {\r
+ width: 240px;\r
+}\r
+\r
+/* Head list classes */\r
+\r
+.headlistwrapper {\r
+ width: 100%;\r
+}\r
+\r
+.addbutton, .removebutton, .moveupbutton, .movedownbutton {\r
+ border-top: 1px solid;\r
+ border-left: 1px solid;\r
+ border-bottom: 1px solid;\r
+ border-right: 1px solid;\r
+ border-color: #F0F0EE;\r
+ cursor: default;\r
+ display: block;\r
+ width: 20px;\r
+ height: 20px;\r
+}\r
+\r
+.addbutton:hover, .removebutton:hover, .moveupbutton:hover, .movedownbutton:hover {\r
+ border: 1px solid #0A246A;\r
+ background-color: #B6BDD2;\r
+}\r
+\r
+.addbutton {\r
+ background-image: url('../images/add.gif');\r
+ float: left;\r
+ margin-right: 3px;\r
+}\r
+\r
+.removebutton {\r
+ background-image: url('../images/remove.gif');\r
+ float: left;\r
+}\r
+\r
+.moveupbutton {\r
+ background-image: url('../images/move_up.gif');\r
+ float: left;\r
+ margin-right: 3px;\r
+}\r
+\r
+.movedownbutton {\r
+ background-image: url('../images/move_down.gif');\r
+ float: left;\r
+}\r
+\r
+.selected {\r
+ border: 1px solid #0A246A;\r
+ background-color: #B6BDD2;\r
+}\r
+\r
+.toolbar {\r
+ width: 100%;\r
+}\r
+\r
+#headlist {\r
+ width: 100%;\r
+ margin-top: 3px;\r
+ font-size: 11px;\r
+}\r
+\r
+#info, #title_element, #meta_element, #script_element, #style_element, #base_element, #link_element, #comment_element, #unknown_element {\r
+ display: none;\r
+}\r
+\r
+#addmenu {\r
+ position: absolute;\r
+ border: 1px solid gray;\r
+ display: none;\r
+ z-index: 100;\r
+ background-color: white;\r
+}\r
+\r
+#addmenu a {\r
+ display: block;\r
+ width: 100%;\r
+ line-height: 20px;\r
+ text-decoration: none;\r
+ background-color: white;\r
+}\r
+\r
+#addmenu a:hover {\r
+ background-color: #B6BDD2;\r
+ color: black;\r
+}\r
+\r
+#addmenu span {\r
+ padding-left: 10px;\r
+ padding-right: 10px;\r
+}\r
+\r
+#updateElementPanel {\r
+ display: none;\r
+}\r
+\r
+#script_element .panel_wrapper div.current {\r
+ height: 108px;\r
+}\r
+\r
+#style_element .panel_wrapper div.current {\r
+ height: 108px;\r
+}\r
+\r
+#link_element .panel_wrapper div.current {\r
+ height: 140px;\r
+}\r
+\r
+#element_script_value {\r
+ width: 100%;\r
+ height: 100px;\r
+}\r
+\r
+#element_comment_value {\r
+ width: 100%;\r
+ height: 120px;\r
+}\r
+\r
+#element_style_value {\r
+ width: 100%;\r
+ height: 100px;\r
+}\r
+\r
+#element_title, #element_script_src, #element_meta_name, #element_meta_content, #element_base_href, #element_link_href, #element_link_title {\r
+ width: 250px;\r
+}\r
+\r
+.updateElementButton {\r
+ margin-top: 3px;\r
+}\r
+\r
+/* MSIE specific styles */\r
+\r
+* html .addbutton, * html .removebutton, * html .moveupbutton, * html .movedownbutton {\r
+ width: 22px;\r
+ height: 22px;\r
+}\r
+\r
+textarea {\r
+ height: 55px;\r
+}\r
+\r
+.panel_wrapper div.current {height:420px;}
\ No newline at end of file
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.FullPagePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceFullPageProperties',function(){ed.windowManager.open({file:url+'/fullpage.htm',width:430+parseInt(ed.getLang('fullpage.delta_width',0)),height:495+parseInt(ed.getLang('fullpage.delta_height',0)),inline:1},{plugin_url:url,head_html:t.head});});ed.addButton('fullpage',{title:'fullpage.desc',cmd:'mceFullPageProperties'});ed.onBeforeSetContent.add(t._setContent,t);ed.onSetContent.add(t._setBodyAttribs,t);ed.onGetContent.add(t._getContent,t);},getInfo:function(){return{longname:'Fullpage',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_setBodyAttribs:function(ed,o){var bdattr,i,len,kv,k,v,t,attr=this.head.match(/body(.*?)>/i);if(attr&&attr[1]){bdattr=attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);for(i=0,len=bdattr.length;i<len;i++){kv=bdattr[i].split('=');k=kv[0].replace(/\s/,'');v=kv[1];if(v){v=v.replace(/^\s+/,'').replace(/\s+$/,'');t=v.match(/^["'](.*)["']$/);if(t)v=t[1];}else v=k;ed.dom.setAttrib(ed.getBody(),'style',v);}}},_createSerializer:function(){return new tinymce.dom.Serializer({dom:this.editor.dom,apply_source_formatting:true});},_setContent:function(ed,o){var t=this,sp,ep,c=o.content;c=c.replace(/<(\/?)BODY/gi,'<$1body');sp=c.indexOf('<body');if(sp!=-1){sp=c.indexOf('>',sp);t.head=c.substring(0,sp+1);ep=c.indexOf('</body',sp);if(ep==-1)ep=c.indexOf('</body',ep);o.content=c.substring(sp+1,ep);t.foot=c.substring(ep);function low(s){return s.replace(/<\/?[A-Z]+/g,function(a){return a.toLowerCase();})};t.head=low(t.head);t.foot=low(t.foot);}else{t.head='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';t.head+='\n<html>\n<head>\n<title>Untitled document</title>\n</head>\n<body>\n';t.foot='\n</body>\n</html>';}},_getContent:function(ed,o){var t=this;o.content=tinymce.trim(t.head)+'\n'+tinymce.trim(o.content)+'\n'+tinymce.trim(t.foot);}});tinymce.PluginManager.add('fullpage',tinymce.plugins.FullPagePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.FullPagePlugin', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceFullPageProperties', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/fullpage.htm',\r
+ width : 430 + parseInt(ed.getLang('fullpage.delta_width', 0)),\r
+ height : 495 + parseInt(ed.getLang('fullpage.delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url,\r
+ head_html : t.head\r
+ });\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('fullpage', {title : 'fullpage.desc', cmd : 'mceFullPageProperties'});\r
+\r
+ ed.onBeforeSetContent.add(t._setContent, t);\r
+ ed.onSetContent.add(t._setBodyAttribs, t);\r
+ ed.onGetContent.add(t._getContent, t);\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Fullpage',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private plugin internal methods\r
+\r
+ _setBodyAttribs : function(ed, o) {\r
+ var bdattr, i, len, kv, k, v, t, attr = this.head.match(/body(.*?)>/i);\r
+\r
+ if (attr && attr[1]) {\r
+ bdattr = attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);\r
+\r
+ for(i = 0, len = bdattr.length; i < len; i++) {\r
+ kv = bdattr[i].split('=');\r
+ k = kv[0].replace(/\s/,'');\r
+ v = kv[1];\r
+\r
+ if (v) {\r
+ v = v.replace(/^\s+/,'').replace(/\s+$/,'');\r
+ t = v.match(/^["'](.*)["']$/);\r
+\r
+ if (t)\r
+ v = t[1];\r
+ } else\r
+ v = k;\r
+\r
+ ed.dom.setAttrib(ed.getBody(), 'style', v);\r
+ }\r
+ }\r
+ },\r
+\r
+ _createSerializer : function() {\r
+ return new tinymce.dom.Serializer({\r
+ dom : this.editor.dom,\r
+ apply_source_formatting : true\r
+ });\r
+ },\r
+\r
+ _setContent : function(ed, o) {\r
+ var t = this, sp, ep, c = o.content;\r
+\r
+ // Parse out head, body and footer\r
+ c = c.replace(/<(\/?)BODY/gi, '<$1body');\r
+ sp = c.indexOf('<body');\r
+\r
+ if (sp != -1) {\r
+ sp = c.indexOf('>', sp);\r
+ t.head = c.substring(0, sp + 1);\r
+\r
+ ep = c.indexOf('</body', sp);\r
+ if (ep == -1)\r
+ ep = c.indexOf('</body', ep);\r
+\r
+ o.content = c.substring(sp + 1, ep);\r
+ t.foot = c.substring(ep);\r
+\r
+ function low(s) {\r
+ return s.replace(/<\/?[A-Z]+/g, function(a) {\r
+ return a.toLowerCase();\r
+ })\r
+ };\r
+\r
+ t.head = low(t.head);\r
+ t.foot = low(t.foot);\r
+ } else {\r
+ t.head = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';\r
+ t.head += '\n<html>\n<head>\n<title>Untitled document</title>\n</head>\n<body>\n';\r
+ t.foot = '\n</body>\n</html>';\r
+ }\r
+ },\r
+\r
+ _getContent : function(ed, o) {\r
+ var t = this;\r
+\r
+ o.content = tinymce.trim(t.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(t.foot);\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('fullpage', tinymce.plugins.FullPagePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#fullpage_dlg.title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="js/fullpage.js"></script>\r
+ <link href="css/fullpage.css" rel="stylesheet" type="text/css" />\r
+ <base target="_self" />\r
+</head>\r
+<body id="advlink" style="display: none">\r
+ <form onsubmit="updateAction();return false;" name="fullpage" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="meta_tab" class="current"><span><a href="javascript:mcTabs.displayTab('meta_tab','meta_panel');" onmousedown="return false;">{#fullpage_dlg.meta_tab}</a></span></li>\r
+ <li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{#fullpage_dlg.appearance_tab}</a></span></li>\r
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#fullpage_dlg.advanced_tab}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="meta_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#fullpage_dlg.meta_props}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="metatitle">{#fullpage_dlg.meta_title}</label> </td>\r
+ <td><input type="text" id="metatitle" name="metatitle" value="" class="mceFocus" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="metakeywords">{#fullpage_dlg.meta_keywords}</label> </td>\r
+ <td><textarea id="metakeywords" name="metakeywords" rows="4"></textarea></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="metadescription">{#fullpage_dlg.meta_description}</label> </td>\r
+ <td><textarea id="metadescription" name="metadescription" rows="4"></textarea></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="metaauthor">{#fullpage_dlg.author}</label> </td>\r
+ <td><input type="text" id="metaauthor" name="metaauthor" value="" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="metacopyright">{#fullpage_dlg.copyright}</label> </td>\r
+ <td><input type="text" id="metacopyright" name="metacopyright" value="" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="metarobots">{#fullpage_dlg.meta_robots}</label> </td>\r
+ <td>\r
+ <select id="metarobots" name="metarobots">\r
+ <option value="">{#not_set}</option> \r
+ <option value="index,follow">{#fullpage_dlg.meta_index_follow}</option>\r
+ <option value="index,nofollow">{#fullpage_dlg.meta_index_nofollow}</option>\r
+ <option value="noindex,follow">{#fullpage_dlg.meta_noindex_follow}</option>\r
+ <option value="noindex,nofollow">{#fullpage_dlg.meta_noindex_nofollow}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset>\r
+ <legend>{#fullpage_dlg.langprops}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="docencoding">{#fullpage_dlg.encoding}</label></td> \r
+ <td>\r
+ <select id="docencoding" name="docencoding"> \r
+ <option value="">{#not_set}</option>\r
+ </select>\r
+ </td> \r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="doctypes">{#fullpage_dlg.doctypes}</label> </td>\r
+ <td>\r
+ <select id="doctypes" name="doctypes">\r
+ <option value="">{#not_set}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="langcode">{#fullpage_dlg.langcode}</label> </td>\r
+ <td><input type="text" id="langcode" name="langcode" value="" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="langdir">{#fullpage_dlg.langdir}</label></td> \r
+ <td>\r
+ <select id="langdir" name="langdir"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#fullpage_dlg.ltr}</option> \r
+ <option value="rtl">{#fullpage_dlg.rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="xml_pi">{#fullpage_dlg.xml_pi}</label> </td>\r
+ <td><input type="checkbox" id="xml_pi" name="xml_pi" class="checkbox" /></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="appearance_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#fullpage_dlg.appearance_textprops}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="fontface">{#fullpage_dlg.fontface}</label></td> \r
+ <td>\r
+ <select id="fontface" name="fontface" onchange="changedStyleField(this);">\r
+ <option value="">{#not_set}</option>\r
+ </select>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="fontsize">{#fullpage_dlg.fontsize}</label></td> \r
+ <td>\r
+ <select id="fontsize" name="fontsize" onchange="changedStyleField(this);">\r
+ <option value="">{#not_set}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="textcolor">{#fullpage_dlg.textcolor}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="textcolor" name="textcolor" type="text" value="" size="9" onchange="updateColor('textcolor_pick','textcolor');changedStyleField(this);" /></td>\r
+ <td id="textcolor_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset>\r
+ <legend>{#fullpage_dlg.appearance_bgprops}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="bgimage">{#fullpage_dlg.bgimage}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="bgimage" name="bgimage" type="text" value="" onchange="changedStyleField(this);" /></td>\r
+ <td id="bgimage_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="bgcolor">{#fullpage_dlg.bgcolor}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedStyleField(this);" /></td>\r
+ <td id="bgcolor_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset>\r
+ <legend>{#fullpage_dlg.appearance_marginprops}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="leftmargin">{#fullpage_dlg.left_margin}</label></td> \r
+ <td><input id="leftmargin" name="leftmargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
+ <td class="column1"><label for="rightmargin">{#fullpage_dlg.right_margin}</label></td> \r
+ <td><input id="rightmargin" name="rightmargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="topmargin">{#fullpage_dlg.top_margin}</label></td> \r
+ <td><input id="topmargin" name="topmargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
+ <td class="column1"><label for="bottommargin">{#fullpage_dlg.bottom_margin}</label></td> \r
+ <td><input id="bottommargin" name="bottommargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset>\r
+ <legend>{#fullpage_dlg.appearance_linkprops}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="link_color">{#fullpage_dlg.link_color}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="link_color" name="link_color" type="text" value="" size="9" onchange="updateColor('link_color_pick','link_color');changedStyleField(this);" /></td>\r
+ <td id="link_color_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td class="column1"><label for="visited_color">{#fullpage_dlg.visited_color}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="visited_color" name="visited_color" type="text" value="" size="9" onchange="updateColor('visited_color_pick','visited_color');changedStyleField(this);" /></td>\r
+ <td id="visited_color_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="active_color">{#fullpage_dlg.active_color}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="active_color" name="active_color" type="text" value="" size="9" onchange="updateColor('active_color_pick','active_color');changedStyleField(this);" /></td>\r
+ <td id="active_color_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td> </td>\r
+ <td> </td>\r
+\r
+<!-- <td class="column1"><label for="hover_color">{#fullpage_dlg.hover_color}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="hover_color" name="hover_color" type="text" value="" size="9" onchange="changedStyleField(this);" /></td>\r
+ <td id="hover_color_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td> -->\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset>\r
+ <legend>{#fullpage_dlg.appearance_style}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="stylesheet">{#fullpage_dlg.stylesheet}</label></td> \r
+ <td><table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="stylesheet" name="stylesheet" type="text" value="" /></td>\r
+ <td id="stylesheet_browsercontainer"> </td>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="style">{#fullpage_dlg.style}</label></td> \r
+ <td><input id="style" name="style" type="text" value="" onchange="changedStyleField(this);" /></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="advanced_panel" class="panel">\r
+ <div id="addmenu">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr><td><a href="javascript:addHeadElm('title');" onmousedown="return false;"><span>{#fullpage_dlg.add_title}</span></a></td></tr>\r
+ <tr><td><a href="javascript:addHeadElm('meta');" onmousedown="return false;"><span>{#fullpage_dlg.add_meta}</span></a></td></tr>\r
+ <tr><td><a href="javascript:addHeadElm('script');" onmousedown="return false;"><span>{#fullpage_dlg.add_script}</span></a></td></tr>\r
+ <tr><td><a href="javascript:addHeadElm('style');" onmousedown="return false;"><span>{#fullpage_dlg.add_style}</span></a></td></tr>\r
+ <tr><td><a href="javascript:addHeadElm('link');" onmousedown="return false;"><span>{#fullpage_dlg.add_link}</span></a></td></tr>\r
+ <tr><td><a href="javascript:addHeadElm('base');" onmousedown="return false;"><span>{#fullpage_dlg.add_base}</span></a></td></tr>\r
+ <tr><td><a href="javascript:addHeadElm('comment');" onmousedown="return false;"><span>{#fullpage_dlg.add_comment}</span></a></td></tr>\r
+ </table>\r
+ </div>\r
+\r
+ <fieldset>\r
+ <legend>{#fullpage_dlg.head_elements}</legend>\r
+\r
+ <div class="headlistwrapper">\r
+ <div class="toolbar">\r
+ <div style="float: left">\r
+ <a id="addbutton" href="javascript:showAddMenu();" onmousedown="return false;" class="addbutton" title="{#fullpage_dlg.add}"></a>\r
+ <a href="#" onmousedown="return false;" class="removebutton" title="{#fullpage_dlg.remove}"></a>\r
+ </div>\r
+ <div style="float: right">\r
+ <a href="#" onmousedown="return false;" class="moveupbutton" title="{#fullpage_dlg.moveup}"></a>\r
+ <a href="#" onmousedown="return false;" class="movedownbutton" title="{#fullpage_dlg.movedown}"></a>\r
+ </div>\r
+ <br style="clear: both" />\r
+ </div>\r
+ <select id="headlist" size="26" onchange="updateHeadElm(this.options[this.selectedIndex].value);">\r
+ <option value="title_0"><title>Some title bla bla bla</title></option>\r
+ <option value="meta_1"><meta name="keywords">Some bla bla bla</meta></option>\r
+ <option value="meta_2"><meta name="description">Some bla bla bla bla bla bla bla bla bla</meta></option>\r
+ <option value="script_3"><script language="javascript">...</script></option>\r
+ <option value="style_4"><style>...</style></option>\r
+ <option value="base_5"><base href="." /></option>\r
+ <option value="comment_6"><!-- ... --></option>\r
+ <option value="link_7"><link href="." /></option>\r
+ </select>\r
+ </div>\r
+ </fieldset>\r
+\r
+ <fieldset id="meta_element">\r
+ <legend>{#fullpage_dlg.meta_element}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="element_meta_type">{#fullpage_dlg.type}</label></td> \r
+ <td><select id="element_meta_type">\r
+ <option value="name">name</option>\r
+ <option value="http-equiv">http-equiv</option>\r
+ </select></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_meta_name">{#fullpage_dlg.name}</label></td> \r
+ <td><input id="element_meta_name" name="element_meta_name" type="text" value="" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_meta_content">{#fullpage_dlg.content}</label></td> \r
+ <td><input id="element_meta_content" name="element_meta_content" type="text" value="" /></td>\r
+ </tr>\r
+ </table>\r
+\r
+ <input type="button" id="meta_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
+ </fieldset>\r
+\r
+ <fieldset id="title_element">\r
+ <legend>{#fullpage_dlg.title_element}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="element_title">{#fullpage_dlg.meta_title}</label></td> \r
+ <td><input id="element_title" name="element_title" type="text" value="" /></td>\r
+ </tr>\r
+ </table>\r
+\r
+ <input type="button" id="title_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
+ </fieldset>\r
+\r
+ <fieldset id="script_element">\r
+ <legend>{#fullpage_dlg.script_element}</legend>\r
+\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="script_props_tab" class="current"><span><a href="javascript:mcTabs.displayTab('script_props_tab','script_props_panel');" onmousedown="return false;">{#fullpage_dlg.properties}</a></span></li>\r
+ <li id="script_value_tab"><span><a href="javascript:mcTabs.displayTab('script_value_tab','script_value_panel');" onmousedown="return false;">{#fullpage_dlg.value}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="script_props_panel" class="panel current">\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="element_script_type">{#fullpage_dlg.type}</label></td> \r
+ <td><select id="element_script_type">\r
+ <option value="text/javascript">text/javascript</option>\r
+ <option value="text/jscript">text/jscript</option>\r
+ <option value="text/vbscript">text/vbscript</option>\r
+ <option value="text/vbs">text/vbs</option>\r
+ <option value="text/ecmascript">text/ecmascript</option>\r
+ <option value="text/xml">text/xml</option>\r
+ </select></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_script_src">{#fullpage_dlg.src}</label></td> \r
+ <td><table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="element_script_src" name="element_script_src" type="text" value="" /></td>\r
+ <td id="script_src_pickcontainer"> </td>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_script_charset">{#fullpage_dlg.charset}</label></td> \r
+ <td><select id="element_script_charset"><option value="">{#not_set}</option></select></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_script_defer">{#fullpage_dlg.defer}</label></td> \r
+ <td><input type="checkbox" id="element_script_defer" name="element_script_defer" class="checkbox" /></td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+\r
+ <div id="script_value_panel" class="panel">\r
+ <textarea id="element_script_value"></textarea>\r
+ </div>\r
+ </div>\r
+\r
+ <input type="button" id="script_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
+ </fieldset>\r
+\r
+ <fieldset id="style_element">\r
+ <legend>{#fullpage_dlg.style_element}</legend>\r
+\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="style_props_tab" class="current"><span><a href="javascript:mcTabs.displayTab('style_props_tab','style_props_panel');" onmousedown="return false;">{#fullpage_dlg.properties}</a></span></li>\r
+ <li id="style_value_tab"><span><a href="javascript:mcTabs.displayTab('style_value_tab','style_value_panel');" onmousedown="return false;">{#fullpage_dlg.value}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="style_props_panel" class="panel current">\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="element_style_type">{#fullpage_dlg.type}</label></td> \r
+ <td><select id="element_style_type">\r
+ <option value="text/css">text/css</option>\r
+ </select></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_style_media">{#fullpage_dlg.media}</label></td> \r
+ <td><select id="element_style_media"></select></td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+\r
+ <div id="style_value_panel" class="panel">\r
+ <textarea id="element_style_value"></textarea>\r
+ </div>\r
+ </div>\r
+\r
+ <input type="button" id="style_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
+ </fieldset>\r
+\r
+ <fieldset id="base_element">\r
+ <legend>{#fullpage_dlg.base_element}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="element_base_href">{#fullpage_dlg.href}</label></td> \r
+ <td><input id="element_base_href" name="element_base_href" type="text" value="" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_base_target">{#fullpage_dlg.target}</label></td> \r
+ <td><input id="element_base_target" name="element_base_target" type="text" value="" /></td>\r
+ </tr>\r
+ </table>\r
+\r
+ <input type="button" id="base_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
+ </fieldset>\r
+\r
+ <fieldset id="link_element">\r
+ <legend>{#fullpage_dlg.link_element}</legend>\r
+\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="link_general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('link_general_tab','link_general_panel');" onmousedown="return false;">{#fullpage_dlg.general_props}</a></span></li>\r
+ <li id="link_advanced_tab"><span><a href="javascript:mcTabs.displayTab('link_advanced_tab','link_advanced_panel');" onmousedown="return false;">{#fullpage_dlg.advanced_props}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="link_general_panel" class="panel current">\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="element_link_href">{#fullpage_dlg.href}</label></td> \r
+ <td><table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="element_link_href" name="element_link_href" type="text" value="" /></td>\r
+ <td id="link_href_pickcontainer"> </td>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_link_title">{#fullpage_dlg.meta_title}</label></td> \r
+ <td><input id="element_link_title" name="element_link_title" type="text" value="" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_link_type">{#fullpage_dlg.type}</label></td> \r
+ <td><select id="element_link_type" name="element_link_type">\r
+ <option value="text/css">text/css</option>\r
+ <option value="text/javascript">text/javascript</option>\r
+ </select></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_link_media">{#fullpage_dlg.media}</label></td> \r
+ <td><select id="element_link_media" name="element_link_media"></select></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="element_style_rel">{#fullpage_dlg.rel}</label></td>\r
+ <td><select id="element_style_rel" name="element_style_rel"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="stylesheet">Stylesheet</option>\r
+ <option value="alternate">Alternate</option>\r
+ <option value="designates">Designates</option>\r
+ <option value="start">Start</option>\r
+ <option value="next">Next</option>\r
+ <option value="prev">Prev</option>\r
+ <option value="contents">Contents</option>\r
+ <option value="index">Index</option>\r
+ <option value="glossary">Glossary</option>\r
+ <option value="copyright">Copyright</option>\r
+ <option value="chapter">Chapter</option>\r
+ <option value="subsection">Subsection</option>\r
+ <option value="appendix">Appendix</option>\r
+ <option value="help">Help</option>\r
+ <option value="bookmark">Bookmark</option>\r
+ </select> \r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+\r
+ <div id="link_advanced_panel" class="panel">\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td class="column1"><label for="element_link_charset">{#fullpage_dlg.charset}</label></td> \r
+ <td><select id="element_link_charset"><option value="">{#not_set}</option></select></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_link_hreflang">{#fullpage_dlg.hreflang}</label></td> \r
+ <td><input id="element_link_hreflang" name="element_link_hreflang" type="text" value="" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="element_link_target">{#fullpage_dlg.target}</label></td> \r
+ <td><input id="element_link_target" name="element_link_target" type="text" value="" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="element_style_rev">{#fullpage_dlg.rev}</label></td>\r
+ <td><select id="element_style_rev" name="element_style_rev"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="alternate">Alternate</option> \r
+ <option value="designates">Designates</option> \r
+ <option value="stylesheet">Stylesheet</option> \r
+ <option value="start">Start</option> \r
+ <option value="next">Next</option> \r
+ <option value="prev">Prev</option> \r
+ <option value="contents">Contents</option> \r
+ <option value="index">Index</option> \r
+ <option value="glossary">Glossary</option> \r
+ <option value="copyright">Copyright</option> \r
+ <option value="chapter">Chapter</option> \r
+ <option value="subsection">Subsection</option> \r
+ <option value="appendix">Appendix</option> \r
+ <option value="help">Help</option> \r
+ <option value="bookmark">Bookmark</option> \r
+ </select> \r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+ </div>\r
+\r
+ <input type="button" id="link_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
+ </fieldset>\r
+\r
+ <fieldset id="comment_element">\r
+ <legend>{#fullpage_dlg.comment_element}</legend>\r
+\r
+ <textarea id="element_comment_value"></textarea>\r
+\r
+ <input type="button" id="comment_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="update" value="{#update}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+ </form>\r
+</body>\r
+</html>\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var doc;\r
+\r
+var defaultDocTypes = \r
+ 'XHTML 1.0 Transitional=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,' +\r
+ 'XHTML 1.0 Frameset=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">,' +\r
+ 'XHTML 1.0 Strict=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">,' +\r
+ 'XHTML 1.1=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">,' +\r
+ 'HTML 4.01 Transitional=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,' +\r
+ 'HTML 4.01 Strict=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">,' +\r
+ 'HTML 4.01 Frameset=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">';\r
+\r
+var defaultEncodings = \r
+ 'Western european (iso-8859-1)=iso-8859-1,' +\r
+ 'Central European (iso-8859-2)=iso-8859-2,' +\r
+ 'Unicode (UTF-8)=utf-8,' +\r
+ 'Chinese traditional (Big5)=big5,' +\r
+ 'Cyrillic (iso-8859-5)=iso-8859-5,' +\r
+ 'Japanese (iso-2022-jp)=iso-2022-jp,' +\r
+ 'Greek (iso-8859-7)=iso-8859-7,' +\r
+ 'Korean (iso-2022-kr)=iso-2022-kr,' +\r
+ 'ASCII (us-ascii)=us-ascii';\r
+\r
+var defaultMediaTypes = \r
+ 'all=all,' +\r
+ 'screen=screen,' +\r
+ 'print=print,' +\r
+ 'tty=tty,' +\r
+ 'tv=tv,' +\r
+ 'projection=projection,' +\r
+ 'handheld=handheld,' +\r
+ 'braille=braille,' +\r
+ 'aural=aural';\r
+\r
+var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';\r
+var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px';\r
+\r
+function init() {\r
+ var f = document.forms['fullpage'], el = f.elements, e, i, p, doctypes, encodings, mediaTypes, fonts, ed = tinyMCEPopup.editor, dom = tinyMCEPopup.dom, style;\r
+\r
+ // Setup doctype select box\r
+ doctypes = ed.getParam("fullpage_doctypes", defaultDocTypes).split(',');\r
+ for (i=0; i<doctypes.length; i++) {\r
+ p = doctypes[i].split('=');\r
+\r
+ if (p.length > 1)\r
+ addSelectValue(f, 'doctypes', p[0], p[1]);\r
+ }\r
+\r
+ // Setup fonts select box\r
+ fonts = ed.getParam("fullpage_fonts", defaultFontNames).split(';');\r
+ for (i=0; i<fonts.length; i++) {\r
+ p = fonts[i].split('=');\r
+\r
+ if (p.length > 1)\r
+ addSelectValue(f, 'fontface', p[0], p[1]);\r
+ }\r
+\r
+ // Setup fontsize select box\r
+ fonts = ed.getParam("fullpage_fontsizes", defaultFontSizes).split(',');\r
+ for (i=0; i<fonts.length; i++)\r
+ addSelectValue(f, 'fontsize', fonts[i], fonts[i]);\r
+\r
+ // Setup mediatype select boxs\r
+ mediaTypes = ed.getParam("fullpage_media_types", defaultMediaTypes).split(',');\r
+ for (i=0; i<mediaTypes.length; i++) {\r
+ p = mediaTypes[i].split('=');\r
+\r
+ if (p.length > 1) {\r
+ addSelectValue(f, 'element_style_media', p[0], p[1]);\r
+ addSelectValue(f, 'element_link_media', p[0], p[1]);\r
+ }\r
+ }\r
+\r
+ // Setup encodings select box\r
+ encodings = ed.getParam("fullpage_encodings", defaultEncodings).split(',');\r
+ for (i=0; i<encodings.length; i++) {\r
+ p = encodings[i].split('=');\r
+\r
+ if (p.length > 1) {\r
+ addSelectValue(f, 'docencoding', p[0], p[1]);\r
+ addSelectValue(f, 'element_script_charset', p[0], p[1]);\r
+ addSelectValue(f, 'element_link_charset', p[0], p[1]);\r
+ }\r
+ }\r
+\r
+ document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
+ document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color');\r
+ //document.getElementById('hover_color_pickcontainer').innerHTML = getColorPickerHTML('hover_color_pick','hover_color');\r
+ document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color');\r
+ document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color');\r
+ document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor');\r
+ document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage');\r
+ document.getElementById('link_href_pickcontainer').innerHTML = getBrowserHTML('link_href_browser','element_link_href','file','fullpage');\r
+ document.getElementById('script_src_pickcontainer').innerHTML = getBrowserHTML('script_src_browser','element_script_src','file','fullpage');\r
+ document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage');\r
+\r
+ // Resize some elements\r
+ if (isVisible('stylesheetbrowser'))\r
+ document.getElementById('stylesheet').style.width = '220px';\r
+\r
+ if (isVisible('link_href_browser'))\r
+ document.getElementById('element_link_href').style.width = '230px';\r
+\r
+ if (isVisible('bgimage_browser'))\r
+ document.getElementById('bgimage').style.width = '210px';\r
+\r
+ // Add iframe\r
+ dom.add(document.body, 'iframe', {id : 'documentIframe', src : 'javascript:""', style : {display : 'none'}});\r
+ doc = dom.get('documentIframe').contentWindow.document;\r
+ h = tinyMCEPopup.getWindowArg('head_html');\r
+\r
+ // Preprocess the HTML disable scripts and urls\r
+ h = h.replace(/<script>/gi, '<script type="text/javascript">');\r
+ h = h.replace(/type=([\"\'])?/gi, 'type=$1-mce-');\r
+ h = h.replace(/(src=|href=)/g, 'mce_$1');\r
+\r
+ // Write in the content in the iframe\r
+ doc.write(h + '</body></html>');\r
+ doc.close();\r
+\r
+ // Parse xml and doctype\r
+ xmlVer = getReItem(/<\?\s*?xml.*?version\s*?=\s*?"(.*?)".*?\?>/gi, h, 1);\r
+ xmlEnc = getReItem(/<\?\s*?xml.*?encoding\s*?=\s*?"(.*?)".*?\?>/gi, h, 1);\r
+ docType = getReItem(/<\!DOCTYPE.*?>/gi, h, 0);\r
+ f.langcode.value = getReItem(/lang="(.*?)"/gi, h, 1);\r
+\r
+ // Parse title\r
+ if (e = doc.getElementsByTagName('title')[0])\r
+ el.metatitle.value = e.textContent || e.text;\r
+\r
+ // Parse meta\r
+ tinymce.each(doc.getElementsByTagName('meta'), function(n) {\r
+ var na = (n.getAttribute('name', 2) || '').toLowerCase(), va = n.getAttribute('content', 2), eq = n.getAttribute('httpEquiv', 2) || '';\r
+\r
+ e = el['meta' + na];\r
+\r
+ if (na == 'robots') {\r
+ selectByValue(f, 'metarobots', tinymce.trim(va), true, true);\r
+ return;\r
+ }\r
+\r
+ switch (eq.toLowerCase()) {\r
+ case "content-type":\r
+ tmp = getReItem(/charset\s*=\s*(.*)\s*/gi, value, 1);\r
+\r
+ // Override XML encoding\r
+ if (tmp != "")\r
+ xmlEnc = tmp;\r
+\r
+ return;\r
+ }\r
+\r
+ if (e)\r
+ e.value = va;\r
+ });\r
+\r
+ selectByValue(f, 'doctypes', docType, true, true);\r
+ selectByValue(f, 'docencoding', xmlEnc, true, true);\r
+ selectByValue(f, 'langdir', doc.body.getAttribute('dir', 2) || '', true, true);\r
+\r
+ if (xmlVer != '')\r
+ el.xml_pi.checked = true;\r
+\r
+ // Parse appearance\r
+\r
+ // Parse primary stylesheet\r
+ tinymce.each(doc.getElementsByTagName("link"), function(l) {\r
+ var m = l.getAttribute('media', 2) || '', t = l.getAttribute('type', 2) || '';\r
+\r
+ if (t == "-mce-text/css" && (m == "" || m == "screen" || m == "all") && (l.getAttribute('rel', 2) || '') == "stylesheet") {\r
+ f.stylesheet.value = l.getAttribute('mce_href', 2) || '';\r
+ return false;\r
+ }\r
+ });\r
+\r
+ // Get from style elements\r
+ tinymce.each(doc.getElementsByTagName("style"), function(st) {\r
+ var tmp = parseStyleElement(st);\r
+\r
+ for (x=0; x<tmp.length; x++) {\r
+ if (tmp[x].rule.indexOf('a:visited') != -1 && tmp[x].data['color'])\r
+ f.visited_color.value = tmp[x].data['color'];\r
+\r
+ if (tmp[x].rule.indexOf('a:link') != -1 && tmp[x].data['color'])\r
+ f.link_color.value = tmp[x].data['color'];\r
+\r
+ if (tmp[x].rule.indexOf('a:active') != -1 && tmp[x].data['color'])\r
+ f.active_color.value = tmp[x].data['color'];\r
+ }\r
+ });\r
+\r
+ f.textcolor.value = tinyMCEPopup.dom.getAttrib(doc.body, "text");\r
+ f.active_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "alink");\r
+ f.link_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "link");\r
+ f.visited_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "vlink");\r
+ f.bgcolor.value = tinyMCEPopup.dom.getAttrib(doc.body, "bgcolor");\r
+ f.bgimage.value = tinyMCEPopup.dom.getAttrib(doc.body, "background");\r
+\r
+ // Get from style info\r
+ style = tinyMCEPopup.dom.parseStyle(tinyMCEPopup.dom.getAttrib(doc.body, 'style'));\r
+\r
+ if (style['font-family'])\r
+ selectByValue(f, 'fontface', style['font-family'], true, true);\r
+ else\r
+ selectByValue(f, 'fontface', ed.getParam("fullpage_default_fontface", ""), true, true);\r
+\r
+ if (style['font-size'])\r
+ selectByValue(f, 'fontsize', style['font-size'], true, true);\r
+ else\r
+ selectByValue(f, 'fontsize', ed.getParam("fullpage_default_fontsize", ""), true, true);\r
+\r
+ if (style['color'])\r
+ f.textcolor.value = convertRGBToHex(style['color']);\r
+\r
+ if (style['background-image'])\r
+ f.bgimage.value = style['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
+\r
+ if (style['background-color'])\r
+ f.bgcolor.value = style['background-color'];\r
+\r
+ if (style['margin']) {\r
+ tmp = style['margin'].replace(/[^0-9 ]/g, '');\r
+ tmp = tmp.split(/ +/);\r
+ f.topmargin.value = tmp.length > 0 ? tmp[0] : '';\r
+ f.rightmargin.value = tmp.length > 1 ? tmp[1] : tmp[0];\r
+ f.bottommargin.value = tmp.length > 2 ? tmp[2] : tmp[0];\r
+ f.leftmargin.value = tmp.length > 3 ? tmp[3] : tmp[0];\r
+ }\r
+\r
+ if (style['margin-left'])\r
+ f.leftmargin.value = style['margin-left'].replace(/[^0-9]/g, '');\r
+\r
+ if (style['margin-right'])\r
+ f.rightmargin.value = style['margin-right'].replace(/[^0-9]/g, '');\r
+\r
+ if (style['margin-top'])\r
+ f.topmargin.value = style['margin-top'].replace(/[^0-9]/g, '');\r
+\r
+ if (style['margin-bottom'])\r
+ f.bottommargin.value = style['margin-bottom'].replace(/[^0-9]/g, '');\r
+\r
+ f.style.value = tinyMCEPopup.dom.serializeStyle(style);\r
+\r
+ // Update colors\r
+ updateColor('textcolor_pick', 'textcolor');\r
+ updateColor('bgcolor_pick', 'bgcolor');\r
+ updateColor('visited_color_pick', 'visited_color');\r
+ updateColor('active_color_pick', 'active_color');\r
+ updateColor('link_color_pick', 'link_color');\r
+}\r
+\r
+function getReItem(r, s, i) {\r
+ var c = r.exec(s);\r
+\r
+ if (c && c.length > i)\r
+ return c[i];\r
+\r
+ return '';\r
+}\r
+\r
+function updateAction() {\r
+ var f = document.forms[0], nl, i, h, v, s, head, html, l, tmp, addlink = true, ser;\r
+\r
+ head = doc.getElementsByTagName('head')[0];\r
+\r
+ // Fix scripts without a type\r
+ nl = doc.getElementsByTagName('script');\r
+ for (i=0; i<nl.length; i++) {\r
+ if (tinyMCEPopup.dom.getAttrib(nl[i], 'mce_type') == '')\r
+ nl[i].setAttribute('mce_type', 'text/javascript');\r
+ }\r
+\r
+ // Get primary stylesheet\r
+ nl = doc.getElementsByTagName("link");\r
+ for (i=0; i<nl.length; i++) {\r
+ l = nl[i];\r
+\r
+ tmp = tinyMCEPopup.dom.getAttrib(l, 'media');\r
+\r
+ if (tinyMCEPopup.dom.getAttrib(l, 'mce_type') == "text/css" && (tmp == "" || tmp == "screen" || tmp == "all") && tinyMCEPopup.dom.getAttrib(l, 'rel') == "stylesheet") {\r
+ addlink = false;\r
+\r
+ if (f.stylesheet.value == '')\r
+ l.parentNode.removeChild(l);\r
+ else\r
+ l.setAttribute('mce_href', f.stylesheet.value);\r
+\r
+ break;\r
+ }\r
+ }\r
+\r
+ // Add new link\r
+ if (f.stylesheet.value != '') {\r
+ l = doc.createElement('link');\r
+\r
+ l.setAttribute('type', 'text/css');\r
+ l.setAttribute('mce_href', f.stylesheet.value);\r
+ l.setAttribute('rel', 'stylesheet');\r
+\r
+ head.appendChild(l);\r
+ }\r
+\r
+ setMeta(head, 'keywords', f.metakeywords.value);\r
+ setMeta(head, 'description', f.metadescription.value);\r
+ setMeta(head, 'author', f.metaauthor.value);\r
+ setMeta(head, 'copyright', f.metacopyright.value);\r
+ setMeta(head, 'robots', getSelectValue(f, 'metarobots'));\r
+ setMeta(head, 'Content-Type', getSelectValue(f, 'docencoding'));\r
+\r
+ doc.body.dir = getSelectValue(f, 'langdir');\r
+ doc.body.style.cssText = f.style.value;\r
+\r
+ doc.body.setAttribute('vLink', f.visited_color.value);\r
+ doc.body.setAttribute('link', f.link_color.value);\r
+ doc.body.setAttribute('text', f.textcolor.value);\r
+ doc.body.setAttribute('aLink', f.active_color.value);\r
+\r
+ doc.body.style.fontFamily = getSelectValue(f, 'fontface');\r
+ doc.body.style.fontSize = getSelectValue(f, 'fontsize');\r
+ doc.body.style.backgroundColor = f.bgcolor.value;\r
+\r
+ if (f.leftmargin.value != '')\r
+ doc.body.style.marginLeft = f.leftmargin.value + 'px';\r
+\r
+ if (f.rightmargin.value != '')\r
+ doc.body.style.marginRight = f.rightmargin.value + 'px';\r
+\r
+ if (f.bottommargin.value != '')\r
+ doc.body.style.marginBottom = f.bottommargin.value + 'px';\r
+\r
+ if (f.topmargin.value != '')\r
+ doc.body.style.marginTop = f.topmargin.value + 'px';\r
+\r
+ html = doc.getElementsByTagName('html')[0];\r
+ html.setAttribute('lang', f.langcode.value);\r
+ html.setAttribute('xml:lang', f.langcode.value);\r
+\r
+ if (f.bgimage.value != '')\r
+ doc.body.style.backgroundImage = "url('" + f.bgimage.value + "')";\r
+ else\r
+ doc.body.style.backgroundImage = '';\r
+\r
+ ser = tinyMCEPopup.editor.plugins.fullpage._createSerializer();\r
+ ser.setRules('-title,meta[http-equiv|name|content],base[href|target],link[href|rel|type|title|media],style[type],script[type|language|src],html[lang|xml::lang|xmlns],body[style|dir|vlink|link|text|alink],head');\r
+\r
+ h = ser.serialize(doc.documentElement);\r
+ h = h.substring(0, h.lastIndexOf('</body>'));\r
+\r
+ if (h.indexOf('<title>') == -1)\r
+ h = h.replace(/<head.*?>/, '$&\n' + '<title>' + tinyMCEPopup.dom.encode(f.metatitle.value) + '</title>');\r
+ else\r
+ h = h.replace(/<title>(.*?)<\/title>/, '<title>' + tinyMCEPopup.dom.encode(f.metatitle.value) + '</title>');\r
+\r
+ if ((v = getSelectValue(f, 'doctypes')) != '')\r
+ h = v + '\n' + h;\r
+\r
+ if (f.xml_pi.checked) {\r
+ s = '<?xml version="1.0"';\r
+\r
+ if ((v = getSelectValue(f, 'docencoding')) != '')\r
+ s += ' encoding="' + v + '"';\r
+\r
+ s += '?>\n';\r
+ h = s + h;\r
+ }\r
+\r
+ h = h.replace(/type=\"\-mce\-/gi, 'type="');\r
+\r
+ tinyMCEPopup.editor.plugins.fullpage.head = h;\r
+ tinyMCEPopup.editor.plugins.fullpage._setBodyAttribs(tinyMCEPopup.editor, {});\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function changedStyleField(field) {\r
+ //alert(field.id);\r
+}\r
+\r
+function setMeta(he, k, v) {\r
+ var nl, i, m;\r
+\r
+ nl = he.getElementsByTagName('meta');\r
+ for (i=0; i<nl.length; i++) {\r
+ if (k == 'Content-Type' && tinyMCEPopup.dom.getAttrib(nl[i], 'http-equiv') == k) {\r
+ if (v == '')\r
+ nl[i].parentNode.removeChild(nl[i]);\r
+ else\r
+ nl[i].setAttribute('content', "text/html; charset=" + v);\r
+\r
+ return;\r
+ }\r
+\r
+ if (tinyMCEPopup.dom.getAttrib(nl[i], 'name') == k) {\r
+ if (v == '')\r
+ nl[i].parentNode.removeChild(nl[i]);\r
+ else\r
+ nl[i].setAttribute('content', v);\r
+ return;\r
+ }\r
+ }\r
+\r
+ if (v == '')\r
+ return;\r
+\r
+ m = doc.createElement('meta');\r
+\r
+ if (k == 'Content-Type')\r
+ m.httpEquiv = k;\r
+ else\r
+ m.setAttribute('name', k);\r
+\r
+ m.setAttribute('content', v);\r
+ he.appendChild(m);\r
+}\r
+\r
+function parseStyleElement(e) {\r
+ var v = e.innerHTML;\r
+ var p, i, r;\r
+\r
+ v = v.replace(/<!--/gi, '');\r
+ v = v.replace(/-->/gi, '');\r
+ v = v.replace(/[\n\r]/gi, '');\r
+ v = v.replace(/\s+/gi, ' ');\r
+\r
+ r = [];\r
+ p = v.split(/{|}/);\r
+\r
+ for (i=0; i<p.length; i+=2) {\r
+ if (p[i] != "")\r
+ r[r.length] = {rule : tinymce.trim(p[i]), data : tinyMCEPopup.dom.parseStyle(p[i+1])};\r
+ }\r
+\r
+ return r;\r
+}\r
+\r
+function serializeStyleElement(d) {\r
+ var i, s, st;\r
+\r
+ s = '<!--\n';\r
+\r
+ for (i=0; i<d.length; i++) {\r
+ s += d[i].rule + ' {\n';\r
+\r
+ st = tinyMCE.serializeStyle(d[i].data);\r
+\r
+ if (st != '')\r
+ st += ';';\r
+\r
+ s += st.replace(/;/g, ';\n');\r
+ s += '}\n';\r
+\r
+ if (i != d.length - 1)\r
+ s += '\n';\r
+ }\r
+\r
+ s += '\n-->';\r
+\r
+ return s;\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCE.addI18n('en.fullpage_dlg',{\r
+title:"Document properties",\r
+meta_tab:"General",\r
+appearance_tab:"Appearance",\r
+advanced_tab:"Advanced",\r
+meta_props:"Meta information",\r
+langprops:"Language and encoding",\r
+meta_title:"Title",\r
+meta_keywords:"Keywords",\r
+meta_description:"Description",\r
+meta_robots:"Robots",\r
+doctypes:"Doctype",\r
+langcode:"Language code",\r
+langdir:"Language direction",\r
+ltr:"Left to right",\r
+rtl:"Right to left",\r
+xml_pi:"XML declaration",\r
+encoding:"Character encoding",\r
+appearance_bgprops:"Background properties",\r
+appearance_marginprops:"Body margins",\r
+appearance_linkprops:"Link colors",\r
+appearance_textprops:"Text properties",\r
+bgcolor:"Background color",\r
+bgimage:"Background image",\r
+left_margin:"Left margin",\r
+right_margin:"Right margin",\r
+top_margin:"Top margin",\r
+bottom_margin:"Bottom margin",\r
+text_color:"Text color",\r
+font_size:"Font size",\r
+font_face:"Font face",\r
+link_color:"Link color",\r
+hover_color:"Hover color",\r
+visited_color:"Visited color",\r
+active_color:"Active color",\r
+textcolor:"Color",\r
+fontsize:"Font size",\r
+fontface:"Font family",\r
+meta_index_follow:"Index and follow the links",\r
+meta_index_nofollow:"Index and don't follow the links",\r
+meta_noindex_follow:"Do not index but follow the links",\r
+meta_noindex_nofollow:"Do not index and don\'t follow the links",\r
+appearance_style:"Stylesheet and style properties",\r
+stylesheet:"Stylesheet",\r
+style:"Style",\r
+author:"Author",\r
+copyright:"Copyright",\r
+add:"Add new element",\r
+remove:"Remove selected element",\r
+moveup:"Move selected element up",\r
+movedown:"Move selected element down",\r
+head_elements:"Head elements",\r
+info:"Information",\r
+add_title:"Title element",\r
+add_meta:"Meta element",\r
+add_script:"Script element",\r
+add_style:"Style element",\r
+add_link:"Link element",\r
+add_base:"Base element",\r
+add_comment:"Comment node",\r
+title_element:"Title element",\r
+script_element:"Script element",\r
+style_element:"Style element",\r
+base_element:"Base element",\r
+link_element:"Link element",\r
+meta_element:"Meta element",\r
+comment_element:"Comment",\r
+src:"Src",\r
+language:"Language",\r
+href:"Href",\r
+target:"Target",\r
+type:"Type",\r
+charset:"Charset",\r
+defer:"Defer",\r
+media:"Media",\r
+properties:"Properties",\r
+name:"Name",\r
+value:"Value",\r
+content:"Content",\r
+rel:"Rel",\r
+rev:"Rev",\r
+hreflang:"Href lang",\r
+general_props:"General",\r
+advanced_props:"Advanced"\r
+});
\ No newline at end of file
--- /dev/null
+(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.plugins.FullScreenPlugin',{init:function(ed,url){var t=this,s={},vp;t.editor=ed;ed.addCommand('mceFullScreen',function(){var win,de=document.documentElement;if(ed.getParam('fullscreen_is_enabled')){if(ed.getParam('fullscreen_new_window'))closeFullscreen();else{window.setTimeout(function(){tinymce.dom.Event.remove(window,'resize',t.resizeFunc);tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format:'raw'}),{format:'raw'});tinyMCE.remove(ed);DOM.remove('mce_fullscreen_container');de.style.overflow=ed.getParam('fullscreen_html_overflow');DOM.setStyle(document.body,'overflow',ed.getParam('fullscreen_overflow'));window.scrollTo(ed.getParam('fullscreen_scrollx'),ed.getParam('fullscreen_scrolly'));tinyMCE.settings=tinyMCE.oldSettings;},10);}return;}if(ed.getParam('fullscreen_new_window')){win=window.open(url+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{win.resizeTo(screen.availWidth,screen.availHeight);}catch(e){}}else{tinyMCE.oldSettings=tinyMCE.settings;s.fullscreen_overflow=DOM.getStyle(document.body,'overflow',1)||'auto';s.fullscreen_html_overflow=DOM.getStyle(de,'overflow',1);vp=DOM.getViewPort();s.fullscreen_scrollx=vp.x;s.fullscreen_scrolly=vp.y;if(tinymce.isOpera&&s.fullscreen_overflow=='visible')s.fullscreen_overflow='auto';if(tinymce.isIE&&s.fullscreen_overflow=='scroll')s.fullscreen_overflow='auto';if(s.fullscreen_overflow=='0px')s.fullscreen_overflow='';DOM.setStyle(document.body,'overflow','hidden');de.style.overflow='hidden';vp=DOM.getViewPort();window.scrollTo(0,0);if(tinymce.isIE)vp.h-=1;n=DOM.add(document.body,'div',{id:'mce_fullscreen_container',style:'position:absolute;top:0;left:0;width:'+vp.w+'px;height:'+vp.h+'px;z-index:150;'});DOM.add(n,'div',{id:'mce_fullscreen'});tinymce.each(ed.settings,function(v,n){s[n]=v;});s.id='mce_fullscreen';s.width=n.clientWidth;s.height=n.clientHeight-15;s.fullscreen_is_enabled=true;s.fullscreen_editor_id=ed.id;s.theme_advanced_resizing=false;s.save_onsavecallback=function(){ed.setContent(tinyMCE.get(s.id).getContent({format:'raw'}),{format:'raw'});ed.execCommand('mceSave');};tinymce.each(ed.getParam('fullscreen_settings'),function(v,k){s[k]=v;});if(s.theme_advanced_toolbar_location==='external')s.theme_advanced_toolbar_location='top';t.fullscreenEditor=new tinymce.Editor('mce_fullscreen',s);t.fullscreenEditor.onInit.add(function(){t.fullscreenEditor.setContent(ed.getContent());});t.fullscreenEditor.render();tinyMCE.add(t.fullscreenEditor);t.fullscreenElement=new tinymce.dom.Element('mce_fullscreen_container');t.fullscreenElement.update();t.resizeFunc=tinymce.dom.Event.add(window,'resize',function(){var vp=tinymce.DOM.getViewPort();t.fullscreenEditor.theme.resizeTo(vp.w,vp.h);});}});ed.addButton('fullscreen',{title:'fullscreen.desc',cmd:'mceFullScreen'});ed.onNodeChange.add(function(ed,cm){cm.setActive('fullscreen',ed.getParam('fullscreen_is_enabled'));});},getInfo:function(){return{longname:'Fullscreen',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('fullscreen',tinymce.plugins.FullScreenPlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM;\r
+\r
+ tinymce.create('tinymce.plugins.FullScreenPlugin', {\r
+ init : function(ed, url) {\r
+ var t = this, s = {}, vp;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceFullScreen', function() {\r
+ var win, de = document.documentElement;\r
+\r
+ if (ed.getParam('fullscreen_is_enabled')) {\r
+ if (ed.getParam('fullscreen_new_window'))\r
+ closeFullscreen(); // Call to close in new window\r
+ else {\r
+ window.setTimeout(function() {\r
+ tinymce.dom.Event.remove(window, 'resize', t.resizeFunc);\r
+ tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format : 'raw'}), {format : 'raw'});\r
+ tinyMCE.remove(ed);\r
+ DOM.remove('mce_fullscreen_container');\r
+ de.style.overflow = ed.getParam('fullscreen_html_overflow');\r
+ DOM.setStyle(document.body, 'overflow', ed.getParam('fullscreen_overflow'));\r
+ window.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly'));\r
+ tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings\r
+ }, 10);\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ if (ed.getParam('fullscreen_new_window')) {\r
+ win = window.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);\r
+ try {\r
+ win.resizeTo(screen.availWidth, screen.availHeight);\r
+ } catch (e) {\r
+ // Ignore\r
+ }\r
+ } else {\r
+ tinyMCE.oldSettings = tinyMCE.settings; // Store old settings\r
+ s.fullscreen_overflow = DOM.getStyle(document.body, 'overflow', 1) || 'auto';\r
+ s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1);\r
+ vp = DOM.getViewPort();\r
+ s.fullscreen_scrollx = vp.x;\r
+ s.fullscreen_scrolly = vp.y;\r
+\r
+ // Fixes an Opera bug where the scrollbars doesn't reappear\r
+ if (tinymce.isOpera && s.fullscreen_overflow == 'visible')\r
+ s.fullscreen_overflow = 'auto';\r
+\r
+ // Fixes an IE bug where horizontal scrollbars would appear\r
+ if (tinymce.isIE && s.fullscreen_overflow == 'scroll')\r
+ s.fullscreen_overflow = 'auto';\r
+\r
+ if (s.fullscreen_overflow == '0px')\r
+ s.fullscreen_overflow = '';\r
+\r
+ DOM.setStyle(document.body, 'overflow', 'hidden');\r
+ de.style.overflow = 'hidden'; //Fix for IE6/7\r
+ vp = DOM.getViewPort();\r
+ window.scrollTo(0, 0);\r
+\r
+ if (tinymce.isIE)\r
+ vp.h -= 1;\r
+\r
+ n = DOM.add(document.body, 'div', {id : 'mce_fullscreen_container', style : 'position:absolute;top:0;left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:150;'});\r
+ DOM.add(n, 'div', {id : 'mce_fullscreen'});\r
+\r
+ tinymce.each(ed.settings, function(v, n) {\r
+ s[n] = v;\r
+ });\r
+\r
+ s.id = 'mce_fullscreen';\r
+ s.width = n.clientWidth;\r
+ s.height = n.clientHeight - 15;\r
+ s.fullscreen_is_enabled = true;\r
+ s.fullscreen_editor_id = ed.id;\r
+ s.theme_advanced_resizing = false;\r
+ s.save_onsavecallback = function() {\r
+ ed.setContent(tinyMCE.get(s.id).getContent({format : 'raw'}), {format : 'raw'});\r
+ ed.execCommand('mceSave');\r
+ };\r
+\r
+ tinymce.each(ed.getParam('fullscreen_settings'), function(v, k) {\r
+ s[k] = v;\r
+ });\r
+\r
+ if (s.theme_advanced_toolbar_location === 'external')\r
+ s.theme_advanced_toolbar_location = 'top';\r
+\r
+ t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s);\r
+ t.fullscreenEditor.onInit.add(function() {\r
+ t.fullscreenEditor.setContent(ed.getContent());\r
+ });\r
+\r
+ t.fullscreenEditor.render();\r
+ tinyMCE.add(t.fullscreenEditor);\r
+\r
+ t.fullscreenElement = new tinymce.dom.Element('mce_fullscreen_container');\r
+ t.fullscreenElement.update();\r
+ //document.body.overflow = 'hidden';\r
+\r
+ t.resizeFunc = tinymce.dom.Event.add(window, 'resize', function() {\r
+ var vp = tinymce.DOM.getViewPort();\r
+\r
+ t.fullscreenEditor.theme.resizeTo(vp.w, vp.h);\r
+ });\r
+ }\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'mceFullScreen'});\r
+\r
+ ed.onNodeChange.add(function(ed, cm) {\r
+ cm.setActive('fullscreen', ed.getParam('fullscreen_is_enabled'));\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Fullscreen',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title></title>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
+ <script type="text/javascript" src="../../tiny_mce.js"></script>\r
+ <script type="text/javascript">\r
+ function patchCallback(settings, key) {\r
+ if (settings[key])\r
+ settings[key] = "window.opener." + settings[key];\r
+ }\r
+\r
+ var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings;\r
+\r
+ // Clone array\r
+ for (var n in paSe)\r
+ settings[n] = paSe[n];\r
+\r
+ // Override options for fullscreen\r
+ for (var n in paSe.fullscreen_settings)\r
+ settings[n] = paSe.fullscreen_settings[n];\r
+\r
+ // Patch callbacks, make them point to window.opener\r
+ patchCallback(settings, 'urlconverter_callback');\r
+ patchCallback(settings, 'insertlink_callback');\r
+ patchCallback(settings, 'insertimage_callback');\r
+ patchCallback(settings, 'setupcontent_callback');\r
+ patchCallback(settings, 'save_callback');\r
+ patchCallback(settings, 'onchange_callback');\r
+ patchCallback(settings, 'init_instance_callback');\r
+ patchCallback(settings, 'file_browser_callback');\r
+ patchCallback(settings, 'cleanup_callback');\r
+ patchCallback(settings, 'execcommand_callback');\r
+ patchCallback(settings, 'oninit');\r
+\r
+ // Set options\r
+ delete settings.id;\r
+ settings['mode'] = 'exact';\r
+ settings['elements'] = 'fullscreenarea';\r
+ settings['add_unload_trigger'] = false;\r
+ settings['ask'] = false;\r
+ settings['document_base_url'] = window.opener.tinyMCE.activeEditor.documentBaseURI.getURI();\r
+ settings['fullscreen_is_enabled'] = true;\r
+ settings['fullscreen_editor_id'] = window.opener.tinyMCE.activeEditor.id;\r
+ settings['theme_advanced_resizing'] = false;\r
+ settings['strict_loading_mode'] = true;\r
+\r
+ settings.save_onsavecallback = function() {\r
+ window.opener.tinyMCE.activeEditor.setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'});\r
+ window.opener.tinyMCE.activeEditor.execCommand('mceSave');\r
+ window.close();\r
+ };\r
+\r
+ function unloadHandler(e) {\r
+ moveContent();\r
+ }\r
+\r
+ function moveContent() {\r
+ window.opener.tinyMCE.activeEditor.setContent(tinyMCE.activeEditor.getContent());\r
+ }\r
+\r
+ function closeFullscreen() {\r
+ moveContent();\r
+ window.close();\r
+ }\r
+\r
+ function doParentSubmit() {\r
+ moveContent();\r
+\r
+ if (window.opener.tinyMCE.selectedInstance.formElement.form)\r
+ window.opener.tinyMCE.selectedInstance.formElement.form.submit();\r
+\r
+ window.close();\r
+\r
+ return false;\r
+ }\r
+\r
+ function render() {\r
+ var e = document.getElementById('fullscreenarea'), vp, ed, ow, oh, dom = tinymce.DOM;\r
+\r
+ e.value = window.opener.tinyMCE.activeEditor.getContent();\r
+\r
+ vp = dom.getViewPort();\r
+ settings.width = vp.w;\r
+ settings.height = vp.h - 15;\r
+\r
+ tinymce.dom.Event.add(window, 'resize', function() {\r
+ var vp = dom.getViewPort();\r
+\r
+ tinyMCE.activeEditor.theme.resizeTo(vp.w, vp.h);\r
+ });\r
+\r
+ tinyMCE.init(settings);\r
+ }\r
+\r
+ // Add onunload\r
+ tinymce.dom.Event.add(window, "beforeunload", unloadHandler);\r
+ </script>\r
+ <base target="_self" />\r
+</head>\r
+<body style="margin:0;overflow:hidden;width:100%;height:100%" scrolling="no" scroll="no">\r
+<form onsubmit="doParentSubmit();">\r
+<textarea id="fullscreenarea" style="width:100%; height:100%"></textarea>\r
+</form>\r
+\r
+<script type="text/javascript">\r
+ render();\r
+</script>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.IESpell',{init:function(ed,url){var t=this,sp;if(!tinymce.isIE)return;t.editor=ed;ed.addCommand('mceIESpell',function(){try{sp=new ActiveXObject("ieSpell.ieSpellExtension");sp.CheckDocumentNode(ed.getDoc().documentElement);}catch(e){if(e.number==-2146827859){ed.windowManager.confirm(ed.getLang("iespell.download"),function(s){if(s)window.open('http://www.iespell.com/download.php','ieSpellDownload','');});}else ed.windowManager.alert("Error Loading ieSpell: Exception "+e.number);}});ed.addButton('iespell',{title:'iespell.iespell_desc',cmd:'mceIESpell'});},getInfo:function(){return{longname:'IESpell (IE Only)',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('iespell',tinymce.plugins.IESpell);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.IESpell', {\r
+ init : function(ed, url) {\r
+ var t = this, sp;\r
+\r
+ if (!tinymce.isIE)\r
+ return;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceIESpell', function() {\r
+ try {\r
+ sp = new ActiveXObject("ieSpell.ieSpellExtension");\r
+ sp.CheckDocumentNode(ed.getDoc().documentElement);\r
+ } catch (e) {\r
+ if (e.number == -2146827859) {\r
+ ed.windowManager.confirm(ed.getLang("iespell.download"), function(s) {\r
+ if (s)\r
+ window.open('http://www.iespell.com/download.php', 'ieSpellDownload', '');\r
+ });\r
+ } else\r
+ ed.windowManager.alert("Error Loading ieSpell: Exception " + e.number);\r
+ }\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('iespell', {title : 'iespell.iespell_desc', cmd : 'mceIESpell'});\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'IESpell (IE Only)',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('iespell', tinymce.plugins.IESpell);\r
+})();
\ No newline at end of file
--- /dev/null
+(function(){var DOM=tinymce.DOM,Element=tinymce.dom.Element,Event=tinymce.dom.Event,each=tinymce.each,is=tinymce.is;tinymce.create('tinymce.plugins.InlinePopups',{init:function(ed,url){ed.onBeforeRenderUI.add(function(){ed.windowManager=new tinymce.InlineWindowManager(ed);DOM.loadCSS(url+'/skins/'+(ed.settings.inlinepopups_skin||'clearlooks2')+"/window.css");});},getInfo:function(){return{longname:'InlinePopups',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager',{InlineWindowManager:function(ed){var t=this;t.parent(ed);t.zIndex=1000;t.count=0;},open:function(f,p){var t=this,id,opt='',ed=t.editor,dw=0,dh=0,vp,po,mdf,clf,we,w,u;f=f||{};p=p||{};if(!f.inline)return t.parent(f,p);t.bookmark=ed.selection.getBookmark('simple');id=DOM.uniqueId();vp=DOM.getViewPort();f.width=parseInt(f.width||320);f.height=parseInt(f.height||240)+(tinymce.isIE?8:0);f.min_width=parseInt(f.min_width||150);f.min_height=parseInt(f.min_height||100);f.max_width=parseInt(f.max_width||2000);f.max_height=parseInt(f.max_height||2000);f.left=f.left||Math.round(Math.max(vp.x,vp.x+(vp.w/ 2.0) - (f.width /2.0)));f.top=f.top||Math.round(Math.max(vp.y,vp.y+(vp.h/ 2.0) - (f.height /2.0)));f.movable=f.resizable=true;p.mce_width=f.width;p.mce_height=f.height;p.mce_inline=true;p.mce_window_id=id;p.mce_auto_focus=f.auto_focus;t.features=f;t.params=p;t.onOpen.dispatch(t,f,p);if(f.type){opt+=' mceModal';if(f.type)opt+=' mce'+f.type.substring(0,1).toUpperCase()+f.type.substring(1);f.resizable=false;}if(f.statusbar)opt+=' mceStatusbar';if(f.resizable)opt+=' mceResizable';if(f.minimizable)opt+=' mceMinimizable';if(f.maximizable)opt+=' mceMaximizable';if(f.movable)opt+=' mceMovable';t._addAll(document.body,['div',{id:id,'class':ed.settings.inlinepopups_skin||'clearlooks2',dir:'ltr',style:'width:100px;height:100px'},['div',{id:id+'_wrapper','class':'mceWrapper'+opt},['div',{id:id+'_top','class':'mceTop'},['div',{'class':'mceLeft'}],['div',{'class':'mceCenter'}],['div',{'class':'mceRight'}],['span',{id:id+'_title'},f.title||'']],['div',{id:id+'_middle','class':'mceMiddle'},['div',{id:id+'_left','class':'mceLeft'}],['span',{id:id+'_content'}],['div',{id:id+'_right','class':'mceRight'}]],['div',{id:id+'_bottom','class':'mceBottom'},['div',{'class':'mceLeft'}],['div',{'class':'mceCenter'}],['div',{'class':'mceRight'}],['span',{id:id+'_status'},'Content']],['a',{'class':'mceMove',tabindex:'-1',href:'javascript:;'}],['a',{'class':'mceMin',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{'class':'mceMax',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{'class':'mceMed',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{'class':'mceClose',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{id:id+'_resize_n','class':'mceResize mceResizeN',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_s','class':'mceResize mceResizeS',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_w','class':'mceResize mceResizeW',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_e','class':'mceResize mceResizeE',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_nw','class':'mceResize mceResizeNW',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_ne','class':'mceResize mceResizeNE',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_sw','class':'mceResize mceResizeSW',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_se','class':'mceResize mceResizeSE',tabindex:'-1',href:'javascript:;'}]]]);DOM.setStyles(id,{top:-10000,left:-10000});if(tinymce.isGecko)DOM.setStyle(id,'overflow','auto');if(!f.type){dw+=DOM.get(id+'_left').clientWidth;dw+=DOM.get(id+'_right').clientWidth;dh+=DOM.get(id+'_top').clientHeight;dh+=DOM.get(id+'_bottom').clientHeight;}DOM.setStyles(id,{top:f.top,left:f.left,width:f.width+dw,height:f.height+dh});u=f.url||f.file;if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&')+'mce_rdomain='+tinymce.relaxedDomain;if(!f.type){DOM.add(id+'_content','iframe',{id:id+'_ifr',src:'javascript:""',frameBorder:0,style:'border:0;width:10px;height:10px'});DOM.setStyles(id+'_ifr',{width:f.width,height:f.height});DOM.setAttrib(id+'_ifr','src',u);}else{DOM.add(id+'_wrapper','a',{id:id+'_ok','class':'mceButton mceOk',href:'javascript:;',onmousedown:'return false;'},'Ok');if(f.type=='confirm')DOM.add(id+'_wrapper','a',{'class':'mceButton mceCancel',href:'javascript:;',onmousedown:'return false;'},'Cancel');DOM.add(id+'_middle','div',{'class':'mceIcon'});DOM.setHTML(id+'_content',f.content.replace('\n','<br />'));}mdf=Event.add(id,'mousedown',function(e){var n=e.target,w,vp;w=t.windows[id];t.focus(id);if(n.nodeName=='A'||n.nodeName=='a'){if(n.className=='mceMax'){w.oldPos=w.element.getXY();w.oldSize=w.element.getSize();vp=DOM.getViewPort();vp.w-=2;vp.h-=2;w.element.moveTo(vp.x,vp.y);w.element.resizeTo(vp.w,vp.h);DOM.setStyles(id+'_ifr',{width:vp.w-w.deltaWidth,height:vp.h-w.deltaHeight});DOM.addClass(id+'_wrapper','mceMaximized');}else if(n.className=='mceMed'){w.element.moveTo(w.oldPos.x,w.oldPos.y);w.element.resizeTo(w.oldSize.w,w.oldSize.h);w.iframeElement.resizeTo(w.oldSize.w-w.deltaWidth,w.oldSize.h-w.deltaHeight);DOM.removeClass(id+'_wrapper','mceMaximized');}else if(n.className=='mceMove')return t._startDrag(id,e,n.className);else if(DOM.hasClass(n,'mceResize'))return t._startDrag(id,e,n.className.substring(13));}});clf=Event.add(id,'click',function(e){var n=e.target;t.focus(id);if(n.nodeName=='A'||n.nodeName=='a'){switch(n.className){case'mceClose':t.close(null,id);return Event.cancel(e);case'mceButton mceOk':case'mceButton mceCancel':f.button_func(n.className=='mceButton mceOk');return Event.cancel(e);}}});t.windows=t.windows||{};w=t.windows[id]={id:id,mousedown_func:mdf,click_func:clf,element:new Element(id,{blocker:1,container:ed.getContainer()}),iframeElement:new Element(id+'_ifr'),features:f,deltaWidth:dw,deltaHeight:dh};w.iframeElement.on('focus',function(){t.focus(id);});if(t.count==0&&t.editor.getParam('dialog_type')=='modal'){DOM.add(DOM.doc.body,'div',{id:'mceModalBlocker','class':(t.editor.settings.inlinepopups_skin||'clearlooks2')+'_modalBlocker',style:{left:vp.x,top:vp.y,width:vp.w,height:vp.h,zIndex:t.zIndex-1}});DOM.show('mceModalBlocker');}else DOM.setStyle('mceModalBlocker','z-index',t.zIndex-1);t.focus(id);t._fixIELayout(id,1);if(DOM.get(id+'_ok'))DOM.get(id+'_ok').focus();t.count++;return w;},focus:function(id){var t=this,w=t.windows[id];w.zIndex=this.zIndex++;w.element.setStyle('zIndex',w.zIndex);w.element.update();id=id+'_wrapper';DOM.removeClass(t.lastId,'mceFocus');DOM.addClass(id,'mceFocus');t.lastId=id;},_addAll:function(te,ne){var i,n,t=this,dom=tinymce.DOM;if(is(ne,'string'))te.appendChild(dom.doc.createTextNode(ne));else if(ne.length){te=te.appendChild(dom.create(ne[0],ne[1]));for(i=2;i<ne.length;i++)t._addAll(te,ne[i]);}},_startDrag:function(id,se,ac){var t=this,mu,mm,d=document,eb,w=t.windows[id],we=w.element,sp=we.getXY(),p,sz,ph,cp,vp,sx,sy,sex,sey,dx,dy,dw,dh;cp={x:0,y:0};vp=DOM.getViewPort();vp.w-=2;vp.h-=2;sex=se.screenX;sey=se.screenY;dx=dy=dw=dh=0;mu=Event.add(d,'mouseup',function(e){Event.remove(d,'mouseup',mu);Event.remove(d,'mousemove',mm);if(eb)eb.remove();we.moveBy(dx,dy);we.resizeBy(dw,dh);sz=we.getSize();DOM.setStyles(id+'_ifr',{width:sz.w-w.deltaWidth,height:sz.h-w.deltaHeight});t._fixIELayout(id,1);return Event.cancel(e);});if(ac!='Move')startMove();function startMove(){if(eb)return;t._fixIELayout(id,0);DOM.add(d.body,'div',{id:'mceEventBlocker','class':'mceEventBlocker '+(t.editor.settings.inlinepopups_skin||'clearlooks2'),style:{left:vp.x,top:vp.y,width:vp.w+2,height:vp.h+2,zIndex:20001}});eb=new Element('mceEventBlocker');eb.update();p=we.getXY();sz=we.getSize();sx=cp.x+p.x-vp.x;sy=cp.y+p.y-vp.y;DOM.add(eb.get(),'div',{id:'mcePlaceHolder','class':'mcePlaceHolder',style:{left:sx,top:sy,width:sz.w,height:sz.h}});ph=new Element('mcePlaceHolder');};mm=Event.add(d,'mousemove',function(e){var x,y,v;startMove();x=e.screenX-sex;y=e.screenY-sey;switch(ac){case'ResizeW':dx=x;dw=0-x;break;case'ResizeE':dw=x;break;case'ResizeN':case'ResizeNW':case'ResizeNE':if(ac=="ResizeNW"){dx=x;dw=0-x;}else if(ac=="ResizeNE")dw=x;dy=y;dh=0-y;break;case'ResizeS':case'ResizeSW':case'ResizeSE':if(ac=="ResizeSW"){dx=x;dw=0-x;}else if(ac=="ResizeSE")dw=x;dh=y;break;case'mceMove':dx=x;dy=y;break;}if(dw<(v=w.features.min_width-sz.w)){if(dx!==0)dx+=dw-v;dw=v;}if(dh<(v=w.features.min_height-sz.h)){if(dy!==0)dy+=dh-v;dh=v;}dw=Math.min(dw,w.features.max_width-sz.w);dh=Math.min(dh,w.features.max_height-sz.h);dx=Math.max(dx,vp.x-(sx+vp.x));dy=Math.max(dy,vp.y-(sy+vp.y));dx=Math.min(dx,(vp.w+vp.x)-(sx+sz.w+vp.x));dy=Math.min(dy,(vp.h+vp.y)-(sy+sz.h+vp.y));if(dx+dy!==0){if(sx+dx<0)dx=0;if(sy+dy<0)dy=0;ph.moveTo(sx+dx,sy+dy);}if(dw+dh!==0)ph.resizeTo(sz.w+dw,sz.h+dh);return Event.cancel(e);});return Event.cancel(se);},resizeBy:function(dw,dh,id){var w=this.windows[id];if(w){w.element.resizeBy(dw,dh);w.iframeElement.resizeBy(dw,dh);}},close:function(win,id){var t=this,w,d=document,ix=0,fw;t.count--;if(t.count==0)DOM.remove('mceModalBlocker');if(!id&&win){t.parent(win);return;}if(w=t.windows[id]){t.onClose.dispatch(t);Event.remove(d,'mousedown',w.mousedownFunc);Event.remove(d,'click',w.clickFunc);DOM.setAttrib(id+'_ifr','src','javascript:""');w.element.remove();delete t.windows[id];each(t.windows,function(w){if(w.zIndex>ix){fw=w;ix=w.zIndex;}});if(fw)t.focus(fw.id);}},setTitle:function(ti,id){DOM.get(id+'_title').innerHTML=DOM.encode(ti);},alert:function(txt,cb,s){var t=this,w;w=t.open({title:t,type:'alert',button_func:function(s){if(cb)cb.call(s||t,s);t.close(null,w.id);},content:DOM.encode(t.editor.getLang(txt,txt)),inline:1,width:400,height:130});},confirm:function(txt,cb,s){var t=this,w;w=t.open({title:t,type:'confirm',button_func:function(s){if(cb)cb.call(s||t,s);t.close(null,w.id);},content:DOM.encode(t.editor.getLang(txt,txt)),inline:1,width:400,height:130});},_fixIELayout:function(id,s){var w,img;if(!tinymce.isIE6)return;each(['n','s','w','e','nw','ne','sw','se'],function(v){var e=DOM.get(id+'_resize_'+v);DOM.setStyles(e,{width:s?e.clientWidth:'',height:s?e.clientHeight:'',cursor:DOM.getStyle(e,'cursor',1)});DOM.setStyle(id+"_bottom",'bottom','-1px');e=0;});if(w=this.windows[id]){w.element.hide();w.element.show();each(DOM.select('div,a',id),function(e,i){if(e.currentStyle.backgroundImage!='none'){img=new Image();img.src=e.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/,'$1');}});DOM.get(id).style.filter='';}}});tinymce.PluginManager.add('inlinepopups',tinymce.plugins.InlinePopups);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM, Element = tinymce.dom.Element, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is;\r
+\r
+ tinymce.create('tinymce.plugins.InlinePopups', {\r
+ init : function(ed, url) {\r
+ // Replace window manager\r
+ ed.onBeforeRenderUI.add(function() {\r
+ ed.windowManager = new tinymce.InlineWindowManager(ed);\r
+ DOM.loadCSS(url + '/skins/' + (ed.settings.inlinepopups_skin || 'clearlooks2') + "/window.css");\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'InlinePopups',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager', {\r
+ InlineWindowManager : function(ed) {\r
+ var t = this;\r
+\r
+ t.parent(ed);\r
+ t.zIndex = 1000;\r
+ t.count = 0;\r
+ },\r
+\r
+ open : function(f, p) {\r
+ var t = this, id, opt = '', ed = t.editor, dw = 0, dh = 0, vp, po, mdf, clf, we, w, u;\r
+\r
+ f = f || {};\r
+ p = p || {};\r
+\r
+ // Run native windows\r
+ if (!f.inline)\r
+ return t.parent(f, p);\r
+\r
+ t.bookmark = ed.selection.getBookmark('simple');\r
+ id = DOM.uniqueId();\r
+ vp = DOM.getViewPort();\r
+ f.width = parseInt(f.width || 320);\r
+ f.height = parseInt(f.height || 240) + (tinymce.isIE ? 8 : 0);\r
+ f.min_width = parseInt(f.min_width || 150);\r
+ f.min_height = parseInt(f.min_height || 100);\r
+ f.max_width = parseInt(f.max_width || 2000);\r
+ f.max_height = parseInt(f.max_height || 2000);\r
+ f.left = f.left || Math.round(Math.max(vp.x, vp.x + (vp.w / 2.0) - (f.width / 2.0)));\r
+ f.top = f.top || Math.round(Math.max(vp.y, vp.y + (vp.h / 2.0) - (f.height / 2.0)));\r
+ f.movable = f.resizable = true;\r
+ p.mce_width = f.width;\r
+ p.mce_height = f.height;\r
+ p.mce_inline = true;\r
+ p.mce_window_id = id;\r
+ p.mce_auto_focus = f.auto_focus;\r
+\r
+ // Transpose\r
+// po = DOM.getPos(ed.getContainer());\r
+// f.left -= po.x;\r
+// f.top -= po.y;\r
+\r
+ t.features = f;\r
+ t.params = p;\r
+ t.onOpen.dispatch(t, f, p);\r
+\r
+ if (f.type) {\r
+ opt += ' mceModal';\r
+\r
+ if (f.type)\r
+ opt += ' mce' + f.type.substring(0, 1).toUpperCase() + f.type.substring(1);\r
+\r
+ f.resizable = false;\r
+ }\r
+\r
+ if (f.statusbar)\r
+ opt += ' mceStatusbar';\r
+\r
+ if (f.resizable)\r
+ opt += ' mceResizable';\r
+\r
+ if (f.minimizable)\r
+ opt += ' mceMinimizable';\r
+\r
+ if (f.maximizable)\r
+ opt += ' mceMaximizable';\r
+\r
+ if (f.movable)\r
+ opt += ' mceMovable';\r
+\r
+ // Create DOM objects\r
+ t._addAll(document.body, \r
+ ['div', {id : id, 'class' : ed.settings.inlinepopups_skin || 'clearlooks2', dir : 'ltr', style : 'width:100px;height:100px'}, \r
+ ['div', {id : id + '_wrapper', 'class' : 'mceWrapper' + opt},\r
+ ['div', {id : id + '_top', 'class' : 'mceTop'}, \r
+ ['div', {'class' : 'mceLeft'}],\r
+ ['div', {'class' : 'mceCenter'}],\r
+ ['div', {'class' : 'mceRight'}],\r
+ ['span', {id : id + '_title'}, f.title || '']\r
+ ],\r
+\r
+ ['div', {id : id + '_middle', 'class' : 'mceMiddle'}, \r
+ ['div', {id : id + '_left', 'class' : 'mceLeft'}],\r
+ ['span', {id : id + '_content'}],\r
+ ['div', {id : id + '_right', 'class' : 'mceRight'}]\r
+ ],\r
+\r
+ ['div', {id : id + '_bottom', 'class' : 'mceBottom'},\r
+ ['div', {'class' : 'mceLeft'}],\r
+ ['div', {'class' : 'mceCenter'}],\r
+ ['div', {'class' : 'mceRight'}],\r
+ ['span', {id : id + '_status'}, 'Content']\r
+ ],\r
+\r
+ ['a', {'class' : 'mceMove', tabindex : '-1', href : 'javascript:;'}],\r
+ ['a', {'class' : 'mceMin', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
+ ['a', {'class' : 'mceMax', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
+ ['a', {'class' : 'mceMed', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
+ ['a', {'class' : 'mceClose', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
+ ['a', {id : id + '_resize_n', 'class' : 'mceResize mceResizeN', tabindex : '-1', href : 'javascript:;'}],\r
+ ['a', {id : id + '_resize_s', 'class' : 'mceResize mceResizeS', tabindex : '-1', href : 'javascript:;'}],\r
+ ['a', {id : id + '_resize_w', 'class' : 'mceResize mceResizeW', tabindex : '-1', href : 'javascript:;'}],\r
+ ['a', {id : id + '_resize_e', 'class' : 'mceResize mceResizeE', tabindex : '-1', href : 'javascript:;'}],\r
+ ['a', {id : id + '_resize_nw', 'class' : 'mceResize mceResizeNW', tabindex : '-1', href : 'javascript:;'}],\r
+ ['a', {id : id + '_resize_ne', 'class' : 'mceResize mceResizeNE', tabindex : '-1', href : 'javascript:;'}],\r
+ ['a', {id : id + '_resize_sw', 'class' : 'mceResize mceResizeSW', tabindex : '-1', href : 'javascript:;'}],\r
+ ['a', {id : id + '_resize_se', 'class' : 'mceResize mceResizeSE', tabindex : '-1', href : 'javascript:;'}]\r
+ ]\r
+ ]\r
+ );\r
+\r
+ DOM.setStyles(id, {top : -10000, left : -10000});\r
+\r
+ // Fix gecko rendering bug, where the editors iframe messed with window contents\r
+ if (tinymce.isGecko)\r
+ DOM.setStyle(id, 'overflow', 'auto');\r
+\r
+ // Measure borders\r
+ if (!f.type) {\r
+ dw += DOM.get(id + '_left').clientWidth;\r
+ dw += DOM.get(id + '_right').clientWidth;\r
+ dh += DOM.get(id + '_top').clientHeight;\r
+ dh += DOM.get(id + '_bottom').clientHeight;\r
+ }\r
+\r
+ // Resize window\r
+ DOM.setStyles(id, {top : f.top, left : f.left, width : f.width + dw, height : f.height + dh});\r
+\r
+ u = f.url || f.file;\r
+ if (tinymce.relaxedDomain)\r
+ u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain;\r
+\r
+ if (!f.type) {\r
+ DOM.add(id + '_content', 'iframe', {id : id + '_ifr', src : 'javascript:""', frameBorder : 0, style : 'border:0;width:10px;height:10px'});\r
+ DOM.setStyles(id + '_ifr', {width : f.width, height : f.height});\r
+ DOM.setAttrib(id + '_ifr', 'src', u);\r
+ } else {\r
+ DOM.add(id + '_wrapper', 'a', {id : id + '_ok', 'class' : 'mceButton mceOk', href : 'javascript:;', onmousedown : 'return false;'}, 'Ok');\r
+\r
+ if (f.type == 'confirm')\r
+ DOM.add(id + '_wrapper', 'a', {'class' : 'mceButton mceCancel', href : 'javascript:;', onmousedown : 'return false;'}, 'Cancel');\r
+\r
+ DOM.add(id + '_middle', 'div', {'class' : 'mceIcon'});\r
+ DOM.setHTML(id + '_content', f.content.replace('\n', '<br />'));\r
+ }\r
+\r
+ // Register events\r
+ mdf = Event.add(id, 'mousedown', function(e) {\r
+ var n = e.target, w, vp;\r
+\r
+ w = t.windows[id];\r
+ t.focus(id);\r
+\r
+ if (n.nodeName == 'A' || n.nodeName == 'a') {\r
+ if (n.className == 'mceMax') {\r
+ w.oldPos = w.element.getXY();\r
+ w.oldSize = w.element.getSize();\r
+\r
+ vp = DOM.getViewPort();\r
+\r
+ // Reduce viewport size to avoid scrollbars\r
+ vp.w -= 2;\r
+ vp.h -= 2;\r
+\r
+ w.element.moveTo(vp.x, vp.y);\r
+ w.element.resizeTo(vp.w, vp.h);\r
+ DOM.setStyles(id + '_ifr', {width : vp.w - w.deltaWidth, height : vp.h - w.deltaHeight});\r
+ DOM.addClass(id + '_wrapper', 'mceMaximized');\r
+ } else if (n.className == 'mceMed') {\r
+ // Reset to old size\r
+ w.element.moveTo(w.oldPos.x, w.oldPos.y);\r
+ w.element.resizeTo(w.oldSize.w, w.oldSize.h);\r
+ w.iframeElement.resizeTo(w.oldSize.w - w.deltaWidth, w.oldSize.h - w.deltaHeight);\r
+\r
+ DOM.removeClass(id + '_wrapper', 'mceMaximized');\r
+ } else if (n.className == 'mceMove')\r
+ return t._startDrag(id, e, n.className);\r
+ else if (DOM.hasClass(n, 'mceResize'))\r
+ return t._startDrag(id, e, n.className.substring(13));\r
+ }\r
+ });\r
+\r
+ clf = Event.add(id, 'click', function(e) {\r
+ var n = e.target;\r
+\r
+ t.focus(id);\r
+\r
+ if (n.nodeName == 'A' || n.nodeName == 'a') {\r
+ switch (n.className) {\r
+ case 'mceClose':\r
+ t.close(null, id);\r
+ return Event.cancel(e);\r
+\r
+ case 'mceButton mceOk':\r
+ case 'mceButton mceCancel':\r
+ f.button_func(n.className == 'mceButton mceOk');\r
+ return Event.cancel(e);\r
+ }\r
+ }\r
+ });\r
+\r
+ // Add window\r
+ t.windows = t.windows || {};\r
+ w = t.windows[id] = {\r
+ id : id,\r
+ mousedown_func : mdf,\r
+ click_func : clf,\r
+ element : new Element(id, {blocker : 1, container : ed.getContainer()}),\r
+ iframeElement : new Element(id + '_ifr'),\r
+ features : f,\r
+ deltaWidth : dw,\r
+ deltaHeight : dh\r
+ };\r
+\r
+ w.iframeElement.on('focus', function() {\r
+ t.focus(id);\r
+ });\r
+\r
+ // Setup blocker\r
+ if (t.count == 0 && t.editor.getParam('dialog_type') == 'modal') {\r
+ DOM.add(DOM.doc.body, 'div', {\r
+ id : 'mceModalBlocker',\r
+ 'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker',\r
+ style : {left : vp.x, top : vp.y, width : vp.w, height : vp.h, zIndex : t.zIndex - 1}\r
+ });\r
+\r
+ DOM.show('mceModalBlocker'); // Reduces flicker in IE\r
+ } else\r
+ DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1);\r
+\r
+ t.focus(id);\r
+ t._fixIELayout(id, 1);\r
+\r
+ // Focus ok button\r
+ if (DOM.get(id + '_ok'))\r
+ DOM.get(id + '_ok').focus();\r
+\r
+ t.count++;\r
+\r
+ return w;\r
+ },\r
+\r
+ focus : function(id) {\r
+ var t = this, w = t.windows[id];\r
+\r
+ w.zIndex = this.zIndex++;\r
+ w.element.setStyle('zIndex', w.zIndex);\r
+ w.element.update();\r
+\r
+ id = id + '_wrapper';\r
+ DOM.removeClass(t.lastId, 'mceFocus');\r
+ DOM.addClass(id, 'mceFocus');\r
+ t.lastId = id;\r
+ },\r
+\r
+ _addAll : function(te, ne) {\r
+ var i, n, t = this, dom = tinymce.DOM;\r
+\r
+ if (is(ne, 'string'))\r
+ te.appendChild(dom.doc.createTextNode(ne));\r
+ else if (ne.length) {\r
+ te = te.appendChild(dom.create(ne[0], ne[1]));\r
+\r
+ for (i=2; i<ne.length; i++)\r
+ t._addAll(te, ne[i]);\r
+ }\r
+ },\r
+\r
+ _startDrag : function(id, se, ac) {\r
+ var t = this, mu, mm, d = document, eb, w = t.windows[id], we = w.element, sp = we.getXY(), p, sz, ph, cp, vp, sx, sy, sex, sey, dx, dy, dw, dh;\r
+\r
+ // Get positons and sizes\r
+// cp = DOM.getPos(t.editor.getContainer());\r
+ cp = {x : 0, y : 0};\r
+ vp = DOM.getViewPort();\r
+\r
+ // Reduce viewport size to avoid scrollbars while dragging\r
+ vp.w -= 2;\r
+ vp.h -= 2;\r
+\r
+ sex = se.screenX;\r
+ sey = se.screenY;\r
+ dx = dy = dw = dh = 0;\r
+\r
+ // Handle mouse up\r
+ mu = Event.add(d, 'mouseup', function(e) {\r
+ Event.remove(d, 'mouseup', mu);\r
+ Event.remove(d, 'mousemove', mm);\r
+\r
+ if (eb)\r
+ eb.remove();\r
+\r
+ we.moveBy(dx, dy);\r
+ we.resizeBy(dw, dh);\r
+ sz = we.getSize();\r
+ DOM.setStyles(id + '_ifr', {width : sz.w - w.deltaWidth, height : sz.h - w.deltaHeight});\r
+ t._fixIELayout(id, 1);\r
+\r
+ return Event.cancel(e);\r
+ });\r
+\r
+ if (ac != 'Move')\r
+ startMove();\r
+\r
+ function startMove() {\r
+ if (eb)\r
+ return;\r
+\r
+ t._fixIELayout(id, 0);\r
+\r
+ // Setup event blocker\r
+ DOM.add(d.body, 'div', {\r
+ id : 'mceEventBlocker',\r
+ 'class' : 'mceEventBlocker ' + (t.editor.settings.inlinepopups_skin || 'clearlooks2'),\r
+ style : {left : vp.x, top : vp.y, width : vp.w + 2, height : vp.h + 2, zIndex : 20001}\r
+ });\r
+ eb = new Element('mceEventBlocker');\r
+ eb.update();\r
+\r
+ // Setup placeholder\r
+ p = we.getXY();\r
+ sz = we.getSize();\r
+ sx = cp.x + p.x - vp.x;\r
+ sy = cp.y + p.y - vp.y;\r
+ DOM.add(eb.get(), 'div', {id : 'mcePlaceHolder', 'class' : 'mcePlaceHolder', style : {left : sx, top : sy, width : sz.w, height : sz.h}});\r
+ ph = new Element('mcePlaceHolder');\r
+ };\r
+\r
+ // Handle mouse move/drag\r
+ mm = Event.add(d, 'mousemove', function(e) {\r
+ var x, y, v;\r
+\r
+ startMove();\r
+\r
+ x = e.screenX - sex;\r
+ y = e.screenY - sey;\r
+\r
+ switch (ac) {\r
+ case 'ResizeW':\r
+ dx = x;\r
+ dw = 0 - x;\r
+ break;\r
+\r
+ case 'ResizeE':\r
+ dw = x;\r
+ break;\r
+\r
+ case 'ResizeN':\r
+ case 'ResizeNW':\r
+ case 'ResizeNE':\r
+ if (ac == "ResizeNW") {\r
+ dx = x;\r
+ dw = 0 - x;\r
+ } else if (ac == "ResizeNE")\r
+ dw = x;\r
+\r
+ dy = y;\r
+ dh = 0 - y;\r
+ break;\r
+\r
+ case 'ResizeS':\r
+ case 'ResizeSW':\r
+ case 'ResizeSE':\r
+ if (ac == "ResizeSW") {\r
+ dx = x;\r
+ dw = 0 - x;\r
+ } else if (ac == "ResizeSE")\r
+ dw = x;\r
+\r
+ dh = y;\r
+ break;\r
+\r
+ case 'mceMove':\r
+ dx = x;\r
+ dy = y;\r
+ break;\r
+ }\r
+\r
+ // Boundary check\r
+ if (dw < (v = w.features.min_width - sz.w)) {\r
+ if (dx !== 0)\r
+ dx += dw - v;\r
+\r
+ dw = v;\r
+ }\r
+ \r
+ if (dh < (v = w.features.min_height - sz.h)) {\r
+ if (dy !== 0)\r
+ dy += dh - v;\r
+\r
+ dh = v;\r
+ }\r
+\r
+ dw = Math.min(dw, w.features.max_width - sz.w);\r
+ dh = Math.min(dh, w.features.max_height - sz.h);\r
+ dx = Math.max(dx, vp.x - (sx + vp.x));\r
+ dy = Math.max(dy, vp.y - (sy + vp.y));\r
+ dx = Math.min(dx, (vp.w + vp.x) - (sx + sz.w + vp.x));\r
+ dy = Math.min(dy, (vp.h + vp.y) - (sy + sz.h + vp.y));\r
+\r
+ // Move if needed\r
+ if (dx + dy !== 0) {\r
+ if (sx + dx < 0)\r
+ dx = 0;\r
+ \r
+ if (sy + dy < 0)\r
+ dy = 0;\r
+\r
+ ph.moveTo(sx + dx, sy + dy);\r
+ }\r
+\r
+ // Resize if needed\r
+ if (dw + dh !== 0)\r
+ ph.resizeTo(sz.w + dw, sz.h + dh);\r
+\r
+ return Event.cancel(e);\r
+ });\r
+\r
+ return Event.cancel(se);\r
+ },\r
+\r
+ resizeBy : function(dw, dh, id) {\r
+ var w = this.windows[id];\r
+\r
+ if (w) {\r
+ w.element.resizeBy(dw, dh);\r
+ w.iframeElement.resizeBy(dw, dh);\r
+ }\r
+ },\r
+\r
+ close : function(win, id) {\r
+ var t = this, w, d = document, ix = 0, fw;\r
+\r
+ t.count--;\r
+\r
+ if (t.count == 0)\r
+ DOM.remove('mceModalBlocker');\r
+\r
+ // Probably not inline\r
+ if (!id && win) {\r
+ t.parent(win);\r
+ return;\r
+ }\r
+\r
+ if (w = t.windows[id]) {\r
+ t.onClose.dispatch(t);\r
+ Event.remove(d, 'mousedown', w.mousedownFunc);\r
+ Event.remove(d, 'click', w.clickFunc);\r
+\r
+ DOM.setAttrib(id + '_ifr', 'src', 'javascript:""'); // Prevent leak\r
+ w.element.remove();\r
+ delete t.windows[id];\r
+\r
+ // Find front most window and focus that\r
+ each (t.windows, function(w) {\r
+ if (w.zIndex > ix) {\r
+ fw = w;\r
+ ix = w.zIndex;\r
+ }\r
+ });\r
+\r
+ if (fw)\r
+ t.focus(fw.id);\r
+ }\r
+ },\r
+\r
+ setTitle : function(ti, id) {\r
+ DOM.get(id + '_title').innerHTML = DOM.encode(ti);\r
+ },\r
+\r
+ alert : function(txt, cb, s) {\r
+ var t = this, w;\r
+\r
+ w = t.open({\r
+ title : t,\r
+ type : 'alert',\r
+ button_func : function(s) {\r
+ if (cb)\r
+ cb.call(s || t, s);\r
+\r
+ t.close(null, w.id);\r
+ },\r
+ content : DOM.encode(t.editor.getLang(txt, txt)),\r
+ inline : 1,\r
+ width : 400,\r
+ height : 130\r
+ });\r
+ },\r
+\r
+ confirm : function(txt, cb, s) {\r
+ var t = this, w;\r
+\r
+ w = t.open({\r
+ title : t,\r
+ type : 'confirm',\r
+ button_func : function(s) {\r
+ if (cb)\r
+ cb.call(s || t, s);\r
+\r
+ t.close(null, w.id);\r
+ },\r
+ content : DOM.encode(t.editor.getLang(txt, txt)),\r
+ inline : 1,\r
+ width : 400,\r
+ height : 130\r
+ });\r
+ },\r
+\r
+ // Internal functions\r
+\r
+ _fixIELayout : function(id, s) {\r
+ var w, img;\r
+\r
+ if (!tinymce.isIE6)\r
+ return;\r
+\r
+ // Fixes the bug where hover flickers and does odd things in IE6\r
+ each(['n','s','w','e','nw','ne','sw','se'], function(v) {\r
+ var e = DOM.get(id + '_resize_' + v);\r
+\r
+ DOM.setStyles(e, {\r
+ width : s ? e.clientWidth : '',\r
+ height : s ? e.clientHeight : '',\r
+ cursor : DOM.getStyle(e, 'cursor', 1)\r
+ });\r
+\r
+ DOM.setStyle(id + "_bottom", 'bottom', '-1px');\r
+\r
+ e = 0;\r
+ });\r
+\r
+ // Fixes graphics glitch\r
+ if (w = this.windows[id]) {\r
+ // Fixes rendering bug after resize\r
+ w.element.hide();\r
+ w.element.show();\r
+\r
+ // Forced a repaint of the window\r
+ //DOM.get(id).style.filter = '';\r
+\r
+ // IE has a bug where images used in CSS won't get loaded\r
+ // sometimes when the cache in the browser is disabled\r
+ // This fix tries to solve it by loading the images using the image object\r
+ each(DOM.select('div,a', id), function(e, i) {\r
+ if (e.currentStyle.backgroundImage != 'none') {\r
+ img = new Image();\r
+ img.src = e.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/, '$1');\r
+ }\r
+ });\r
+\r
+ DOM.get(id).style.filter = '';\r
+ }\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('inlinepopups', tinymce.plugins.InlinePopups);\r
+})();\r
+\r
--- /dev/null
+/* Clearlooks 2 */
+
+/* Reset */
+.clearlooks2 div, .clearlooks2 span, .clearlooks2 a {vertical-align:baseline; text-align:left; position:absolute; border:0; padding:0; margin:0; background:transparent; font-family:Arial,Verdana; font-size:11px; color:#000; text-decoration:none; font-weight:normal; width:auto; height:auto; overflow:hidden; display:block}
+
+/* General */
+.clearlooks2 {position:absolute}
+.clearlooks2 .mceWrapper {position:static}
+.mceEventBlocker {position:absolute; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%}
+.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; filter:alpha(opacity=50)}
+.clearlooks2_modalBlocker {position:absolute; left:0; top:0; background:#FFF; opacity:0.6; filter:alpha(opacity=60); display:none}
+
+/* Top */
+.clearlooks2 .mceTop, .clearlooks2 .mceTop div {top:0; width:100%; height:23px}
+.clearlooks2 .mceTop .mceLeft {width:6px; background:url(img/corners.gif)}
+.clearlooks2 .mceTop .mceCenter {right:6px; width:100%; height:23px; background:url(img/horizontal.gif) 12px 0; clip:rect(auto auto auto 12px)}
+.clearlooks2 .mceTop .mceRight {right:0; width:6px; height:23px; background:url(img/corners.gif) -12px 0}
+.clearlooks2 .mceTop span {width:100%; text-align:center; vertical-align:middle; line-height:23px; font-weight:bold}
+.clearlooks2 .mceFocus .mceTop .mceLeft {background:url(img/corners.gif) -6px 0}
+.clearlooks2 .mceFocus .mceTop .mceCenter {background:url(img/horizontal.gif) 0 -23px}
+.clearlooks2 .mceFocus .mceTop .mceRight {background:url(img/corners.gif) -18px 0}
+.clearlooks2 .mceFocus .mceTop span {color:#FFF}
+
+/* Middle */
+.clearlooks2 .mceMiddle, .clearlooks2 .mceMiddle div {top:0}
+.clearlooks2 .mceMiddle {width:100%; height:100%; clip:rect(23px auto auto auto)}
+.clearlooks2 .mceMiddle .mceLeft {left:0; width:5px; height:100%; background:url(img/vertical.gif) -5px 0}
+.clearlooks2 .mceMiddle span {top:23px; left:5px; width:100%; height:100%; background:#FFF}
+.clearlooks2 .mceMiddle .mceRight {right:0; width:5px; height:100%; background:url(img/vertical.gif)}
+
+/* Bottom */
+.clearlooks2 .mceBottom, .clearlooks2 .mceBottom div {height:6px}
+.clearlooks2 .mceBottom {left:0; bottom:0; width:100%}
+.clearlooks2 .mceBottom div {top:0}
+.clearlooks2 .mceBottom .mceLeft {left:0; width:5px; background:url(img/corners.gif) -34px -6px}
+.clearlooks2 .mceBottom .mceCenter {left:5px; width:100%; background:url(img/horizontal.gif) 0 -46px}
+.clearlooks2 .mceBottom .mceRight {right:0; width:5px; background: url(img/corners.gif) -34px 0}
+.clearlooks2 .mceBottom span {display:none}
+.clearlooks2 .mceStatusbar .mceBottom, .clearlooks2 .mceStatusbar .mceBottom div {height:23px}
+.clearlooks2 .mceStatusbar .mceBottom .mceLeft {background:url(img/corners.gif) -29px 0}
+.clearlooks2 .mceStatusbar .mceBottom .mceCenter {background:url(img/horizontal.gif) 0 -52px}
+.clearlooks2 .mceStatusbar .mceBottom .mceRight {background:url(img/corners.gif) -24px 0}
+.clearlooks2 .mceStatusbar .mceBottom span {display:block; left:7px; font-family:Arial, Verdana; font-size:11px; line-height:23px}
+
+/* Actions */
+.clearlooks2 a {width:29px; height:16px; top:3px;}
+.clearlooks2 .mceClose {right:6px; background:url(img/buttons.gif) -87px 0}
+.clearlooks2 .mceMin {display:none; right:68px; background:url(img/buttons.gif) 0 0}
+.clearlooks2 .mceMed {display:none; right:37px; background:url(img/buttons.gif) -29px 0}
+.clearlooks2 .mceMax {display:none; right:37px; background:url(img/buttons.gif) -58px 0}
+.clearlooks2 .mceMove {display:none;width:100%;cursor:move;background:url(img/corners.gif) no-repeat -100px -100px}
+.clearlooks2 .mceMovable .mceMove {display:block}
+.clearlooks2 .mceFocus .mceClose {right:6px; background:url(img/buttons.gif) -87px -16px}
+.clearlooks2 .mceFocus .mceMin {right:68px; background:url(img/buttons.gif) 0 -16px}
+.clearlooks2 .mceFocus .mceMed {right:37px; background:url(img/buttons.gif) -29px -16px}
+.clearlooks2 .mceFocus .mceMax {right:37px; background:url(img/buttons.gif) -58px -16px}
+.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px}
+.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px}
+.clearlooks2 .mceFocus .mceMin:hover {right:68px; background:url(img/buttons.gif) 0 -32px}
+.clearlooks2 .mceFocus .mceMed:hover {right:37px; background:url(img/buttons.gif) -29px -32px}
+.clearlooks2 .mceFocus .mceMax:hover {right:37px; background:url(img/buttons.gif) -58px -32px}
+
+/* Resize */
+.clearlooks2 .mceResize {top:auto; left:auto; display:none; width:5px; height:5px; background:url(img/horizontal.gif) no-repeat 0 -75px}
+.clearlooks2 .mceResizable .mceResize {display:block}
+.clearlooks2 .mceResizable .mceMin, .clearlooks2 .mceMax {display:none}
+.clearlooks2 .mceMinimizable .mceMin {display:block}
+.clearlooks2 .mceMaximizable .mceMax {display:block}
+.clearlooks2 .mceMaximized .mceMed {display:block}
+.clearlooks2 .mceMaximized .mceMax {display:none}
+.clearlooks2 a.mceResizeN {top:0; left:0; width:100%; cursor:n-resize}
+.clearlooks2 a.mceResizeNW {top:0; left:0; cursor:nw-resize}
+.clearlooks2 a.mceResizeNE {top:0; right:0; cursor:ne-resize}
+.clearlooks2 a.mceResizeW {top:0; left:0; height:100%; cursor:w-resize;}
+.clearlooks2 a.mceResizeE {top:0; right:0; height:100%; cursor:e-resize}
+.clearlooks2 a.mceResizeS {bottom:0; left:0; width:100%; cursor:s-resize}
+.clearlooks2 a.mceResizeSW {bottom:0; left:0; cursor:sw-resize}
+.clearlooks2 a.mceResizeSE {bottom:0; right:0; cursor:se-resize}
+
+/* Alert/Confirm */
+.clearlooks2 .mceButton {font-weight:bold; bottom:10px; width:80px; height:30px; background:url(img/button.gif); line-height:30px; vertical-align:middle; text-align:center; outline:0}
+.clearlooks2 .mceMiddle .mceIcon {left:15px; top:35px; width:32px; height:32px}
+.clearlooks2 .mceAlert .mceMiddle span, .clearlooks2 .mceConfirm .mceMiddle span {background:transparent;left:60px; top:35px; width:320px; height:50px; font-weight:bold; overflow:auto; white-space:normal}
+.clearlooks2 a:hover {font-weight:bold;}
+.clearlooks2 .mceAlert .mceMiddle, .clearlooks2 .mceConfirm .mceMiddle {background:#D6D7D5}
+.clearlooks2 .mceAlert .mceOk {left:50%; top:auto; margin-left: -40px}
+.clearlooks2 .mceAlert .mceIcon {background:url(img/alert.gif)}
+.clearlooks2 .mceConfirm .mceOk {left:50%; top:auto; margin-left: -90px}
+.clearlooks2 .mceConfirm .mceCancel {left:50%; top:auto}
+.clearlooks2 .mceConfirm .mceIcon {background:url(img/confirm.gif)}
\ No newline at end of file
--- /dev/null
+<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+<title>Template for dialogs</title>\r
+<link rel="stylesheet" type="text/css" href="skins/clearlooks2/window.css" />\r
+</head>\r
+<body>\r
+\r
+<div class="mceEditor">\r
+ <div class="clearlooks2" style="width:400px; height:100px; left:10px;">\r
+ <div class="mceWrapper">\r
+ <div class="mceTop">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Blured</span>\r
+ </div>\r
+\r
+ <div class="mceMiddle">\r
+ <div class="mceLeft"></div>\r
+ <span>Content</span>\r
+ <div class="mceRight"></div>\r
+ </div>\r
+\r
+ <div class="mceBottom">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Statusbar text.</span>\r
+ </div>\r
+\r
+ <a class="mceMove" href="#"></a>\r
+ <a class="mceMin" href="#"></a>\r
+ <a class="mceMax" href="#"></a>\r
+ <a class="mceMed" href="#"></a>\r
+ <a class="mceClose" href="#"></a>\r
+ <a class="mceResize mceResizeN" href="#"></a>\r
+ <a class="mceResize mceResizeS" href="#"></a>\r
+ <a class="mceResize mceResizeW" href="#"></a>\r
+ <a class="mceResize mceResizeE" href="#"></a>\r
+ <a class="mceResize mceResizeNW" href="#"></a>\r
+ <a class="mceResize mceResizeNE" href="#"></a>\r
+ <a class="mceResize mceResizeSW" href="#"></a>\r
+ <a class="mceResize mceResizeSE" href="#"></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="clearlooks2" style="width:400px; height:100px; left:420px;">\r
+ <div class="mceWrapper mceMovable mceFocus">\r
+ <div class="mceTop">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Focused</span>\r
+ </div>\r
+\r
+ <div class="mceMiddle">\r
+ <div class="mceLeft"></div>\r
+ <span>Content</span>\r
+ <div class="mceRight"></div>\r
+ </div>\r
+\r
+ <div class="mceBottom">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Statusbar text.</span>\r
+ </div>\r
+\r
+ <a class="mceMove" href="#"></a>\r
+ <a class="mceMin" href="#"></a>\r
+ <a class="mceMax" href="#"></a>\r
+ <a class="mceMed" href="#"></a>\r
+ <a class="mceClose" href="#"></a>\r
+ <a class="mceResize mceResizeN" href="#"></a>\r
+ <a class="mceResize mceResizeS" href="#"></a>\r
+ <a class="mceResize mceResizeW" href="#"></a>\r
+ <a class="mceResize mceResizeE" href="#"></a>\r
+ <a class="mceResize mceResizeNW" href="#"></a>\r
+ <a class="mceResize mceResizeNE" href="#"></a>\r
+ <a class="mceResize mceResizeSW" href="#"></a>\r
+ <a class="mceResize mceResizeSE" href="#"></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="clearlooks2" style="width:400px; height:100px; left:10px; top:120px;">\r
+ <div class="mceWrapper mceMovable mceFocus mceStatusbar">\r
+ <div class="mceTop">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Statusbar</span>\r
+ </div>\r
+\r
+ <div class="mceMiddle">\r
+ <div class="mceLeft"></div>\r
+ <span>Content</span>\r
+ <div class="mceRight"></div>\r
+ </div>\r
+\r
+ <div class="mceBottom">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Statusbar text.</span>\r
+ </div>\r
+\r
+ <a class="mceMove" href="#"></a>\r
+ <a class="mceMin" href="#"></a>\r
+ <a class="mceMax" href="#"></a>\r
+ <a class="mceMed" href="#"></a>\r
+ <a class="mceClose" href="#"></a>\r
+ <a class="mceResize mceResizeN" href="#"></a>\r
+ <a class="mceResize mceResizeS" href="#"></a>\r
+ <a class="mceResize mceResizeW" href="#"></a>\r
+ <a class="mceResize mceResizeE" href="#"></a>\r
+ <a class="mceResize mceResizeNW" href="#"></a>\r
+ <a class="mceResize mceResizeNE" href="#"></a>\r
+ <a class="mceResize mceResizeSW" href="#"></a>\r
+ <a class="mceResize mceResizeSE" href="#"></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="clearlooks2" style="width:400px; height:100px; left:420px; top:120px;">\r
+ <div class="mceWrapper mceMovable mceFocus mceStatusbar mceResizable">\r
+ <div class="mceTop">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Statusbar, Resizable</span>\r
+ </div>\r
+\r
+ <div class="mceMiddle">\r
+ <div class="mceLeft"></div>\r
+ <span>Content</span>\r
+ <div class="mceRight"></div>\r
+ </div>\r
+\r
+ <div class="mceBottom">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Statusbar text.</span>\r
+ </div>\r
+\r
+ <a class="mceMove" href="#"></a>\r
+ <a class="mceMin" href="#"></a>\r
+ <a class="mceMax" href="#"></a>\r
+ <a class="mceMed" href="#"></a>\r
+ <a class="mceClose" href="#"></a>\r
+ <a class="mceResize mceResizeN" href="#"></a>\r
+ <a class="mceResize mceResizeS" href="#"></a>\r
+ <a class="mceResize mceResizeW" href="#"></a>\r
+ <a class="mceResize mceResizeE" href="#"></a>\r
+ <a class="mceResize mceResizeNW" href="#"></a>\r
+ <a class="mceResize mceResizeNE" href="#"></a>\r
+ <a class="mceResize mceResizeSW" href="#"></a>\r
+ <a class="mceResize mceResizeSE" href="#"></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="clearlooks2" style="width:400px; height:100px; left:10px; top:230px;">\r
+ <div class="mceWrapper mceMovable mceFocus mceResizable mceMaximizable">\r
+ <div class="mceTop">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Resizable, Maximizable</span>\r
+ </div>\r
+\r
+ <div class="mceMiddle">\r
+ <div class="mceLeft"></div>\r
+ <span>Content</span>\r
+ <div class="mceRight"></div>\r
+ </div>\r
+\r
+ <div class="mceBottom">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Statusbar text.</span>\r
+ </div>\r
+\r
+ <a class="mceMove" href="#"></a>\r
+ <a class="mceMin" href="#"></a>\r
+ <a class="mceMax" href="#"></a>\r
+ <a class="mceMed" href="#"></a>\r
+ <a class="mceClose" href="#"></a>\r
+ <a class="mceResize mceResizeN" href="#"></a>\r
+ <a class="mceResize mceResizeS" href="#"></a>\r
+ <a class="mceResize mceResizeW" href="#"></a>\r
+ <a class="mceResize mceResizeE" href="#"></a>\r
+ <a class="mceResize mceResizeNW" href="#"></a>\r
+ <a class="mceResize mceResizeNE" href="#"></a>\r
+ <a class="mceResize mceResizeSW" href="#"></a>\r
+ <a class="mceResize mceResizeSE" href="#"></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="clearlooks2" style="width:400px; height:100px; left:420px; top:230px;">\r
+ <div class="mceWrapper mceMovable mceStatusbar mceResizable mceMaximizable">\r
+ <div class="mceTop">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Blurred, Maximizable, Statusbar, Resizable</span>\r
+ </div>\r
+\r
+ <div class="mceMiddle">\r
+ <div class="mceLeft"></div>\r
+ <span>Content</span>\r
+ <div class="mceRight"></div>\r
+ </div>\r
+\r
+ <div class="mceBottom">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Statusbar text.</span>\r
+ </div>\r
+\r
+ <a class="mceMove" href="#"></a>\r
+ <a class="mceMin" href="#"></a>\r
+ <a class="mceMax" href="#"></a>\r
+ <a class="mceMed" href="#"></a>\r
+ <a class="mceClose" href="#"></a>\r
+ <a class="mceResize mceResizeN" href="#"></a>\r
+ <a class="mceResize mceResizeS" href="#"></a>\r
+ <a class="mceResize mceResizeW" href="#"></a>\r
+ <a class="mceResize mceResizeE" href="#"></a>\r
+ <a class="mceResize mceResizeNW" href="#"></a>\r
+ <a class="mceResize mceResizeNE" href="#"></a>\r
+ <a class="mceResize mceResizeSW" href="#"></a>\r
+ <a class="mceResize mceResizeSE" href="#"></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="clearlooks2" style="width:400px; height:100px; left:10px; top:340px;">\r
+ <div class="mceWrapper mceMovable mceFocus mceResizable mceMaximized mceMinimizable mceMaximizable">\r
+ <div class="mceTop">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Maximized, Maximizable, Minimizable</span>\r
+ </div>\r
+\r
+ <div class="mceMiddle">\r
+ <div class="mceLeft"></div>\r
+ <span>Content</span>\r
+ <div class="mceRight"></div>\r
+ </div>\r
+\r
+ <div class="mceBottom">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Statusbar text.</span>\r
+ </div>\r
+\r
+ <a class="mceMove" href="#"></a>\r
+ <a class="mceMin" href="#"></a>\r
+ <a class="mceMax" href="#"></a>\r
+ <a class="mceMed" href="#"></a>\r
+ <a class="mceClose" href="#"></a>\r
+ <a class="mceResize mceResizeN" href="#"></a>\r
+ <a class="mceResize mceResizeS" href="#"></a>\r
+ <a class="mceResize mceResizeW" href="#"></a>\r
+ <a class="mceResize mceResizeE" href="#"></a>\r
+ <a class="mceResize mceResizeNW" href="#"></a>\r
+ <a class="mceResize mceResizeNE" href="#"></a>\r
+ <a class="mceResize mceResizeSW" href="#"></a>\r
+ <a class="mceResize mceResizeSE" href="#"></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="clearlooks2" style="width:400px; height:100px; left:420px; top:340px;">\r
+ <div class="mceWrapper mceMovable mceStatusbar mceResizable mceMaximized mceMinimizable mceMaximizable">\r
+ <div class="mceTop">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Blured</span>\r
+ </div>\r
+\r
+ <div class="mceMiddle">\r
+ <div class="mceLeft"></div>\r
+ <span>Content</span>\r
+ <div class="mceRight"></div>\r
+ </div>\r
+\r
+ <div class="mceBottom">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Statusbar text.</span>\r
+ </div>\r
+\r
+ <a class="mceMove" href="#"></a>\r
+ <a class="mceMin" href="#"></a>\r
+ <a class="mceMax" href="#"></a>\r
+ <a class="mceMed" href="#"></a>\r
+ <a class="mceClose" href="#"></a>\r
+ <a class="mceResize mceResizeN" href="#"></a>\r
+ <a class="mceResize mceResizeS" href="#"></a>\r
+ <a class="mceResize mceResizeW" href="#"></a>\r
+ <a class="mceResize mceResizeE" href="#"></a>\r
+ <a class="mceResize mceResizeNW" href="#"></a>\r
+ <a class="mceResize mceResizeNE" href="#"></a>\r
+ <a class="mceResize mceResizeSW" href="#"></a>\r
+ <a class="mceResize mceResizeSE" href="#"></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="clearlooks2" style="width:400px; height:130px; left:10px; top:450px;">\r
+ <div class="mceWrapper mceMovable mceFocus mceModal mceAlert">\r
+ <div class="mceTop">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Alert</span>\r
+ </div>\r
+\r
+ <div class="mceMiddle">\r
+ <div class="mceLeft"></div>\r
+ <span>\r
+ This is a very long error message. This is a very long error message.\r
+ This is a very long error message. This is a very long error message.\r
+ This is a very long error message. This is a very long error message.\r
+ This is a very long error message. This is a very long error message.\r
+ This is a very long error message. This is a very long error message.\r
+ This is a very long error message. This is a very long error message.\r
+ </span>\r
+ <div class="mceRight"></div>\r
+ <div class="mceIcon"></div>\r
+ </div>\r
+\r
+ <div class="mceBottom">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ </div>\r
+\r
+ <a class="mceMove" href="#"></a>\r
+ <a class="mceButton mceOk" href="#">Ok</a>\r
+ <a class="mceClose" href="#"></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="clearlooks2" style="width:400px; height:130px; left:420px; top:450px;">\r
+ <div class="mceWrapper mceMovable mceFocus mceModal mceConfirm">\r
+ <div class="mceTop">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ <span>Confirm</span>\r
+ </div>\r
+\r
+ <div class="mceMiddle">\r
+ <div class="mceLeft"></div>\r
+ <span>\r
+ This is a very long error message. This is a very long error message.\r
+ This is a very long error message. This is a very long error message.\r
+ This is a very long error message. This is a very long error message.\r
+ This is a very long error message. This is a very long error message.\r
+ This is a very long error message. This is a very long error message.\r
+ This is a very long error message. This is a very long error message.\r
+ </span>\r
+ <div class="mceRight"></div>\r
+ <div class="mceIcon"></div>\r
+ </div>\r
+\r
+ <div class="mceBottom">\r
+ <div class="mceLeft"></div>\r
+ <div class="mceCenter"></div>\r
+ <div class="mceRight"></div>\r
+ </div>\r
+\r
+ <a class="mceMove" href="#"></a>\r
+ <a class="mceButton mceOk" href="#">Ok</a>\r
+ <a class="mceButton mceCancel" href="#">Cancel</a>\r
+ <a class="mceClose" href="#"></a>\r
+ </div>\r
+ </div>\r
+</div>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.InsertDateTime',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertDate',function(){var str=t._getDateTime(new Date(),ed.getParam("plugin_insertdate_dateFormat",ed.getLang('insertdatetime.date_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addCommand('mceInsertTime',function(){var str=t._getDateTime(new Date(),ed.getParam("plugin_insertdate_timeFormat",ed.getLang('insertdatetime.time_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addButton('insertdate',{title:'insertdatetime.insertdate_desc',cmd:'mceInsertDate'});ed.addButton('inserttime',{title:'insertdatetime.inserttime_desc',cmd:'mceInsertTime'});},getInfo:function(){return{longname:'Insert date/time',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_getDateTime:function(d,fmt){var ed=this.editor;function addZeros(value,len){value=""+value;if(value.length<len){for(var i=0;i<(len-value.length);i++)value="0"+value;}return value;};fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+ed.getLang("insertdatetime.months_long").split(',')[d.getMonth()]);fmt=fmt.replace("%b",""+ed.getLang("insertdatetime.months_short").split(',')[d.getMonth()]);fmt=fmt.replace("%A",""+ed.getLang("insertdatetime.day_long").split(',')[d.getDay()]);fmt=fmt.replace("%a",""+ed.getLang("insertdatetime.day_short").split(',')[d.getDay()]);fmt=fmt.replace("%%","%");return fmt;}});tinymce.PluginManager.add('insertdatetime',tinymce.plugins.InsertDateTime);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.InsertDateTime', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ ed.addCommand('mceInsertDate', function() {\r
+ var str = t._getDateTime(new Date(), ed.getParam("plugin_insertdate_dateFormat", ed.getLang('insertdatetime.date_fmt')));\r
+\r
+ ed.execCommand('mceInsertContent', false, str);\r
+ });\r
+\r
+ ed.addCommand('mceInsertTime', function() {\r
+ var str = t._getDateTime(new Date(), ed.getParam("plugin_insertdate_timeFormat", ed.getLang('insertdatetime.time_fmt')));\r
+\r
+ ed.execCommand('mceInsertContent', false, str);\r
+ });\r
+\r
+ ed.addButton('insertdate', {title : 'insertdatetime.insertdate_desc', cmd : 'mceInsertDate'});\r
+ ed.addButton('inserttime', {title : 'insertdatetime.inserttime_desc', cmd : 'mceInsertTime'});\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Insert date/time',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _getDateTime : function(d, fmt) {\r
+ var ed = this.editor;\r
+\r
+ function addZeros(value, len) {\r
+ value = "" + value;\r
+\r
+ if (value.length < len) {\r
+ for (var i=0; i<(len-value.length); i++)\r
+ value = "0" + value;\r
+ }\r
+\r
+ return value;\r
+ };\r
+\r
+ fmt = fmt.replace("%D", "%m/%d/%y");\r
+ fmt = fmt.replace("%r", "%I:%M:%S %p");\r
+ fmt = fmt.replace("%Y", "" + d.getFullYear());\r
+ fmt = fmt.replace("%y", "" + d.getYear());\r
+ fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));\r
+ fmt = fmt.replace("%d", addZeros(d.getDate(), 2));\r
+ fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));\r
+ fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));\r
+ fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));\r
+ fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));\r
+ fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));\r
+ fmt = fmt.replace("%B", "" + ed.getLang("insertdatetime.months_long").split(',')[d.getMonth()]);\r
+ fmt = fmt.replace("%b", "" + ed.getLang("insertdatetime.months_short").split(',')[d.getMonth()]);\r
+ fmt = fmt.replace("%A", "" + ed.getLang("insertdatetime.day_long").split(',')[d.getDay()]);\r
+ fmt = fmt.replace("%a", "" + ed.getLang("insertdatetime.day_short").split(',')[d.getDay()]);\r
+ fmt = fmt.replace("%%", "%");\r
+\r
+ return fmt;\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('insertdatetime', tinymce.plugins.InsertDateTime);\r
+})();
\ No newline at end of file
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.Layer',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertLayer',t._insertLayer,t);ed.addCommand('mceMoveForward',function(){t._move(1);});ed.addCommand('mceMoveBackward',function(){t._move(-1);});ed.addCommand('mceMakeAbsolute',function(){t._toggleAbsolute();});ed.addButton('moveforward',{title:'layer.forward_desc',cmd:'mceMoveForward'});ed.addButton('movebackward',{title:'layer.backward_desc',cmd:'mceMoveBackward'});ed.addButton('absolute',{title:'layer.absolute_desc',cmd:'mceMakeAbsolute'});ed.addButton('insertlayer',{title:'layer.insertlayer_desc',cmd:'mceInsertLayer'});ed.onInit.add(function(){if(tinymce.isIE)ed.getDoc().execCommand('2D-Position',false,true);});ed.onNodeChange.add(t._nodeChange,t);ed.onVisualAid.add(t._visualAid,t);},getInfo:function(){return{longname:'Layer',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var le,p;le=this._getParentLayer(n);p=ed.dom.getParent(n,'DIV,P,IMG');if(!p){cm.setDisabled('absolute',1);cm.setDisabled('moveforward',1);cm.setDisabled('movebackward',1);}else{cm.setDisabled('absolute',0);cm.setDisabled('moveforward',!le);cm.setDisabled('movebackward',!le);cm.setActive('absolute',le&&le.style.position.toLowerCase()=="absolute");}},_visualAid:function(ed,e,s){var dom=ed.dom;tinymce.each(dom.select('div,p',e),function(e){if(/^(absolute|relative|static)$/i.test(e.style.position)){if(s)dom.addClass(e,'mceItemVisualAid');else dom.removeClass(e,'mceItemVisualAid');}});},_move:function(d){var ed=this.editor,i,z=[],le=this._getParentLayer(ed.selection.getNode()),ci=-1,fi=-1,nl;nl=[];tinymce.walk(ed.getBody(),function(n){if(n.nodeType==1&&/^(absolute|relative|static)$/i.test(n.style.position))nl.push(n);},'childNodes');for(i=0;i<nl.length;i++){z[i]=nl[i].style.zIndex?parseInt(nl[i].style.zIndex):0;if(ci<0&&nl[i]==le)ci=i;}if(d<0){for(i=0;i<z.length;i++){if(z[i]<z[ci]){fi=i;break;}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci];}else{if(z[ci]>0)nl[ci].style.zIndex=z[ci]-1;}}else{for(i=0;i<z.length;i++){if(z[i]>z[ci]){fi=i;break;}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci];}else nl[ci].style.zIndex=z[ci]+1;}ed.execCommand('mceRepaint');},_getParentLayer:function(n){return this.editor.dom.getParent(n,function(n){return n.nodeType==1&&/^(absolute|relative|static)$/i.test(n.style.position);});},_insertLayer:function(){var ed=this.editor,p=ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(),'*'));ed.dom.add(ed.getBody(),'div',{style:{position:'absolute',left:p.x,top:(p.y>20?p.y:20),width:100,height:100},'class':'mceItemVisualAid'},ed.selection.getContent()||ed.getLang('layer.content'));},_toggleAbsolute:function(){var ed=this.editor,le=this._getParentLayer(ed.selection.getNode());if(!le)le=ed.dom.getParent(ed.selection.getNode(),'DIV,P,IMG');if(le){if(le.style.position.toLowerCase()=="absolute"){ed.dom.setStyles(le,{position:'',left:'',top:'',width:'',height:''});ed.dom.removeClass(le,'mceItemVisualAid');}else{if(le.style.left=="")le.style.left=20+'px';if(le.style.top=="")le.style.top=20+'px';if(le.style.width=="")le.style.width=le.width?(le.width+'px'):'100px';if(le.style.height=="")le.style.height=le.height?(le.height+'px'):'100px';le.style.position="absolute";ed.addVisual(ed.getBody());}ed.execCommand('mceRepaint');ed.nodeChanged();}}});tinymce.PluginManager.add('layer',tinymce.plugins.Layer);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.Layer', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceInsertLayer', t._insertLayer, t);\r
+\r
+ ed.addCommand('mceMoveForward', function() {\r
+ t._move(1);\r
+ });\r
+\r
+ ed.addCommand('mceMoveBackward', function() {\r
+ t._move(-1);\r
+ });\r
+\r
+ ed.addCommand('mceMakeAbsolute', function() {\r
+ t._toggleAbsolute();\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('moveforward', {title : 'layer.forward_desc', cmd : 'mceMoveForward'});\r
+ ed.addButton('movebackward', {title : 'layer.backward_desc', cmd : 'mceMoveBackward'});\r
+ ed.addButton('absolute', {title : 'layer.absolute_desc', cmd : 'mceMakeAbsolute'});\r
+ ed.addButton('insertlayer', {title : 'layer.insertlayer_desc', cmd : 'mceInsertLayer'});\r
+\r
+ ed.onInit.add(function() {\r
+ if (tinymce.isIE)\r
+ ed.getDoc().execCommand('2D-Position', false, true);\r
+ });\r
+\r
+ ed.onNodeChange.add(t._nodeChange, t);\r
+ ed.onVisualAid.add(t._visualAid, t);\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Layer',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _nodeChange : function(ed, cm, n) {\r
+ var le, p;\r
+\r
+ le = this._getParentLayer(n);\r
+ p = ed.dom.getParent(n, 'DIV,P,IMG');\r
+\r
+ if (!p) {\r
+ cm.setDisabled('absolute', 1);\r
+ cm.setDisabled('moveforward', 1);\r
+ cm.setDisabled('movebackward', 1);\r
+ } else {\r
+ cm.setDisabled('absolute', 0);\r
+ cm.setDisabled('moveforward', !le);\r
+ cm.setDisabled('movebackward', !le);\r
+ cm.setActive('absolute', le && le.style.position.toLowerCase() == "absolute");\r
+ }\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _visualAid : function(ed, e, s) {\r
+ var dom = ed.dom;\r
+\r
+ tinymce.each(dom.select('div,p', e), function(e) {\r
+ if (/^(absolute|relative|static)$/i.test(e.style.position)) {\r
+ if (s)\r
+ dom.addClass(e, 'mceItemVisualAid');\r
+ else\r
+ dom.removeClass(e, 'mceItemVisualAid'); \r
+ }\r
+ });\r
+ },\r
+\r
+ _move : function(d) {\r
+ var ed = this.editor, i, z = [], le = this._getParentLayer(ed.selection.getNode()), ci = -1, fi = -1, nl;\r
+\r
+ nl = [];\r
+ tinymce.walk(ed.getBody(), function(n) {\r
+ if (n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position))\r
+ nl.push(n); \r
+ }, 'childNodes');\r
+\r
+ // Find z-indexes\r
+ for (i=0; i<nl.length; i++) {\r
+ z[i] = nl[i].style.zIndex ? parseInt(nl[i].style.zIndex) : 0;\r
+\r
+ if (ci < 0 && nl[i] == le)\r
+ ci = i;\r
+ }\r
+\r
+ if (d < 0) {\r
+ // Move back\r
+\r
+ // Try find a lower one\r
+ for (i=0; i<z.length; i++) {\r
+ if (z[i] < z[ci]) {\r
+ fi = i;\r
+ break;\r
+ }\r
+ }\r
+\r
+ if (fi > -1) {\r
+ nl[ci].style.zIndex = z[fi];\r
+ nl[fi].style.zIndex = z[ci];\r
+ } else {\r
+ if (z[ci] > 0)\r
+ nl[ci].style.zIndex = z[ci] - 1;\r
+ }\r
+ } else {\r
+ // Move forward\r
+\r
+ // Try find a higher one\r
+ for (i=0; i<z.length; i++) {\r
+ if (z[i] > z[ci]) {\r
+ fi = i;\r
+ break;\r
+ }\r
+ }\r
+\r
+ if (fi > -1) {\r
+ nl[ci].style.zIndex = z[fi];\r
+ nl[fi].style.zIndex = z[ci];\r
+ } else\r
+ nl[ci].style.zIndex = z[ci] + 1;\r
+ }\r
+\r
+ ed.execCommand('mceRepaint');\r
+ },\r
+\r
+ _getParentLayer : function(n) {\r
+ return this.editor.dom.getParent(n, function(n) {\r
+ return n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position);\r
+ });\r
+ },\r
+\r
+ _insertLayer : function() {\r
+ var ed = this.editor, p = ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(), '*'));\r
+\r
+ ed.dom.add(ed.getBody(), 'div', {\r
+ style : {\r
+ position : 'absolute',\r
+ left : p.x,\r
+ top : (p.y > 20 ? p.y : 20),\r
+ width : 100,\r
+ height : 100\r
+ },\r
+ 'class' : 'mceItemVisualAid'\r
+ }, ed.selection.getContent() || ed.getLang('layer.content'));\r
+ },\r
+\r
+ _toggleAbsolute : function() {\r
+ var ed = this.editor, le = this._getParentLayer(ed.selection.getNode());\r
+\r
+ if (!le)\r
+ le = ed.dom.getParent(ed.selection.getNode(), 'DIV,P,IMG');\r
+\r
+ if (le) {\r
+ if (le.style.position.toLowerCase() == "absolute") {\r
+ ed.dom.setStyles(le, {\r
+ position : '',\r
+ left : '',\r
+ top : '',\r
+ width : '',\r
+ height : ''\r
+ });\r
+\r
+ ed.dom.removeClass(le, 'mceItemVisualAid');\r
+ } else {\r
+ if (le.style.left == "")\r
+ le.style.left = 20 + 'px';\r
+\r
+ if (le.style.top == "")\r
+ le.style.top = 20 + 'px';\r
+\r
+ if (le.style.width == "")\r
+ le.style.width = le.width ? (le.width + 'px') : '100px';\r
+\r
+ if (le.style.height == "")\r
+ le.style.height = le.height ? (le.height + 'px') : '100px';\r
+\r
+ le.style.position = "absolute";\r
+ ed.addVisual(ed.getBody());\r
+ }\r
+\r
+ ed.execCommand('mceRepaint');\r
+ ed.nodeChanged();\r
+ }\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('layer', tinymce.plugins.Layer);\r
+})();
\ No newline at end of file
--- /dev/null
+.mceItemFlash, .mceItemShockWave, .mceItemQuickTime, .mceItemWindowsMedia, .mceItemRealMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc;}\r
+.mceItemShockWave {background-image: url(../img/shockwave.gif);}\r
+.mceItemFlash {background-image:url(../img/flash.gif);}\r
+.mceItemQuickTime {background-image:url(../img/quicktime.gif);}\r
+.mceItemWindowsMedia {background-image:url(../img/windowsmedia.gif);}\r
+.mceItemRealMedia {background-image:url(../img/realmedia.gif);}\r
--- /dev/null
+#id, #name, #hspace, #vspace, #class_name, #align {\r
+ width: 100px;\r
+}\r
+\r
+#hspace, #vspace {\r
+ width: 50px;\r
+}\r
+\r
+#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode {\r
+ width: 100px;\r
+}\r
+\r
+#flash_base, #flash_flashvars {\r
+ width: 240px;\r
+}\r
+\r
+#width, #height {\r
+ width: 40px;\r
+}\r
+\r
+#src, #media_type {\r
+ width: 250px;\r
+}\r
+\r
+#class {\r
+ width: 120px;\r
+}\r
+\r
+#prev {\r
+ margin: 0;\r
+ border: 1px solid black;\r
+ width: 99%;\r
+ height: 230px;\r
+ overflow: auto;\r
+}\r
+\r
+.panel_wrapper div.current {\r
+ height: 390px;\r
+ overflow: auto;\r
+}\r
+\r
+#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options {\r
+ display: none;\r
+}\r
+\r
+.mceAddSelectValue {\r
+ background-color: #DDDDDD;\r
+}\r
+\r
+#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume {\r
+ width: 70px;\r
+}\r
+\r
+#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume {\r
+ width: 70px;\r
+}\r
+\r
+#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks {\r
+ width: 70px;\r
+}\r
+\r
+#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle {\r
+ width: 90px;\r
+}\r
+\r
+#qt_qtsrc {\r
+ width: 200px;\r
+}\r
--- /dev/null
+(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.MediaPlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;function isMediaElm(n){return/^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);};ed.addCommand('mceMedia',function(){ed.windowManager.open({file:url+'/media.htm',width:430+parseInt(ed.getLang('media.delta_width',0)),height:470+parseInt(ed.getLang('media.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('media',{title:'media.desc',cmd:'mceMedia'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('media',n.nodeName=='IMG'&&isMediaElm(n));});ed.onInit.add(function(){var lo={mceItemFlash:'flash',mceItemShockWave:'shockwave',mceItemWindowsMedia:'windowsmedia',mceItemQuickTime:'quicktime',mceItemRealMedia:'realmedia'};ed.dom.loadCSS(url+"/css/content.css");if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.name=='img'){each(lo,function(v,k){if(ed.dom.hasClass(o.node,k)){o.name=v;o.title=ed.dom.getAttrib(o.node,'title');return false;}});}});}if(ed&&ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){if(e.nodeName=='IMG'&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(e.className)){m.add({title:'media.edit',icon:'media',cmd:'mceMedia'});}});}});ed.onBeforeSetContent.add(function(ed,o){var h=o.content;h=h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi,function(a,b,c){var o=t._parse(c);return'<img class="mceItem'+b+'" title="'+ed.dom.encode(c)+'" src="'+url+'/img/trans.gif" width="'+o.width+'" height="'+o.height+'" />'});h=h.replace(/<object([^>]*)>/gi,'<span class="mceItemObject" $1>');h=h.replace(/<embed([^>]*)>/gi,'<span class="mceItemEmbed" $1>');h=h.replace(/<\/(object|embed)([^>]*)>/gi,'</span>');h=h.replace(/<param([^>]*)>/gi,function(a,b){return'<span '+b.replace(/value=/gi,'_value=')+' class="mceItemParam"></span>'});h=h.replace(/\/ class=\"mceItemParam\"><\/span>/gi,'class="mceItemParam"></span>');o.content=h;});ed.onSetContent.add(function(){t._spansToImgs(ed.getBody());});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;if(o.set){t._spansToImgs(o.node);each(dom.select('IMG',o.node),function(n){var p;if(isMediaElm(n)){p=t._parse(n.title);dom.setAttrib(n,'width',dom.getAttrib(n,'width',p.width||100));dom.setAttrib(n,'height',dom.getAttrib(n,'height',p.height||100));}});}if(o.get){each(dom.select('IMG',o.node),function(n){var ci,cb,mt;if(ed.getParam('media_use_script')){if(isMediaElm(n))n.className=n.className.replace(/mceItem/g,'mceTemp');return;}switch(n.className){case'mceItemFlash':ci='d27cdb6e-ae6d-11cf-96b8-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='application/x-shockwave-flash';break;case'mceItemShockWave':ci='166b1bca-3f9c-11cf-8075-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';mt='application/x-director';break;case'mceItemWindowsMedia':ci=ed.getParam('media_wmp6_compatible')?'05589fa1-c356-11ce-bf01-00aa0055595a':'6bf52a52-394a-11d3-b153-00c04f79faa6';cb='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';mt='application/x-mplayer2';break;case'mceItemQuickTime':ci='02bf25d5-8c17-4b23-bc80-d3488abddc6b';cb='http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';mt='video/quicktime';break;case'mceItemRealMedia':ci='cfcdaa03-8be4-11cf-b84b-0020afbbccfa';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='audio/x-pn-realaudio-plugin';break;}if(ci){dom.replace(t._buildObj({classid:ci,codebase:cb,type:mt},n),n);}});}});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/_value=/g,'value=');});if(ed.getParam('media_use_script')){function getAttr(s,n){n=new RegExp(n+'=\"([^\"]+)\"','g').exec(s);return n?ed.dom.decode(n[1]):'';};ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/<img[^>]+>/g,function(im){var cl=getAttr(im,'class');if(/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(cl)){at=t._parse(getAttr(im,'title'));at.width=getAttr(im,'width');at.height=getAttr(im,'height');im='<script type="text/javascript">write'+cl.substring(7)+'({'+t._serialize(at)+'});</script>';}return im;});});}},getInfo:function(){return{longname:'Media',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_buildObj:function(o,n){var ob,ed=this.editor,dom=ed.dom,p=this._parse(n.title);p.width=o.width=dom.getAttrib(n,'width')||100;p.height=o.height=dom.getAttrib(n,'height')||100;ob=dom.create('span',{mce_name:'object',classid:"clsid:"+o.classid,codebase:o.codebase,width:o.width,height:o.height});if(p.src)p.src=ed.convertURL(p.src,'src',n);each(p,function(v,k){if(!/^(width|height|codebase|classid)$/.test(k))dom.add(ob,'span',{mce_name:'param',name:k,'_value':v});});dom.add(ob,'span',tinymce.extend({mce_name:'embed',type:o.type},p));return ob;},_spansToImgs:function(p){var t=this,dom=t.editor.dom,im,ci;each(dom.select('span',p),function(n){if(dom.getAttrib(n,'class')=='mceItemObject'){ci=dom.getAttrib(n,"classid").toLowerCase().replace(/\s+/g,'');switch(ci){case'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':dom.replace(t._createImg('mceItemFlash',n),n);break;case'clsid:166b1bca-3f9c-11cf-8075-444553540000':dom.replace(t._createImg('mceItemShockWave',n),n);break;case'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':case'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':case'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':dom.replace(t._createImg('mceItemWindowsMedia',n),n);break;case'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':dom.replace(t._createImg('mceItemQuickTime',n),n);break;case'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':dom.replace(t._createImg('mceItemRealMedia',n),n);break;default:dom.replace(t._createImg('mceItemFlash',n),n);}return;}if(dom.getAttrib(n,'class')=='mceItemEmbed'){switch(dom.getAttrib(n,'type')){case'application/x-shockwave-flash':dom.replace(t._createImg('mceItemFlash',n),n);break;case'application/x-director':dom.replace(t._createImg('mceItemShockWave',n),n);break;case'application/x-mplayer2':dom.replace(t._createImg('mceItemWindowsMedia',n),n);break;case'video/quicktime':dom.replace(t._createImg('mceItemQuickTime',n),n);break;case'audio/x-pn-realaudio-plugin':dom.replace(t._createImg('mceItemRealMedia',n),n);break;default:dom.replace(t._createImg('mceItemFlash',n),n);}}});},_createImg:function(cl,n){var im,dom=this.editor.dom,pa={},ti='';im=dom.create('img',{src:this.url+'/img/trans.gif',width:dom.getAttrib(n,'width')||100,height:dom.getAttrib(n,'height')||100,'class':cl});each(['id','name','width','height','bgcolor','align','flashvars','src','wmode'],function(na){var v=dom.getAttrib(n,na);if(v)pa[na]=v;});each(dom.select('span',n),function(n){if(dom.hasClass(n,'mceItemParam'))pa[dom.getAttrib(n,'name')]=dom.getAttrib(n,'_value');});if(pa.movie){pa.src=pa.movie;delete pa.movie;}delete pa.width;delete pa.height;im.title=this._serialize(pa);return im;},_parse:function(s){return tinymce.util.JSON.parse('{'+s+'}');},_serialize:function(o){return tinymce.util.JSON.serialize(o).replace(/[{}]/g,'');}});tinymce.PluginManager.add('media',tinymce.plugins.MediaPlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.plugins.MediaPlugin', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+ \r
+ t.editor = ed;\r
+ t.url = url;\r
+\r
+ function isMediaElm(n) {\r
+ return /^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);\r
+ };\r
+\r
+ // Register commands\r
+ ed.addCommand('mceMedia', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/media.htm',\r
+ width : 430 + parseInt(ed.getLang('media.delta_width', 0)),\r
+ height : 470 + parseInt(ed.getLang('media.delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('media', {title : 'media.desc', cmd : 'mceMedia'});\r
+\r
+ ed.onNodeChange.add(function(ed, cm, n) {\r
+ cm.setActive('media', n.nodeName == 'IMG' && isMediaElm(n));\r
+ });\r
+\r
+ ed.onInit.add(function() {\r
+ var lo = {\r
+ mceItemFlash : 'flash',\r
+ mceItemShockWave : 'shockwave',\r
+ mceItemWindowsMedia : 'windowsmedia',\r
+ mceItemQuickTime : 'quicktime',\r
+ mceItemRealMedia : 'realmedia'\r
+ };\r
+\r
+ ed.dom.loadCSS(url + "/css/content.css");\r
+\r
+ if (ed.theme.onResolveName) {\r
+ ed.theme.onResolveName.add(function(th, o) {\r
+ if (o.name == 'img') {\r
+ each(lo, function(v, k) {\r
+ if (ed.dom.hasClass(o.node, k)) {\r
+ o.name = v;\r
+ o.title = ed.dom.getAttrib(o.node, 'title');\r
+ return false;\r
+ }\r
+ });\r
+ }\r
+ });\r
+ }\r
+\r
+ if (ed && ed.plugins.contextmenu) {\r
+ ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {\r
+ if (e.nodeName == 'IMG' && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(e.className)) {\r
+ m.add({title : 'media.edit', icon : 'media', cmd : 'mceMedia'});\r
+ }\r
+ });\r
+ }\r
+ });\r
+\r
+ ed.onBeforeSetContent.add(function(ed, o) {\r
+ var h = o.content;\r
+\r
+ h = h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, function(a, b, c) {\r
+ var o = t._parse(c);\r
+\r
+ return '<img class="mceItem' + b + '" title="' + ed.dom.encode(c) + '" src="' + url + '/img/trans.gif" width="' + o.width + '" height="' + o.height + '" />'\r
+ });\r
+\r
+ h = h.replace(/<object([^>]*)>/gi, '<span class="mceItemObject" $1>');\r
+ h = h.replace(/<embed([^>]*)>/gi, '<span class="mceItemEmbed" $1>');\r
+ h = h.replace(/<\/(object|embed)([^>]*)>/gi, '</span>');\r
+ h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<span ' + b.replace(/value=/gi, '_value=') + ' class="mceItemParam"></span>'});\r
+ h = h.replace(/\/ class=\"mceItemParam\"><\/span>/gi, 'class="mceItemParam"></span>');\r
+\r
+ o.content = h;\r
+ });\r
+\r
+ ed.onSetContent.add(function() {\r
+ t._spansToImgs(ed.getBody());\r
+ });\r
+\r
+ ed.onPreProcess.add(function(ed, o) {\r
+ var dom = ed.dom;\r
+\r
+ if (o.set) {\r
+ t._spansToImgs(o.node);\r
+\r
+ each(dom.select('IMG', o.node), function(n) {\r
+ var p;\r
+\r
+ if (isMediaElm(n)) {\r
+ p = t._parse(n.title);\r
+ dom.setAttrib(n, 'width', dom.getAttrib(n, 'width', p.width || 100));\r
+ dom.setAttrib(n, 'height', dom.getAttrib(n, 'height', p.height || 100));\r
+ }\r
+ });\r
+ }\r
+\r
+ if (o.get) {\r
+ each(dom.select('IMG', o.node), function(n) {\r
+ var ci, cb, mt;\r
+\r
+ if (ed.getParam('media_use_script')) {\r
+ if (isMediaElm(n))\r
+ n.className = n.className.replace(/mceItem/g, 'mceTemp');\r
+\r
+ return;\r
+ }\r
+\r
+ switch (n.className) {\r
+ case 'mceItemFlash':\r
+ ci = 'd27cdb6e-ae6d-11cf-96b8-444553540000';\r
+ cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';\r
+ mt = 'application/x-shockwave-flash';\r
+ break;\r
+\r
+ case 'mceItemShockWave':\r
+ ci = '166b1bca-3f9c-11cf-8075-444553540000';\r
+ cb = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';\r
+ mt = 'application/x-director';\r
+ break;\r
+\r
+ case 'mceItemWindowsMedia':\r
+ ci = ed.getParam('media_wmp6_compatible') ? '05589fa1-c356-11ce-bf01-00aa0055595a' : '6bf52a52-394a-11d3-b153-00c04f79faa6';\r
+ cb = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';\r
+ mt = 'application/x-mplayer2';\r
+ break;\r
+\r
+ case 'mceItemQuickTime':\r
+ ci = '02bf25d5-8c17-4b23-bc80-d3488abddc6b';\r
+ cb = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';\r
+ mt = 'video/quicktime';\r
+ break;\r
+\r
+ case 'mceItemRealMedia':\r
+ ci = 'cfcdaa03-8be4-11cf-b84b-0020afbbccfa';\r
+ cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';\r
+ mt = 'audio/x-pn-realaudio-plugin';\r
+ break;\r
+ }\r
+\r
+ if (ci) {\r
+ dom.replace(t._buildObj({\r
+ classid : ci,\r
+ codebase : cb,\r
+ type : mt\r
+ }, n), n);\r
+ }\r
+ });\r
+ }\r
+ });\r
+\r
+ ed.onPostProcess.add(function(ed, o) {\r
+ o.content = o.content.replace(/_value=/g, 'value=');\r
+ });\r
+\r
+ if (ed.getParam('media_use_script')) {\r
+ function getAttr(s, n) {\r
+ n = new RegExp(n + '=\"([^\"]+)\"', 'g').exec(s);\r
+\r
+ return n ? ed.dom.decode(n[1]) : '';\r
+ };\r
+\r
+ ed.onPostProcess.add(function(ed, o) {\r
+ o.content = o.content.replace(/<img[^>]+>/g, function(im) {\r
+ var cl = getAttr(im, 'class');\r
+\r
+ if (/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(cl)) {\r
+ at = t._parse(getAttr(im, 'title'));\r
+ at.width = getAttr(im, 'width');\r
+ at.height = getAttr(im, 'height');\r
+ im = '<script type="text/javascript">write' + cl.substring(7) + '({' + t._serialize(at) + '});</script>';\r
+ }\r
+\r
+ return im;\r
+ });\r
+ });\r
+ }\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Media',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _buildObj : function(o, n) {\r
+ var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title);\r
+\r
+ p.width = o.width = dom.getAttrib(n, 'width') || 100;\r
+ p.height = o.height = dom.getAttrib(n, 'height') || 100;\r
+\r
+ ob = dom.create('span', {\r
+ mce_name : 'object',\r
+ classid : "clsid:" + o.classid,\r
+ codebase : o.codebase,\r
+ width : o.width,\r
+ height : o.height\r
+ });\r
+\r
+ if (p.src)\r
+ p.src = ed.convertURL(p.src, 'src', n);\r
+\r
+ each (p, function(v, k) {\r
+ if (!/^(width|height|codebase|classid)$/.test(k))\r
+ dom.add(ob, 'span', {mce_name : 'param', name : k, '_value' : v});\r
+ });\r
+\r
+ dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type}, p));\r
+\r
+ return ob;\r
+ },\r
+\r
+ _spansToImgs : function(p) {\r
+ var t = this, dom = t.editor.dom, im, ci;\r
+\r
+ each(dom.select('span', p), function(n) {\r
+ // Convert object into image\r
+ if (dom.getAttrib(n, 'class') == 'mceItemObject') {\r
+ ci = dom.getAttrib(n, "classid").toLowerCase().replace(/\s+/g, '');\r
+\r
+ switch (ci) {\r
+ case 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':\r
+ dom.replace(t._createImg('mceItemFlash', n), n);\r
+ break;\r
+\r
+ case 'clsid:166b1bca-3f9c-11cf-8075-444553540000':\r
+ dom.replace(t._createImg('mceItemShockWave', n), n);\r
+ break;\r
+\r
+ case 'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':\r
+ case 'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':\r
+ case 'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':\r
+ dom.replace(t._createImg('mceItemWindowsMedia', n), n);\r
+ break;\r
+\r
+ case 'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':\r
+ dom.replace(t._createImg('mceItemQuickTime', n), n);\r
+ break;\r
+\r
+ case 'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':\r
+ dom.replace(t._createImg('mceItemRealMedia', n), n);\r
+ break;\r
+\r
+ default:\r
+ dom.replace(t._createImg('mceItemFlash', n), n);\r
+ }\r
+ \r
+ return;\r
+ }\r
+\r
+ // Convert embed into image\r
+ if (dom.getAttrib(n, 'class') == 'mceItemEmbed') {\r
+ switch (dom.getAttrib(n, 'type')) {\r
+ case 'application/x-shockwave-flash':\r
+ dom.replace(t._createImg('mceItemFlash', n), n);\r
+ break;\r
+\r
+ case 'application/x-director':\r
+ dom.replace(t._createImg('mceItemShockWave', n), n);\r
+ break;\r
+\r
+ case 'application/x-mplayer2':\r
+ dom.replace(t._createImg('mceItemWindowsMedia', n), n);\r
+ break;\r
+\r
+ case 'video/quicktime':\r
+ dom.replace(t._createImg('mceItemQuickTime', n), n);\r
+ break;\r
+\r
+ case 'audio/x-pn-realaudio-plugin':\r
+ dom.replace(t._createImg('mceItemRealMedia', n), n);\r
+ break;\r
+\r
+ default:\r
+ dom.replace(t._createImg('mceItemFlash', n), n);\r
+ }\r
+ } \r
+ });\r
+ },\r
+\r
+ _createImg : function(cl, n) {\r
+ var im, dom = this.editor.dom, pa = {}, ti = '';\r
+\r
+ // Create image\r
+ im = dom.create('img', {\r
+ src : this.url + '/img/trans.gif',\r
+ width : dom.getAttrib(n, 'width') || 100,\r
+ height : dom.getAttrib(n, 'height') || 100,\r
+ 'class' : cl\r
+ });\r
+\r
+ // Setup base parameters\r
+ each(['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode'], function(na) {\r
+ var v = dom.getAttrib(n, na);\r
+\r
+ if (v)\r
+ pa[na] = v;\r
+ });\r
+\r
+ // Add optional parameters\r
+ each(dom.select('span', n), function(n) {\r
+ if (dom.hasClass(n, 'mceItemParam'))\r
+ pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_value');\r
+ });\r
+\r
+ // Use src not movie\r
+ if (pa.movie) {\r
+ pa.src = pa.movie;\r
+ delete pa.movie;\r
+ }\r
+\r
+ delete pa.width;\r
+ delete pa.height;\r
+\r
+ im.title = this._serialize(pa);\r
+\r
+ return im;\r
+ },\r
+\r
+ _parse : function(s) {\r
+ return tinymce.util.JSON.parse('{' + s + '}');\r
+ },\r
+\r
+ _serialize : function(o) {\r
+ return tinymce.util.JSON.serialize(o).replace(/[{}]/g, '');\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('media', tinymce.plugins.MediaPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.\r
+ */\r
+\r
+function writeFlash(p) {\r
+ writeEmbed(\r
+ 'D27CDB6E-AE6D-11cf-96B8-444553540000',\r
+ 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
+ 'application/x-shockwave-flash',\r
+ p\r
+ );\r
+}\r
+\r
+function writeShockWave(p) {\r
+ writeEmbed(\r
+ '166B1BCA-3F9C-11CF-8075-444553540000',\r
+ 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',\r
+ 'application/x-director',\r
+ p\r
+ );\r
+}\r
+\r
+function writeQuickTime(p) {\r
+ writeEmbed(\r
+ '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',\r
+ 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',\r
+ 'video/quicktime',\r
+ p\r
+ );\r
+}\r
+\r
+function writeRealMedia(p) {\r
+ writeEmbed(\r
+ 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',\r
+ 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
+ 'audio/x-pn-realaudio-plugin',\r
+ p\r
+ );\r
+}\r
+\r
+function writeWindowsMedia(p) {\r
+ p.url = p.src;\r
+ writeEmbed(\r
+ '6BF52A52-394A-11D3-B153-00C04F79FAA6',\r
+ 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',\r
+ 'application/x-mplayer2',\r
+ p\r
+ );\r
+}\r
+\r
+function writeEmbed(cls, cb, mt, p) {\r
+ var h = '', n;\r
+\r
+ h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';\r
+ h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';\r
+ h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';\r
+ h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';\r
+ h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';\r
+ h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';\r
+ h += '>';\r
+\r
+ for (n in p)\r
+ h += '<param name="' + n + '" value="' + p[n] + '">';\r
+\r
+ h += '<embed type="' + mt + '"';\r
+\r
+ for (n in p)\r
+ h += n + '="' + p[n] + '" ';\r
+\r
+ h += '></embed></object>';\r
+\r
+ document.write(h);\r
+}\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var oldWidth, oldHeight, ed, url;\r
+\r
+if (url = tinyMCEPopup.getParam("media_external_list_url"))\r
+ document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
+\r
+function init() {\r
+ var pl = "", f, val;\r
+ var type = "flash", fe, i;\r
+\r
+ ed = tinyMCEPopup.editor;\r
+\r
+ tinyMCEPopup.resizeToInnerSize();\r
+ f = document.forms[0]\r
+\r
+ fe = ed.selection.getNode();\r
+ if (/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {\r
+ pl = fe.title;\r
+\r
+ switch (ed.dom.getAttrib(fe, 'class')) {\r
+ case 'mceItemFlash':\r
+ type = 'flash';\r
+ break;\r
+\r
+ case 'mceItemFlashVideo':\r
+ type = 'flv';\r
+ break;\r
+\r
+ case 'mceItemShockWave':\r
+ type = 'shockwave';\r
+ break;\r
+\r
+ case 'mceItemWindowsMedia':\r
+ type = 'wmp';\r
+ break;\r
+\r
+ case 'mceItemQuickTime':\r
+ type = 'qt';\r
+ break;\r
+\r
+ case 'mceItemRealMedia':\r
+ type = 'rmp';\r
+ break;\r
+ }\r
+\r
+ document.forms[0].insert.value = ed.getLang('update', 'Insert', true); \r
+ }\r
+\r
+ document.getElementById('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');\r
+ document.getElementById('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','qt_qtsrc','media','media');\r
+ document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
+\r
+ var html = getMediaListHTML('medialist','src','media','media');\r
+ if (html == "")\r
+ document.getElementById("linklistrow").style.display = 'none';\r
+ else\r
+ document.getElementById("linklistcontainer").innerHTML = html;\r
+\r
+ // Resize some elements\r
+ if (isVisible('filebrowser'))\r
+ document.getElementById('src').style.width = '230px';\r
+\r
+ // Setup form\r
+ if (pl != "") {\r
+ pl = tinyMCEPopup.editor.plugins.media._parse(pl);\r
+\r
+ switch (type) {\r
+ case "flash":\r
+ setBool(pl, 'flash', 'play');\r
+ setBool(pl, 'flash', 'loop');\r
+ setBool(pl, 'flash', 'menu');\r
+ setBool(pl, 'flash', 'swliveconnect');\r
+ setStr(pl, 'flash', 'quality');\r
+ setStr(pl, 'flash', 'scale');\r
+ setStr(pl, 'flash', 'salign');\r
+ setStr(pl, 'flash', 'wmode');\r
+ setStr(pl, 'flash', 'base');\r
+ setStr(pl, 'flash', 'flashvars');\r
+ break;\r
+\r
+ case "qt":\r
+ setBool(pl, 'qt', 'loop');\r
+ setBool(pl, 'qt', 'autoplay');\r
+ setBool(pl, 'qt', 'cache');\r
+ setBool(pl, 'qt', 'controller');\r
+ setBool(pl, 'qt', 'correction');\r
+ setBool(pl, 'qt', 'enablejavascript');\r
+ setBool(pl, 'qt', 'kioskmode');\r
+ setBool(pl, 'qt', 'autohref');\r
+ setBool(pl, 'qt', 'playeveryframe');\r
+ setBool(pl, 'qt', 'tarsetcache');\r
+ setStr(pl, 'qt', 'scale');\r
+ setStr(pl, 'qt', 'starttime');\r
+ setStr(pl, 'qt', 'endtime');\r
+ setStr(pl, 'qt', 'tarset');\r
+ setStr(pl, 'qt', 'qtsrcchokespeed');\r
+ setStr(pl, 'qt', 'volume');\r
+ setStr(pl, 'qt', 'qtsrc');\r
+ break;\r
+\r
+ case "shockwave":\r
+ setBool(pl, 'shockwave', 'sound');\r
+ setBool(pl, 'shockwave', 'progress');\r
+ setBool(pl, 'shockwave', 'autostart');\r
+ setBool(pl, 'shockwave', 'swliveconnect');\r
+ setStr(pl, 'shockwave', 'swvolume');\r
+ setStr(pl, 'shockwave', 'swstretchstyle');\r
+ setStr(pl, 'shockwave', 'swstretchhalign');\r
+ setStr(pl, 'shockwave', 'swstretchvalign');\r
+ break;\r
+\r
+ case "wmp":\r
+ setBool(pl, 'wmp', 'autostart');\r
+ setBool(pl, 'wmp', 'enabled');\r
+ setBool(pl, 'wmp', 'enablecontextmenu');\r
+ setBool(pl, 'wmp', 'fullscreen');\r
+ setBool(pl, 'wmp', 'invokeurls');\r
+ setBool(pl, 'wmp', 'mute');\r
+ setBool(pl, 'wmp', 'stretchtofit');\r
+ setBool(pl, 'wmp', 'windowlessvideo');\r
+ setStr(pl, 'wmp', 'balance');\r
+ setStr(pl, 'wmp', 'baseurl');\r
+ setStr(pl, 'wmp', 'captioningid');\r
+ setStr(pl, 'wmp', 'currentmarker');\r
+ setStr(pl, 'wmp', 'currentposition');\r
+ setStr(pl, 'wmp', 'defaultframe');\r
+ setStr(pl, 'wmp', 'playcount');\r
+ setStr(pl, 'wmp', 'rate');\r
+ setStr(pl, 'wmp', 'uimode');\r
+ setStr(pl, 'wmp', 'volume');\r
+ break;\r
+\r
+ case "rmp":\r
+ setBool(pl, 'rmp', 'autostart');\r
+ setBool(pl, 'rmp', 'loop');\r
+ setBool(pl, 'rmp', 'autogotourl');\r
+ setBool(pl, 'rmp', 'center');\r
+ setBool(pl, 'rmp', 'imagestatus');\r
+ setBool(pl, 'rmp', 'maintainaspect');\r
+ setBool(pl, 'rmp', 'nojava');\r
+ setBool(pl, 'rmp', 'prefetch');\r
+ setBool(pl, 'rmp', 'shuffle');\r
+ setStr(pl, 'rmp', 'console');\r
+ setStr(pl, 'rmp', 'controls');\r
+ setStr(pl, 'rmp', 'numloop');\r
+ setStr(pl, 'rmp', 'scriptcallbacks');\r
+ break;\r
+ }\r
+\r
+ setStr(pl, null, 'src');\r
+ setStr(pl, null, 'id');\r
+ setStr(pl, null, 'name');\r
+ setStr(pl, null, 'vspace');\r
+ setStr(pl, null, 'hspace');\r
+ setStr(pl, null, 'bgcolor');\r
+ setStr(pl, null, 'align');\r
+ setStr(pl, null, 'width');\r
+ setStr(pl, null, 'height');\r
+\r
+ if ((val = ed.dom.getAttrib(fe, "width")) != "")\r
+ pl.width = f.width.value = val;\r
+\r
+ if ((val = ed.dom.getAttrib(fe, "height")) != "")\r
+ pl.height = f.height.value = val;\r
+\r
+ oldWidth = pl.width ? parseInt(pl.width) : 0;\r
+ oldHeight = pl.height ? parseInt(pl.height) : 0;\r
+ } else\r
+ oldWidth = oldHeight = 0;\r
+\r
+ selectByValue(f, 'media_type', type);\r
+ changedType(type);\r
+ updateColor('bgcolor_pick', 'bgcolor');\r
+\r
+ TinyMCE_EditableSelects.init();\r
+ generatePreview();\r
+}\r
+\r
+function insertMedia() {\r
+ var fe, f = document.forms[0], h;\r
+\r
+ tinyMCEPopup.restoreSelection();\r
+\r
+ if (!AutoValidator.validate(f)) {\r
+ alert(ed.getLang('invalid_data'));\r
+ return false;\r
+ }\r
+\r
+ f.width.value = f.width.value == "" ? 100 : f.width.value;\r
+ f.height.value = f.height.value == "" ? 100 : f.height.value;\r
+\r
+ fe = ed.selection.getNode();\r
+ if (fe != null && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {\r
+ switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
+ case "flash":\r
+ fe.className = "mceItemFlash";\r
+ break;\r
+\r
+ case "flv":\r
+ fe.className = "mceItemFlashVideo";\r
+ break;\r
+\r
+ case "shockwave":\r
+ fe.className = "mceItemShockWave";\r
+ break;\r
+\r
+ case "qt":\r
+ fe.className = "mceItemQuickTime";\r
+ break;\r
+\r
+ case "wmp":\r
+ fe.className = "mceItemWindowsMedia";\r
+ break;\r
+\r
+ case "rmp":\r
+ fe.className = "mceItemRealMedia";\r
+ break;\r
+ }\r
+\r
+ if (fe.width != f.width.value || fe.height != f.height.height)\r
+ ed.execCommand('mceRepaint');\r
+\r
+ fe.title = serializeParameters();\r
+ fe.width = f.width.value;\r
+ fe.height = f.height.value;\r
+ fe.style.width = f.width.value + (f.width.value.indexOf('%') == -1 ? 'px' : '');\r
+ fe.style.height = f.height.value + (f.height.value.indexOf('%') == -1 ? 'px' : '');\r
+ fe.align = f.align.options[f.align.selectedIndex].value;\r
+ } else {\r
+ h = '<img src="' + tinyMCEPopup.getWindowArg("plugin_url") + '/img/trans.gif"' ;\r
+\r
+ switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
+ case "flash":\r
+ h += ' class="mceItemFlash"';\r
+ break;\r
+\r
+ case "flv":\r
+ h += ' class="mceItemFlashVideo"';\r
+ break;\r
+\r
+ case "shockwave":\r
+ h += ' class="mceItemShockWave"';\r
+ break;\r
+\r
+ case "qt":\r
+ h += ' class="mceItemQuickTime"';\r
+ break;\r
+\r
+ case "wmp":\r
+ h += ' class="mceItemWindowsMedia"';\r
+ break;\r
+\r
+ case "rmp":\r
+ h += ' class="mceItemRealMedia"';\r
+ break;\r
+ }\r
+\r
+ h += ' title="' + serializeParameters() + '"';\r
+ h += ' width="' + f.width.value + '"';\r
+ h += ' height="' + f.height.value + '"';\r
+ h += ' align="' + f.align.options[f.align.selectedIndex].value + '"';\r
+\r
+ h += ' />';\r
+\r
+ ed.execCommand('mceInsertContent', false, h);\r
+ }\r
+\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function updatePreview() {\r
+ var f = document.forms[0], type;\r
+\r
+ f.width.value = f.width.value || '320';\r
+ f.height.value = f.height.value || '240';\r
+\r
+ type = getType(f.src.value);\r
+ selectByValue(f, 'media_type', type);\r
+ changedType(type);\r
+ generatePreview();\r
+}\r
+\r
+function getMediaListHTML() {\r
+ if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {\r
+ var html = "";\r
+\r
+ html += '<select id="linklist" name="linklist" style="width: 250px" onchange="this.form.src.value=this.options[this.selectedIndex].value;updatePreview();">';\r
+ html += '<option value="">---</option>';\r
+\r
+ for (var i=0; i<tinyMCEMediaList.length; i++)\r
+ html += '<option value="' + tinyMCEMediaList[i][1] + '">' + tinyMCEMediaList[i][0] + '</option>';\r
+\r
+ html += '</select>';\r
+\r
+ return html;\r
+ }\r
+\r
+ return "";\r
+}\r
+\r
+function getType(v) {\r
+ var fo, i, c, el, x, f = document.forms[0];\r
+\r
+ fo = ed.getParam("media_types", "flash=swf;flv=flv;shockwave=dcr;qt=mov,qt,mpg,mp3,mp4,mpeg;shockwave=dcr;wmp=avi,wmv,wm,asf,asx,wmx,wvx;rmp=rm,ra,ram").split(';');\r
+\r
+ // YouTube\r
+ if (v.match(/watch\?v=(.+)(.*)/)) {\r
+ f.width.value = '425';\r
+ f.height.value = '350';\r
+ f.src.value = 'http://www.youtube.com/v/' + v.match(/v=(.*)(.*)/)[0].split('=')[1];\r
+ return 'flash';\r
+ }\r
+\r
+ // Google video\r
+ if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) {\r
+ f.width.value = '425';\r
+ f.height.value = '326';\r
+ f.src.value = 'http://video.google.com/googleplayer.swf?docId=' + v.substring('http://video.google.com/videoplay?docid='.length) + '&hl=en';\r
+ return 'flash';\r
+ }\r
+\r
+ for (i=0; i<fo.length; i++) {\r
+ c = fo[i].split('=');\r
+\r
+ el = c[1].split(',');\r
+ for (x=0; x<el.length; x++)\r
+ if (v.indexOf('.' + el[x]) != -1)\r
+ return c[0];\r
+ }\r
+\r
+ return null;\r
+}\r
+\r
+function switchType(v) {\r
+ var t = getType(v), d = document, f = d.forms[0];\r
+\r
+ if (!t)\r
+ return;\r
+\r
+ selectByValue(d.forms[0], 'media_type', t);\r
+ changedType(t);\r
+\r
+ // Update qtsrc also\r
+ if (t == 'qt' && f.src.value.toLowerCase().indexOf('rtsp://') != -1) {\r
+ alert(ed.getLang("media_qt_stream_warn"));\r
+\r
+ if (f.qt_qtsrc.value == '')\r
+ f.qt_qtsrc.value = f.src.value;\r
+ }\r
+}\r
+\r
+function changedType(t) {\r
+ var d = document;\r
+\r
+ d.getElementById('flash_options').style.display = 'none';\r
+ d.getElementById('flv_options').style.display = 'none';\r
+ d.getElementById('qt_options').style.display = 'none';\r
+ d.getElementById('shockwave_options').style.display = 'none';\r
+ d.getElementById('wmp_options').style.display = 'none';\r
+ d.getElementById('rmp_options').style.display = 'none';\r
+ d.getElementById(t + '_options').style.display = 'block';\r
+}\r
+\r
+function serializeParameters() {\r
+ var d = document, f = d.forms[0], s = '';\r
+\r
+ switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
+ case "flash":\r
+ s += getBool('flash', 'play', true);\r
+ s += getBool('flash', 'loop', true);\r
+ s += getBool('flash', 'menu', true);\r
+ s += getBool('flash', 'swliveconnect', false);\r
+ s += getStr('flash', 'quality');\r
+ s += getStr('flash', 'scale');\r
+ s += getStr('flash', 'salign');\r
+ s += getStr('flash', 'wmode');\r
+ s += getStr('flash', 'base');\r
+ s += getStr('flash', 'flashvars');\r
+ break;\r
+\r
+ case "qt":\r
+ s += getBool('qt', 'loop', false);\r
+ s += getBool('qt', 'autoplay', true);\r
+ s += getBool('qt', 'cache', false);\r
+ s += getBool('qt', 'controller', true);\r
+ s += getBool('qt', 'correction', false, 'none', 'full');\r
+ s += getBool('qt', 'enablejavascript', false);\r
+ s += getBool('qt', 'kioskmode', false);\r
+ s += getBool('qt', 'autohref', false);\r
+ s += getBool('qt', 'playeveryframe', false);\r
+ s += getBool('qt', 'targetcache', false);\r
+ s += getStr('qt', 'scale');\r
+ s += getStr('qt', 'starttime');\r
+ s += getStr('qt', 'endtime');\r
+ s += getStr('qt', 'target');\r
+ s += getStr('qt', 'qtsrcchokespeed');\r
+ s += getStr('qt', 'volume');\r
+ s += getStr('qt', 'qtsrc');\r
+ break;\r
+\r
+ case "shockwave":\r
+ s += getBool('shockwave', 'sound');\r
+ s += getBool('shockwave', 'progress');\r
+ s += getBool('shockwave', 'autostart');\r
+ s += getBool('shockwave', 'swliveconnect');\r
+ s += getStr('shockwave', 'swvolume');\r
+ s += getStr('shockwave', 'swstretchstyle');\r
+ s += getStr('shockwave', 'swstretchhalign');\r
+ s += getStr('shockwave', 'swstretchvalign');\r
+ break;\r
+\r
+ case "wmp":\r
+ s += getBool('wmp', 'autostart', true);\r
+ s += getBool('wmp', 'enabled', false);\r
+ s += getBool('wmp', 'enablecontextmenu', true);\r
+ s += getBool('wmp', 'fullscreen', false);\r
+ s += getBool('wmp', 'invokeurls', true);\r
+ s += getBool('wmp', 'mute', false);\r
+ s += getBool('wmp', 'stretchtofit', false);\r
+ s += getBool('wmp', 'windowlessvideo', false);\r
+ s += getStr('wmp', 'balance');\r
+ s += getStr('wmp', 'baseurl');\r
+ s += getStr('wmp', 'captioningid');\r
+ s += getStr('wmp', 'currentmarker');\r
+ s += getStr('wmp', 'currentposition');\r
+ s += getStr('wmp', 'defaultframe');\r
+ s += getStr('wmp', 'playcount');\r
+ s += getStr('wmp', 'rate');\r
+ s += getStr('wmp', 'uimode');\r
+ s += getStr('wmp', 'volume');\r
+ break;\r
+\r
+ case "rmp":\r
+ s += getBool('rmp', 'autostart', false);\r
+ s += getBool('rmp', 'loop', false);\r
+ s += getBool('rmp', 'autogotourl', true);\r
+ s += getBool('rmp', 'center', false);\r
+ s += getBool('rmp', 'imagestatus', true);\r
+ s += getBool('rmp', 'maintainaspect', false);\r
+ s += getBool('rmp', 'nojava', false);\r
+ s += getBool('rmp', 'prefetch', false);\r
+ s += getBool('rmp', 'shuffle', false);\r
+ s += getStr('rmp', 'console');\r
+ s += getStr('rmp', 'controls');\r
+ s += getStr('rmp', 'numloop');\r
+ s += getStr('rmp', 'scriptcallbacks');\r
+ break;\r
+ }\r
+\r
+ s += getStr(null, 'id');\r
+ s += getStr(null, 'name');\r
+ s += getStr(null, 'src');\r
+ s += getStr(null, 'align');\r
+ s += getStr(null, 'bgcolor');\r
+ s += getInt(null, 'vspace');\r
+ s += getInt(null, 'hspace');\r
+ s += getStr(null, 'width');\r
+ s += getStr(null, 'height');\r
+\r
+ s = s.length > 0 ? s.substring(0, s.length - 1) : s;\r
+\r
+ return s;\r
+}\r
+\r
+function setBool(pl, p, n) {\r
+ if (typeof(pl[n]) == "undefined")\r
+ return;\r
+\r
+ document.forms[0].elements[p + "_" + n].checked = pl[n];\r
+}\r
+\r
+function setStr(pl, p, n) {\r
+ var f = document.forms[0], e = f.elements[(p != null ? p + "_" : '') + n];\r
+\r
+ if (typeof(pl[n]) == "undefined")\r
+ return;\r
+\r
+ if (e.type == "text")\r
+ e.value = pl[n];\r
+ else\r
+ selectByValue(f, (p != null ? p + "_" : '') + n, pl[n]);\r
+}\r
+\r
+function getBool(p, n, d, tv, fv) {\r
+ var v = document.forms[0].elements[p + "_" + n].checked;\r
+\r
+ tv = typeof(tv) == 'undefined' ? 'true' : "'" + jsEncode(tv) + "'";\r
+ fv = typeof(fv) == 'undefined' ? 'false' : "'" + jsEncode(fv) + "'";\r
+\r
+ return (v == d) ? '' : n + (v ? ':' + tv + ',' : ':' + fv + ',');\r
+}\r
+\r
+function getStr(p, n, d) {\r
+ var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];\r
+ var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;\r
+\r
+ if (n == 'src')\r
+ v = tinyMCEPopup.editor.convertURL(v, 'src', null);\r
+\r
+ return ((n == d || v == '') ? '' : n + ":'" + jsEncode(v) + "',");\r
+}\r
+\r
+function getInt(p, n, d) {\r
+ var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];\r
+ var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;\r
+\r
+ return ((n == d || v == '') ? '' : n + ":" + v.replace(/[^0-9]+/g, '') + ",");\r
+}\r
+\r
+function jsEncode(s) {\r
+ s = s.replace(new RegExp('\\\\', 'g'), '\\\\');\r
+ s = s.replace(new RegExp('"', 'g'), '\\"');\r
+ s = s.replace(new RegExp("'", 'g'), "\\'");\r
+\r
+ return s;\r
+}\r
+\r
+function generatePreview(c) {\r
+ var f = document.forms[0], p = document.getElementById('prev'), h = '', cls, pl, n, type, codebase, wp, hp, nw, nh;\r
+\r
+ p.innerHTML = '<!-- x --->';\r
+\r
+ nw = parseInt(f.width.value);\r
+ nh = parseInt(f.height.value);\r
+\r
+ if (f.width.value != "" && f.height.value != "") {\r
+ if (f.constrain.checked) {\r
+ if (c == 'width' && oldWidth != 0) {\r
+ wp = nw / oldWidth;\r
+ nh = Math.round(wp * nh);\r
+ f.height.value = nh;\r
+ } else if (c == 'height' && oldHeight != 0) {\r
+ hp = nh / oldHeight;\r
+ nw = Math.round(hp * nw);\r
+ f.width.value = nw;\r
+ }\r
+ }\r
+ }\r
+\r
+ if (f.width.value != "")\r
+ oldWidth = nw;\r
+\r
+ if (f.height.value != "")\r
+ oldHeight = nh;\r
+\r
+ // After constrain\r
+ pl = serializeParameters();\r
+\r
+ switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
+ case "flash":\r
+ cls = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';\r
+ codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';\r
+ type = 'application/x-shockwave-flash';\r
+ break;\r
+\r
+ case "shockwave":\r
+ cls = 'clsid:166B1BCA-3F9C-11CF-8075-444553540000';\r
+ codebase = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';\r
+ type = 'application/x-director';\r
+ break;\r
+\r
+ case "qt":\r
+ cls = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';\r
+ codebase = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';\r
+ type = 'video/quicktime';\r
+ break;\r
+\r
+ case "wmp":\r
+ cls = ed.getParam('media_wmp6_compatible') ? 'clsid:05589FA1-C356-11CE-BF01-00AA0055595A' : 'clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6';\r
+ codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';\r
+ type = 'application/x-mplayer2';\r
+ break;\r
+\r
+ case "rmp":\r
+ cls = 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';\r
+ codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';\r
+ type = 'audio/x-pn-realaudio-plugin';\r
+ break;\r
+ }\r
+\r
+ if (pl == '') {\r
+ p.innerHTML = '';\r
+ return;\r
+ }\r
+\r
+ pl = tinyMCEPopup.editor.plugins.media._parse(pl);\r
+\r
+ if (!pl.src) {\r
+ p.innerHTML = '';\r
+ return;\r
+ }\r
+\r
+ pl.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(pl.src);\r
+ pl.width = !pl.width ? 100 : pl.width;\r
+ pl.height = !pl.height ? 100 : pl.height;\r
+ pl.id = !pl.id ? 'obj' : pl.id;\r
+ pl.name = !pl.name ? 'eobj' : pl.name;\r
+ pl.align = !pl.align ? '' : pl.align;\r
+\r
+ h += '<object classid="clsid:' + cls + '" codebase="' + codebase + '" width="' + pl.width + '" height="' + pl.height + '" id="' + pl.id + '" name="' + pl.name + '" align="' + pl.align + '">';\r
+\r
+ for (n in pl) {\r
+ h += '<param name="' + n + '" value="' + pl[n] + '">';\r
+\r
+ // Add extra url parameter if it's an absolute URL\r
+ if (n == 'src' && pl[n].indexOf('://') != -1)\r
+ h += '<param name="url" value="' + pl[n] + '" />';\r
+ }\r
+\r
+ h += '<embed type="' + type + '" ';\r
+\r
+ for (n in pl)\r
+ h += n + '="' + pl[n] + '" ';\r
+\r
+ h += '></embed></object>';\r
+\r
+ p.innerHTML = "<!-- x --->" + h;\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCE.addI18n('en.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"General",\r
+advanced:"Advanced",\r
+file:"File/URL",\r
+list:"List",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#media_dlg.title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="js/media.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/validate.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
+ <link href="css/media.css" rel="stylesheet" type="text/css" />\r
+ <base target="_self" />\r
+</head>\r
+<body style="display: none">\r
+ <form onsubmit="insertMedia();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');generatePreview();" onmousedown="return false;">{#media_dlg.general}</a></span></li>\r
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#media_dlg.advanced}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#media_dlg.general}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td><label for="media_type">{#media_dlg.type}</label></td>\r
+ <td>\r
+ <select id="media_type" name="media_type" onchange="changedType(this.value);generatePreview();">\r
+ <option value="flash">Flash</option>\r
+ <!-- <option value="flv">Flash video (FLV)</option> -->\r
+ <option value="qt">Quicktime</option>\r
+ <option value="shockwave">Shockware</option>\r
+ <option value="wmp">Windows Media</option>\r
+ <option value="rmp">Real Media</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="src">{#media_dlg.file}</label></td>\r
+ <td>\r
+ <table border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td><input id="src" name="src" type="text" value="" class="mceFocus" onchange="switchType(this.value);generatePreview();" /></td>\r
+ <td id="filebrowsercontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ <tr id="linklistrow">\r
+ <td><label for="linklist">{#media_dlg.list}</label></td>\r
+ <td id="linklistcontainer"> </td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="width">{#media_dlg.size}</label></td>\r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="text" id="width" name="width" value="" class="size" onchange="generatePreview('width');" /> x <input type="text" id="height" name="height" value="" class="size" onchange="generatePreview('height');" /></td>\r
+ <td> <input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>\r
+ <td><label id="constrainlabel" for="constrain">{#media_dlg.constrain_proportions}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset>\r
+ <legend>{#media_dlg.preview}</legend>\r
+ <div id="prev"></div>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="advanced_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#media_dlg.advanced}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0" width="100%">\r
+ <tr>\r
+ <td><label for="id">{#media_dlg.id}</label></td>\r
+ <td><input type="text" id="id" name="id" onchange="generatePreview();" /></td>\r
+ <td><label for="name">{#media_dlg.name}</label></td>\r
+ <td><input type="text" id="name" name="name" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="align">{#media_dlg.align}</label></td>\r
+ <td>\r
+ <select id="align" name="align" onchange="generatePreview();">\r
+ <option value="">{#not_set}</option> \r
+ <option value="top">{#media_dlg.align_top}</option>\r
+ <option value="right">{#media_dlg.align_right}</option>\r
+ <option value="bottom">{#media_dlg.align_bottom}</option>\r
+ <option value="left">{#media_dlg.align_left}</option>\r
+ </select>\r
+ </td>\r
+\r
+ <td><label for="bgcolor">{#media_dlg.bgcolor}</label></td>\r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');generatePreview();" /></td>\r
+ <td id="bgcolor_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="vspace">{#media_dlg.vspace}</label></td>\r
+ <td><input type="text" id="vspace" name="vspace" class="number" onchange="generatePreview();" /></td>\r
+ <td><label for="hspace">{#media_dlg.hspace}</label></td>\r
+ <td><input type="text" id="hspace" name="hspace" class="number" onchange="generatePreview();" /></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset id="flash_options">\r
+ <legend>{#media_dlg.flash_options}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td><label for="flash_quality">{#media_dlg.quality}</label></td>\r
+ <td>\r
+ <select id="flash_quality" name="flash_quality" onchange="generatePreview();">\r
+ <option value="">{#not_set}</option> \r
+ <option value="high">high</option>\r
+ <option value="low">low</option>\r
+ <option value="autolow">autolow</option>\r
+ <option value="autohigh">autohigh</option>\r
+ <option value="best">best</option>\r
+ </select>\r
+ </td>\r
+\r
+ <td><label for="flash_scale">{#media_dlg.scale}</label></td>\r
+ <td>\r
+ <select id="flash_scale" name="flash_scale" onchange="generatePreview();">\r
+ <option value="">{#not_set}</option> \r
+ <option value="showall">showall</option>\r
+ <option value="noborder">noborder</option>\r
+ <option value="exactfit">exactfit</option>\r
+ <option value="noscale">noscale</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="flash_wmode">{#media_dlg.wmode}</label></td>\r
+ <td>\r
+ <select id="flash_wmode" name="flash_wmode" onchange="generatePreview();">\r
+ <option value="">{#not_set}</option> \r
+ <option value="window">window</option>\r
+ <option value="opaque">opaque</option>\r
+ <option value="transparent">transparent</option>\r
+ </select>\r
+ </td>\r
+\r
+ <td><label for="flash_salign">{#media_dlg.salign}</label></td>\r
+ <td>\r
+ <select id="flash_salign" name="flash_salign" onchange="generatePreview();">\r
+ <option value="">{#not_set}</option> \r
+ <option value="l">{#media_dlg.align_left}</option>\r
+ <option value="t">{#media_dlg.align_top}</option>\r
+ <option value="r">{#media_dlg.align_right}</option>\r
+ <option value="b">{#media_dlg.align_bottom}</option>\r
+ <option value="tl">{#media_dlg.align_top_left}</option>\r
+ <option value="tr">{#media_dlg.align_top_right}</option>\r
+ <option value="bl">{#media_dlg.align_bottom_left}</option>\r
+ <option value="br">{#media_dlg.align_bottom_right}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="flash_play" name="flash_play" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="flash_play">{#media_dlg.play}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="flash_loop" name="flash_loop" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="flash_loop">{#media_dlg.loop}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="flash_menu" name="flash_menu" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="flash_menu">{#media_dlg.menu}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="flash_swliveconnect" name="flash_swliveconnect" onchange="generatePreview();" /></td>\r
+ <td><label for="flash_swliveconnect">{#media_dlg.liveconnect}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+\r
+ <table>\r
+ <tr>\r
+ <td><label for="flash_base">{#media_dlg.base}</label></td>\r
+ <td><input type="text" id="flash_base" name="flash_base" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="flash_flashvars">{#media_dlg.flashvars}</label></td>\r
+ <td><input type="text" id="flash_flashvars" name="flash_flashvars" onchange="generatePreview();" /></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset id="flv_options">\r
+ <legend>{#media_dlg.flv_options}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td><label for="flv_scalemode">{#media_dlg.flv_scalemode}</label></td>\r
+ <td>\r
+ <select id="flv_scalemode" name="flv_scalemode" onchange="generatePreview();">\r
+ <option value="">{#not_set}</option> \r
+ <option value="none">none</option>\r
+ <option value="double">double</option>\r
+ <option value="full">full</option>\r
+ </select>\r
+ </td>\r
+\r
+ <td><label for="flv_buffer">{#media_dlg.flv_buffer}</label></td>\r
+ <td><input type="text" id="flv_buffer" name="flv_buffer" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="flv_startimage">{#media_dlg.flv_startimage}</label></td>\r
+ <td><input type="text" id="flv_startimage" name="flv_startimage" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="flv_starttime">{#media_dlg.flv_starttime}</label></td>\r
+ <td><input type="text" id="flv_starttime" name="flv_starttime" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="flv_defaultvolume">{#media_dlg.flv_defaultvolume}</label></td>\r
+ <td><input type="text" id="flv_defaultvolume" name="flv_defaultvolume" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="flv_starttime">{#media_dlg.flv_starttime}</label></td>\r
+ <td><input type="text" id="flv_starttime" name="flv_starttime" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="flv_hiddengui" name="flv_hiddengui" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="flv_hiddengui">{#media_dlg.flv_hiddengui}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="flv_autostart" name="flv_autostart" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="flv_autostart">{#media_dlg.flv_autostart}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="flv_loop" name="flv_loop" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="flv_loop">{#media_dlg.flv_loop}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="flv_showscalemodes" name="flv_showscalemodes" onchange="generatePreview();" /></td>\r
+ <td><label for="flv_showscalemodes">{#media_dlg.flv_showscalemodes}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="flv_smoothvideo" name="flash_flv_flv_smoothvideosmoothvideo" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="flv_smoothvideo">{#media_dlg.flv_smoothvideo}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="flv_jscallback" name="flv_jscallback" onchange="generatePreview();" /></td>\r
+ <td><label for="flv_jscallback">{#media_dlg.flv_jscallback}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset id="qt_options">\r
+ <legend>{#media_dlg.qt_options}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="qt_loop" name="qt_loop" onchange="generatePreview();" /></td>\r
+ <td><label for="qt_loop">{#media_dlg.loop}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="qt_autoplay" name="qt_autoplay" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="qt_autoplay">{#media_dlg.play}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="qt_cache" name="qt_cache" onchange="generatePreview();" /></td>\r
+ <td><label for="qt_cache">{#media_dlg.cache}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="qt_controller" name="qt_controller" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="qt_controller">{#media_dlg.controller}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="qt_correction" name="qt_correction" onchange="generatePreview();" /></td>\r
+ <td><label for="qt_correction">{#media_dlg.correction}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="qt_enablejavascript" name="qt_enablejavascript" onchange="generatePreview();" /></td>\r
+ <td><label for="qt_enablejavascript">{#media_dlg.enablejavascript}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="qt_kioskmode" name="qt_kioskmode" onchange="generatePreview();" /></td>\r
+ <td><label for="qt_kioskmode">{#media_dlg.kioskmode}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="qt_autohref" name="qt_autohref" onchange="generatePreview();" /></td>\r
+ <td><label for="qt_autohref">{#media_dlg.autohref}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="qt_playeveryframe" name="qt_playeveryframe" onchange="generatePreview();" /></td>\r
+ <td><label for="qt_playeveryframe">{#media_dlg.playeveryframe}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="qt_targetcache" name="qt_targetcache" onchange="generatePreview();" /></td>\r
+ <td><label for="qt_targetcache">{#media_dlg.targetcache}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="qt_scale">{#media_dlg.scale}</label></td>\r
+ <td><select id="qt_scale" name="qt_scale" class="mceEditableSelect" onchange="generatePreview();">\r
+ <option value="">{#not_set}</option> \r
+ <option value="tofit">tofit</option>\r
+ <option value="aspect">aspect</option>\r
+ </select>\r
+ </td>\r
+\r
+ <td colspan="2"> </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="qt_starttime">{#media_dlg.starttime}</label></td>\r
+ <td><input type="text" id="qt_starttime" name="qt_starttime" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="qt_endtime">{#media_dlg.endtime}</label></td>\r
+ <td><input type="text" id="qt_endtime" name="qt_endtime" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="qt_target">{#media_dlg.target}</label></td>\r
+ <td><input type="text" id="qt_target" name="qt_target" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="qt_href">{#media_dlg.href}</label></td>\r
+ <td><input type="text" id="qt_href" name="qt_href" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="qt_qtsrcchokespeed">{#media_dlg.qtsrcchokespeed}</label></td>\r
+ <td><input type="text" id="qt_qtsrcchokespeed" name="qt_qtsrcchokespeed" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="qt_volume">{#media_dlg.volume}</label></td>\r
+ <td><input type="text" id="qt_volume" name="qt_volume" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="qt_qtsrc">{#media_dlg.qtsrc}</label></td>\r
+ <td colspan="4">\r
+ <table border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td><input type="text" id="qt_qtsrc" name="qt_qtsrc" onchange="generatePreview();" /></td>\r
+ <td id="qtsrcfilebrowsercontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset id="wmp_options">\r
+ <legend>{#media_dlg.wmp_options}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="wmp_autostart" name="wmp_autostart" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="wmp_autostart">{#media_dlg.autostart}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="wmp_enabled" name="wmp_enabled" onchange="generatePreview();" /></td>\r
+ <td><label for="wmp_enabled">{#media_dlg.enabled}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="wmp_enablecontextmenu" name="wmp_enablecontextmenu" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="wmp_enablecontextmenu">{#media_dlg.menu}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="wmp_fullscreen" name="wmp_fullscreen" onchange="generatePreview();" /></td>\r
+ <td><label for="wmp_fullscreen">{#media_dlg.fullscreen}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="wmp_invokeurls" name="wmp_invokeurls" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="wmp_invokeurls">{#media_dlg.invokeurls}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="wmp_mute" name="wmp_mute" onchange="generatePreview();" /></td>\r
+ <td><label for="wmp_mute">{#media_dlg.mute}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="wmp_stretchtofit" name="wmp_stretchtofit" onchange="generatePreview();" /></td>\r
+ <td><label for="wmp_stretchtofit">{#media_dlg.stretchtofit}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="wmp_windowlessvideo" name="wmp_windowlessvideo" onchange="generatePreview();" /></td>\r
+ <td><label for="wmp_windowlessvideo">{#media_dlg.windowlessvideo}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="wmp_balance">{#media_dlg.balance}</label></td>\r
+ <td><input type="text" id="wmp_balance" name="wmp_balance" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="wmp_baseurl">{#media_dlg.baseurl}</label></td>\r
+ <td><input type="text" id="wmp_baseurl" name="wmp_baseurl" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="wmp_captioningid">{#media_dlg.captioningid}</label></td>\r
+ <td><input type="text" id="wmp_captioningid" name="wmp_captioningid" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="wmp_currentmarker">{#media_dlg.currentmarker}</label></td>\r
+ <td><input type="text" id="wmp_currentmarker" name="wmp_currentmarker" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="wmp_currentposition">{#media_dlg.currentposition}</label></td>\r
+ <td><input type="text" id="wmp_currentposition" name="wmp_currentposition" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="wmp_defaultframe">{#media_dlg.defaultframe}</label></td>\r
+ <td><input type="text" id="wmp_defaultframe" name="wmp_defaultframe" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="wmp_playcount">{#media_dlg.playcount}</label></td>\r
+ <td><input type="text" id="wmp_playcount" name="wmp_playcount" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="wmp_rate">{#media_dlg.rate}</label></td>\r
+ <td><input type="text" id="wmp_rate" name="wmp_rate" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="wmp_uimode">{#media_dlg.uimode}</label></td>\r
+ <td><input type="text" id="wmp_uimode" name="wmp_uimode" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="wmp_volume">{#media_dlg.volume}</label></td>\r
+ <td><input type="text" id="wmp_volume" name="wmp_volume" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset id="rmp_options">\r
+ <legend>{#media_dlg.rmp_options}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="rmp_autostart" name="rmp_autostart" onchange="generatePreview();" /></td>\r
+ <td><label for="rmp_autostart">{#media_dlg.autostart}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="rmp_loop" name="rmp_loop" onchange="generatePreview();" /></td>\r
+ <td><label for="rmp_loop">{#media_dlg.loop}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="rmp_autogotourl" name="rmp_autogotourl" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="rmp_autogotourl">{#media_dlg.autogotourl}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="rmp_center" name="rmp_center" onchange="generatePreview();" /></td>\r
+ <td><label for="rmp_center">{#media_dlg.center}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="rmp_imagestatus" name="rmp_imagestatus" checked="checked" onchange="generatePreview();" /></td>\r
+ <td><label for="rmp_imagestatus">{#media_dlg.imagestatus}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="rmp_maintainaspect" name="rmp_maintainaspect" onchange="generatePreview();" /></td>\r
+ <td><label for="rmp_maintainaspect">{#media_dlg.maintainaspect}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="rmp_nojava" name="rmp_nojava" onchange="generatePreview();" /></td>\r
+ <td><label for="rmp_nojava">{#media_dlg.nojava}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="rmp_prefetch" name="rmp_prefetch" onchange="generatePreview();" /></td>\r
+ <td><label for="rmp_prefetch">{#media_dlg.prefetch}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="rmp_shuffle" name="rmp_shuffle" onchange="generatePreview();" /></td>\r
+ <td><label for="rmp_shuffle">{#media_dlg.shuffle}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ \r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="rmp_console">{#media_dlg.console}</label></td>\r
+ <td><input type="text" id="rmp_console" name="rmp_console" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="rmp_controls">{#media_dlg.controls}</label></td>\r
+ <td><input type="text" id="rmp_controls" name="rmp_controls" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="rmp_numloop">{#media_dlg.numloop}</label></td>\r
+ <td><input type="text" id="rmp_numloop" name="rmp_numloop" onchange="generatePreview();" /></td>\r
+\r
+ <td><label for="rmp_scriptcallbacks">{#media_dlg.scriptcallbacks}</label></td>\r
+ <td><input type="text" id="rmp_scriptcallbacks" name="rmp_scriptcallbacks" onchange="generatePreview();" /></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <fieldset id="shockwave_options">\r
+ <legend>{#media_dlg.shockwave_options}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td><label for="shockwave_swstretchstyle">{#media_dlg.swstretchstyle}</label></td>\r
+ <td>\r
+ <select id="shockwave_swstretchstyle" name="shockwave_swstretchstyle" onchange="generatePreview();">\r
+ <option value="none">{#not_set}</option>\r
+ <option value="meet">Meet</option>\r
+ <option value="fill">Fill</option>\r
+ <option value="stage">Stage</option>\r
+ </select>\r
+ </td>\r
+\r
+ <td><label for="shockwave_swvolume">{#media_dlg.volume}</label></td>\r
+ <td><input type="text" id="shockwave_swvolume" name="shockwave_swvolume" onchange="generatePreview();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="shockwave_swstretchhalign">{#media_dlg.swstretchhalign}</label></td>\r
+ <td>\r
+ <select id="shockwave_swstretchhalign" name="shockwave_swstretchhalign" onchange="generatePreview();">\r
+ <option value="none">{#not_set}</option>\r
+ <option value="left">{#media_dlg.align_left}</option>\r
+ <option value="center">{#media_dlg.align_center}</option>\r
+ <option value="right">{#media_dlg.align_right}</option>\r
+ </select>\r
+ </td>\r
+\r
+ <td><label for="shockwave_swstretchvalign">{#media_dlg.swstretchvalign}</label></td>\r
+ <td>\r
+ <select id="shockwave_swstretchvalign" name="shockwave_swstretchvalign" onchange="generatePreview();">\r
+ <option value="none">{#not_set}</option>\r
+ <option value="meet">Meet</option>\r
+ <option value="fill">Fill</option>\r
+ <option value="stage">Stage</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="shockwave_autostart" name="shockwave_autostart" onchange="generatePreview();" checked="checked" /></td>\r
+ <td><label for="shockwave_autostart">{#media_dlg.autostart}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="shockwave_sound" name="shockwave_sound" onchange="generatePreview();" checked="checked" /></td>\r
+ <td><label for="shockwave_sound">{#media_dlg.sound}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+\r
+\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="shockwave_swliveconnect" name="shockwave_swliveconnect" onchange="generatePreview();" /></td>\r
+ <td><label for="shockwave_swliveconnect">{#media_dlg.liveconnect}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+\r
+ <td colspan="2">\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input type="checkbox" class="checkbox" id="shockwave_progress" name="shockwave_progress" onchange="generatePreview();" checked="checked" /></td>\r
+ <td><label for="shockwave_progress">{#media_dlg.progress}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+ </form>\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.MoodleImagePlugin',{init:function(ed,url){course_id=tinyMCE.activeEditor.getParam('moodleimage_course_id');ed.addCommand('mceMoodleImage',function(){ed.windowManager.open({file:url+'/insert_image.php?id='+course_id,width:600+ed.getLang('example.delta_width',0),height:500+ed.getLang('example.delta_height',0),inline:1},{plugin_url:url,some_custom_arg:'custom arg'});});ed.addButton('moodleimage',{title:'Insert Image',cmd:'mceMoodleImage',image:url+'/img/image.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('moodleimage',n.nodeName=='IMG');});},createControl:function(n,cm){return null;},getInfo:function(){return{longname:'Moodle Image plugin',author:'Glen Davies',authorurl:'http://www.canterbury.ac.nz',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',version:"1.0"};}});tinymce.PluginManager.add('moodleimage',tinymce.plugins.MoodleImagePlugin);})();
\ No newline at end of file
--- /dev/null
+(function() {\r
+ // Load plugin specific language pack\r
+ //tinymce.PluginManager.requireLangPack('example');\r
+\r
+ tinymce.create('tinymce.plugins.MoodleImagePlugin', {\r
+ /**\r
+ * Initializes the plugin, this will be executed after the plugin has been created.\r
+ * This call is done before the editor instance has finished it's initialization so use the onInit event\r
+ * of the editor instance to intercept that event.\r
+ *\r
+ * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.\r
+ * @param {string} url Absolute URL to where the plugin is located.\r
+ */\r
+ init : function(ed, url) {\r
+ // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');\r
+ course_id = tinyMCE.activeEditor.getParam('moodleimage_course_id');\r
+ ed.addCommand('mceMoodleImage', function() {\r
+ ed.windowManager.open({\r
+ \r
+ file : url + '/insert_image.php?id=' + course_id,\r
+ //file : '/moodle/lib/editor/htmlarea/popups/insert_image.php?id=' + course_id,\r
+ width : 600 + ed.getLang('example.delta_width', 0),\r
+ height : 500 + ed.getLang('example.delta_height', 0),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url, // Plugin absolute URL\r
+ some_custom_arg : 'custom arg' // Custom argument\r
+ });\r
+ });\r
+\r
+ // Register example button\r
+ ed.addButton('moodleimage', {\r
+ title : 'Insert Image',\r
+ cmd : 'mceMoodleImage',\r
+ image : url + '/img/image.gif'\r
+ });\r
+ \r
+\r
+ // Add a node change handler, selects the button in the UI when a image is selected\r
+ ed.onNodeChange.add(function(ed, cm, n) {\r
+ cm.setActive('moodleimage', n.nodeName == 'IMG');\r
+ });\r
+ },\r
+\r
+ /**\r
+ * Creates control instances based in the incomming name. This method is normally not\r
+ * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons\r
+ * but you sometimes need to create more complex controls like listboxes, split buttons etc then this\r
+ * method can be used to create those.\r
+ *\r
+ * @param {String} n Name of the control to create.\r
+ * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.\r
+ * @return {tinymce.ui.Control} New control instance or null if no control was created.\r
+ */\r
+ createControl : function(n, cm) {\r
+ return null;\r
+ },\r
+\r
+ /**\r
+ * Returns information about the plugin as a name/value array.\r
+ * The current keys are longname, author, authorurl, infourl and version.\r
+ *\r
+ * @return {Object} Name/value array containing information about the plugin.\r
+ */\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Moodle Image plugin',\r
+ author : 'Glen Davies',\r
+ authorurl : 'http://www.canterbury.ac.nz',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',\r
+ version : "1.0"\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('moodleimage', tinymce.plugins.MoodleImagePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+<?php // $Id$\r
+\r
+ require("../../../../../../../config.php");\r
+\r
+\r
+ if (!empty($_SESSION['id'])) {\r
+ $id = optional_param('id', $_SESSION['id'], PARAM_INT);\r
+ } else {\r
+ $id = optional_param('id', SITEID, PARAM_INT);\r
+ }\r
+\r
+ require_login($id);\r
+ require_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $id));\r
+\r
+ @header('Content-Type: text/html; charset=utf-8');\r
+\r
+ $upload_max_filesize = get_max_upload_file_size($CFG->maxbytes);\r
+\r
+?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+<html>\r
+<head>\r
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />\r
+<title>{#moodleimage_dlg.title}</title>\r
+\r
+<script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+<script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+<script type="text/javascript" src="js/moodleimage.js"></script>\r
+<base target="_self" />\r
+<script type="text/javascript">\r
+//<![CDATA[\r
+var preview_window = null;\r
+\r
+\r
+function onPreview() {\r
+ var f_url = document.getElementById("f_url");\r
+ var url = f_url.value;\r
+ if (!url) {\r
+ alert("<?php print_string("enterurlfirst","editor");?>");\r
+ f_url.focus();\r
+ return false;\r
+ }\r
+ var img = new Image();\r
+ img.src = url;\r
+ var win = null;\r
+ if (!document.all) {\r
+ win = window.open("about:blank", "ha_imgpreview", "toolbar=no,menubar=no,personalbar=no,innerWidth=100,innerHeight=100,scrollbars=no,resizable=yes");\r
+ } else {\r
+ win = window.open("about:blank", "ha_imgpreview", "channelmode=no,directories=no,height=100,width=100,location=no,menubar=no,resizable=yes,scrollbars=no,toolbar=no");\r
+ }\r
+ preview_window = win;\r
+ var doc = win.document;\r
+ var body = doc.body;\r
+ if (body) {\r
+ body.innerHTML = "";\r
+ body.style.padding = "0px";\r
+ body.style.margin = "0px";\r
+ var el = doc.createElement("img");\r
+ el.src = url;\r
+\r
+ var table = doc.createElement("table");\r
+ body.appendChild(table);\r
+ table.style.width = "100%";\r
+ table.style.height = "100%";\r
+ var tbody = doc.createElement("tbody");\r
+ table.appendChild(tbody);\r
+ var tr = doc.createElement("tr");\r
+ tbody.appendChild(tr);\r
+ var td = doc.createElement("td");\r
+ tr.appendChild(td);\r
+ td.style.textAlign = "center";\r
+\r
+ td.appendChild(el);\r
+ win.resizeTo(el.offsetWidth + 30, el.offsetHeight + 30);\r
+ }\r
+ win.focus();\r
+ return false;\r
+};\r
+\r
+function checkvalue(elm,formname) {\r
+ var el = document.getElementById(elm);\r
+ if(!el.value) {\r
+ alert("Nothing to do!");\r
+ el.focus();\r
+ return false;\r
+ }\r
+}\r
+\r
+function submit_form(dothis) {\r
+ if(dothis == "delete") {\r
+ window.ibrowser.document.dirform.action.value = "delete";\r
+ }\r
+ if(dothis == "move") {\r
+ window.ibrowser.document.dirform.action.value = "move";\r
+ }\r
+ if(dothis == "zip") {\r
+ window.ibrowser.document.dirform.action.value = "zip";\r
+ }\r
+\r
+ window.ibrowser.document.dirform.submit();\r
+ return false;\r
+}\r
+\r
+//]]>\r
+</script>\r
+<style type="text/css">\r
+html, body {\r
+margin: 2px;\r
+background-color: #F0F0EE;\r
+font-size: 11px;\r
+}\r
+.title {\r
+background-color: #ddddff;\r
+padding: 5px;\r
+border-bottom: 1px solid black;\r
+font-family: Tahoma, sans-serif;\r
+font-weight: bold;\r
+font-size: 14px;\r
+color: black;\r
+}\r
+td, input, select, button {\r
+font-family: Tahoma, Verdana, sans-serif;\r
+font-size: 11px;\r
+}\r
+button { width: 70px; }\r
+.space { padding: 2px; }\r
+form { margin-bottom: 0px; margin-top: 0px; }\r
+</style>\r
+</head>\r
+<body>\r
+\r
+ <form action="" method="get" id="first">\r
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td width="15%" align="right"><?php print_string("imageurl","editor");?>:</td>\r
+ <td width="60%"><input name="f_url" type="text" id="f_url" style="width: 100%;" /></td>\r
+ <td width="23%" align="center">\r
+ <button name="btnOK" type="button" id="btnOK" onclick="return MoodleImageDialog.insert();"><?php print_string("ok","editor") ?></button></td>\r
+ </tr>\r
+ <tr>\r
+ <td align="right"><?php print_string("alternatetext","editor");?>:</td>\r
+ <td><input name="f_alt" type="text" id="f_alt" style="width: 100%;" /></td>\r
+ <td align="center">\r
+ <button name="btnCancel" type="button" id="btnCancel" onclick="return tinyMCEPopup.close();"><?php print_string("cancel","editor") ?></button></td>\r
+ </tr>\r
+ </table>\r
+ <div class="space"></div>\r
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td width="32%" valign="top">\r
+ <fieldset style="height:60px"><legend><?php print_string("layout","editor");?></legend>\r
+ <div class="space"></div>\r
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td width="40%" align="right"><?php print_string("alignment","editor");?>:</td>\r
+ <td width="60%">\r
+ <select size="1" name="f_align" id="f_align"\r
+ title="Positioning of this image">\r
+ <option value="" ><?php print_string("notset","editor") ?></option>\r
+ <option value="left" ><?php print_string("left","editor") ?></option>\r
+ <option value="right" ><?php print_string("right","editor") ?></option>\r
+ <option value="texttop" ><?php print_string("texttop","editor") ?></option>\r
+ <option value="middle" ><?php print_string("middle","editor") ?></option>\r
+ <option value="baseline" selected="1" ><?php print_string("baseline","editor") ?></option>\r
+ <option value="absbottom" ><?php print_string("absbottom","editor") ?></option>\r
+ <option value="bottom" ><?php print_string("bottom","editor") ?></option>\r
+ <option value="middle" ><?php print_string("middle","editor") ?></option>\r
+ <option value="top" ><?php print_string("top","editor") ?></option>\r
+ </select></td>\r
+ </tr>\r
+ <tr>\r
+ <td width="40%" align="right"><?php print_string("borderthickness","editor") ?>:</td>\r
+ <td width="60%">\r
+ <input type="text" id="f_border" name="f_border" size="5" /></td>\r
+ </tr>\r
+ </table><div class="space"></div>\r
+ </fieldset> </td>\r
+ <td width="34%" valign="top">\r
+ <fieldset style="height:60px"><legend><?php print_string("spacing","editor");?></legend>\r
+ <div class="space"></div>\r
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td width="40%" align="right"><?php print_string("horizontal","editor");?>: </td>\r
+ <td width="60%">\r
+ <input name="f_horiz" type="text" id="f_horiz" size="5" />\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td width="40%" align="right"><?php print_string("vertical","editor");?>:</td>\r
+ <td width="60%">\r
+ <input name="f_vert" type="text" id="f_vert" size="5" /></td>\r
+ </tr>\r
+ </table><div class="space"></div></fieldset></td>\r
+ <td width="34%" valign="top">\r
+ <fieldset style="height:60px"><legend><?php print_string("size","editor");?></legend>\r
+ <div class="space"></div>\r
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td width="40%" align="right"><?php print_string("width","editor");?>:</td>\r
+ <td width="60%">\r
+ <input name="f_width" type="text" id="f_width" size="5" />\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td width="40%" align="right"><?php print_string("height","editor");?>:</td>\r
+ <td width="60%">\r
+ <input name="f_height" type="text" id="f_height" size="5" />\r
+ \r
+ </td>\r
+ </tr>\r
+ </table><div class="space"></div>\r
+ </fieldset></td>\r
+ </tr>\r
+ </table></form>\r
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td width="55%" valign="top"><?php\r
+ print_string("filebrowser","editor");\r
+ echo "<br />";\r
+ echo "<iframe id=\"ibrowser\" name=\"ibrowser\" src=\"{$CFG->wwwroot}/lib/editor/tinymce/jscripts/tiny_mce/coursefiles.php?usecheckboxes=1&id=$id\" style=\"width: 100%; height: 200px;\"></iframe>";\r
+ ?>\r
+ </td>\r
+ <td width="45%" valign="top"><?php print_string("preview","editor");?>:<br />\r
+ <iframe id="ipreview" name="ipreview" src="about:blank" style="width: 100%; height: 200px;"></iframe>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td width="55%"><div class="space"></div>\r
+ <?php if(has_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $id))) { ?>\r
+ <table border="0" cellpadding="2" cellspacing="0">\r
+ <tr><td><?php print_string("selection","editor");?>: </td>\r
+ <td><form id="idelete">\r
+ <input name="btnDelete" type="submit" id="btnDelete" value="<?php print_string("delete","editor");?>" onclick="return submit_form('delete');" /></form></td>\r
+ <td><form id="imove">\r
+ <input name="btnMove" type="submit" id="btnMove" value="<?php print_string("move","editor");?>" onclick="return submit_form('move');" /></td>\r
+ <td><form id="izip">\r
+ <input name="btnZip" type="submit" id="btnZip" value="<?php print_string("zip","editor");?>" onclick="return submit_form('zip');" /></form></td>\r
+ <td><form method="post" action="../coursefiles.php" target="ibrowser">\r
+ <input type="hidden" name="id" value="<?php print($id);?>" />\r
+ <input type="hidden" name="wdir" value="" />\r
+ <input type="hidden" id="irename" name="file" value="" />\r
+ <input type="hidden" name="action" value="rename" />\r
+ <input type="hidden" name="sesskey" value="<?php p($USER->sesskey) ?>" />\r
+ <input name="btnRename" type="submit" id="btnRename" value="<?php print_string("rename","editor");?>" /></form></td>\r
+ <tr></table>\r
+ <br />\r
+ <?php\r
+ } else {\r
+ print "";\r
+ } ?>\r
+ </td>\r
+ <td width="45%" rowspan="2" valign="top"><fieldset>\r
+ <legend><?php print_string("properties","editor");?></legend>\r
+ <div class="space"></div>\r
+ <div class="space"></div>\r
+ <?php print_string("size","editor");?>:\r
+ <input type="text" id="isize" name="isize" size="10" style="background: transparent; border: none;" />\r
+ <?php print_string("type","editor");?>: <input type="text" id="itype" name="itype" size="10" style="background: transparent; border: none;" />\r
+ <div class="space"></div>\r
+ <div class="space"></div>\r
+ </fieldset></td>\r
+ </tr>\r
+ <tr>\r
+ <td height="22">\r
+ <form id="cfolder" action="<?php echo $CFG->wwwroot;?>/lib/editor/tinymce/jscripts/tiny_mce/coursefiles.php" method="post" target="ibrowser">\r
+ <input type="hidden" name="id" value="<?php print($id);?>" />\r
+ <input type="hidden" name="wdir" value="" />\r
+ <input type="hidden" name="action" value="mkdir" />\r
+ <input type="hidden" name="sesskey" value="<?php p($USER->sesskey) ?>" />\r
+ \r
+ <input name="name" type="text" id="foldername" size="35" />\r
+ <input name="btnCfolder" type="submit" id="btnCfolder" value="Create_folder" onclick="return checkvalue('foldername','cfolder');" />\r
+ \r
+ </form>\r
+ <div class="space"></div>\r
+ <form action="<?php echo $CFG->wwwroot;?>/lib/editor/tinymce/jscripts/tiny_mce/coursefiles.php?id=<?php print($id);?>" method="post" enctype="multipart/form-data" target="ibrowser" id="uploader">\r
+ <input type="hidden" name="MAX_FILE_SIZE" value="<?php print($upload_max_filesize);?>" />\r
+ <input type="hidden" name="id" VALUE="<?php print($id);?>" />\r
+ <input type="hidden" name="wdir" value="" />\r
+ <input type="hidden" name="action" value="upload" />\r
+ <input type="hidden" name="sesskey" value="<?php p($USER->sesskey) ?>" />\r
+ <input type="file" name="userfile" id="userfile" size="35" />\r
+ <input name="save" type="submit" id="save" onclick="return checkvalue('userfile','uploader');" value="<?php print_string("upload","editor");?>" />\r
+ \r
+ </form>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ <p> </p>\r
+</body>\r
+</html>\r
--- /dev/null
+var ImageDialog = {\r
+ preInit : function() {\r
+ var url;\r
+\r
+ tinyMCEPopup.requireLangPack();\r
+\r
+ if (url = tinyMCEPopup.getParam("external_image_list_url"))\r
+ document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
+ },\r
+\r
+ init : function(ed) {\r
+ var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();\r
+\r
+ tinyMCEPopup.resizeToInnerSize();\r
+ this.fillClassList('class_list');\r
+ this.fillFileList('src_list', 'tinyMCEImageList');\r
+ this.fillFileList('over_list', 'tinyMCEImageList');\r
+ this.fillFileList('out_list', 'tinyMCEImageList');\r
+\r
+ if (n.nodeName == 'IMG') {\r
+ nl.src.value = dom.getAttrib(n, 'src');\r
+ nl.width.value = dom.getAttrib(n, 'width');\r
+ nl.height.value = dom.getAttrib(n, 'height');\r
+ nl.alt.value = dom.getAttrib(n, 'alt');\r
+ nl.title.value = dom.getAttrib(n, 'title');\r
+ nl.vspace.value = this.getAttrib(n, 'vspace');\r
+ nl.hspace.value = this.getAttrib(n, 'hspace');\r
+ nl.border.value = this.getAttrib(n, 'border');\r
+ selectByValue(f, 'align', this.getAttrib(n, 'align'));\r
+ selectByValue(f, 'class_list', dom.getAttrib(n, 'class'));\r
+ nl.style.value = dom.getAttrib(n, 'style');\r
+ nl.id.value = dom.getAttrib(n, 'id');\r
+ nl.dir.value = dom.getAttrib(n, 'dir');\r
+ nl.lang.value = dom.getAttrib(n, 'lang');\r
+ nl.usemap.value = dom.getAttrib(n, 'usemap');\r
+ nl.longdesc.value = dom.getAttrib(n, 'longdesc');\r
+ nl.insert.value = ed.getLang('update');\r
+\r
+ if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseover')))\r
+ nl.onmouseoversrc.value = dom.getAttrib(n, 'onmouseover').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');\r
+\r
+ if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseout')))\r
+ nl.onmouseoutsrc.value = dom.getAttrib(n, 'onmouseout').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');\r
+ }\r
+\r
+ // Setup browse button\r
+ document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');\r
+ if (isVisible('srcbrowser'))\r
+ document.getElementById('src').style.width = '260px';\r
+\r
+ // Setup browse button\r
+ document.getElementById('onmouseoversrccontainer').innerHTML = getBrowserHTML('overbrowser','onmouseoversrc','image','theme_advanced_image');\r
+ if (isVisible('overbrowser'))\r
+ document.getElementById('onmouseoversrc').style.width = '260px';\r
+\r
+ // Setup browse button\r
+ document.getElementById('onmouseoutsrccontainer').innerHTML = getBrowserHTML('outbrowser','onmouseoutsrc','image','theme_advanced_image');\r
+ if (isVisible('outbrowser'))\r
+ document.getElementById('onmouseoutsrc').style.width = '260px';\r
+\r
+ // If option enabled default contrain proportions to checked\r
+ if (ed.getParam("advimage_constrain_proportions", true))\r
+ f.constrain.checked = true;\r
+\r
+ // Check swap image if valid data\r
+ if (nl.onmouseoversrc.value || nl.onmouseoutsrc.value)\r
+ this.setSwapImage(true);\r
+ else\r
+ this.setSwapImage(false);\r
+\r
+ this.changeAppearance();\r
+ this.updateStyle();\r
+ this.showPreviewImage(nl.src.value, 1);\r
+ },\r
+\r
+ insert : function(file, title) {\r
+ var ed = tinyMCEPopup.editor, t = this, f = document.forms[0];\r
+\r
+ if (f.src.value === '') {\r
+ ed.dom.remove(ed.selection.getNode());\r
+ ed.execCommand('mceRepaint');\r
+ tinyMCEPopup.close();\r
+ return;\r
+ }\r
+\r
+ if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {\r
+ if (!f.alt.value) {\r
+ tinyMCEPopup.editor.windowManager.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {\r
+ if (s)\r
+ t.insertAndClose();\r
+ });\r
+\r
+ return;\r
+ }\r
+ }\r
+\r
+ t.insertAndClose();\r
+ },\r
+\r
+ insertAndClose : function() {\r
+ var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;\r
+\r
+ // Fixes crash in Safari\r
+ if (tinymce.isWebKit)\r
+ ed.getWin().focus();\r
+\r
+ if (!ed.settings.inline_styles) {\r
+ args = tinymce.extend(args, {\r
+ vspace : nl.vspace.value,\r
+ hspace : nl.hspace.value,\r
+ border : nl.border.value,\r
+ align : getSelectValue(f, 'align')\r
+ });\r
+ }\r
+\r
+ tinymce.extend(args, {\r
+ src : nl.src.value,\r
+ width : nl.width.value,\r
+ height : nl.height.value,\r
+ alt : nl.alt.value,\r
+ title : nl.title.value,\r
+ 'class' : getSelectValue(f, 'class_list'),\r
+ style : nl.style.value,\r
+ id : nl.id.value,\r
+ dir : nl.dir.value,\r
+ lang : nl.lang.value,\r
+ usemap : nl.usemap.value,\r
+ longdesc : nl.longdesc.value\r
+ });\r
+\r
+ args.onmouseover = args.onmouseout = '';\r
+\r
+ if (f.onmousemovecheck.checked) {\r
+ if (nl.onmouseoversrc.value)\r
+ args.onmouseover = "this.src='" + nl.onmouseoversrc.value + "';";\r
+\r
+ if (nl.onmouseoutsrc.value)\r
+ args.onmouseout = "this.src='" + nl.onmouseoutsrc.value + "';";\r
+ }\r
+\r
+ el = ed.selection.getNode();\r
+\r
+ if (el && el.nodeName == 'IMG') {\r
+ ed.dom.setAttribs(el, args);\r
+ } else {\r
+ ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" src="javascript:;" />');\r
+ ed.dom.setAttribs('__mce_tmp', args);\r
+ ed.dom.setAttrib('__mce_tmp', 'id', '');\r
+ }\r
+\r
+ tinyMCEPopup.close();\r
+ },\r
+\r
+ getAttrib : function(e, at) {\r
+ var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;\r
+\r
+ if (ed.settings.inline_styles) {\r
+ switch (at) {\r
+ case 'align':\r
+ if (v = dom.getStyle(e, 'float'))\r
+ return v;\r
+\r
+ if (v = dom.getStyle(e, 'vertical-align'))\r
+ return v;\r
+\r
+ break;\r
+\r
+ case 'hspace':\r
+ v = dom.getStyle(e, 'margin-left')\r
+ v2 = dom.getStyle(e, 'margin-right');\r
+ if (v && v == v2)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+\r
+ case 'vspace':\r
+ v = dom.getStyle(e, 'margin-top')\r
+ v2 = dom.getStyle(e, 'margin-bottom');\r
+ if (v && v == v2)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+\r
+ case 'border':\r
+ v = 0;\r
+\r
+ tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {\r
+ sv = dom.getStyle(e, 'border-' + sv + '-width');\r
+\r
+ // False or not the same as prev\r
+ if (!sv || (sv != v && v !== 0)) {\r
+ v = 0;\r
+ return false;\r
+ }\r
+\r
+ if (sv)\r
+ v = sv;\r
+ });\r
+\r
+ if (v)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+ }\r
+ }\r
+\r
+ if (v = dom.getAttrib(e, at))\r
+ return v;\r
+\r
+ return '';\r
+ },\r
+\r
+ setSwapImage : function(st) {\r
+ var f = document.forms[0];\r
+\r
+ f.onmousemovecheck.checked = st;\r
+ setBrowserDisabled('overbrowser', !st);\r
+ setBrowserDisabled('outbrowser', !st);\r
+\r
+ if (f.over_list)\r
+ f.over_list.disabled = !st;\r
+\r
+ if (f.out_list)\r
+ f.out_list.disabled = !st;\r
+\r
+ f.onmouseoversrc.disabled = !st;\r
+ f.onmouseoutsrc.disabled = !st;\r
+ },\r
+\r
+ fillClassList : function(id) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
+\r
+ if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {\r
+ cl = [];\r
+\r
+ tinymce.each(v.split(';'), function(v) {\r
+ var p = v.split('=');\r
+\r
+ cl.push({'title' : p[0], 'class' : p[1]});\r
+ });\r
+ } else\r
+ cl = tinyMCEPopup.editor.dom.getClasses();\r
+\r
+ if (cl.length > 0) {\r
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
+\r
+ tinymce.each(cl, function(o) {\r
+ lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);\r
+ });\r
+ } else\r
+ dom.remove(dom.getParent(id, 'tr'));\r
+ },\r
+\r
+ fillFileList : function(id, l) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
+\r
+ l = window[l];\r
+\r
+ if (l && l.length > 0) {\r
+ lst.options[lst.options.length] = new Option('', '');\r
+\r
+ tinymce.each(l, function(o) {\r
+ lst.options[lst.options.length] = new Option(o[0], o[1]);\r
+ });\r
+ } else\r
+ dom.remove(dom.getParent(id, 'tr'));\r
+ },\r
+\r
+ resetImageData : function() {\r
+ var f = document.forms[0];\r
+\r
+ f.elements.width.value = f.elements.height.value = '';\r
+ },\r
+\r
+ updateImageData : function(img, st) {\r
+ var f = document.forms[0];\r
+\r
+ if (!st) {\r
+ f.elements.width.value = img.width;\r
+ f.elements.height.value = img.height;\r
+ }\r
+\r
+ this.preloadImg = img;\r
+ },\r
+\r
+ changeAppearance : function() {\r
+ var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg');\r
+\r
+ if (img) {\r
+ if (ed.getParam('inline_styles')) {\r
+ ed.dom.setAttrib(img, 'style', f.style.value);\r
+ } else {\r
+ img.align = f.align.value;\r
+ img.border = f.border.value;\r
+ img.hspace = f.hspace.value;\r
+ img.vspace = f.vspace.value;\r
+ }\r
+ }\r
+ },\r
+\r
+ changeHeight : function() {\r
+ var f = document.forms[0], tp, t = this;\r
+\r
+ if (!f.constrain.checked || !t.preloadImg) {\r
+ t.updateStyle();\r
+ return;\r
+ }\r
+\r
+ if (f.width.value == "" || f.height.value == "")\r
+ return;\r
+\r
+ tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height;\r
+ f.height.value = tp.toFixed(0);\r
+ t.updateStyle();\r
+ },\r
+\r
+ changeWidth : function() {\r
+ var f = document.forms[0], tp, t = this;\r
+\r
+ if (!f.constrain.checked || !t.preloadImg) {\r
+ t.updateStyle();\r
+ return;\r
+ }\r
+\r
+ if (f.width.value == "" || f.height.value == "")\r
+ return;\r
+\r
+ tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width;\r
+ f.width.value = tp.toFixed(0);\r
+ t.updateStyle();\r
+ },\r
+\r
+ updateStyle : function() {\r
+ var dom = tinyMCEPopup.dom, st, v, f = document.forms[0];\r
+\r
+ if (tinyMCEPopup.editor.settings.inline_styles) {\r
+ st = tinyMCEPopup.dom.parseStyle(dom.get('style').value);\r
+\r
+ // Handle align\r
+ v = getSelectValue(f, 'align');\r
+ if (v) {\r
+ if (v == 'left' || v == 'right') {\r
+ st['float'] = v;\r
+ delete st['vertical-align'];\r
+ } else {\r
+ st['vertical-align'] = v;\r
+ delete st['float'];\r
+ }\r
+ } else {\r
+ delete st['float'];\r
+ delete st['vertical-align'];\r
+ }\r
+\r
+ // Handle border\r
+ v = f.border.value;\r
+ if (v || v == '0') {\r
+ if (v == '0')\r
+ st['border'] = '0';\r
+ else\r
+ st['border'] = v + 'px solid black';\r
+ } else\r
+ delete st['border'];\r
+\r
+ // Handle hspace\r
+ v = f.hspace.value;\r
+ if (v) {\r
+ delete st['margin'];\r
+ st['margin-left'] = v + 'px';\r
+ st['margin-right'] = v + 'px';\r
+ } else {\r
+ delete st['margin-left'];\r
+ delete st['margin-right'];\r
+ }\r
+\r
+ // Handle vspace\r
+ v = f.vspace.value;\r
+ if (v) {\r
+ delete st['margin'];\r
+ st['margin-top'] = v + 'px';\r
+ st['margin-bottom'] = v + 'px';\r
+ } else {\r
+ delete st['margin-top'];\r
+ delete st['margin-bottom'];\r
+ }\r
+\r
+ // Merge\r
+ st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st));\r
+ dom.get('style').value = dom.serializeStyle(st);\r
+ }\r
+ },\r
+\r
+ changeMouseMove : function() {\r
+ },\r
+\r
+ showPreviewImage : function(u, st) {\r
+ if (!u) {\r
+ tinyMCEPopup.dom.setHTML('prev', '');\r
+ return;\r
+ }\r
+\r
+ if (!st && tinyMCEPopup.getParam("advimage_update_dimensions_onchange", true))\r
+ this.resetImageData();\r
+\r
+ u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u);\r
+\r
+ if (!st)\r
+ tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this);" onerror="ImageDialog.resetImageData();" />');\r
+ else\r
+ tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this, 1);" />');\r
+ }\r
+};\r
+\r
+ImageDialog.preInit();\r
+tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var MoodleImageDialog = {\r
+ init : function(ed) {\r
+ var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();\r
+ course_id = tinyMCEPopup.getParam('moodleimage_course_id');\r
+ tinyMCEPopup.resizeToInnerSize();\r
+ if (n.nodeName == 'IMG') {\r
+ nl.f_url.value = dom.getAttrib(n, 'src');\r
+ nl.f_width.value = dom.getAttrib(n, 'width');\r
+ nl.f_height.value = dom.getAttrib(n, 'height');\r
+ nl.f_alt.value = dom.getAttrib(n, 'alt');\r
+ nl.f_vert.value = this.getAttrib(n, 'vspace');\r
+ nl.f_horiz.value = this.getAttrib(n, 'hspace');\r
+ nl.f_border.value = this.getAttrib(n, 'border');\r
+ selectByValue(f, 'f_align', this.getAttrib(n, 'align'));\r
+ window.ipreview.location.replace('preview.php?id='+ course_id +'&imageurl='+ nl.f_url.value);\r
+ }\r
+ \r
+ },\r
+\r
+ insert : function(file, title) {\r
+ var ed = tinyMCEPopup.editor, t = this, f = document.forms[0];\r
+\r
+ if (f.f_url.value === '') {\r
+ ed.dom.remove(ed.selection.getNode());\r
+ ed.execCommand('mceRepaint');\r
+ tinyMCEPopup.close();\r
+ return;\r
+ }\r
+\r
+ if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {\r
+ if (!f.f_alt.value) {\r
+ tinyMCEPopup.editor.windowManager.confirm(tinyMCEPopup.getLang('moodleimage_dlg.missing_alt'), function(s) {\r
+ if (s)\r
+ t.insertAndClose();\r
+ });\r
+\r
+ return;\r
+ }\r
+ }\r
+\r
+ t.insertAndClose();\r
+ },\r
+\r
+ insertAndClose : function() {\r
+ var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;\r
+\r
+ // Fixes crash in Safari\r
+ if (tinymce.isWebKit)\r
+ ed.getWin().focus();\r
+\r
+ tinymce.extend(args, {\r
+ src : nl.f_url.value,\r
+ width : nl.f_width.value,\r
+ height : nl.f_height.value,\r
+ alt : nl.f_alt.value,\r
+ vspace : nl.f_vert.value,\r
+ hspace : nl.f_horiz.value,\r
+ border : nl.f_border.value,\r
+ align : getSelectValue(f, 'f_align')\r
+ });\r
+\r
+ el = ed.selection.getNode();\r
+\r
+ if (el && el.nodeName == 'IMG') {\r
+ ed.dom.setAttribs(el, args);\r
+ } else {\r
+ ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" src="javascript:;" />');\r
+ ed.dom.setAttribs('__mce_tmp', args);\r
+ ed.dom.setAttrib('__mce_tmp', 'id', '');\r
+ }\r
+\r
+ tinyMCEPopup.close();\r
+ }, \r
+\r
+ changeHeight : function() {\r
+ var f = document.forms[0], tp, t = this;\r
+\r
+ //if (!f.constrain.checked || !t.preloadImg) {\r
+ //t.updateStyle();\r
+ //return;\r
+ //}\r
+\r
+ if (f.width.value == "" || f.height.value == "")\r
+ return;\r
+\r
+ tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height;\r
+ f.height.value = tp.toFixed(0);\r
+ //t.updateStyle();\r
+ },\r
+\r
+ changeWidth : function() {\r
+ var f = document.forms[0], tp, t = this;\r
+\r
+ //if (!f.constrain.checked || !t.preloadImg) {\r
+ //t.updateStyle();\r
+ //return;\r
+ //}\r
+\r
+ if (f.f_width.value == "" || f.f_height.value == "")\r
+ return;\r
+\r
+ tp = (parseInt(f.f_height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width;\r
+ f.width.value = tp.toFixed(0);\r
+ //t.updateStyle();\r
+ },\r
+ getAttrib : function(e, at) {\r
+ var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;\r
+\r
+ if (ed.settings.inline_styles) {\r
+ switch (at) {\r
+ case 'align':\r
+ if (v = dom.getStyle(e, 'float'))\r
+ return v;\r
+\r
+ if (v = dom.getStyle(e, 'vertical-align'))\r
+ return v;\r
+\r
+ break;\r
+\r
+ case 'hspace':\r
+ v = dom.getStyle(e, 'margin-left')\r
+ v2 = dom.getStyle(e, 'margin-right');\r
+ if (v && v == v2)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+\r
+ case 'vspace':\r
+ v = dom.getStyle(e, 'margin-top')\r
+ v2 = dom.getStyle(e, 'margin-bottom');\r
+ if (v && v == v2)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+\r
+ case 'border':\r
+ v = 0;\r
+\r
+ tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {\r
+ sv = dom.getStyle(e, 'border-' + sv + '-width');\r
+\r
+ // False or not the same as prev\r
+ if (!sv || (sv != v && v !== 0)) {\r
+ v = 0;\r
+ return false;\r
+ }\r
+\r
+ if (sv)\r
+ v = sv;\r
+ });\r
+\r
+ if (v)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+ }\r
+ }\r
+\r
+ if (v = dom.getAttrib(e, at))\r
+ return v;\r
+\r
+ return '';\r
+ }\r
+\r
+ \r
+};\r
+\r
+\r
+tinyMCEPopup.onInit.add(MoodleImageDialog.init, MoodleImageDialog);\r
--- /dev/null
+tinyMCE.addI18n('en.moodleimage_dlg',{\r
+title:"Insert Image",\r
+missing_alt:"Are you sure you want to continue without including an Alternate Text? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off."\r
+});
\ No newline at end of file
--- /dev/null
+<?php // $Id$ preview for insert image dialog\r
+\r
+ require("../../../../../../../config.php");\r
+\r
+ $id = optional_param('id', SITEID, PARAM_INT);\r
+ $imageurl = required_param('imageurl', PARAM_RAW);\r
+\r
+ require_login($id);\r
+ require_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $id));\r
+\r
+ @header('Content-Type: text/html; charset=utf-8');\r
+\r
+\r
+ $imagetag = clean_text('<img src="'.htmlSpecialChars(stripslashes_safe($imageurl)).'" alt="" />');\r
+\r
+?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+<html>\r
+<head>\r
+<title><?php echo get_string('preview') ?></title>\r
+<style type="text/css">\r
+ body { margin: 2px; }\r
+</style>\r
+</head>\r
+<body bgcolor="#ffffff">\r
+\r
+<?php echo $imagetag ?>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.MoodleLinkPlugin',{init:function(ed,url){course_id=tinyMCE.activeEditor.getParam('moodleimage_course_id');ed.addCommand('mceMoodleLink',function(){ed.windowManager.open({file:url+'/link.php?id='+course_id,width:600+ed.getLang('example.delta_width',0),height:500+ed.getLang('example.delta_height',0),inline:1},{plugin_url:url,some_custom_arg:'custom arg'});});ed.addButton('moodlelink',{title:'Insert Link',cmd:'mceMoodleLink',image:url+'/img/link.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('moodlelink',n.nodeName=='IMG');});},createControl:function(n,cm){return null;},getInfo:function(){return{longname:'Moodle Link plugin',author:'Glen Davies',authorurl:'http://www.canterbury.ac.nz',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',version:"1.0"};}});tinymce.PluginManager.add('moodlelink',tinymce.plugins.MoodleLinkPlugin);})();
\ No newline at end of file
--- /dev/null
+(function() {\r
+ // Load plugin specific language pack\r
+ //tinymce.PluginManager.requireLangPack('example');\r
+\r
+ tinymce.create('tinymce.plugins.MoodleLinkPlugin', {\r
+ /**\r
+ * Initializes the plugin, this will be executed after the plugin has been created.\r
+ * This call is done before the editor instance has finished it's initialization so use the onInit event\r
+ * of the editor instance to intercept that event.\r
+ *\r
+ * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.\r
+ * @param {string} url Absolute URL to where the plugin is located.\r
+ */\r
+ init : function(ed, url) {\r
+ // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');\r
+ course_id = tinyMCE.activeEditor.getParam('moodleimage_course_id');\r
+ ed.addCommand('mceMoodleLink', function() {\r
+ ed.windowManager.open({\r
+ \r
+ file : url + '/link.php?id=' + course_id,\r
+ //file : '/moodle/lib/editor/htmlarea/popups/insert_image.php?id=' + course_id,\r
+ width : 600 + ed.getLang('example.delta_width', 0),\r
+ height : 500 + ed.getLang('example.delta_height', 0),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url, // Plugin absolute URL\r
+ some_custom_arg : 'custom arg' // Custom argument\r
+ });\r
+ });\r
+\r
+ // Register example button\r
+ ed.addButton('moodlelink', {\r
+ title : 'Insert Link',\r
+ cmd : 'mceMoodleLink',\r
+ image : url + '/img/link.gif'\r
+ });\r
+ \r
+\r
+ // Add a node change handler, selects the button in the UI when a image is selected\r
+ ed.onNodeChange.add(function(ed, cm, n) {\r
+ cm.setActive('moodlelink', n.nodeName == 'IMG');\r
+ });\r
+ },\r
+\r
+ /**\r
+ * Creates control instances based in the incomming name. This method is normally not\r
+ * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons\r
+ * but you sometimes need to create more complex controls like listboxes, split buttons etc then this\r
+ * method can be used to create those.\r
+ *\r
+ * @param {String} n Name of the control to create.\r
+ * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.\r
+ * @return {tinymce.ui.Control} New control instance or null if no control was created.\r
+ */\r
+ createControl : function(n, cm) {\r
+ return null;\r
+ },\r
+\r
+ /**\r
+ * Returns information about the plugin as a name/value array.\r
+ * The current keys are longname, author, authorurl, infourl and version.\r
+ *\r
+ * @return {Object} Name/value array containing information about the plugin.\r
+ */\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Moodle Link plugin',\r
+ author : 'Glen Davies',\r
+ authorurl : 'http://www.canterbury.ac.nz',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',\r
+ version : "1.0"\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('moodlelink', tinymce.plugins.MoodleLinkPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var MoodleLinkDialog = {\r
+ init : function(ed) {\r
+ var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();\r
+ tinyMCEPopup.resizeToInnerSize();\r
+ \r
+ },\r
+\r
+ insert : function(file, title) {\r
+ var ed = tinyMCEPopup.editor, t = this, f = document.forms[0];\r
+\r
+ if (f.f_url.value === '') {\r
+ ed.dom.remove(ed.selection.getNode());\r
+ ed.execCommand('mceRepaint');\r
+ tinyMCEPopup.close();\r
+ return;\r
+ }\r
+\r
+ if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {\r
+ if (!f.f_alt.value) {\r
+ tinyMCEPopup.editor.windowManager.confirm(tinyMCEPopup.getLang('moodleimage_dlg.missing_alt'), function(s) {\r
+ if (s)\r
+ t.insertAndClose();\r
+ });\r
+\r
+ return;\r
+ }\r
+ }\r
+\r
+ t.insertAndClose();\r
+ },\r
+\r
+ insertAndClose : function() {\r
+ var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;\r
+\r
+ // Fixes crash in Safari\r
+ if (tinymce.isWebKit)\r
+ ed.getWin().focus();\r
+\r
+ tinymce.extend(args, {\r
+ src : nl.f_url.value,\r
+ width : nl.f_width.value,\r
+ height : nl.f_height.value,\r
+ alt : nl.f_alt.value,\r
+ vspace : nl.f_vert.value,\r
+ hspace : nl.f_horiz.value,\r
+ border : nl.f_border.value,\r
+ align : getSelectValue(f, 'f_align')\r
+ });\r
+\r
+ el = ed.selection.getNode();\r
+\r
+ if (el && el.nodeName == 'IMG') {\r
+ ed.dom.setAttribs(el, args);\r
+ } else {\r
+ ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" src="javascript:;" />');\r
+ ed.dom.setAttribs('__mce_tmp', args);\r
+ ed.dom.setAttrib('__mce_tmp', 'id', '');\r
+ }\r
+\r
+ tinyMCEPopup.close();\r
+ } \r
+\r
+ \r
+\r
+ \r
+};\r
+\r
+\r
+tinyMCEPopup.onInit.add(MoodleLinkDialog.init, MoodleLinkDialog);\r
--- /dev/null
+tinyMCE.addI18n('en.moodlelink_dlg',{\r
+title:"Choose file to link"\r
+});
\ No newline at end of file
--- /dev/null
+<?php // $Id$\r
+ require("../../../../../../../config.php");\r
+\r
+ $id = optional_param('id', SITEID, PARAM_INT);\r
+\r
+ require_course_login($id);\r
+ @header('Content-Type: text/html; charset=utf-8');\r
+?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+<html>\r
+<head>\r
+<title><?php print_string("insertlink","editor");?></title>\r
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
+\r
+<script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+<script type="text/javascript" src="js/moodlelink.js"></script>\r
+<script type="text/javascript">\r
+var FileBrowserDialogue = {\r
+ init : function () {\r
+ // Here goes your code for setting your custom things onLoad.\r
+ },\r
+ mySubmit : function (link_url) {\r
+ //call this function only after page has loaded\r
+ //otherwise tinyMCEPopup.close will close the\r
+ //"Insert/Edit Image" or "Insert/Edit Link" window instead\r
+\r
+ //var URL = document.my_form.my_field.value;\r
+ var win = tinyMCEPopup.getWindowArg("window");\r
+\r
+ // insert information now\r
+ win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = link_url;\r
+\r
+ // for image browsers: update image dimensions\r
+ if (win.getImageData) win.getImageData();\r
+\r
+ // close popup window\r
+ tinyMCEPopup.close();\r
+ }\r
+}\r
+\r
+tinyMCEPopup.onInit.add(FileBrowserDialogue.init, FileBrowserDialogue);\r
+\r
+\r
+//<![CDATA[\r
+\r
+function onCancel() {\r
+ window.close();\r
+ return false;\r
+}\r
+\r
+function checkvalue(elm,formname) {\r
+ var el = document.getElementById(elm);\r
+ if(!el.value) {\r
+ alert("Nothing to do!");\r
+ el.focus();\r
+ return false;\r
+ }\r
+}\r
+\r
+function submit_form(dothis) {\r
+ if(dothis == "delete") {\r
+ window.fbrowser.document.dirform.action.value = "delete";\r
+ }\r
+ if(dothis == "move") {\r
+ window.fbrowser.document.dirform.action.value = "move";\r
+ }\r
+ if(dothis == "zip") {\r
+ window.fbrowser.document.dirform.action.value = "zip";\r
+ }\r
+\r
+ window.fbrowser.document.dirform.submit();\r
+ return false;\r
+}\r
+//]]>\r
+</script>\r
+<style type="text/css">\r
+html, body {\r
+margin: 2px;\r
+background-color: #F0F0EE;\r
+font-size: 11px;\r
+}\r
+.title {\r
+background-color: #ddddff;\r
+padding: 5px;\r
+border-bottom: 1px solid black;\r
+font-family: Tahoma, sans-serif;\r
+font-weight: bold;\r
+font-size: 14px;\r
+color: black;\r
+}\r
+td, input, select, button {\r
+font-family: Tahoma, Verdana, sans-serif;\r
+font-size: 11px;\r
+}\r
+button { width: 70px; }\r
+.space { padding: 2px; }\r
+form { margin-bottom: 0px; margin-top: 0px; }\r
+</style>\r
+\r
+</head>\r
+<body>\r
+ <table width="450" border="0" cellspacing="0" cellpadding="2">\r
+ <tr>\r
+ <td width="450" valign="top"><fieldset>\r
+ <legend><?php\r
+ if(has_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $id))) {\r
+ print_string("filebrowser","editor");\r
+ } else {\r
+ print "";\r
+ }?></legend>\r
+\r
+ <div class="space"></div>\r
+ <?php print(has_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $id)))?\r
+ "<iframe id=\"fbrowser\" name=\"fbrowser\" src=\"../../coursefiles.php?id=".$id."\" width=\"420\" height=\"180\"></iframe>":\r
+ ""; ?>\r
+ <p>\r
+ </p>\r
+ <div class="space"></div>\r
+ </fieldset> </td>\r
+ </tr>\r
+ </table>\r
+ <table width="100%" border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td>\r
+ <table border="0" cellpadding="2" cellspacing="0">\r
+ <tr><td><?php print_string("selection","editor");?>: </td>\r
+ <td><form id="idelete">\r
+ <input name="btnDelete" type="submit" id="btnDelete" value="<?php print_string("delete","editor");?>" onclick="return submit_form('delete');" /></form></td>\r
+ <td><form id="imove">\r
+ <input name="btnMove" type="submit" id="btnMove" value="<?php print_string("move","editor");?>" onclick="return submit_form('move');" /></form></td>\r
+ <td><form id="izip">\r
+ <input name="btnZip" type="submit" id="btnZip" value="<?php print_string("zip","editor");?>" onclick="return submit_form('zip');" /></form></td>\r
+ <td><form id="irename" method="post" action="../../coursefiles.php" target="fbrowser">\r
+ <input type="hidden" name="id" value="<?php print($id);?>" />\r
+ <input type="hidden" name="wdir" value="" />\r
+ <input type="hidden" name="file" value="" />\r
+ <input type="hidden" name="action" value="rename" />\r
+ <input type="hidden" name="sesskey" value="<?php p($USER->sesskey) ?>" />\r
+ <input name="btnRename" type="submit" id="btnRename" value="<?php print_string("rename","editor");?>" /></form></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ <td>\r
+ <button type="button" name="close" onclick="return onCancel();"><?php print_string("close","editor");?></button>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ <table border="0" cellpadding="1" cellspacing="1">\r
+ <tr>\r
+ <td height="22"><?php\r
+ if(has_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $id))) { ?>\r
+ <form id="cfolder" action="../../coursefiles.php" method="post" target="fbrowser">\r
+ <input type="hidden" name="id" value="<?php print($id);?>" />\r
+ <input type="hidden" name="wdir" value="" />\r
+ <input type="hidden" name="action" value="mkdir" />\r
+ <input type="hidden" name="sesskey" value="<?php p($USER->sesskey) ?>" />\r
+ <input name="name" type="text" id="foldername" size="35" />\r
+ <input name="btnCfolder" type="submit" id="btnCfolder" value="<?php print_string("createfolder","editor");?>" onclick="return checkvalue('foldername','cfolder');" />\r
+ </form>\r
+ <form action="../../coursefiles.php?id=<?php print($id);?>" method="post" enctype="multipart/form-data" target="fbrowser" id="uploader">\r
+ <input type="hidden" name="MAX_FILE_SIZE" value="<?php print($upload_max_filesize);?>" />\r
+ <input type="hidden" name="id" VALUE="<?php print($id);?>" />\r
+ <input type="hidden" name="wdir" value="" />\r
+ <input type="hidden" name="action" value="upload" />\r
+ <input type="hidden" name="sesskey" value="<?php p($USER->sesskey) ?>" />\r
+ <input type="file" name="userfile" id="userfile" size="35" />\r
+ <input name="save" type="submit" id="save" onclick="return checkvalue('userfile','uploader');" value="<?php print_string("upload","editor");?>" />\r
+ \r
+ <input name="save" type="submit" id="save" onclick="return checkvalue('userfile','uploader');" value="Browse" />\r
+ </form>\r
+ <?php\r
+ } else {\r
+ print "";\r
+ } ?>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+<p> </p>\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.Nonbreaking',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceNonBreaking',function(){ed.execCommand('mceInsertContent',false,(ed.plugins.visualchars&&ed.plugins.visualchars.state)?'<span class="mceItemHidden mceVisualNbsp">·</span>':' ');});ed.addButton('nonbreaking',{title:'nonbreaking.nonbreaking_desc',cmd:'mceNonBreaking'});if(ed.getParam('nonbreaking_force_tab')){ed.onKeyDown.add(function(ed,e){if(tinymce.isIE&&e.keyCode==9){ed.execCommand('mceNonBreaking');ed.execCommand('mceNonBreaking');ed.execCommand('mceNonBreaking');tinymce.dom.Event.cancel(e);}});}},getInfo:function(){return{longname:'Nonbreaking space',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('nonbreaking',tinymce.plugins.Nonbreaking);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.Nonbreaking', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceNonBreaking', function() {\r
+ ed.execCommand('mceInsertContent', false, (ed.plugins.visualchars && ed.plugins.visualchars.state) ? '<span class="mceItemHidden mceVisualNbsp">·</span>' : ' ');\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('nonbreaking', {title : 'nonbreaking.nonbreaking_desc', cmd : 'mceNonBreaking'});\r
+\r
+ if (ed.getParam('nonbreaking_force_tab')) {\r
+ ed.onKeyDown.add(function(ed, e) {\r
+ if (tinymce.isIE && e.keyCode == 9) {\r
+ ed.execCommand('mceNonBreaking');\r
+ ed.execCommand('mceNonBreaking');\r
+ ed.execCommand('mceNonBreaking');\r
+ tinymce.dom.Event.cancel(e);\r
+ }\r
+ });\r
+ }\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Nonbreaking space',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+\r
+ // Private methods\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('nonbreaking', tinymce.plugins.Nonbreaking);\r
+})();
\ No newline at end of file
--- /dev/null
+(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.NonEditablePlugin',{init:function(ed,url){var t=this,editClass,nonEditClass;t.editor=ed;editClass=ed.getParam("noneditable_editable_class","mceEditable");nonEditClass=ed.getParam("noneditable_noneditable_class","mceNonEditable");ed.onNodeChange.addToTop(function(ed,cm,n){var sc,ec;sc=ed.dom.getParent(ed.selection.getStart(),function(n){return ed.dom.hasClass(n,nonEditClass);});ec=ed.dom.getParent(ed.selection.getEnd(),function(n){return ed.dom.hasClass(n,nonEditClass);});if(sc||ec){t._setDisabled(1);return false;}else t._setDisabled(0);});},getInfo:function(){return{longname:'Non editable elements',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_block:function(ed,e){return Event.cancel(e);},_setDisabled:function(s){var t=this,ed=t.editor;tinymce.each(ed.controlManager.controls,function(c){c.setDisabled(s);});if(s!==t.disabled){if(s){ed.onKeyDown.addToTop(t._block);ed.onKeyPress.addToTop(t._block);ed.onKeyUp.addToTop(t._block);ed.onPaste.addToTop(t._block);}else{ed.onKeyDown.remove(t._block);ed.onKeyPress.remove(t._block);ed.onKeyUp.remove(t._block);ed.onPaste.remove(t._block);}t.disabled=s;}}});tinymce.PluginManager.add('noneditable',tinymce.plugins.NonEditablePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var Event = tinymce.dom.Event;\r
+\r
+ tinymce.create('tinymce.plugins.NonEditablePlugin', {\r
+ init : function(ed, url) {\r
+ var t = this, editClass, nonEditClass;\r
+\r
+ t.editor = ed;\r
+ editClass = ed.getParam("noneditable_editable_class", "mceEditable");\r
+ nonEditClass = ed.getParam("noneditable_noneditable_class", "mceNonEditable");\r
+\r
+ ed.onNodeChange.addToTop(function(ed, cm, n) {\r
+ var sc, ec;\r
+\r
+ // Block if start or end is inside a non editable element\r
+ sc = ed.dom.getParent(ed.selection.getStart(), function(n) {\r
+ return ed.dom.hasClass(n, nonEditClass);\r
+ });\r
+\r
+ ec = ed.dom.getParent(ed.selection.getEnd(), function(n) {\r
+ return ed.dom.hasClass(n, nonEditClass);\r
+ });\r
+\r
+ // Block or unblock\r
+ if (sc || ec) {\r
+ t._setDisabled(1);\r
+ return false;\r
+ } else\r
+ t._setDisabled(0);\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Non editable elements',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ _block : function(ed, e) {\r
+ return Event.cancel(e);\r
+ },\r
+\r
+ _setDisabled : function(s) {\r
+ var t = this, ed = t.editor;\r
+\r
+ tinymce.each(ed.controlManager.controls, function(c) {\r
+ c.setDisabled(s);\r
+ });\r
+\r
+ if (s !== t.disabled) {\r
+ if (s) {\r
+ ed.onKeyDown.addToTop(t._block);\r
+ ed.onKeyPress.addToTop(t._block);\r
+ ed.onKeyUp.addToTop(t._block);\r
+ ed.onPaste.addToTop(t._block);\r
+ } else {\r
+ ed.onKeyDown.remove(t._block);\r
+ ed.onKeyPress.remove(t._block);\r
+ ed.onKeyUp.remove(t._block);\r
+ ed.onPaste.remove(t._block);\r
+ }\r
+\r
+ t.disabled = s;\r
+ }\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('noneditable', tinymce.plugins.NonEditablePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../img/pagebreak.gif) no-repeat center top;}
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.PageBreakPlugin',{init:function(ed,url){var pb='<img src="'+url+'/img/trans.gif" class="mcePageBreak mceItemNoResize" />',cls='mcePageBreak',sep=ed.getParam('pagebreak_separator','<!-- pagebreak -->'),pbRE;pbRE=new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(a){return'\\'+a;}),'g');ed.addCommand('mcePageBreak',function(){ed.execCommand('mceInsertContent',0,pb);});ed.addButton('pagebreak',{title:'pagebreak.desc',cmd:cls});ed.onInit.add(function(){ed.dom.loadCSS(url+"/css/content.css");if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.node.nodeName=='IMG'&&ed.dom.hasClass(o.node,cls))o.name='pagebreak';});}});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='IMG'&&ed.dom.hasClass(e,cls))ed.selection.select(e);});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('pagebreak',n.nodeName==='IMG'&&ed.dom.hasClass(n,cls));});ed.onBeforeSetContent.add(function(ed,o){o.content=o.content.replace(pbRE,pb);});ed.onPostProcess.add(function(ed,o){if(o.get)o.content=o.content.replace(/<img[^>]+>/g,function(im){if(im.indexOf('class="mcePageBreak')!==-1)im=sep;return im;});});},getInfo:function(){return{longname:'PageBreak',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('pagebreak',tinymce.plugins.PageBreakPlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.PageBreakPlugin', {\r
+ init : function(ed, url) {\r
+ var pb = '<img src="' + url + '/img/trans.gif" class="mcePageBreak mceItemNoResize" />', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', '<!-- pagebreak -->'), pbRE;\r
+\r
+ pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g');\r
+\r
+ // Register commands\r
+ ed.addCommand('mcePageBreak', function() {\r
+ ed.execCommand('mceInsertContent', 0, pb);\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls});\r
+\r
+ ed.onInit.add(function() {\r
+ ed.dom.loadCSS(url + "/css/content.css");\r
+\r
+ if (ed.theme.onResolveName) {\r
+ ed.theme.onResolveName.add(function(th, o) {\r
+ if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls))\r
+ o.name = 'pagebreak';\r
+ });\r
+ }\r
+ });\r
+\r
+ ed.onClick.add(function(ed, e) {\r
+ e = e.target;\r
+\r
+ if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls))\r
+ ed.selection.select(e);\r
+ });\r
+\r
+ ed.onNodeChange.add(function(ed, cm, n) {\r
+ cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls));\r
+ });\r
+\r
+ ed.onBeforeSetContent.add(function(ed, o) {\r
+ o.content = o.content.replace(pbRE, pb);\r
+ });\r
+\r
+ ed.onPostProcess.add(function(ed, o) {\r
+ if (o.get)\r
+ o.content = o.content.replace(/<img[^>]+>/g, function(im) {\r
+ if (im.indexOf('class="mcePageBreak') !== -1)\r
+ im = sep;\r
+\r
+ return im;\r
+ });\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'PageBreak',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+<title>blank_page</title>\r
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
+<link href="css/blank.css" rel="stylesheet" type="text/css" />\r
+<base target="_self" />\r
+<script type="text/javascript">\r
+function init() {\r
+ if (parent.tinymce.isIE)\r
+ document.body.contentEditable = true;\r
+ else\r
+ document.designMode = 'on';\r
+\r
+ parent.initIframe(document);\r
+ window.focus();\r
+}\r
+</script>\r
+</head>\r
+<body onload="init();">\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+html, body {height:98%}\r
+body {\r
+background-color: #FFFFFF;\r
+font-family: Verdana, Arial, Helvetica, sans-serif;\r
+font-size: 10px;\r
+scrollbar-3dlight-color: #F0F0EE;\r
+scrollbar-arrow-color: #676662;\r
+scrollbar-base-color: #F0F0EE;\r
+scrollbar-darkshadow-color: #DDDDDD;\r
+scrollbar-face-color: #E0E0DD;\r
+scrollbar-highlight-color: #F0F0EE;\r
+scrollbar-shadow-color: #F0F0EE;\r
+scrollbar-track-color: #F5F5F5;\r
+}\r
--- /dev/null
+.sourceIframe {\r
+ border: 1px solid #808080;\r
+}\r
--- /dev/null
+(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.PastePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mcePasteText',function(ui,v){if(ui){ed.windowManager.open({file:url+'/pastetext.htm',width:450,height:400,inline:1},{plugin_url:url});}else t._insertText(v.html,v.linebreaks);});ed.addCommand('mcePasteWord',function(ui,v){if(ui){ed.windowManager.open({file:url+'/pasteword.htm',width:450,height:400,inline:1},{plugin_url:url});}else t._insertWordContent(v);});ed.addCommand('mceSelectAll',function(){ed.execCommand('selectall');});ed.addButton('pastetext',{title:'paste.paste_text_desc',cmd:'mcePasteText',ui:true});ed.addButton('pasteword',{title:'paste.paste_word_desc',cmd:'mcePasteWord',ui:true});ed.addButton('selectall',{title:'paste.selectall_desc',cmd:'mceSelectAll'});if(ed.getParam("paste_auto_cleanup_on_paste",false)){ed.onPaste.add(function(ed,e){return t._handlePasteEvent(e)});}if(!tinymce.isIE&&ed.getParam("paste_auto_cleanup_on_paste",false)){ed.onKeyDown.add(function(ed,e){if(e.ctrlKey&&e.keyCode==86){window.setTimeout(function(){ed.execCommand("mcePasteText",true);},1);Event.cancel(e);}});}},getInfo:function(){return{longname:'Paste text/word',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_handlePasteEvent:function(e){var html=this._clipboardHTML(),ed=this.editor,sel=ed.selection,r;if(ed&&(r=sel.getRng())&&r.text.length>0)ed.execCommand('delete');if(html&&html.length>0)ed.execCommand('mcePasteWord',false,html);return Event.cancel(e);},_insertText:function(content,bLinebreaks){if(content&&content.length>0){if(bLinebreaks){if(this.editor.getParam("paste_create_paragraphs",true)){var rl=this.editor.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);content=content.replace(/\r\n\r\n/g,'</p><p>');content=content.replace(/\r\r/g,'</p><p>');content=content.replace(/\n\n/g,'</p><p>');if((pos=content.indexOf('</p><p>'))!=-1){this.editor.execCommand("Delete");var node=this.editor.selection.getNode();var breakElms=[];do{if(node.nodeType==1){if(node.nodeName=="TD"||node.nodeName=="BODY")break;breakElms[breakElms.length]=node;}}while(node=node.parentNode);var before="",after="</p>";before+=content.substring(0,pos);for(var i=0;i<breakElms.length;i++){before+="</"+breakElms[i].nodeName+">";after+="<"+breakElms[(breakElms.length-1)-i].nodeName+">";}before+="<p>";content=before+content.substring(pos+7)+after;}}if(this.editor.getParam("paste_create_linebreaks",true)){content=content.replace(/\r\n/g,'<br />');content=content.replace(/\r/g,'<br />');content=content.replace(/\n/g,'<br />');}}this.editor.execCommand("mceInsertRawHTML",false,content);}},_insertWordContent:function(content){var t=this,ed=t.editor;if(content&&content.length>0){var bull=String.fromCharCode(8226);var middot=String.fromCharCode(183);if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','before',content);var rl=ed.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);if(this.editor.getParam("paste_convert_headers_to_strong",false)){content=content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>','gi'),'<p><b>$1</b></p>');}content=content.replace(new RegExp('tab-stops: list [0-9]+.0pt">','gi'),'">'+"--list--");content=content.replace(new RegExp(bull+"(.*?)<BR>","gi"),"<p>"+middot+"$1</p>");content=content.replace(new RegExp('<SPAN style="mso-list: Ignore">','gi'),"<span>"+bull);content=content.replace(/<o:p><\/o:p>/gi,"");content=content.replace(new RegExp('<br style="page-break-before: always;.*>','gi'),'-- page break --');content=content.replace(new RegExp('<(!--)([^>]*)(--)>','g'),"");if(this.editor.getParam("paste_remove_spans",true))content=content.replace(/<\/?span[^>]*>/gi,"");if(this.editor.getParam("paste_remove_styles",true))content=content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)','gi'),"<$1$3");content=content.replace(/<\/?font[^>]*>/gi,"");switch(this.editor.getParam("paste_strip_class_attributes","all")){case"all":content=content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi,"<$1$3");break;case"mso":content=content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)','gi'),"<$1$3");break;}content=content.replace(new RegExp('href="?'+this._reEscape(""+document.location)+'','gi'),'href="'+this.editor.documentBaseURI.getURI());content=content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");content=content.replace(/<\\?\?xml[^>]*>/gi,"");content=content.replace(/<\/?\w+:[^>]*>/gi,"");content=content.replace(/-- page break --\s*<p> <\/p>/gi,"");content=content.replace(/-- page break --/gi,"");if(!this.editor.getParam('force_p_newlines')){content=content.replace('','','gi');content=content.replace('</p>','<br /><br />','gi');}if(!tinymce.isIE&&!this.editor.getParam('force_p_newlines')){content=content.replace(/<\/?p[^>]*>/gi,"");}content=content.replace(/<\/?div[^>]*>/gi,"");if(this.editor.getParam("paste_convert_middot_lists",true)){var div=ed.dom.create("div",null,content);var className=this.editor.getParam("paste_unindented_list_class","unIndentedList");while(this._convertMiddots(div,"--list--"));while(this._convertMiddots(div,middot,className));while(this._convertMiddots(div,bull));content=div.innerHTML;}if(this.editor.getParam("paste_convert_headers_to_strong",false)){content=content.replace(/<h[1-6]> <\/h[1-6]>/gi,'<p> </p>');content=content.replace(/<h[1-6]>/gi,'<p><b>');content=content.replace(/<\/h[1-6]>/gi,'</b></p>');content=content.replace(/<b> <\/b>/gi,'<b> </b>');content=content.replace(/^( )*/gi,'');}content=content.replace(/--list--/gi,"");if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','after',content);this.editor.execCommand("mceInsertContent",false,content);if(this.editor.getParam('paste_force_cleanup_wordpaste',true)){var ed=this.editor;window.setTimeout(function(){ed.execCommand("mceCleanup");},1);}}},_reEscape:function(s){var l="?.\\*[](){}+^$:";var o="";for(var i=0;i<s.length;i++){var c=s.charAt(i);if(l.indexOf(c)!=-1)o+='\\'+c;else o+=c;}return o;},_convertMiddots:function(div,search,class_name){var ed=this.editor,mdot=String.fromCharCode(183),bull=String.fromCharCode(8226);var nodes,prevul,i,p,ul,li,np,cp,li;nodes=div.getElementsByTagName("p");for(i=0;i<nodes.length;i++){p=nodes[i];if(p.innerHTML.indexOf(search)==0){ul=ed.dom.create("ul");if(class_name)ul.className=class_name;li=ed.dom.create("li");li.innerHTML=p.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--| ',"gi"),'');ul.appendChild(li);np=p.nextSibling;while(np){if(np.nodeType==3&&new RegExp('^\\s$','m').test(np.nodeValue)){np=np.nextSibling;continue;}if(search==mdot){if(np.nodeType==1&&new RegExp('^o(\\s+| )').test(np.innerHTML)){if(!prevul){prevul=ul;ul=ed.dom.create("ul");prevul.appendChild(ul);}np.innerHTML=np.innerHTML.replace(/^o/,'');}else{if(prevul){ul=prevul;prevul=null;}if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break;}}else{if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break;}cp=np.nextSibling;li=ed.dom.create("li");li.innerHTML=np.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--| ',"gi"),'');np.parentNode.removeChild(np);ul.appendChild(li);np=cp;}p.parentNode.replaceChild(ul,p);return true;}}return false;},_clipboardHTML:function(){var div=document.getElementById('_TinyMCE_clipboardHTML');if(!div){var div=document.createElement('DIV');div.id='_TinyMCE_clipboardHTML';with(div.style){visibility='hidden';overflow='hidden';position='absolute';width=1;height=1;}document.body.appendChild(div);}div.innerHTML='';var rng=document.body.createTextRange();rng.moveToElementText(div);rng.execCommand('Paste');var html=div.innerHTML;div.innerHTML='';return html;}});tinymce.PluginManager.add('paste',tinymce.plugins.PastePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var Event = tinymce.dom.Event;\r
+\r
+ tinymce.create('tinymce.plugins.PastePlugin', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed; \r
+\r
+ // Register commands\r
+ ed.addCommand('mcePasteText', function(ui, v) {\r
+ if (ui) {\r
+ ed.windowManager.open({\r
+ file : url + '/pastetext.htm',\r
+ width : 450,\r
+ height : 400,\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ } else\r
+ t._insertText(v.html, v.linebreaks);\r
+ });\r
+\r
+ ed.addCommand('mcePasteWord', function(ui, v) {\r
+ if (ui) {\r
+ ed.windowManager.open({\r
+ file : url + '/pasteword.htm',\r
+ width : 450,\r
+ height : 400,\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ } else\r
+ t._insertWordContent(v);\r
+ });\r
+\r
+ ed.addCommand('mceSelectAll', function() {\r
+ ed.execCommand('selectall'); \r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('pastetext', {title : 'paste.paste_text_desc', cmd : 'mcePasteText', ui : true});\r
+ ed.addButton('pasteword', {title : 'paste.paste_word_desc', cmd : 'mcePasteWord', ui : true});\r
+ ed.addButton('selectall', {title : 'paste.selectall_desc', cmd : 'mceSelectAll'});\r
+\r
+ if (ed.getParam("paste_auto_cleanup_on_paste", false)) {\r
+ ed.onPaste.add(function(ed, e) {\r
+ return t._handlePasteEvent(e)\r
+ });\r
+ }\r
+\r
+ if (!tinymce.isIE && ed.getParam("paste_auto_cleanup_on_paste", false)) {\r
+ // Force paste dialog if non IE browser\r
+ ed.onKeyDown.add(function(ed, e) {\r
+ if (e.ctrlKey && e.keyCode == 86) {\r
+ window.setTimeout(function() {\r
+ ed.execCommand("mcePasteText", true);\r
+ }, 1);\r
+\r
+ Event.cancel(e);\r
+ }\r
+ });\r
+ }\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Paste text/word',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _handlePasteEvent : function(e) {\r
+ var html = this._clipboardHTML(), ed = this.editor, sel = ed.selection, r;\r
+\r
+ // Removes italic, strong etc, the if was needed due to bug #1437114\r
+ if (ed && (r = sel.getRng()) && r.text.length > 0)\r
+ ed.execCommand('delete');\r
+\r
+ if (html && html.length > 0)\r
+ ed.execCommand('mcePasteWord', false, html);\r
+\r
+ return Event.cancel(e);\r
+ },\r
+\r
+ _insertText : function(content, bLinebreaks) { \r
+ if (content && content.length > 0) {\r
+ if (bLinebreaks) { \r
+ // Special paragraph treatment \r
+ if (this.editor.getParam("paste_create_paragraphs", true)) {\r
+ var rl = this.editor.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');\r
+ for (var i=0; i<rl.length; i+=2)\r
+ content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);\r
+\r
+ content = content.replace(/\r\n\r\n/g, '</p><p>');\r
+ content = content.replace(/\r\r/g, '</p><p>');\r
+ content = content.replace(/\n\n/g, '</p><p>');\r
+\r
+ // Has paragraphs \r
+ if ((pos = content.indexOf('</p><p>')) != -1) { \r
+ this.editor.execCommand("Delete"); \r
+\r
+ var node = this.editor.selection.getNode(); \r
+\r
+ // Get list of elements to break \r
+ var breakElms = [];\r
+\r
+ do { \r
+ if (node.nodeType == 1) { \r
+ // Don't break tables and break at body \r
+ if (node.nodeName == "TD" || node.nodeName == "BODY") \r
+ break; \r
+ \r
+ breakElms[breakElms.length] = node; \r
+ } \r
+ } while(node = node.parentNode); \r
+\r
+ var before = "", after = "</p>"; \r
+ before += content.substring(0, pos); \r
+\r
+ for (var i=0; i<breakElms.length; i++) { \r
+ before += "</" + breakElms[i].nodeName + ">"; \r
+ after += "<" + breakElms[(breakElms.length-1)-i].nodeName + ">"; \r
+ } \r
+\r
+ before += "<p>"; \r
+ content = before + content.substring(pos+7) + after; \r
+ } \r
+ } \r
+\r
+ if (this.editor.getParam("paste_create_linebreaks", true)) {\r
+ content = content.replace(/\r\n/g, '<br />');\r
+ content = content.replace(/\r/g, '<br />');\r
+ content = content.replace(/\n/g, '<br />');\r
+ }\r
+ } \r
+ \r
+ this.editor.execCommand("mceInsertRawHTML", false, content); \r
+ }\r
+ },\r
+\r
+ _insertWordContent : function(content) { \r
+ var t = this, ed = t.editor;\r
+\r
+ if (content && content.length > 0) {\r
+ // Cleanup Word content\r
+ var bull = String.fromCharCode(8226);\r
+ var middot = String.fromCharCode(183);\r
+\r
+ if (ed.getParam('paste_insert_word_content_callback'))\r
+ content = ed.execCallback('paste_insert_word_content_callback', 'before', content);\r
+\r
+ var rl = ed.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');\r
+ for (var i=0; i<rl.length; i+=2)\r
+ content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);\r
+\r
+ if (this.editor.getParam("paste_convert_headers_to_strong", false)) {\r
+ content = content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>', 'gi'), '<p><b>$1</b></p>');\r
+ }\r
+\r
+ content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt">', 'gi'), '">' + "--list--");\r
+ content = content.replace(new RegExp(bull + "(.*?)<BR>", "gi"), "<p>" + middot + "$1</p>");\r
+ content = content.replace(new RegExp('<SPAN style="mso-list: Ignore">', 'gi'), "<span>" + bull); // Covert to bull list\r
+ content = content.replace(/<o:p><\/o:p>/gi, "");\r
+ content = content.replace(new RegExp('<br style="page-break-before: always;.*>', 'gi'), '-- page break --'); // Replace pagebreaks\r
+ content = content.replace(new RegExp('<(!--)([^>]*)(--)>', 'g'), ""); // Word comments\r
+\r
+ if (this.editor.getParam("paste_remove_spans", true))\r
+ content = content.replace(/<\/?span[^>]*>/gi, "");\r
+\r
+ if (this.editor.getParam("paste_remove_styles", true))\r
+ content = content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)', 'gi'), "<$1$3");\r
+\r
+ content = content.replace(/<\/?font[^>]*>/gi, "");\r
+\r
+ // Strips class attributes.\r
+ switch (this.editor.getParam("paste_strip_class_attributes", "all")) {\r
+ case "all":\r
+ content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");\r
+ break;\r
+\r
+ case "mso":\r
+ content = content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)', 'gi'), "<$1$3");\r
+ break;\r
+ }\r
+\r
+ content = content.replace(new RegExp('href="?' + this._reEscape("" + document.location) + '', 'gi'), 'href="' + this.editor.documentBaseURI.getURI());\r
+ content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");\r
+ content = content.replace(/<\\?\?xml[^>]*>/gi, "");\r
+ content = content.replace(/<\/?\w+:[^>]*>/gi, "");\r
+ content = content.replace(/-- page break --\s*<p> <\/p>/gi, ""); // Remove pagebreaks\r
+ content = content.replace(/-- page break --/gi, ""); // Remove pagebreaks\r
+\r
+ // content = content.replace(/\/? */gi, ""); \r
+ // content = content.replace(/<p> <\/p>/gi, '');\r
+\r
+ if (!this.editor.getParam('force_p_newlines')) {\r
+ content = content.replace('', '' ,'gi');\r
+ content = content.replace('</p>', '<br /><br />' ,'gi');\r
+ }\r
+\r
+ if (!tinymce.isIE && !this.editor.getParam('force_p_newlines')) {\r
+ content = content.replace(/<\/?p[^>]*>/gi, "");\r
+ }\r
+\r
+ content = content.replace(/<\/?div[^>]*>/gi, "");\r
+\r
+ // Convert all middlot lists to UL lists\r
+ if (this.editor.getParam("paste_convert_middot_lists", true)) {\r
+ var div = ed.dom.create("div", null, content);\r
+\r
+ // Convert all middot paragraphs to li elements\r
+ var className = this.editor.getParam("paste_unindented_list_class", "unIndentedList");\r
+\r
+ while (this._convertMiddots(div, "--list--")) ; // bull\r
+ while (this._convertMiddots(div, middot, className)) ; // Middot\r
+ while (this._convertMiddots(div, bull)) ; // bull\r
+\r
+ content = div.innerHTML;\r
+ }\r
+\r
+ // Replace all headers with strong and fix some other issues\r
+ if (this.editor.getParam("paste_convert_headers_to_strong", false)) {\r
+ content = content.replace(/<h[1-6]> <\/h[1-6]>/gi, '<p> </p>');\r
+ content = content.replace(/<h[1-6]>/gi, '<p><b>');\r
+ content = content.replace(/<\/h[1-6]>/gi, '</b></p>');\r
+ content = content.replace(/<b> <\/b>/gi, '<b> </b>');\r
+ content = content.replace(/^( )*/gi, '');\r
+ }\r
+\r
+ content = content.replace(/--list--/gi, ""); // Remove --list--\r
+\r
+ if (ed.getParam('paste_insert_word_content_callback'))\r
+ content = ed.execCallback('paste_insert_word_content_callback', 'after', content);\r
+\r
+ // Insert cleaned content\r
+ this.editor.execCommand("mceInsertContent", false, content);\r
+\r
+ if (this.editor.getParam('paste_force_cleanup_wordpaste', true)) {\r
+ var ed = this.editor;\r
+\r
+ window.setTimeout(function() {\r
+ ed.execCommand("mceCleanup");\r
+ }, 1); // Do normal cleanup detached from this thread\r
+ }\r
+ }\r
+ },\r
+\r
+ _reEscape : function(s) {\r
+ var l = "?.\\*[](){}+^$:";\r
+ var o = "";\r
+\r
+ for (var i=0; i<s.length; i++) {\r
+ var c = s.charAt(i);\r
+\r
+ if (l.indexOf(c) != -1)\r
+ o += '\\' + c;\r
+ else\r
+ o += c;\r
+ }\r
+\r
+ return o;\r
+ },\r
+\r
+ _convertMiddots : function(div, search, class_name) {\r
+ var ed = this.editor, mdot = String.fromCharCode(183), bull = String.fromCharCode(8226);\r
+ var nodes, prevul, i, p, ul, li, np, cp, li;\r
+\r
+ nodes = div.getElementsByTagName("p");\r
+ for (i=0; i<nodes.length; i++) {\r
+ p = nodes[i];\r
+\r
+ // Is middot\r
+ if (p.innerHTML.indexOf(search) == 0) {\r
+ ul = ed.dom.create("ul");\r
+\r
+ if (class_name)\r
+ ul.className = class_name;\r
+\r
+ // Add the first one\r
+ li = ed.dom.create("li");\r
+ li.innerHTML = p.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--| ', "gi"), '');\r
+ ul.appendChild(li);\r
+\r
+ // Add the rest\r
+ np = p.nextSibling;\r
+ while (np) {\r
+ // If the node is whitespace, then\r
+ // ignore it and continue on.\r
+ if (np.nodeType == 3 && new RegExp('^\\s$', 'm').test(np.nodeValue)) {\r
+ np = np.nextSibling;\r
+ continue;\r
+ }\r
+\r
+ if (search == mdot) {\r
+ if (np.nodeType == 1 && new RegExp('^o(\\s+| )').test(np.innerHTML)) {\r
+ // Second level of nesting\r
+ if (!prevul) {\r
+ prevul = ul;\r
+ ul = ed.dom.create("ul");\r
+ prevul.appendChild(ul);\r
+ }\r
+ np.innerHTML = np.innerHTML.replace(/^o/, '');\r
+ } else {\r
+ // Pop the stack if we're going back up to the first level\r
+ if (prevul) {\r
+ ul = prevul;\r
+ prevul = null;\r
+ }\r
+ // Not element or middot paragraph\r
+ if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)\r
+ break;\r
+ }\r
+ } else {\r
+ // Not element or middot paragraph\r
+ if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)\r
+ break;\r
+ }\r
+\r
+ cp = np.nextSibling;\r
+ li = ed.dom.create("li");\r
+ li.innerHTML = np.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--| ', "gi"), '');\r
+ np.parentNode.removeChild(np);\r
+ ul.appendChild(li);\r
+ np = cp;\r
+ }\r
+\r
+ p.parentNode.replaceChild(ul, p);\r
+\r
+ return true;\r
+ }\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ _clipboardHTML : function() {\r
+ var div = document.getElementById('_TinyMCE_clipboardHTML');\r
+\r
+ if (!div) {\r
+ var div = document.createElement('DIV');\r
+ div.id = '_TinyMCE_clipboardHTML';\r
+\r
+ with (div.style) {\r
+ visibility = 'hidden';\r
+ overflow = 'hidden';\r
+ position = 'absolute';\r
+ width = 1;\r
+ height = 1;\r
+ }\r
+\r
+ document.body.appendChild(div);\r
+ }\r
+\r
+ div.innerHTML = '';\r
+ var rng = document.body.createTextRange();\r
+ rng.moveToElementText(div);\r
+ rng.execCommand('Paste');\r
+ var html = div.innerHTML;\r
+ div.innerHTML = '';\r
+ return html;\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('paste', tinymce.plugins.PastePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+function saveContent() {\r
+ if (document.forms[0].htmlSource.value == '') {\r
+ tinyMCEPopup.close();\r
+ return false;\r
+ }\r
+\r
+ tinyMCEPopup.execCommand('mcePasteText', false, {\r
+ html : document.forms[0].htmlSource.value,\r
+ linebreaks : document.forms[0].linebreaks.checked\r
+ });\r
+\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function onLoadInit() {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ // Remove Gecko spellchecking\r
+ if (tinymce.isGecko)\r
+ document.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");\r
+\r
+ resizeInputs();\r
+}\r
+\r
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;\r
+\r
+function resizeInputs() {\r
+ if (!tinymce.isIE) {\r
+ wHeight = self.innerHeight-80;\r
+ wWidth = self.innerWidth-17;\r
+ } else {\r
+ wHeight = document.body.clientHeight-80;\r
+ wWidth = document.body.clientWidth-17;\r
+ }\r
+\r
+ document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px';\r
+ document.forms[0].htmlSource.style.width = Math.abs(wWidth) + 'px';\r
+}\r
+\r
+tinyMCEPopup.onInit.add(onLoadInit);
\ No newline at end of file
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+function saveContent() {\r
+ var html = document.getElementById("frmData").contentWindow.document.body.innerHTML;\r
+\r
+ if (html == ''){\r
+ tinyMCEPopup.close();\r
+ return false;\r
+ }\r
+\r
+ tinyMCEPopup.execCommand('mcePasteWord', false, html);\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function onLoadInit() {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ // Fix for endless reloading in FF\r
+ window.setTimeout(createIFrame, 10);\r
+}\r
+\r
+function createIFrame() {\r
+ document.getElementById('iframecontainer').innerHTML = '<iframe id="frmData" name="frmData" class="sourceIframe" src="blank.htm" height="280" width="400" frameborder="0" style="background-color:#FFFFFF; width:100%;" dir="ltr" wrap="soft"></iframe>';\r
+}\r
+\r
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;\r
+\r
+function initIframe(doc) {\r
+ var dir = tinyMCEPopup.editor.settings.directionality;\r
+\r
+ doc.body.dir = dir;\r
+\r
+ // Remove Gecko spellchecking\r
+ if (tinymce.isGecko)\r
+ doc.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");\r
+\r
+ resizeInputs();\r
+}\r
+\r
+function resizeInputs() {\r
+ if (!tinymce.isIE) {\r
+ wHeight = self.innerHeight - 80;\r
+ wWidth = self.innerWidth - 18;\r
+ } else {\r
+ wHeight = document.body.clientHeight - 80;\r
+ wWidth = document.body.clientWidth - 18;\r
+ }\r
+\r
+ var elm = document.getElementById('frmData');\r
+ if (elm) {\r
+ elm.style.height = Math.abs(wHeight) + 'px';\r
+ elm.style.width = Math.abs(wWidth) + 'px';\r
+ }\r
+}\r
+\r
+tinyMCEPopup.onInit.add(onLoadInit);\r
--- /dev/null
+tinyMCE.addI18n('en.paste_dlg',{\r
+text_title:"Use CTRL+V on your keyboard to paste the text into the window.",\r
+text_linebreaks:"Keep linebreaks",\r
+word_title:"Use CTRL+V on your keyboard to paste the text into the window."\r
+});
\ No newline at end of file
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#paste.paste_text_desc}</title>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="js/pastetext.js"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body onresize="resizeInputs();" style="display:none; overflow:hidden;">\r
+<form name="source" onsubmit="saveContent();return false;" action="#">\r
+ <div style="float: left" class="title">{#paste.paste_text_desc}</div>\r
+\r
+ <div style="float: right">\r
+ <input type="checkbox" name="linebreaks" id="linebreaks" class="wordWrapCode" checked="checked" /><label for="linebreaks">{#paste_dlg.text_linebreaks}</label>\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+\r
+ <div>{#paste_dlg.text_title}</div>\r
+\r
+ <textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft" class="mceFocus"></textarea>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" name="insert" value="{#insert}" id="insert" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body> \r
+</html>
\ No newline at end of file
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
+ <title>{#paste.paste_word_desc}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="js/pasteword.js"></script>\r
+ <link href="css/pasteword.css" rel="stylesheet" type="text/css" />\r
+ <base target="_self" />\r
+</head>\r
+<body onresize="resizeInputs();" style="display:none; overflow:hidden;">\r
+ <form name="source" onsubmit="saveContent();" action="#">\r
+ <div class="title">{#paste.paste_word_desc}</div>\r
+\r
+ <div>{#paste_dlg.word_title}</div>\r
+\r
+ <div id="iframecontainer"></div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="button" id="insert" name="insert" value="{#insert}" onclick="saveContent();" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+ </form>\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.Preview',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mcePreview',t._preview,t);ed.addButton('preview',{title:'preview.preview_desc',cmd:'mcePreview'});},getInfo:function(){return{longname:'Preview',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_preview:function(){var ed=this.editor,win,html,c,pos,pos2,css,i,page=ed.getParam("plugin_preview_pageurl",null),w=ed.getParam("plugin_preview_width","550"),h=ed.getParam("plugin_preview_height","600");if(page){ed.windowManager.open({file:ed.getParam("plugin_preview_pageurl",null),width:w,height:h},{resizable:"yes",scrollbars:"yes",inline:1});}else{win=window.open("","mcePreview","menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width="+w+",height="+h);html="";c=ed.getContent();pos=c.indexOf('<body');css=ed.getParam("content_css",'').split(',');tinymce.map(css,function(u){return ed.documentBaseURI.toAbsolute(u);});if(pos!=-1){pos=c.indexOf('>',pos);pos2=c.lastIndexOf('</body>');c=c.substring(pos+1,pos2);}html+=ed.getParam('doctype');html+='<html xmlns="http://www.w3.org/1999/xhtml">';html+='<head>';html+='<title>'+ed.getLang('preview.preview_desc')+'</title>';html+='<base href="'+ed.documentBaseURI.getURI()+'" />';html+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';for(i=0;i<css.length;i++)html+='<link href="'+css[i]+'" rel="stylesheet" type="text/css" />';html+='</head>';html+='<body dir="'+ed.getParam("directionality")+'" onload="window.opener.tinymce.EditorManager.get(\''+ed.id+'\').plugins[\'preview\']._onLoad(window,document);">';html+=c;html+='</body>';html+='</html>';win.document.write(html);win.document.close();}},_onLoad:function(w,d){var t=this,nl,i,el=[],sv,ne;t._doc=d;w.writeFlash=t._writeFlash;w.writeShockWave=t._writeShockWave;w.writeQuickTime=t._writeQuickTime;w.writeRealMedia=t._writeRealMedia;w.writeWindowsMedia=t._writeWindowsMedia;w.writeEmbed=t._writeEmbed;nl=d.getElementsByTagName("script");for(i=0;i<nl.length;i++){sv=tinymce.isIE?nl[i].innerHTML:nl[i].firstChild.nodeValue;if(new RegExp('write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\\(.*','g').test(sv))el[el.length]=nl[i];}for(i=0;i<el.length;i++){ne=d.createElement("div");ne.innerHTML=d._embeds[i];el[i].parentNode.insertBefore(ne.firstChild,el[i]);}},_writeFlash:function(p){p.src=this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('D27CDB6E-AE6D-11cf-96B8-444553540000','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0','application/x-shockwave-flash',p);},_writeShockWave:function(p){this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('166B1BCA-3F9C-11CF-8075-444553540000','http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0','application/x-director',p);},_writeQuickTime:function(p){this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('02BF25D5-8C17-4B23-BC80-D3488ABDDC6B','http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0','video/quicktime',p);},_writeRealMedia:function(p){this.editor.documentBaseURI.toAbsolute(p.src);TinyMCE_PreviewPlugin._writeEmbed('CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0','audio/x-pn-realaudio-plugin',p);},_writeWindowsMedia:function(p){this.editor.documentBaseURI.toAbsolute(p.src);p.url=p.src;TinyMCE_PreviewPlugin._writeEmbed('6BF52A52-394A-11D3-B153-00C04F79FAA6','http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701','application/x-mplayer2',p);},_writeEmbed:function(cls,cb,mt,p){var h='',n,d=t._doc,ne,c;h+='<object classid="clsid:'+cls+'" codebase="'+cb+'"';h+=typeof(p.id)!="undefined"?'id="'+p.id+'"':'';h+=typeof(p.name)!="undefined"?'name="'+p.name+'"':'';h+=typeof(p.width)!="undefined"?'width="'+p.width+'"':'';h+=typeof(p.height)!="undefined"?'height="'+p.height+'"':'';h+=typeof(p.align)!="undefined"?'align="'+p.align+'"':'';h+='>';for(n in p)h+='<param name="'+n+'" value="'+p[n]+'">';h+='<embed type="'+mt+'"';for(n in p)h+=n+'="'+p[n]+'" ';h+='></embed></object>';d._embeds[d._embeds.length]=h;}});tinymce.PluginManager.add('preview',tinymce.plugins.Preview);})();
\ No newline at end of file
--- /dev/null
+/**
+ * $Id$
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
+ */
+
+(function() {
+ tinymce.create('tinymce.plugins.Preview', {
+ init : function(ed, url) {
+ var t = this;
+
+ t.editor = ed;
+
+ ed.addCommand('mcePreview', t._preview, t);
+ ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'});
+ },
+
+ getInfo : function() {
+ return {
+ longname : 'Preview',
+ author : 'Moxiecode Systems AB',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
+ version : tinymce.majorVersion + "." + tinymce.minorVersion
+ };
+ },
+
+ // Private methods
+
+ _preview : function() {
+ var ed = this.editor, win, html, c, pos, pos2, css, i, page = ed.getParam("plugin_preview_pageurl", null), w = ed.getParam("plugin_preview_width", "550"), h = ed.getParam("plugin_preview_height", "600");
+
+ // Use a custom preview page
+ if (page) {
+ ed.windowManager.open({
+ file : ed.getParam("plugin_preview_pageurl", null),
+ width : w,
+ height : h
+ }, {
+ resizable : "yes",
+ scrollbars : "yes",
+ inline : 1
+ });
+ } else {
+ win = window.open("", "mcePreview", "menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width=" + w + ",height=" + h);
+ html = "";
+ c = ed.getContent();
+ pos = c.indexOf('<body');
+ css = ed.getParam("content_css", '').split(',');
+
+ tinymce.map(css, function(u) {
+ return ed.documentBaseURI.toAbsolute(u);
+ });
+
+ if (pos != -1) {
+ pos = c.indexOf('>', pos);
+ pos2 = c.lastIndexOf('</body>');
+ c = c.substring(pos + 1, pos2);
+ }
+
+ html += ed.getParam('doctype');
+ html += '<html xmlns="http://www.w3.org/1999/xhtml">';
+ html += '<head>';
+ html += '<title>' + ed.getLang('preview.preview_desc') + '</title>';
+ html += '<base href="' + ed.documentBaseURI.getURI() + '" />';
+ html += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
+
+ for (i=0; i<css.length; i++)
+ html += '<link href="' + css[i] + '" rel="stylesheet" type="text/css" />';
+
+ html += '</head>';
+ html += '<body dir="' + ed.getParam("directionality") + '" onload="window.opener.tinymce.EditorManager.get(\'' + ed.id + '\').plugins[\'preview\']._onLoad(window,document);">';
+ html += c;
+ html += '</body>';
+ html += '</html>';
+
+ win.document.write(html);
+ win.document.close();
+ }
+ },
+
+ _onLoad : function(w, d) {
+ var t = this, nl, i, el = [], sv, ne;
+
+ t._doc = d;
+ w.writeFlash = t._writeFlash;
+ w.writeShockWave = t._writeShockWave;
+ w.writeQuickTime = t._writeQuickTime;
+ w.writeRealMedia = t._writeRealMedia;
+ w.writeWindowsMedia = t._writeWindowsMedia;
+ w.writeEmbed = t._writeEmbed;
+
+ nl = d.getElementsByTagName("script");
+ for (i=0; i<nl.length; i++) {
+ sv = tinymce.isIE ? nl[i].innerHTML : nl[i].firstChild.nodeValue;
+
+ if (new RegExp('write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\\(.*', 'g').test(sv))
+ el[el.length] = nl[i];
+ }
+
+ for (i=0; i<el.length; i++) {
+ ne = d.createElement("div");
+ ne.innerHTML = d._embeds[i];
+ el[i].parentNode.insertBefore(ne.firstChild, el[i]);
+ }
+ },
+
+ _writeFlash : function(p) {
+ p.src = this.editor.documentBaseURI.toAbsolute(p.src);
+ TinyMCE_PreviewPlugin._writeEmbed(
+ 'D27CDB6E-AE6D-11cf-96B8-444553540000',
+ 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+ 'application/x-shockwave-flash',
+ p
+ );
+ },
+
+ _writeShockWave : function(p) {
+ this.editor.documentBaseURI.toAbsolute(p.src);
+ TinyMCE_PreviewPlugin._writeEmbed(
+ '166B1BCA-3F9C-11CF-8075-444553540000',
+ 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
+ 'application/x-director',
+ p
+ );
+ },
+
+ _writeQuickTime : function(p) {
+ this.editor.documentBaseURI.toAbsolute(p.src);
+ TinyMCE_PreviewPlugin._writeEmbed(
+ '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
+ 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
+ 'video/quicktime',
+ p
+ );
+ },
+
+ _writeRealMedia : function(p) {
+ this.editor.documentBaseURI.toAbsolute(p.src);
+ TinyMCE_PreviewPlugin._writeEmbed(
+ 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
+ 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
+ 'audio/x-pn-realaudio-plugin',
+ p
+ );
+ },
+
+ _writeWindowsMedia : function(p) {
+ this.editor.documentBaseURI.toAbsolute(p.src);
+ p.url = p.src;
+ TinyMCE_PreviewPlugin._writeEmbed(
+ '6BF52A52-394A-11D3-B153-00C04F79FAA6',
+ 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
+ 'application/x-mplayer2',
+ p
+ );
+ },
+
+ _writeEmbed : function(cls, cb, mt, p) {
+ var h = '', n, d = t._doc, ne, c;
+
+ h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
+ h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
+ h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
+ h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
+ h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
+ h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
+ h += '>';
+
+ for (n in p)
+ h += '<param name="' + n + '" value="' + p[n] + '">';
+
+ h += '<embed type="' + mt + '"';
+
+ for (n in p)
+ h += n + '="' + p[n] + '" ';
+
+ h += '></embed></object>';
+
+ d._embeds[d._embeds.length] = h;
+ }
+ });
+
+ // Register plugin
+ tinymce.PluginManager.add('preview', tinymce.plugins.Preview);
+})();
\ No newline at end of file
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+<script language="javascript" src="../../tiny_mce_popup.js"></script>\r
+<script type="text/javascript" src="jscripts/embed.js"></script>\r
+<script type="text/javascript">\r
+tinyMCEPopup.onInit.add(function(ed) {\r
+ var dom = tinyMCEPopup.dom;\r
+\r
+ // Load editor content_css\r
+ tinymce.each(ed.settings.content_css.split(','), function(u) {\r
+ dom.loadCSS(ed.documentBaseURI.toAbsolute(u));\r
+ });\r
+\r
+ // Place contents inside div container\r
+ dom.setHTML('content', ed.getContent());\r
+});\r
+</script>\r
+<title>Example of a custom preview page</title>\r
+</head>\r
+<body>\r
+\r
+Editor contents: <br />\r
+<div id="content">\r
+<!-- Gets filled with editor contents -->\r
+</div>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+/**\r
+ * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.\r
+ */\r
+\r
+function writeFlash(p) {\r
+ writeEmbed(\r
+ 'D27CDB6E-AE6D-11cf-96B8-444553540000',\r
+ 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
+ 'application/x-shockwave-flash',\r
+ p\r
+ );\r
+}\r
+\r
+function writeShockWave(p) {\r
+ writeEmbed(\r
+ '166B1BCA-3F9C-11CF-8075-444553540000',\r
+ 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',\r
+ 'application/x-director',\r
+ p\r
+ );\r
+}\r
+\r
+function writeQuickTime(p) {\r
+ writeEmbed(\r
+ '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',\r
+ 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',\r
+ 'video/quicktime',\r
+ p\r
+ );\r
+}\r
+\r
+function writeRealMedia(p) {\r
+ writeEmbed(\r
+ 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',\r
+ 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
+ 'audio/x-pn-realaudio-plugin',\r
+ p\r
+ );\r
+}\r
+\r
+function writeWindowsMedia(p) {\r
+ p.url = p.src;\r
+ writeEmbed(\r
+ '6BF52A52-394A-11D3-B153-00C04F79FAA6',\r
+ 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',\r
+ 'application/x-mplayer2',\r
+ p\r
+ );\r
+}\r
+\r
+function writeEmbed(cls, cb, mt, p) {\r
+ var h = '', n;\r
+\r
+ h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';\r
+ h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';\r
+ h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';\r
+ h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';\r
+ h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';\r
+ h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';\r
+ h += '>';\r
+\r
+ for (n in p)\r
+ h += '<param name="' + n + '" value="' + p[n] + '">';\r
+\r
+ h += '<embed type="' + mt + '"';\r
+\r
+ for (n in p)\r
+ h += n + '="' + p[n] + '" ';\r
+\r
+ h += '></embed></object>';\r
+\r
+ document.write(h);\r
+}\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.Print',{init:function(ed,url){ed.addCommand('mcePrint',function(){ed.getWin().print();});ed.addButton('print',{title:'print.print_desc',cmd:'mcePrint'});},getInfo:function(){return{longname:'Print',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('print',tinymce.plugins.Print);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.Print', {\r
+ init : function(ed, url) {\r
+ ed.addCommand('mcePrint', function() {\r
+ ed.getWin().print();\r
+ });\r
+\r
+ ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'});\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Print',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('print', tinymce.plugins.Print);\r
+})();\r
--- /dev/null
+<!-- WebKit -->
\ No newline at end of file
--- /dev/null
+(function(){var Event=tinymce.dom.Event,grep=tinymce.grep,each=tinymce.each,inArray=tinymce.inArray,isOldWebKit=tinymce.isOldWebKit;tinymce.create('tinymce.plugins.Safari',{init:function(ed){var t=this,dom;if(!tinymce.isWebKit)return;t.editor=ed;t.webKitFontSizes=['x-small','small','medium','large','x-large','xx-large','-webkit-xxx-large'];t.namedFontSizes=['xx-small','x-small','small','medium','large','x-large','xx-large'];ed.onKeyUp.add(function(ed,e){var h;if(e.keyCode==46||e.keyCode==8){h=ed.getBody().innerHTML;if(!/<(img|hr)/.test(h)&&tinymce.trim(h.replace(/<[^>]+>/g,'')).length==0)ed.setContent('',{format:'raw'});}});ed.addCommand('FormatBlock',function(u,v){var dom=ed.dom,e=dom.getParent(ed.selection.getNode(),dom.isBlock);if(e)dom.replace(dom.create(v),e,1);else ed.getDoc().execCommand("FormatBlock",false,v);});ed.addCommand('mceInsertContent',function(u,v){ed.getDoc().execCommand("InsertText",false,'mce_marker');ed.getBody().innerHTML=ed.getBody().innerHTML.replace(/mce_marker/g,v+'<span id="_mce_tmp">XX</span>');ed.selection.select(ed.dom.get('_mce_tmp'));ed.getDoc().execCommand("Delete",false,' ');});ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&(e.shiftKey||ed.settings.force_br_newlines&&ed.selection.getNode().nodeName!='LI')){t._insertBR(ed);Event.cancel(e);}});ed.addQueryValueHandler('FontSize',function(u,v){var e,v;if((e=ed.dom.getParent(ed.selection.getStart(),'span'))&&(v=e.style.fontSize))return tinymce.inArray(t.namedFontSizes,v)+1;if((e=ed.dom.getParent(ed.selection.getEnd(),'span'))&&(v=e.style.fontSize))return tinymce.inArray(t.namedFontSizes,v)+1;return ed.getDoc().queryCommandValue('FontSize');});ed.addQueryValueHandler('FontName',function(u,v){var e,v;if((e=ed.dom.getParent(ed.selection.getStart(),'span'))&&(v=e.style.fontFamily))return v.replace(/, /g,',');if((e=ed.dom.getParent(ed.selection.getEnd(),'span'))&&(v=e.style.fontFamily))return v.replace(/, /g,',');return ed.getDoc().queryCommandValue('FontName');});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName=='IMG'){t.selElm=e;ed.selection.select(e);}else t.selElm=null;});ed.onBeforeExecCommand.add(function(ed,c,b){var r=t.bookmarkRng;if(r){ed.selection.setRng(r);t.bookmarkRng=null;}});ed.onInit.add(function(){t._fixWebKitSpans();ed.windowManager.onOpen.add(function(){var r=ed.selection.getRng();if(r.startContainer!=ed.getDoc()){t.bookmarkRng=r.cloneRange();}});ed.windowManager.onClose.add(function(){t.bookmarkRng=null;});if(isOldWebKit)t._patchSafari2x(ed);});ed.onSetContent.add(function(){dom=ed.dom;each(['strong','b','em','u','strike','sub','sup','a'],function(v){each(grep(dom.select(v)).reverse(),function(n){var nn=n.nodeName.toLowerCase(),st;if(nn=='a'){if(n.name)dom.replace(dom.create('img',{mce_name:'a',name:n.name,'class':'mceItemAnchor'}),n);return;}switch(nn){case'b':case'strong':if(nn=='b')nn='strong';st='font-weight: bold;';break;case'em':st='font-style: italic;';break;case'u':st='text-decoration: underline;';break;case'sub':st='vertical-align: sub;';break;case'sup':st='vertical-align: super;';break;case'strike':st='text-decoration: line-through;';break;}dom.replace(dom.create('span',{mce_name:nn,style:st,'class':'Apple-style-span'}),n,1);});});});ed.onPreProcess.add(function(ed,o){dom=ed.dom;each(grep(o.node.getElementsByTagName('span')).reverse(),function(n){var v,bg;if(o.get){if(dom.hasClass(n,'Apple-style-span')){bg=n.style.backgroundColor;switch(dom.getAttrib(n,'mce_name')){case'font':if(!ed.settings.convert_fonts_to_spans)dom.setAttrib(n,'style','');break;case'strong':case'em':case'sub':case'sup':dom.setAttrib(n,'style','');break;case'strike':case'u':if(!ed.settings.inline_styles)dom.setAttrib(n,'style','');else dom.setAttrib(n,'mce_name','');break;default:if(!ed.settings.inline_styles)dom.setAttrib(n,'style','');}if(bg)n.style.backgroundColor=bg;}}if(dom.hasClass(n,'mceItemRemoved'))dom.remove(n,1);});});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g,'</$1>');o.content=o.content.replace(/ id=\"undefined\"/g,'');});},_fixWebKitSpans:function(){var t=this,ed=t.editor;if(!isOldWebKit){Event.add(ed.getDoc(),'DOMNodeInserted',function(e){e=e.target;if(e&&e.nodeType==1)t._fixAppleSpan(e);});}else{ed.onExecCommand.add(function(){each(ed.dom.select('span'),function(n){t._fixAppleSpan(n);});ed.nodeChanged();});}},_fixAppleSpan:function(e){var ed=this.editor,dom=ed.dom,fz=this.webKitFontSizes,fzn=this.namedFontSizes,s=ed.settings,st,p;if(dom.getAttrib(e,'mce_fixed'))return;if(e.nodeName=='SPAN'&&e.className=='Apple-style-span'){st=e.style;if(!s.convert_fonts_to_spans){if(st.fontSize){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'size',inArray(fz,st.fontSize)+1);}if(st.fontFamily){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'face',st.fontFamily);}if(st.color){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'color',dom.toHex(st.color));}if(st.backgroundColor){dom.setAttrib(e,'mce_name','font');dom.setStyle(e,'background-color',st.backgroundColor);}}else{if(st.fontSize)dom.setStyle(e,'fontSize',fzn[inArray(fz,st.fontSize)]);}if(st.fontWeight=='bold')dom.setAttrib(e,'mce_name','strong');if(st.fontStyle=='italic')dom.setAttrib(e,'mce_name','em');if(st.textDecoration=='underline')dom.setAttrib(e,'mce_name','u');if(st.textDecoration=='line-through')dom.setAttrib(e,'mce_name','strike');if(st.verticalAlign=='super')dom.setAttrib(e,'mce_name','sup');if(st.verticalAlign=='sub')dom.setAttrib(e,'mce_name','sub');dom.setAttrib(e,'mce_fixed','1');}},_patchSafari2x:function(ed){var t=this,setContent,getNode,dom=ed.dom,lr;if(ed.windowManager.onBeforeOpen){ed.windowManager.onBeforeOpen.add(function(){r=ed.selection.getRng();});}ed.selection.select=function(n){this.getSel().setBaseAndExtent(n,0,n,1);};getNode=ed.selection.getNode;ed.selection.getNode=function(){return t.selElm||getNode.call(this);};ed.selection.getRng=function(){var t=this,s=t.getSel(),d=ed.getDoc(),r,rb,ra,di;if(s.anchorNode){r=d.createRange();try{rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(1);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(1);di=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;r.setStart(di?s.anchorNode:s.focusNode,di?s.anchorOffset:s.focusOffset);r.setEnd(di?s.focusNode:s.anchorNode,di?s.focusOffset:s.anchorOffset);lr=r;}catch(ex){}}return r||lr;};setContent=ed.selection.setContent;ed.selection.setContent=function(h,s){var r=this.getRng(),b;try{setContent.call(this,h,s);}catch(ex){b=dom.create('body');b.innerHTML=h;each(b.childNodes,function(n){r.insertNode(n.cloneNode(true));});}};},_insertBR:function(ed){var dom=ed.dom,s=ed.selection,r=s.getRng(),br;r.insertNode(br=dom.create('br'));r.setStartAfter(br);r.setEndAfter(br);s.setRng(r);if(s.getSel().focusNode==br.previousSibling){s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'),br));s.collapse(1);}ed.getWin().scrollTo(0,dom.getPos(s.getRng().startContainer).y);}});tinymce.PluginManager.add('safari',tinymce.plugins.Safari);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray, isOldWebKit = tinymce.isOldWebKit;\r
+\r
+ tinymce.create('tinymce.plugins.Safari', {\r
+ init : function(ed) {\r
+ var t = this, dom;\r
+\r
+ // Ignore on non webkit\r
+ if (!tinymce.isWebKit)\r
+ return;\r
+\r
+ t.editor = ed;\r
+ t.webKitFontSizes = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', '-webkit-xxx-large'];\r
+ t.namedFontSizes = ['xx-small', 'x-small','small','medium','large','x-large', 'xx-large'];\r
+\r
+ // Safari will crash if the build in createlink command is used\r
+/* ed.addCommand('CreateLink', function(u, v) {\r
+ ed.execCommand("mceInsertContent", false, '<a href="' + dom.encode(v) + '">' + ed.selection.getContent() + '</a>');\r
+ });*/\r
+\r
+ ed.onKeyUp.add(function(ed, e) {\r
+ var h;\r
+\r
+ // If backspace or delete key\r
+ if (e.keyCode == 46 || e.keyCode == 8) {\r
+ h = ed.getBody().innerHTML;\r
+\r
+ // If there is no text content or images or hr elements then remove everything\r
+ if (!/<(img|hr)/.test(h) && tinymce.trim(h.replace(/<[^>]+>/g, '')).length == 0)\r
+ ed.setContent('', {format : 'raw'});\r
+ }\r
+ });\r
+\r
+ // Workaround for FormatBlock bug, http://bugs.webkit.org/show_bug.cgi?id=16004\r
+ ed.addCommand('FormatBlock', function(u, v) {\r
+ var dom = ed.dom, e = dom.getParent(ed.selection.getNode(), dom.isBlock);\r
+\r
+ if (e)\r
+ dom.replace(dom.create(v), e, 1);\r
+ else\r
+ ed.getDoc().execCommand("FormatBlock", false, v);\r
+ });\r
+\r
+ // Workaround for InsertHTML bug, http://bugs.webkit.org/show_bug.cgi?id=16382\r
+ ed.addCommand('mceInsertContent', function(u, v) {\r
+ ed.getDoc().execCommand("InsertText", false, 'mce_marker');\r
+ ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, v + '<span id="_mce_tmp">XX</span>');\r
+ ed.selection.select(ed.dom.get('_mce_tmp'));\r
+ ed.getDoc().execCommand("Delete", false, ' ');\r
+ });\r
+\r
+ // Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973\r
+ ed.onKeyPress.add(function(ed, e) {\r
+ if (e.keyCode == 13 && (e.shiftKey || ed.settings.force_br_newlines && ed.selection.getNode().nodeName != 'LI')) {\r
+ t._insertBR(ed);\r
+ Event.cancel(e);\r
+ }\r
+ });\r
+\r
+ // Safari returns incorrect values\r
+ ed.addQueryValueHandler('FontSize', function(u, v) {\r
+ var e, v;\r
+\r
+ // Check for the real font size at the start of selection\r
+ if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) && (v = e.style.fontSize))\r
+ return tinymce.inArray(t.namedFontSizes, v) + 1;\r
+\r
+ // Check for the real font size at the end of selection\r
+ if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) && (v = e.style.fontSize))\r
+ return tinymce.inArray(t.namedFontSizes, v) + 1;\r
+\r
+ // Return default value it's better than nothing right!\r
+ return ed.getDoc().queryCommandValue('FontSize');\r
+ });\r
+\r
+ // Safari returns incorrect values\r
+ ed.addQueryValueHandler('FontName', function(u, v) {\r
+ var e, v;\r
+\r
+ // Check for the real font name at the start of selection\r
+ if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) && (v = e.style.fontFamily))\r
+ return v.replace(/, /g, ',');\r
+\r
+ // Check for the real font name at the end of selection\r
+ if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) && (v = e.style.fontFamily))\r
+ return v.replace(/, /g, ',');\r
+\r
+ // Return default value it's better than nothing right!\r
+ return ed.getDoc().queryCommandValue('FontName');\r
+ });\r
+\r
+ // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250\r
+ ed.onClick.add(function(ed, e) {\r
+ e = e.target;\r
+\r
+ if (e.nodeName == 'IMG') {\r
+ t.selElm = e;\r
+ ed.selection.select(e);\r
+ } else\r
+ t.selElm = null;\r
+ });\r
+\r
+ ed.onBeforeExecCommand.add(function(ed, c, b) {\r
+ var r = t.bookmarkRng;\r
+\r
+ // Restore selection\r
+ if (r) {\r
+ ed.selection.setRng(r);\r
+ t.bookmarkRng = null;\r
+ //console.debug('restore', r.startContainer, r.startOffset, r.endContainer, r.endOffset);\r
+ }\r
+ });\r
+\r
+ ed.onInit.add(function() {\r
+ t._fixWebKitSpans();\r
+\r
+ ed.windowManager.onOpen.add(function() {\r
+ var r = ed.selection.getRng();\r
+\r
+ // Store selection if valid\r
+ if (r.startContainer != ed.getDoc()) {\r
+ t.bookmarkRng = r.cloneRange();\r
+ //console.debug('store', r.startContainer, r.startOffset, r.endContainer, r.endOffset);\r
+ }\r
+ });\r
+\r
+ ed.windowManager.onClose.add(function() {\r
+ t.bookmarkRng = null;\r
+ });\r
+\r
+ if (isOldWebKit)\r
+ t._patchSafari2x(ed);\r
+ });\r
+\r
+ ed.onSetContent.add(function() {\r
+ dom = ed.dom;\r
+\r
+ // Convert strong,b,em,u,strike to spans\r
+ each(['strong','b','em','u','strike','sub','sup','a'], function(v) {\r
+ each(grep(dom.select(v)).reverse(), function(n) {\r
+ var nn = n.nodeName.toLowerCase(), st;\r
+\r
+ // Convert anchors into images\r
+ if (nn == 'a') {\r
+ if (n.name)\r
+ dom.replace(dom.create('img', {mce_name : 'a', name : n.name, 'class' : 'mceItemAnchor'}), n);\r
+\r
+ return;\r
+ }\r
+\r
+ switch (nn) {\r
+ case 'b':\r
+ case 'strong':\r
+ if (nn == 'b')\r
+ nn = 'strong';\r
+\r
+ st = 'font-weight: bold;';\r
+ break;\r
+\r
+ case 'em':\r
+ st = 'font-style: italic;';\r
+ break;\r
+\r
+ case 'u':\r
+ st = 'text-decoration: underline;';\r
+ break;\r
+\r
+ case 'sub':\r
+ st = 'vertical-align: sub;';\r
+ break;\r
+\r
+ case 'sup':\r
+ st = 'vertical-align: super;';\r
+ break;\r
+\r
+ case 'strike':\r
+ st = 'text-decoration: line-through;';\r
+ break;\r
+ }\r
+\r
+ dom.replace(dom.create('span', {mce_name : nn, style : st, 'class' : 'Apple-style-span'}), n, 1);\r
+ });\r
+ });\r
+ });\r
+\r
+ ed.onPreProcess.add(function(ed, o) {\r
+ dom = ed.dom;\r
+\r
+ each(grep(o.node.getElementsByTagName('span')).reverse(), function(n) {\r
+ var v, bg;\r
+\r
+ if (o.get) {\r
+ if (dom.hasClass(n, 'Apple-style-span')) {\r
+ bg = n.style.backgroundColor;\r
+\r
+ switch (dom.getAttrib(n, 'mce_name')) {\r
+ case 'font':\r
+ if (!ed.settings.convert_fonts_to_spans)\r
+ dom.setAttrib(n, 'style', '');\r
+ break;\r
+\r
+ case 'strong':\r
+ case 'em':\r
+ case 'sub':\r
+ case 'sup':\r
+ dom.setAttrib(n, 'style', '');\r
+ break;\r
+\r
+ case 'strike':\r
+ case 'u':\r
+ if (!ed.settings.inline_styles)\r
+ dom.setAttrib(n, 'style', '');\r
+ else\r
+ dom.setAttrib(n, 'mce_name', '');\r
+\r
+ break;\r
+\r
+ default:\r
+ if (!ed.settings.inline_styles)\r
+ dom.setAttrib(n, 'style', '');\r
+ }\r
+\r
+\r
+ if (bg)\r
+ n.style.backgroundColor = bg;\r
+ }\r
+ }\r
+\r
+ if (dom.hasClass(n, 'mceItemRemoved'))\r
+ dom.remove(n, 1);\r
+ });\r
+ });\r
+\r
+ ed.onPostProcess.add(function(ed, o) {\r
+ // Safari adds BR at end of all block elements\r
+ o.content = o.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g, '</$1>');\r
+\r
+ // Safari adds id="undefined" to HR elements\r
+ o.content = o.content.replace(/ id=\"undefined\"/g, '');\r
+ });\r
+ },\r
+\r
+ _fixWebKitSpans : function() {\r
+ var t = this, ed = t.editor;\r
+\r
+ if (!isOldWebKit) {\r
+ // Use mutator events on new WebKit\r
+ Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {\r
+ e = e.target;\r
+\r
+ if (e && e.nodeType == 1)\r
+ t._fixAppleSpan(e);\r
+ });\r
+ } else {\r
+ // Do post command processing in old WebKit since the browser crashes on Mutator events :(\r
+ ed.onExecCommand.add(function() {\r
+ each(ed.dom.select('span'), function(n) {\r
+ t._fixAppleSpan(n);\r
+ });\r
+\r
+ ed.nodeChanged();\r
+ });\r
+ }\r
+ },\r
+\r
+ _fixAppleSpan : function(e) {\r
+ var ed = this.editor, dom = ed.dom, fz = this.webKitFontSizes, fzn = this.namedFontSizes, s = ed.settings, st, p;\r
+\r
+ if (dom.getAttrib(e, 'mce_fixed'))\r
+ return;\r
+\r
+ // Handle Apple style spans\r
+ if (e.nodeName == 'SPAN' && e.className == 'Apple-style-span') {\r
+ st = e.style;\r
+\r
+ if (!s.convert_fonts_to_spans) {\r
+ if (st.fontSize) {\r
+ dom.setAttrib(e, 'mce_name', 'font');\r
+ dom.setAttrib(e, 'size', inArray(fz, st.fontSize) + 1);\r
+ }\r
+\r
+ if (st.fontFamily) {\r
+ dom.setAttrib(e, 'mce_name', 'font');\r
+ dom.setAttrib(e, 'face', st.fontFamily);\r
+ }\r
+\r
+ if (st.color) {\r
+ dom.setAttrib(e, 'mce_name', 'font');\r
+ dom.setAttrib(e, 'color', dom.toHex(st.color));\r
+ }\r
+\r
+ if (st.backgroundColor) {\r
+ dom.setAttrib(e, 'mce_name', 'font');\r
+ dom.setStyle(e, 'background-color', st.backgroundColor);\r
+ }\r
+ } else {\r
+ if (st.fontSize)\r
+ dom.setStyle(e, 'fontSize', fzn[inArray(fz, st.fontSize)]);\r
+ }\r
+\r
+ if (st.fontWeight == 'bold')\r
+ dom.setAttrib(e, 'mce_name', 'strong');\r
+\r
+ if (st.fontStyle == 'italic')\r
+ dom.setAttrib(e, 'mce_name', 'em');\r
+\r
+ if (st.textDecoration == 'underline')\r
+ dom.setAttrib(e, 'mce_name', 'u');\r
+\r
+ if (st.textDecoration == 'line-through')\r
+ dom.setAttrib(e, 'mce_name', 'strike');\r
+\r
+ if (st.verticalAlign == 'super')\r
+ dom.setAttrib(e, 'mce_name', 'sup');\r
+\r
+ if (st.verticalAlign == 'sub')\r
+ dom.setAttrib(e, 'mce_name', 'sub');\r
+\r
+ dom.setAttrib(e, 'mce_fixed', '1');\r
+ }\r
+ },\r
+\r
+ _patchSafari2x : function(ed) {\r
+ var t = this, setContent, getNode, dom = ed.dom, lr;\r
+\r
+ // Inline dialogs\r
+ if (ed.windowManager.onBeforeOpen) {\r
+ ed.windowManager.onBeforeOpen.add(function() {\r
+ r = ed.selection.getRng();\r
+ });\r
+ }\r
+\r
+ // Fake select on 2.x\r
+ ed.selection.select = function(n) {\r
+ this.getSel().setBaseAndExtent(n, 0, n, 1);\r
+ };\r
+\r
+ getNode = ed.selection.getNode;\r
+ ed.selection.getNode = function() {\r
+ return t.selElm || getNode.call(this);\r
+ };\r
+\r
+ // Fake range on Safari 2.x\r
+ ed.selection.getRng = function() {\r
+ var t = this, s = t.getSel(), d = ed.getDoc(), r, rb, ra, di;\r
+\r
+ // Fake range on Safari 2.x\r
+ if (s.anchorNode) {\r
+ r = d.createRange();\r
+\r
+ try {\r
+ // Setup before range\r
+ rb = d.createRange();\r
+ rb.setStart(s.anchorNode, s.anchorOffset);\r
+ rb.collapse(1);\r
+\r
+ // Setup after range\r
+ ra = d.createRange();\r
+ ra.setStart(s.focusNode, s.focusOffset);\r
+ ra.collapse(1);\r
+\r
+ // Setup start/end points by comparing locations\r
+ di = rb.compareBoundaryPoints(rb.START_TO_END, ra) < 0;\r
+ r.setStart(di ? s.anchorNode : s.focusNode, di ? s.anchorOffset : s.focusOffset);\r
+ r.setEnd(di ? s.focusNode : s.anchorNode, di ? s.focusOffset : s.anchorOffset);\r
+\r
+ lr = r;\r
+ } catch (ex) {\r
+ // Sometimes fails, at least we tried to do it by the book. I hope Safari 2.x will go disappear soooon!!!\r
+ }\r
+ }\r
+\r
+ return r || lr;\r
+ };\r
+\r
+ // Fix setContent so it works\r
+ setContent = ed.selection.setContent;\r
+ ed.selection.setContent = function(h, s) {\r
+ var r = this.getRng(), b;\r
+\r
+ try {\r
+ setContent.call(this, h, s);\r
+ } catch (ex) {\r
+ // Workaround for Safari 2.x\r
+ b = dom.create('body');\r
+ b.innerHTML = h;\r
+\r
+ each(b.childNodes, function(n) {\r
+ r.insertNode(n.cloneNode(true));\r
+ });\r
+ }\r
+ };\r
+ },\r
+\r
+ _insertBR : function(ed) {\r
+ var dom = ed.dom, s = ed.selection, r = s.getRng(), br;\r
+\r
+ // Insert BR element\r
+ r.insertNode(br = dom.create('br'));\r
+\r
+ // Place caret after BR\r
+ r.setStartAfter(br);\r
+ r.setEndAfter(br);\r
+ s.setRng(r);\r
+\r
+ // Could not place caret after BR then insert an nbsp entity and move the caret\r
+ if (s.getSel().focusNode == br.previousSibling) {\r
+ s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'), br));\r
+ s.collapse(1);\r
+ }\r
+\r
+ // Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117\r
+ ed.getWin().scrollTo(0, dom.getPos(s.getRng().startContainer).y);\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('safari', tinymce.plugins.Safari);\r
+})();\r
+\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.Save',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceSave',t._save,t);ed.addCommand('mceCancel',t._cancel,t);ed.addButton('save',{title:'save.save_desc',cmd:'mceSave'});ed.addButton('cancel',{title:'save.cancel_desc',cmd:'mceCancel'});ed.onNodeChange.add(t._nodeChange,t);ed.addShortcut('ctrl+s',ed.getLang('save.save_desc'),'mceSave');},getInfo:function(){return{longname:'Save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var ed=this.editor;if(ed.getParam('save_enablewhendirty')){cm.setDisabled('save',!ed.isDirty());cm.setDisabled('cancel',!ed.isDirty());}},_save:function(){var ed=this.editor,formObj,os,i,elementId;formObj=tinymce.DOM.get(ed.id).form||tinymce.DOM.getParent(ed.id,'form');if(ed.getParam("save_enablewhendirty")&&!ed.isDirty())return true;tinyMCE.triggerSave();if(os=ed.getParam("save_onsavecallback")){if(ed.execCallback('save_onsavecallback',ed)){ed.startContent=tinymce.trim(ed.getContent({format:'raw'}));ed.nodeChanged();}return;}if(formObj){ed.isNotDirty=true;if(formObj.onsubmit==null||formObj.onsubmit()!=false)formObj.submit();ed.nodeChanged();}else ed.windowManager.alert("Error: No form element found.");return true;},_cancel:function(){var ed=this.editor,os,h=tinymce.trim(ed.startContent);if(os=ed.getParam("save_oncancelcallback")){ed.execCallback('save_oncancelcallback',ed);return;}ed.setContent(h);ed.undoManager.clear();ed.nodeChanged();}});tinymce.PluginManager.add('save',tinymce.plugins.Save);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.Save', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceSave', t._save, t);\r
+ ed.addCommand('mceCancel', t._cancel, t);\r
+\r
+ // Register buttons\r
+ ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'});\r
+ ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'});\r
+\r
+ ed.onNodeChange.add(t._nodeChange, t);\r
+ ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave');\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Save',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _nodeChange : function(ed, cm, n) {\r
+ var ed = this.editor;\r
+\r
+ if (ed.getParam('save_enablewhendirty')) {\r
+ cm.setDisabled('save', !ed.isDirty());\r
+ cm.setDisabled('cancel', !ed.isDirty());\r
+ }\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _save : function() {\r
+ var ed = this.editor, formObj, os, i, elementId;\r
+\r
+ formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');\r
+\r
+ if (ed.getParam("save_enablewhendirty") && !ed.isDirty())\r
+ return true;\r
+\r
+ tinyMCE.triggerSave();\r
+\r
+ // Use callback instead\r
+ if (os = ed.getParam("save_onsavecallback")) {\r
+ if (ed.execCallback('save_onsavecallback', ed)) {\r
+ ed.startContent = tinymce.trim(ed.getContent({format : 'raw'}));\r
+ ed.nodeChanged();\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ if (formObj) {\r
+ ed.isNotDirty = true;\r
+\r
+ if (formObj.onsubmit == null || formObj.onsubmit() != false)\r
+ formObj.submit();\r
+\r
+ ed.nodeChanged();\r
+ } else\r
+ ed.windowManager.alert("Error: No form element found.");\r
+\r
+ return true;\r
+ },\r
+\r
+ _cancel : function() {\r
+ var ed = this.editor, os, h = tinymce.trim(ed.startContent);\r
+\r
+ // Use callback instead\r
+ if (os = ed.getParam("save_oncancelcallback")) {\r
+ ed.execCallback('save_oncancelcallback', ed);\r
+ return;\r
+ }\r
+\r
+ ed.setContent(h);\r
+ ed.undoManager.clear();\r
+ ed.nodeChanged();\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('save', tinymce.plugins.Save);\r
+})();
\ No newline at end of file
--- /dev/null
+.panel_wrapper {height:85px;}\r
+.panel_wrapper div.current {height:85px;}\r
+\r
+/* IE */\r
+* html .panel_wrapper {height:100px;}\r
+* html .panel_wrapper div.current {height:100px;}\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.SearchReplacePlugin',{init:function(ed,url){function open(m){ed.windowManager.open({file:url+'/searchreplace.htm',width:420+parseInt(ed.getLang('searchreplace.delta_width',0)),height:160+parseInt(ed.getLang('searchreplace.delta_height',0)),inline:1,auto_focus:0},{mode:m,search_string:ed.selection.getContent({format:'text'}),plugin_url:url});};ed.addCommand('mceSearch',function(){open('search');});ed.addCommand('mceReplace',function(){open('replace');});ed.addButton('search',{title:'searchreplace.search_desc',cmd:'mceSearch'});ed.addButton('replace',{title:'searchreplace.replace_desc',cmd:'mceReplace'});ed.addShortcut('ctrl+f','searchreplace.search_desc','mceSearch');},getInfo:function(){return{longname:'Search/Replace',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('searchreplace',tinymce.plugins.SearchReplacePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.SearchReplacePlugin', {\r
+ init : function(ed, url) {\r
+ function open(m) {\r
+ ed.windowManager.open({\r
+ file : url + '/searchreplace.htm',\r
+ width : 420 + parseInt(ed.getLang('searchreplace.delta_width', 0)),\r
+ height : 160 + parseInt(ed.getLang('searchreplace.delta_height', 0)),\r
+ inline : 1,\r
+ auto_focus : 0\r
+ }, {\r
+ mode : m,\r
+ search_string : ed.selection.getContent({format : 'text'}),\r
+ plugin_url : url\r
+ });\r
+ };\r
+\r
+ // Register commands\r
+ ed.addCommand('mceSearch', function() {\r
+ open('search');\r
+ });\r
+\r
+ ed.addCommand('mceReplace', function() {\r
+ open('replace');\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('search', {title : 'searchreplace.search_desc', cmd : 'mceSearch'});\r
+ ed.addButton('replace', {title : 'searchreplace.replace_desc', cmd : 'mceReplace'});\r
+\r
+ ed.addShortcut('ctrl+f', 'searchreplace.search_desc', 'mceSearch');\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Search/Replace',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('searchreplace', tinymce.plugins.SearchReplacePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var SearchReplaceDialog = {\r
+ init : function(ed) {\r
+ var f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");\r
+\r
+ this.switchMode(m);\r
+\r
+ f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");\r
+\r
+ // Focus input field\r
+ f[m + '_panel_searchstring'].focus();\r
+ },\r
+\r
+ switchMode : function(m) {\r
+ var f, lm = this.lastMode;\r
+\r
+ if (lm != m) {\r
+ f = document.forms[0];\r
+\r
+ if (lm) {\r
+ f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value;\r
+ f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked;\r
+ f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked;\r
+ f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked;\r
+ }\r
+\r
+ mcTabs.displayTab(m + '_tab', m + '_panel');\r
+ document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none";\r
+ document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none";\r
+ this.lastMode = m;\r
+ }\r
+ },\r
+\r
+ searchNext : function(a) {\r
+ var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0;\r
+\r
+ // Get input\r
+ f = document.forms[0];\r
+ s = f[m + '_panel_searchstring'].value;\r
+ b = f[m + '_panel_backwardsu'].checked;\r
+ ca = f[m + '_panel_casesensitivebox'].checked;\r
+ rs = f['replace_panel_replacestring'].value;\r
+\r
+ function fix() {\r
+ // Correct Firefox graphics glitches\r
+ r = se.getRng().cloneRange();\r
+ ed.getDoc().execCommand('SelectAll', false, null);\r
+ se.setRng(r);\r
+ };\r
+\r
+ function replace() {\r
+ if (tinymce.isIE)\r
+ ed.selection.getRng().duplicate().pasteHTML(rs); // Needs to be duplicated due to selection bug in IE\r
+ else\r
+ ed.getDoc().execCommand('InsertHTML', false, rs);\r
+ };\r
+\r
+ // IE flags\r
+ if (ca)\r
+ fl = fl | 4;\r
+\r
+ switch (a) {\r
+ case 'all':\r
+ if (tinymce.isIE) {\r
+ while (r.findText(s, b ? -1 : 1, fl)) {\r
+ r.scrollIntoView();\r
+ r.select();\r
+ replace();\r
+ fo = 1;\r
+ }\r
+\r
+ tinyMCEPopup.storeSelection();\r
+ } else {\r
+ while (w.find(s, ca, b, false, false, false, false)) {\r
+ replace();\r
+ fo = 1;\r
+ }\r
+ }\r
+\r
+ if (fo)\r
+ wm.alert(ed.getLang('searchreplace_dlg.allreplaced'));\r
+ else\r
+ wm.alert(ed.getLang('searchreplace_dlg.notfound'));\r
+\r
+ return;\r
+\r
+ case 'current':\r
+ replace();\r
+ break;\r
+ }\r
+\r
+ se.collapse(b);\r
+ r = se.getRng();\r
+\r
+ // Whats the point\r
+ if (!s)\r
+ return;\r
+\r
+ if (tinymce.isIE) {\r
+ if (r.findText(s, b ? -1 : 1, fl)) {\r
+ r.scrollIntoView();\r
+ r.select();\r
+ } else\r
+ wm.alert(ed.getLang('searchreplace_dlg.notfound'));\r
+\r
+ tinyMCEPopup.storeSelection();\r
+ } else {\r
+ if (!w.find(s, ca, b, false, false, false, false))\r
+ wm.alert(ed.getLang('searchreplace_dlg.notfound'));\r
+ else\r
+ fix();\r
+ }\r
+ }\r
+};\r
+\r
+tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog);\r
--- /dev/null
+tinyMCE.addI18n('en.searchreplace_dlg',{\r
+searchnext_desc:"Find again",\r
+notfound:"The search has been completed. The search string could not be found.",\r
+search_title:"Find",\r
+replace_title:"Find/Replace",\r
+allreplaced:"All occurrences of the search string were replaced.",\r
+findwhat:"Find what",\r
+replacewith:"Replace with",\r
+direction:"Direction",\r
+up:"Up",\r
+down:"Down",\r
+mcase:"Match case",\r
+findnext:"Find next",\r
+replace:"Replace",\r
+replaceall:"Replace all"\r
+});
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#searchreplace_dlg.replace_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="js/searchreplace.js"></script>\r
+ <link rel="stylesheet" type="text/css" href="css/searchreplace.css" />\r
+ <base target="_self" />\r
+</head>\r
+<body style="display:none;">\r
+<form onsubmit="SearchReplaceDialog.searchNext('none');return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="search_tab"><span><a href="javascript:SearchReplaceDialog.switchMode('search');" onmousedown="return false;">{#searchreplace.search_desc}</a></span></li>\r
+ <li id="replace_tab"><span><a href="javascript:SearchReplaceDialog.switchMode('replace');" onmousedown="return false;">{#searchreplace_dlg.replace}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="search_panel" class="panel">\r
+ <table border="0" cellspacing="0" cellpadding="2">\r
+ <tr>\r
+ <td><label for="search_panel_searchstring">{#searchreplace_dlg.findwhat}</label></td>\r
+ <td><input type="text" id="search_panel_searchstring" name="search_panel_searchstring" style="width: 200px" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellspacing="0" cellpadding="0" class="direction">\r
+ <tr>\r
+ <td><label>{#searchreplace_dlg.direction}</label></td>\r
+ <td><input id="search_panel_backwardsu" name="search_panel_backwards" class="radio" type="radio" /></td>\r
+ <td><label for="search_panel_backwardsu">{#searchreplace_dlg.up}</label></td>\r
+ <td><input id="search_panel_backwardsd" name="search_panel_backwards" class="radio" type="radio" checked="checked" /></td>\r
+ <td><label for="search_panel_backwardsd">{#searchreplace_dlg.down}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td><input id="search_panel_casesensitivebox" name="search_panel_casesensitivebox" class="checkbox" type="checkbox" /></td>\r
+ <td><label for="search_panel_casesensitivebox">{#searchreplace_dlg.mcase}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+\r
+ <div id="replace_panel" class="panel">\r
+ <table border="0" cellspacing="0" cellpadding="2">\r
+ <tr>\r
+ <td><label for="replace_panel_searchstring">{#searchreplace_dlg.findwhat}</label></td>\r
+ <td><input type="text" id="replace_panel_searchstring" name="replace_panel_searchstring" style="width: 200px" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="replace_panel_replacestring">{#searchreplace_dlg.replacewith}</label></td>\r
+ <td><input type="text" id="replace_panel_replacestring" name="replace_panel_replacestring" style="width: 200px" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellspacing="0" cellpadding="0" class="direction">\r
+ <tr>\r
+ <td><label>{#searchreplace_dlg.direction}</label></td>\r
+ <td><input id="replace_panel_backwardsu" name="replace_panel_backwards" class="radio" type="radio" /></td>\r
+ <td><label for="replace_panel_backwardsu">{#searchreplace_dlg.up}</label></td>\r
+ <td><input id="replace_panel_backwardsd" name="replace_panel_backwards" class="radio" type="radio" checked="checked" /></td>\r
+ <td><label for="replace_panel_backwardsd">{#searchreplace_dlg.down}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td colspan="2">\r
+ <table border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td><input id="replace_panel_casesensitivebox" name="replace_panel_casesensitivebox" class="checkbox" type="checkbox" /></td>\r
+ <td><label for="replace_panel_casesensitivebox">{#searchreplace_dlg.mcase}</label></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#searchreplace_dlg.findnext}" />\r
+ <input type="button" class="button" id="replaceBtn" name="replaceBtn" value="{#searchreplace_dlg.replace}" onclick="SearchReplaceDialog.searchNext('current');" />\r
+ <input type="button" class="button" id="replaceAllBtn" name="replaceAllBtn" value="{#searchreplace_dlg.replaceall}" onclick="SearchReplaceDialog.searchNext('all');" />\r
+ </div>\r
+\r
+ <div style="float: right"> \r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;}\r
--- /dev/null
+(function(){var JSONRequest=tinymce.util.JSONRequest,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.SpellcheckerPlugin',{getInfo:function(){return{longname:'Spellchecker',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',version:tinymce.majorVersion+"."+tinymce.minorVersion};},init:function(ed,url){var t=this,cm;t.url=url;t.editor=ed;ed.addCommand('mceSpellCheck',function(){if(!t.active){ed.setProgressState(1);t._sendRPC('checkWords',[t.selectedLang,t._getWords()],function(r){if(r.length>0){t.active=1;t._markWords(r);ed.setProgressState(0);ed.nodeChanged();}else{ed.setProgressState(0);ed.windowManager.alert('spellchecker.no_mpell');}});}else t._done();});ed.onInit.add(function(){ed.dom.loadCSS(url+'/css/content.css');});ed.onClick.add(t._showMenu,t);ed.onContextMenu.add(t._showMenu,t);ed.onBeforeGetContent.add(function(){if(t.active)t._removeWords();});ed.onNodeChange.add(function(ed,cm){cm.setActive('spellchecker',t.active);});ed.onSetContent.add(function(){t._done();});ed.onBeforeGetContent.add(function(){t._done();});ed.onBeforeExecCommand.add(function(ed,cmd){if(cmd=='mceFullScreen')t._done();});t.languages={};each(ed.getParam('spellchecker_languages','+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv','hash'),function(v,k){if(k.indexOf('+')===0){k=k.substring(1);t.selectedLang=v;}t.languages[k]=v;});},createControl:function(n,cm){var t=this,c,ed=t.editor;if(n=='spellchecker'){c=cm.createSplitButton(n,{title:'spellchecker.desc',cmd:'mceSpellCheck',scope:t});c.onRenderMenu.add(function(c,m){m.add({title:'spellchecker.langs','class':'mceMenuItemTitle'}).setDisabled(1);each(t.languages,function(v,k){var o={icon:1},mi;o.onclick=function(){mi.setSelected(1);t.selectedItem.setSelected(0);t.selectedItem=mi;t.selectedLang=v;};o.title=k;mi=m.add(o);mi.setSelected(v==t.selectedLang);if(v==t.selectedLang)t.selectedItem=mi;})});return c;}},_walk:function(n,f){var d=this.editor.getDoc(),w;if(d.createTreeWalker){w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while((n=w.nextNode())!=null)f.call(this,n);}else tinymce.walk(n,f,'childNodes');},_getSeparators:function(){var re='',i,str=this.editor.getParam('spellchecker_word_separator_chars','\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}����������������\u201d\u201c');for(i=0;i<str.length;i++)re+='\\'+str.charAt(i);return re;},_getWords:function(){var ed=this.editor,wl=[],tx='',lo={};this._walk(ed.getBody(),function(n){if(n.nodeType==3)tx+=n.nodeValue+' ';});tx=tx.replace(new RegExp('([0-9]|['+this._getSeparators()+'])','g'),' ');tx=tinymce.trim(tx.replace(/(\s+)/g,' '));each(tx.split(' '),function(v){if(!lo[v]){wl.push(v);lo[v]=1;}});return wl;},_removeWords:function(w){var ed=this.editor,dom=ed.dom,se=ed.selection,b=se.getBookmark();each(dom.select('span').reverse(),function(n){if(n&&(dom.hasClass(n,'mceItemHiddenSpellWord')||dom.hasClass(n,'mceItemHidden'))){if(!w||dom.decode(n.innerHTML)==w)dom.remove(n,1);}});se.moveToBookmark(b);},_markWords:function(wl){var r1,r2,r3,r4,r5,w='',ed=this.editor,re=this._getSeparators(),dom=ed.dom,nl=[];var se=ed.selection,b=se.getBookmark();each(wl,function(v){w+=(w?'|':'')+v;});r1=new RegExp('(['+re+'])('+w+')(['+re+'])','g');r2=new RegExp('^('+w+')','g');r3=new RegExp('('+w+')(['+re+']?)$','g');r4=new RegExp('^('+w+')(['+re+']?)$','g');r5=new RegExp('('+w+')(['+re+'])','g');this._walk(this.editor.getBody(),function(n){if(n.nodeType==3){nl.push(n);}});each(nl,function(n){var v;if(n.nodeType==3){v=n.nodeValue;if(r1.test(v)||r2.test(v)||r3.test(v)||r4.test(v)){v=dom.encode(v);v=v.replace(r5,'<span class="mceItemHiddenSpellWord">$1</span>$2');v=v.replace(r3,'<span class="mceItemHiddenSpellWord">$1</span>$2');dom.replace(dom.create('span',{'class':'mceItemHidden'},v),n);}}});se.moveToBookmark(b);},_showMenu:function(ed,e){var t=this,ed=t.editor,m=t._menu,p1,dom=ed.dom,vp=dom.getViewPort(ed.getWin());if(!m){p1=DOM.getPos(ed.getContentAreaContainer());m=ed.controlManager.createDropMenu('spellcheckermenu',{offset_x:p1.x,offset_y:p1.y,'class':'noIcons'});t._menu=m;}if(dom.hasClass(e.target,'mceItemHiddenSpellWord')){m.removeAll();m.add({title:'spellchecker.wait','class':'mceMenuItemTitle'}).setDisabled(1);t._sendRPC('getSuggestions',[t.selectedLang,dom.decode(e.target.innerHTML)],function(r){m.removeAll();if(r.length>0){m.add({title:'spellchecker.sug','class':'mceMenuItemTitle'}).setDisabled(1);each(r,function(v){m.add({title:v,onclick:function(){dom.replace(ed.getDoc().createTextNode(v),e.target);t._checkDone();}});});m.addSeparator();}else m.add({title:'spellchecker.no_sug','class':'mceMenuItemTitle'}).setDisabled(1);m.add({title:'spellchecker.ignore_word',onclick:function(){dom.remove(e.target,1);t._checkDone();}});m.add({title:'spellchecker.ignore_words',onclick:function(){t._removeWords(dom.decode(e.target.innerHTML));t._checkDone();}});m.update();});ed.selection.select(e.target);p1=dom.getPos(e.target);m.showMenu(p1.x,p1.y+e.target.offsetHeight-vp.y);return tinymce.dom.Event.cancel(e);}else m.hideMenu();},_checkDone:function(){var t=this,ed=t.editor,dom=ed.dom,o;each(dom.select('span'),function(n){if(n&&dom.hasClass(n,'mceItemHiddenSpellWord')){o=true;return false;}});if(!o)t._done();},_done:function(){var t=this,la=t.active;if(t.active){t.active=0;t._removeWords();if(t._menu)t._menu.hideMenu();if(la)t.editor.nodeChanged();}},_sendRPC:function(m,p,cb){var t=this,url=t.editor.getParam("spellchecker_rpc_url","{backend}");if(url=='{backend}'){t.editor.setProgressState(0);alert('Please specify: spellchecker_rpc_url');return;}JSONRequest.sendRPC({url:url,method:m,params:p,success:cb,error:function(e,x){t.editor.setProgressState(0);t.editor.windowManager.alert(e.errstr||('Error response: '+x.responseText));}});}});tinymce.PluginManager.add('spellchecker',tinymce.plugins.SpellcheckerPlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM;\r
+\r
+ tinymce.create('tinymce.plugins.SpellcheckerPlugin', {\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Spellchecker',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ init : function(ed, url) {\r
+ var t = this, cm;\r
+\r
+ t.url = url;\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceSpellCheck', function() {\r
+ if (!t.active) {\r
+ ed.setProgressState(1);\r
+ t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) {\r
+ if (r.length > 0) {\r
+ t.active = 1;\r
+ t._markWords(r);\r
+ ed.setProgressState(0);\r
+ ed.nodeChanged();\r
+ } else {\r
+ ed.setProgressState(0);\r
+ ed.windowManager.alert('spellchecker.no_mpell');\r
+ }\r
+ });\r
+ } else\r
+ t._done();\r
+ });\r
+\r
+ ed.onInit.add(function() {\r
+ ed.dom.loadCSS(url + '/css/content.css');\r
+ });\r
+\r
+ ed.onClick.add(t._showMenu, t);\r
+ ed.onContextMenu.add(t._showMenu, t);\r
+ ed.onBeforeGetContent.add(function() {\r
+ if (t.active)\r
+ t._removeWords();\r
+ });\r
+\r
+ ed.onNodeChange.add(function(ed, cm) {\r
+ cm.setActive('spellchecker', t.active);\r
+ });\r
+\r
+ ed.onSetContent.add(function() {\r
+ t._done();\r
+ });\r
+\r
+ ed.onBeforeGetContent.add(function() {\r
+ t._done();\r
+ });\r
+\r
+ ed.onBeforeExecCommand.add(function(ed, cmd) {\r
+ if (cmd == 'mceFullScreen')\r
+ t._done();\r
+ });\r
+\r
+ // Find selected language\r
+ t.languages = {};\r
+ each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) {\r
+ if (k.indexOf('+') === 0) {\r
+ k = k.substring(1);\r
+ t.selectedLang = v;\r
+ }\r
+\r
+ t.languages[k] = v;\r
+ });\r
+ },\r
+\r
+ createControl : function(n, cm) {\r
+ var t = this, c, ed = t.editor;\r
+\r
+ if (n == 'spellchecker') {\r
+ c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});\r
+\r
+ c.onRenderMenu.add(function(c, m) {\r
+ m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
+ each(t.languages, function(v, k) {\r
+ var o = {icon : 1}, mi;\r
+\r
+ o.onclick = function() {\r
+ mi.setSelected(1);\r
+ t.selectedItem.setSelected(0);\r
+ t.selectedItem = mi;\r
+ t.selectedLang = v;\r
+ };\r
+\r
+ o.title = k;\r
+ mi = m.add(o);\r
+ mi.setSelected(v == t.selectedLang);\r
+\r
+ if (v == t.selectedLang)\r
+ t.selectedItem = mi;\r
+ })\r
+ });\r
+\r
+ return c;\r
+ }\r
+ },\r
+\r
+ // Internal functions\r
+\r
+ _walk : function(n, f) {\r
+ var d = this.editor.getDoc(), w;\r
+\r
+ if (d.createTreeWalker) {\r
+ w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);\r
+\r
+ while ((n = w.nextNode()) != null)\r
+ f.call(this, n);\r
+ } else\r
+ tinymce.walk(n, f, 'childNodes');\r
+ },\r
+\r
+ _getSeparators : function() {\r
+ var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');\r
+\r
+ // Build word separator regexp\r
+ for (i=0; i<str.length; i++)\r
+ re += '\\' + str.charAt(i);\r
+\r
+ return re;\r
+ },\r
+\r
+ _getWords : function() {\r
+ var ed = this.editor, wl = [], tx = '', lo = {};\r
+\r
+ // Get area text\r
+ this._walk(ed.getBody(), function(n) {\r
+ if (n.nodeType == 3)\r
+ tx += n.nodeValue + ' ';\r
+ });\r
+\r
+ // Split words by separator\r
+ tx = tx.replace(new RegExp('([0-9]|[' + this._getSeparators() + '])', 'g'), ' ');\r
+ tx = tinymce.trim(tx.replace(/(\s+)/g, ' '));\r
+\r
+ // Build word array and remove duplicates\r
+ each(tx.split(' '), function(v) {\r
+ if (!lo[v]) {\r
+ wl.push(v);\r
+ lo[v] = 1;\r
+ }\r
+ });\r
+\r
+ return wl;\r
+ },\r
+\r
+ _removeWords : function(w) {\r
+ var ed = this.editor, dom = ed.dom, se = ed.selection, b = se.getBookmark();\r
+\r
+ each(dom.select('span').reverse(), function(n) {\r
+ if (n && (dom.hasClass(n, 'mceItemHiddenSpellWord') || dom.hasClass(n, 'mceItemHidden'))) {\r
+ if (!w || dom.decode(n.innerHTML) == w)\r
+ dom.remove(n, 1);\r
+ }\r
+ });\r
+\r
+ se.moveToBookmark(b);\r
+ },\r
+\r
+ _markWords : function(wl) {\r
+ var r1, r2, r3, r4, r5, w = '', ed = this.editor, re = this._getSeparators(), dom = ed.dom, nl = [];\r
+ var se = ed.selection, b = se.getBookmark();\r
+\r
+ each(wl, function(v) {\r
+ w += (w ? '|' : '') + v;\r
+ });\r
+\r
+ r1 = new RegExp('([' + re + '])(' + w + ')([' + re + '])', 'g');\r
+ r2 = new RegExp('^(' + w + ')', 'g');\r
+ r3 = new RegExp('(' + w + ')([' + re + ']?)$', 'g');\r
+ r4 = new RegExp('^(' + w + ')([' + re + ']?)$', 'g');\r
+ r5 = new RegExp('(' + w + ')([' + re + '])', 'g');\r
+\r
+ // Collect all text nodes\r
+ this._walk(this.editor.getBody(), function(n) {\r
+ if (n.nodeType == 3) {\r
+ nl.push(n);\r
+ }\r
+ });\r
+\r
+ // Wrap incorrect words in spans\r
+ each(nl, function(n) {\r
+ var v;\r
+\r
+ if (n.nodeType == 3) {\r
+ v = n.nodeValue;\r
+\r
+ if (r1.test(v) || r2.test(v) || r3.test(v) || r4.test(v)) {\r
+ v = dom.encode(v);\r
+ v = v.replace(r5, '<span class="mceItemHiddenSpellWord">$1</span>$2');\r
+ v = v.replace(r3, '<span class="mceItemHiddenSpellWord">$1</span>$2');\r
+\r
+ dom.replace(dom.create('span', {'class' : 'mceItemHidden'}, v), n);\r
+ }\r
+ }\r
+ });\r
+\r
+ se.moveToBookmark(b);\r
+ },\r
+\r
+ _showMenu : function(ed, e) {\r
+ var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin());\r
+\r
+ if (!m) {\r
+ p1 = DOM.getPos(ed.getContentAreaContainer());\r
+ //p2 = DOM.getPos(ed.getContainer());\r
+\r
+ m = ed.controlManager.createDropMenu('spellcheckermenu', {\r
+ offset_x : p1.x,\r
+ offset_y : p1.y,\r
+ 'class' : 'noIcons'\r
+ });\r
+\r
+ t._menu = m;\r
+ }\r
+\r
+ if (dom.hasClass(e.target, 'mceItemHiddenSpellWord')) {\r
+ m.removeAll();\r
+ m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
+\r
+ t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(e.target.innerHTML)], function(r) {\r
+ m.removeAll();\r
+\r
+ if (r.length > 0) {\r
+ m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
+ each(r, function(v) {\r
+ m.add({title : v, onclick : function() {\r
+ dom.replace(ed.getDoc().createTextNode(v), e.target);\r
+ t._checkDone();\r
+ }});\r
+ });\r
+\r
+ m.addSeparator();\r
+ } else\r
+ m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
+\r
+ m.add({\r
+ title : 'spellchecker.ignore_word',\r
+ onclick : function() {\r
+ dom.remove(e.target, 1);\r
+ t._checkDone();\r
+ }\r
+ });\r
+\r
+ m.add({\r
+ title : 'spellchecker.ignore_words',\r
+ onclick : function() {\r
+ t._removeWords(dom.decode(e.target.innerHTML));\r
+ t._checkDone();\r
+ }\r
+ });\r
+\r
+ m.update();\r
+ });\r
+\r
+ ed.selection.select(e.target);\r
+ p1 = dom.getPos(e.target);\r
+ m.showMenu(p1.x, p1.y + e.target.offsetHeight - vp.y);\r
+\r
+ return tinymce.dom.Event.cancel(e);\r
+ } else\r
+ m.hideMenu();\r
+ },\r
+\r
+ _checkDone : function() {\r
+ var t = this, ed = t.editor, dom = ed.dom, o;\r
+\r
+ each(dom.select('span'), function(n) {\r
+ if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) {\r
+ o = true;\r
+ return false;\r
+ }\r
+ });\r
+\r
+ if (!o)\r
+ t._done();\r
+ },\r
+\r
+ _done : function() {\r
+ var t = this, la = t.active;\r
+\r
+ if (t.active) {\r
+ t.active = 0;\r
+ t._removeWords();\r
+\r
+ if (t._menu)\r
+ t._menu.hideMenu();\r
+\r
+ if (la)\r
+ t.editor.nodeChanged();\r
+ }\r
+ },\r
+\r
+ _sendRPC : function(m, p, cb) {\r
+ var t = this, url = t.editor.getParam("spellchecker_rpc_url", "{backend}");\r
+\r
+ if (url == '{backend}') {\r
+ t.editor.setProgressState(0);\r
+ alert('Please specify: spellchecker_rpc_url');\r
+ return;\r
+ }\r
+\r
+ JSONRequest.sendRPC({\r
+ url : url,\r
+ method : m,\r
+ params : p,\r
+ success : cb,\r
+ error : function(e, x) {\r
+ t.editor.setProgressState(0);\r
+ t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText));\r
+ }\r
+ });\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+(function(){var Event=tinymce.dom.Event,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.StandardMenu',{init:function(ed){var t=this;t.editor=ed;t.onContextMenu=new tinymce.util.Dispatcher(this);ed.addShortcut('ctrl+l','standardmenu.justifyleft_desc','JustifyLeft');ed.addShortcut('ctrl+e','standardmenu.justifycenter_desc','JustifyCenter');ed.addShortcut('ctrl+r','standardmenu.justifyright_desc','JustifyRight');ed.addShortcut('ctrl+j','standardmenu.justifyfull_desc','JustifyFull');ed.addShortcut('ctrl+alt+o','standardmenu.numlist_desc','InsertOrderedList');ed.addShortcut('ctrl+alt+u','standardmenu.bullist_desc','InsertUnorderedList');ed.addShortcut('ctrl+s','standardmenu.striketrough_desc','Strikethrough');ed.addShortcut('ctrl+alt+a','standardmenu.anchor_desc','mceInsertAnchor');ed.addShortcut('ctrl+alt+d','standardmenu.unlink_desc','unlink');ed.onContextMenu.add(function(ed,e){if(!e.ctrlKey){t._getMenu(ed).showMenu(e.clientX,e.clientY);Event.add(document,'click',hide);Event.cancel(e);}});function hide(){if(t._menu){t._menu.removeAll();t._menu.destroy();Event.remove(document,'click',hide);}};ed.onMouseDown.add(hide);ed.onKeyDown.add(hide);},getInfo:function(){return{longname:'Contextmenu',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_getMenu:function(ed){var t=this,m=t._menu,se=ed.selection,col=se.isCollapsed(),el=se.getNode()||ed.getBody(),am,p1,p2;if(m){m.removeAll();m.destroy();}p1=DOM.getPos(ed.getContentAreaContainer());p2=DOM.getPos(ed.getContainer());m=ed.controlManager.createDropMenu('contextmenu',{offset_x:p1.x,offset_y:p1.y,constrain:1});t._menu=m;m.add({title:'standard.cut_desc',icon:'cut',cmd:'Cut'}).setDisabled(col);m.add({title:'standard.copy_desc',icon:'copy',cmd:'Copy'}).setDisabled(col);m.add({title:'standard.paste_desc',icon:'paste',cmd:'Paste'});if((el.nodeName=='A'&&!ed.dom.getAttrib(el,'name'))||!col){m.addSeparator();m.add({title:'standard.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'standard.unlink_desc',icon:'unlink',cmd:'UnLink'});}m.addSeparator();m.add({title:'standard.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();am=m.addMenu({title:'contextmenu.align'});am.add({title:'contextmenu.left',icon:'justifyleft',cmd:'JustifyLeft'});am.add({title:'contextmenu.center',icon:'justifycenter',cmd:'JustifyCenter'});am.add({title:'contextmenu.right',icon:'justifyright',cmd:'JustifyRight'});am.add({title:'contextmenu.full',icon:'justifyfull',cmd:'JustifyFull'});t.onContextMenu.dispatch(t,m,el,col);return m;}});tinymce.PluginManager.add('standardmenu',tinymce.plugins.StandardMenu);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var Event = tinymce.dom.Event, each = tinymce.each, DOM = tinymce.DOM;\r
+\r
+ tinymce.create('tinymce.plugins.StandardMenu', {\r
+ init : function(ed) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+ t.onContextMenu = new tinymce.util.Dispatcher(this);\r
+ed.addShortcut('ctrl+l', 'standardmenu.justifyleft_desc', 'JustifyLeft');\r
+ed.addShortcut('ctrl+e', 'standardmenu.justifycenter_desc', 'JustifyCenter');\r
+ed.addShortcut('ctrl+r', 'standardmenu.justifyright_desc', 'JustifyRight');\r
+ed.addShortcut('ctrl+j', 'standardmenu.justifyfull_desc', 'JustifyFull');\r
+ed.addShortcut('ctrl+alt+o', 'standardmenu.numlist_desc', 'InsertOrderedList');\r
+ed.addShortcut('ctrl+alt+u', 'standardmenu.bullist_desc', 'InsertUnorderedList');\r
+ed.addShortcut('ctrl+s', 'standardmenu.striketrough_desc', 'Strikethrough');\r
+ed.addShortcut('ctrl+alt+a', 'standardmenu.anchor_desc', 'mceInsertAnchor');\r
+ed.addShortcut('ctrl+alt+d', 'standardmenu.unlink_desc', 'unlink');\r
+\r
+ ed.onContextMenu.add(function(ed, e) {\r
+ if (!e.ctrlKey) {\r
+ t._getMenu(ed).showMenu(e.clientX, e.clientY);\r
+ Event.add(document, 'click', hide);\r
+ Event.cancel(e);\r
+ }\r
+ });\r
+\r
+ function hide() {\r
+ if (t._menu) {\r
+ t._menu.removeAll();\r
+ t._menu.destroy();\r
+ Event.remove(document, 'click', hide);\r
+ }\r
+ };\r
+\r
+ ed.onMouseDown.add(hide);\r
+ ed.onKeyDown.add(hide);\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Contextmenu',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ _getMenu : function(ed) {\r
+ var t = this, m = t._menu, se = ed.selection, col = se.isCollapsed(), el = se.getNode() || ed.getBody(), am, p1, p2;\r
+\r
+ if (m) {\r
+ m.removeAll();\r
+ m.destroy();\r
+ }\r
+\r
+ p1 = DOM.getPos(ed.getContentAreaContainer());\r
+ p2 = DOM.getPos(ed.getContainer());\r
+\r
+ m = ed.controlManager.createDropMenu('contextmenu', {\r
+ offset_x : p1.x,\r
+ offset_y : p1.y,\r
+/* vp_offset_x : p2.x,\r
+ vp_offset_y : p2.y,*/\r
+ constrain : 1\r
+ });\r
+\r
+ t._menu = m;\r
+\r
+ m.add({title : 'standard.cut_desc', icon : 'cut', cmd : 'Cut'}).setDisabled(col);\r
+ m.add({title : 'standard.copy_desc', icon : 'copy', cmd : 'Copy'}).setDisabled(col);\r
+ m.add({title : 'standard.paste_desc', icon : 'paste', cmd : 'Paste'});\r
+\r
+ if ((el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) || !col) {\r
+ m.addSeparator();\r
+ m.add({title : 'standard.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});\r
+ m.add({title : 'standard.unlink_desc', icon : 'unlink', cmd : 'UnLink'});\r
+ }\r
+\r
+ m.addSeparator();\r
+ m.add({title : 'standard.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});\r
+\r
+ m.addSeparator();\r
+ am = m.addMenu({title : 'contextmenu.align'});\r
+ am.add({title : 'contextmenu.left', icon : 'justifyleft', cmd : 'JustifyLeft'});\r
+ am.add({title : 'contextmenu.center', icon : 'justifycenter', cmd : 'JustifyCenter'});\r
+ am.add({title : 'contextmenu.right', icon : 'justifyright', cmd : 'JustifyRight'});\r
+ am.add({title : 'contextmenu.full', icon : 'justifyfull', cmd : 'JustifyFull'});\r
+\r
+ t.onContextMenu.dispatch(t, m, el, col);\r
+\r
+ return m;\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('standardmenu', tinymce.plugins.StandardMenu);\r
+})();
\ No newline at end of file
--- /dev/null
+#text_font {width:250px;}\r
+#text_size {width:70px;}\r
+.mceAddSelectValue {background:#DDD;}\r
+select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;}\r
+#box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;}\r
+#positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;}\r
+#positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;}\r
+.panel_wrapper div.current {padding-top:10px;height:230px;}\r
+.delim {border-left:1px solid gray;}\r
+.tdelim {border-bottom:1px solid gray;}\r
+#block_display {width:145px;}\r
+#list_type {width:115px;}\r
+.disabled {background:#EEE;}\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.StylePlugin',{init:function(ed,url){ed.addCommand('mceStyleProps',function(){ed.windowManager.open({file:url+'/props.htm',width:480+parseInt(ed.getLang('style.delta_width',0)),height:320+parseInt(ed.getLang('style.delta_height',0)),inline:1},{plugin_url:url,style_text:ed.selection.getNode().style.cssText});});ed.addCommand('mceSetElementStyle',function(ui,v){if(e=ed.selection.getNode()){ed.dom.setAttrib(e,'style',v);ed.execCommand('mceRepaint');}});ed.addButton('styleprops',{title:'style.desc',cmd:'mceStyleProps'});},getInfo:function(){return{longname:'Style',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('style',tinymce.plugins.StylePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.StylePlugin', {\r
+ init : function(ed, url) {\r
+ // Register commands\r
+ ed.addCommand('mceStyleProps', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/props.htm',\r
+ width : 480 + parseInt(ed.getLang('style.delta_width', 0)),\r
+ height : 320 + parseInt(ed.getLang('style.delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url,\r
+ style_text : ed.selection.getNode().style.cssText\r
+ });\r
+ });\r
+\r
+ ed.addCommand('mceSetElementStyle', function(ui, v) {\r
+ if (e = ed.selection.getNode()) {\r
+ ed.dom.setAttrib(e, 'style', v);\r
+ ed.execCommand('mceRepaint');\r
+ }\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'});\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Style',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('style', tinymce.plugins.StylePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var defaultFonts = "" + \r
+ "Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" + \r
+ "Times New Roman, Times, serif=Times New Roman, Times, serif;" + \r
+ "Courier New, Courier, mono=Courier New, Courier, mono;" + \r
+ "Times New Roman, Times, serif=Times New Roman, Times, serif;" + \r
+ "Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" + \r
+ "Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" + \r
+ "Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif";\r
+\r
+var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger";\r
+var defaultMeasurement = "+pixels=px;points=pt;em;in;cm;mm;picas;ems;exs;%";\r
+var defaultSpacingMeasurement = "pixels=px;points=pt;in;cm;mm;picas;+ems;exs;%";\r
+var defaultIndentMeasurement = "pixels=px;+points=pt;in;cm;mm;picas;ems;exs;%";\r
+var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900";\r
+var defaultTextStyle = "normal;italic;oblique";\r
+var defaultVariant = "normal;small-caps";\r
+var defaultLineHeight = "normal";\r
+var defaultAttachment = "fixed;scroll";\r
+var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y";\r
+var defaultPosH = "left;center;right";\r
+var defaultPosV = "top;center;bottom";\r
+var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom";\r
+var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none";\r
+var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset";\r
+var defaultBorderWidth = "thin;medium;thick";\r
+var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none";\r
+\r
+function init() {\r
+ var ce = document.getElementById('container'), h;\r
+\r
+ ce.style.cssText = tinyMCEPopup.getWindowArg('style_text');\r
+\r
+ h = getBrowserHTML('background_image_browser','background_image','image','advimage');\r
+ document.getElementById("background_image_browser").innerHTML = h;\r
+\r
+ document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color');\r
+ document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color');\r
+ document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top');\r
+ document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right');\r
+ document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom');\r
+ document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left');\r
+\r
+ fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true);\r
+ fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true);\r
+ fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true);\r
+ fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true);\r
+ fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true);\r
+ fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true);\r
+ fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true);\r
+ fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true);\r
+\r
+ fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true);\r
+ fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true);\r
+\r
+ fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true);\r
+\r
+ fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true);\r
+ fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true);\r
+\r
+ fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true);\r
+ fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true);\r
+ fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true);\r
+ fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true);\r
+ fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true);\r
+ fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true);\r
+ fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true);\r
+ fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true);\r
+ fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true);\r
+\r
+ fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true);\r
+ fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true);\r
+ fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true);\r
+\r
+ fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true);\r
+ fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true);\r
+ fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true);\r
+ fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true);\r
+\r
+ fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true);\r
+ fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true);\r
+ fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true);\r
+ fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true);\r
+\r
+ fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true);\r
+\r
+ fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true);\r
+ fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true);\r
+\r
+ fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true);\r
+ fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true);\r
+\r
+ fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true);\r
+\r
+ fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true);\r
+\r
+ fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true);\r
+ fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true);\r
+\r
+ TinyMCE_EditableSelects.init();\r
+ setupFormData();\r
+ showDisabledControls();\r
+}\r
+\r
+function setupFormData() {\r
+ var ce = document.getElementById('container'), f = document.forms[0], s, b, i;\r
+\r
+ // Setup text fields\r
+\r
+ selectByValue(f, 'text_font', ce.style.fontFamily, true, true);\r
+ selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true);\r
+ selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize));\r
+ selectByValue(f, 'text_weight', ce.style.fontWeight, true, true);\r
+ selectByValue(f, 'text_style', ce.style.fontStyle, true, true);\r
+ selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true);\r
+ selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight));\r
+ selectByValue(f, 'text_case', ce.style.textTransform, true, true);\r
+ selectByValue(f, 'text_variant', ce.style.fontVariant, true, true);\r
+ f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color);\r
+ updateColor('text_color_pick', 'text_color');\r
+ f.text_underline.checked = inStr(ce.style.textDecoration, 'underline');\r
+ f.text_overline.checked = inStr(ce.style.textDecoration, 'overline');\r
+ f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through');\r
+ f.text_blink.checked = inStr(ce.style.textDecoration, 'blink');\r
+\r
+ // Setup background fields\r
+\r
+ f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor);\r
+ updateColor('background_color_pick', 'background_color');\r
+ f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
+ selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true);\r
+ selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true);\r
+ selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true);\r
+ selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0)));\r
+ selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true);\r
+ selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1)));\r
+\r
+ // Setup block fields\r
+\r
+ selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true);\r
+ selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing));\r
+ selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true);\r
+ selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing));\r
+ selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true);\r
+ selectByValue(f, 'block_text_align', ce.style.textAlign, true, true);\r
+ f.block_text_indent.value = getNum(ce.style.textIndent);\r
+ selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent));\r
+ selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true);\r
+ selectByValue(f, 'block_display', ce.style.display, true, true);\r
+\r
+ // Setup box fields\r
+\r
+ f.box_width.value = getNum(ce.style.width);\r
+ selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width));\r
+\r
+ f.box_height.value = getNum(ce.style.height);\r
+ selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height));\r
+\r
+ if (tinymce.isGecko)\r
+ selectByValue(f, 'box_float', ce.style.cssFloat, true, true);\r
+ else\r
+ selectByValue(f, 'box_float', ce.style.styleFloat, true, true);\r
+\r
+ selectByValue(f, 'box_clear', ce.style.clear, true, true);\r
+\r
+ setupBox(f, ce, 'box_padding', 'padding', '');\r
+ setupBox(f, ce, 'box_margin', 'margin', '');\r
+\r
+ // Setup border fields\r
+\r
+ setupBox(f, ce, 'border_style', 'border', 'Style');\r
+ setupBox(f, ce, 'border_width', 'border', 'Width');\r
+ setupBox(f, ce, 'border_color', 'border', 'Color');\r
+\r
+ updateColor('border_color_top_pick', 'border_color_top');\r
+ updateColor('border_color_right_pick', 'border_color_right');\r
+ updateColor('border_color_bottom_pick', 'border_color_bottom');\r
+ updateColor('border_color_left_pick', 'border_color_left');\r
+\r
+ f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value);\r
+ f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value);\r
+ f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value);\r
+ f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value);\r
+\r
+ // Setup list fields\r
+\r
+ selectByValue(f, 'list_type', ce.style.listStyleType, true, true);\r
+ selectByValue(f, 'list_position', ce.style.listStylePosition, true, true);\r
+ f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
+\r
+ // Setup box fields\r
+\r
+ selectByValue(f, 'positioning_type', ce.style.position, true, true);\r
+ selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true);\r
+ selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true);\r
+ f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : "";\r
+\r
+ f.positioning_width.value = getNum(ce.style.width);\r
+ selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width));\r
+\r
+ f.positioning_height.value = getNum(ce.style.height);\r
+ selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height));\r
+\r
+ setupBox(f, ce, 'positioning_placement', '', '', new Array('top', 'right', 'bottom', 'left'));\r
+\r
+ s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1");\r
+ s = s.replace(/,/g, ' ');\r
+\r
+ if (!hasEqualValues(new Array(getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)))) {\r
+ f.positioning_clip_top.value = getNum(getVal(s, 0));\r
+ selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));\r
+ f.positioning_clip_right.value = getNum(getVal(s, 1));\r
+ selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1)));\r
+ f.positioning_clip_bottom.value = getNum(getVal(s, 2));\r
+ selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2)));\r
+ f.positioning_clip_left.value = getNum(getVal(s, 3));\r
+ selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3)));\r
+ } else {\r
+ f.positioning_clip_top.value = getNum(getVal(s, 0));\r
+ selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));\r
+ f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value;\r
+ }\r
+\r
+// setupBox(f, ce, '', 'border', 'Color');\r
+}\r
+\r
+function getMeasurement(s) {\r
+ return s.replace(/^([0-9]+)(.*)$/, "$2");\r
+}\r
+\r
+function getNum(s) {\r
+ if (new RegExp('^[0-9]+[a-z%]+$', 'gi').test(s))\r
+ return s.replace(/[^0-9]/g, '');\r
+\r
+ return s;\r
+}\r
+\r
+function inStr(s, n) {\r
+ return new RegExp(n, 'gi').test(s);\r
+}\r
+\r
+function getVal(s, i) {\r
+ var a = s.split(' ');\r
+\r
+ if (a.length > 1)\r
+ return a[i];\r
+\r
+ return "";\r
+}\r
+\r
+function setValue(f, n, v) {\r
+ if (f.elements[n].type == "text")\r
+ f.elements[n].value = v;\r
+ else\r
+ selectByValue(f, n, v, true, true);\r
+}\r
+\r
+function setupBox(f, ce, fp, pr, sf, b) {\r
+ if (typeof(b) == "undefined")\r
+ b = new Array('Top', 'Right', 'Bottom', 'Left');\r
+\r
+ if (isSame(ce, pr, sf, b)) {\r
+ f.elements[fp + "_same"].checked = true;\r
+\r
+ setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));\r
+ f.elements[fp + "_top"].disabled = false;\r
+\r
+ f.elements[fp + "_right"].value = "";\r
+ f.elements[fp + "_right"].disabled = true;\r
+ f.elements[fp + "_bottom"].value = "";\r
+ f.elements[fp + "_bottom"].disabled = true;\r
+ f.elements[fp + "_left"].value = "";\r
+ f.elements[fp + "_left"].disabled = true;\r
+\r
+ if (f.elements[fp + "_top_measurement"]) {\r
+ selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));\r
+ f.elements[fp + "_left_measurement"].disabled = true;\r
+ f.elements[fp + "_bottom_measurement"].disabled = true;\r
+ f.elements[fp + "_right_measurement"].disabled = true;\r
+ }\r
+ } else {\r
+ f.elements[fp + "_same"].checked = false;\r
+\r
+ setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));\r
+ f.elements[fp + "_top"].disabled = false;\r
+\r
+ setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf]));\r
+ f.elements[fp + "_right"].disabled = false;\r
+\r
+ setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf]));\r
+ f.elements[fp + "_bottom"].disabled = false;\r
+\r
+ setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf]));\r
+ f.elements[fp + "_left"].disabled = false;\r
+\r
+ if (f.elements[fp + "_top_measurement"]) {\r
+ selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));\r
+ selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf]));\r
+ selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf]));\r
+ selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf]));\r
+ f.elements[fp + "_left_measurement"].disabled = false;\r
+ f.elements[fp + "_bottom_measurement"].disabled = false;\r
+ f.elements[fp + "_right_measurement"].disabled = false;\r
+ }\r
+ }\r
+}\r
+\r
+function isSame(e, pr, sf, b) {\r
+ var a = new Array(), i, x;\r
+\r
+ if (typeof(b) == "undefined")\r
+ b = new Array('Top', 'Right', 'Bottom', 'Left');\r
+\r
+ if (typeof(sf) == "undefined" || sf == null)\r
+ sf = "";\r
+\r
+ a[0] = e.style[pr + b[0] + sf];\r
+ a[1] = e.style[pr + b[1] + sf];\r
+ a[2] = e.style[pr + b[2] + sf];\r
+ a[3] = e.style[pr + b[3] + sf];\r
+\r
+ for (i=0; i<a.length; i++) {\r
+ if (a[i] == null)\r
+ return false;\r
+\r
+ for (x=0; x<a.length; x++) {\r
+ if (a[x] != a[i])\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+};\r
+\r
+function hasEqualValues(a) {\r
+ var i, x;\r
+\r
+ for (i=0; i<a.length; i++) {\r
+ if (a[i] == null)\r
+ return false;\r
+\r
+ for (x=0; x<a.length; x++) {\r
+ if (a[x] != a[i])\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+}\r
+\r
+function applyAction() {\r
+ var ce = document.getElementById('container'), ed = tinyMCEPopup.editor;\r
+\r
+ generateCSS();\r
+\r
+ tinyMCEPopup.restoreSelection();\r
+ ed.dom.setAttrib(ed.selection.getNode(), 'style', tinyMCEPopup.editor.dom.serializeStyle(tinyMCEPopup.editor.dom.parseStyle(ce.style.cssText)));\r
+}\r
+\r
+function updateAction() {\r
+ applyAction();\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function generateCSS() {\r
+ var ce = document.getElementById('container'), f = document.forms[0], num = new RegExp('[0-9]+', 'g'), s, t;\r
+\r
+ ce.style.cssText = "";\r
+\r
+ // Build text styles\r
+ ce.style.fontFamily = f.text_font.value;\r
+ ce.style.fontSize = f.text_size.value + (isNum(f.text_size.value) ? (f.text_size_measurement.value || 'px') : "");\r
+ ce.style.fontStyle = f.text_style.value;\r
+ ce.style.lineHeight = f.text_lineheight.value + (isNum(f.text_lineheight.value) ? f.text_lineheight_measurement.value : "");\r
+ ce.style.textTransform = f.text_case.value;\r
+ ce.style.fontWeight = f.text_weight.value;\r
+ ce.style.fontVariant = f.text_variant.value;\r
+ ce.style.color = f.text_color.value;\r
+\r
+ s = "";\r
+ s += f.text_underline.checked ? " underline" : "";\r
+ s += f.text_overline.checked ? " overline" : "";\r
+ s += f.text_linethrough.checked ? " line-through" : "";\r
+ s += f.text_blink.checked ? " blink" : "";\r
+ s = s.length > 0 ? s.substring(1) : s;\r
+\r
+ if (f.text_none.checked)\r
+ s = "none";\r
+\r
+ ce.style.textDecoration = s;\r
+\r
+ // Build background styles\r
+\r
+ ce.style.backgroundColor = f.background_color.value;\r
+ ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : "";\r
+ ce.style.backgroundRepeat = f.background_repeat.value;\r
+ ce.style.backgroundAttachment = f.background_attachment.value;\r
+\r
+ if (f.background_hpos.value != "") {\r
+ s = "";\r
+ s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " ";\r
+ s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : "");\r
+ ce.style.backgroundPosition = s;\r
+ }\r
+\r
+ // Build block styles\r
+\r
+ ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : "");\r
+ ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : "");\r
+ ce.style.verticalAlign = f.block_vertical_alignment.value;\r
+ ce.style.textAlign = f.block_text_align.value;\r
+ ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : "");\r
+ ce.style.whiteSpace = f.block_whitespace.value;\r
+ ce.style.display = f.block_display.value;\r
+\r
+ // Build box styles\r
+\r
+ ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : "");\r
+ ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : "");\r
+ ce.style.styleFloat = f.box_float.value;\r
+\r
+ if (tinymce.isGecko)\r
+ ce.style.cssFloat = f.box_float.value;\r
+\r
+ ce.style.clear = f.box_clear.value;\r
+\r
+ if (!f.box_padding_same.checked) {\r
+ ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");\r
+ ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : "");\r
+ ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : "");\r
+ ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : "");\r
+ } else\r
+ ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : ""); \r
+\r
+ if (!f.box_margin_same.checked) {\r
+ ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");\r
+ ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : "");\r
+ ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : "");\r
+ ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : "");\r
+ } else\r
+ ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : ""); \r
+\r
+ // Build border styles\r
+\r
+ if (!f.border_style_same.checked) {\r
+ ce.style.borderTopStyle = f.border_style_top.value;\r
+ ce.style.borderRightStyle = f.border_style_right.value;\r
+ ce.style.borderBottomStyle = f.border_style_bottom.value;\r
+ ce.style.borderLeftStyle = f.border_style_left.value;\r
+ } else\r
+ ce.style.borderStyle = f.border_style_top.value;\r
+\r
+ if (!f.border_width_same.checked) {\r
+ ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");\r
+ ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : "");\r
+ ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : "");\r
+ ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : "");\r
+ } else\r
+ ce.style.borderWidth = f.border_width_top.value;\r
+\r
+ if (!f.border_color_same.checked) {\r
+ ce.style.borderTopColor = f.border_color_top.value;\r
+ ce.style.borderRightColor = f.border_color_right.value;\r
+ ce.style.borderBottomColor = f.border_color_bottom.value;\r
+ ce.style.borderLeftColor = f.border_color_left.value;\r
+ } else\r
+ ce.style.borderColor = f.border_color_top.value;\r
+\r
+ // Build list styles\r
+\r
+ ce.style.listStyleType = f.list_type.value;\r
+ ce.style.listStylePosition = f.list_position.value;\r
+ ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : "";\r
+\r
+ // Build positioning styles\r
+\r
+ ce.style.position = f.positioning_type.value;\r
+ ce.style.visibility = f.positioning_visibility.value;\r
+\r
+ if (ce.style.width == "")\r
+ ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : "");\r
+\r
+ if (ce.style.height == "")\r
+ ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : "");\r
+\r
+ ce.style.zIndex = f.positioning_zindex.value;\r
+ ce.style.overflow = f.positioning_overflow.value;\r
+\r
+ if (!f.positioning_placement_same.checked) {\r
+ ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");\r
+ ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : "");\r
+ ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : "");\r
+ ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : "");\r
+ } else {\r
+ s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");\r
+ ce.style.top = s;\r
+ ce.style.right = s;\r
+ ce.style.bottom = s;\r
+ ce.style.left = s;\r
+ }\r
+\r
+ if (!f.positioning_clip_same.checked) {\r
+ s = "rect(";\r
+ s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " ";\r
+ s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " ";\r
+ s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " ";\r
+ s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto");\r
+ s += ")";\r
+\r
+ if (s != "rect(auto auto auto auto)")\r
+ ce.style.clip = s;\r
+ } else {\r
+ s = "rect(";\r
+ t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto";\r
+ s += t + " ";\r
+ s += t + " ";\r
+ s += t + " ";\r
+ s += t + ")";\r
+\r
+ if (s != "rect(auto auto auto auto)")\r
+ ce.style.clip = s;\r
+ }\r
+\r
+ ce.style.cssText = ce.style.cssText;\r
+}\r
+\r
+function isNum(s) {\r
+ return new RegExp('[0-9]+', 'g').test(s);\r
+}\r
+\r
+function showDisabledControls() {\r
+ var f = document.forms, i, a;\r
+\r
+ for (i=0; i<f.length; i++) {\r
+ for (a=0; a<f[i].elements.length; a++) {\r
+ if (f[i].elements[a].disabled)\r
+ tinyMCEPopup.editor.dom.addClass(f[i].elements[a], "disabled");\r
+ else\r
+ tinyMCEPopup.editor.dom.removeClass(f[i].elements[a], "disabled");\r
+ }\r
+ }\r
+}\r
+\r
+function fillSelect(f, s, param, dval, sep, em) {\r
+ var i, ar, p, se;\r
+\r
+ f = document.forms[f];\r
+ sep = typeof(sep) == "undefined" ? ";" : sep;\r
+\r
+ if (em)\r
+ addSelectValue(f, s, "", "");\r
+\r
+ ar = tinyMCEPopup.getParam(param, dval).split(sep);\r
+ for (i=0; i<ar.length; i++) {\r
+ se = false;\r
+\r
+ if (ar[i].charAt(0) == '+') {\r
+ ar[i] = ar[i].substring(1);\r
+ se = true;\r
+ }\r
+\r
+ p = ar[i].split('=');\r
+\r
+ if (p.length > 1) {\r
+ addSelectValue(f, s, p[0], p[1]);\r
+\r
+ if (se)\r
+ selectByValue(f, s, p[1]);\r
+ } else {\r
+ addSelectValue(f, s, p[0], p[0]);\r
+\r
+ if (se)\r
+ selectByValue(f, s, p[0]);\r
+ }\r
+ }\r
+}\r
+\r
+function toggleSame(ce, pre) {\r
+ var el = document.forms[0].elements, i;\r
+\r
+ if (ce.checked) {\r
+ el[pre + "_top"].disabled = false;\r
+ el[pre + "_right"].disabled = true;\r
+ el[pre + "_bottom"].disabled = true;\r
+ el[pre + "_left"].disabled = true;\r
+\r
+ if (el[pre + "_top_measurement"]) {\r
+ el[pre + "_top_measurement"].disabled = false;\r
+ el[pre + "_right_measurement"].disabled = true;\r
+ el[pre + "_bottom_measurement"].disabled = true;\r
+ el[pre + "_left_measurement"].disabled = true;\r
+ }\r
+ } else {\r
+ el[pre + "_top"].disabled = false;\r
+ el[pre + "_right"].disabled = false;\r
+ el[pre + "_bottom"].disabled = false;\r
+ el[pre + "_left"].disabled = false;\r
+\r
+ if (el[pre + "_top_measurement"]) {\r
+ el[pre + "_top_measurement"].disabled = false;\r
+ el[pre + "_right_measurement"].disabled = false;\r
+ el[pre + "_bottom_measurement"].disabled = false;\r
+ el[pre + "_left_measurement"].disabled = false;\r
+ }\r
+ }\r
+\r
+ showDisabledControls();\r
+}\r
+\r
+function synch(fr, to) {\r
+ var f = document.forms[0];\r
+\r
+ f.elements[to].value = f.elements[fr].value;\r
+\r
+ if (f.elements[fr + "_measurement"])\r
+ selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value);\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCE.addI18n('en.style_dlg',{\r
+title:"Edit CSS Style",\r
+apply:"Apply",\r
+text_tab:"Text",\r
+background_tab:"Background",\r
+block_tab:"Block",\r
+box_tab:"Box",\r
+border_tab:"Border",\r
+list_tab:"List",\r
+positioning_tab:"Positioning",\r
+text_props:"Text",\r
+text_font:"Font",\r
+text_size:"Size",\r
+text_weight:"Weight",\r
+text_style:"Style",\r
+text_variant:"Variant",\r
+text_lineheight:"Line height",\r
+text_case:"Case",\r
+text_color:"Color",\r
+text_decoration:"Decoration",\r
+text_overline:"overline",\r
+text_underline:"underline",\r
+text_striketrough:"strikethrough",\r
+text_blink:"blink",\r
+text_none:"none",\r
+background_color:"Background color",\r
+background_image:"Background image",\r
+background_repeat:"Repeat",\r
+background_attachment:"Attachment",\r
+background_hpos:"Horizontal position",\r
+background_vpos:"Vertical position",\r
+block_wordspacing:"Word spacing",\r
+block_letterspacing:"Letter spacing",\r
+block_vertical_alignment:"Vertical alignment",\r
+block_text_align:"Text align",\r
+block_text_indent:"Text indent",\r
+block_whitespace:"Whitespace",\r
+block_display:"Display",\r
+box_width:"Width",\r
+box_height:"Height",\r
+box_float:"Float",\r
+box_clear:"Clear",\r
+padding:"Padding",\r
+same:"Same for all",\r
+top:"Top",\r
+right:"Right",\r
+bottom:"Bottom",\r
+left:"Left",\r
+margin:"Margin",\r
+style:"Style",\r
+width:"Width",\r
+height:"Height",\r
+color:"Color",\r
+list_type:"Type",\r
+bullet_image:"Bullet image",\r
+position:"Position",\r
+positioning_type:"Type",\r
+visibility:"Visibility",\r
+zindex:"Z-index",\r
+overflow:"Overflow",\r
+placement:"Placement",\r
+clip:"Clip"\r
+});
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{#style_dlg.title}</title>
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>
+ <script type="text/javascript" src="../../utils/editable_selects.js"></script>
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>
+ <script type="text/javascript" src="js/props.js"></script>
+ <link href="css/props.css" rel="stylesheet" type="text/css" />
+ <base target="_self" />
+</head>
+
+<body id="styleprops" style="display: none">
+<form onsubmit="updateAction();return false;" action="#">
+<div class="tabs">
+ <ul>
+ <li id="text_tab" class="current"><span><a href="javascript:mcTabs.displayTab('text_tab','text_panel');" onMouseDown="return false;">{#style_dlg.text_tab}</a></span></li>
+ <li id="background_tab"><span><a href="javascript:mcTabs.displayTab('background_tab','background_panel');" onMouseDown="return false;">{#style_dlg.background_tab}</a></span></li>
+ <li id="block_tab"><span><a href="javascript:mcTabs.displayTab('block_tab','block_panel');" onMouseDown="return false;">{#style_dlg.block_tab}</a></span></li>
+ <li id="box_tab"><span><a href="javascript:mcTabs.displayTab('box_tab','box_panel');" onMouseDown="return false;">{#style_dlg.box_tab}</a></span></li>
+ <li id="border_tab"><span><a href="javascript:mcTabs.displayTab('border_tab','border_panel');" onMouseDown="return false;">{#style_dlg.border_tab}</a></span></li>
+ <li id="list_tab"><span><a href="javascript:mcTabs.displayTab('list_tab','list_panel');" onMouseDown="return false;">{#style_dlg.list_tab}</a></span></li>
+ <li id="positioning_tab"><span><a href="javascript:mcTabs.displayTab('positioning_tab','positioning_panel');" onMouseDown="return false;">{#style_dlg.positioning_tab}</a></span></li>
+ </ul>
+</div>
+
+<div class="panel_wrapper">
+<div id="text_panel" class="panel current">
+ <table border="0" width="100%">
+ <tr>
+ <td><label for="text_font">{#style_dlg.text_font}</label></td>
+ <td colspan="3">
+ <select id="text_font" name="text_font" class="mceEditableSelect mceFocus"></select>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="text_size">{#style_dlg.text_size}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><select id="text_size" name="text_size" class="mceEditableSelect"></select></td>
+ <td> </td>
+ <td><select id="text_size_measurement" name="text_size_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ <td><label for="text_weight">{#style_dlg.text_weight}</label></td>
+ <td>
+ <select id="text_weight" name="text_weight"></select>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="text_style">{#style_dlg.text_style}</label></td>
+ <td>
+ <select id="text_style" name="text_style" class="mceEditableSelect"></select>
+ </td>
+ <td><label for="text_variant">{#style_dlg.text_variant}</label></td>
+ <td>
+ <select id="text_variant" name="text_variant"></select>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="text_lineheight">{#style_dlg.text_lineheight}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td>
+ <select id="text_lineheight" name="text_lineheight" class="mceEditableSelect"></select>
+ </td>
+ <td> </td>
+ <td><select id="text_lineheight_measurement" name="text_lineheight_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ <td><label for="text_case">{#style_dlg.text_case}</label></td>
+ <td>
+ <select id="text_case" name="text_case"></select>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="text_color">{#style_dlg.text_color}</label></td>
+ <td colspan="2">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="text_color" name="text_color" type="text" value="" size="9" onChange="updateColor('text_color_pick','text_color');" /></td>
+ <td id="text_color_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" style="vertical-align: top; padding-top: 3px;">{#style_dlg.text_decoration}</td>
+ <td colspan="2">
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input id="text_underline" name="text_underline" class="checkbox" type="checkbox" /></td>
+ <td><label for="text_underline">{#style_dlg.text_underline}</label></td>
+ </tr>
+ <tr>
+ <td><input id="text_overline" name="text_overline" class="checkbox" type="checkbox" /></td>
+ <td><label for="text_overline">{#style_dlg.text_overline}</label></td>
+ </tr>
+ <tr>
+ <td><input id="text_linethrough" name="text_linethrough" class="checkbox" type="checkbox" /></td>
+ <td><label for="text_linethrough">{#style_dlg.text_striketrough}</label></td>
+ </tr>
+ <tr>
+ <td><input id="text_blink" name="text_blink" class="checkbox" type="checkbox" /></td>
+ <td><label for="text_blink">{#style_dlg.text_blink}</label></td>
+ </tr>
+ <tr>
+ <td><input id="text_none" name="text_none" class="checkbox" type="checkbox" /></td>
+ <td><label for="text_none">{#style_dlg.text_none}</label></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</div>
+
+<div id="background_panel" class="panel">
+ <table border="0">
+ <tr>
+ <td><label for="background_color">{#style_dlg.background_color}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="background_color" name="background_color" type="text" value="" size="9" onChange="updateColor('background_color_pick','background_color');" /></td>
+ <td id="background_color_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label for="background_image">{#style_dlg.background_image}</label></td>
+ <td><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input id="background_image" name="background_image" type="text" /></td>
+ <td id="background_image_browser"> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label for="background_repeat">{#style_dlg.background_repeat}</label></td>
+ <td><select id="background_repeat" name="background_repeat" class="mceEditableSelect"></select></td>
+ </tr>
+
+ <tr>
+ <td><label for="background_attachment">{#style_dlg.background_attachment}</label></td>
+ <td><select id="background_attachment" name="background_attachment" class="mceEditableSelect"></select></td>
+ </tr>
+
+ <tr>
+ <td><label for="background_hpos">{#style_dlg.background_hpos}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><select id="background_hpos" name="background_hpos" class="mceEditableSelect"></select></td>
+ <td> </td>
+ <td><select id="background_hpos_measurement" name="background_hpos_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label for="background_vpos">{#style_dlg.background_vpos}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><select id="background_vpos" name="background_vpos" class="mceEditableSelect"></select></td>
+ <td> </td>
+ <td><select id="background_vpos_measurement" name="background_vpos_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</div>
+
+<div id="block_panel" class="panel">
+ <table border="0">
+ <tr>
+ <td><label for="block_wordspacing">{#style_dlg.block_wordspacing}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><select id="block_wordspacing" name="block_wordspacing" class="mceEditableSelect"></select></td>
+ <td> </td>
+ <td><select id="block_wordspacing_measurement" name="block_wordspacing_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label for="block_letterspacing">{#style_dlg.block_letterspacing}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><select id="block_letterspacing" name="block_letterspacing" class="mceEditableSelect"></select></td>
+ <td> </td>
+ <td><select id="block_letterspacing_measurement" name="block_letterspacing_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label for="block_vertical_alignment">{#style_dlg.block_vertical_alignment}</label></td>
+ <td><select id="block_vertical_alignment" name="block_vertical_alignment" class="mceEditableSelect"></select></td>
+ </tr>
+
+ <tr>
+ <td><label for="block_text_align">{#style_dlg.block_text_align}</label></td>
+ <td><select id="block_text_align" name="block_text_align" class="mceEditableSelect"></select></td>
+ </tr>
+
+ <tr>
+ <td><label for="block_text_indent">{#style_dlg.block_text_indent}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="block_text_indent" name="block_text_indent" /></td>
+ <td> </td>
+ <td><select id="block_text_indent_measurement" name="block_text_indent_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label for="block_whitespace">{#style_dlg.block_whitespace}</label></td>
+ <td><select id="block_whitespace" name="block_whitespace" class="mceEditableSelect"></select></td>
+ </tr>
+
+ <tr>
+ <td><label for="block_display">{#style_dlg.block_display}</label></td>
+ <td><select id="block_display" name="block_display" class="mceEditableSelect"></select></td>
+ </tr>
+ </table>
+</div>
+
+<div id="box_panel" class="panel">
+<table border="0">
+ <tr>
+ <td><label for="box_width">{#style_dlg.box_width}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="box_width" name="box_width" class="mceEditableSelect" onChange="synch('box_width','positioning_width');" /></td>
+ <td> </td>
+ <td><select id="box_width_measurement" name="box_width_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ <td> <label for="box_float">{#style_dlg.box_float}</label></td>
+ <td><select id="box_float" name="box_float" class="mceEditableSelect"></select></td>
+ </tr>
+
+ <tr>
+ <td><label for="box_height">{#style_dlg.box_height}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="box_height" name="box_height" class="mceEditableSelect" onChange="synch('box_height','positioning_height');" /></td>
+ <td> </td>
+ <td><select id="box_height_measurement" name="box_height_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ <td> <label for="box_clear">{#style_dlg.box_clear}</label></td>
+ <td><select id="box_clear" name="box_clear" class="mceEditableSelect"></select></td>
+ </tr>
+</table>
+<div style="float: left; width: 49%">
+ <fieldset>
+ <legend>{#style_dlg.padding}</legend>
+
+ <table border="0">
+ <tr>
+ <td> </td>
+ <td><input type="checkbox" id="box_padding_same" name="box_padding_same" class="checkbox" checked="checked" onClick="toggleSame(this,'box_padding');" /> <label for="box_padding_same">{#style_dlg.same}</label></td>
+ </tr>
+ <tr>
+ <td><label for="box_padding_top">{#style_dlg.top}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="box_padding_top" name="box_padding_top" class="mceEditableSelect" /></td>
+ <td> </td>
+ <td><select id="box_padding_top_measurement" name="box_padding_top_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="box_padding_right">{#style_dlg.right}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="box_padding_right" name="box_padding_right" class="mceEditableSelect" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="box_padding_right_measurement" name="box_padding_right_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="box_padding_bottom">{#style_dlg.bottom}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="box_padding_bottom" name="box_padding_bottom" class="mceEditableSelect" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="box_padding_bottom_measurement" name="box_padding_bottom_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="box_padding_left">{#style_dlg.left}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="box_padding_left" name="box_padding_left" class="mceEditableSelect" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="box_padding_left_measurement" name="box_padding_left_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+</div>
+
+<div style="float: right; width: 49%">
+ <fieldset>
+ <legend>{#style_dlg.margin}</legend>
+
+ <table border="0">
+ <tr>
+ <td> </td>
+ <td><input type="checkbox" id="box_margin_same" name="box_margin_same" class="checkbox" checked="checked" onClick="toggleSame(this,'box_margin');" /> <label for="box_margin_same">{#style_dlg.same}</label></td>
+ </tr>
+ <tr>
+ <td><label for="box_margin_top">{#style_dlg.top}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="box_margin_top" name="box_margin_top" class="mceEditableSelect" /></td>
+ <td> </td>
+ <td><select id="box_margin_top_measurement" name="box_margin_top_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="box_margin_right">{#style_dlg.right}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="box_margin_right" name="box_margin_right" class="mceEditableSelect" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="box_margin_right_measurement" name="box_margin_right_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="box_margin_bottom">{#style_dlg.bottom}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="box_margin_bottom" name="box_margin_bottom" class="mceEditableSelect" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="box_margin_bottom_measurement" name="box_margin_bottom_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><label for="box_margin_left">{#style_dlg.left}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="box_margin_left" name="box_margin_left" class="mceEditableSelect" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="box_margin_left_measurement" name="box_margin_left_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+</div>
+<br style="clear: both" />
+</div>
+
+<div id="border_panel" class="panel">
+<table border="0" cellspacing="0" cellpadding="0" width="100%">
+<tr>
+ <td class="tdelim"> </td>
+ <td class="tdelim delim"> </td>
+ <td class="tdelim">{#style_dlg.style}</td>
+ <td class="tdelim delim"> </td>
+ <td class="tdelim">{#style_dlg.width}</td>
+ <td class="tdelim delim"> </td>
+ <td class="tdelim">{#style_dlg.color}</td>
+</tr>
+
+<tr>
+ <td> </td>
+ <td class="delim"> </td>
+ <td><input type="checkbox" id="border_style_same" name="border_style_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_style');" /> <label for="border_style_same">{#style_dlg.same}</label></td>
+ <td class="delim"> </td>
+ <td><input type="checkbox" id="border_width_same" name="border_width_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_width');" /> <label for="border_width_same">{#style_dlg.same}</label></td>
+ <td class="delim"> </td>
+ <td><input type="checkbox" id="border_color_same" name="border_color_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_color');" /> <label for="border_color_same">{#style_dlg.same}</label></td>
+</tr>
+
+<tr>
+ <td>{#style_dlg.top}</td>
+ <td class="delim"> </td>
+ <td><select id="border_style_top" name="border_style_top" class="mceEditableSelect"></select></td>
+ <td class="delim"> </td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><select id="border_width_top" name="border_width_top" class="mceEditableSelect"></select></td>
+ <td> </td>
+ <td><select id="border_width_top_measurement" name="border_width_top_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ <td class="delim"> </td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="border_color_top" name="border_color_top" type="text" value="" size="9" onChange="updateColor('border_color_top_pick','border_color_top');" /></td>
+ <td id="border_color_top_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>{#style_dlg.right}</td>
+ <td class="delim"> </td>
+ <td><select id="border_style_right" name="border_style_right" class="mceEditableSelect" disabled="disabled"></select></td>
+ <td class="delim"> </td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><select id="border_width_right" name="border_width_right" class="mceEditableSelect" disabled="disabled"></select></td>
+ <td> </td>
+ <td><select id="border_width_right_measurement" name="border_width_right_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ <td class="delim"> </td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="border_color_right" name="border_color_right" type="text" value="" size="9" onChange="updateColor('border_color_right_pick','border_color_right');" disabled="disabled" /></td>
+ <td id="border_color_right_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>{#style_dlg.bottom}</td>
+ <td class="delim"> </td>
+ <td><select id="border_style_bottom" name="border_style_bottom" class="mceEditableSelect" disabled="disabled"></select></td>
+ <td class="delim"> </td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><select id="border_width_bottom" name="border_width_bottom" class="mceEditableSelect" disabled="disabled"></select></td>
+ <td> </td>
+ <td><select id="border_width_bottom_measurement" name="border_width_bottom_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ <td class="delim"> </td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="border_color_bottom" name="border_color_bottom" type="text" value="" size="9" onChange="updateColor('border_color_bottom_pick','border_color_bottom');" disabled="disabled" /></td>
+ <td id="border_color_bottom_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+
+<tr>
+ <td>{#style_dlg.left}</td>
+ <td class="delim"> </td>
+ <td><select id="border_style_left" name="border_style_left" class="mceEditableSelect" disabled="disabled"></select></td>
+ <td class="delim"> </td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><select id="border_width_left" name="border_width_left" class="mceEditableSelect" disabled="disabled"></select></td>
+ <td> </td>
+ <td><select id="border_width_left_measurement" name="border_width_left_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ <td class="delim"> </td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="border_color_left" name="border_color_left" type="text" value="" size="9" onChange="updateColor('border_color_left_pick','border_color_left');" disabled="disabled" /></td>
+ <td id="border_color_left_pickcontainer"> </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+</div>
+
+<div id="list_panel" class="panel">
+ <table border="0">
+ <tr>
+ <td><label for="list_type">{#style_dlg.list_type}</label></td>
+ <td><select id="list_type" name="list_type" class="mceEditableSelect"></select></td>
+ </tr>
+
+ <tr>
+ <td><label for="list_bullet_image">{#style_dlg.bullet_image}</label></td>
+ <td><input id="list_bullet_image" name="list_bullet_image" type="text" /></td>
+ </tr>
+
+ <tr>
+ <td><label for="list_position">{#style_dlg.position}</label></td>
+ <td><select id="list_position" name="list_position" class="mceEditableSelect"></select></td>
+ </tr>
+ </table>
+</div>
+
+<div id="positioning_panel" class="panel">
+<table border="0">
+ <tr>
+ <td><label for="positioning_type">{#style_dlg.positioning_type}</label></td>
+ <td><select id="positioning_type" name="positioning_type" class="mceEditableSelect"></select></td>
+ <td> <label for="positioning_visibility">{#style_dlg.visibility}</label></td>
+ <td><select id="positioning_visibility" name="positioning_visibility" class="mceEditableSelect"></select></td>
+ </tr>
+
+ <tr>
+ <td><label for="positioning_width">{#style_dlg.width}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="positioning_width" name="positioning_width" onChange="synch('positioning_width','box_width');" /></td>
+ <td> </td>
+ <td><select id="positioning_width_measurement" name="positioning_width_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ <td> <label for="positioning_zindex">{#style_dlg.zindex}</label></td>
+ <td><input type="text" id="positioning_zindex" name="positioning_zindex" /></td>
+ </tr>
+
+ <tr>
+ <td><label for="positioning_height">{#style_dlg.height}</label></td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="positioning_height" name="positioning_height" onChange="synch('positioning_height','box_height');" /></td>
+ <td> </td>
+ <td><select id="positioning_height_measurement" name="positioning_height_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ <td> <label for="positioning_overflow">{#style_dlg.overflow}</label></td>
+ <td><select id="positioning_overflow" name="positioning_overflow" class="mceEditableSelect"></select></td>
+ </tr>
+</table>
+
+<div style="float: left; width: 49%">
+ <fieldset>
+ <legend>{#style_dlg.placement}</legend>
+
+ <table border="0">
+ <tr>
+ <td> </td>
+ <td><input type="checkbox" id="positioning_placement_same" name="positioning_placement_same" class="checkbox" checked="checked" onClick="toggleSame(this,'positioning_placement');" /> <label for="positioning_placement_same">{#style_dlg.same}</label></td>
+ </tr>
+ <tr>
+ <td>{#style_dlg.top}</td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="positioning_placement_top" name="positioning_placement_top" /></td>
+ <td> </td>
+ <td><select id="positioning_placement_top_measurement" name="positioning_placement_top_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>{#style_dlg.right}</td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="positioning_placement_right" name="positioning_placement_right" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="positioning_placement_right_measurement" name="positioning_placement_right_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>{#style_dlg.bottom}</td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="positioning_placement_bottom" name="positioning_placement_bottom" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="positioning_placement_bottom_measurement" name="positioning_placement_bottom_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>{#style_dlg.left}</td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="positioning_placement_left" name="positioning_placement_left" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="positioning_placement_left_measurement" name="positioning_placement_left_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+</div>
+
+<div style="float: right; width: 49%">
+ <fieldset>
+ <legend>{#style_dlg.clip}</legend>
+
+ <table border="0">
+ <tr>
+ <td> </td>
+ <td><input type="checkbox" id="positioning_clip_same" name="positioning_clip_same" class="checkbox" checked="checked" onClick="toggleSame(this,'positioning_clip');" /> <label for="positioning_clip_same">{#style_dlg.same}</label></td>
+ </tr>
+ <tr>
+ <td>{#style_dlg.top}</td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="positioning_clip_top" name="positioning_clip_top" /></td>
+ <td> </td>
+ <td><select id="positioning_clip_top_measurement" name="positioning_clip_top_measurement"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>{#style_dlg.right}</td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="positioning_clip_right" name="positioning_clip_right" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="positioning_clip_right_measurement" name="positioning_clip_right_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>{#style_dlg.bottom}</td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="positioning_clip_bottom" name="positioning_clip_bottom" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="positioning_clip_bottom_measurement" name="positioning_clip_bottom_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>{#style_dlg.left}</td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" id="positioning_clip_left" name="positioning_clip_left" disabled="disabled" /></td>
+ <td> </td>
+ <td><select id="positioning_clip_left_measurement" name="positioning_clip_left_measurement" disabled="disabled"></select></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+</div>
+<br style="clear: both" />
+</div>
+</div>
+
+<div class="mceActionPanel">
+ <div style="float: left">
+ <div style="float: left"><input type="submit" id="insert" name="insert" value="{#update}" /></div>
+
+ <div style="float: left"> <input type="button" class="button" id="apply" name="apply" value="{#style_dlg.apply}" onClick="applyAction();" /></div>
+ <br style="clear: both" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onClick="tinyMCEPopup.close();" />
+ </div>
+</div>
+</form>
+
+<div style="display: none">
+ <div id="container"></div>
+</div>
+
+</body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#table_dlg.cell_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="js/cell.js"></script>\r
+ <link href="css/cell.css" rel="stylesheet" type="text/css" />\r
+ <base target="_self" />\r
+</head>\r
+<body id="tablecell" style="display: none">\r
+ <form onsubmit="updateAction();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>\r
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#table_dlg.general_props}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td><label for="align">{#table_dlg.align}</label></td>\r
+ <td>\r
+ <select id="align" name="align" class="mceFocus">\r
+ <option value="">{#not_set}</option>\r
+ <option value="center">{#table_dlg.align_middle}</option>\r
+ <option value="left">{#table_dlg.align_left}</option>\r
+ <option value="right">{#table_dlg.align_right}</option>\r
+ </select>\r
+ </td>\r
+ \r
+ <td><label for="celltype">{#table_dlg.cell_type}</label></td>\r
+ <td>\r
+ <select id="celltype" name="celltype">\r
+ <option value="td">{#table_dlg.td}</option>\r
+ <option value="th">{#table_dlg.th}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="valign">{#table_dlg.valign}</label></td>\r
+ <td>\r
+ <select id="valign" name="valign">\r
+ <option value="">{#not_set}</option>\r
+ <option value="top">{#table_dlg.align_top}</option>\r
+ <option value="middle">{#table_dlg.align_middle}</option>\r
+ <option value="bottom">{#table_dlg.align_bottom}</option>\r
+ </select>\r
+ </td>\r
+\r
+ <td><label for="scope">{#table_dlg.scope}</label></td>\r
+ <td>\r
+ <select id="scope" name="scope">\r
+ <option value="">{#not_set}</option>\r
+ <option value="col">{#table.col}</option>\r
+ <option value="row">{#table.row}</option>\r
+ <option value="rowgroup">{#table_dlg.rowgroup}</option>\r
+ <option value="colgroup">{#table_dlg.colgroup}</option>\r
+ </select>\r
+ </td>\r
+\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="width">{#table_dlg.width}</label></td>\r
+ <td><input id="width" name="width" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>\r
+\r
+ <td><label for="height">{#table_dlg.height}</label></td>\r
+ <td><input id="height" name="height" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>\r
+ </tr>\r
+\r
+ <tr id="styleSelectRow">\r
+ <td><label for="class">{#class_name}</label></td>\r
+ <td colspan="3">\r
+ <select id="class" name="class">\r
+ <option value="" selected="selected">{#not_set}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="advanced_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#table_dlg.advanced_props}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="column1"><label for="id">{#table_dlg.id}</label></td> \r
+ <td><input id="id" name="id" type="text" value="" style="width: 200px" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="style">{#table_dlg.style}</label></td>\r
+ <td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> \r
+ <td>\r
+ <select id="dir" name="dir" style="width: 200px"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#table_dlg.ltr}</option> \r
+ <option value="rtl">{#table_dlg.rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="lang">{#table_dlg.langcode}</label></td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" style="width: 200px" />\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>\r
+ <td id="backgroundimagebrowsercontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="bordercolor">{#table_dlg.bordercolor}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>\r
+ <td id="bordercolor_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>\r
+ <td id="bgcolor_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div>\r
+ <select id="action" name="action">\r
+ <option value="cell">{#table_dlg.cell_cell}</option>\r
+ <option value="row">{#table_dlg.cell_row}</option>\r
+ <option value="all">{#table_dlg.cell_all}</option>\r
+ </select>\r
+ </div>\r
+\r
+ <div style="float: left">\r
+ <div><input type="submit" id="insert" name="insert" value="{#update}" /></div>\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+ </form>\r
+</body>\r
+</html>\r
--- /dev/null
+/* CSS file for cell dialog in the table plugin */\r
+\r
+.panel_wrapper div.current {\r
+ height: 200px;\r
+}\r
+\r
+.advfield {\r
+ width: 200px;\r
+}\r
+\r
+#action {\r
+ margin-bottom: 3px;\r
+}\r
+\r
+#class {\r
+ width: 150px;\r
+}
\ No newline at end of file
--- /dev/null
+/* CSS file for row dialog in the table plugin */\r
+\r
+.panel_wrapper div.current {\r
+ height: 200px;\r
+}\r
+\r
+.advfield {\r
+ width: 200px;\r
+}\r
+\r
+#action {\r
+ margin-bottom: 3px;\r
+}\r
+\r
+#rowtype,#align,#valign,#class,#height {\r
+ width: 150px;\r
+}\r
+\r
+#height {\r
+ width: 50px; \r
+}\r
+\r
+.col2 {\r
+ padding-left: 20px;\r
+}\r
--- /dev/null
+/* CSS file for table dialog in the table plugin */\r
+\r
+.panel_wrapper div.current {\r
+ height: 245px;\r
+}\r
+\r
+.advfield {\r
+ width: 200px;\r
+}\r
+\r
+#class {\r
+ width: 150px;\r
+}\r
--- /dev/null
+(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TablePlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;each([['table','table.desc','mceInsertTable',true],['delete_table','table.del','mceTableDelete'],['delete_col','table.delete_col_desc','mceTableDeleteCol'],['delete_row','table.delete_row_desc','mceTableDeleteRow'],['col_after','table.col_after_desc','mceTableInsertColAfter'],['col_before','table.col_before_desc','mceTableInsertColBefore'],['row_after','table.row_after_desc','mceTableInsertRowAfter'],['row_before','table.row_before_desc','mceTableInsertRowBefore'],['row_props','table.row_desc','mceTableRowProps',true],['cell_props','table.cell_desc','mceTableCellProps',true],['split_cells','table.split_cells_desc','mceTableSplitCells',true],['merge_cells','table.merge_cells_desc','mceTableMergeCells',true]],function(c){ed.addButton(c[0],{title:c[1],cmd:c[2],ui:c[3]});});ed.onInit.add(function(){if(ed&&ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){var sm;if(ed.dom.getParent(e,'td')||ed.dom.getParent(e,'th')){m.removeAll();m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true,value:{action:'insert'}});m.add({title:'table.props_desc',icon:'table_props',cmd:'mceInsertTable',ui:true});m.add({title:'table.del',icon:'delete_table',cmd:'mceTableDelete',ui:true});m.addSeparator();sm=m.addMenu({title:'table.cell'});sm.add({title:'table.cell_desc',icon:'cell_props',cmd:'mceTableCellProps',ui:true});sm.add({title:'table.split_cells_desc',icon:'split_cells',cmd:'mceTableSplitCells',ui:true});sm.add({title:'table.merge_cells_desc',icon:'merge_cells',cmd:'mceTableMergeCells',ui:true});sm=m.addMenu({title:'table.row'});sm.add({title:'table.row_desc',icon:'row_props',cmd:'mceTableRowProps',ui:true});sm.add({title:'table.row_before_desc',icon:'row_before',cmd:'mceTableInsertRowBefore'});sm.add({title:'table.row_after_desc',icon:'row_after',cmd:'mceTableInsertRowAfter'});sm.add({title:'table.delete_row_desc',icon:'delete_row',cmd:'mceTableDeleteRow'});sm.addSeparator();sm.add({title:'table.cut_row_desc',icon:'cut',cmd:'mceTableCutRow'});sm.add({title:'table.copy_row_desc',icon:'copy',cmd:'mceTableCopyRow'});sm.add({title:'table.paste_row_before_desc',icon:'paste',cmd:'mceTablePasteRowBefore'});sm.add({title:'table.paste_row_after_desc',icon:'paste',cmd:'mceTablePasteRowAfter'});sm=m.addMenu({title:'table.col'});sm.add({title:'table.col_before_desc',icon:'col_before',cmd:'mceTableInsertColBefore'});sm.add({title:'table.col_after_desc',icon:'col_after',cmd:'mceTableInsertColAfter'});sm.add({title:'table.delete_col_desc',icon:'delete_col',cmd:'mceTableDeleteCol'});}else m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true});});}});if(tinymce.isGecko){ed.onKeyPress.add(function(ed,e){var n;if(e.keyCode==46){n=ed.dom.getParent(ed.selection.getNode(),'TD,TH');if(n&&(!n.hasChildNodes()||(n.childNodes.length==1&&n.firstChild.nodeName=='BR')))tinymce.dom.Event.cancel(e);}});}ed.onKeyDown.add(function(ed,e){if(e.keyCode==9&&ed.dom.getParent(ed.selection.getNode(),'TABLE'))ed.undoManager.add();});ed.onNodeChange.add(function(ed,cm,n){var p=ed.dom.getParent(n,'td,th,caption');cm.setActive('table',!!p);if(p&&p.nodeName==='CAPTION')p=null;cm.setDisabled('delete_table',!p);cm.setDisabled('delete_col',!p);cm.setDisabled('delete_table',!p);cm.setDisabled('delete_row',!p);cm.setDisabled('col_after',!p);cm.setDisabled('col_before',!p);cm.setDisabled('row_after',!p);cm.setDisabled('row_before',!p);cm.setDisabled('row_props',!p);cm.setDisabled('cell_props',!p);cm.setDisabled('split_cells',!p||(parseInt(ed.dom.getAttrib(p,'colspan','1'))<2&&parseInt(ed.dom.getAttrib(p,'rowspan','1'))<2));cm.setDisabled('merge_cells',!p);});},execCommand:function(cmd,ui,val){var ed=this.editor,b;switch(cmd){case"mceInsertTable":case"mceTableRowProps":case"mceTableCellProps":case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":case"mceTableDelete":ed.execCommand('mceBeginUndoLevel');this._doExecCommand(cmd,ui,val);ed.execCommand('mceEndUndoLevel');return true;}return false;},getInfo:function(){return{longname:'Tables',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_doExecCommand:function(command,user_interface,value){var inst=this.editor,ed=inst,url=this.url;var focusElm=inst.selection.getNode();var trElm=inst.dom.getParent(focusElm,"tr");var tdElm=inst.dom.getParent(focusElm,"td,th");var tableElm=inst.dom.getParent(focusElm,"table");var doc=inst.contentWindow.document;var tableBorder=tableElm?tableElm.getAttribute("border"):"";if(trElm&&tdElm==null)tdElm=trElm.cells[0];function inArray(ar,v){for(var i=0;i<ar.length;i++){if(ar[i].length>0&&inArray(ar[i],v))return true;if(ar[i]==v)return true;}return false;}function select(dx,dy){var td;grid=getTableGrid(tableElm);dx=dx||0;dy=dy||0;dx=Math.max(cpos.cellindex+dx,0);dy=Math.max(cpos.rowindex+dy,0);inst.execCommand('mceRepaint');td=getCell(grid,dy,dx);if(td){inst.selection.select(td.firstChild||td);inst.selection.collapse(1);}};function makeTD(){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';}function getColRowSpan(td){var colspan=inst.dom.getAttrib(td,"colspan");var rowspan=inst.dom.getAttrib(td,"rowspan");colspan=colspan==""?1:parseInt(colspan);rowspan=rowspan==""?1:parseInt(rowspan);return{colspan:colspan,rowspan:rowspan};}function getCellPos(grid,td){var x,y;for(y=0;y<grid.length;y++){for(x=0;x<grid[y].length;x++){if(grid[y][x]==td)return{cellindex:x,rowindex:y};}}return null;}function getCell(grid,row,col){if(grid[row]&&grid[row][col])return grid[row][col];return null;}function getTableGrid(table){var grid=[],rows=table.rows,x,y,td,sd,xstart,x2,y2;for(y=0;y<rows.length;y++){for(x=0;x<rows[y].cells.length;x++){td=rows[y].cells[x];sd=getColRowSpan(td);for(xstart=x;grid[y]&&grid[y][xstart];xstart++);for(y2=y;y2<y+sd['rowspan'];y2++){if(!grid[y2])grid[y2]=[];for(x2=xstart;x2<xstart+sd['colspan'];x2++)grid[y2][x2]=td;}}}return grid;}function trimRow(table,tr,td,new_tr){var grid=getTableGrid(table),cpos=getCellPos(grid,td);var cells,lastElm;if(new_tr.cells.length!=tr.childNodes.length){cells=tr.childNodes;lastElm=null;for(var x=0;td=getCell(grid,cpos.rowindex,x);x++){var remove=true;var sd=getColRowSpan(td);if(inArray(cells,td)){new_tr.childNodes[x]._delete=true;}else if((lastElm==null||td!=lastElm)&&sd.colspan>1){for(var i=x;i<x+td.colSpan;i++)new_tr.childNodes[i]._delete=true;}if((lastElm==null||td!=lastElm)&&sd.rowspan>1)td.rowSpan=sd.rowspan+1;lastElm=td;}deleteMarked(tableElm);}}function prevElm(node,name){while((node=node.previousSibling)!=null){if(node.nodeName==name)return node;}return null;}function nextElm(node,names){var namesAr=names.split(',');while((node=node.nextSibling)!=null){for(var i=0;i<namesAr.length;i++){if(node.nodeName.toLowerCase()==namesAr[i].toLowerCase())return node;}}return null;}function deleteMarked(tbl){if(tbl.rows==0)return;var tr=tbl.rows[0];do{var next=nextElm(tr,"TR");if(tr._delete){tr.parentNode.removeChild(tr);continue;}var td=tr.cells[0];if(td.cells>1){do{var nexttd=nextElm(td,"TD,TH");if(td._delete)td.parentNode.removeChild(td);}while((td=nexttd)!=null);}}while((tr=next)!=null);}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,"TR");for(var i=1;i<rowspan&&trNext;i++){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';if(tinymce.isIE)trNext.insertBefore(newTD,trNext.cells(td_elm.cellIndex));else trNext.insertBefore(newTD,trNext.cells[td_elm.cellIndex]);trNext=nextElm(trNext,"TR");}}function copyRow(doc,table,tr){var grid=getTableGrid(table);var newTR=tr.cloneNode(false);var cpos=getCellPos(grid,tr.cells[0]);var lastCell=null;var tableBorder=inst.dom.getAttrib(table,"border");var tdElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){var newTD=null;if(lastCell!=tdElm){for(var i=0;i<tr.cells.length;i++){if(tdElm==tr.cells[i]){newTD=tdElm.cloneNode(true);break;}}}if(newTD==null){newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';}newTD.colSpan=1;newTD.rowSpan=1;newTR.appendChild(newTD);lastCell=tdElm;}return newTR;}switch(command){case"mceTableRowProps":if(trElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/row.htm',width:400+parseInt(inst.getLang('table.rowprops_delta_width',0)),height:295+parseInt(inst.getLang('table.rowprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case"mceTableCellProps":if(tdElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/cell.htm',width:400+parseInt(inst.getLang('table.cellprops_delta_width',0)),height:295+parseInt(inst.getLang('table.cellprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case"mceInsertTable":if(user_interface){inst.windowManager.open({url:url+'/table.htm',width:400+parseInt(inst.getLang('table.table_delta_width',0)),height:320+parseInt(inst.getLang('table.table_delta_height',0)),inline:1},{plugin_url:url,action:value?value.action:0});}return true;case"mceTableDelete":var table=inst.dom.getParent(inst.selection.getNode(),"table");if(table){table.parentNode.removeChild(table);inst.execCommand('mceRepaint');}return true;case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":if(!tableElm)return true;if(trElm&&tableElm!=trElm.parentNode)tableElm=trElm.parentNode;if(tableElm&&trElm){switch(command){case"mceTableCutRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);inst.execCommand("mceTableDeleteRow");break;case"mceTableCopyRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);break;case"mceTablePasteRowBefore":if(!trElm||!tdElm)return true;var newTR=inst.tableRowClipboard.cloneNode(true);var prevTR=prevElm(trElm,"TR");if(prevTR!=null)trimRow(tableElm,prevTR,prevTR.cells[0],newTR);trElm.parentNode.insertBefore(newTR,trElm);break;case"mceTablePasteRowAfter":if(!trElm||!tdElm)return true;var nextTR=nextElm(trElm,"TR");var newTR=inst.tableRowClipboard.cloneNode(true);trimRow(tableElm,trElm,tdElm,newTR);if(nextTR==null)trElm.parentNode.appendChild(newTR);else nextTR.parentNode.insertBefore(newTR,nextTR);break;case"mceTableInsertRowBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}trElm.parentNode.insertBefore(newTR,trElm);select(0,1);break;case"mceTableInsertRowAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}if(newTR.hasChildNodes()){var nextTR=nextElm(trElm,"TR");if(nextTR)nextTR.parentNode.insertBefore(newTR,nextTR);else tableElm.appendChild(newTR);}select(0,1);break;case"mceTableDeleteRow":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);if(grid.length==1){inst.dom.remove(inst.dom.getParent(tableElm,"table"));return true;}var cells=trElm.cells;var nextTR=nextElm(trElm,"TR");for(var x=0;x<cells.length;x++){if(cells[x].rowSpan>1){var newTD=cells[x].cloneNode(true);var sd=getColRowSpan(cells[x]);newTD.rowSpan=sd.rowspan-1;var nextTD=nextTR.cells[x];if(nextTD==null)nextTR.appendChild(newTD);else nextTR.insertBefore(newTD,nextTD);}}var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd.rowspan>1){tdElm.rowSpan=sd.rowspan-1;}else{trElm=tdElm.parentNode;if(trElm.parentNode)trElm._delete=true;}lastTDElm=tdElm;}}deleteMarked(tableElm);select(0,-1);break;case"mceTableInsertColBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.rowSpan=tdElm.rowSpan;tdElm.parentNode.insertBefore(newTD,tdElm);}else tdElm.colSpan++;lastTDElm=tdElm;}}select();break;case"mceTableInsertColAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.rowSpan=tdElm.rowSpan;var nextTD=nextElm(tdElm,"TD,TH");if(nextTD==null)tdElm.parentNode.appendChild(newTD);else nextTD.parentNode.insertBefore(newTD,nextTD);}else tdElm.colSpan++;lastTDElm=tdElm;}}select(1);break;case"mceTableDeleteCol":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;if(grid.length>1&&grid[0].length<=1){inst.dom.remove(inst.dom.getParent(tableElm,"table"));return true;}for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']>1)tdElm.colSpan=sd['colspan']-1;else{if(tdElm.parentNode)tdElm.parentNode.removeChild(tdElm);}lastTDElm=tdElm;}}select(-1);break;case"mceTableSplitCells":if(!trElm||!tdElm)return true;var spandata=getColRowSpan(tdElm);var colspan=spandata["colspan"];var rowspan=spandata["rowspan"];if(colspan>1||rowspan>1){tdElm.colSpan=1;for(var i=1;i<colspan;i++){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';trElm.insertBefore(newTD,nextElm(tdElm,"TD,TH"));if(rowspan>1)addRows(newTD,trElm,rowspan);}addRows(tdElm,trElm,rowspan);}tableElm=inst.dom.getParent(inst.selection.getNode(),"table");break;case"mceTableMergeCells":var rows=[];var sel=inst.selection.getSel();var grid=getTableGrid(tableElm);if(tinymce.isIE||sel.rangeCount==1){if(user_interface){var sp=getColRowSpan(tdElm);inst.windowManager.open({url:url+'/merge_cells.htm',width:240+parseInt(inst.getLang('table.merge_cells_delta_width',0)),height:110+parseInt(inst.getLang('table.merge_cells_delta_height',0)),inline:1},{action:"update",numcols:sp.colspan,numrows:sp.rowspan,plugin_url:url});return true;}else{var numRows=parseInt(value['numrows']);var numCols=parseInt(value['numcols']);var cpos=getCellPos(grid,tdElm);if((""+numRows)=="NaN")numRows=1;if((""+numCols)=="NaN")numCols=1;var tRows=tableElm.rows;for(var y=cpos.rowindex;y<grid.length;y++){var rowCells=[];for(var x=cpos.cellindex;x<grid[y].length;x++){var td=getCell(grid,y,x);if(td&&!inArray(rows,td)&&!inArray(rowCells,td)){var cp=getCellPos(grid,td);if(cp.cellindex<cpos.cellindex+numCols&&cp.rowindex<cpos.rowindex+numRows)rowCells[rowCells.length]=td;}}if(rowCells.length>0)rows[rows.length]=rowCells;var td=getCell(grid,cpos.rowindex,cpos.cellindex);each(ed.dom.select('br',td),function(e,i){if(i>0&&ed.dom.getAttrib('mce_bogus'))ed.dom.remove(e);});}}}else{var cells=[];var sel=inst.selection.getSel();var lastTR=null;var curRow=null;var x1=-1,y1=-1,x2,y2;if(sel.rangeCount<2)return true;for(var i=0;i<sel.rangeCount;i++){var rng=sel.getRangeAt(i);var tdElm=rng.startContainer.childNodes[rng.startOffset];if(!tdElm)break;if(tdElm.nodeName=="TD")cells[cells.length]=tdElm;}var tRows=tableElm.rows;for(var y=0;y<tRows.length;y++){var rowCells=[];for(var x=0;x<tRows[y].cells.length;x++){var td=tRows[y].cells[x];for(var i=0;i<cells.length;i++){if(td==cells[i]){rowCells[rowCells.length]=td;}}}if(rowCells.length>0)rows[rows.length]=rowCells;}var curRow=[];var lastTR=null;for(var y=0;y<grid.length;y++){for(var x=0;x<grid[y].length;x++){grid[y][x]._selected=false;for(var i=0;i<cells.length;i++){if(grid[y][x]==cells[i]){if(x1==-1){x1=x;y1=y;}x2=x;y2=y;grid[y][x]._selected=true;}}}}for(var y=y1;y<=y2;y++){for(var x=x1;x<=x2;x++){if(!grid[y][x]._selected){alert("Invalid selection for merge.");return true;}}}}var rowSpan=1,colSpan=1;var lastRowSpan=-1;for(var y=0;y<rows.length;y++){var rowColSpan=0;for(var x=0;x<rows[y].length;x++){var sd=getColRowSpan(rows[y][x]);rowColSpan+=sd['colspan'];if(lastRowSpan!=-1&&sd['rowspan']!=lastRowSpan){alert("Invalid selection for merge.");return true;}lastRowSpan=sd['rowspan'];}if(rowColSpan>colSpan)colSpan=rowColSpan;lastRowSpan=-1;}var lastColSpan=-1;for(var x=0;x<rows[0].length;x++){var colRowSpan=0;for(var y=0;y<rows.length;y++){var sd=getColRowSpan(rows[y][x]);colRowSpan+=sd['rowspan'];if(lastColSpan!=-1&&sd['colspan']!=lastColSpan){alert("Invalid selection for merge.");return true;}lastColSpan=sd['colspan'];}if(colRowSpan>rowSpan)rowSpan=colRowSpan;lastColSpan=-1;}tdElm=rows[0][0];tdElm.rowSpan=rowSpan;tdElm.colSpan=colSpan;for(var y=0;y<rows.length;y++){for(var x=0;x<rows[y].length;x++){var html=rows[y][x].innerHTML;var chk=html.replace(/[ \t\r\n]/g,"");if(chk!="<br/>"&&chk!="<br>"&&chk!='<br mce_bogus="1"/>'&&(x+y>0))tdElm.innerHTML+=html;if(rows[y][x]!=tdElm&&!rows[y][x]._deleted){var cpos=getCellPos(grid,rows[y][x]);var tr=rows[y][x].parentNode;tr.removeChild(rows[y][x]);rows[y][x]._deleted=true;if(!tr.hasChildNodes()){tr.parentNode.removeChild(tr);var lastCell=null;for(var x=0;cellElm=getCell(grid,cpos.rowindex,x);x++){if(cellElm!=lastCell&&cellElm.rowSpan>1)cellElm.rowSpan--;lastCell=cellElm;}if(tdElm.rowSpan>1)tdElm.rowSpan--;}}}}each(ed.dom.select('br',tdElm),function(e,i){if(i>0&&ed.dom.getAttrib(e,'mce_bogus'))ed.dom.remove(e);});break;}tableElm=inst.dom.getParent(inst.selection.getNode(),"table");inst.addVisual(tableElm);inst.nodeChanged();}return true;}return false;}});tinymce.PluginManager.add('table',tinymce.plugins.TablePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.plugins.TablePlugin', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+ t.url = url;\r
+\r
+ // Register buttons\r
+ each([\r
+ ['table', 'table.desc', 'mceInsertTable', true],\r
+ ['delete_table', 'table.del', 'mceTableDelete'],\r
+ ['delete_col', 'table.delete_col_desc', 'mceTableDeleteCol'],\r
+ ['delete_row', 'table.delete_row_desc', 'mceTableDeleteRow'],\r
+ ['col_after', 'table.col_after_desc', 'mceTableInsertColAfter'],\r
+ ['col_before', 'table.col_before_desc', 'mceTableInsertColBefore'],\r
+ ['row_after', 'table.row_after_desc', 'mceTableInsertRowAfter'],\r
+ ['row_before', 'table.row_before_desc', 'mceTableInsertRowBefore'],\r
+ ['row_props', 'table.row_desc', 'mceTableRowProps', true],\r
+ ['cell_props', 'table.cell_desc', 'mceTableCellProps', true],\r
+ ['split_cells', 'table.split_cells_desc', 'mceTableSplitCells', true],\r
+ ['merge_cells', 'table.merge_cells_desc', 'mceTableMergeCells', true]\r
+ ], function(c) {\r
+ ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]});\r
+ });\r
+\r
+ ed.onInit.add(function() {\r
+ if (ed && ed.plugins.contextmenu) {\r
+ ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {\r
+ var sm;\r
+\r
+ if (ed.dom.getParent(e, 'td') || ed.dom.getParent(e, 'th')) {\r
+ m.removeAll();\r
+ m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', ui : true, value : {action : 'insert'}});\r
+ m.add({title : 'table.props_desc', icon : 'table_props', cmd : 'mceInsertTable', ui : true});\r
+ m.add({title : 'table.del', icon : 'delete_table', cmd : 'mceTableDelete', ui : true});\r
+ m.addSeparator();\r
+\r
+ // Cell menu\r
+ sm = m.addMenu({title : 'table.cell'});\r
+ sm.add({title : 'table.cell_desc', icon : 'cell_props', cmd : 'mceTableCellProps', ui : true});\r
+ sm.add({title : 'table.split_cells_desc', icon : 'split_cells', cmd : 'mceTableSplitCells', ui : true});\r
+ sm.add({title : 'table.merge_cells_desc', icon : 'merge_cells', cmd : 'mceTableMergeCells', ui : true});\r
+\r
+ // Row menu\r
+ sm = m.addMenu({title : 'table.row'});\r
+ sm.add({title : 'table.row_desc', icon : 'row_props', cmd : 'mceTableRowProps', ui : true});\r
+ sm.add({title : 'table.row_before_desc', icon : 'row_before', cmd : 'mceTableInsertRowBefore'});\r
+ sm.add({title : 'table.row_after_desc', icon : 'row_after', cmd : 'mceTableInsertRowAfter'});\r
+ sm.add({title : 'table.delete_row_desc', icon : 'delete_row', cmd : 'mceTableDeleteRow'});\r
+ sm.addSeparator();\r
+ sm.add({title : 'table.cut_row_desc', icon : 'cut', cmd : 'mceTableCutRow'});\r
+ sm.add({title : 'table.copy_row_desc', icon : 'copy', cmd : 'mceTableCopyRow'});\r
+ sm.add({title : 'table.paste_row_before_desc', icon : 'paste', cmd : 'mceTablePasteRowBefore'});\r
+ sm.add({title : 'table.paste_row_after_desc', icon : 'paste', cmd : 'mceTablePasteRowAfter'});\r
+\r
+ // Column menu\r
+ sm = m.addMenu({title : 'table.col'});\r
+ sm.add({title : 'table.col_before_desc', icon : 'col_before', cmd : 'mceTableInsertColBefore'});\r
+ sm.add({title : 'table.col_after_desc', icon : 'col_after', cmd : 'mceTableInsertColAfter'});\r
+ sm.add({title : 'table.delete_col_desc', icon : 'delete_col', cmd : 'mceTableDeleteCol'});\r
+ } else\r
+ m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', ui : true});\r
+ });\r
+ }\r
+ });\r
+\r
+ // Block delete on gecko inside TD:s. Gecko is removing table elements and then produces incorrect tables\r
+ // The backspace key also removed TD:s but this one can not be blocked\r
+ if (tinymce.isGecko) {\r
+ ed.onKeyPress.add(function(ed, e) {\r
+ var n;\r
+\r
+ if (e.keyCode == 46) {\r
+ n = ed.dom.getParent(ed.selection.getNode(), 'TD,TH');\r
+ if (n && (!n.hasChildNodes() || (n.childNodes.length == 1 && n.firstChild.nodeName == 'BR')))\r
+ tinymce.dom.Event.cancel(e);\r
+ }\r
+ });\r
+ }\r
+\r
+ // Add undo level when new rows are created using the tab key\r
+ ed.onKeyDown.add(function(ed, e) {\r
+ if (e.keyCode == 9 && ed.dom.getParent(ed.selection.getNode(), 'TABLE'))\r
+ ed.undoManager.add();\r
+ });\r
+\r
+ ed.onNodeChange.add(function(ed, cm, n) {\r
+ var p = ed.dom.getParent(n, 'td,th,caption');\r
+\r
+ cm.setActive('table', !!p);\r
+ if (p && p.nodeName === 'CAPTION')\r
+ p = null;\r
+\r
+ cm.setDisabled('delete_table', !p);\r
+ cm.setDisabled('delete_col', !p);\r
+ cm.setDisabled('delete_table', !p);\r
+ cm.setDisabled('delete_row', !p);\r
+ cm.setDisabled('col_after', !p);\r
+ cm.setDisabled('col_before', !p);\r
+ cm.setDisabled('row_after', !p);\r
+ cm.setDisabled('row_before', !p);\r
+ cm.setDisabled('row_props', !p);\r
+ cm.setDisabled('cell_props', !p);\r
+ cm.setDisabled('split_cells', !p || (parseInt(ed.dom.getAttrib(p, 'colspan', '1')) < 2 && parseInt(ed.dom.getAttrib(p, 'rowspan', '1')) < 2));\r
+ cm.setDisabled('merge_cells', !p);\r
+ });\r
+ },\r
+\r
+ execCommand : function(cmd, ui, val) {\r
+ var ed = this.editor, b;\r
+\r
+ // Is table command\r
+ switch (cmd) {\r
+ case "mceInsertTable":\r
+ case "mceTableRowProps":\r
+ case "mceTableCellProps":\r
+ case "mceTableSplitCells":\r
+ case "mceTableMergeCells":\r
+ case "mceTableInsertRowBefore":\r
+ case "mceTableInsertRowAfter":\r
+ case "mceTableDeleteRow":\r
+ case "mceTableInsertColBefore":\r
+ case "mceTableInsertColAfter":\r
+ case "mceTableDeleteCol":\r
+ case "mceTableCutRow":\r
+ case "mceTableCopyRow":\r
+ case "mceTablePasteRowBefore":\r
+ case "mceTablePasteRowAfter":\r
+ case "mceTableDelete":\r
+ ed.execCommand('mceBeginUndoLevel');\r
+ this._doExecCommand(cmd, ui, val);\r
+ ed.execCommand('mceEndUndoLevel');\r
+\r
+ return true;\r
+ }\r
+\r
+ // Pass to next handler in chain\r
+ return false;\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Tables',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private plugin internal methods\r
+\r
+ /**\r
+ * Executes the table commands.\r
+ */\r
+ _doExecCommand : function(command, user_interface, value) {\r
+ var inst = this.editor, ed = inst, url = this.url;\r
+ var focusElm = inst.selection.getNode();\r
+ var trElm = inst.dom.getParent(focusElm, "tr");\r
+ var tdElm = inst.dom.getParent(focusElm, "td,th");\r
+ var tableElm = inst.dom.getParent(focusElm, "table");\r
+ var doc = inst.contentWindow.document;\r
+ var tableBorder = tableElm ? tableElm.getAttribute("border") : "";\r
+\r
+ // Get first TD if no TD found\r
+ if (trElm && tdElm == null)\r
+ tdElm = trElm.cells[0];\r
+\r
+ function inArray(ar, v) {\r
+ for (var i=0; i<ar.length; i++) {\r
+ // Is array\r
+ if (ar[i].length > 0 && inArray(ar[i], v))\r
+ return true;\r
+\r
+ // Found value\r
+ if (ar[i] == v)\r
+ return true;\r
+ }\r
+\r
+ return false;\r
+ }\r
+\r
+ function select(dx, dy) {\r
+ var td;\r
+\r
+ grid = getTableGrid(tableElm);\r
+ dx = dx || 0;\r
+ dy = dy || 0;\r
+ dx = Math.max(cpos.cellindex + dx, 0);\r
+ dy = Math.max(cpos.rowindex + dy, 0);\r
+\r
+ // Recalculate grid and select\r
+ inst.execCommand('mceRepaint');\r
+ td = getCell(grid, dy, dx);\r
+\r
+ if (td) {\r
+ inst.selection.select(td.firstChild || td);\r
+ inst.selection.collapse(1);\r
+ }\r
+ };\r
+\r
+ function makeTD() {\r
+ var newTD = doc.createElement("td");\r
+\r
+ if (!tinymce.isIE)\r
+ newTD.innerHTML = '<br mce_bogus="1"/>';\r
+ }\r
+\r
+ function getColRowSpan(td) {\r
+ var colspan = inst.dom.getAttrib(td, "colspan");\r
+ var rowspan = inst.dom.getAttrib(td, "rowspan");\r
+\r
+ colspan = colspan == "" ? 1 : parseInt(colspan);\r
+ rowspan = rowspan == "" ? 1 : parseInt(rowspan);\r
+\r
+ return {colspan : colspan, rowspan : rowspan};\r
+ }\r
+\r
+ function getCellPos(grid, td) {\r
+ var x, y;\r
+\r
+ for (y=0; y<grid.length; y++) {\r
+ for (x=0; x<grid[y].length; x++) {\r
+ if (grid[y][x] == td)\r
+ return {cellindex : x, rowindex : y};\r
+ }\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ function getCell(grid, row, col) {\r
+ if (grid[row] && grid[row][col])\r
+ return grid[row][col];\r
+\r
+ return null;\r
+ }\r
+\r
+ function getTableGrid(table) {\r
+ var grid = [], rows = table.rows, x, y, td, sd, xstart, x2, y2;\r
+\r
+ for (y=0; y<rows.length; y++) {\r
+ for (x=0; x<rows[y].cells.length; x++) {\r
+ td = rows[y].cells[x];\r
+ sd = getColRowSpan(td);\r
+\r
+ // All ready filled\r
+ for (xstart = x; grid[y] && grid[y][xstart]; xstart++) ;\r
+\r
+ // Fill box\r
+ for (y2=y; y2<y+sd['rowspan']; y2++) {\r
+ if (!grid[y2])\r
+ grid[y2] = [];\r
+\r
+ for (x2=xstart; x2<xstart+sd['colspan']; x2++)\r
+ grid[y2][x2] = td;\r
+ }\r
+ }\r
+ }\r
+\r
+ return grid;\r
+ }\r
+\r
+ function trimRow(table, tr, td, new_tr) {\r
+ var grid = getTableGrid(table), cpos = getCellPos(grid, td);\r
+ var cells, lastElm;\r
+\r
+ // Time to crop away some\r
+ if (new_tr.cells.length != tr.childNodes.length) {\r
+ cells = tr.childNodes;\r
+ lastElm = null;\r
+\r
+ for (var x=0; td = getCell(grid, cpos.rowindex, x); x++) {\r
+ var remove = true;\r
+ var sd = getColRowSpan(td);\r
+\r
+ // Remove due to rowspan\r
+ if (inArray(cells, td)) {\r
+ new_tr.childNodes[x]._delete = true;\r
+ } else if ((lastElm == null || td != lastElm) && sd.colspan > 1) { // Remove due to colspan\r
+ for (var i=x; i<x+td.colSpan; i++)\r
+ new_tr.childNodes[i]._delete = true;\r
+ }\r
+\r
+ if ((lastElm == null || td != lastElm) && sd.rowspan > 1)\r
+ td.rowSpan = sd.rowspan + 1;\r
+\r
+ lastElm = td;\r
+ }\r
+\r
+ deleteMarked(tableElm);\r
+ }\r
+ }\r
+\r
+ function prevElm(node, name) {\r
+ while ((node = node.previousSibling) != null) {\r
+ if (node.nodeName == name)\r
+ return node;\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ function nextElm(node, names) {\r
+ var namesAr = names.split(',');\r
+\r
+ while ((node = node.nextSibling) != null) {\r
+ for (var i=0; i<namesAr.length; i++) {\r
+ if (node.nodeName.toLowerCase() == namesAr[i].toLowerCase() )\r
+ return node;\r
+ }\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ function deleteMarked(tbl) {\r
+ if (tbl.rows == 0)\r
+ return;\r
+\r
+ var tr = tbl.rows[0];\r
+ do {\r
+ var next = nextElm(tr, "TR");\r
+\r
+ // Delete row\r
+ if (tr._delete) {\r
+ tr.parentNode.removeChild(tr);\r
+ continue;\r
+ }\r
+\r
+ // Delete cells\r
+ var td = tr.cells[0];\r
+ if (td.cells > 1) {\r
+ do {\r
+ var nexttd = nextElm(td, "TD,TH");\r
+\r
+ if (td._delete)\r
+ td.parentNode.removeChild(td);\r
+ } while ((td = nexttd) != null);\r
+ }\r
+ } while ((tr = next) != null);\r
+ }\r
+\r
+ function addRows(td_elm, tr_elm, rowspan) {\r
+ // Add rows\r
+ td_elm.rowSpan = 1;\r
+ var trNext = nextElm(tr_elm, "TR");\r
+ for (var i=1; i<rowspan && trNext; i++) {\r
+ var newTD = doc.createElement("td");\r
+\r
+ if (!tinymce.isIE)\r
+ newTD.innerHTML = '<br mce_bogus="1"/>';\r
+\r
+ if (tinymce.isIE)\r
+ trNext.insertBefore(newTD, trNext.cells(td_elm.cellIndex));\r
+ else\r
+ trNext.insertBefore(newTD, trNext.cells[td_elm.cellIndex]);\r
+\r
+ trNext = nextElm(trNext, "TR");\r
+ }\r
+ }\r
+\r
+ function copyRow(doc, table, tr) {\r
+ var grid = getTableGrid(table);\r
+ var newTR = tr.cloneNode(false);\r
+ var cpos = getCellPos(grid, tr.cells[0]);\r
+ var lastCell = null;\r
+ var tableBorder = inst.dom.getAttrib(table, "border");\r
+ var tdElm = null;\r
+\r
+ for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
+ var newTD = null;\r
+\r
+ if (lastCell != tdElm) {\r
+ for (var i=0; i<tr.cells.length; i++) {\r
+ if (tdElm == tr.cells[i]) {\r
+ newTD = tdElm.cloneNode(true);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+\r
+ if (newTD == null) {\r
+ newTD = doc.createElement("td");\r
+\r
+ if (!tinymce.isIE)\r
+ newTD.innerHTML = '<br mce_bogus="1"/>';\r
+ }\r
+\r
+ // Reset col/row span\r
+ newTD.colSpan = 1;\r
+ newTD.rowSpan = 1;\r
+\r
+ newTR.appendChild(newTD);\r
+\r
+ lastCell = tdElm;\r
+ }\r
+\r
+ return newTR;\r
+ }\r
+\r
+ // ---- Commands -----\r
+\r
+ // Handle commands\r
+ switch (command) {\r
+ case "mceTableRowProps":\r
+ if (trElm == null)\r
+ return true;\r
+\r
+ if (user_interface) {\r
+ inst.windowManager.open({\r
+ url : url + '/row.htm',\r
+ width : 400 + parseInt(inst.getLang('table.rowprops_delta_width', 0)),\r
+ height : 295 + parseInt(inst.getLang('table.rowprops_delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ }\r
+\r
+ return true;\r
+\r
+ case "mceTableCellProps":\r
+ if (tdElm == null)\r
+ return true;\r
+\r
+ if (user_interface) {\r
+ inst.windowManager.open({\r
+ url : url + '/cell.htm',\r
+ width : 400 + parseInt(inst.getLang('table.cellprops_delta_width', 0)),\r
+ height : 295 + parseInt(inst.getLang('table.cellprops_delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ }\r
+\r
+ return true;\r
+\r
+ case "mceInsertTable":\r
+ if (user_interface) {\r
+ inst.windowManager.open({\r
+ url : url + '/table.htm',\r
+ width : 400 + parseInt(inst.getLang('table.table_delta_width', 0)),\r
+ height : 320 + parseInt(inst.getLang('table.table_delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url,\r
+ action : value ? value.action : 0\r
+ });\r
+ }\r
+\r
+ return true;\r
+\r
+ case "mceTableDelete":\r
+ var table = inst.dom.getParent(inst.selection.getNode(), "table");\r
+ if (table) {\r
+ table.parentNode.removeChild(table);\r
+ inst.execCommand('mceRepaint');\r
+ }\r
+ return true;\r
+\r
+ case "mceTableSplitCells":\r
+ case "mceTableMergeCells":\r
+ case "mceTableInsertRowBefore":\r
+ case "mceTableInsertRowAfter":\r
+ case "mceTableDeleteRow":\r
+ case "mceTableInsertColBefore":\r
+ case "mceTableInsertColAfter":\r
+ case "mceTableDeleteCol":\r
+ case "mceTableCutRow":\r
+ case "mceTableCopyRow":\r
+ case "mceTablePasteRowBefore":\r
+ case "mceTablePasteRowAfter":\r
+ // No table just return (invalid command)\r
+ if (!tableElm)\r
+ return true;\r
+\r
+ // Table has a tbody use that reference\r
+ // Changed logic by ApTest 2005.07.12 (www.aptest.com)\r
+ // Now lookk at the focused element and take its parentNode. That will be a tbody or a table.\r
+ if (trElm && tableElm != trElm.parentNode)\r
+ tableElm = trElm.parentNode;\r
+\r
+ if (tableElm && trElm) {\r
+ switch (command) {\r
+ case "mceTableCutRow":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+\r
+ inst.tableRowClipboard = copyRow(doc, tableElm, trElm);\r
+ inst.execCommand("mceTableDeleteRow");\r
+ break;\r
+\r
+ case "mceTableCopyRow":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+\r
+ inst.tableRowClipboard = copyRow(doc, tableElm, trElm);\r
+ break;\r
+\r
+ case "mceTablePasteRowBefore":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+\r
+ var newTR = inst.tableRowClipboard.cloneNode(true);\r
+\r
+ var prevTR = prevElm(trElm, "TR");\r
+ if (prevTR != null)\r
+ trimRow(tableElm, prevTR, prevTR.cells[0], newTR);\r
+\r
+ trElm.parentNode.insertBefore(newTR, trElm);\r
+ break;\r
+\r
+ case "mceTablePasteRowAfter":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+ \r
+ var nextTR = nextElm(trElm, "TR");\r
+ var newTR = inst.tableRowClipboard.cloneNode(true);\r
+\r
+ trimRow(tableElm, trElm, tdElm, newTR);\r
+\r
+ if (nextTR == null)\r
+ trElm.parentNode.appendChild(newTR);\r
+ else\r
+ nextTR.parentNode.insertBefore(newTR, nextTR);\r
+\r
+ break;\r
+\r
+ case "mceTableInsertRowBefore":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+\r
+ var grid = getTableGrid(tableElm);\r
+ var cpos = getCellPos(grid, tdElm);\r
+ var newTR = doc.createElement("tr");\r
+ var lastTDElm = null;\r
+\r
+ cpos.rowindex--;\r
+ if (cpos.rowindex < 0)\r
+ cpos.rowindex = 0;\r
+\r
+ // Create cells\r
+ for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
+ if (tdElm != lastTDElm) {\r
+ var sd = getColRowSpan(tdElm);\r
+\r
+ if (sd['rowspan'] == 1) {\r
+ var newTD = doc.createElement("td");\r
+\r
+ if (!tinymce.isIE)\r
+ newTD.innerHTML = '<br mce_bogus="1"/>';\r
+\r
+ newTD.colSpan = tdElm.colSpan;\r
+\r
+ newTR.appendChild(newTD);\r
+ } else\r
+ tdElm.rowSpan = sd['rowspan'] + 1;\r
+\r
+ lastTDElm = tdElm;\r
+ }\r
+ }\r
+\r
+ trElm.parentNode.insertBefore(newTR, trElm);\r
+ select(0, 1);\r
+ break;\r
+\r
+ case "mceTableInsertRowAfter":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+\r
+ var grid = getTableGrid(tableElm);\r
+ var cpos = getCellPos(grid, tdElm);\r
+ var newTR = doc.createElement("tr");\r
+ var lastTDElm = null;\r
+\r
+ // Create cells\r
+ for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
+ if (tdElm != lastTDElm) {\r
+ var sd = getColRowSpan(tdElm);\r
+\r
+ if (sd['rowspan'] == 1) {\r
+ var newTD = doc.createElement("td");\r
+\r
+ if (!tinymce.isIE)\r
+ newTD.innerHTML = '<br mce_bogus="1"/>';\r
+\r
+ newTD.colSpan = tdElm.colSpan;\r
+\r
+ newTR.appendChild(newTD);\r
+ } else\r
+ tdElm.rowSpan = sd['rowspan'] + 1;\r
+\r
+ lastTDElm = tdElm;\r
+ }\r
+ }\r
+\r
+ if (newTR.hasChildNodes()) {\r
+ var nextTR = nextElm(trElm, "TR");\r
+ if (nextTR)\r
+ nextTR.parentNode.insertBefore(newTR, nextTR);\r
+ else\r
+ tableElm.appendChild(newTR);\r
+ }\r
+\r
+ select(0, 1);\r
+ break;\r
+\r
+ case "mceTableDeleteRow":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+\r
+ var grid = getTableGrid(tableElm);\r
+ var cpos = getCellPos(grid, tdElm);\r
+\r
+ // Only one row, remove whole table\r
+ if (grid.length == 1) {\r
+ inst.dom.remove(inst.dom.getParent(tableElm, "table"));\r
+ return true;\r
+ }\r
+\r
+ // Move down row spanned cells\r
+ var cells = trElm.cells;\r
+ var nextTR = nextElm(trElm, "TR");\r
+ for (var x=0; x<cells.length; x++) {\r
+ if (cells[x].rowSpan > 1) {\r
+ var newTD = cells[x].cloneNode(true);\r
+ var sd = getColRowSpan(cells[x]);\r
+\r
+ newTD.rowSpan = sd.rowspan - 1;\r
+\r
+ var nextTD = nextTR.cells[x];\r
+\r
+ if (nextTD == null)\r
+ nextTR.appendChild(newTD);\r
+ else\r
+ nextTR.insertBefore(newTD, nextTD);\r
+ }\r
+ }\r
+\r
+ // Delete cells\r
+ var lastTDElm = null;\r
+ for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
+ if (tdElm != lastTDElm) {\r
+ var sd = getColRowSpan(tdElm);\r
+\r
+ if (sd.rowspan > 1) {\r
+ tdElm.rowSpan = sd.rowspan - 1;\r
+ } else {\r
+ trElm = tdElm.parentNode;\r
+\r
+ if (trElm.parentNode)\r
+ trElm._delete = true;\r
+ }\r
+\r
+ lastTDElm = tdElm;\r
+ }\r
+ }\r
+\r
+ deleteMarked(tableElm);\r
+\r
+ select(0, -1);\r
+ break;\r
+\r
+ case "mceTableInsertColBefore":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+\r
+ var grid = getTableGrid(tableElm);\r
+ var cpos = getCellPos(grid, tdElm);\r
+ var lastTDElm = null;\r
+\r
+ for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {\r
+ if (tdElm != lastTDElm) {\r
+ var sd = getColRowSpan(tdElm);\r
+\r
+ if (sd['colspan'] == 1) {\r
+ var newTD = doc.createElement(tdElm.nodeName);\r
+\r
+ if (!tinymce.isIE)\r
+ newTD.innerHTML = '<br mce_bogus="1"/>';\r
+\r
+ newTD.rowSpan = tdElm.rowSpan;\r
+\r
+ tdElm.parentNode.insertBefore(newTD, tdElm);\r
+ } else\r
+ tdElm.colSpan++;\r
+\r
+ lastTDElm = tdElm;\r
+ }\r
+ }\r
+\r
+ select();\r
+ break;\r
+\r
+ case "mceTableInsertColAfter":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+\r
+ var grid = getTableGrid(tableElm);\r
+ var cpos = getCellPos(grid, tdElm);\r
+ var lastTDElm = null;\r
+\r
+ for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {\r
+ if (tdElm != lastTDElm) {\r
+ var sd = getColRowSpan(tdElm);\r
+\r
+ if (sd['colspan'] == 1) {\r
+ var newTD = doc.createElement(tdElm.nodeName);\r
+\r
+ if (!tinymce.isIE)\r
+ newTD.innerHTML = '<br mce_bogus="1"/>';\r
+\r
+ newTD.rowSpan = tdElm.rowSpan;\r
+\r
+ var nextTD = nextElm(tdElm, "TD,TH");\r
+ if (nextTD == null)\r
+ tdElm.parentNode.appendChild(newTD);\r
+ else\r
+ nextTD.parentNode.insertBefore(newTD, nextTD);\r
+ } else\r
+ tdElm.colSpan++;\r
+\r
+ lastTDElm = tdElm;\r
+ }\r
+ }\r
+\r
+ select(1);\r
+ break;\r
+\r
+ case "mceTableDeleteCol":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+\r
+ var grid = getTableGrid(tableElm);\r
+ var cpos = getCellPos(grid, tdElm);\r
+ var lastTDElm = null;\r
+\r
+ // Only one col, remove whole table\r
+ if (grid.length > 1 && grid[0].length <= 1) {\r
+ inst.dom.remove(inst.dom.getParent(tableElm, "table"));\r
+ return true;\r
+ }\r
+\r
+ // Delete cells\r
+ for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {\r
+ if (tdElm != lastTDElm) {\r
+ var sd = getColRowSpan(tdElm);\r
+\r
+ if (sd['colspan'] > 1)\r
+ tdElm.colSpan = sd['colspan'] - 1;\r
+ else {\r
+ if (tdElm.parentNode)\r
+ tdElm.parentNode.removeChild(tdElm);\r
+ }\r
+\r
+ lastTDElm = tdElm;\r
+ }\r
+ }\r
+\r
+ select(-1);\r
+ break;\r
+\r
+ case "mceTableSplitCells":\r
+ if (!trElm || !tdElm)\r
+ return true;\r
+\r
+ var spandata = getColRowSpan(tdElm);\r
+\r
+ var colspan = spandata["colspan"];\r
+ var rowspan = spandata["rowspan"];\r
+\r
+ // Needs splitting\r
+ if (colspan > 1 || rowspan > 1) {\r
+ // Generate cols\r
+ tdElm.colSpan = 1;\r
+ for (var i=1; i<colspan; i++) {\r
+ var newTD = doc.createElement("td");\r
+\r
+ if (!tinymce.isIE)\r
+ newTD.innerHTML = '<br mce_bogus="1"/>';\r
+\r
+ trElm.insertBefore(newTD, nextElm(tdElm, "TD,TH"));\r
+\r
+ if (rowspan > 1)\r
+ addRows(newTD, trElm, rowspan);\r
+ }\r
+\r
+ addRows(tdElm, trElm, rowspan);\r
+ }\r
+\r
+ // Apply visual aids\r
+ tableElm = inst.dom.getParent(inst.selection.getNode(), "table");\r
+ break;\r
+\r
+ case "mceTableMergeCells":\r
+ var rows = [];\r
+ var sel = inst.selection.getSel();\r
+ var grid = getTableGrid(tableElm);\r
+\r
+ if (tinymce.isIE || sel.rangeCount == 1) {\r
+ if (user_interface) {\r
+ // Setup template\r
+ var sp = getColRowSpan(tdElm);\r
+\r
+ inst.windowManager.open({\r
+ url : url + '/merge_cells.htm',\r
+ width : 240 + parseInt(inst.getLang('table.merge_cells_delta_width', 0)),\r
+ height : 110 + parseInt(inst.getLang('table.merge_cells_delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ action : "update",\r
+ numcols : sp.colspan,\r
+ numrows : sp.rowspan,\r
+ plugin_url : url\r
+ });\r
+\r
+ return true;\r
+ } else {\r
+ var numRows = parseInt(value['numrows']);\r
+ var numCols = parseInt(value['numcols']);\r
+ var cpos = getCellPos(grid, tdElm);\r
+\r
+ if (("" + numRows) == "NaN")\r
+ numRows = 1;\r
+\r
+ if (("" + numCols) == "NaN")\r
+ numCols = 1;\r
+\r
+ // Get rows and cells\r
+ var tRows = tableElm.rows;\r
+ for (var y=cpos.rowindex; y<grid.length; y++) {\r
+ var rowCells = [];\r
+\r
+ for (var x=cpos.cellindex; x<grid[y].length; x++) {\r
+ var td = getCell(grid, y, x);\r
+\r
+ if (td && !inArray(rows, td) && !inArray(rowCells, td)) {\r
+ var cp = getCellPos(grid, td);\r
+\r
+ // Within range\r
+ if (cp.cellindex < cpos.cellindex+numCols && cp.rowindex < cpos.rowindex+numRows)\r
+ rowCells[rowCells.length] = td;\r
+ }\r
+ }\r
+\r
+ if (rowCells.length > 0)\r
+ rows[rows.length] = rowCells;\r
+\r
+ var td = getCell(grid, cpos.rowindex, cpos.cellindex);\r
+ each(ed.dom.select('br', td), function(e, i) {\r
+ if (i > 0 && ed.dom.getAttrib('mce_bogus'))\r
+ ed.dom.remove(e);\r
+ });\r
+ }\r
+\r
+ //return true;\r
+ }\r
+ } else {\r
+ var cells = [];\r
+ var sel = inst.selection.getSel();\r
+ var lastTR = null;\r
+ var curRow = null;\r
+ var x1 = -1, y1 = -1, x2, y2;\r
+\r
+ // Only one cell selected, whats the point?\r
+ if (sel.rangeCount < 2)\r
+ return true;\r
+\r
+ // Get all selected cells\r
+ for (var i=0; i<sel.rangeCount; i++) {\r
+ var rng = sel.getRangeAt(i);\r
+ var tdElm = rng.startContainer.childNodes[rng.startOffset];\r
+\r
+ if (!tdElm)\r
+ break;\r
+\r
+ if (tdElm.nodeName == "TD")\r
+ cells[cells.length] = tdElm;\r
+ }\r
+\r
+ // Get rows and cells\r
+ var tRows = tableElm.rows;\r
+ for (var y=0; y<tRows.length; y++) {\r
+ var rowCells = [];\r
+\r
+ for (var x=0; x<tRows[y].cells.length; x++) {\r
+ var td = tRows[y].cells[x];\r
+\r
+ for (var i=0; i<cells.length; i++) {\r
+ if (td == cells[i]) {\r
+ rowCells[rowCells.length] = td;\r
+ }\r
+ }\r
+ }\r
+\r
+ if (rowCells.length > 0)\r
+ rows[rows.length] = rowCells;\r
+ }\r
+\r
+ // Find selected cells in grid and box\r
+ var curRow = [];\r
+ var lastTR = null;\r
+ for (var y=0; y<grid.length; y++) {\r
+ for (var x=0; x<grid[y].length; x++) {\r
+ grid[y][x]._selected = false;\r
+\r
+ for (var i=0; i<cells.length; i++) {\r
+ if (grid[y][x] == cells[i]) {\r
+ // Get start pos\r
+ if (x1 == -1) {\r
+ x1 = x;\r
+ y1 = y;\r
+ }\r
+\r
+ // Get end pos\r
+ x2 = x;\r
+ y2 = y;\r
+\r
+ grid[y][x]._selected = true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ // Is there gaps, if so deny\r
+ for (var y=y1; y<=y2; y++) {\r
+ for (var x=x1; x<=x2; x++) {\r
+ if (!grid[y][x]._selected) {\r
+ alert("Invalid selection for merge.");\r
+ return true;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ // Validate selection and get total rowspan and colspan\r
+ var rowSpan = 1, colSpan = 1;\r
+\r
+ // Validate horizontal and get total colspan\r
+ var lastRowSpan = -1;\r
+ for (var y=0; y<rows.length; y++) {\r
+ var rowColSpan = 0;\r
+\r
+ for (var x=0; x<rows[y].length; x++) {\r
+ var sd = getColRowSpan(rows[y][x]);\r
+\r
+ rowColSpan += sd['colspan'];\r
+\r
+ if (lastRowSpan != -1 && sd['rowspan'] != lastRowSpan) {\r
+ alert("Invalid selection for merge.");\r
+ return true;\r
+ }\r
+\r
+ lastRowSpan = sd['rowspan'];\r
+ }\r
+\r
+ if (rowColSpan > colSpan)\r
+ colSpan = rowColSpan;\r
+\r
+ lastRowSpan = -1;\r
+ }\r
+\r
+ // Validate vertical and get total rowspan\r
+ var lastColSpan = -1;\r
+ for (var x=0; x<rows[0].length; x++) {\r
+ var colRowSpan = 0;\r
+\r
+ for (var y=0; y<rows.length; y++) {\r
+ var sd = getColRowSpan(rows[y][x]);\r
+\r
+ colRowSpan += sd['rowspan'];\r
+\r
+ if (lastColSpan != -1 && sd['colspan'] != lastColSpan) {\r
+ alert("Invalid selection for merge.");\r
+ return true;\r
+ }\r
+\r
+ lastColSpan = sd['colspan'];\r
+ }\r
+\r
+ if (colRowSpan > rowSpan)\r
+ rowSpan = colRowSpan;\r
+\r
+ lastColSpan = -1;\r
+ }\r
+\r
+ // Setup td\r
+ tdElm = rows[0][0];\r
+ tdElm.rowSpan = rowSpan;\r
+ tdElm.colSpan = colSpan;\r
+\r
+ // Merge cells\r
+ for (var y=0; y<rows.length; y++) {\r
+ for (var x=0; x<rows[y].length; x++) {\r
+ var html = rows[y][x].innerHTML;\r
+ var chk = html.replace(/[ \t\r\n]/g, "");\r
+\r
+ if (chk != "<br/>" && chk != "<br>" && chk != '<br mce_bogus="1"/>' && (x+y > 0))\r
+ tdElm.innerHTML += html;\r
+\r
+ // Not current cell\r
+ if (rows[y][x] != tdElm && !rows[y][x]._deleted) {\r
+ var cpos = getCellPos(grid, rows[y][x]);\r
+ var tr = rows[y][x].parentNode;\r
+\r
+ tr.removeChild(rows[y][x]);\r
+ rows[y][x]._deleted = true;\r
+\r
+ // Empty TR, remove it\r
+ if (!tr.hasChildNodes()) {\r
+ tr.parentNode.removeChild(tr);\r
+\r
+ var lastCell = null;\r
+ for (var x=0; cellElm = getCell(grid, cpos.rowindex, x); x++) {\r
+ if (cellElm != lastCell && cellElm.rowSpan > 1)\r
+ cellElm.rowSpan--;\r
+\r
+ lastCell = cellElm;\r
+ }\r
+\r
+ if (tdElm.rowSpan > 1)\r
+ tdElm.rowSpan--;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ // Remove all but one bogus br\r
+ each(ed.dom.select('br', tdElm), function(e, i) {\r
+ if (i > 0 && ed.dom.getAttrib(e, 'mce_bogus'))\r
+ ed.dom.remove(e);\r
+ });\r
+\r
+ break;\r
+ }\r
+\r
+ tableElm = inst.dom.getParent(inst.selection.getNode(), "table");\r
+ inst.addVisual(tableElm);\r
+ inst.nodeChanged();\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ // Pass to next handler in chain\r
+ return false;\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('table', tinymce.plugins.TablePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var ed;\r
+\r
+function init() {\r
+ ed = tinyMCEPopup.editor;\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
+ document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');\r
+ document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')\r
+\r
+ var inst = ed;\r
+ var tdElm = ed.dom.getParent(ed.selection.getNode(), "td,th");\r
+ var formObj = document.forms[0];\r
+ var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));\r
+\r
+ // Get table cell data\r
+ var celltype = tdElm.nodeName.toLowerCase();\r
+ var align = ed.dom.getAttrib(tdElm, 'align');\r
+ var valign = ed.dom.getAttrib(tdElm, 'valign');\r
+ var width = trimSize(getStyle(tdElm, 'width', 'width'));\r
+ var height = trimSize(getStyle(tdElm, 'height', 'height'));\r
+ var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));\r
+ var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));\r
+ var className = ed.dom.getAttrib(tdElm, 'class');\r
+ var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;\r
+ var id = ed.dom.getAttrib(tdElm, 'id');\r
+ var lang = ed.dom.getAttrib(tdElm, 'lang');\r
+ var dir = ed.dom.getAttrib(tdElm, 'dir');\r
+ var scope = ed.dom.getAttrib(tdElm, 'scope');\r
+\r
+ // Setup form\r
+ addClassesToList('class', 'table_cell_styles');\r
+ formObj.bordercolor.value = bordercolor;\r
+ formObj.bgcolor.value = bgcolor;\r
+ formObj.backgroundimage.value = backgroundimage;\r
+ formObj.width.value = width;\r
+ formObj.height.value = height;\r
+ formObj.id.value = id;\r
+ formObj.lang.value = lang;\r
+ formObj.style.value = ed.dom.serializeStyle(st);\r
+ selectByValue(formObj, 'align', align);\r
+ selectByValue(formObj, 'valign', valign);\r
+ selectByValue(formObj, 'class', className);\r
+ selectByValue(formObj, 'celltype', celltype);\r
+ selectByValue(formObj, 'dir', dir);\r
+ selectByValue(formObj, 'scope', scope);\r
+\r
+ // Resize some elements\r
+ if (isVisible('backgroundimagebrowser'))\r
+ document.getElementById('backgroundimage').style.width = '180px';\r
+\r
+ updateColor('bordercolor_pick', 'bordercolor');\r
+ updateColor('bgcolor_pick', 'bgcolor');\r
+}\r
+\r
+function updateAction() {\r
+ var el = ed.selection.getNode();\r
+ var inst = ed;\r
+ var tdElm = ed.dom.getParent(el, "td,th");\r
+ var trElm = ed.dom.getParent(el, "tr");\r
+ var tableElm = ed.dom.getParent(el, "table");\r
+ var formObj = document.forms[0];\r
+\r
+ ed.execCommand('mceBeginUndoLevel');\r
+\r
+ switch (getSelectValue(formObj, 'action')) {\r
+ case "cell":\r
+ var celltype = getSelectValue(formObj, 'celltype');\r
+ var scope = getSelectValue(formObj, 'scope');\r
+\r
+ if (ed.getParam("accessibility_warnings")) {\r
+ if (celltype == "th" && scope == "")\r
+ var answer = confirm(ed.getLang('table_dlg.missing_scope', '', true));\r
+ else\r
+ var answer = true;\r
+\r
+ if (!answer)\r
+ return;\r
+ }\r
+\r
+ updateCell(tdElm);\r
+ break;\r
+\r
+ case "row":\r
+ var cell = trElm.firstChild;\r
+\r
+ if (cell.nodeName != "TD" && cell.nodeName != "TH")\r
+ cell = nextCell(cell);\r
+\r
+ do {\r
+ cell = updateCell(cell, true);\r
+ } while ((cell = nextCell(cell)) != null);\r
+\r
+ break;\r
+\r
+ case "all":\r
+ var rows = tableElm.getElementsByTagName("tr");\r
+\r
+ for (var i=0; i<rows.length; i++) {\r
+ var cell = rows[i].firstChild;\r
+\r
+ if (cell.nodeName != "TD" && cell.nodeName != "TH")\r
+ cell = nextCell(cell);\r
+\r
+ do {\r
+ cell = updateCell(cell, true);\r
+ } while ((cell = nextCell(cell)) != null);\r
+ }\r
+\r
+ break;\r
+ }\r
+\r
+ ed.addVisual();\r
+ ed.nodeChanged();\r
+ inst.execCommand('mceEndUndoLevel');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function nextCell(elm) {\r
+ while ((elm = elm.nextSibling) != null) {\r
+ if (elm.nodeName == "TD" || elm.nodeName == "TH")\r
+ return elm;\r
+ }\r
+\r
+ return null;\r
+}\r
+\r
+function updateCell(td, skip_id) {\r
+ var inst = ed;\r
+ var formObj = document.forms[0];\r
+ var curCellType = td.nodeName.toLowerCase();\r
+ var celltype = getSelectValue(formObj, 'celltype');\r
+ var doc = inst.getDoc();\r
+ var dom = ed.dom;\r
+\r
+ if (!skip_id)\r
+ td.setAttribute('id', formObj.id.value);\r
+\r
+ td.setAttribute('align', formObj.align.value);\r
+ td.setAttribute('vAlign', formObj.valign.value);\r
+ td.setAttribute('lang', formObj.lang.value);\r
+ td.setAttribute('dir', getSelectValue(formObj, 'dir'));\r
+ td.setAttribute('style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));\r
+ td.setAttribute('scope', formObj.scope.value);\r
+ ed.dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));\r
+\r
+ // Clear deprecated attributes\r
+ ed.dom.setAttrib(td, 'width', '');\r
+ ed.dom.setAttrib(td, 'height', '');\r
+ ed.dom.setAttrib(td, 'bgColor', '');\r
+ ed.dom.setAttrib(td, 'borderColor', '');\r
+ ed.dom.setAttrib(td, 'background', '');\r
+\r
+ // Set styles\r
+ td.style.width = getCSSSize(formObj.width.value);\r
+ td.style.height = getCSSSize(formObj.height.value);\r
+ if (formObj.bordercolor.value != "") {\r
+ td.style.borderColor = formObj.bordercolor.value;\r
+ td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;\r
+ td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;\r
+ } else\r
+ td.style.borderColor = '';\r
+\r
+ td.style.backgroundColor = formObj.bgcolor.value;\r
+\r
+ if (formObj.backgroundimage.value != "")\r
+ td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";\r
+ else\r
+ td.style.backgroundImage = '';\r
+\r
+ if (curCellType != celltype) {\r
+ // changing to a different node type\r
+ var newCell = doc.createElement(celltype);\r
+\r
+ for (var c=0; c<td.childNodes.length; c++)\r
+ newCell.appendChild(td.childNodes[c].cloneNode(1));\r
+\r
+ for (var a=0; a<td.attributes.length; a++)\r
+ ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));\r
+\r
+ td.parentNode.replaceChild(newCell, td);\r
+ td = newCell;\r
+ }\r
+\r
+ dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));\r
+\r
+ return td;\r
+}\r
+\r
+function changedBackgroundImage() {\r
+ var formObj = document.forms[0];\r
+ var st = ed.dom.parseStyle(formObj.style.value);\r
+\r
+ st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
+\r
+ formObj.style.value = ed.dom.serializeStyle(st);\r
+}\r
+\r
+function changedSize() {\r
+ var formObj = document.forms[0];\r
+ var st = ed.dom.parseStyle(formObj.style.value);\r
+\r
+ var width = formObj.width.value;\r
+ if (width != "")\r
+ st['width'] = getCSSSize(width);\r
+ else\r
+ st['width'] = "";\r
+\r
+ var height = formObj.height.value;\r
+ if (height != "")\r
+ st['height'] = getCSSSize(height);\r
+ else\r
+ st['height'] = "";\r
+\r
+ formObj.style.value = ed.dom.serializeStyle(st);\r
+}\r
+\r
+function changedColor() {\r
+ var formObj = document.forms[0];\r
+ var st = ed.dom.parseStyle(formObj.style.value);\r
+\r
+ st['background-color'] = formObj.bgcolor.value;\r
+ st['border-color'] = formObj.bordercolor.value;\r
+\r
+ formObj.style.value = ed.dom.serializeStyle(st);\r
+}\r
+\r
+function changedStyle() {\r
+ var formObj = document.forms[0];\r
+ var st = ed.dom.parseStyle(formObj.style.value);\r
+\r
+ if (st['background-image'])\r
+ formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
+ else\r
+ formObj.backgroundimage.value = '';\r
+\r
+ if (st['width'])\r
+ formObj.width.value = trimSize(st['width']);\r
+\r
+ if (st['height'])\r
+ formObj.height.value = trimSize(st['height']);\r
+\r
+ if (st['background-color']) {\r
+ formObj.bgcolor.value = st['background-color'];\r
+ updateColor('bgcolor_pick','bgcolor');\r
+ }\r
+\r
+ if (st['border-color']) {\r
+ formObj.bordercolor.value = st['border-color'];\r
+ updateColor('bordercolor_pick','bordercolor');\r
+ }\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+function init() {\r
+ var f = document.forms[0], v;\r
+\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ f.numcols.value = tinyMCEPopup.getWindowArg('numcols', 1);\r
+ f.numrows.value = tinyMCEPopup.getWindowArg('numcols', 1);\r
+}\r
+\r
+function mergeCells() {\r
+ var args = [], f = document.forms[0];\r
+\r
+ if (!AutoValidator.validate(f)) {\r
+ alert(tinyMCEPopup.getLang('invalid_data'));\r
+ return false;\r
+ }\r
+\r
+ args["numcols"] = f.numcols.value;\r
+ args["numrows"] = f.numrows.value;\r
+\r
+ tinyMCEPopup.execCommand("mceTableMergeCells", false, args);\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+function init() {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
+ document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
+\r
+ var inst = tinyMCEPopup.editor;\r
+ var dom = inst.dom;\r
+ var trElm = dom.getParent(inst.selection.getNode(), "tr");\r
+ var formObj = document.forms[0];\r
+ var st = dom.parseStyle(dom.getAttrib(trElm, "style"));\r
+\r
+ // Get table row data\r
+ var rowtype = trElm.parentNode.nodeName.toLowerCase();\r
+ var align = dom.getAttrib(trElm, 'align');\r
+ var valign = dom.getAttrib(trElm, 'valign');\r
+ var height = trimSize(getStyle(trElm, 'height', 'height'));\r
+ var className = dom.getAttrib(trElm, 'class');\r
+ var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));\r
+ var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;\r
+ var id = dom.getAttrib(trElm, 'id');\r
+ var lang = dom.getAttrib(trElm, 'lang');\r
+ var dir = dom.getAttrib(trElm, 'dir');\r
+\r
+ // Setup form\r
+ addClassesToList('class', 'table_row_styles');\r
+ formObj.bgcolor.value = bgcolor;\r
+ formObj.backgroundimage.value = backgroundimage;\r
+ formObj.height.value = height;\r
+ formObj.id.value = id;\r
+ formObj.lang.value = lang;\r
+ formObj.style.value = dom.serializeStyle(st);\r
+ selectByValue(formObj, 'align', align);\r
+ selectByValue(formObj, 'valign', valign);\r
+ selectByValue(formObj, 'class', className);\r
+ selectByValue(formObj, 'rowtype', rowtype);\r
+ selectByValue(formObj, 'dir', dir);\r
+\r
+ // Resize some elements\r
+ if (isVisible('backgroundimagebrowser'))\r
+ document.getElementById('backgroundimage').style.width = '180px';\r
+\r
+ updateColor('bgcolor_pick', 'bgcolor');\r
+}\r
+\r
+function updateAction() {\r
+ var inst = tinyMCEPopup.editor;\r
+ var dom = inst.dom;\r
+ var trElm = dom.getParent(inst.selection.getNode(), "tr");\r
+ var tableElm = dom.getParent(inst.selection.getNode(), "table");\r
+ var formObj = document.forms[0];\r
+ var action = getSelectValue(formObj, 'action');\r
+\r
+ inst.execCommand('mceBeginUndoLevel');\r
+\r
+ switch (action) {\r
+ case "row":\r
+ updateRow(trElm);\r
+ break;\r
+\r
+ case "all":\r
+ var rows = tableElm.getElementsByTagName("tr");\r
+\r
+ for (var i=0; i<rows.length; i++)\r
+ updateRow(rows[i], true);\r
+\r
+ break;\r
+\r
+ case "odd":\r
+ case "even":\r
+ var rows = tableElm.getElementsByTagName("tr");\r
+\r
+ for (var i=0; i<rows.length; i++) {\r
+ if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))\r
+ updateRow(rows[i], true, true);\r
+ }\r
+\r
+ break;\r
+ }\r
+\r
+ inst.addVisual();\r
+ inst.nodeChanged();\r
+ inst.execCommand('mceEndUndoLevel');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function updateRow(tr_elm, skip_id, skip_parent) {\r
+ var inst = tinyMCEPopup.editor;\r
+ var formObj = document.forms[0];\r
+ var dom = inst.dom;\r
+ var curRowType = tr_elm.parentNode.nodeName.toLowerCase();\r
+ var rowtype = getSelectValue(formObj, 'rowtype');\r
+ var doc = inst.getDoc();\r
+\r
+ // Update row element\r
+ if (!skip_id)\r
+ tr_elm.setAttribute('id', formObj.id.value);\r
+\r
+ tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));\r
+ tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));\r
+ tr_elm.setAttribute('lang', formObj.lang.value);\r
+ tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));\r
+ tr_elm.setAttribute('style', dom.serializeStyle(dom.parseStyle(formObj.style.value)));\r
+ dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));\r
+\r
+ // Clear deprecated attributes\r
+ tr_elm.setAttribute('background', '');\r
+ tr_elm.setAttribute('bgColor', '');\r
+ tr_elm.setAttribute('height', '');\r
+\r
+ // Set styles\r
+ tr_elm.style.height = getCSSSize(formObj.height.value);\r
+ tr_elm.style.backgroundColor = formObj.bgcolor.value;\r
+\r
+ if (formObj.backgroundimage.value != "")\r
+ tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";\r
+ else\r
+ tr_elm.style.backgroundImage = '';\r
+\r
+ // Setup new rowtype\r
+ if (curRowType != rowtype && !skip_parent) {\r
+ // first, clone the node we are working on\r
+ var newRow = tr_elm.cloneNode(1);\r
+\r
+ // next, find the parent of its new destination (creating it if necessary)\r
+ var theTable = dom.getParent(tr_elm, "table");\r
+ var dest = rowtype;\r
+ var newParent = null;\r
+ for (var i = 0; i < theTable.childNodes.length; i++) {\r
+ if (theTable.childNodes[i].nodeName.toLowerCase() == dest)\r
+ newParent = theTable.childNodes[i];\r
+ }\r
+\r
+ if (newParent == null) {\r
+ newParent = doc.createElement(dest);\r
+\r
+ if (dest == "thead") {\r
+ if (theTable.firstChild.nodeName == 'CAPTION')\r
+ inst.dom.insertAfter(newParent, theTable.firstChild);\r
+ else\r
+ theTable.insertBefore(newParent, theTable.firstChild);\r
+ } else\r
+ theTable.appendChild(newParent);\r
+ }\r
+\r
+ // append the row to the new parent\r
+ newParent.appendChild(newRow);\r
+\r
+ // remove the original\r
+ tr_elm.parentNode.removeChild(tr_elm);\r
+\r
+ // set tr_elm to the new node\r
+ tr_elm = newRow;\r
+ }\r
+\r
+ dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText)));\r
+}\r
+\r
+function changedBackgroundImage() {\r
+ var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
+\r
+ formObj.style.value = dom.serializeStyle(st);\r
+}\r
+\r
+function changedStyle() {\r
+ var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ if (st['background-image'])\r
+ formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
+ else\r
+ formObj.backgroundimage.value = '';\r
+\r
+ if (st['height'])\r
+ formObj.height.value = trimSize(st['height']);\r
+\r
+ if (st['background-color']) {\r
+ formObj.bgcolor.value = st['background-color'];\r
+ updateColor('bgcolor_pick','bgcolor');\r
+ }\r
+}\r
+\r
+function changedSize() {\r
+ var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ var height = formObj.height.value;\r
+ if (height != "")\r
+ st['height'] = getCSSSize(height);\r
+ else\r
+ st['height'] = "";\r
+\r
+ formObj.style.value = dom.serializeStyle(st);\r
+}\r
+\r
+function changedColor() {\r
+ var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ st['background-color'] = formObj.bgcolor.value;\r
+\r
+ formObj.style.value = dom.serializeStyle(st);\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var action, orgTableWidth, orgTableHeight, dom = tinyMCEPopup.editor.dom;\r
+\r
+function insertTable() {\r
+ var formObj = document.forms[0];\r
+ var inst = tinyMCEPopup.editor, dom = inst.dom;\r
+ var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className, caption, frame, rules;\r
+ var html = '', capEl, elm;\r
+ var cellLimit, rowLimit, colLimit;\r
+\r
+ if (!AutoValidator.validate(formObj)) {\r
+ alert(inst.getLang('invalid_data'));\r
+ return false;\r
+ }\r
+\r
+ elm = dom.getParent(inst.selection.getNode(), 'table');\r
+\r
+ // Get form data\r
+ cols = formObj.elements['cols'].value;\r
+ rows = formObj.elements['rows'].value;\r
+ border = formObj.elements['border'].value != "" ? formObj.elements['border'].value : 0;\r
+ cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";\r
+ cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";\r
+ align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;\r
+ frame = formObj.elements['frame'].options[formObj.elements['frame'].selectedIndex].value;\r
+ rules = formObj.elements['rules'].options[formObj.elements['rules'].selectedIndex].value;\r
+ width = formObj.elements['width'].value;\r
+ height = formObj.elements['height'].value;\r
+ bordercolor = formObj.elements['bordercolor'].value;\r
+ bgcolor = formObj.elements['bgcolor'].value;\r
+ className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;\r
+ id = formObj.elements['id'].value;\r
+ summary = formObj.elements['summary'].value;\r
+ style = formObj.elements['style'].value;\r
+ dir = formObj.elements['dir'].value;\r
+ lang = formObj.elements['lang'].value;\r
+ background = formObj.elements['backgroundimage'].value;\r
+ caption = formObj.elements['caption'].checked;\r
+\r
+ cellLimit = tinyMCEPopup.getParam('table_cell_limit', false);\r
+ rowLimit = tinyMCEPopup.getParam('table_row_limit', false);\r
+ colLimit = tinyMCEPopup.getParam('table_col_limit', false);\r
+\r
+ // Validate table size\r
+ if (colLimit && cols > colLimit) {\r
+ alert(inst.getLang('table_col_limit', '', true, {cols : colLimit}));\r
+ return false;\r
+ } else if (rowLimit && rows > rowLimit) {\r
+ alert(inst.getLang('table_row_limit', '', true, {rows : rowLimit}));\r
+ return false;\r
+ } else if (cellLimit && cols * rows > cellLimit) {\r
+ alert(inst.getLang('table_cell_limit', '', true, {cells : cellLimit}));\r
+ return false;\r
+ }\r
+\r
+ // Update table\r
+ if (action == "update") {\r
+ inst.execCommand('mceBeginUndoLevel');\r
+\r
+ dom.setAttrib(elm, 'cellPadding', cellpadding, true);\r
+ dom.setAttrib(elm, 'cellSpacing', cellspacing, true);\r
+ dom.setAttrib(elm, 'border', border);\r
+ dom.setAttrib(elm, 'align', align);\r
+ dom.setAttrib(elm, 'frame', frame);\r
+ dom.setAttrib(elm, 'rules', rules);\r
+ dom.setAttrib(elm, 'class', className);\r
+ dom.setAttrib(elm, 'style', style);\r
+ dom.setAttrib(elm, 'id', id);\r
+ dom.setAttrib(elm, 'summary', summary);\r
+ dom.setAttrib(elm, 'dir', dir);\r
+ dom.setAttrib(elm, 'lang', lang);\r
+\r
+ capEl = inst.dom.select('caption', elm)[0];\r
+\r
+ if (capEl && !caption)\r
+ capEl.parentNode.removeChild(capEl);\r
+\r
+ if (!capEl && caption) {\r
+ capEl = elm.ownerDocument.createElement('caption');\r
+\r
+ if (!tinymce.isIE)\r
+ capEl.innerHTML = '<br mce_bogus="1"/>';\r
+\r
+ elm.insertBefore(capEl, elm.firstChild);\r
+ }\r
+\r
+ if (width && /(pt|em|cm)$/.test(width)) {\r
+ dom.setStyle(elm, 'width', width);\r
+ dom.setAttrib(elm, 'width', '');\r
+ } else {\r
+ dom.setAttrib(elm, 'width', width, true);\r
+ dom.setStyle(elm, 'width', '');\r
+ }\r
+\r
+ // Remove these since they are not valid XHTML\r
+ dom.setAttrib(elm, 'borderColor', '');\r
+ dom.setAttrib(elm, 'bgColor', '');\r
+ dom.setAttrib(elm, 'background', '');\r
+\r
+ if (height) {\r
+ dom.setStyle(elm, 'height', height);\r
+ dom.setAttrib(elm, 'height', '');\r
+ }\r
+\r
+ if (background != '')\r
+ elm.style.backgroundImage = "url('" + background + "')";\r
+ else\r
+ elm.style.backgroundImage = '';\r
+\r
+/* if (tinyMCEPopup.getParam("inline_styles")) {\r
+ if (width != '')\r
+ elm.style.width = getCSSSize(width);\r
+ }*/\r
+\r
+ if (bordercolor != "") {\r
+ elm.style.borderColor = bordercolor;\r
+ elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;\r
+ elm.style.borderWidth = border == "" ? "1px" : border;\r
+ } else\r
+ elm.style.borderColor = '';\r
+\r
+ elm.style.backgroundColor = bgcolor;\r
+ elm.style.height = getCSSSize(height);\r
+\r
+ inst.addVisual();\r
+\r
+ // Fix for stange MSIE align bug\r
+ //elm.outerHTML = elm.outerHTML;\r
+\r
+ inst.nodeChanged();\r
+ inst.execCommand('mceEndUndoLevel');\r
+\r
+ // Repaint if dimensions changed\r
+ if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)\r
+ inst.execCommand('mceRepaint');\r
+\r
+ tinyMCEPopup.close();\r
+ return true;\r
+ }\r
+\r
+ // Create new table\r
+ html += '<table';\r
+\r
+ html += makeAttrib('id', id);\r
+ html += makeAttrib('border', border);\r
+ html += makeAttrib('cellpadding', cellpadding);\r
+ html += makeAttrib('cellspacing', cellspacing);\r
+\r
+ if (width && /(pt|em|cm)$/.test(width)) {\r
+ if (style)\r
+ style += '; ';\r
+\r
+ style += 'width: ' + width;\r
+ } else\r
+ html += makeAttrib('width', width);\r
+\r
+/* if (height) {\r
+ if (style)\r
+ style += '; ';\r
+\r
+ style += 'height: ' + height;\r
+ }*/\r
+\r
+ //html += makeAttrib('height', height);\r
+ //html += makeAttrib('bordercolor', bordercolor);\r
+ //html += makeAttrib('bgcolor', bgcolor);\r
+ html += makeAttrib('align', align);\r
+ html += makeAttrib('frame', frame);\r
+ html += makeAttrib('rules', rules);\r
+ html += makeAttrib('class', className);\r
+ html += makeAttrib('style', style);\r
+ html += makeAttrib('summary', summary);\r
+ html += makeAttrib('dir', dir);\r
+ html += makeAttrib('lang', lang);\r
+ html += '>';\r
+\r
+ if (caption) {\r
+ if (!tinymce.isIE)\r
+ html += '<caption><br mce_bogus="1"/></caption>';\r
+ else\r
+ html += '<caption></caption>';\r
+ }\r
+\r
+ for (var y=0; y<rows; y++) {\r
+ html += "<tr>";\r
+\r
+ for (var x=0; x<cols; x++) {\r
+ if (!tinymce.isIE)\r
+ html += '<td><br mce_bogus="1"/></td>';\r
+ else\r
+ html += '<td></td>';\r
+ }\r
+\r
+ html += "</tr>";\r
+ }\r
+\r
+ html += "</table>";\r
+\r
+ inst.execCommand('mceBeginUndoLevel');\r
+ inst.execCommand('mceInsertContent', false, html);\r
+ inst.addVisual();\r
+ inst.execCommand('mceEndUndoLevel');\r
+\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function makeAttrib(attrib, value) {\r
+ var formObj = document.forms[0];\r
+ var valueElm = formObj.elements[attrib];\r
+\r
+ if (typeof(value) == "undefined" || value == null) {\r
+ value = "";\r
+\r
+ if (valueElm)\r
+ value = valueElm.value;\r
+ }\r
+\r
+ if (value == "")\r
+ return "";\r
+\r
+ // XML encode it\r
+ value = value.replace(/&/g, '&');\r
+ value = value.replace(/\"/g, '"');\r
+ value = value.replace(/</g, '<');\r
+ value = value.replace(/>/g, '>');\r
+\r
+ return ' ' + attrib + '="' + value + '"';\r
+}\r
+\r
+function init() {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
+ document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
+ document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');\r
+ document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
+\r
+ var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', '');\r
+ var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";\r
+ var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules, frame;\r
+ var inst = tinyMCEPopup.editor, dom = inst.dom;\r
+ var formObj = document.forms[0];\r
+ var elm = dom.getParent(inst.selection.getNode(), "table");\r
+\r
+ action = tinyMCEPopup.getWindowArg('action');\r
+\r
+ if (!action)\r
+ action = elm ? "update" : "insert";\r
+\r
+ if (elm && action != "insert") {\r
+ var rowsAr = elm.rows;\r
+ var cols = 0;\r
+ for (var i=0; i<rowsAr.length; i++)\r
+ if (rowsAr[i].cells.length > cols)\r
+ cols = rowsAr[i].cells.length;\r
+\r
+ cols = cols;\r
+ rows = rowsAr.length;\r
+\r
+ st = dom.parseStyle(dom.getAttrib(elm, "style"));\r
+ border = trimSize(getStyle(elm, 'border', 'borderWidth'));\r
+ cellpadding = dom.getAttrib(elm, 'cellpadding', "");\r
+ cellspacing = dom.getAttrib(elm, 'cellspacing', "");\r
+ width = trimSize(getStyle(elm, 'width', 'width'));\r
+ height = trimSize(getStyle(elm, 'height', 'height'));\r
+ bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));\r
+ bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));\r
+ align = dom.getAttrib(elm, 'align', align);\r
+ frame = dom.getAttrib(elm, 'frame');\r
+ rules = dom.getAttrib(elm, 'rules');\r
+ className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, ''));\r
+ id = dom.getAttrib(elm, 'id');\r
+ summary = dom.getAttrib(elm, 'summary');\r
+ style = dom.serializeStyle(st);\r
+ dir = dom.getAttrib(elm, 'dir');\r
+ lang = dom.getAttrib(elm, 'lang');\r
+ background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
+ formObj.caption.checked = elm.getElementsByTagName('caption').length > 0;\r
+\r
+ orgTableWidth = width;\r
+ orgTableHeight = height;\r
+\r
+ action = "update";\r
+ formObj.insert.value = inst.getLang('update');\r
+ }\r
+\r
+ addClassesToList('class', "table_styles");\r
+\r
+ // Update form\r
+ selectByValue(formObj, 'align', align);\r
+ selectByValue(formObj, 'frame', frame);\r
+ selectByValue(formObj, 'rules', rules);\r
+ selectByValue(formObj, 'class', className);\r
+ formObj.cols.value = cols;\r
+ formObj.rows.value = rows;\r
+ formObj.border.value = border;\r
+ formObj.cellpadding.value = cellpadding;\r
+ formObj.cellspacing.value = cellspacing;\r
+ formObj.width.value = width;\r
+ formObj.height.value = height;\r
+ formObj.bordercolor.value = bordercolor;\r
+ formObj.bgcolor.value = bgcolor;\r
+ formObj.id.value = id;\r
+ formObj.summary.value = summary;\r
+ formObj.style.value = style;\r
+ formObj.dir.value = dir;\r
+ formObj.lang.value = lang;\r
+ formObj.backgroundimage.value = background;\r
+\r
+ updateColor('bordercolor_pick', 'bordercolor');\r
+ updateColor('bgcolor_pick', 'bgcolor');\r
+\r
+ // Resize some elements\r
+ if (isVisible('backgroundimagebrowser'))\r
+ document.getElementById('backgroundimage').style.width = '180px';\r
+\r
+ // Disable some fields in update mode\r
+ if (action == "update") {\r
+ formObj.cols.disabled = true;\r
+ formObj.rows.disabled = true;\r
+ }\r
+}\r
+\r
+function changedSize() {\r
+ var formObj = document.forms[0];\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+/* var width = formObj.width.value;\r
+ if (width != "")\r
+ st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : "";\r
+ else\r
+ st['width'] = "";*/\r
+\r
+ var height = formObj.height.value;\r
+ if (height != "")\r
+ st['height'] = getCSSSize(height);\r
+ else\r
+ st['height'] = "";\r
+\r
+ formObj.style.value = dom.serializeStyle(st);\r
+}\r
+\r
+function changedBackgroundImage() {\r
+ var formObj = document.forms[0];\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
+\r
+ formObj.style.value = dom.serializeStyle(st);\r
+}\r
+\r
+function changedBorder() {\r
+ var formObj = document.forms[0];\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ // Update border width if the element has a color\r
+ if (formObj.border.value != "" && formObj.bordercolor.value != "")\r
+ st['border-width'] = formObj.border.value + "px";\r
+\r
+ formObj.style.value = dom.serializeStyle(st);\r
+}\r
+\r
+function changedColor() {\r
+ var formObj = document.forms[0];\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ st['background-color'] = formObj.bgcolor.value;\r
+\r
+ if (formObj.bordercolor.value != "") {\r
+ st['border-color'] = formObj.bordercolor.value;\r
+\r
+ // Add border-width if it's missing\r
+ if (!st['border-width'])\r
+ st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px";\r
+ }\r
+\r
+ formObj.style.value = dom.serializeStyle(st);\r
+}\r
+\r
+function changedStyle() {\r
+ var formObj = document.forms[0];\r
+ var st = dom.parseStyle(formObj.style.value);\r
+\r
+ if (st['background-image'])\r
+ formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
+ else\r
+ formObj.backgroundimage.value = '';\r
+\r
+ if (st['width'])\r
+ formObj.width.value = trimSize(st['width']);\r
+\r
+ if (st['height'])\r
+ formObj.height.value = trimSize(st['height']);\r
+\r
+ if (st['background-color']) {\r
+ formObj.bgcolor.value = st['background-color'];\r
+ updateColor('bgcolor_pick','bgcolor');\r
+ }\r
+\r
+ if (st['border-color']) {\r
+ formObj.bordercolor.value = st['border-color'];\r
+ updateColor('bordercolor_pick','bordercolor');\r
+ }\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCE.addI18n('en.table_dlg',{\r
+general_tab:"General",\r
+advanced_tab:"Advanced",\r
+general_props:"General properties",\r
+advanced_props:"Advanced properties",\r
+rowtype:"Row in table part",\r
+title:"Insert/Modify table",\r
+width:"Width",\r
+height:"Height",\r
+cols:"Cols",\r
+rows:"Rows",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"Border",\r
+align:"Alignment",\r
+align_default:"Default",\r
+align_left:"Left",\r
+align_right:"Right",\r
+align_middle:"Center",\r
+row_title:"Table row properties",\r
+cell_title:"Table cell properties",\r
+cell_type:"Cell type",\r
+valign:"Vertical alignment",\r
+align_top:"Top",\r
+align_bottom:"Bottom",\r
+bordercolor:"Border color",\r
+bgcolor:"Background color",\r
+merge_cells_title:"Merge table cells",\r
+id:"Id",\r
+style:"Style",\r
+langdir:"Language direction",\r
+langcode:"Language code",\r
+mime:"Target MIME type",\r
+ltr:"Left to right",\r
+rtl:"Right to left",\r
+bgimage:"Background image",\r
+summary:"Summary",\r
+td:"Data",\r
+th:"Header",\r
+cell_cell:"Update current cell",\r
+cell_row:"Update all cells in row",\r
+cell_all:"Update all cells in table",\r
+row_row:"Update current row",\r
+row_odd:"Update odd rows in table",\r
+row_even:"Update even rows in table",\r
+row_all:"Update all rows in table",\r
+thead:"Table Head",\r
+tbody:"Table Body",\r
+tfoot:"Table Foot",\r
+scope:"Scope",\r
+rowgroup:"Row Group",\r
+colgroup:"Col Group",\r
+col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
+row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
+cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Table caption",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#table_dlg.merge_cells_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/validate.js"></script>\r
+ <script type="text/javascript" src="js/merge_cells.js"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body style="margin: 8px" style="display: none">\r
+<form onsubmit="mergeCells();return false;" action="#">\r
+ <fieldset>\r
+ <legend>{#table_dlg.merge_cells_title}</legend>\r
+ <table border="0" cellpadding="0" cellspacing="3" width="100%">\r
+ <tr>\r
+ <td>{#table_dlg.cols}:</td>\r
+ <td align="right"><input type="text" name="numcols" value="" class="number min1 mceFocus" style="width: 30px" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td>{#table_dlg.rows}:</td>\r
+ <td align="right"><input type="text" name="numrows" value="" class="number min1" style="width: 30px" /></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#update}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#table_dlg.row_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="js/row.js"></script>\r
+ <link href="css/row.css" rel="stylesheet" type="text/css" />\r
+ <base target="_self" />\r
+</head>\r
+<body id="tablerow" style="display: none">\r
+ <form onsubmit="updateAction();return false;">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>\r
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#table_dlg.general_props}</legend>\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td><label for="rowtype">{#table_dlg.rowtype}</label></td>\r
+ <td class="col2">\r
+ <select id="rowtype" name="rowtype" class="mceFocus">\r
+ <option value="thead">{#table_dlg.thead}</option>\r
+ <option value="tbody">{#table_dlg.tbody}</option>\r
+ <option value="tfoot">{#table_dlg.tfoot}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="align">{#table_dlg.align}</label></td>\r
+ <td class="col2">\r
+ <select id="align" name="align">\r
+ <option value="">{#not_set}</option>\r
+ <option value="center">{#table_dlg.align_middle}</option>\r
+ <option value="left">{#table_dlg.align_left}</option>\r
+ <option value="right">{#table_dlg.align_right}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="valign">{#table_dlg.valign}</label></td>\r
+ <td class="col2">\r
+ <select id="valign" name="valign">\r
+ <option value="">{#not_set}</option>\r
+ <option value="top">{#table_dlg.align_top}</option>\r
+ <option value="middle">{#table_dlg.align_middle}</option>\r
+ <option value="bottom">{#table_dlg.align_bottom}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr id="styleSelectRow">\r
+ <td><label for="class">{#class_name}</label></td>\r
+ <td class="col2">\r
+ <select id="class" name="class">\r
+ <option value="" selected="selected">{#not_set}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="height">{#table_dlg.height}</label></td>\r
+ <td class="col2"><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" /></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="advanced_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#table_dlg.advanced_props}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="column1"><label for="id">{#table_dlg.id}</label></td> \r
+ <td><input id="id" name="id" type="text" value="" style="width: 200px" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="style">{#table_dlg.style}</label></td>\r
+ <td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> \r
+ <td>\r
+ <select id="dir" name="dir" style="width: 200px"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#table_dlg.ltr}</option> \r
+ <option value="rtl">{#table_dlg.rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="lang">{#table_dlg.langcode}</label></td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" style="width: 200px" />\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>\r
+ <td id="backgroundimagebrowsercontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>\r
+ <td id="bgcolor_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div>\r
+ <select id="action" name="action">\r
+ <option value="row">{#table_dlg.row_row}</option>\r
+ <option value="odd">{#table_dlg.row_odd}</option>\r
+ <option value="even">{#table_dlg.row_even}</option>\r
+ <option value="all">{#table_dlg.row_all}</option>\r
+ </select>\r
+ </div>\r
+\r
+ <div style="float: left">\r
+ <div><input type="submit" id="insert" name="insert" value="{#update}" /></div>\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+ </form>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#table_dlg.title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="../../utils/validate.js"></script>\r
+ <script type="text/javascript" src="js/table.js"></script>\r
+ <link href="css/table.css" rel="stylesheet" type="text/css" />\r
+ <base target="_self" />\r
+</head>\r
+<body id="table" style="display: none">\r
+ <form onsubmit="insertTable();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>\r
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#table_dlg.general_props}</legend>\r
+ <table border="0" cellpadding="4" cellspacing="0" width="100%">\r
+ <tr>\r
+ <td><label id="colslabel" for="cols">{#table_dlg.cols}</label></td>\r
+ <td><input id="cols" name="cols" type="text" value="" size="3" maxlength="3" class="required number min1 mceFocus" /></td>\r
+ <td><label id="rowslabel" for="rows">{#table_dlg.rows}</label></td>\r
+ <td><input id="rows" name="rows" type="text" value="" size="3" maxlength="3" class="required number min1" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label id="cellpaddinglabel" for="cellpadding">{#table_dlg.cellpadding}</label></td>\r
+ <td><input id="cellpadding" name="cellpadding" type="text" value="" size="3" maxlength="3" class="number" /></td>\r
+ <td><label id="cellspacinglabel" for="cellspacing">{#table_dlg.cellspacing}</label></td>\r
+ <td><input id="cellspacing" name="cellspacing" type="text" value="" size="3" maxlength="3" class="number" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label id="alignlabel" for="align">{#table_dlg.align}</label></td>\r
+ <td><select id="align" name="align">\r
+ <option value="">{#not_set}</option>\r
+ <option value="center">{#table_dlg.align_middle}</option>\r
+ <option value="left">{#table_dlg.align_left}</option>\r
+ <option value="right">{#table_dlg.align_right}</option>\r
+ </select></td>\r
+ <td><label id="borderlabel" for="border">{#table_dlg.border}</label></td>\r
+ <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="changedBorder();" class="number" /></td>\r
+ </tr>\r
+ <tr id="width_row">\r
+ <td><label id="widthlabel" for="width">{#table_dlg.width}</label></td>\r
+ <td><input name="width" type="text" id="width" value="" size="4" maxlength="4" onchange="changedSize();" class="size" /></td>\r
+ <td><label id="heightlabel" for="height">{#table_dlg.height}</label></td>\r
+ <td><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" class="size" /></td>\r
+ </tr>\r
+ <tr id="styleSelectRow">\r
+ <td><label id="classlabel" for="class">{#class_name}</label></td>\r
+ <td colspan="3">\r
+ <select id="class" name="class">\r
+ <option value="" selected>{#not_set}</option>\r
+ </select></td>\r
+ </tr>\r
+ <tr>\r
+ <td class="column1"><label for="caption">{#table_dlg.caption}</label></td> \r
+ <td><input id="caption" name="caption" type="checkbox" class="checkbox" value="true" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="advanced_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#table_dlg.advanced_props}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="column1"><label for="id">{#table_dlg.id}</label></td> \r
+ <td><input id="id" name="id" type="text" value="" class="advfield" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="summary">{#table_dlg.summary}</label></td> \r
+ <td><input id="summary" name="summary" type="text" value="" class="advfield" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label for="style">{#table_dlg.style}</label></td>\r
+ <td><input type="text" id="style" name="style" value="" class="advfield" onchange="changedStyle();" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label id="langlabel" for="lang">{#table_dlg.langcode}</label></td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" class="advfield" />\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="backgroundimage" name="backgroundimage" type="text" value="" class="advfield" onchange="changedBackgroundImage();" /></td>\r
+ <td id="backgroundimagebrowsercontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="frame">{#table_dlg.frame}</label></td> \r
+ <td>\r
+ <select id="frame" name="frame" class="advfield"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="none">{#table_dlg.frame_none}</option>\r
+ <option value="groups">{#table_dlg.frame_groups}</option>\r
+ <option value="rows">{#table_dlg.frame_rows}</option>\r
+ <option value="cols">{#table_dlg.frame_cols}</option>\r
+ <option value="all">{#table_dlg.frame_all}</option>\r
+ </select>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="rules">{#table_dlg.rules}</label></td> \r
+ <td>\r
+ <select id="rules" name="rules" class="advfield"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="void">{#table_dlg.rules_void}</option>\r
+ <option value="above">{#table_dlg.rules_above}</option> \r
+ <option value="below">{#table_dlg.rules_below}</option> \r
+ <option value="hsides">{#table_dlg.rules_hsides}</option> \r
+ <option value="lhs">{#table_dlg.rules_lhs}</option> \r
+ <option value="rhs">{#table_dlg.rules_rhs}</option> \r
+ <option value="vsides">{#table_dlg.rules_vsides}</option> \r
+ <option value="box">{#table_dlg.rules_box}</option> \r
+ <option value="border">{#table_dlg.rules_border}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> \r
+ <td>\r
+ <select id="dir" name="dir" class="advfield"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#table_dlg.ltr}</option> \r
+ <option value="rtl">{#table_dlg.rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="bordercolor">{#table_dlg.bordercolor}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>\r
+ <td id="bordercolor_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td> \r
+ <td>\r
+ <table border="0" cellpadding="0" cellspacing="0">\r
+ <tr>\r
+ <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>\r
+ <td id="bgcolor_pickcontainer"> </td>\r
+ </tr>\r
+ </table>\r
+ </td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+ </form>\r
+</body>\r
+</html>\r
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>blank_page</title>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
+ <script type="text/javascript">\r
+ parent.TemplateDialog.loadCSSFiles(document);\r
+ </script>\r
+</head>\r
+<body id="mceTemplatePreview" class="mceContentBody">\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+#frmbody {\r
+ padding: 10px;\r
+ background-color: #FFF;\r
+ border: 1px solid #CCC;\r
+}\r
+\r
+.frmRow {\r
+ margin-bottom: 10px;\r
+}\r
+\r
+#templatesrc {\r
+ border: none;\r
+ width: 320px;\r
+ height: 240px;\r
+}\r
+\r
+.title {\r
+ padding-bottom: 5px;\r
+}\r
+\r
+.mceActionPanel {\r
+ padding-top: 5px;\r
+}\r
--- /dev/null
+(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TemplatePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceTemplate',function(ui){ed.windowManager.open({file:url+'/template.htm',width:ed.getParam('template_popup_width',750),height:ed.getParam('template_popup_height',600),inline:1},{plugin_url:url});});ed.addCommand('mceInsertTemplate',t._insertTemplate,t);ed.addButton('template',{title:'template.desc',cmd:'mceTemplate'});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;each(dom.select('div',o.node),function(e){if(dom.hasClass(e,'mceTmpl')){each(dom.select('*',e),function(e){if(dom.hasClass(e,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))e.innerHTML=t._getDateTime(new Date(),ed.getParam("template_mdate_format",ed.getLang("template.mdate_format")));});t._replaceVals(e);}});});},getInfo:function(){return{longname:'Template plugin',author:'Moxiecode Systems AB',authorurl:'http://www.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_insertTemplate:function(ui,v){var t=this,ed=t.editor,h,el,dom=ed.dom,sel=ed.selection.getContent();h=v.content;each(t.editor.getParam('template_replace_values'),function(v,k){if(typeof(v)!='function')h=h.replace(new RegExp('\\{\\$'+k+'\\}','g'),v);});el=dom.create('div',null,h);function hasClass(n,c){return new RegExp('\\b'+c+'\\b','g').test(n.className);};each(dom.select('*',el),function(n){if(hasClass(n,ed.getParam('template_cdate_classes','cdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam("template_cdate_format",ed.getLang("template.cdate_format")));if(hasClass(n,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam("template_mdate_format",ed.getLang("template.mdate_format")));if(hasClass(n,ed.getParam('template_selected_content_classes','selcontent').replace(/\s+/g,'|')))n.innerHTML=sel;});t._replaceVals(el);ed.execCommand('mceInsertContent',false,el.innerHTML);ed.addVisual();},_replaceVals:function(e){var dom=this.editor.dom,vl=this.editor.getParam('template_replace_values');each(dom.select('*',e),function(e){each(vl,function(v,k){if(dom.hasClass(e,k)){if(typeof(vl[k])=='function')vl[k](e);}});});},_getDateTime:function(d,fmt){if(!fmt)return"";function addZeros(value,len){var i;value=""+value;if(value.length<len){for(i=0;i<(len-value.length);i++)value="0"+value;}return value;}fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+tinyMCE.getLang("template_months_long").split(',')[d.getMonth()]);fmt=fmt.replace("%b",""+tinyMCE.getLang("template_months_short").split(',')[d.getMonth()]);fmt=fmt.replace("%A",""+tinyMCE.getLang("template_day_long").split(',')[d.getDay()]);fmt=fmt.replace("%a",""+tinyMCE.getLang("template_day_short").split(',')[d.getDay()]);fmt=fmt.replace("%%","%");return fmt;}});tinymce.PluginManager.add('template',tinymce.plugins.TemplatePlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.plugins.TemplatePlugin', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceTemplate', function(ui) {\r
+ ed.windowManager.open({\r
+ file : url + '/template.htm',\r
+ width : ed.getParam('template_popup_width', 750),\r
+ height : ed.getParam('template_popup_height', 600),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ ed.addCommand('mceInsertTemplate', t._insertTemplate, t);\r
+\r
+ // Register buttons\r
+ ed.addButton('template', {title : 'template.desc', cmd : 'mceTemplate'});\r
+\r
+ ed.onPreProcess.add(function(ed, o) {\r
+ var dom = ed.dom;\r
+\r
+ each(dom.select('div', o.node), function(e) {\r
+ if (dom.hasClass(e, 'mceTmpl')) {\r
+ each(dom.select('*', e), function(e) {\r
+ if (dom.hasClass(e, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))\r
+ e.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));\r
+ });\r
+\r
+ t._replaceVals(e);\r
+ }\r
+ });\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Template plugin',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://www.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ _insertTemplate : function(ui, v) {\r
+ var t = this, ed = t.editor, h, el, dom = ed.dom, sel = ed.selection.getContent();\r
+\r
+ h = v.content;\r
+\r
+ each(t.editor.getParam('template_replace_values'), function(v, k) {\r
+ if (typeof(v) != 'function')\r
+ h = h.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v);\r
+ });\r
+\r
+ el = dom.create('div', null, h);\r
+\r
+ function hasClass(n, c) {\r
+ return new RegExp('\\b' + c + '\\b', 'g').test(n.className);\r
+ };\r
+\r
+ each(dom.select('*', el), function(n) {\r
+ // Replace cdate\r
+ if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|')))\r
+ n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format")));\r
+\r
+ // Replace mdate\r
+ if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))\r
+ n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));\r
+\r
+ // Replace selection\r
+ if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|')))\r
+ n.innerHTML = sel;\r
+ });\r
+\r
+ t._replaceVals(el);\r
+\r
+ ed.execCommand('mceInsertContent', false, el.innerHTML);\r
+ ed.addVisual();\r
+ },\r
+\r
+ _replaceVals : function(e) {\r
+ var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values');\r
+\r
+ each(dom.select('*', e), function(e) {\r
+ each(vl, function(v, k) {\r
+ if (dom.hasClass(e, k)) {\r
+ if (typeof(vl[k]) == 'function')\r
+ vl[k](e);\r
+ }\r
+ });\r
+ });\r
+ },\r
+\r
+ _getDateTime : function(d, fmt) {\r
+ if (!fmt)\r
+ return "";\r
+\r
+ function addZeros(value, len) {\r
+ var i;\r
+\r
+ value = "" + value;\r
+\r
+ if (value.length < len) {\r
+ for (i=0; i<(len-value.length); i++)\r
+ value = "0" + value;\r
+ }\r
+\r
+ return value;\r
+ }\r
+\r
+ fmt = fmt.replace("%D", "%m/%d/%y");\r
+ fmt = fmt.replace("%r", "%I:%M:%S %p");\r
+ fmt = fmt.replace("%Y", "" + d.getFullYear());\r
+ fmt = fmt.replace("%y", "" + d.getYear());\r
+ fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));\r
+ fmt = fmt.replace("%d", addZeros(d.getDate(), 2));\r
+ fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));\r
+ fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));\r
+ fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));\r
+ fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));\r
+ fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));\r
+ fmt = fmt.replace("%B", "" + tinyMCE.getLang("template_months_long").split(',')[d.getMonth()]);\r
+ fmt = fmt.replace("%b", "" + tinyMCE.getLang("template_months_short").split(',')[d.getMonth()]);\r
+ fmt = fmt.replace("%A", "" + tinyMCE.getLang("template_day_long").split(',')[d.getDay()]);\r
+ fmt = fmt.replace("%a", "" + tinyMCE.getLang("template_day_short").split(',')[d.getDay()]);\r
+ fmt = fmt.replace("%%", "%");\r
+\r
+ return fmt;\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var TemplateDialog = {\r
+ preInit : function() {\r
+ var url = tinyMCEPopup.getParam("template_external_list_url");\r
+\r
+ if (url != null)\r
+ document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');\r
+ },\r
+\r
+ init : function() {\r
+ var ed = tinyMCEPopup.editor, tsrc, sel, x, u;\r
+\r
+ tsrc = ed.getParam("template_templates", false);\r
+ sel = document.getElementById('tpath');\r
+\r
+ // Setup external template list\r
+ if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {\r
+ for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)\r
+ tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});\r
+ }\r
+\r
+ for (x=0; x<tsrc.length; x++)\r
+ sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));\r
+\r
+ this.resize();\r
+ },\r
+\r
+ resize : function() {\r
+ var w, h, e;\r
+\r
+ if (!self.innerWidth) {\r
+ w = document.body.clientWidth - 50;\r
+ h = document.body.clientHeight - 160;\r
+ } else {\r
+ w = self.innerWidth - 50;\r
+ h = self.innerHeight - 170;\r
+ }\r
+\r
+ e = document.getElementById('templatesrc');\r
+\r
+ if (e) {\r
+ e.style.height = Math.abs(h) + 'px';\r
+ e.style.width = Math.abs(w - 5) + 'px';\r
+ }\r
+ },\r
+\r
+ loadCSSFiles : function(d) {\r
+ var ed = tinyMCEPopup.editor;\r
+
+ tinymce.each(ed.getParam("content_css", '').split(','), function(u) {\r
+ d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');
+ });\r
+ },\r
+\r
+ selectTemplate : function(u) {\r
+ var d = window.frames['templatesrc'].document;\r
+\r
+ if (!u)\r
+ return;\r
+\r
+ d.body.innerHTML = this.templateHTML = this.getFileContents(u);\r
+ },\r
+\r
+ insert : function() {\r
+ tinyMCEPopup.execCommand('mceInsertTemplate', false, {\r
+ content : this.templateHTML,\r
+ selection : tinyMCEPopup.editor.selection.getContent()\r
+ });\r
+\r
+ tinyMCEPopup.close();\r
+ },\r
+\r
+ getFileContents : function(u) {\r
+ var x, d, t = 'text/plain';\r
+\r
+ function g(s) {\r
+ x = 0;\r
+\r
+ try {\r
+ x = new ActiveXObject(s);\r
+ } catch (s) {\r
+ }\r
+\r
+ return x;\r
+ };\r
+\r
+ x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();\r
+\r
+ // Synchronous AJAX load file\r
+ x.overrideMimeType && x.overrideMimeType(t);\r
+ x.open("GET", u, false);\r
+ x.send(null);\r
+\r
+ return x.responseText;\r
+ }\r
+};\r
+\r
+TemplateDialog.preInit();\r
+tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog);\r
--- /dev/null
+tinyMCE.addI18n('en.template_dlg',{\r
+title:"Templates",\r
+label:"Template",\r
+desc_label:"Description",\r
+desc:"Insert predefined template content",\r
+select:"Select a template",\r
+preview:"Preview",\r
+warning:"Warning: Updating a template with a different one may cause data loss.",\r
+mdate_format:"%Y-%m-%d %H:%M:%S",\r
+cdate_format:"%Y-%m-%d %H:%M:%S",\r
+months_long:"January,February,March,April,May,June,July,August,September,October,November,December",\r
+months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",\r
+day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",\r
+day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"\r
+});
\ No newline at end of file
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#template_dlg.title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="js/template.js"></script>\r
+ <link href="css/template.css" rel="stylesheet" type="text/css" />\r
+ <base target="_self" />\r
+</head>\r
+<body onresize="TemplateDialog.resize();"> \r
+ <form onsubmit="TemplateDialog.insert();return false;">\r
+ <div id="frmbody">\r
+ <div class="title">{#template_dlg.desc}</div>\r
+ <div class="frmRow"><label for="tpath" title="{#template_dlg.select}">{#template_dlg.label}:</label>\r
+ <select id="tpath" name="tpath" onchange="TemplateDialog.selectTemplate(this.options[this.selectedIndex].value);" class="mceFocus">\r
+ <option value="">{#template_dlg.select}...</option>\r
+ </select>\r
+ <span id="warning"></span></div>\r
+ <div class="frmRow"><label for="tdesc">{#template_dlg.desc_label}:</label>\r
+ <span id="tmpldesc"></span></div>\r
+ <fieldset>\r
+ <legend>{#template_dlg.preview}</legend>\r
+ <iframe id="templatesrc" name="templatesrc" src="blank.htm" width="690" height="400" frameborder="0"></iframe>\r
+ </fieldset>\r
+ </div>\r
+ \r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+\r
+ <br style="clear:both" />\r
+ </div>\r
+ </form>\r
+</body> \r
+</html> \r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.VisualChars',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceVisualChars',t._toggleVisualChars,t);ed.addButton('visualchars',{title:'visualchars.desc',cmd:'mceVisualChars'});ed.onBeforeGetContent.add(function(ed,o){if(t.state){t.state=true;t._toggleVisualChars();}});},getInfo:function(){return{longname:'Visual characters',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_toggleVisualChars:function(){var t=this,ed=t.editor,nl,i,h,d=ed.getDoc(),b=ed.getBody(),nv,s=ed.selection,bo;t.state=!t.state;ed.controlManager.setActive('visualchars',t.state);if(t.state){nl=[];tinymce.walk(b,function(n){if(n.nodeType==3&&n.nodeValue&&n.nodeValue.indexOf('\u00a0')!=-1)nl.push(n);},'childNodes');for(i=0;i<nl.length;i++){nv=nl[i].nodeValue;nv=nv.replace(/(\u00a0+)/g,'<span class="mceItemHidden mceVisualNbsp">$1</span>');nv=nv.replace(/\u00a0/g,'\u00b7');ed.dom.setOuterHTML(nl[i],nv,d);}}else{nl=tinymce.grep(ed.dom.select('span',b),function(n){return ed.dom.hasClass(n,'mceVisualNbsp');});for(i=0;i<nl.length;i++)ed.dom.setOuterHTML(nl[i],nl[i].innerHTML.replace(/(·|\u00b7)/g,' '),d);}}});tinymce.PluginManager.add('visualchars',tinymce.plugins.VisualChars);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.VisualChars', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceVisualChars', t._toggleVisualChars, t);\r
+\r
+ // Register buttons\r
+ ed.addButton('visualchars', {title : 'visualchars.desc', cmd : 'mceVisualChars'});\r
+\r
+ ed.onBeforeGetContent.add(function(ed, o) {\r
+ if (t.state) {\r
+ t.state = true;\r
+ t._toggleVisualChars();\r
+ }\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Visual characters',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _toggleVisualChars : function() {\r
+ var t = this, ed = t.editor, nl, i, h, d = ed.getDoc(), b = ed.getBody(), nv, s = ed.selection, bo;\r
+\r
+ t.state = !t.state;\r
+ ed.controlManager.setActive('visualchars', t.state);\r
+\r
+ if (t.state) {\r
+ nl = [];\r
+ tinymce.walk(b, function(n) {\r
+ if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1)\r
+ nl.push(n);\r
+ }, 'childNodes');\r
+\r
+ for (i=0; i<nl.length; i++) {\r
+ nv = nl[i].nodeValue;\r
+ nv = nv.replace(/(\u00a0+)/g, '<span class="mceItemHidden mceVisualNbsp">$1</span>');\r
+ nv = nv.replace(/\u00a0/g, '\u00b7');\r
+ ed.dom.setOuterHTML(nl[i], nv, d);\r
+ }\r
+ } else {\r
+ nl = tinymce.grep(ed.dom.select('span', b), function(n) {\r
+ return ed.dom.hasClass(n, 'mceVisualNbsp');\r
+ });\r
+\r
+ for (i=0; i<nl.length; i++)\r
+ ed.dom.setOuterHTML(nl[i], nl[i].innerHTML.replace(/(·|\u00b7)/g, ' '), d);\r
+ }\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('visualchars', tinymce.plugins.VisualChars);\r
+})();
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#xhtmlxtras_dlg.title_abbr_element}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
+ <script type="text/javascript" src="js/element_common.js"></script>\r
+ <script type="text/javascript" src="js/abbr.js"></script>\r
+ <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
+ <base target="_self" />\r
+</head>\r
+<body style="display: none">\r
+<form onsubmit="insertAbbr();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
+ <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
+ <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
+ <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
+ <td>\r
+ <select id="class" name="class" class="field mceEditableSelect">\r
+ <option value="">{#not_set}</option> \r
+ </select>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
+ <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
+ <td>\r
+ <select id="dir" name="dir" class="field"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
+ <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" class="field" />\r
+ </td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ <div id="events_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label for="onfocus">onfocus</label>:</td> \r
+ <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onblur">onblur</label>:</td> \r
+ <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onclick">onclick</label>:</td> \r
+ <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
+ <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
+ <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
+ <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
+ <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
+ <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
+ <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
+ <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
+ <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
+ <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#update}" />\r
+ </div>\r
+ <div style="float: left">\r
+ <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeAbbr();" style="display: none;" />\r
+ </div>\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#xhtmlxtras_dlg.title_acronym_element}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
+ <script type="text/javascript" src="js/element_common.js"></script>\r
+ <script type="text/javascript" src="js/acronym.js"></script>\r
+ <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
+ <base target="_self" />\r
+</head>\r
+<body style="display: none">\r
+<form onsubmit="insertAcronym();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
+ <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
+ <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
+ <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
+ <td>\r
+ <select id="class" name="class" class="field mceEditableSelect">\r
+ <option value="">{#not_set}</option> \r
+ </select>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
+ <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
+ <td>\r
+ <select id="dir" name="dir" class="field"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
+ <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" class="field" />\r
+ </td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ <div id="events_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label for="onfocus">onfocus</label>:</td> \r
+ <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onblur">onblur</label>:</td> \r
+ <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onclick">onclick</label>:</td> \r
+ <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
+ <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
+ <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
+ <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
+ <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
+ <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
+ <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
+ <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
+ <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
+ <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#update}" />\r
+ </div>\r
+ <div style="float: left">\r
+ <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeAcronym();" style="display: none;" />\r
+ </div>\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#xhtmlxtras_dlg.attribs_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="js/attributes.js"></script>\r
+ <link rel="stylesheet" type="text/css" href="css/attributes.css" />\r
+ <base target="_self" />\r
+</head>\r
+<body style="display: none">\r
+<form onsubmit="insertAction();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.attribute_attrib_tab}</a></span></li>\r
+ <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.attribute_events_tab}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.attribute_attrib_tab}</legend>\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
+ <td><input id="title" name="title" type="text" value="" class="mceFocus" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
+ <td><input id="id" name="id" type="text" value="" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td><label id="classlabel" for="classlist">{#class_name}</label></td>\r
+ <td>\r
+ <select id="classlist" name="classlist" class="mceEditableSelect">\r
+ <option value="" selected>{#not_set}</option>\r
+ </select>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
+ <td><input id="style" name="style" type="text" value="" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
+ <td>\r
+ <select id="dir" name="dir"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#xhtmlxtras_dlg.option_ltr}</option> \r
+ <option value="rtl">{#xhtmlxtras_dlg.option_rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" />\r
+ </td> \r
+ </tr>\r
+ <tr>\r
+ <td><label id="tabindexlabel" for="tabindex">{#xhtmlxtras_dlg.attribute_label_tabindex}</label></td>\r
+ <td><input type="text" id="tabindex" name="tabindex" value="" /></td>\r
+ </tr>\r
+\r
+ <tr>\r
+ <td><label id="accesskeylabel" for="accesskey">{#xhtmlxtras_dlg.attribute_label_accesskey}</label></td>\r
+ <td><input type="text" id="accesskey" name="accesskey" value="" /></td>\r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ <div id="events_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.attribute_events_tab}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label for="onfocus">onfocus</label>:</td> \r
+ <td><input id="onfocus" name="onfocus" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onblur">onblur</label>:</td> \r
+ <td><input id="onblur" name="onblur" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onclick">onclick</label>:</td> \r
+ <td><input id="onclick" name="onclick" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
+ <td><input id="ondblclick" name="ondblclick" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
+ <td><input id="onmousedown" name="onmousedown" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
+ <td><input id="onmouseup" name="onmouseup" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
+ <td><input id="onmouseover" name="onmouseover" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
+ <td><input id="onmousemove" name="onmousemove" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
+ <td><input id="onmouseout" name="onmouseout" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
+ <td><input id="onkeypress" name="onkeypress" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
+ <td><input id="onkeydown" name="onkeydown" type="text" value="" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
+ <td><input id="onkeyup" name="onkeyup" type="text" value="" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#xhtmlxtras_dlg.title_cite_element}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
+ <script type="text/javascript" src="js/element_common.js"></script>\r
+ <script type="text/javascript" src="js/cite.js"></script>\r
+ <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
+ <base target="_self" />\r
+</head>\r
+<body style="display: none">\r
+<form onsubmit="insertCite();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
+ <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
+ <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
+ <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
+ <td>\r
+ <select id="class" name="class" class="field mceEditableSelect">\r
+ <option value="">{#not_set}</option> \r
+ </select>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
+ <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
+ <td>\r
+ <select id="dir" name="dir" class="field"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
+ <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" class="field" />\r
+ </td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ <div id="events_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label for="onfocus">onfocus</label>:</td> \r
+ <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onblur">onblur</label>:</td> \r
+ <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onclick">onclick</label>:</td> \r
+ <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
+ <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
+ <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
+ <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
+ <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
+ <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
+ <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
+ <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
+ <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
+ <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#update}" />\r
+ </div>\r
+ <div style="float: left">\r
+ <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeCite();" style="display: none;" />\r
+ </div>\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+.panel_wrapper div.current {\r
+ height: 290px;\r
+}\r
+\r
+#id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey {\r
+ width: 200px;\r
+}\r
+\r
+#events_panel input {\r
+ width: 200px;\r
+}\r
--- /dev/null
+input.field, select.field {width:200px;}\r
+input.picker {width:179px; margin-left: 5px;}\r
+input.disabled {border-color:#F2F2F2;}\r
+img.picker {vertical-align:text-bottom; cursor:pointer;}\r
+h1 {padding: 0 0 5px 0;}\r
+.panel_wrapper div.current {height:160px;}\r
+#xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;}\r
+a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;}\r
+#datetime {width:180px;}\r
--- /dev/null
+ins {\r
+ border-bottom: 1px solid green;\r
+ text-decoration: none;\r
+ color: green;\r
+}\r
+\r
+del {\r
+ color: Red;\r
+ text-decoration: line-through;\r
+}\r
+\r
+cite {\r
+ border-bottom: 1px dashed blue;\r
+}\r
+\r
+acronym {\r
+ border-bottom: 1px dotted #CCC;\r
+ cursor: help;\r
+}\r
+\r
+abbr, html\:abbr {\r
+ border-bottom: 1px dashed #CCC;\r
+ cursor: help;\r
+}\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#xhtmlxtras_dlg.title_del_element}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
+ <script type="text/javascript" src="js/element_common.js"></script>\r
+ <script type="text/javascript" src="js/del.js"></script>\r
+ <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
+ <base target="_self" />\r
+</head>\r
+<body id="xhtmlxtrasins" style="display: none">\r
+<form onsubmit="insertDel();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
+ <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_general_tab}</legend>\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label id="datetimelabel" for="datetime">{#xhtmlxtras_dlg.attribute_label_datetime}</label>:</td>\r
+ <td>\r
+ <table border="0" cellspacing="0" cellpadding="0">\r
+ <tr> \r
+ <td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td> \r
+ <td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" alt="{#xhtmlxtras_dlg.insert_date}" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="citelabel" for="cite">{#xhtmlxtras_dlg.attribute_label_cite}</label>:</td>\r
+ <td><input id="cite" name="cite" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
+ <td><input id="title" name="title" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
+ <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
+ <td>\r
+ <select id="class" name="class" class="field mceEditableSelect">\r
+ <option value="">{#not_set}</option> \r
+ </select>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
+ <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
+ <td>\r
+ <select id="dir" name="dir" class="field"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
+ <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" class="field" />\r
+ </td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ <div id="events_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label for="onfocus">onfocus</label>:</td> \r
+ <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onblur">onblur</label>:</td> \r
+ <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onclick">onclick</label>:</td> \r
+ <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
+ <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
+ <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
+ <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
+ <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
+ <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
+ <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
+ <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
+ <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
+ <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#update}" />\r
+ </div>\r
+ <div style="float: left">\r
+ <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeDel();" style="display: none;" />\r
+ </div>\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+\r
+</form>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){tinymce.create('tinymce.plugins.XHTMLXtrasPlugin',{init:function(ed,url){ed.addCommand('mceCite',function(){ed.windowManager.open({file:url+'/cite.htm',width:350+parseInt(ed.getLang('xhtmlxtras.cite_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.cite_delta_height',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAcronym',function(){ed.windowManager.open({file:url+'/acronym.htm',width:350+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAbbr',function(){ed.windowManager.open({file:url+'/abbr.htm',width:350+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceDel',function(){ed.windowManager.open({file:url+'/del.htm',width:340+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceIns',function(){ed.windowManager.open({file:url+'/ins.htm',width:340+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAttributes',function(){ed.windowManager.open({file:url+'/attributes.htm',width:380,height:370,inline:1},{plugin_url:url});});ed.addButton('cite',{title:'xhtmlxtras.cite_desc',cmd:'mceCite'});ed.addButton('acronym',{title:'xhtmlxtras.acronym_desc',cmd:'mceAcronym'});ed.addButton('abbr',{title:'xhtmlxtras.abbr_desc',cmd:'mceAbbr'});ed.addButton('del',{title:'xhtmlxtras.del_desc',cmd:'mceDel'});ed.addButton('ins',{title:'xhtmlxtras.ins_desc',cmd:'mceIns'});ed.addButton('attribs',{title:'xhtmlxtras.attribs_desc',cmd:'mceAttributes'});if(tinymce.isIE){function fix(ed,o){if(o.set){o.content=o.content.replace(/<abbr([^>]+)>/gi,'<html:abbr $1>');o.content=o.content.replace(/<\/abbr>/gi,'</html:abbr>');}};ed.onBeforeSetContent.add(fix);ed.onPostProcess.add(fix);}ed.onNodeChange.add(function(ed,cm,n,co){n=ed.dom.getParent(n,'CITE,ACRONYM,ABBR,DEL,INS');cm.setDisabled('cite',co);cm.setDisabled('acronym',co);cm.setDisabled('abbr',co);cm.setDisabled('del',co);cm.setDisabled('ins',co);cm.setDisabled('attribs',n&&n.nodeName=='BODY');if(n){cm.setDisabled(n.nodeName.toLowerCase(),0);cm.setActive(n.nodeName.toLowerCase(),1);}else{cm.setActive('cite',0);cm.setActive('acronym',0);cm.setActive('abbr',0);cm.setActive('del',0);cm.setActive('ins',0);}});},getInfo:function(){return{longname:'XHTML Xtras Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('xhtmlxtras',tinymce.plugins.XHTMLXtrasPlugin);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', {\r
+ init : function(ed, url) {\r
+ // Register commands\r
+ ed.addCommand('mceCite', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/cite.htm',\r
+ width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)),\r
+ height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ ed.addCommand('mceAcronym', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/acronym.htm',\r
+ width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),\r
+ height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ ed.addCommand('mceAbbr', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/abbr.htm',\r
+ width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),\r
+ height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ ed.addCommand('mceDel', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/del.htm',\r
+ width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),\r
+ height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ ed.addCommand('mceIns', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/ins.htm',\r
+ width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),\r
+ height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ ed.addCommand('mceAttributes', function() {\r
+ ed.windowManager.open({\r
+ file : url + '/attributes.htm',\r
+ width : 380,\r
+ height : 370,\r
+ inline : 1\r
+ }, {\r
+ plugin_url : url\r
+ });\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'});\r
+ ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'});\r
+ ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'});\r
+ ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'});\r
+ ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'});\r
+ ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'});\r
+\r
+ if (tinymce.isIE) {\r
+ function fix(ed, o) {\r
+ if (o.set) {\r
+ o.content = o.content.replace(/<abbr([^>]+)>/gi, '<html:abbr $1>');\r
+ o.content = o.content.replace(/<\/abbr>/gi, '</html:abbr>');\r
+ }\r
+ };\r
+\r
+ ed.onBeforeSetContent.add(fix);\r
+ ed.onPostProcess.add(fix);\r
+ }\r
+\r
+ ed.onNodeChange.add(function(ed, cm, n, co) {\r
+ n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS');\r
+\r
+ cm.setDisabled('cite', co);\r
+ cm.setDisabled('acronym', co);\r
+ cm.setDisabled('abbr', co);\r
+ cm.setDisabled('del', co);\r
+ cm.setDisabled('ins', co);\r
+ cm.setDisabled('attribs', n && n.nodeName == 'BODY');\r
+\r
+ if (n) {\r
+ cm.setDisabled(n.nodeName.toLowerCase(), 0);\r
+ cm.setActive(n.nodeName.toLowerCase(), 1);\r
+ } else {\r
+ cm.setActive('cite', 0);\r
+ cm.setActive('acronym', 0);\r
+ cm.setActive('abbr', 0);\r
+ cm.setActive('del', 0);\r
+ cm.setActive('ins', 0);\r
+ }\r
+ });\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'XHTML Xtras Plugin',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin);\r
+})();
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#xhtmlxtras_dlg.title_ins_element}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
+ <script type="text/javascript" src="js/element_common.js"></script>\r
+ <script type="text/javascript" src="js/ins.js"></script>\r
+ <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
+ <base target="_self" />\r
+</head>\r
+<body id="xhtmlxtrasins" style="display: none">\r
+<form onsubmit="insertIns();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
+ <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_general_tab}</legend>\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label id="datetimelabel" for="datetime">{#xhtmlxtras_dlg.attribute_label_datetime}</label>:</td> \r
+ <td>\r
+ <table border="0" cellspacing="0" cellpadding="0">\r
+ <tr> \r
+ <td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td> \r
+ <td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" alt="{#xhtmlxtras_dlg.insert_date}" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="citelabel" for="cite">{#xhtmlxtras_dlg.attribute_label_cite}</label>:</td> \r
+ <td><input id="cite" name="cite" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
+ <td><input id="title" name="title" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
+ <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
+ <td>\r
+ <select id="class" name="class" class="field mceEditableSelect">\r
+ <option value="">{#not_set}</option> \r
+ </select>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
+ <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
+ <td>\r
+ <select id="dir" name="dir" class="field"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
+ <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+ <tr>\r
+ <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
+ <td>\r
+ <input id="lang" name="lang" type="text" value="" class="field" />\r
+ </td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ <div id="events_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
+\r
+ <table border="0" cellpadding="0" cellspacing="4">\r
+ <tr>\r
+ <td class="label"><label for="onfocus">onfocus</label>:</td> \r
+ <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onblur">onblur</label>:</td> \r
+ <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onclick">onclick</label>:</td> \r
+ <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
+ <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
+ <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
+ <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
+ <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
+ <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
+ <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
+ <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
+ <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
+ <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
+ </tr>\r
+ </table>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#update}" />\r
+ </div>\r
+ <div style="float: left">\r
+ <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeIns();" style="display: none;" />\r
+ </div>\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+\r
+</form>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+ /**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode - based on work by Andrew Tetlaw\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+function init() {\r
+ SXE.initElementDialog('abbr');\r
+ if (SXE.currentAction == "update") {\r
+ SXE.showRemoveButton();\r
+ }\r
+}\r
+\r
+function insertAbbr() {\r
+ SXE.insertElement(tinymce.isIE ? 'html:abbr' : 'abbr');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function removeAbbr() {\r
+ SXE.removeElement('abbr');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+ /**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode - based on work by Andrew Tetlaw\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+function init() {\r
+ SXE.initElementDialog('acronym');\r
+ if (SXE.currentAction == "update") {\r
+ SXE.showRemoveButton();\r
+ }\r
+}\r
+\r
+function insertAcronym() {\r
+ SXE.insertElement('acronym');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function removeAcronym() {\r
+ SXE.removeElement('acronym');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+ /**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode - based on work by Andrew Tetlaw\r
+ * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+function init() {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+ var inst = tinyMCEPopup.editor;\r
+ var dom = inst.dom;\r
+ var elm = inst.selection.getNode();\r
+ var f = document.forms[0];\r
+ var onclick = dom.getAttrib(elm, 'onclick');\r
+\r
+ setFormValue('title', dom.getAttrib(elm, 'title'));\r
+ setFormValue('id', dom.getAttrib(elm, 'id'));\r
+ setFormValue('style', dom.getAttrib(elm, "style"));\r
+ setFormValue('dir', dom.getAttrib(elm, 'dir'));\r
+ setFormValue('lang', dom.getAttrib(elm, 'lang'));\r
+ setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));\r
+ setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));\r
+ setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));\r
+ setFormValue('onblur', dom.getAttrib(elm, 'onblur'));\r
+ setFormValue('onclick', onclick);\r
+ setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));\r
+ setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));\r
+ setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));\r
+ setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));\r
+ setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));\r
+ setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));\r
+ setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));\r
+ setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));\r
+ setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));\r
+ className = dom.getAttrib(elm, 'class');\r
+\r
+ addClassesToList('classlist', 'advlink_styles');\r
+ selectByValue(f, 'classlist', className, true);\r
+\r
+ TinyMCE_EditableSelects.init();\r
+}\r
+\r
+function setFormValue(name, value) {\r
+ if(value && document.forms[0].elements[name]){\r
+ document.forms[0].elements[name].value = value;\r
+ }\r
+}\r
+\r
+function insertAction() {\r
+ var inst = tinyMCEPopup.editor;\r
+ var elm = inst.selection.getNode();\r
+\r
+ tinyMCEPopup.execCommand("mceBeginUndoLevel"); \r
+ setAllAttribs(elm);\r
+ tinyMCEPopup.execCommand("mceEndUndoLevel");\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function setAttrib(elm, attrib, value) {\r
+ var formObj = document.forms[0];\r
+ var valueElm = formObj.elements[attrib.toLowerCase()];\r
+ var inst = tinyMCEPopup.editor;\r
+ var dom = inst.dom;\r
+\r
+ if (typeof(value) == "undefined" || value == null) {\r
+ value = "";\r
+\r
+ if (valueElm)\r
+ value = valueElm.value;\r
+ }\r
+\r
+ if (value != "") {\r
+ dom.setAttrib(elm, attrib.toLowerCase(), value);\r
+\r
+ if (attrib == "style")\r
+ attrib = "style.cssText";\r
+\r
+ if (attrib.substring(0, 2) == 'on')\r
+ value = 'return true;' + value;\r
+\r
+ if (attrib == "class")\r
+ attrib = "className";\r
+\r
+ elm[attrib]=value;\r
+ } else\r
+ elm.removeAttribute(attrib);\r
+}\r
+\r
+function setAllAttribs(elm) {\r
+ var f = document.forms[0];\r
+\r
+ setAttrib(elm, 'title');\r
+ setAttrib(elm, 'id');\r
+ setAttrib(elm, 'style');\r
+ setAttrib(elm, 'class', getSelectValue(f, 'classlist'));\r
+ setAttrib(elm, 'dir');\r
+ setAttrib(elm, 'lang');\r
+ setAttrib(elm, 'tabindex');\r
+ setAttrib(elm, 'accesskey');\r
+ setAttrib(elm, 'onfocus');\r
+ setAttrib(elm, 'onblur');\r
+ setAttrib(elm, 'onclick');\r
+ setAttrib(elm, 'ondblclick');\r
+ setAttrib(elm, 'onmousedown');\r
+ setAttrib(elm, 'onmouseup');\r
+ setAttrib(elm, 'onmouseover');\r
+ setAttrib(elm, 'onmousemove');\r
+ setAttrib(elm, 'onmouseout');\r
+ setAttrib(elm, 'onkeypress');\r
+ setAttrib(elm, 'onkeydown');\r
+ setAttrib(elm, 'onkeyup');\r
+\r
+ // Refresh in old MSIE\r
+// if (tinyMCE.isMSIE5)\r
+// elm.outerHTML = elm.outerHTML;\r
+}\r
+\r
+function insertAttribute() {\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
+tinyMCEPopup.requireLangPack();\r
--- /dev/null
+ /**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode - based on work by Andrew Tetlaw\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+function init() {\r
+ SXE.initElementDialog('cite');\r
+ if (SXE.currentAction == "update") {\r
+ SXE.showRemoveButton();\r
+ }\r
+}\r
+\r
+function insertCite() {\r
+ SXE.insertElement('cite');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function removeCite() {\r
+ SXE.removeElement('cite');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+ /**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode - based on work by Andrew Tetlaw\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+function init() {\r
+ SXE.initElementDialog('del');\r
+ if (SXE.currentAction == "update") {\r
+ setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));\r
+ setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));\r
+ SXE.showRemoveButton();\r
+ }\r
+}\r
+\r
+function setElementAttribs(elm) {\r
+ setAllCommonAttribs(elm);\r
+ setAttrib(elm, 'datetime');\r
+ setAttrib(elm, 'cite');\r
+}\r
+\r
+function insertDel() {\r
+ var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'DEL');\r
+\r
+ tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
+ if (elm == null) {\r
+ var s = SXE.inst.selection.getContent();\r
+ if(s.length > 0) {\r
+ tinyMCEPopup.execCommand('mceInsertContent', false, '<del id="#sxe_temp_del#">' + s + '</del>');\r
+ var elementArray = tinymce.grep(SXE.inst.dom.select('del'), function(n) {return n.id == '#sxe_temp_del#';});\r
+ for (var i=0; i<elementArray.length; i++) {\r
+ var elm = elementArray[i];\r
+ setElementAttribs(elm);\r
+ }\r
+ }\r
+ } else {\r
+ setElementAttribs(elm);\r
+ }\r
+ tinyMCEPopup.editor.nodeChanged();\r
+ tinyMCEPopup.execCommand('mceEndUndoLevel');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function removeDel() {\r
+ SXE.removeElement('del');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+ /**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode - based on work by Andrew Tetlaw\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+tinyMCEPopup.requireLangPack();\r
+\r
+function initCommonAttributes(elm) {\r
+ var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
+\r
+ // Setup form data for common element attributes\r
+ setFormValue('title', dom.getAttrib(elm, 'title'));\r
+ setFormValue('id', dom.getAttrib(elm, 'id'));\r
+ selectByValue(formObj, 'class', dom.getAttrib(elm, 'class'), true);\r
+ setFormValue('style', dom.getAttrib(elm, 'style'));\r
+ selectByValue(formObj, 'dir', dom.getAttrib(elm, 'dir'));\r
+ setFormValue('lang', dom.getAttrib(elm, 'lang'));\r
+ setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));\r
+ setFormValue('onblur', dom.getAttrib(elm, 'onblur'));\r
+ setFormValue('onclick', dom.getAttrib(elm, 'onclick'));\r
+ setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));\r
+ setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));\r
+ setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));\r
+ setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));\r
+ setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));\r
+ setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));\r
+ setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));\r
+ setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));\r
+ setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));\r
+}\r
+\r
+function setFormValue(name, value) {\r
+ if(document.forms[0].elements[name]) document.forms[0].elements[name].value = value;\r
+}\r
+\r
+function insertDateTime(id) {\r
+ document.getElementById(id).value = getDateTime(new Date(), "%Y-%m-%dT%H:%M:%S");\r
+}\r
+\r
+function getDateTime(d, fmt) {\r
+ fmt = fmt.replace("%D", "%m/%d/%y");\r
+ fmt = fmt.replace("%r", "%I:%M:%S %p");\r
+ fmt = fmt.replace("%Y", "" + d.getFullYear());\r
+ fmt = fmt.replace("%y", "" + d.getYear());\r
+ fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));\r
+ fmt = fmt.replace("%d", addZeros(d.getDate(), 2));\r
+ fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));\r
+ fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));\r
+ fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));\r
+ fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));\r
+ fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));\r
+ fmt = fmt.replace("%%", "%");\r
+\r
+ return fmt;\r
+}\r
+\r
+function addZeros(value, len) {\r
+ var i;\r
+\r
+ value = "" + value;\r
+\r
+ if (value.length < len) {\r
+ for (i=0; i<(len-value.length); i++)\r
+ value = "0" + value;\r
+ }\r
+\r
+ return value;\r
+}\r
+\r
+function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {\r
+ if (!form_obj || !form_obj.elements[field_name])\r
+ return;\r
+\r
+ var sel = form_obj.elements[field_name];\r
+\r
+ var found = false;\r
+ for (var i=0; i<sel.options.length; i++) {\r
+ var option = sel.options[i];\r
+\r
+ if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {\r
+ option.selected = true;\r
+ found = true;\r
+ } else\r
+ option.selected = false;\r
+ }\r
+\r
+ if (!found && add_custom && value != '') {\r
+ var option = new Option('Value: ' + value, value);\r
+ option.selected = true;\r
+ sel.options[sel.options.length] = option;\r
+ }\r
+\r
+ return found;\r
+}\r
+\r
+function setAttrib(elm, attrib, value) {\r
+ var formObj = document.forms[0];\r
+ var valueElm = formObj.elements[attrib.toLowerCase()];\r
+ tinyMCEPopup.editor.dom.setAttrib(elm, attrib, value || valueElm.value);\r
+}\r
+\r
+function setAllCommonAttribs(elm) {\r
+ setAttrib(elm, 'title');\r
+ setAttrib(elm, 'id');\r
+ setAttrib(elm, 'class');\r
+ setAttrib(elm, 'style');\r
+ setAttrib(elm, 'dir');\r
+ setAttrib(elm, 'lang');\r
+ /*setAttrib(elm, 'onfocus');\r
+ setAttrib(elm, 'onblur');\r
+ setAttrib(elm, 'onclick');\r
+ setAttrib(elm, 'ondblclick');\r
+ setAttrib(elm, 'onmousedown');\r
+ setAttrib(elm, 'onmouseup');\r
+ setAttrib(elm, 'onmouseover');\r
+ setAttrib(elm, 'onmousemove');\r
+ setAttrib(elm, 'onmouseout');\r
+ setAttrib(elm, 'onkeypress');\r
+ setAttrib(elm, 'onkeydown');\r
+ setAttrib(elm, 'onkeyup');*/\r
+}\r
+\r
+SXE = {\r
+ currentAction : "insert",\r
+ inst : tinyMCEPopup.editor,\r
+ updateElement : null\r
+}\r
+\r
+SXE.focusElement = SXE.inst.selection.getNode();\r
+\r
+SXE.initElementDialog = function(element_name) {\r
+ addClassesToList('class', 'xhtmlxtras_styles');\r
+ TinyMCE_EditableSelects.init();\r
+\r
+ element_name = element_name.toLowerCase();\r
+ var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());\r
+ if (elm != null && elm.nodeName == element_name.toUpperCase()) {\r
+ SXE.currentAction = "update";\r
+ }\r
+\r
+ if (SXE.currentAction == "update") {\r
+ initCommonAttributes(elm);\r
+ SXE.updateElement = elm;\r
+ }\r
+\r
+ document.forms[0].insert.value = tinyMCEPopup.getLang(SXE.currentAction, 'Insert', true); \r
+}\r
+\r
+SXE.insertElement = function(element_name) {\r
+ var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase()), h, tagName;\r
+\r
+ tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
+ if (elm == null) {\r
+ var s = SXE.inst.selection.getContent();\r
+ if(s.length > 0) {\r
+ tagName = element_name;\r
+\r
+ if (tinymce.isIE && element_name.indexOf('html:') == 0)\r
+ element_name = element_name.substring(5).toLowerCase();\r
+\r
+ h = '<' + tagName + ' id="#sxe_temp_' + element_name + '#">' + s + '</' + tagName + '>';\r
+\r
+ tinyMCEPopup.execCommand('mceInsertContent', false, h);\r
+\r
+ var elementArray = tinymce.grep(SXE.inst.dom.select(element_name), function(n) {return n.id == '#sxe_temp_' + element_name + '#';});\r
+ for (var i=0; i<elementArray.length; i++) {\r
+ var elm = elementArray[i];\r
+\r
+ elm.id = '';\r
+ elm.setAttribute('id', '');\r
+ elm.removeAttribute('id');\r
+\r
+ setAllCommonAttribs(elm);\r
+ }\r
+ }\r
+ } else {\r
+ setAllCommonAttribs(elm);\r
+ }\r
+ SXE.inst.nodeChanged();\r
+ tinyMCEPopup.execCommand('mceEndUndoLevel');\r
+}\r
+\r
+SXE.removeElement = function(element_name){\r
+ element_name = element_name.toLowerCase();\r
+ elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());\r
+ if(elm && elm.nodeName == element_name.toUpperCase()){\r
+ tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
+ tinyMCE.execCommand('mceRemoveNode', false, elm);\r
+ SXE.inst.nodeChanged();\r
+ tinyMCEPopup.execCommand('mceEndUndoLevel');\r
+ }\r
+}\r
+\r
+SXE.showRemoveButton = function() {\r
+ document.getElementById("remove").style.display = 'block';\r
+}\r
+\r
+SXE.containsClass = function(elm,cl) {\r
+ return (elm.className.indexOf(cl) > -1) ? true : false;\r
+}\r
+\r
+SXE.removeClass = function(elm,cl) {\r
+ if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) {\r
+ return true;\r
+ }\r
+ var classNames = elm.className.split(" ");\r
+ var newClassNames = "";\r
+ for (var x = 0, cnl = classNames.length; x < cnl; x++) {\r
+ if (classNames[x] != cl) {\r
+ newClassNames += (classNames[x] + " ");\r
+ }\r
+ }\r
+ elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end\r
+}\r
+\r
+SXE.addClass = function(elm,cl) {\r
+ if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl;\r
+ return true;\r
+}
\ No newline at end of file
--- /dev/null
+ /**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode - based on work by Andrew Tetlaw\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+function init() {\r
+ SXE.initElementDialog('ins');\r
+ if (SXE.currentAction == "update") {\r
+ setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));\r
+ setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));\r
+ SXE.showRemoveButton();\r
+ }\r
+}\r
+\r
+function setElementAttribs(elm) {\r
+ setAllCommonAttribs(elm);\r
+ setAttrib(elm, 'datetime');\r
+ setAttrib(elm, 'cite');\r
+}\r
+\r
+function insertIns() {\r
+ var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'INS');\r
+ tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
+ if (elm == null) {\r
+ var s = SXE.inst.selection.getContent();\r
+ if(s.length > 0) {\r
+ tinyMCEPopup.execCommand('mceInsertContent', false, '<ins id="#sxe_temp_ins#">' + s + '</ins>');\r
+ var elementArray = tinymce.grep(SXE.inst.dom.select('ins'), function(n) {return n.id == '#sxe_temp_ins#';});\r
+ for (var i=0; i<elementArray.length; i++) {\r
+ var elm = elementArray[i];\r
+ setElementAttribs(elm);\r
+ }\r
+ }\r
+ } else {\r
+ setElementAttribs(elm);\r
+ }\r
+ tinyMCEPopup.editor.nodeChanged();\r
+ tinyMCEPopup.execCommand('mceEndUndoLevel');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function removeIns() {\r
+ SXE.removeElement('ins');\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCE.addI18n('en.xhtmlxtras_dlg',{\r
+attribute_label_title:"Title",\r
+attribute_label_id:"ID",\r
+attribute_label_class:"Class",\r
+attribute_label_style:"Style",\r
+attribute_label_cite:"Cite",\r
+attribute_label_datetime:"Date/Time",\r
+attribute_label_langdir:"Text Direction",\r
+attribute_option_ltr:"Left to right",\r
+attribute_option_rtl:"Right to left",\r
+attribute_label_langcode:"Language",\r
+attribute_label_tabindex:"TabIndex",\r
+attribute_label_accesskey:"AccessKey",\r
+attribute_events_tab:"Events",\r
+attribute_attrib_tab:"Attributes",\r
+general_tab:"General",\r
+attrib_tab:"Attributes",\r
+events_tab:"Events",\r
+fieldset_general_tab:"General Settings",\r
+fieldset_attrib_tab:"Element Attributes",\r
+fieldset_events_tab:"Element Events",\r
+title_ins_element:"Insertion Element",\r
+title_del_element:"Deletion Element",\r
+title_acronym_element:"Acronym Element",\r
+title_abbr_element:"Abbreviation Element",\r
+title_cite_element:"Citation Element",\r
+remove:"Remove",\r
+insert_date:"Insert current date/time",\r
+option_ltr:"Left to right",\r
+option_rtl:"Right to left",\r
+attribs_title:"Insert/Edit Attributes"\r
+});
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#advanced_dlg.about_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="js/about.js"></script>\r
+</head>\r
+<body id="about" style="display: none">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.about_general}</a></span></li>\r
+ <li id="help_tab" style="display:none"><span><a href="javascript:mcTabs.displayTab('help_tab','help_panel');" onmousedown="return false;">{#advanced_dlg.about_help}</a></span></li>\r
+ <li id="plugins_tab"><span><a href="javascript:mcTabs.displayTab('plugins_tab','plugins_panel');" onmousedown="return false;">{#advanced_dlg.about_plugins}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <h3>{#advanced_dlg.about_title}</h3>\r
+ <p>Version: <span id="version"></span> (<span id="date"></span>)</p>\r
+ <p>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under <a href="../../license.txt" target="_blank">LGPL</a>\r
+ by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p>\r
+ <p>Copyright © 2003-2007, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>\r
+ <p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p>\r
+\r
+ <div id="buttoncontainer">\r
+ <a href="http://www.moxiecode.com" target="_blank"><img src="http://tinymce.moxiecode.com/images/gotmoxie.png" alt="Got Moxie?" border="0" /></a>\r
+ <a href="http://sourceforge.net/projects/tinymce/" target="_blank"><img src="http://sourceforge.net/sflogo.php?group_id=103281" alt="Hosted By Sourceforge" border="0" /></a>\r
+ <a href="http://www.freshmeat.net/projects/tinymce" target="_blank"><img src="http://tinymce.moxiecode.com/images/fm.gif" alt="Also on freshmeat" border="0" /></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div id="plugins_panel" class="panel">\r
+ <div id="pluginscontainer">\r
+ <h3>{#advanced_dlg.about_loaded}</h3>\r
+\r
+ <div id="plugintablecontainer">\r
+ </div>\r
+\r
+ <p> </p>\r
+ </div>\r
+ </div>\r
+\r
+ <div id="help_panel" class="panel noscroll" style="overflow: visible;">\r
+ <div id="iframecontainer"></div>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#close}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#advanced_dlg.anchor_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="js/anchor.js"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body style="display: none">\r
+<form onsubmit="AnchorDialog.update();return false;" action="#">\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td colspan="2" class="title">{#advanced_dlg.anchor_title}</td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap">{#advanced_dlg.anchor_name}:</td>\r
+ <td><input name="anchorName" type="text" class="mceFocus" id="anchorName" value="" style="width: 200px" /></td>\r
+ </tr>\r
+ </table>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#update}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#advanced_dlg.charmap_title}</title>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="js/charmap.js"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body id="charmap" style="display:none">\r
+<table align="center" border="0" cellspacing="0" cellpadding="2">\r
+ <tr>\r
+ <td colspan="2" class="title">{#advanced_dlg.charmap_title}</td>\r
+ </tr>\r
+ <tr>\r
+ <td id="charmapView" rowspan="2" align="left" valign="top">\r
+ <!-- Chars will be rendered here -->\r
+ </td>\r
+ <td width="100" align="center" valign="top">\r
+ <table border="0" cellpadding="0" cellspacing="0" width="100" style="height:100px">\r
+ <tr>\r
+ <td id="codeV"> </td>\r
+ </tr>\r
+ <tr>\r
+ <td id="codeN"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td valign="bottom" style="padding-bottom: 3px;">\r
+ <table width="100" align="center" border="0" cellpadding="2" cellspacing="0">\r
+ <tr>\r
+ <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">HTML-Code</td>\r
+ </tr>\r
+ <tr>\r
+ <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeA" align="center"> </td>\r
+ </tr>\r
+ <tr>\r
+ <td style="font-size: 1px;"> </td>\r
+ </tr>\r
+ <tr>\r
+ <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">NUM-Code</td>\r
+ </tr>\r
+ <tr>\r
+ <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeB" align="center"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+</table>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#advanced_dlg.colorpicker_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="js/color_picker.js"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body id="colorpicker" style="display: none">\r
+<form onsubmit="insertAction();return false" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="picker_tab" class="current"><span><a href="javascript:mcTabs.displayTab('picker_tab','picker_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_picker_tab}</a></span></li>\r
+ <li id="rgb_tab"><span><a href="javascript:;" onclick="generateWebColors();mcTabs.displayTab('rgb_tab','rgb_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_palette_tab}</a></span></li>\r
+ <li id="named_tab"><span><a href="javascript:;" onclick="generateNamedColors();javascript:mcTabs.displayTab('named_tab','named_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_named_tab}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="picker_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#advanced_dlg.colorpicker_picker_title}</legend>\r
+ <div id="picker">\r
+ <img id="colors" src="img/colorpicker.jpg" onclick="computeColor(event)" onmousedown="isMouseDown = true;return false;" onmouseup="isMouseDown = false;" onmousemove="if (isMouseDown && isMouseOver) computeColor(event); return false;" onmouseover="isMouseOver=true;" onmouseout="isMouseOver=false;" />\r
+\r
+ <div id="light">\r
+ <!-- Will be filled with divs -->\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+ </div>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="rgb_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#advanced_dlg.colorpicker_palette_title}</legend>\r
+ <div id="webcolors">\r
+ <!-- Gets filled with web safe colors-->\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="named_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#advanced_dlg.colorpicker_named_title}</legend>\r
+ <div id="namedcolors">\r
+ <!-- Gets filled with named colors-->\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+\r
+ <div id="colornamecontainer">\r
+ {#advanced_dlg.colorpicker_name} <span id="colorname"></span>\r
+ </div>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#apply}" />\r
+ </div>\r
+\r
+ <div id="preview"></div>\r
+\r
+ <div id="previewblock">\r
+ <label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" maxlength="8" class="text mceFocus" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,each=tinymce.each,Cookie=tinymce.util.Cookie,lastExtID,explode=tinymce.explode;tinymce.ThemeManager.requireLangPack('advanced');tinymce.create('tinymce.themes.AdvancedTheme',{controls:{bold:['bold_desc','Bold'],italic:['italic_desc','Italic'],underline:['underline_desc','Underline'],strikethrough:['striketrough_desc','Strikethrough'],justifyleft:['justifyleft_desc','JustifyLeft'],justifycenter:['justifycenter_desc','JustifyCenter'],justifyright:['justifyright_desc','JustifyRight'],justifyfull:['justifyfull_desc','JustifyFull'],bullist:['bullist_desc','InsertUnorderedList'],numlist:['numlist_desc','InsertOrderedList'],outdent:['outdent_desc','Outdent'],indent:['indent_desc','Indent'],cut:['cut_desc','Cut'],copy:['copy_desc','Copy'],paste:['paste_desc','Paste'],undo:['undo_desc','Undo'],redo:['redo_desc','Redo'],link:['link_desc','mceLink'],unlink:['unlink_desc','unlink'],image:['image_desc','mceImage'],cleanup:['cleanup_desc','mceCleanup'],help:['help_desc','mceHelp'],code:['code_desc','mceCodeEditor'],hr:['hr_desc','InsertHorizontalRule'],removeformat:['removeformat_desc','RemoveFormat'],sub:['sub_desc','subscript'],sup:['sup_desc','superscript'],forecolor:['forecolor_desc','ForeColor'],forecolorpicker:['forecolor_desc','mceForeColor'],backcolor:['backcolor_desc','HiliteColor'],backcolorpicker:['backcolor_desc','mceBackColor'],charmap:['charmap_desc','mceCharMap'],visualaid:['visualaid_desc','mceToggleVisualAid'],anchor:['anchor_desc','mceInsertAnchor'],newdocument:['newdocument_desc','mceNewDocument'],blockquote:['blockquote_desc','mceBlockQuote']},stateControls:['bold','italic','underline','strikethrough','bullist','numlist','justifyleft','justifycenter','justifyright','justifyfull','sub','sup','blockquote'],init:function(ed,url){var t=this,s,v;t.editor=ed;t.url=url;t.onResolveName=new tinymce.util.Dispatcher(this);t.settings=s=extend({theme_advanced_path:true,theme_advanced_toolbar_location:'bottom',theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,|,sub,sup,|,charmap",theme_advanced_blockformats:"p,address,pre,h1,h2,h3,h4,h5,h6",theme_advanced_toolbar_align:"center",theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",theme_advanced_font_sizes:"1,2,3,4,5,6,7",theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1},ed.settings);if((v=s.theme_advanced_path_location)&&v!='none')s.theme_advanced_statusbar_location=s.theme_advanced_path_location;if(s.theme_advanced_statusbar_location=='none')s.theme_advanced_statusbar_location=0;ed.onInit.add(function(){ed.onNodeChange.add(t._nodeChanged,t);ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/advanced/skins/"+ed.settings.skin+"/content.css"));});ed.onSetProgressState.add(function(ed,b,ti){var co,id=ed.id,tb;if(b){t.progressTimer=setTimeout(function(){co=ed.getContainer();co=co.insertBefore(DOM.create('DIV',{style:'position:relative'}),co.firstChild);tb=DOM.get(ed.id+'_tbl');DOM.add(co,'div',{id:id+'_blocker','class':'mceBlocker',style:{width:tb.clientWidth+2,height:tb.clientHeight+2}});DOM.add(co,'div',{id:id+'_progress','class':'mceProgress',style:{left:tb.clientWidth/ 2, top : tb.clientHeight /2}});},ti||0);}else{DOM.remove(id+'_blocker');DOM.remove(id+'_progress');clearTimeout(t.progressTimer);}});DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css||"themes/advanced/skins/"+ed.settings.skin+"/ui.css"));if(s.skin_variant)DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css||"themes/advanced/skins/"+ed.settings.skin+"/ui_"+s.skin_variant+".css"));},createControl:function(n,cf){var cd,c;if(c=cf.createControl(n))return c;switch(n){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu();}if((cd=this.controls[n]))return cf.createButton(n,{title:"advanced."+cd[0],cmd:cd[1],ui:cd[2],value:cd[3]});},execCommand:function(cmd,ui,val){var f=this['_'+cmd];if(f){f.call(this,ui,val);return true;}return false;},_importClasses:function(){var ed=this.editor,c=ed.controlManager.get('styleselect');if(c.getLength()==0){each(ed.dom.getClasses(),function(o){c.add(o['class'],o['class']);});}},_createStyleSelect:function(n){var t=this,ed=t.editor,cf=ed.controlManager,c=cf.createListBox('styleselect',{title:'advanced.style_select',onselect:function(v){if(c.selectedValue===v){ed.execCommand('mceSetStyleInfo',0,{command:'removeformat'});c.select();return false;}else ed.execCommand('mceSetCSSClass',0,v);}});each(ed.getParam('theme_advanced_styles','','hash'),function(v,k){if(v)c.add(t.editor.translate(k),v);});c.onPostRender.add(function(ed,n){Event.add(n,'focus',t._importClasses,t);Event.add(n,'mousedown',t._importClasses,t);});return c;},_createFontSelect:function(){var c,t=this,ed=t.editor;c=ed.controlManager.createListBox('fontselect',{title:'advanced.fontdefault',cmd:'FontName'});each(ed.getParam('theme_advanced_fonts',t.settings.theme_advanced_fonts,'hash'),function(v,k){c.add(ed.translate(k),v,{style:v.indexOf('dings')==-1?'font-family:'+v:''});});return c;},_createFontSizeSelect:function(){var c,t=this,lo=["1 (8 pt)","2 (10 pt)","3 (12 pt)","4 (14 pt)","5 (18 pt)","6 (24 pt)","7 (36 pt)"],fz=[8,10,12,14,18,24,36];c=t.editor.controlManager.createListBox('fontsizeselect',{title:'advanced.font_size',cmd:'FontSize'});each(explode(t.settings.theme_advanced_font_sizes),function(v){c.add(lo[parseInt(v)-1],v,{'style':'font-size:'+fz[v-1]+'pt','class':'mceFontSize'+v});});return c;},_createBlockFormats:function(){var c,fmts={p:'advanced.paragraph',address:'advanced.address',pre:'advanced.pre',h1:'advanced.h1',h2:'advanced.h2',h3:'advanced.h3',h4:'advanced.h4',h5:'advanced.h5',h6:'advanced.h6',div:'advanced.div',blockquote:'advanced.blockquote',code:'advanced.code',dt:'advanced.dt',dd:'advanced.dd',samp:'advanced.samp'},t=this;c=t.editor.controlManager.createListBox('formatselect',{title:'advanced.block',cmd:'FormatBlock'});each(explode(t.settings.theme_advanced_blockformats),function(v){c.add(t.editor.translate(fmts[v]),v,{'class':'mce_formatPreview mce_'+v});});return c;},_createForeColorMenu:function(){var c,t=this,s=t.settings,o={},v;if(s.theme_advanced_more_colors){o.more_colors_func=function(){t._mceColorPicker(0,{color:c.value,func:function(co){c.setColor(co);}});};}if(v=s.theme_advanced_text_colors)o.colors=v;o.title='advanced.forecolor_desc';o.cmd='ForeColor';o.scope=this;c=t.editor.controlManager.createColorSplitButton('forecolor',o);return c;},_createBackColorMenu:function(){var c,t=this,s=t.settings,o={},v;if(s.theme_advanced_more_colors){o.more_colors_func=function(){t._mceColorPicker(0,{color:c.value,func:function(co){c.setColor(co);}});};}if(v=s.theme_advanced_background_colors)o.colors=v;o.title='advanced.backcolor_desc';o.cmd='HiliteColor';o.scope=this;c=t.editor.controlManager.createColorSplitButton('backcolor',o);return c;},renderUI:function(o){var n,ic,tb,t=this,ed=t.editor,s=t.settings,sc,p,nl;n=p=DOM.create('span',{id:ed.id+'_parent','class':'mceEditor '+ed.settings.skin+'Skin'+(s.skin_variant?' '+ed.settings.skin+'Skin'+t._ufirst(s.skin_variant):'')});if(!DOM.boxModel)n=DOM.add(n,'div',{'class':'mceOldBoxModel'});n=sc=DOM.add(n,'table',{id:ed.id+'_tbl',dir:'ltr','class':'mceLayout',cellSpacing:0,cellPadding:0});n=tb=DOM.add(n,'tbody');switch((s.theme_advanced_layout_manager||'').toLowerCase()){case"rowlayout":ic=t._rowLayout(s,tb,o);break;case"customlayout":ic=ed.execCallback("theme_advanced_custom_layout",s,tb,o,p);break;default:ic=t._simpleLayout(s,tb,o,p);}n=o.targetNode;nl=DOM.stdMode?sc.getElementsByTagName('tr'):sc.rows;DOM.addClass(nl[0],'mceFirst');DOM.addClass(nl[nl.length-1],'mceLast');each(DOM.select('tr',tb),function(n){DOM.addClass(n.firstChild,'mceFirst');DOM.addClass(n.childNodes[n.childNodes.length-1],'mceLast');});if(DOM.get(s.theme_advanced_toolbar_container))DOM.get(s.theme_advanced_toolbar_container).appendChild(p);else DOM.insertAfter(p,n);Event.add(ed.id+'_path_row','click',function(e){e=e.target;if(e.nodeName=='A'){t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/,'$1'));return Event.cancel(e);}});if(!ed.getParam('accessibility_focus')||ed.getParam('tab_focus'))Event.add(DOM.add(p,'a',{href:'#'},'<!-- IE -->'),'focus',function(){tinyMCE.get(ed.id).focus();});if(s.theme_advanced_toolbar_location=='external')o.deltaHeight=0;t.deltaHeight=o.deltaHeight;o.targetNode=null;return{iframeContainer:ic,editorContainer:ed.id+'_parent',sizeContainer:sc,deltaHeight:o.deltaHeight};},getInfo:function(){return{longname:'Advanced theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}},resizeBy:function(dw,dh){var e=DOM.get(this.editor.id+'_tbl');this.resizeTo(e.clientWidth+dw,e.clientHeight+dh);},resizeTo:function(w,h){var ed=this.editor,s=ed.settings,e=DOM.get(ed.id+'_tbl'),ifr=DOM.get(ed.id+'_ifr'),dh;w=Math.max(s.theme_advanced_resizing_min_width||100,w);h=Math.max(s.theme_advanced_resizing_min_height||100,h);w=Math.min(s.theme_advanced_resizing_max_width||0xFFFF,w);h=Math.min(s.theme_advanced_resizing_max_height||0xFFFF,h);dh=e.clientHeight-ifr.clientHeight;DOM.setStyle(ifr,'height',h-dh);DOM.setStyles(e,{width:w,height:h});},_simpleLayout:function(s,tb,o,p){var t=this,ed=t.editor,lo=s.theme_advanced_toolbar_location,sl=s.theme_advanced_statusbar_location,n,ic,etb,c;if(lo=='top')t._addToolbars(tb,o);if(lo=='external'){n=c=DOM.create('div',{style:'position:relative'});n=DOM.add(n,'div',{id:ed.id+'_external','class':'mceExternalToolbar'});DOM.add(n,'a',{id:ed.id+'_external_close',href:'javascript:;','class':'mceExternalClose'});n=DOM.add(n,'table',{id:ed.id+'_tblext',cellSpacing:0,cellPadding:0});etb=DOM.add(n,'tbody');if(p.firstChild.className=='mceOldBoxModel')p.firstChild.appendChild(c);else p.insertBefore(c,p.firstChild);t._addToolbars(etb,o);ed.onMouseUp.add(function(){var e=DOM.get(ed.id+'_external');DOM.show(e);DOM.hide(lastExtID);var f=Event.add(ed.id+'_external_close','click',function(){DOM.hide(ed.id+'_external');Event.remove(ed.id+'_external_close','click',f);});DOM.show(e);DOM.setStyle(e,'top',0-DOM.getRect(ed.id+'_tblext').h-1);DOM.hide(e);DOM.show(e);e.style.filter='';lastExtID=ed.id+'_external';e=null;});}if(sl=='top')t._addStatusBar(tb,o);if(!s.theme_advanced_toolbar_container){n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});}if(lo=='bottom')t._addToolbars(tb,o);if(sl=='bottom')t._addStatusBar(tb,o);return ic;},_rowLayout:function(s,tb,o){var t=this,ed=t.editor,dc,da,cf=ed.controlManager,n,ic,to,a;dc=s.theme_advanced_containers_default_class||'';da=s.theme_advanced_containers_default_align||'center';each(explode(s.theme_advanced_containers||''),function(c,i){var v=s['theme_advanced_container_'+c]||'';switch(c.toLowerCase()){case'mceeditor':n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});break;case'mceelementpath':t._addStatusBar(tb,o);break;default:a=s['theme_advanced_container_'+c+'_align'].toLowerCase();a='mce'+t._ufirst(a);n=DOM.add(DOM.add(tb,'tr'),'td',{'class':'mceToolbar '+(s['theme_advanced_container_'+c+'_class']||dc)+' '+a||da});to=cf.createToolbar("toolbar"+i);t._addControls(v,to);DOM.setHTML(n,to.renderHTML());o.deltaHeight-=s.theme_advanced_row_height;}});return ic;},_addControls:function(v,tb){var t=this,s=t.settings,di,cf=t.editor.controlManager;if(s.theme_advanced_disable&&!t._disabled){di={};each(explode(s.theme_advanced_disable),function(v){di[v]=1;});t._disabled=di;}else di=t._disabled;each(explode(v),function(n){var c;if(di&&di[n])return;if(n=='tablecontrols'){each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"],function(n){n=t.createControl(n,cf);if(n)tb.add(n);});return;}c=t.createControl(n,cf);if(c)tb.add(c);});},_addToolbars:function(c,o){var t=this,i,tb,ed=t.editor,s=t.settings,v,cf=ed.controlManager,di,n,h=[],a;a=s.theme_advanced_toolbar_align.toLowerCase();a='mce'+t._ufirst(a);n=DOM.add(DOM.add(c,'tr'),'td',{'class':'mceToolbar '+a});if(!ed.getParam('accessibility_focus')||ed.getParam('tab_focus'))h.push(DOM.createHTML('a',{href:'#',onfocus:'tinyMCE.get(\''+ed.id+'\').focus();'},'<!-- IE -->'));h.push(DOM.createHTML('a',{href:'#',accesskey:'q',title:ed.getLang("advanced.toolbar_focus")},'<!-- IE -->'));for(i=1;(v=s['theme_advanced_buttons'+i]);i++){tb=cf.createToolbar("toolbar"+i,{'class':'mceToolbarRow'+i});if(s['theme_advanced_buttons'+i+'_add'])v+=','+s['theme_advanced_buttons'+i+'_add'];if(s['theme_advanced_buttons'+i+'_add_before'])v=s['theme_advanced_buttons'+i+'_add_before']+','+v;t._addControls(v,tb);h.push(tb.renderHTML());o.deltaHeight-=s.theme_advanced_row_height;}h.push(DOM.createHTML('a',{href:'#',accesskey:'z',title:ed.getLang("advanced.toolbar_focus"),onfocus:'tinyMCE.getInstanceById(\''+ed.id+'\').focus();'},'<!-- IE -->'));DOM.setHTML(n,h.join(''));},_addStatusBar:function(tb,o){var n,t=this,ed=t.editor,s=t.settings,r,mf,me,td;n=DOM.add(tb,'tr');n=td=DOM.add(n,'td',{'class':'mceStatusbar'});n=DOM.add(n,'div',{id:ed.id+'_path_row'},s.theme_advanced_path?ed.translate('advanced.path')+': ':' ');DOM.add(n,'a',{href:'#',accesskey:'x'});if(s.theme_advanced_resizing&&!tinymce.isOldWebKit){DOM.add(td,'a',{id:ed.id+'_resize',href:'javascript:;',onclick:"return false;",'class':'mceResize'});if(s.theme_advanced_resizing_use_cookie){ed.onPostRender.add(function(){var o=Cookie.getHash("TinyMCE_"+ed.id+"_size"),c=DOM.get(ed.id+'_tbl');if(!o)return;if(s.theme_advanced_resize_horizontal)c.style.width=o.cw+'px';c.style.height=o.ch+'px';DOM.get(ed.id+'_ifr').style.height=(parseInt(o.ch)+t.deltaHeight)+'px';});}ed.onPostRender.add(function(){Event.add(ed.id+'_resize','mousedown',function(e){var c,p,w,h,n,pa;c=DOM.get(ed.id+'_tbl');w=c.clientWidth;h=c.clientHeight;miw=s.theme_advanced_resizing_min_width||100;mih=s.theme_advanced_resizing_min_height||100;maw=s.theme_advanced_resizing_max_width||0xFFFF;mah=s.theme_advanced_resizing_max_height||0xFFFF;p=DOM.add(DOM.get(ed.id+'_parent'),'div',{'class':'mcePlaceHolder'});DOM.setStyles(p,{width:w,height:h});DOM.hide(c);DOM.show(p);r={x:e.screenX,y:e.screenY,w:w,h:h,dx:null,dy:null};mf=Event.add(document,'mousemove',function(e){var w,h;r.dx=e.screenX-r.x;r.dy=e.screenY-r.y;w=Math.max(miw,r.w+r.dx);h=Math.max(mih,r.h+r.dy);w=Math.min(maw,w);h=Math.min(mah,h);if(s.theme_advanced_resize_horizontal)p.style.width=w+'px';p.style.height=h+'px';return Event.cancel(e);});me=Event.add(document,'mouseup',function(e){var ifr;Event.remove(document,'mousemove',mf);Event.remove(document,'mouseup',me);c.style.display='';DOM.remove(p);if(r.dx===null)return;ifr=DOM.get(ed.id+'_ifr');if(s.theme_advanced_resize_horizontal)c.style.width=(r.w+r.dx)+'px';c.style.height=(r.h+r.dy)+'px';ifr.style.height=(ifr.clientHeight+r.dy)+'px';if(s.theme_advanced_resizing_use_cookie){Cookie.setHash("TinyMCE_"+ed.id+"_size",{cw:r.w+r.dx,ch:r.h+r.dy});}});return Event.cancel(e);});});}o.deltaHeight-=21;n=tb=null;},_nodeChanged:function(ed,cm,n,co){var t=this,p,de=0,v,c,s=t.settings;tinymce.each(t.stateControls,function(c){cm.setActive(c,ed.queryCommandState(t.controls[c][1]));});cm.setActive('visualaid',ed.hasVisual);cm.setDisabled('undo',!ed.undoManager.hasUndo()&&!ed.typing);cm.setDisabled('redo',!ed.undoManager.hasRedo());cm.setDisabled('outdent',!ed.queryCommandState('Outdent'));p=DOM.getParent(n,'A');if(c=cm.get('link')){if(!p||!p.name){c.setDisabled(!p&&co);c.setActive(!!p);}}if(c=cm.get('unlink')){c.setDisabled(!p&&co);c.setActive(!!p&&!p.name);}if(c=cm.get('anchor')){c.setActive(!!p&&p.name);if(tinymce.isWebKit){p=DOM.getParent(n,'IMG');c.setActive(!!p&&DOM.getAttrib(p,'mce_name')=='a');}}p=DOM.getParent(n,'IMG');if(c=cm.get('image'))c.setActive(!!p&&n.className.indexOf('mceItem')==-1);if(c=cm.get('styleselect')){if(n.className){t._importClasses();c.select(n.className);}else c.select();}if(c=cm.get('formatselect')){p=DOM.getParent(n,DOM.isBlock);if(p)c.select(p.nodeName.toLowerCase());}if(c=cm.get('fontselect'))c.select(ed.queryCommandValue('FontName'));if(c=cm.get('fontsizeselect'))c.select(ed.queryCommandValue('FontSize'));if(s.theme_advanced_path&&s.theme_advanced_statusbar_location){p=DOM.get(ed.id+'_path')||DOM.add(ed.id+'_path_row','span',{id:ed.id+'_path'});DOM.setHTML(p,'');ed.dom.getParent(n,function(n){var na=n.nodeName.toLowerCase(),u,pi,ti='';if(n.nodeType!=1||(DOM.hasClass(n,'mceItemHidden')||DOM.hasClass(n,'mceItemRemoved')))return;if(v=DOM.getAttrib(n,'mce_name'))na=v;if(tinymce.isIE&&n.scopeName!=='HTML')na=n.scopeName+':'+na;na=na.replace(/mce\:/g,'');switch(na){case'b':na='strong';break;case'i':na='em';break;case'img':if(v=DOM.getAttrib(n,'src'))ti+='src: '+v+' ';break;case'a':if(v=DOM.getAttrib(n,'name')){ti+='name: '+v+' ';na+='#'+v;}if(v=DOM.getAttrib(n,'href'))ti+='href: '+v+' ';break;case'font':if(s.convert_fonts_to_spans)na='span';if(v=DOM.getAttrib(n,'face'))ti+='font: '+v+' ';if(v=DOM.getAttrib(n,'size'))ti+='size: '+v+' ';if(v=DOM.getAttrib(n,'color'))ti+='color: '+v+' ';break;case'span':if(v=DOM.getAttrib(n,'style'))ti+='style: '+v+' ';break;}if(v=DOM.getAttrib(n,'id'))ti+='id: '+v+' ';if(v=n.className){v=v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g,'');if(v&&v.indexOf('mceItem')==-1){ti+='class: '+v+' ';if(DOM.isBlock(n)||na=='img'||na=='span')na+='.'+v;}}na=na.replace(/(html:)/g,'');na={name:na,node:n,title:ti};t.onResolveName.dispatch(t,na);ti=na.title;na=na.name;pi=DOM.create('a',{'href':"javascript:;",onmousedown:"return false;",title:ti,'class':'mcePath_'+(de++)},na);if(p.hasChildNodes()){p.insertBefore(document.createTextNode(' \u00bb '),p.firstChild);p.insertBefore(pi,p.firstChild);}else p.appendChild(pi);},ed.getBody());}},_sel:function(v){this.editor.execCommand('mceSelectNodeDepth',false,v);},_mceInsertAnchor:function(ui,v){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/anchor.htm',width:320+parseInt(ed.getLang('advanced.anchor_delta_width',0)),height:90+parseInt(ed.getLang('advanced.anchor_delta_height',0)),inline:true},{theme_url:this.url});},_mceCharMap:function(){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/charmap.htm',width:550+parseInt(ed.getLang('advanced.charmap_delta_width',0)),height:250+parseInt(ed.getLang('advanced.charmap_delta_height',0)),inline:true},{theme_url:this.url});},_mceHelp:function(){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/about.htm',width:480,height:380,inline:true},{theme_url:this.url});},_mceColorPicker:function(u,v){var ed=this.editor;v=v||{};ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/color_picker.htm',width:375+parseInt(ed.getLang('advanced.colorpicker_delta_width',0)),height:250+parseInt(ed.getLang('advanced.colorpicker_delta_height',0)),close_previous:false,inline:true},{input_color:v.color,func:v.func,theme_url:this.url});},_mceCodeEditor:function(ui,val){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/source_editor.htm',width:parseInt(ed.getParam("theme_advanced_source_editor_width",720)),height:parseInt(ed.getParam("theme_advanced_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url});},_mceImage:function(ui,val){var ed=this.editor;if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/image.htm',width:355+parseInt(ed.getLang('advanced.image_delta_width',0)),height:275+parseInt(ed.getLang('advanced.image_delta_height',0)),inline:true},{theme_url:this.url});},_mceLink:function(ui,val){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/link.htm',width:310+parseInt(ed.getLang('advanced.link_delta_width',0)),height:200+parseInt(ed.getLang('advanced.link_delta_height',0)),inline:true},{theme_url:this.url});},_mceNewDocument:function(){var ed=this.editor;ed.windowManager.confirm('advanced.newdocument',function(s){if(s)ed.execCommand('mceSetContent',false,'');});},_mceForeColor:function(){var t=this;this._mceColorPicker(0,{func:function(co){t.editor.execCommand('ForeColor',false,co);}});},_mceBackColor:function(){var t=this;this._mceColorPicker(0,{func:function(co){t.editor.execCommand('HiliteColor',false,co);}});},_ufirst:function(s){return s.substring(0,1).toUpperCase()+s.substring(1);}});tinymce.ThemeManager.add('advanced',tinymce.themes.AdvancedTheme);}());
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode;\r
+\r
+ // Tell it to load theme specific language pack(s)\r
+ tinymce.ThemeManager.requireLangPack('advanced');\r
+\r
+ tinymce.create('tinymce.themes.AdvancedTheme', {\r
+ // Control name lookup, format: title, command\r
+ controls : {\r
+ bold : ['bold_desc', 'Bold'],\r
+ italic : ['italic_desc', 'Italic'],\r
+ underline : ['underline_desc', 'Underline'],\r
+ strikethrough : ['striketrough_desc', 'Strikethrough'],\r
+ justifyleft : ['justifyleft_desc', 'JustifyLeft'],\r
+ justifycenter : ['justifycenter_desc', 'JustifyCenter'],\r
+ justifyright : ['justifyright_desc', 'JustifyRight'],\r
+ justifyfull : ['justifyfull_desc', 'JustifyFull'],\r
+ bullist : ['bullist_desc', 'InsertUnorderedList'],\r
+ numlist : ['numlist_desc', 'InsertOrderedList'],\r
+ outdent : ['outdent_desc', 'Outdent'],\r
+ indent : ['indent_desc', 'Indent'],\r
+ cut : ['cut_desc', 'Cut'],\r
+ copy : ['copy_desc', 'Copy'],\r
+ paste : ['paste_desc', 'Paste'],\r
+ undo : ['undo_desc', 'Undo'],\r
+ redo : ['redo_desc', 'Redo'],\r
+ link : ['link_desc', 'mceLink'],\r
+ unlink : ['unlink_desc', 'unlink'],\r
+ image : ['image_desc', 'mceImage'],\r
+ cleanup : ['cleanup_desc', 'mceCleanup'],\r
+ help : ['help_desc', 'mceHelp'],\r
+ code : ['code_desc', 'mceCodeEditor'],\r
+ hr : ['hr_desc', 'InsertHorizontalRule'],\r
+ removeformat : ['removeformat_desc', 'RemoveFormat'],\r
+ sub : ['sub_desc', 'subscript'],\r
+ sup : ['sup_desc', 'superscript'],\r
+ forecolor : ['forecolor_desc', 'ForeColor'],\r
+ forecolorpicker : ['forecolor_desc', 'mceForeColor'],\r
+ backcolor : ['backcolor_desc', 'HiliteColor'],\r
+ backcolorpicker : ['backcolor_desc', 'mceBackColor'],\r
+ charmap : ['charmap_desc', 'mceCharMap'],\r
+ visualaid : ['visualaid_desc', 'mceToggleVisualAid'],\r
+ anchor : ['anchor_desc', 'mceInsertAnchor'],\r
+ newdocument : ['newdocument_desc', 'mceNewDocument'],\r
+ blockquote : ['blockquote_desc', 'mceBlockQuote']\r
+ },\r
+\r
+ stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'],\r
+\r
+ init : function(ed, url) {\r
+ var t = this, s, v;\r
+ \r
+ t.editor = ed;\r
+ t.url = url;\r
+ t.onResolveName = new tinymce.util.Dispatcher(this);\r
+\r
+ // Default settings\r
+ t.settings = s = extend({\r
+ theme_advanced_path : true,\r
+ theme_advanced_toolbar_location : 'bottom',\r
+ theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",\r
+ theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",\r
+ theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap",\r
+ theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6",\r
+ theme_advanced_toolbar_align : "center",\r
+ theme_advanced_fonts : "Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",\r
+ theme_advanced_font_sizes : "1,2,3,4,5,6,7",\r
+ theme_advanced_more_colors : 1,\r
+ theme_advanced_row_height : 23,\r
+ theme_advanced_resize_horizontal : 1,\r
+ theme_advanced_resizing_use_cookie : 1\r
+ }, ed.settings);\r
+\r
+ if ((v = s.theme_advanced_path_location) && v != 'none')\r
+ s.theme_advanced_statusbar_location = s.theme_advanced_path_location;\r
+\r
+ if (s.theme_advanced_statusbar_location == 'none')\r
+ s.theme_advanced_statusbar_location = 0;\r
+\r
+ // Init editor\r
+ ed.onInit.add(function() {\r
+ ed.onNodeChange.add(t._nodeChanged, t);\r
+ ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/advanced/skins/" + ed.settings.skin + "/content.css"));\r
+ });\r
+\r
+ ed.onSetProgressState.add(function(ed, b, ti) {\r
+ var co, id = ed.id, tb;\r
+\r
+ if (b) {\r
+ t.progressTimer = setTimeout(function() {\r
+ co = ed.getContainer();\r
+ co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild);\r
+ tb = DOM.get(ed.id + '_tbl');\r
+\r
+ DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}});\r
+ DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}});\r
+ }, ti || 0);\r
+ } else {\r
+ DOM.remove(id + '_blocker');\r
+ DOM.remove(id + '_progress');\r
+ clearTimeout(t.progressTimer);\r
+ }\r
+ });\r
+\r
+ DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/advanced/skins/" + ed.settings.skin + "/ui.css"));\r
+\r
+ if (s.skin_variant)\r
+ DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/advanced/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css"));\r
+ },\r
+\r
+ createControl : function(n, cf) {\r
+ var cd, c;\r
+\r
+ if (c = cf.createControl(n))\r
+ return c;\r
+\r
+ switch (n) {\r
+ case "styleselect":\r
+ return this._createStyleSelect();\r
+\r
+ case "formatselect":\r
+ return this._createBlockFormats();\r
+\r
+ case "fontselect":\r
+ return this._createFontSelect();\r
+\r
+ case "fontsizeselect":\r
+ return this._createFontSizeSelect();\r
+\r
+ case "forecolor":\r
+ return this._createForeColorMenu();\r
+\r
+ case "backcolor":\r
+ return this._createBackColorMenu();\r
+ }\r
+\r
+ if ((cd = this.controls[n]))\r
+ return cf.createButton(n, {title : "advanced." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]});\r
+ },\r
+\r
+ execCommand : function(cmd, ui, val) {\r
+ var f = this['_' + cmd];\r
+\r
+ if (f) {\r
+ f.call(this, ui, val);\r
+ return true;\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ _importClasses : function() {\r
+ var ed = this.editor, c = ed.controlManager.get('styleselect');\r
+\r
+ if (c.getLength() == 0) {\r
+ each(ed.dom.getClasses(), function(o) {\r
+ c.add(o['class'], o['class']);\r
+ });\r
+ }\r
+ },\r
+\r
+ _createStyleSelect : function(n) {\r
+ var t = this, ed = t.editor, cf = ed.controlManager, c = cf.createListBox('styleselect', {\r
+ title : 'advanced.style_select',\r
+ onselect : function(v) {\r
+ if (c.selectedValue === v) {\r
+ ed.execCommand('mceSetStyleInfo', 0, {command : 'removeformat'});\r
+ c.select();\r
+ return false;\r
+ } else\r
+ ed.execCommand('mceSetCSSClass', 0, v);\r
+ }\r
+ });\r
+\r
+ each(ed.getParam('theme_advanced_styles', '', 'hash'), function(v, k) {\r
+ if (v)\r
+ c.add(t.editor.translate(k), v);\r
+ });\r
+\r
+ c.onPostRender.add(function(ed, n) {\r
+ Event.add(n, 'focus', t._importClasses, t);\r
+ Event.add(n, 'mousedown', t._importClasses, t);\r
+ });\r
+\r
+ return c;\r
+ },\r
+\r
+ _createFontSelect : function() {\r
+ var c, t = this, ed = t.editor;\r
+\r
+ c = ed.controlManager.createListBox('fontselect', {title : 'advanced.fontdefault', cmd : 'FontName'});\r
+\r
+ each(ed.getParam('theme_advanced_fonts', t.settings.theme_advanced_fonts, 'hash'), function(v, k) {\r
+ c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''});\r
+ });\r
+\r
+ return c;\r
+ },\r
+\r
+ _createFontSizeSelect : function() {\r
+ var c, t = this, lo = [\r
+ "1 (8 pt)",\r
+ "2 (10 pt)",\r
+ "3 (12 pt)",\r
+ "4 (14 pt)",\r
+ "5 (18 pt)",\r
+ "6 (24 pt)",\r
+ "7 (36 pt)"\r
+ ], fz = [8, 10, 12, 14, 18, 24, 36];\r
+\r
+ c = t.editor.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', cmd : 'FontSize'});\r
+\r
+ each(explode(t.settings.theme_advanced_font_sizes), function(v) {\r
+ c.add(lo[parseInt(v) - 1], v, {'style' : 'font-size:' + fz[v - 1] + 'pt', 'class' : 'mceFontSize' + v});\r
+ });\r
+\r
+ return c;\r
+ },\r
+\r
+ _createBlockFormats : function() {\r
+ var c, fmts = {\r
+ p : 'advanced.paragraph',\r
+ address : 'advanced.address',\r
+ pre : 'advanced.pre',\r
+ h1 : 'advanced.h1',\r
+ h2 : 'advanced.h2',\r
+ h3 : 'advanced.h3',\r
+ h4 : 'advanced.h4',\r
+ h5 : 'advanced.h5',\r
+ h6 : 'advanced.h6',\r
+ div : 'advanced.div',\r
+ blockquote : 'advanced.blockquote',\r
+ code : 'advanced.code',\r
+ dt : 'advanced.dt',\r
+ dd : 'advanced.dd',\r
+ samp : 'advanced.samp'\r
+ }, t = this;\r
+\r
+ c = t.editor.controlManager.createListBox('formatselect', {title : 'advanced.block', cmd : 'FormatBlock'});\r
+\r
+ each(explode(t.settings.theme_advanced_blockformats), function(v) {\r
+ c.add(t.editor.translate(fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v});\r
+ });\r
+\r
+ return c;\r
+ },\r
+\r
+ _createForeColorMenu : function() {\r
+ var c, t = this, s = t.settings, o = {}, v;\r
+\r
+ if (s.theme_advanced_more_colors) {\r
+ o.more_colors_func = function() {\r
+ t._mceColorPicker(0, {\r
+ color : c.value,\r
+ func : function(co) {\r
+ c.setColor(co);\r
+ }\r
+ });\r
+ };\r
+ }\r
+\r
+ if (v = s.theme_advanced_text_colors)\r
+ o.colors = v;\r
+\r
+ o.title = 'advanced.forecolor_desc';\r
+ o.cmd = 'ForeColor';\r
+ o.scope = this;\r
+\r
+ c = t.editor.controlManager.createColorSplitButton('forecolor', o);\r
+\r
+ return c;\r
+ },\r
+\r
+ _createBackColorMenu : function() {\r
+ var c, t = this, s = t.settings, o = {}, v;\r
+\r
+ if (s.theme_advanced_more_colors) {\r
+ o.more_colors_func = function() {\r
+ t._mceColorPicker(0, {\r
+ color : c.value,\r
+ func : function(co) {\r
+ c.setColor(co);\r
+ }\r
+ });\r
+ };\r
+ }\r
+\r
+ if (v = s.theme_advanced_background_colors)\r
+ o.colors = v;\r
+\r
+ o.title = 'advanced.backcolor_desc';\r
+ o.cmd = 'HiliteColor';\r
+ o.scope = this;\r
+\r
+ c = t.editor.controlManager.createColorSplitButton('backcolor', o);\r
+\r
+ return c;\r
+ },\r
+\r
+ renderUI : function(o) {\r
+ var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl;\r
+\r
+ n = p = DOM.create('span', {id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')});\r
+\r
+ if (!DOM.boxModel)\r
+ n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'});\r
+\r
+ n = sc = DOM.add(n, 'table', {id : ed.id + '_tbl', dir : 'ltr', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0});\r
+ n = tb = DOM.add(n, 'tbody');\r
+\r
+ switch ((s.theme_advanced_layout_manager || '').toLowerCase()) {\r
+ case "rowlayout":\r
+ ic = t._rowLayout(s, tb, o);\r
+ break;\r
+\r
+ case "customlayout":\r
+ ic = ed.execCallback("theme_advanced_custom_layout", s, tb, o, p);\r
+ break;\r
+\r
+ default:\r
+ ic = t._simpleLayout(s, tb, o, p);\r
+ }\r
+\r
+ n = o.targetNode;\r
+\r
+ // Add classes to first and last TRs\r
+ nl = DOM.stdMode ? sc.getElementsByTagName('tr') : sc.rows; // Quick fix for IE 8\r
+ DOM.addClass(nl[0], 'mceFirst');\r
+ DOM.addClass(nl[nl.length - 1], 'mceLast');\r
+\r
+ // Add classes to first and last TDs\r
+ each(DOM.select('tr', tb), function(n) {\r
+ DOM.addClass(n.firstChild, 'mceFirst');\r
+ DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast');\r
+ });\r
+\r
+ if (DOM.get(s.theme_advanced_toolbar_container))\r
+ DOM.get(s.theme_advanced_toolbar_container).appendChild(p);\r
+ else\r
+ DOM.insertAfter(p, n);\r
+\r
+ Event.add(ed.id + '_path_row', 'click', function(e) {\r
+ e = e.target;\r
+\r
+ if (e.nodeName == 'A') {\r
+ t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1'));\r
+\r
+ return Event.cancel(e);\r
+ }\r
+ });\r
+/*\r
+ if (DOM.get(ed.id + '_path_row')) {\r
+ Event.add(ed.id + '_tbl', 'mouseover', function(e) {\r
+ var re;\r
+ \r
+ e = e.target;\r
+\r
+ if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) {\r
+ re = DOM.get(ed.id + '_path_row');\r
+ t.lastPath = re.innerHTML;\r
+ DOM.setHTML(re, e.parentNode.title);\r
+ }\r
+ });\r
+\r
+ Event.add(ed.id + '_tbl', 'mouseout', function(e) {\r
+ if (t.lastPath) {\r
+ DOM.setHTML(ed.id + '_path_row', t.lastPath);\r
+ t.lastPath = 0;\r
+ }\r
+ });\r
+ }\r
+*/\r
+\r
+ if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))\r
+ Event.add(DOM.add(p, 'a', {href : '#'}, '<!-- IE -->'), 'focus', function() {tinyMCE.get(ed.id).focus();});\r
+\r
+ if (s.theme_advanced_toolbar_location == 'external')\r
+ o.deltaHeight = 0;\r
+\r
+ t.deltaHeight = o.deltaHeight;\r
+ o.targetNode = null;\r
+\r
+ return {\r
+ iframeContainer : ic,\r
+ editorContainer : ed.id + '_parent',\r
+ sizeContainer : sc,\r
+ deltaHeight : o.deltaHeight\r
+ };\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Advanced theme',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ }\r
+ },\r
+\r
+ resizeBy : function(dw, dh) {\r
+ var e = DOM.get(this.editor.id + '_tbl');\r
+\r
+ this.resizeTo(e.clientWidth + dw, e.clientHeight + dh);\r
+ },\r
+\r
+ resizeTo : function(w, h) {\r
+ var ed = this.editor, s = ed.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr'), dh;\r
+\r
+ // Boundery fix box\r
+ w = Math.max(s.theme_advanced_resizing_min_width || 100, w);\r
+ h = Math.max(s.theme_advanced_resizing_min_height || 100, h);\r
+ w = Math.min(s.theme_advanced_resizing_max_width || 0xFFFF, w);\r
+ h = Math.min(s.theme_advanced_resizing_max_height || 0xFFFF, h);\r
+\r
+ // Calc difference between iframe and container\r
+ dh = e.clientHeight - ifr.clientHeight;\r
+\r
+ // Resize iframe and container\r
+ DOM.setStyle(ifr, 'height', h - dh);\r
+ DOM.setStyles(e, {width : w, height : h});\r
+ },\r
+\r
+ // Internal functions\r
+\r
+ _simpleLayout : function(s, tb, o, p) {\r
+ var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c;\r
+\r
+ // Create toolbar container at top\r
+ if (lo == 'top')\r
+ t._addToolbars(tb, o);\r
+\r
+ // Create external toolbar\r
+ if (lo == 'external') {\r
+ n = c = DOM.create('div', {style : 'position:relative'});\r
+ n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'});\r
+ DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'});\r
+ n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0});\r
+ etb = DOM.add(n, 'tbody');\r
+\r
+ if (p.firstChild.className == 'mceOldBoxModel')\r
+ p.firstChild.appendChild(c);\r
+ else\r
+ p.insertBefore(c, p.firstChild);\r
+\r
+ t._addToolbars(etb, o);\r
+\r
+ ed.onMouseUp.add(function() {\r
+ var e = DOM.get(ed.id + '_external');\r
+ DOM.show(e);\r
+\r
+ DOM.hide(lastExtID);\r
+\r
+ var f = Event.add(ed.id + '_external_close', 'click', function() {\r
+ DOM.hide(ed.id + '_external');\r
+ Event.remove(ed.id + '_external_close', 'click', f);\r
+ });\r
+\r
+ DOM.show(e);\r
+ DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1);\r
+\r
+ // Fixes IE rendering bug\r
+ DOM.hide(e);\r
+ DOM.show(e);\r
+ e.style.filter = '';\r
+\r
+ lastExtID = ed.id + '_external';\r
+\r
+ e = null;\r
+ });\r
+ }\r
+\r
+ if (sl == 'top')\r
+ t._addStatusBar(tb, o);\r
+\r
+ // Create iframe container\r
+ if (!s.theme_advanced_toolbar_container) {\r
+ n = DOM.add(tb, 'tr');\r
+ n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
+ }\r
+\r
+ // Create toolbar container at bottom\r
+ if (lo == 'bottom')\r
+ t._addToolbars(tb, o);\r
+\r
+ if (sl == 'bottom')\r
+ t._addStatusBar(tb, o);\r
+\r
+ return ic;\r
+ },\r
+\r
+ _rowLayout : function(s, tb, o) {\r
+ var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a;\r
+\r
+ dc = s.theme_advanced_containers_default_class || '';\r
+ da = s.theme_advanced_containers_default_align || 'center';\r
+\r
+ each(explode(s.theme_advanced_containers || ''), function(c, i) {\r
+ var v = s['theme_advanced_container_' + c] || '';\r
+\r
+ switch (c.toLowerCase()) {\r
+ case 'mceeditor':\r
+ n = DOM.add(tb, 'tr');\r
+ n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
+ break;\r
+\r
+ case 'mceelementpath':\r
+ t._addStatusBar(tb, o);\r
+ break;\r
+\r
+ default:\r
+ a = s['theme_advanced_container_' + c + '_align'].toLowerCase();\r
+ a = 'mce' + t._ufirst(a);\r
+\r
+ n = DOM.add(DOM.add(tb, 'tr'), 'td', {\r
+ 'class' : 'mceToolbar ' + (s['theme_advanced_container_' + c + '_class'] || dc) + ' ' + a || da\r
+ });\r
+\r
+ to = cf.createToolbar("toolbar" + i);\r
+ t._addControls(v, to);\r
+ DOM.setHTML(n, to.renderHTML());\r
+ o.deltaHeight -= s.theme_advanced_row_height;\r
+ }\r
+ });\r
+\r
+ return ic;\r
+ },\r
+\r
+ _addControls : function(v, tb) {\r
+ var t = this, s = t.settings, di, cf = t.editor.controlManager;\r
+\r
+ if (s.theme_advanced_disable && !t._disabled) {\r
+ di = {};\r
+\r
+ each(explode(s.theme_advanced_disable), function(v) {\r
+ di[v] = 1;\r
+ });\r
+\r
+ t._disabled = di;\r
+ } else\r
+ di = t._disabled;\r
+\r
+ each(explode(v), function(n) {\r
+ var c;\r
+\r
+ if (di && di[n])\r
+ return;\r
+\r
+ // Compatiblity with 2.x\r
+ if (n == 'tablecontrols') {\r
+ each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) {\r
+ n = t.createControl(n, cf);\r
+\r
+ if (n)\r
+ tb.add(n);\r
+ });\r
+\r
+ return;\r
+ }\r
+\r
+ c = t.createControl(n, cf);\r
+\r
+ if (c)\r
+ tb.add(c);\r
+ });\r
+ },\r
+\r
+ _addToolbars : function(c, o) {\r
+ var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a;\r
+\r
+ a = s.theme_advanced_toolbar_align.toLowerCase();\r
+ a = 'mce' + t._ufirst(a);\r
+\r
+ n = DOM.add(DOM.add(c, 'tr'), 'td', {'class' : 'mceToolbar ' + a});\r
+\r
+ if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))\r
+ h.push(DOM.createHTML('a', {href : '#', onfocus : 'tinyMCE.get(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));\r
+\r
+ h.push(DOM.createHTML('a', {href : '#', accesskey : 'q', title : ed.getLang("advanced.toolbar_focus")}, '<!-- IE -->'));\r
+\r
+ // Create toolbar and add the controls\r
+ for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {\r
+ tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i});\r
+\r
+ if (s['theme_advanced_buttons' + i + '_add'])\r
+ v += ',' + s['theme_advanced_buttons' + i + '_add'];\r
+\r
+ if (s['theme_advanced_buttons' + i + '_add_before'])\r
+ v = s['theme_advanced_buttons' + i + '_add_before'] + ',' + v;\r
+\r
+ t._addControls(v, tb);\r
+\r
+ //n.appendChild(n = tb.render());\r
+ h.push(tb.renderHTML());\r
+\r
+ o.deltaHeight -= s.theme_advanced_row_height;\r
+ }\r
+\r
+ h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));\r
+ DOM.setHTML(n, h.join(''));\r
+ },\r
+\r
+ _addStatusBar : function(tb, o) {\r
+ var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td;\r
+\r
+ n = DOM.add(tb, 'tr');\r
+ n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'});\r
+ n = DOM.add(n, 'div', {id : ed.id + '_path_row'}, s.theme_advanced_path ? ed.translate('advanced.path') + ': ' : ' ');\r
+ DOM.add(n, 'a', {href : '#', accesskey : 'x'});\r
+\r
+ if (s.theme_advanced_resizing && !tinymce.isOldWebKit) {\r
+ DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize'});\r
+\r
+ if (s.theme_advanced_resizing_use_cookie) {\r
+ ed.onPostRender.add(function() {\r
+ var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl');\r
+\r
+ if (!o)\r
+ return;\r
+\r
+ if (s.theme_advanced_resize_horizontal)\r
+ c.style.width = o.cw + 'px';\r
+\r
+ c.style.height = o.ch + 'px';\r
+ DOM.get(ed.id + '_ifr').style.height = (parseInt(o.ch) + t.deltaHeight) + 'px';\r
+ });\r
+ }\r
+\r
+ ed.onPostRender.add(function() {\r
+ Event.add(ed.id + '_resize', 'mousedown', function(e) {\r
+ var c, p, w, h, n, pa;\r
+\r
+ // Measure container\r
+ c = DOM.get(ed.id + '_tbl');\r
+ w = c.clientWidth;\r
+ h = c.clientHeight;\r
+\r
+ miw = s.theme_advanced_resizing_min_width || 100;\r
+ mih = s.theme_advanced_resizing_min_height || 100;\r
+ maw = s.theme_advanced_resizing_max_width || 0xFFFF;\r
+ mah = s.theme_advanced_resizing_max_height || 0xFFFF;\r
+\r
+ // Setup placeholder\r
+ p = DOM.add(DOM.get(ed.id + '_parent'), 'div', {'class' : 'mcePlaceHolder'});\r
+ DOM.setStyles(p, {width : w, height : h});\r
+\r
+ // Replace with placeholder\r
+ DOM.hide(c);\r
+ DOM.show(p);\r
+\r
+ // Create internal resize obj\r
+ r = {\r
+ x : e.screenX,\r
+ y : e.screenY,\r
+ w : w,\r
+ h : h,\r
+ dx : null,\r
+ dy : null\r
+ };\r
+\r
+ // Start listening\r
+ mf = Event.add(document, 'mousemove', function(e) {\r
+ var w, h;\r
+\r
+ // Calc delta values\r
+ r.dx = e.screenX - r.x;\r
+ r.dy = e.screenY - r.y;\r
+\r
+ // Boundery fix box\r
+ w = Math.max(miw, r.w + r.dx);\r
+ h = Math.max(mih, r.h + r.dy);\r
+ w = Math.min(maw, w);\r
+ h = Math.min(mah, h);\r
+\r
+ // Resize placeholder\r
+ if (s.theme_advanced_resize_horizontal)\r
+ p.style.width = w + 'px';\r
+\r
+ p.style.height = h + 'px';\r
+\r
+ return Event.cancel(e);\r
+ });\r
+\r
+ me = Event.add(document, 'mouseup', function(e) {\r
+ var ifr;\r
+\r
+ // Stop listening\r
+ Event.remove(document, 'mousemove', mf);\r
+ Event.remove(document, 'mouseup', me);\r
+\r
+ c.style.display = '';\r
+ DOM.remove(p);\r
+\r
+ if (r.dx === null)\r
+ return;\r
+\r
+ ifr = DOM.get(ed.id + '_ifr');\r
+\r
+ if (s.theme_advanced_resize_horizontal)\r
+ c.style.width = (r.w + r.dx) + 'px';\r
+\r
+ c.style.height = (r.h + r.dy) + 'px';\r
+ ifr.style.height = (ifr.clientHeight + r.dy) + 'px';\r
+\r
+ if (s.theme_advanced_resizing_use_cookie) {\r
+ Cookie.setHash("TinyMCE_" + ed.id + "_size", {\r
+ cw : r.w + r.dx,\r
+ ch : r.h + r.dy\r
+ });\r
+ }\r
+ });\r
+\r
+ return Event.cancel(e);\r
+ });\r
+ });\r
+ }\r
+\r
+ o.deltaHeight -= 21;\r
+ n = tb = null;\r
+ },\r
+\r
+ _nodeChanged : function(ed, cm, n, co) {\r
+ var t = this, p, de = 0, v, c, s = t.settings;\r
+\r
+ tinymce.each(t.stateControls, function(c) {\r
+ cm.setActive(c, ed.queryCommandState(t.controls[c][1]));\r
+ });\r
+\r
+ cm.setActive('visualaid', ed.hasVisual);\r
+ cm.setDisabled('undo', !ed.undoManager.hasUndo() && !ed.typing);\r
+ cm.setDisabled('redo', !ed.undoManager.hasRedo());\r
+ cm.setDisabled('outdent', !ed.queryCommandState('Outdent'));\r
+\r
+ p = DOM.getParent(n, 'A');\r
+ if (c = cm.get('link')) {\r
+ if (!p || !p.name) {\r
+ c.setDisabled(!p && co);\r
+ c.setActive(!!p);\r
+ }\r
+ }\r
+\r
+ if (c = cm.get('unlink')) {\r
+ c.setDisabled(!p && co);\r
+ c.setActive(!!p && !p.name);\r
+ }\r
+\r
+ if (c = cm.get('anchor')) {\r
+ c.setActive(!!p && p.name);\r
+\r
+ if (tinymce.isWebKit) {\r
+ p = DOM.getParent(n, 'IMG');\r
+ c.setActive(!!p && DOM.getAttrib(p, 'mce_name') == 'a');\r
+ }\r
+ }\r
+\r
+ p = DOM.getParent(n, 'IMG');\r
+ if (c = cm.get('image'))\r
+ c.setActive(!!p && n.className.indexOf('mceItem') == -1);\r
+\r
+ if (c = cm.get('styleselect')) {\r
+ if (n.className) {\r
+ t._importClasses();\r
+ c.select(n.className);\r
+ } else\r
+ c.select();\r
+ }\r
+\r
+ if (c = cm.get('formatselect')) {\r
+ p = DOM.getParent(n, DOM.isBlock);\r
+\r
+ if (p)\r
+ c.select(p.nodeName.toLowerCase());\r
+ }\r
+\r
+ if (c = cm.get('fontselect'))\r
+ c.select(ed.queryCommandValue('FontName'));\r
+\r
+ if (c = cm.get('fontsizeselect'))\r
+ c.select(ed.queryCommandValue('FontSize'));\r
+\r
+ if (s.theme_advanced_path && s.theme_advanced_statusbar_location) {\r
+ p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'});\r
+ DOM.setHTML(p, '');\r
+\r
+ ed.dom.getParent(n, function(n) {\r
+ var na = n.nodeName.toLowerCase(), u, pi, ti = '';\r
+\r
+ // Ignore non element and hidden elements\r
+ if (n.nodeType != 1 || (DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved')))\r
+ return;\r
+\r
+ // Fake name\r
+ if (v = DOM.getAttrib(n, 'mce_name'))\r
+ na = v;\r
+ \r
+ // Handle prefix\r
+ if (tinymce.isIE && n.scopeName !== 'HTML')\r
+ na = n.scopeName + ':' + na;\r
+\r
+ // Remove internal prefix\r
+ na = na.replace(/mce\:/g, '');\r
+\r
+ // Handle node name\r
+ switch (na) {\r
+ case 'b':\r
+ na = 'strong';\r
+ break;\r
+\r
+ case 'i':\r
+ na = 'em';\r
+ break;\r
+\r
+ case 'img':\r
+ if (v = DOM.getAttrib(n, 'src'))\r
+ ti += 'src: ' + v + ' ';\r
+\r
+ break;\r
+\r
+ case 'a':\r
+ if (v = DOM.getAttrib(n, 'name')) {\r
+ ti += 'name: ' + v + ' ';\r
+ na += '#' + v;\r
+ }\r
+\r
+ if (v = DOM.getAttrib(n, 'href'))\r
+ ti += 'href: ' + v + ' ';\r
+\r
+ break;\r
+\r
+ case 'font':\r
+ if (s.convert_fonts_to_spans)\r
+ na = 'span';\r
+\r
+ if (v = DOM.getAttrib(n, 'face'))\r
+ ti += 'font: ' + v + ' ';\r
+\r
+ if (v = DOM.getAttrib(n, 'size'))\r
+ ti += 'size: ' + v + ' ';\r
+\r
+ if (v = DOM.getAttrib(n, 'color'))\r
+ ti += 'color: ' + v + ' ';\r
+\r
+ break;\r
+\r
+ case 'span':\r
+ if (v = DOM.getAttrib(n, 'style'))\r
+ ti += 'style: ' + v + ' ';\r
+\r
+ break;\r
+ }\r
+\r
+ if (v = DOM.getAttrib(n, 'id'))\r
+ ti += 'id: ' + v + ' ';\r
+\r
+ if (v = n.className) {\r
+ v = v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g, '');\r
+\r
+ if (v && v.indexOf('mceItem') == -1) {\r
+ ti += 'class: ' + v + ' ';\r
+\r
+ if (DOM.isBlock(n) || na == 'img' || na == 'span')\r
+ na += '.' + v;\r
+ }\r
+ }\r
+\r
+ na = na.replace(/(html:)/g, '');\r
+ na = {name : na, node : n, title : ti};\r
+ t.onResolveName.dispatch(t, na);\r
+ ti = na.title;\r
+ na = na.name;\r
+\r
+ //u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');";\r
+ pi = DOM.create('a', {'href' : "javascript:;", onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na);\r
+\r
+ if (p.hasChildNodes()) {\r
+ p.insertBefore(document.createTextNode(' \u00bb '), p.firstChild);\r
+ p.insertBefore(pi, p.firstChild);\r
+ } else\r
+ p.appendChild(pi);\r
+ }, ed.getBody());\r
+ }\r
+ },\r
+\r
+ // Commands gets called by execCommand\r
+\r
+ _sel : function(v) {\r
+ this.editor.execCommand('mceSelectNodeDepth', false, v);\r
+ },\r
+\r
+ _mceInsertAnchor : function(ui, v) {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/advanced/anchor.htm',\r
+ width : 320 + parseInt(ed.getLang('advanced.anchor_delta_width', 0)),\r
+ height : 90 + parseInt(ed.getLang('advanced.anchor_delta_height', 0)),\r
+ inline : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceCharMap : function() {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/advanced/charmap.htm',\r
+ width : 550 + parseInt(ed.getLang('advanced.charmap_delta_width', 0)),\r
+ height : 250 + parseInt(ed.getLang('advanced.charmap_delta_height', 0)),\r
+ inline : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceHelp : function() {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/advanced/about.htm',\r
+ width : 480,\r
+ height : 380,\r
+ inline : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceColorPicker : function(u, v) {\r
+ var ed = this.editor;\r
+\r
+ v = v || {};\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/advanced/color_picker.htm',\r
+ width : 375 + parseInt(ed.getLang('advanced.colorpicker_delta_width', 0)),\r
+ height : 250 + parseInt(ed.getLang('advanced.colorpicker_delta_height', 0)),\r
+ close_previous : false,\r
+ inline : true\r
+ }, {\r
+ input_color : v.color,\r
+ func : v.func,\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceCodeEditor : function(ui, val) {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/advanced/source_editor.htm',\r
+ width : parseInt(ed.getParam("theme_advanced_source_editor_width", 720)),\r
+ height : parseInt(ed.getParam("theme_advanced_source_editor_height", 580)),\r
+ inline : true,\r
+ resizable : true,\r
+ maximizable : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceImage : function(ui, val) {\r
+ var ed = this.editor;\r
+\r
+ // Internal image object like a flash placeholder\r
+ if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)\r
+ return;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/advanced/image.htm',\r
+ width : 355 + parseInt(ed.getLang('advanced.image_delta_width', 0)),\r
+ height : 275 + parseInt(ed.getLang('advanced.image_delta_height', 0)),\r
+ inline : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceLink : function(ui, val) {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/advanced/link.htm',\r
+ width : 310 + parseInt(ed.getLang('advanced.link_delta_width', 0)),\r
+ height : 200 + parseInt(ed.getLang('advanced.link_delta_height', 0)),\r
+ inline : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceNewDocument : function() {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.confirm('advanced.newdocument', function(s) {\r
+ if (s)\r
+ ed.execCommand('mceSetContent', false, '');\r
+ });\r
+ },\r
+\r
+ _mceForeColor : function() {\r
+ var t = this;\r
+\r
+ this._mceColorPicker(0, {\r
+ func : function(co) {\r
+ t.editor.execCommand('ForeColor', false, co);\r
+ }\r
+ });\r
+ },\r
+\r
+ _mceBackColor : function() {\r
+ var t = this;\r
+\r
+ this._mceColorPicker(0, {\r
+ func : function(co) {\r
+ t.editor.execCommand('HiliteColor', false, co);\r
+ }\r
+ });\r
+ },\r
+\r
+ _ufirst : function(s) {\r
+ return s.substring(0, 1).toUpperCase() + s.substring(1);\r
+ }\r
+ });\r
+\r
+ tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme);\r
+}());
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#advanced_dlg.image_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="js/image.js"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body id="image" style="display: none">\r
+<form onsubmit="ImageDialog.update();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.image_title}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="src">{#advanced_dlg.image_src}</label></td>\r
+ <td><table border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td><input id="src" name="src" type="text" class="mceFocus" value="" style="width: 200px" onchange="ImageDialog.getImageData();" /></td>\r
+ <td id="srcbrowsercontainer"> </td>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="image_list">{#advanced_dlg.image_list}</label></td>\r
+ <td><select id="image_list" name="image_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;"></select></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="alt">{#advanced_dlg.image_alt}</label></td>\r
+ <td><input id="alt" name="alt" type="text" value="" style="width: 200px" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="align">{#advanced_dlg.image_align}</label></td>\r
+ <td><select id="align" name="align" onchange="ImageDialog.updateStyle();">\r
+ <option value="">{#not_set}</option>\r
+ <option value="baseline">{#advanced_dlg.image_align_baseline}</option>\r
+ <option value="top">{#advanced_dlg.image_align_top}</option>\r
+ <option value="middle">{#advanced_dlg.image_align_middle}</option>\r
+ <option value="bottom">{#advanced_dlg.image_align_bottom}</option>\r
+ <option value="text-top">{#advanced_dlg.image_align_texttop}</option>\r
+ <option value="text-bottom">{#advanced_dlg.image_align_textbottom}</option>\r
+ <option value="left">{#advanced_dlg.image_align_left}</option>\r
+ <option value="right">{#advanced_dlg.image_align_right}</option>\r
+ </select></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="width">{#advanced_dlg.image_dimensions}</label></td>\r
+ <td><input id="width" name="width" type="text" value="" size="3" maxlength="5" />\r
+ x\r
+ <input id="height" name="height" type="text" value="" size="3" maxlength="5" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="border">{#advanced_dlg.image_border}</label></td>\r
+ <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="vspace">{#advanced_dlg.image_vspace}</label></td>\r
+ <td><input id="vspace" name="vspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="hspace">{#advanced_dlg.image_hspace}</label></td>\r
+ <td><input id="hspace" name="hspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+function init() {\r
+ var ed, tcont;\r
+\r
+ tinyMCEPopup.resizeToInnerSize();\r
+ ed = tinyMCEPopup.editor;\r
+\r
+ // Give FF some time\r
+ window.setTimeout('insertHelpIFrame();', 10);\r
+\r
+ tcont = document.getElementById('plugintablecontainer');\r
+ document.getElementById('plugins_tab').style.display = 'none';\r
+\r
+ var html = "";\r
+ html += '<table id="plugintable">';\r
+ html += '<thead>';\r
+ html += '<tr>';\r
+ html += '<td>' + ed.getLang('advanced_dlg.about_plugin') + '</td>';\r
+ html += '<td>' + ed.getLang('advanced_dlg.about_author') + '</td>';\r
+ html += '<td>' + ed.getLang('advanced_dlg.about_version') + '</td>';\r
+ html += '</tr>';\r
+ html += '</thead>';\r
+ html += '<tbody>';\r
+\r
+ tinymce.each(ed.plugins, function(p, n) {\r
+ var info;\r
+\r
+ if (!p.getInfo)\r
+ return;\r
+\r
+ html += '<tr>';\r
+\r
+ info = p.getInfo();\r
+\r
+ if (info.infourl != null && info.infourl != '')\r
+ html += '<td width="50%" title="' + n + '"><a href="' + info.infourl + '" target="_blank">' + info.longname + '</a></td>';\r
+ else\r
+ html += '<td width="50%" title="' + n + '">' + info.longname + '</td>';\r
+\r
+ if (info.authorurl != null && info.authorurl != '')\r
+ html += '<td width="35%"><a href="' + info.authorurl + '" target="_blank">' + info.author + '</a></td>';\r
+ else\r
+ html += '<td width="35%">' + info.author + '</td>';\r
+\r
+ html += '<td width="15%">' + info.version + '</td>';\r
+ html += '</tr>';\r
+\r
+ document.getElementById('plugins_tab').style.display = '';\r
+\r
+ });\r
+\r
+ html += '</tbody>';\r
+ html += '</table>';\r
+\r
+ tcont.innerHTML = html;\r
+\r
+ tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion;\r
+ tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate;\r
+}\r
+\r
+function insertHelpIFrame() {\r
+ var html;\r
+\r
+ if (tinyMCEPopup.getParam('docs_url')) {\r
+ html = '<iframe width="100%" height="300" src="' + tinyMCEPopup.editor.baseURI.toAbsolute(tinyMCEPopup.getParam('docs_url')) + '"></iframe>';\r
+ document.getElementById('iframecontainer').innerHTML = html;\r
+ document.getElementById('help_tab').style.display = 'block';\r
+ }\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var AnchorDialog = {\r
+ init : function(ed) {\r
+ var action, elm, f = document.forms[0];\r
+\r
+ this.editor = ed;\r
+ elm = ed.dom.getParent(ed.selection.getNode(), 'A,IMG');\r
+ v = ed.dom.getAttrib(elm, 'name');\r
+\r
+ if (v)\r
+ f.anchorName.value = v;\r
+\r
+ f.insert.value = ed.getLang(elm ? 'update' : 'insert');\r
+ },\r
+\r
+ update : function() {\r
+ var ed = this.editor;\r
+ \r
+ tinyMCEPopup.restoreSelection();\r
+ ed.selection.collapse(1);\r
+\r
+ // Webkit acts weird if empty inline element is inserted so we need to use a image instead\r
+ if (tinymce.isWebKit)\r
+ ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('img', {mce_name : 'a', name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}));\r
+ else\r
+ ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}, ''));\r
+\r
+ tinyMCEPopup.close();\r
+ }\r
+};\r
+\r
+tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var charmap = [\r
+ [' ', ' ', true, 'no-break space'],\r
+ ['&', '&', true, 'ampersand'],\r
+ ['"', '"', true, 'quotation mark'],\r
+// finance\r
+ ['¢', '¢', true, 'cent sign'],\r
+ ['€', '€', true, 'euro sign'],\r
+ ['£', '£', true, 'pound sign'],\r
+ ['¥', '¥', true, 'yen sign'],\r
+// signs\r
+ ['©', '©', true, 'copyright sign'],\r
+ ['®', '®', true, 'registered sign'],\r
+ ['™', '™', true, 'trade mark sign'],\r
+ ['‰', '‰', true, 'per mille sign'],\r
+ ['µ', 'µ', true, 'micro sign'],\r
+ ['·', '·', true, 'middle dot'],\r
+ ['•', '•', true, 'bullet'],\r
+ ['…', '…', true, 'three dot leader'],\r
+ ['′', '′', true, 'minutes / feet'],\r
+ ['″', '″', true, 'seconds / inches'],\r
+ ['§', '§', true, 'section sign'],\r
+ ['¶', '¶', true, 'paragraph sign'],\r
+ ['ß', 'ß', true, 'sharp s / ess-zed'],\r
+// quotations\r
+ ['‹', '‹', true, 'single left-pointing angle quotation mark'],\r
+ ['›', '›', true, 'single right-pointing angle quotation mark'],\r
+ ['«', '«', true, 'left pointing guillemet'],\r
+ ['»', '»', true, 'right pointing guillemet'],\r
+ ['‘', '‘', true, 'left single quotation mark'],\r
+ ['’', '’', true, 'right single quotation mark'],\r
+ ['“', '“', true, 'left double quotation mark'],\r
+ ['”', '”', true, 'right double quotation mark'],\r
+ ['‚', '‚', true, 'single low-9 quotation mark'],\r
+ ['„', '„', true, 'double low-9 quotation mark'],\r
+ ['<', '<', true, 'less-than sign'],\r
+ ['>', '>', true, 'greater-than sign'],\r
+ ['≤', '≤', true, 'less-than or equal to'],\r
+ ['≥', '≥', true, 'greater-than or equal to'],\r
+ ['–', '–', true, 'en dash'],\r
+ ['—', '—', true, 'em dash'],\r
+ ['¯', '¯', true, 'macron'],\r
+ ['‾', '‾', true, 'overline'],\r
+ ['¤', '¤', true, 'currency sign'],\r
+ ['¦', '¦', true, 'broken bar'],\r
+ ['¨', '¨', true, 'diaeresis'],\r
+ ['¡', '¡', true, 'inverted exclamation mark'],\r
+ ['¿', '¿', true, 'turned question mark'],\r
+ ['ˆ', 'ˆ', true, 'circumflex accent'],\r
+ ['˜', '˜', true, 'small tilde'],\r
+ ['°', '°', true, 'degree sign'],\r
+ ['−', '−', true, 'minus sign'],\r
+ ['±', '±', true, 'plus-minus sign'],\r
+ ['÷', '÷', true, 'division sign'],\r
+ ['⁄', '⁄', true, 'fraction slash'],\r
+ ['×', '×', true, 'multiplication sign'],\r
+ ['¹', '¹', true, 'superscript one'],\r
+ ['²', '²', true, 'superscript two'],\r
+ ['³', '³', true, 'superscript three'],\r
+ ['¼', '¼', true, 'fraction one quarter'],\r
+ ['½', '½', true, 'fraction one half'],\r
+ ['¾', '¾', true, 'fraction three quarters'],\r
+// math / logical\r
+ ['ƒ', 'ƒ', true, 'function / florin'],\r
+ ['∫', '∫', true, 'integral'],\r
+ ['∑', '∑', true, 'n-ary sumation'],\r
+ ['∞', '∞', true, 'infinity'],\r
+ ['√', '√', true, 'square root'],\r
+ ['∼', '∼', false,'similar to'],\r
+ ['≅', '≅', false,'approximately equal to'],\r
+ ['≈', '≈', true, 'almost equal to'],\r
+ ['≠', '≠', true, 'not equal to'],\r
+ ['≡', '≡', true, 'identical to'],\r
+ ['∈', '∈', false,'element of'],\r
+ ['∉', '∉', false,'not an element of'],\r
+ ['∋', '∋', false,'contains as member'],\r
+ ['∏', '∏', true, 'n-ary product'],\r
+ ['∧', '∧', false,'logical and'],\r
+ ['∨', '∨', false,'logical or'],\r
+ ['¬', '¬', true, 'not sign'],\r
+ ['∩', '∩', true, 'intersection'],\r
+ ['∪', '∪', false,'union'],\r
+ ['∂', '∂', true, 'partial differential'],\r
+ ['∀', '∀', false,'for all'],\r
+ ['∃', '∃', false,'there exists'],\r
+ ['∅', '∅', false,'diameter'],\r
+ ['∇', '∇', false,'backward difference'],\r
+ ['∗', '∗', false,'asterisk operator'],\r
+ ['∝', '∝', false,'proportional to'],\r
+ ['∠', '∠', false,'angle'],\r
+// undefined\r
+ ['´', '´', true, 'acute accent'],\r
+ ['¸', '¸', true, 'cedilla'],\r
+ ['ª', 'ª', true, 'feminine ordinal indicator'],\r
+ ['º', 'º', true, 'masculine ordinal indicator'],\r
+ ['†', '†', true, 'dagger'],\r
+ ['‡', '‡', true, 'double dagger'],\r
+// alphabetical special chars\r
+ ['À', 'À', true, 'A - grave'],\r
+ ['Á', 'Á', true, 'A - acute'],\r
+ ['Â', 'Â', true, 'A - circumflex'],\r
+ ['Ã', 'Ã', true, 'A - tilde'],\r
+ ['Ä', 'Ä', true, 'A - diaeresis'],\r
+ ['Å', 'Å', true, 'A - ring above'],\r
+ ['Æ', 'Æ', true, 'ligature AE'],\r
+ ['Ç', 'Ç', true, 'C - cedilla'],\r
+ ['È', 'È', true, 'E - grave'],\r
+ ['É', 'É', true, 'E - acute'],\r
+ ['Ê', 'Ê', true, 'E - circumflex'],\r
+ ['Ë', 'Ë', true, 'E - diaeresis'],\r
+ ['Ì', 'Ì', true, 'I - grave'],\r
+ ['Í', 'Í', true, 'I - acute'],\r
+ ['Î', 'Î', true, 'I - circumflex'],\r
+ ['Ï', 'Ï', true, 'I - diaeresis'],\r
+ ['Ð', 'Ð', true, 'ETH'],\r
+ ['Ñ', 'Ñ', true, 'N - tilde'],\r
+ ['Ò', 'Ò', true, 'O - grave'],\r
+ ['Ó', 'Ó', true, 'O - acute'],\r
+ ['Ô', 'Ô', true, 'O - circumflex'],\r
+ ['Õ', 'Õ', true, 'O - tilde'],\r
+ ['Ö', 'Ö', true, 'O - diaeresis'],\r
+ ['Ø', 'Ø', true, 'O - slash'],\r
+ ['Œ', 'Œ', true, 'ligature OE'],\r
+ ['Š', 'Š', true, 'S - caron'],\r
+ ['Ù', 'Ù', true, 'U - grave'],\r
+ ['Ú', 'Ú', true, 'U - acute'],\r
+ ['Û', 'Û', true, 'U - circumflex'],\r
+ ['Ü', 'Ü', true, 'U - diaeresis'],\r
+ ['Ý', 'Ý', true, 'Y - acute'],\r
+ ['Ÿ', 'Ÿ', true, 'Y - diaeresis'],\r
+ ['Þ', 'Þ', true, 'THORN'],\r
+ ['à', 'à', true, 'a - grave'],\r
+ ['á', 'á', true, 'a - acute'],\r
+ ['â', 'â', true, 'a - circumflex'],\r
+ ['ã', 'ã', true, 'a - tilde'],\r
+ ['ä', 'ä', true, 'a - diaeresis'],\r
+ ['å', 'å', true, 'a - ring above'],\r
+ ['æ', 'æ', true, 'ligature ae'],\r
+ ['ç', 'ç', true, 'c - cedilla'],\r
+ ['è', 'è', true, 'e - grave'],\r
+ ['é', 'é', true, 'e - acute'],\r
+ ['ê', 'ê', true, 'e - circumflex'],\r
+ ['ë', 'ë', true, 'e - diaeresis'],\r
+ ['ì', 'ì', true, 'i - grave'],\r
+ ['í', 'í', true, 'i - acute'],\r
+ ['î', 'î', true, 'i - circumflex'],\r
+ ['ï', 'ï', true, 'i - diaeresis'],\r
+ ['ð', 'ð', true, 'eth'],\r
+ ['ñ', 'ñ', true, 'n - tilde'],\r
+ ['ò', 'ò', true, 'o - grave'],\r
+ ['ó', 'ó', true, 'o - acute'],\r
+ ['ô', 'ô', true, 'o - circumflex'],\r
+ ['õ', 'õ', true, 'o - tilde'],\r
+ ['ö', 'ö', true, 'o - diaeresis'],\r
+ ['ø', 'ø', true, 'o slash'],\r
+ ['œ', 'œ', true, 'ligature oe'],\r
+ ['š', 'š', true, 's - caron'],\r
+ ['ù', 'ù', true, 'u - grave'],\r
+ ['ú', 'ú', true, 'u - acute'],\r
+ ['û', 'û', true, 'u - circumflex'],\r
+ ['ü', 'ü', true, 'u - diaeresis'],\r
+ ['ý', 'ý', true, 'y - acute'],\r
+ ['þ', 'þ', true, 'thorn'],\r
+ ['ÿ', 'ÿ', true, 'y - diaeresis'],\r
+ ['Α', 'Α', true, 'Alpha'],\r
+ ['Β', 'Β', true, 'Beta'],\r
+ ['Γ', 'Γ', true, 'Gamma'],\r
+ ['Δ', 'Δ', true, 'Delta'],\r
+ ['Ε', 'Ε', true, 'Epsilon'],\r
+ ['Ζ', 'Ζ', true, 'Zeta'],\r
+ ['Η', 'Η', true, 'Eta'],\r
+ ['Θ', 'Θ', true, 'Theta'],\r
+ ['Ι', 'Ι', true, 'Iota'],\r
+ ['Κ', 'Κ', true, 'Kappa'],\r
+ ['Λ', 'Λ', true, 'Lambda'],\r
+ ['Μ', 'Μ', true, 'Mu'],\r
+ ['Ν', 'Ν', true, 'Nu'],\r
+ ['Ξ', 'Ξ', true, 'Xi'],\r
+ ['Ο', 'Ο', true, 'Omicron'],\r
+ ['Π', 'Π', true, 'Pi'],\r
+ ['Ρ', 'Ρ', true, 'Rho'],\r
+ ['Σ', 'Σ', true, 'Sigma'],\r
+ ['Τ', 'Τ', true, 'Tau'],\r
+ ['Υ', 'Υ', true, 'Upsilon'],\r
+ ['Φ', 'Φ', true, 'Phi'],\r
+ ['Χ', 'Χ', true, 'Chi'],\r
+ ['Ψ', 'Ψ', true, 'Psi'],\r
+ ['Ω', 'Ω', true, 'Omega'],\r
+ ['α', 'α', true, 'alpha'],\r
+ ['β', 'β', true, 'beta'],\r
+ ['γ', 'γ', true, 'gamma'],\r
+ ['δ', 'δ', true, 'delta'],\r
+ ['ε', 'ε', true, 'epsilon'],\r
+ ['ζ', 'ζ', true, 'zeta'],\r
+ ['η', 'η', true, 'eta'],\r
+ ['θ', 'θ', true, 'theta'],\r
+ ['ι', 'ι', true, 'iota'],\r
+ ['κ', 'κ', true, 'kappa'],\r
+ ['λ', 'λ', true, 'lambda'],\r
+ ['μ', 'μ', true, 'mu'],\r
+ ['ν', 'ν', true, 'nu'],\r
+ ['ξ', 'ξ', true, 'xi'],\r
+ ['ο', 'ο', true, 'omicron'],\r
+ ['π', 'π', true, 'pi'],\r
+ ['ρ', 'ρ', true, 'rho'],\r
+ ['ς', 'ς', true, 'final sigma'],\r
+ ['σ', 'σ', true, 'sigma'],\r
+ ['τ', 'τ', true, 'tau'],\r
+ ['υ', 'υ', true, 'upsilon'],\r
+ ['φ', 'φ', true, 'phi'],\r
+ ['χ', 'χ', true, 'chi'],\r
+ ['ψ', 'ψ', true, 'psi'],\r
+ ['ω', 'ω', true, 'omega'],\r
+// symbols\r
+ ['ℵ', 'ℵ', false,'alef symbol'],\r
+ ['ϖ', 'ϖ', false,'pi symbol'],\r
+ ['ℜ', 'ℜ', false,'real part symbol'],\r
+ ['ϑ','ϑ', false,'theta symbol'],\r
+ ['ϒ', 'ϒ', false,'upsilon - hook symbol'],\r
+ ['℘', '℘', false,'Weierstrass p'],\r
+ ['ℑ', 'ℑ', false,'imaginary part'],\r
+// arrows\r
+ ['←', '←', true, 'leftwards arrow'],\r
+ ['↑', '↑', true, 'upwards arrow'],\r
+ ['→', '→', true, 'rightwards arrow'],\r
+ ['↓', '↓', true, 'downwards arrow'],\r
+ ['↔', '↔', true, 'left right arrow'],\r
+ ['↵', '↵', false,'carriage return'],\r
+ ['⇐', '⇐', false,'leftwards double arrow'],\r
+ ['⇑', '⇑', false,'upwards double arrow'],\r
+ ['⇒', '⇒', false,'rightwards double arrow'],\r
+ ['⇓', '⇓', false,'downwards double arrow'],\r
+ ['⇔', '⇔', false,'left right double arrow'],\r
+ ['∴', '∴', false,'therefore'],\r
+ ['⊂', '⊂', false,'subset of'],\r
+ ['⊃', '⊃', false,'superset of'],\r
+ ['⊄', '⊄', false,'not a subset of'],\r
+ ['⊆', '⊆', false,'subset of or equal to'],\r
+ ['⊇', '⊇', false,'superset of or equal to'],\r
+ ['⊕', '⊕', false,'circled plus'],\r
+ ['⊗', '⊗', false,'circled times'],\r
+ ['⊥', '⊥', false,'perpendicular'],\r
+ ['⋅', '⋅', false,'dot operator'],\r
+ ['⌈', '⌈', false,'left ceiling'],\r
+ ['⌉', '⌉', false,'right ceiling'],\r
+ ['⌊', '⌊', false,'left floor'],\r
+ ['⌋', '⌋', false,'right floor'],\r
+ ['⟨', '〈', false,'left-pointing angle bracket'],\r
+ ['⟩', '〉', false,'right-pointing angle bracket'],\r
+ ['◊', '◊', true,'lozenge'],\r
+ ['♠', '♠', false,'black spade suit'],\r
+ ['♣', '♣', true, 'black club suit'],\r
+ ['♥', '♥', true, 'black heart suit'],\r
+ ['♦', '♦', true, 'black diamond suit'],\r
+ [' ', ' ', false,'en space'],\r
+ [' ', ' ', false,'em space'],\r
+ [' ', ' ', false,'thin space'],\r
+ ['‌', '‌', false,'zero width non-joiner'],\r
+ ['‍', '‍', false,'zero width joiner'],\r
+ ['‎', '‎', false,'left-to-right mark'],\r
+ ['‏', '‏', false,'right-to-left mark'],\r
+ ['­', '­', false,'soft hyphen']\r
+];\r
+\r
+tinyMCEPopup.onInit.add(function() {\r
+ tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML());\r
+});\r
+\r
+function renderCharMapHTML() {\r
+ var charsPerRow = 20, tdWidth=20, tdHeight=20, i;\r
+ var html = '<table border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + '"><tr height="' + tdHeight + '">';\r
+ var cols=-1;\r
+\r
+ for (i=0; i<charmap.length; i++) {\r
+ if (charmap[i][2]==true) {\r
+ cols++;\r
+ html += ''\r
+ + '<td class="charmap">'\r
+ + '<a onmouseover="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" onfocus="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" href="javascript:void(0)" onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');" onclick="return false;" onmousedown="return false;" title="' + charmap[i][3] + '">'\r
+ + charmap[i][1]\r
+ + '</a></td>';\r
+ if ((cols+1) % charsPerRow == 0)\r
+ html += '</tr><tr height="' + tdHeight + '">';\r
+ }\r
+ }\r
+\r
+ if (cols % charsPerRow > 0) {\r
+ var padd = charsPerRow - (cols % charsPerRow);\r
+ for (var i=0; i<padd-1; i++)\r
+ html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"> </td>';\r
+ }\r
+\r
+ html += '</tr></table>';\r
+\r
+ return html;\r
+}\r
+\r
+function insertChar(chr) {\r
+ tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';');\r
+\r
+ // Refocus in window\r
+ if (tinyMCEPopup.isWindow)\r
+ window.focus();\r
+\r
+ tinyMCEPopup.editor.focus();\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function previewChar(codeA, codeB, codeN) {\r
+ var elmA = document.getElementById('codeA');\r
+ var elmB = document.getElementById('codeB');\r
+ var elmV = document.getElementById('codeV');\r
+ var elmN = document.getElementById('codeN');\r
+\r
+ if (codeA=='#160;') {\r
+ elmV.innerHTML = '__';\r
+ } else {\r
+ elmV.innerHTML = '&' + codeA;\r
+ }\r
+\r
+ elmB.innerHTML = '&' + codeA;\r
+ elmA.innerHTML = '&' + codeB;\r
+ elmN.innerHTML = codeN;\r
+}\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false;\r
+\r
+var colors = new Array(\r
+ "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033",\r
+ "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099",\r
+ "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff",\r
+ "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033",\r
+ "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399",\r
+ "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff",\r
+ "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333",\r
+ "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399",\r
+ "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff",\r
+ "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633",\r
+ "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699",\r
+ "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff",\r
+ "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633",\r
+ "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999",\r
+ "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff",\r
+ "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933",\r
+ "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999",\r
+ "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff",\r
+ "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33",\r
+ "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99",\r
+ "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff",\r
+ "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33",\r
+ "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99",\r
+ "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff",\r
+ "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33",\r
+ "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99",\r
+ "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff"\r
+);\r
+\r
+var named = {\r
+ '#F0F8FF':'AliceBlue','#FAEBD7':'AntiqueWhite','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige',\r
+ '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'BlanchedAlmond','#0000FF':'Blue','#8A2BE2':'BlueViolet','#A52A2A':'Brown',\r
+ '#DEB887':'BurlyWood','#5F9EA0':'CadetBlue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'CornflowerBlue',\r
+ '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'DarkBlue','#008B8B':'DarkCyan','#B8860B':'DarkGoldenRod',\r
+ '#A9A9A9':'DarkGray','#A9A9A9':'DarkGrey','#006400':'DarkGreen','#BDB76B':'DarkKhaki','#8B008B':'DarkMagenta','#556B2F':'DarkOliveGreen',\r
+ '#FF8C00':'Darkorange','#9932CC':'DarkOrchid','#8B0000':'DarkRed','#E9967A':'DarkSalmon','#8FBC8F':'DarkSeaGreen','#483D8B':'DarkSlateBlue',\r
+ '#2F4F4F':'DarkSlateGray','#2F4F4F':'DarkSlateGrey','#00CED1':'DarkTurquoise','#9400D3':'DarkViolet','#FF1493':'DeepPink','#00BFFF':'DeepSkyBlue',\r
+ '#696969':'DimGray','#696969':'DimGrey','#1E90FF':'DodgerBlue','#B22222':'FireBrick','#FFFAF0':'FloralWhite','#228B22':'ForestGreen',\r
+ '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'GhostWhite','#FFD700':'Gold','#DAA520':'GoldenRod','#808080':'Gray','#808080':'Grey',\r
+ '#008000':'Green','#ADFF2F':'GreenYellow','#F0FFF0':'HoneyDew','#FF69B4':'HotPink','#CD5C5C':'IndianRed','#4B0082':'Indigo','#FFFFF0':'Ivory',\r
+ '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'LavenderBlush','#7CFC00':'LawnGreen','#FFFACD':'LemonChiffon','#ADD8E6':'LightBlue',\r
+ '#F08080':'LightCoral','#E0FFFF':'LightCyan','#FAFAD2':'LightGoldenRodYellow','#D3D3D3':'LightGray','#D3D3D3':'LightGrey','#90EE90':'LightGreen',\r
+ '#FFB6C1':'LightPink','#FFA07A':'LightSalmon','#20B2AA':'LightSeaGreen','#87CEFA':'LightSkyBlue','#778899':'LightSlateGray','#778899':'LightSlateGrey',\r
+ '#B0C4DE':'LightSteelBlue','#FFFFE0':'LightYellow','#00FF00':'Lime','#32CD32':'LimeGreen','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon',\r
+ '#66CDAA':'MediumAquaMarine','#0000CD':'MediumBlue','#BA55D3':'MediumOrchid','#9370D8':'MediumPurple','#3CB371':'MediumSeaGreen','#7B68EE':'MediumSlateBlue',\r
+ '#00FA9A':'MediumSpringGreen','#48D1CC':'MediumTurquoise','#C71585':'MediumVioletRed','#191970':'MidnightBlue','#F5FFFA':'MintCream','#FFE4E1':'MistyRose','#FFE4B5':'Moccasin',\r
+ '#FFDEAD':'NavajoWhite','#000080':'Navy','#FDF5E6':'OldLace','#808000':'Olive','#6B8E23':'OliveDrab','#FFA500':'Orange','#FF4500':'OrangeRed','#DA70D6':'Orchid',\r
+ '#EEE8AA':'PaleGoldenRod','#98FB98':'PaleGreen','#AFEEEE':'PaleTurquoise','#D87093':'PaleVioletRed','#FFEFD5':'PapayaWhip','#FFDAB9':'PeachPuff',\r
+ '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'PowderBlue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'RosyBrown','#4169E1':'RoyalBlue',\r
+ '#8B4513':'SaddleBrown','#FA8072':'Salmon','#F4A460':'SandyBrown','#2E8B57':'SeaGreen','#FFF5EE':'SeaShell','#A0522D':'Sienna','#C0C0C0':'Silver',\r
+ '#87CEEB':'SkyBlue','#6A5ACD':'SlateBlue','#708090':'SlateGray','#708090':'SlateGrey','#FFFAFA':'Snow','#00FF7F':'SpringGreen',\r
+ '#4682B4':'SteelBlue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet',\r
+ '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'WhiteSmoke','#FFFF00':'Yellow','#9ACD32':'YellowGreen'\r
+};\r
+\r
+function init() {\r
+ var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color'));\r
+\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ generatePicker();\r
+\r
+ if (inputColor) {\r
+ changeFinalColor(inputColor);\r
+\r
+ col = convertHexToRGB(inputColor);\r
+\r
+ if (col)\r
+ updateLight(col.r, col.g, col.b);\r
+ }\r
+}\r
+\r
+function insertAction() {\r
+ var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func');\r
+\r
+ tinyMCEPopup.restoreSelection();\r
+\r
+ if (f)\r
+ f(color);\r
+\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function showColor(color, name) {\r
+ if (name)\r
+ document.getElementById("colorname").innerHTML = name;\r
+\r
+ document.getElementById("preview").style.backgroundColor = color;\r
+ document.getElementById("color").value = color.toLowerCase();\r
+}\r
+\r
+function convertRGBToHex(col) {\r
+ var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");\r
+\r
+ if (!col)\r
+ return col;\r
+\r
+ var rgb = col.replace(re, "$1,$2,$3").split(',');\r
+ if (rgb.length == 3) {\r
+ r = parseInt(rgb[0]).toString(16);\r
+ g = parseInt(rgb[1]).toString(16);\r
+ b = parseInt(rgb[2]).toString(16);\r
+\r
+ r = r.length == 1 ? '0' + r : r;\r
+ g = g.length == 1 ? '0' + g : g;\r
+ b = b.length == 1 ? '0' + b : b;\r
+\r
+ return "#" + r + g + b;\r
+ }\r
+\r
+ return col;\r
+}\r
+\r
+function convertHexToRGB(col) {\r
+ if (col.indexOf('#') != -1) {\r
+ col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');\r
+\r
+ r = parseInt(col.substring(0, 2), 16);\r
+ g = parseInt(col.substring(2, 4), 16);\r
+ b = parseInt(col.substring(4, 6), 16);\r
+\r
+ return {r : r, g : g, b : b};\r
+ }\r
+\r
+ return null;\r
+}\r
+\r
+function generatePicker() {\r
+ var el = document.getElementById('light'), h = '', i;\r
+\r
+ for (i = 0; i < detail; i++){\r
+ h += '<div id="gs'+i+'" style="background-color:#000000; width:15px; height:3px; border-style:none; border-width:0px;"'\r
+ + ' onclick="changeFinalColor(this.style.backgroundColor)"'\r
+ + ' onmousedown="isMouseDown = true; return false;"'\r
+ + ' onmouseup="isMouseDown = false;"'\r
+ + ' onmousemove="if (isMouseDown && isMouseOver) changeFinalColor(this.style.backgroundColor); return false;"'\r
+ + ' onmouseover="isMouseOver = true;"'\r
+ + ' onmouseout="isMouseOver = false;"'\r
+ + '></div>';\r
+ }\r
+\r
+ el.innerHTML = h;\r
+}\r
+\r
+function generateWebColors() {\r
+ var el = document.getElementById('webcolors'), h = '', i;\r
+\r
+ if (el.className == 'generated')\r
+ return;\r
+\r
+ h += '<table border="0" cellspacing="1" cellpadding="0">'\r
+ + '<tr>';\r
+\r
+ for (i=0; i<colors.length; i++) {\r
+ h += '<td bgcolor="' + colors[i] + '" width="10" height="10">'\r
+ + '<a href="javascript:insertAction();" onfocus="showColor(\'' + colors[i] + '\');" onmouseover="showColor(\'' + colors[i] + '\');" style="display:block;width:10px;height:10px;overflow:hidden;">'\r
+ + '</a></td>';\r
+ if ((i+1) % 18 == 0)\r
+ h += '</tr><tr>';\r
+ }\r
+\r
+ h += '</table>';\r
+\r
+ el.innerHTML = h;\r
+ el.className = 'generated';\r
+}\r
+\r
+function generateNamedColors() {\r
+ var el = document.getElementById('namedcolors'), h = '', n, v, i = 0;\r
+\r
+ if (el.className == 'generated')\r
+ return;\r
+\r
+ for (n in named) {\r
+ v = named[n];\r
+ h += '<a href="javascript:insertAction();" onmouseover="showColor(\'' + n + '\',\'' + v + '\');" style="background-color: ' + n + '"><!-- IE --></a>'\r
+ }\r
+\r
+ el.innerHTML = h;\r
+ el.className = 'generated';\r
+}\r
+\r
+function dechex(n) {\r
+ return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16);\r
+}\r
+\r
+function computeColor(e) {\r
+ var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB;\r
+\r
+ x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0);\r
+ y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0);\r
+\r
+ partWidth = document.getElementById('colors').width / 6;\r
+ partDetail = detail / 2;\r
+ imHeight = document.getElementById('colors').height;\r
+\r
+ r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255;\r
+ g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255 + (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth);\r
+ b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth);\r
+\r
+ coef = (imHeight - y) / imHeight;\r
+ r = 128 + (r - 128) * coef;\r
+ g = 128 + (g - 128) * coef;\r
+ b = 128 + (b - 128) * coef;\r
+\r
+ changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b));\r
+ updateLight(r, g, b);\r
+}\r
+\r
+function updateLight(r, g, b) {\r
+ var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color;\r
+\r
+ for (i=0; i<detail; i++) {\r
+ if ((i>=0) && (i<partDetail)) {\r
+ finalCoef = i / partDetail;\r
+ finalR = dechex(255 - (255 - r) * finalCoef);\r
+ finalG = dechex(255 - (255 - g) * finalCoef);\r
+ finalB = dechex(255 - (255 - b) * finalCoef);\r
+ } else {\r
+ finalCoef = 2 - i / partDetail;\r
+ finalR = dechex(r * finalCoef);\r
+ finalG = dechex(g * finalCoef);\r
+ finalB = dechex(b * finalCoef);\r
+ }\r
+\r
+ color = finalR + finalG + finalB;\r
+\r
+ document.getElementById('gs' + i).style.backgroundColor = '#'+color;\r
+ }\r
+}\r
+\r
+function changeFinalColor(color) {\r
+ if (color.indexOf('#') == -1)\r
+ color = convertRGBToHex(color);\r
+\r
+ document.getElementById('preview').style.backgroundColor = color;\r
+ document.getElementById('color').value = color;\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+var ImageDialog = {\r
+ preInit : function() {\r
+ var url;\r
+\r
+ tinyMCEPopup.requireLangPack();\r
+\r
+ if (url = tinyMCEPopup.getParam("external_image_list_url"))\r
+ document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
+ },\r
+\r
+ init : function() {\r
+ var f = document.forms[0], ed = tinyMCEPopup.editor;\r
+\r
+ // Setup browse button\r
+ document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');\r
+ if (isVisible('srcbrowser'))\r
+ document.getElementById('src').style.width = '180px';\r
+\r
+ e = ed.selection.getNode();\r
+\r
+ this.fillFileList('image_list', 'tinyMCEImageList');\r
+\r
+ if (e.nodeName == 'IMG') {\r
+ f.src.value = ed.dom.getAttrib(e, 'src');\r
+ f.alt.value = ed.dom.getAttrib(e, 'alt');\r
+ f.border.value = this.getAttrib(e, 'border');\r
+ f.vspace.value = this.getAttrib(e, 'vspace');\r
+ f.hspace.value = this.getAttrib(e, 'hspace');\r
+ f.width.value = ed.dom.getAttrib(e, 'width');\r
+ f.height.value = ed.dom.getAttrib(e, 'height');\r
+ f.insert.value = ed.getLang('update');\r
+ this.styleVal = ed.dom.getAttrib(e, 'style');\r
+ selectByValue(f, 'image_list', f.src.value);\r
+ selectByValue(f, 'align', this.getAttrib(e, 'align'));\r
+ this.updateStyle();\r
+ }\r
+ },\r
+\r
+ fillFileList : function(id, l) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
+\r
+ l = window[l];\r
+\r
+ if (l && l.length > 0) {\r
+ lst.options[lst.options.length] = new Option('', '');\r
+\r
+ tinymce.each(l, function(o) {\r
+ lst.options[lst.options.length] = new Option(o[0], o[1]);\r
+ });\r
+ } else\r
+ dom.remove(dom.getParent(id, 'tr'));\r
+ },\r
+\r
+ update : function() {\r
+ var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el;\r
+\r
+ tinyMCEPopup.restoreSelection();\r
+\r
+ if (f.src.value === '') {\r
+ if (ed.selection.getNode().nodeName == 'IMG') {\r
+ ed.dom.remove(ed.selection.getNode());\r
+ ed.execCommand('mceRepaint');\r
+ }\r
+\r
+ tinyMCEPopup.close();\r
+ return;\r
+ }\r
+\r
+ if (!ed.settings.inline_styles) {\r
+ args = tinymce.extend(args, {\r
+ vspace : nl.vspace.value,\r
+ hspace : nl.hspace.value,\r
+ border : nl.border.value,\r
+ align : getSelectValue(f, 'align')\r
+ });\r
+ } else\r
+ args.style = this.styleVal;\r
+\r
+ tinymce.extend(args, {\r
+ src : f.src.value,\r
+ alt : f.alt.value,\r
+ width : f.width.value,\r
+ height : f.height.value\r
+ });\r
+\r
+ el = ed.selection.getNode();\r
+\r
+ if (el && el.nodeName == 'IMG') {\r
+ ed.dom.setAttribs(el, args);\r
+ } else {\r
+ ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" src="javascript:;" />', {skip_undo : 1});\r
+ ed.dom.setAttribs('__mce_tmp', args);\r
+ ed.dom.setAttrib('__mce_tmp', 'id', '');\r
+ ed.undoManager.add();\r
+ }\r
+\r
+ tinyMCEPopup.close();\r
+ },\r
+\r
+ updateStyle : function() {\r
+ var dom = tinyMCEPopup.dom, st, v, f = document.forms[0];\r
+\r
+ if (tinyMCEPopup.editor.settings.inline_styles) {\r
+ st = tinyMCEPopup.dom.parseStyle(this.styleVal);\r
+\r
+ // Handle align\r
+ v = getSelectValue(f, 'align');\r
+ if (v) {\r
+ if (v == 'left' || v == 'right') {\r
+ st['float'] = v;\r
+ delete st['vertical-align'];\r
+ } else {\r
+ st['vertical-align'] = v;\r
+ delete st['float'];\r
+ }\r
+ } else {\r
+ delete st['float'];\r
+ delete st['vertical-align'];\r
+ }\r
+\r
+ // Handle border\r
+ v = f.border.value;\r
+ if (v || v == '0') {\r
+ if (v == '0')\r
+ st['border'] = '0';\r
+ else\r
+ st['border'] = v + 'px solid black';\r
+ } else\r
+ delete st['border'];\r
+\r
+ // Handle hspace\r
+ v = f.hspace.value;\r
+ if (v) {\r
+ delete st['margin'];\r
+ st['margin-left'] = v + 'px';\r
+ st['margin-right'] = v + 'px';\r
+ } else {\r
+ delete st['margin-left'];\r
+ delete st['margin-right'];\r
+ }\r
+\r
+ // Handle vspace\r
+ v = f.vspace.value;\r
+ if (v) {\r
+ delete st['margin'];\r
+ st['margin-top'] = v + 'px';\r
+ st['margin-bottom'] = v + 'px';\r
+ } else {\r
+ delete st['margin-top'];\r
+ delete st['margin-bottom'];\r
+ }\r
+\r
+ // Merge\r
+ st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st));\r
+ this.styleVal = dom.serializeStyle(st);\r
+ }\r
+ },\r
+\r
+ getAttrib : function(e, at) {\r
+ var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;\r
+\r
+ if (ed.settings.inline_styles) {\r
+ switch (at) {\r
+ case 'align':\r
+ if (v = dom.getStyle(e, 'float'))\r
+ return v;\r
+\r
+ if (v = dom.getStyle(e, 'vertical-align'))\r
+ return v;\r
+\r
+ break;\r
+\r
+ case 'hspace':\r
+ v = dom.getStyle(e, 'margin-left')\r
+ v2 = dom.getStyle(e, 'margin-right');\r
+ if (v && v == v2)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+\r
+ case 'vspace':\r
+ v = dom.getStyle(e, 'margin-top')\r
+ v2 = dom.getStyle(e, 'margin-bottom');\r
+ if (v && v == v2)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+\r
+ case 'border':\r
+ v = 0;\r
+\r
+ tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {\r
+ sv = dom.getStyle(e, 'border-' + sv + '-width');\r
+\r
+ // False or not the same as prev\r
+ if (!sv || (sv != v && v !== 0)) {\r
+ v = 0;\r
+ return false;\r
+ }\r
+\r
+ if (sv)\r
+ v = sv;\r
+ });\r
+\r
+ if (v)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+ }\r
+ }\r
+\r
+ if (v = dom.getAttrib(e, at))\r
+ return v;\r
+\r
+ return '';\r
+ },\r
+\r
+ resetImageData : function() {\r
+ var f = document.forms[0];\r
+\r
+ f.width.value = f.height.value = ""; \r
+ },\r
+\r
+ updateImageData : function() {\r
+ var f = document.forms[0], t = ImageDialog;\r
+\r
+ if (f.width.value == "")\r
+ f.width.value = t.preloadImg.width;\r
+\r
+ if (f.height.value == "")\r
+ f.height.value = t.preloadImg.height;\r
+ },\r
+\r
+ getImageData : function() {\r
+ var f = document.forms[0];\r
+\r
+ this.preloadImg = new Image();\r
+ this.preloadImg.onload = this.updateImageData;\r
+ this.preloadImg.onerror = this.resetImageData;\r
+ this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value);\r
+ }\r
+};\r
+\r
+ImageDialog.preInit();\r
+tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var LinkDialog = {\r
+ preInit : function() {\r
+ var url;\r
+\r
+ if (url = tinyMCEPopup.getParam("external_link_list_url"))\r
+ document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
+ },\r
+\r
+ init : function() {\r
+ var f = document.forms[0], ed = tinyMCEPopup.editor;\r
+\r
+ // Setup browse button\r
+ document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link');\r
+ if (isVisible('hrefbrowser'))\r
+ document.getElementById('href').style.width = '180px';\r
+\r
+ this.fillClassList('class_list');\r
+ this.fillFileList('link_list', 'tinyMCELinkList');\r
+ this.fillTargetList('target_list');\r
+\r
+ if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) {\r
+ f.href.value = ed.dom.getAttrib(e, 'href');\r
+ f.linktitle.value = ed.dom.getAttrib(e, 'title');\r
+ f.insert.value = ed.getLang('update');\r
+ selectByValue(f, 'link_list', f.href.value);\r
+ selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target'));\r
+ selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class'));\r
+ }\r
+ },\r
+\r
+ update : function() {\r
+ var f = document.forms[0], ed = tinyMCEPopup.editor, e, b;\r
+\r
+ tinyMCEPopup.restoreSelection();\r
+\r
+ // Remove element if there is no href\r
+ if (!f.href.value) {\r
+ e = ed.dom.getParent(ed.selection.getNode(), 'A');\r
+ if (e) {\r
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
+ b = ed.selection.getBookmark();\r
+ ed.dom.remove(e, 1);\r
+ ed.selection.moveToBookmark(b);\r
+ tinyMCEPopup.execCommand("mceEndUndoLevel");\r
+ tinyMCEPopup.close();\r
+ return;\r
+ }\r
+ }\r
+\r
+ ed.execCommand('mceInsertLink', false, {\r
+ href : f.href.value,\r
+ title : f.linktitle.value,\r
+ target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,\r
+ 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null\r
+ });\r
+\r
+ tinyMCEPopup.close();\r
+ },\r
+\r
+ checkPrefix : function(n) {\r
+ if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email')))\r
+ n.value = 'mailto:' + n.value;\r
+\r
+ if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external')))\r
+ n.value = 'http://' + n.value;\r
+ },\r
+\r
+ fillFileList : function(id, l) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
+\r
+ l = window[l];\r
+\r
+ if (l && l.length > 0) {\r
+ lst.options[lst.options.length] = new Option('', '');\r
+\r
+ tinymce.each(l, function(o) {\r
+ lst.options[lst.options.length] = new Option(o[0], o[1]);\r
+ });\r
+ } else\r
+ dom.remove(dom.getParent(id, 'tr'));\r
+ },\r
+\r
+ fillClassList : function(id) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
+\r
+ if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {\r
+ cl = [];\r
+\r
+ tinymce.each(v.split(';'), function(v) {\r
+ var p = v.split('=');\r
+\r
+ cl.push({'title' : p[0], 'class' : p[1]});\r
+ });\r
+ } else\r
+ cl = tinyMCEPopup.editor.dom.getClasses();\r
+\r
+ if (cl.length > 0) {\r
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
+\r
+ tinymce.each(cl, function(o) {\r
+ lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);\r
+ });\r
+ } else\r
+ dom.remove(dom.getParent(id, 'tr'));\r
+ },\r
+\r
+ fillTargetList : function(id) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v;\r
+\r
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self');\r
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank');\r
+\r
+ if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) {\r
+ tinymce.each(v.split(','), function(v) {\r
+ v = v.split('=');\r
+ html += '<option value="' + v[1] + '">' + v[0] + '</option>';\r
+ });\r
+ }\r
+ }\r
+};\r
+\r
+LinkDialog.preInit();\r
+tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+tinyMCEPopup.onInit.add(onLoadInit);\r
+\r
+function saveContent() {\r
+ tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value);\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function onLoadInit() {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ // Remove Gecko spellchecking\r
+ if (tinymce.isGecko)\r
+ document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck");\r
+\r
+ document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent();\r
+\r
+ if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) {\r
+ setWrap('soft');\r
+ document.getElementById('wraped').checked = true;\r
+ }\r
+\r
+ resizeInputs();\r
+}\r
+\r
+function setWrap(val) {\r
+ var v, n, s = document.getElementById('htmlSource');\r
+\r
+ s.wrap = val;\r
+\r
+ if (!tinymce.isIE) {\r
+ v = s.value;\r
+ n = s.cloneNode(false);\r
+ n.setAttribute("wrap", val);\r
+ s.parentNode.replaceChild(n, s);\r
+ n.value = v;\r
+ }\r
+}\r
+\r
+function toggleWordWrap(elm) {\r
+ if (elm.checked)\r
+ setWrap('soft');\r
+ else\r
+ setWrap('off');\r
+}\r
+\r
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;\r
+\r
+function resizeInputs() {\r
+ var el = document.getElementById('htmlSource');\r
+\r
+ if (!tinymce.isIE) {\r
+ wHeight = self.innerHeight - 65;\r
+ wWidth = self.innerWidth - 16;\r
+ } else {\r
+ wHeight = document.body.clientHeight - 70;\r
+ wWidth = document.body.clientWidth - 16;\r
+ }\r
+\r
+ el.style.height = Math.abs(wHeight) + 'px';\r
+ el.style.width = Math.abs(wWidth) + 'px';\r
+}\r
--- /dev/null
+tinyMCE.addI18n('en.advanced',{\r
+style_select:"Styles",\r
+font_size:"Font size",\r
+fontdefault:"Font family",\r
+block:"Format",\r
+paragraph:"Paragraph",\r
+div:"Div",\r
+address:"Address",\r
+pre:"Preformatted",\r
+h1:"Heading 1",\r
+h2:"Heading 2",\r
+h3:"Heading 3",\r
+h4:"Heading 4",\r
+h5:"Heading 5",\r
+h6:"Heading 6",\r
+blockquote:"Blockquote",\r
+code:"Code",\r
+samp:"Code sample",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"Bold (Ctrl+B)",\r
+italic_desc:"Italic (Ctrl+I)",\r
+underline_desc:"Underline (Ctrl+U)",\r
+striketrough_desc:"Strikethrough",\r
+justifyleft_desc:"Align left",\r
+justifycenter_desc:"Align center",\r
+justifyright_desc:"Align right",\r
+justifyfull_desc:"Align full",\r
+bullist_desc:"Unordered list",\r
+numlist_desc:"Ordered list",\r
+outdent_desc:"Outdent",\r
+indent_desc:"Indent",\r
+undo_desc:"Undo (Ctrl+Z)",\r
+redo_desc:"Redo (Ctrl+Y)",\r
+link_desc:"Insert/edit link",\r
+unlink_desc:"Unlink",\r
+image_desc:"Insert/edit image",\r
+cleanup_desc:"Cleanup messy code",\r
+code_desc:"Edit HTML Source",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Insert horizontal ruler",\r
+removeformat_desc:"Remove formatting",\r
+custom1_desc:"Your custom description here",\r
+forecolor_desc:"Select text color",\r
+backcolor_desc:"Select background color",\r
+charmap_desc:"Insert custom character",\r
+visualaid_desc:"Toggle guidelines/invisible elements",\r
+anchor_desc:"Insert/edit anchor",\r
+cut_desc:"Cut",\r
+copy_desc:"Copy",\r
+paste_desc:"Paste",\r
+image_props_desc:"Image properties",\r
+newdocument_desc:"New document",\r
+help_desc:"Help",\r
+blockquote_desc:"Blockquote",\r
+clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\r\nDo you want more information about this issue?",\r
+path:"Path",\r
+newdocument:"Are you sure you want clear all contents?",\r
+toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",\r
+more_colors:"More colors"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('en.advanced_dlg',{\r
+about_title:"About TinyMCE",\r
+about_general:"About",\r
+about_help:"Help",\r
+about_license:"License",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Author",\r
+about_version:"Version",\r
+about_loaded:"Loaded plugins",\r
+anchor_title:"Insert/edit anchor",\r
+anchor_name:"Anchor name",\r
+code_title:"HTML Source Editor",\r
+code_wordwrap:"Word wrap",\r
+colorpicker_title:"Select a color",\r
+colorpicker_picker_tab:"Picker",\r
+colorpicker_picker_title:"Color picker",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Palette colors",\r
+colorpicker_named_tab:"Named",\r
+colorpicker_named_title:"Named colors",\r
+colorpicker_color:"Color:",\r
+colorpicker_name:"Name:",\r
+charmap_title:"Select custom character",\r
+image_title:"Insert/edit image",\r
+image_src:"Image URL",\r
+image_alt:"Image description",\r
+image_list:"Image list",\r
+image_border:"Border",\r
+image_dimensions:"Dimensions",\r
+image_vspace:"Vertical space",\r
+image_hspace:"Horizontal space",\r
+image_align:"Alignment",\r
+image_align_baseline:"Baseline",\r
+image_align_top:"Top",\r
+image_align_middle:"Middle",\r
+image_align_bottom:"Bottom",\r
+image_align_texttop:"Text top",\r
+image_align_textbottom:"Text bottom",\r
+image_align_left:"Left",\r
+image_align_right:"Right",\r
+link_title:"Insert/edit link",\r
+link_url:"Link URL",\r
+link_target:"Target",\r
+link_target_same:"Open link in the same window",\r
+link_target_blank:"Open link in a new window",\r
+link_titlefield:"Title",\r
+link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
+link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
+link_list:"Link list"\r
+});
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#advanced_dlg.link_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
+ <script type="text/javascript" src="../../utils/validate.js"></script>\r
+ <script type="text/javascript" src="js/link.js"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body id="link" style="display: none">\r
+<form onsubmit="LinkDialog.update();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.link_title}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="href">{#advanced_dlg.link_url}</label></td>\r
+ <td><table border="0" cellspacing="0" cellpadding="0"> \r
+ <tr> \r
+ <td><input id="href" name="href" type="text" class="mceFocus" value="" style="width: 200px" onchange="LinkDialog.checkPrefix(this);" /></td> \r
+ <td id="hrefbrowsercontainer"> </td>\r
+ </tr> \r
+ </table></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="link_list">{#advanced_dlg.link_list}</label></td>\r
+ <td><select id="link_list" name="link_list" onchange="document.getElementById('href').value=this.options[this.selectedIndex].value;"></select></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label id="targetlistlabel" for="targetlist">{#advanced_dlg.link_target}</label></td>\r
+ <td><select id="target_list" name="target_list"></select></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="linktitle">{#advanced_dlg.link_titlefield}</label></td>\r
+ <td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="class_list">{#class_name}</label></td>\r
+ <td><select id="class_list" name="class_list"></select></td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}\r
+body {background:#FFF;}\r
+body.mceForceColors {background:#FFF; color:#000;}\r
+h1 {font-size: 2em}\r
+h2 {font-size: 1.5em}\r
+h3 {font-size: 1.17em}\r
+h4 {font-size: 1em}\r
+h5 {font-size: .83em}\r
+h6 {font-size: .75em}\r
+.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}\r
+a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(img/items.gif) no-repeat bottom left;}\r
+img.mceItemAnchor {width:12px; height:12px; background:url(img/items.gif) no-repeat;}\r
+img {border:0;}\r
+\r
+/* IE */\r
+* html body {\r
+scrollbar-3dlight-color:#F0F0EE;\r
+scrollbar-arrow-color:#676662;\r
+scrollbar-base-color:#F0F0EE;\r
+scrollbar-darkshadow-color:#DDD;\r
+scrollbar-face-color:#E0E0DD;\r
+scrollbar-highlight-color:#F0F0EE;\r
+scrollbar-shadow-color:#F0F0EE;\r
+scrollbar-track-color:#F5F5F5;\r
+}\r
--- /dev/null
+/* Generic */\r
+body {\r
+font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;\r
+scrollbar-3dlight-color:#F0F0EE;\r
+scrollbar-arrow-color:#676662;\r
+scrollbar-base-color:#F0F0EE;\r
+scrollbar-darkshadow-color:#DDDDDD;\r
+scrollbar-face-color:#E0E0DD;\r
+scrollbar-highlight-color:#F0F0EE;\r
+scrollbar-shadow-color:#F0F0EE;\r
+scrollbar-track-color:#F5F5F5;\r
+background:#F0F0EE;\r
+padding:0;\r
+margin:8px 8px 0 8px;\r
+}\r
+\r
+html {background:#F0F0EE;}\r
+td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
+textarea {resize:none;outline:none;}\r
+a:link, a:visited {color:black;}\r
+a:hover {color:#2B6FB6;}\r
+\r
+/* Forms */\r
+fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}\r
+legend {color:#2B6FB6; font-weight:bold;}\r
+label.msg {display:none;}\r
+label.invalid {color:#EE0000; display:inline;}\r
+input.invalid {border:1px solid #EE0000;}\r
+input {background:#FFF; border:1px solid #CCC;}\r
+input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
+input, select, textarea {border:1px solid #808080;}\r
+input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}\r
+input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}\r
+.input_noborder {border:0;}\r
+\r
+/* Buttons */\r
+#insert, #cancel, input.button, .updateButton {\r
+border:0; margin:0; padding:0;\r
+font-weight:bold;\r
+width:94px; height:26px;\r
+background:url(img/buttons.png) 0 -26px;\r
+cursor:pointer;\r
+padding-bottom:2px;\r
+}\r
+\r
+#insert {background:url(img/buttons.png) 0 -52px;}\r
+#cancel {background:url(img/buttons.png) 0 0;}\r
+\r
+/* Browse */\r
+a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}\r
+.mceOldBoxModel a.browse span {width:22px; height:20px;}\r
+a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}\r
+a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}\r
+a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}\r
+a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}\r
+.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}\r
+a.pickcolor:hover span {background-color:#B2BBD0;}\r
+a.pickcolor:hover span.disabled {}\r
+\r
+/* Charmap */\r
+table.charmap {border:1px solid #AAA; text-align:center}\r
+td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}\r
+#charmap a {display:block; color:#000; text-decoration:none; border:0}\r
+#charmap a:hover {background:#CCC;color:#2B6FB6}\r
+#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}\r
+#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}\r
+\r
+/* Source */\r
+.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}\r
+.mceActionPanel {margin-top:5px;}\r
+\r
+/* Tabs classes */\r
+.tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;}\r
+.tabs ul {margin:0; padding:0; list-style:none;}\r
+.tabs li {float:left; background:url(img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}\r
+.tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}\r
+.tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}\r
+.tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;}\r
+.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}\r
+.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}\r
+\r
+/* Panels */\r
+.panel_wrapper div.panel {display:none;}\r
+.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}\r
+.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}\r
+\r
+/* Columns */\r
+.column {float:left;}\r
+.properties {width:100%;}\r
+.properties .column1 {}\r
+.properties .column2 {text-align:left;}\r
+\r
+/* Titles */\r
+h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}\r
+h3 {font-size:14px;}\r
+.title {font-size:12px; font-weight:bold; color:#2B6FB6;}\r
+\r
+/* Dialog specific */\r
+#link .panel_wrapper, #link div.current {height:125px;}\r
+#image .panel_wrapper, #image div.current {height:200px;}\r
+#plugintable thead {font-weight:bold; background:#DDD;}\r
+#plugintable, #about #plugintable td {border:1px solid #919B9C;}\r
+#plugintable {width:96%; margin-top:10px;}\r
+#pluginscontainer {height:290px; overflow:auto;}\r
+#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}\r
+#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}\r
+#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}\r
+#colorpicker #light div {overflow:hidden;}\r
+#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}\r
+#colorpicker .panel_wrapper div.current {height:175px;}\r
+#colorpicker #namedcolors {width:150px;}\r
+#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}\r
+#colorpicker #colornamecontainer {margin-top:5px;}\r
+#colorpicker #picker_panel fieldset {margin:auto;width:325px;}
\ No newline at end of file
--- /dev/null
+/* Reset */\r
+.defaultSkin table, .defaultSkin tbody, .defaultSkin a, .defaultSkin img, .defaultSkin tr, .defaultSkin div, .defaultSkin td, .defaultSkin iframe, .defaultSkin span, .defaultSkin *, .defaultSkin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}\r
+.defaultSkin a:hover, .defaultSkin a:link, .defaultSkin a:visited, .defaultSkin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
+.defaultSkin table td {vertical-align:middle}\r
+\r
+/* Containers */\r
+.defaultSkin table {background:#F0F0EE}\r
+.defaultSkin iframe {display:block; background:#FFF}\r
+.defaultSkin .mceToolbar {height:26px}\r
+.defaultSkin .mceLeft {text-align:left}\r
+.defaultSkin .mceRight {text-align:right}\r
+\r
+/* External */\r
+.defaultSkin .mceExternalToolbar {position:absolute; border:1px solid #CCC; border-bottom:0; display:none;}\r
+.defaultSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;}\r
+.defaultSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}\r
+\r
+/* Layout */\r
+.defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC}\r
+.defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #CCC}\r
+.defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #CCC}\r
+.defaultSkin table.mceToolbar, .defaultSkin tr.mceFirst .mceToolbar tr td, .defaultSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0;}\r
+.defaultSkin td.mceToolbar {padding-top:1px; vertical-align:top}\r
+.defaultSkin .mceIframeContainer {border-top:1px solid #CCC; border-bottom:1px solid #CCC}\r
+.defaultSkin .mceStatusbar {position:relative; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; padding:2px; color:#000; display:block}\r
+.defaultSkin .mceStatusbar a.mceResize {display:block; position:absolute; top:0; right:0; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize}\r
+.defaultSkin .mceStatusbar a:hover {text-decoration:underline}\r
+.defaultSkin table.mceToolbar {margin-left:3px}\r
+.defaultSkin span.mceIcon, .defaultSkin img.mceIcon {display:block; width:20px; height:20px}\r
+.defaultSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
+.defaultSkin td.mceCenter {text-align:center;}\r
+.defaultSkin td.mceCenter table {margin:0 auto; text-align:left;}\r
+.defaultSkin td.mceRight table {margin:0 0 0 auto;}\r
+\r
+/* Button */\r
+.defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px;}\r
+.defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}\r
+.defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0}\r
+.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}\r
+\r
+/* Separator */\r
+.defaultSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:2px 2px 0 4px}\r
+\r
+/* ListBox */\r
+.defaultSkin .mceListBox, .defaultSkin .mceListBox a {display:block}\r
+.defaultSkin .mceListBox .mceText {padding-left:4px; width:70px; text-align:left; border:1px solid #CCC; border-right:0; background:#FFF; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}\r
+.defaultSkin .mceListBox .mceOpen {width:9px; height:20px; background:url(../../img/icons.gif) -741px 0; margin-right:2px; border:1px solid #CCC;}\r
+.defaultSkin table.mceListBoxEnabled:hover .mceText, .defaultSkin .mceListBoxHover .mceText, .defaultSkin .mceListBoxSelected .mceText {border:1px solid #A2ABC0; border-right:0; background:#FFF}\r
+.defaultSkin table.mceListBoxEnabled:hover .mceOpen, .defaultSkin .mceListBoxHover .mceOpen, .defaultSkin .mceListBoxSelected .mceOpen {background-color:#FFF; border:1px solid #A2ABC0}\r
+.defaultSkin .mceListBoxDisabled a.mceText {color:gray; background-color:transparent;}\r
+.defaultSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden}\r
+.defaultSkin .mceOldBoxModel .mceListBox .mceText {height:22px}\r
+.defaultSkin .mceOldBoxModel .mceListBox .mceOpen {width:11px; height:22px;}\r
+.defaultSkin select.mceNativeListBox {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:7pt; background:#F0F0EE; border:1px solid gray; margin-right:2px;}\r
+\r
+/* SplitButton */\r
+.defaultSkin .mceSplitButton {width:32px; height:20px}\r
+.defaultSkin .mceSplitButton a, .defaultSkin .mceSplitButton span {height:20px; display:block}\r
+.defaultSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #F0F0EE; border-right:0;}\r
+.defaultSkin .mceSplitButton span.mceAction {width:20px; background:url(../../img/icons.gif) 20px 20px;}\r
+.defaultSkin .mceSplitButton a.mceOpen {width:9px; border:1px solid #F0F0EE;}\r
+.defaultSkin .mceSplitButton span.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0;}\r
+.defaultSkin table.mceSplitButtonEnabled:hover a.mceAction, .defaultSkin .mceSplitButtonHover a.mceAction, .defaultSkin .mceSplitButtonSelected a.mceAction {border:1px solid #0A246A; border-right:0; background-color:#B2BBD0}\r
+.defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {border:1px solid #0A246A;}\r
+.defaultSkin table.mceSplitButtonEnabled:hover span.mceOpen, .defaultSkin .mceSplitButtonHover span.mceOpen, .defaultSkin .mceSplitButtonSelected span.mceOpen {background-color:#B2BBD0}\r
+.defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled span.mceOpen {opacity:0.3; filter:alpha(opacity=30)}\r
+.defaultSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0}\r
+.defaultSkin .mceSplitButtonActive a.mceOpen {border-left:0;}\r
+\r
+/* ColorSplitButton */\r
+.defaultSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}\r
+.defaultSkin .mceColorSplitMenu td {padding:2px}\r
+.defaultSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}\r
+.defaultSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}\r
+.defaultSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}\r
+.defaultSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}\r
+.defaultSkin a.mceMoreColors:hover {border:1px solid #0A246A}\r
+.defaultSkin .mceColorPreview {position:absolute; top:15px; left:2px; width:16px; height:4px; overflow:hidden}\r
+.defaultSkin .mce_forecolor, .defaultSkin .mce_backcolor {position:relative}\r
+\r
+/* Menu */\r
+.defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8}\r
+.defaultSkin .mceNoIcons span.mceIcon {width:0;}\r
+.defaultSkin .mceNoIcons a .mceText {padding-left:10px}\r
+.defaultSkin .mceMenu table {background:#FFF}\r
+.defaultSkin .mceMenu a, .defaultSkin .mceMenu span, .defaultSkin .mceMenu {display:block}\r
+.defaultSkin .mceMenu td {height:20px}\r
+.defaultSkin .mceMenu a {position:relative;padding:3px 0 4px 0}\r
+.defaultSkin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}\r
+.defaultSkin .mceMenu span.mceText, .defaultSkin .mceMenu .mcePreview {font-size:11px}\r
+.defaultSkin .mceMenu pre.mceText {font-family:Monospace}\r
+.defaultSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}\r
+.defaultSkin .mceMenu .mceMenuItemEnabled a:hover, .defaultSkin .mceMenu .mceMenuItemActive {background-color:#dbecf3}\r
+.defaultSkin td.mceMenuItemSeparator {background:#DDD; height:1px}\r
+.defaultSkin .mceMenuItemTitle a {border:0; background:#EEE; border-bottom:1px solid #DDD}\r
+.defaultSkin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}\r
+.defaultSkin .mceMenuItemDisabled .mceText {color:#888}\r
+.defaultSkin .mceMenuItemSelected .mceIcon {background:url(img/menu_check.gif)}\r
+.defaultSkin .mceNoIcons .mceMenuItemSelected a {background:url(img/menu_arrow.gif) no-repeat -6px center}\r
+.defaultSkin .mceMenu span.mceMenuLine {display:none}\r
+.defaultSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;}\r
+\r
+/* Progress,Resize */\r
+.defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}\r
+.defaultSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}\r
+.defaultSkin .mcePlaceHolder {border:1px dotted gray}\r
+\r
+/* Formats */\r
+.defaultSkin .mce_formatPreview a {font-size:10px}\r
+.defaultSkin .mce_p span.mceText {}\r
+.defaultSkin .mce_address span.mceText {font-style:italic}\r
+.defaultSkin .mce_pre span.mceText {font-family:monospace}\r
+.defaultSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}\r
+.defaultSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}\r
+.defaultSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}\r
+.defaultSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}\r
+.defaultSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}\r
+.defaultSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}\r
+\r
+/* Theme */\r
+.defaultSkin span.mce_bold {background-position:0 0}\r
+.defaultSkin span.mce_italic {background-position:-60px 0}\r
+.defaultSkin span.mce_underline {background-position:-140px 0}\r
+.defaultSkin span.mce_strikethrough {background-position:-120px 0}\r
+.defaultSkin span.mce_undo {background-position:-160px 0}\r
+.defaultSkin span.mce_redo {background-position:-100px 0}\r
+.defaultSkin span.mce_cleanup {background-position:-40px 0}\r
+.defaultSkin span.mce_bullist {background-position:-20px 0}\r
+.defaultSkin span.mce_numlist {background-position:-80px 0}\r
+.defaultSkin span.mce_justifyleft {background-position:-460px 0}\r
+.defaultSkin span.mce_justifyright {background-position:-480px 0}\r
+.defaultSkin span.mce_justifycenter {background-position:-420px 0}\r
+.defaultSkin span.mce_justifyfull {background-position:-440px 0}\r
+.defaultSkin span.mce_anchor {background-position:-200px 0}\r
+.defaultSkin span.mce_indent {background-position:-400px 0}\r
+.defaultSkin span.mce_outdent {background-position:-540px 0}\r
+.defaultSkin span.mce_link {background-position:-500px 0}\r
+.defaultSkin span.mce_unlink {background-position:-640px 0}\r
+.defaultSkin span.mce_sub {background-position:-600px 0}\r
+.defaultSkin span.mce_sup {background-position:-620px 0}\r
+.defaultSkin span.mce_removeformat {background-position:-580px 0}\r
+.defaultSkin span.mce_newdocument {background-position:-520px 0}\r
+.defaultSkin span.mce_image {background-position:-380px 0}\r
+.defaultSkin span.mce_help {background-position:-340px 0}\r
+.defaultSkin span.mce_code {background-position:-260px 0}\r
+.defaultSkin span.mce_hr {background-position:-360px 0}\r
+.defaultSkin span.mce_visualaid {background-position:-660px 0}\r
+.defaultSkin span.mce_charmap {background-position:-240px 0}\r
+.defaultSkin span.mce_paste {background-position:-560px 0}\r
+.defaultSkin span.mce_copy {background-position:-700px 0}\r
+.defaultSkin span.mce_cut {background-position:-680px 0}\r
+.defaultSkin span.mce_blockquote {background-position:-220px 0}\r
+.defaultSkin .mce_forecolor span.mceAction {background-position:-720px 0}\r
+.defaultSkin .mce_backcolor span.mceAction {background-position:-760px 0}\r
+.defaultSkin .mce_forecolorpicker {background-position:-720px 0}\r
+.defaultSkin .mce_backcolorpicker {background-position:-760px 0}\r
+\r
+/* Plugins */\r
+.defaultSkin span.mce_advhr {background-position:-0px -20px}\r
+.defaultSkin span.mce_ltr {background-position:-20px -20px}\r
+.defaultSkin span.mce_rtl {background-position:-40px -20px}\r
+.defaultSkin span.mce_emotions {background-position:-60px -20px}\r
+.defaultSkin span.mce_fullpage {background-position:-80px -20px}\r
+.defaultSkin span.mce_fullscreen {background-position:-100px -20px}\r
+.defaultSkin span.mce_iespell {background-position:-120px -20px}\r
+.defaultSkin span.mce_insertdate {background-position:-140px -20px}\r
+.defaultSkin span.mce_inserttime {background-position:-160px -20px}\r
+.defaultSkin span.mce_absolute {background-position:-180px -20px}\r
+.defaultSkin span.mce_backward {background-position:-200px -20px}\r
+.defaultSkin span.mce_forward {background-position:-220px -20px}\r
+.defaultSkin span.mce_insert_layer {background-position:-240px -20px}\r
+.defaultSkin span.mce_insertlayer {background-position:-260px -20px}\r
+.defaultSkin span.mce_movebackward {background-position:-280px -20px}\r
+.defaultSkin span.mce_moveforward {background-position:-300px -20px}\r
+.defaultSkin span.mce_media {background-position:-320px -20px}\r
+.defaultSkin span.mce_nonbreaking {background-position:-340px -20px}\r
+.defaultSkin span.mce_pastetext {background-position:-360px -20px}\r
+.defaultSkin span.mce_pasteword {background-position:-380px -20px}\r
+.defaultSkin span.mce_selectall {background-position:-400px -20px}\r
+.defaultSkin span.mce_preview {background-position:-420px -20px}\r
+.defaultSkin span.mce_print {background-position:-440px -20px}\r
+.defaultSkin span.mce_cancel {background-position:-460px -20px}\r
+.defaultSkin span.mce_save {background-position:-480px -20px}\r
+.defaultSkin span.mce_replace {background-position:-500px -20px}\r
+.defaultSkin span.mce_search {background-position:-520px -20px}\r
+.defaultSkin span.mce_styleprops {background-position:-560px -20px}\r
+.defaultSkin span.mce_table {background-position:-580px -20px}\r
+.defaultSkin span.mce_cell_props {background-position:-600px -20px}\r
+.defaultSkin span.mce_delete_table {background-position:-620px -20px}\r
+.defaultSkin span.mce_delete_col {background-position:-640px -20px}\r
+.defaultSkin span.mce_delete_row {background-position:-660px -20px}\r
+.defaultSkin span.mce_col_after {background-position:-680px -20px}\r
+.defaultSkin span.mce_col_before {background-position:-700px -20px}\r
+.defaultSkin span.mce_row_after {background-position:-720px -20px}\r
+.defaultSkin span.mce_row_before {background-position:-740px -20px}\r
+.defaultSkin span.mce_merge_cells {background-position:-760px -20px}\r
+.defaultSkin span.mce_table_props {background-position:-980px -20px}\r
+.defaultSkin span.mce_row_props {background-position:-780px -20px}\r
+.defaultSkin span.mce_split_cells {background-position:-800px -20px}\r
+.defaultSkin span.mce_template {background-position:-820px -20px}\r
+.defaultSkin span.mce_visualchars {background-position:-840px -20px}\r
+.defaultSkin span.mce_abbr {background-position:-860px -20px}\r
+.defaultSkin span.mce_acronym {background-position:-880px -20px}\r
+.defaultSkin span.mce_attribs {background-position:-900px -20px}\r
+.defaultSkin span.mce_cite {background-position:-920px -20px}\r
+.defaultSkin span.mce_del {background-position:-940px -20px}\r
+.defaultSkin span.mce_ins {background-position:-960px -20px}\r
+.defaultSkin span.mce_pagebreak {background-position:0 -40px}\r
+.defaultSkin .mce_spellchecker span.mceAction {background-position:-540px -20px}\r
--- /dev/null
+body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}\r
+body {background:#FFF;}\r
+body.mceForceColors {background:#FFF; color:#000;}\r
+h1 {font-size: 2em}\r
+h2 {font-size: 1.5em}\r
+h3 {font-size: 1.17em}\r
+h4 {font-size: 1em}\r
+h5 {font-size: .83em}\r
+h6 {font-size: .75em}\r
+.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}\r
+a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(../default/img/items.gif) no-repeat bottom left;}\r
+img.mceItemAnchor {width:12px; height:12px; background:url(../default/img/items.gif) no-repeat;}\r
+img {border:0;}\r
+\r
+/* IE */\r
+* html body {\r
+scrollbar-3dlight-color:#F0F0EE;\r
+scrollbar-arrow-color:#676662;\r
+scrollbar-base-color:#F0F0EE;\r
+scrollbar-darkshadow-color:#DDD;\r
+scrollbar-face-color:#E0E0DD;\r
+scrollbar-highlight-color:#F0F0EE;\r
+scrollbar-shadow-color:#F0F0EE;\r
+scrollbar-track-color:#F5F5F5;\r
+}\r
--- /dev/null
+/* Generic */\r
+body {\r
+font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;\r
+scrollbar-3dlight-color:#F0F0EE;\r
+scrollbar-arrow-color:#676662;\r
+scrollbar-base-color:#F0F0EE;\r
+scrollbar-darkshadow-color:#DDDDDD;\r
+scrollbar-face-color:#E0E0DD;\r
+scrollbar-highlight-color:#F0F0EE;\r
+scrollbar-shadow-color:#F0F0EE;\r
+scrollbar-track-color:#F5F5F5;\r
+background:#F0F0EE;\r
+padding:0;\r
+margin:8px 8px 0 8px;\r
+}\r
+\r
+html {background:#F0F0EE;}\r
+td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
+textarea {resize:none;outline:none;}\r
+a:link, a:visited {color:black;}\r
+a:hover {color:#2B6FB6;}\r
+\r
+/* Forms */\r
+fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}\r
+legend {color:#2B6FB6; font-weight:bold;}\r
+label.msg {display:none;}\r
+label.invalid {color:#EE0000; display:inline;}\r
+input.invalid {border:1px solid #EE0000;}\r
+input {background:#FFF; border:1px solid #CCC;}\r
+input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
+input, select, textarea {border:1px solid #808080;}\r
+input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}\r
+input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}\r
+.input_noborder {border:0;}\r
+\r
+/* Buttons */\r
+#insert, #cancel, input.button, .updateButton {\r
+border:0; margin:0; padding:0;\r
+font-weight:bold;\r
+width:94px; height:26px;\r
+background:url(../default/img/buttons.png) 0 -26px;\r
+cursor:pointer;\r
+padding-bottom:2px;\r
+}\r
+\r
+#insert {background:url(../default/img/buttons.png) 0 -52px;}\r
+#cancel {background:url(../default/img/buttons.png) 0 0;}\r
+\r
+/* Browse */\r
+a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}\r
+.mceOldBoxModel a.browse span {width:22px; height:20px;}\r
+a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}\r
+a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}\r
+a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}\r
+a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}\r
+.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}\r
+a.pickcolor:hover span {background-color:#B2BBD0;}\r
+a.pickcolor:hover span.disabled {}\r
+\r
+/* Charmap */\r
+table.charmap {border:1px solid #AAA; text-align:center}\r
+td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}\r
+#charmap a {display:block; color:#000; text-decoration:none; border:0}\r
+#charmap a:hover {background:#CCC;color:#2B6FB6}\r
+#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}\r
+#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}\r
+\r
+/* Source */\r
+.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}\r
+.mceActionPanel {margin-top:5px;}\r
+\r
+/* Tabs classes */\r
+.tabs {width:100%; height:18px; line-height:normal; background:url(../default/img/tabs.gif) repeat-x 0 -72px;}\r
+.tabs ul {margin:0; padding:0; list-style:none;}\r
+.tabs li {float:left; background:url(../default/img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}\r
+.tabs li.current {background:url(../default/img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}\r
+.tabs span {float:left; display:block; background:url(../default/img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}\r
+.tabs .current span {background:url(../default/img/tabs.gif) no-repeat right -54px;}\r
+.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}\r
+.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}\r
+\r
+/* Panels */\r
+.panel_wrapper div.panel {display:none;}\r
+.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}\r
+.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}\r
+\r
+/* Columns */\r
+.column {float:left;}\r
+.properties {width:100%;}\r
+.properties .column1 {}\r
+.properties .column2 {text-align:left;}\r
+\r
+/* Titles */\r
+h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}\r
+h3 {font-size:14px;}\r
+.title {font-size:12px; font-weight:bold; color:#2B6FB6;}\r
+\r
+/* Dialog specific */\r
+#link .panel_wrapper, #link div.current {height:125px;}\r
+#image .panel_wrapper, #image div.current {height:200px;}\r
+#plugintable thead {font-weight:bold; background:#DDD;}\r
+#plugintable, #about #plugintable td {border:1px solid #919B9C;}\r
+#plugintable {width:96%; margin-top:10px;}\r
+#pluginscontainer {height:290px; overflow:auto;}\r
+#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}\r
+#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}\r
+#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}\r
+#colorpicker #light div {overflow:hidden;}\r
+#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}\r
+#colorpicker .panel_wrapper div.current {height:175px;}\r
+#colorpicker #namedcolors {width:150px;}\r
+#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}\r
+#colorpicker #colornamecontainer {margin-top:5px;}\r
--- /dev/null
+/* Reset */\r
+.o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}\r
+.o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
+.o2k7Skin table td {vertical-align:middle}\r
+\r
+/* Containers */\r
+.o2k7Skin table {background:#E5EFFD}\r
+.o2k7Skin iframe {display:block; background:#FFF}\r
+.o2k7Skin .mceToolbar {height:26px}\r
+\r
+/* External */\r
+.o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none}\r
+.o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;}\r
+.o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}\r
+\r
+/* Layout */\r
+.o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD}\r
+.o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD}\r
+.o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD}\r
+.o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0}\r
+.o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD}\r
+.o2k7Skin .mceStatusbar {display:block; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; height:20px;}\r
+.o2k7Skin .mceStatusbar div {float:left; padding:2px;}\r
+.o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize}\r
+.o2k7Skin .mceStatusbar a:hover {text-decoration:underline}\r
+.o2k7Skin table.mceToolbar {margin-left:3px}\r
+.o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;}\r
+.o2k7Skin .mceToolbar td.mceFirst span {margin:0}\r
+.o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}\r
+.o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none}\r
+.o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px}\r
+.o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
+.o2k7Skin td.mceCenter {text-align:center;}\r
+.o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;}\r
+.o2k7Skin td.mceRight table {margin:0 0 0 auto;}\r
+\r
+/* Button */\r
+.o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}\r
+.o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px}\r
+.o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px}\r
+.o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}\r
+.o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px}\r
+.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}\r
+\r
+/* Separator */\r
+.o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}\r
+\r
+/* ListBox */\r
+.o2k7Skin .mceListBox {margin-left:3px}\r
+.o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block}\r
+.o2k7Skin .mceListBox .mceText {padding-left:4px; text-align:left; width:70px; border:1px solid #b3c7e1; border-right:0; background:#eaf2fb; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}\r
+.o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0}\r
+.o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF}\r
+.o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px}\r
+.o2k7Skin .mceListBoxDisabled .mceText {color:gray}\r
+.o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden}\r
+.o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px}\r
+.o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;}\r
+\r
+/* SplitButton */\r
+.o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px}\r
+.o2k7Skin .mceSplitButton {background:url(img/button_bg.png)}\r
+.o2k7Skin .mceSplitButton a.mceAction {width:22px}\r
+.o2k7Skin .mceSplitButton span.mceAction {width:22px; background:url(../../img/icons.gif) 20px 20px}\r
+.o2k7Skin .mceSplitButton a.mceOpen {width:10px}\r
+.o2k7Skin .mceSplitButton span.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0}\r
+.o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px}\r
+.o2k7Skin table.mceSplitButtonEnabled:hover span.mceOpen, .o2k7Skin .mceSplitButtonHover span.mceOpen, .o2k7Skin .mceSplitButtonSelected span.mceOpen {background-position:-44px -44px}\r
+.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; filter:alpha(opacity=30)}\r
+.o2k7Skin .mceSplitButtonActive {background-position:0 -44px}\r
+\r
+/* ColorSplitButton */\r
+.o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}\r
+.o2k7Skin .mceColorSplitMenu td {padding:2px}\r
+.o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}\r
+.o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}\r
+.o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}\r
+.o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}\r
+.o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A}\r
+.o2k7Skin .mceColorPreview {position:absolute; top:15px; left:2px; width:16px; height:4px; overflow:hidden}\r
+.o2k7Skin .mce_forecolor, .o2k7Skin .mce_backcolor {position:relative}\r
+\r
+/* Menu */\r
+.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD}\r
+.o2k7Skin .mceNoIcons span.mceIcon {width:0;}\r
+.o2k7Skin .mceNoIcons a .mceText {padding-left:10px}\r
+.o2k7Skin .mceMenu table {background:#FFF}\r
+.o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block}\r
+.o2k7Skin .mceMenu td {height:20px}\r
+.o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0}\r
+.o2k7Skin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}\r
+.o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px}\r
+.o2k7Skin .mceMenu pre.mceText {font-family:Monospace}\r
+.o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}\r
+.o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3}\r
+.o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px}\r
+.o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD}\r
+.o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}\r
+.o2k7Skin .mceMenuItemDisabled .mceText {color:#888}\r
+.o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)}\r
+.o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center}\r
+.o2k7Skin .mceMenu span.mceMenuLine {display:none}\r
+.o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;}\r
+\r
+/* Progress,Resize */\r
+.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}\r
+.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}\r
+.o2k7Skin .mcePlaceHolder {border:1px dotted gray}\r
+\r
+/* Formats */\r
+.o2k7Skin .mce_formatPreview a {font-size:10px}\r
+.o2k7Skin .mce_p span.mceText {}\r
+.o2k7Skin .mce_address span.mceText {font-style:italic}\r
+.o2k7Skin .mce_pre span.mceText {font-family:monospace}\r
+.o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}\r
+.o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}\r
+.o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}\r
+.o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}\r
+.o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}\r
+.o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}\r
+\r
+/* Theme */\r
+.o2k7Skin span.mce_bold {background-position:0 0}\r
+.o2k7Skin span.mce_italic {background-position:-60px 0}\r
+.o2k7Skin span.mce_underline {background-position:-140px 0}\r
+.o2k7Skin span.mce_strikethrough {background-position:-120px 0}\r
+.o2k7Skin span.mce_undo {background-position:-160px 0}\r
+.o2k7Skin span.mce_redo {background-position:-100px 0}\r
+.o2k7Skin span.mce_cleanup {background-position:-40px 0}\r
+.o2k7Skin span.mce_bullist {background-position:-20px 0}\r
+.o2k7Skin span.mce_numlist {background-position:-80px 0}\r
+.o2k7Skin span.mce_justifyleft {background-position:-460px 0}\r
+.o2k7Skin span.mce_justifyright {background-position:-480px 0}\r
+.o2k7Skin span.mce_justifycenter {background-position:-420px 0}\r
+.o2k7Skin span.mce_justifyfull {background-position:-440px 0}\r
+.o2k7Skin span.mce_anchor {background-position:-200px 0}\r
+.o2k7Skin span.mce_indent {background-position:-400px 0}\r
+.o2k7Skin span.mce_outdent {background-position:-540px 0}\r
+.o2k7Skin span.mce_link {background-position:-500px 0}\r
+.o2k7Skin span.mce_unlink {background-position:-640px 0}\r
+.o2k7Skin span.mce_sub {background-position:-600px 0}\r
+.o2k7Skin span.mce_sup {background-position:-620px 0}\r
+.o2k7Skin span.mce_removeformat {background-position:-580px 0}\r
+.o2k7Skin span.mce_newdocument {background-position:-520px 0}\r
+.o2k7Skin span.mce_image {background-position:-380px 0}\r
+.o2k7Skin span.mce_help {background-position:-340px 0}\r
+.o2k7Skin span.mce_code {background-position:-260px 0}\r
+.o2k7Skin span.mce_hr {background-position:-360px 0}\r
+.o2k7Skin span.mce_visualaid {background-position:-660px 0}\r
+.o2k7Skin span.mce_charmap {background-position:-240px 0}\r
+.o2k7Skin span.mce_paste {background-position:-560px 0}\r
+.o2k7Skin span.mce_copy {background-position:-700px 0}\r
+.o2k7Skin span.mce_cut {background-position:-680px 0}\r
+.o2k7Skin span.mce_blockquote {background-position:-220px 0}\r
+.o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0}\r
+.o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0}\r
+.o2k7Skin .mce_forecolorpicker {background-position:-720px 0}\r
+.o2k7Skin .mce_backcolorpicker {background-position:-760px 0}\r
+\r
+/* Plugins */\r
+.o2k7Skin span.mce_advhr {background-position:-0px -20px}\r
+.o2k7Skin span.mce_ltr {background-position:-20px -20px}\r
+.o2k7Skin span.mce_rtl {background-position:-40px -20px}\r
+.o2k7Skin span.mce_emotions {background-position:-60px -20px}\r
+.o2k7Skin span.mce_fullpage {background-position:-80px -20px}\r
+.o2k7Skin span.mce_fullscreen {background-position:-100px -20px}\r
+.o2k7Skin span.mce_iespell {background-position:-120px -20px}\r
+.o2k7Skin span.mce_insertdate {background-position:-140px -20px}\r
+.o2k7Skin span.mce_inserttime {background-position:-160px -20px}\r
+.o2k7Skin span.mce_absolute {background-position:-180px -20px}\r
+.o2k7Skin span.mce_backward {background-position:-200px -20px}\r
+.o2k7Skin span.mce_forward {background-position:-220px -20px}\r
+.o2k7Skin span.mce_insert_layer {background-position:-240px -20px}\r
+.o2k7Skin span.mce_insertlayer {background-position:-260px -20px}\r
+.o2k7Skin span.mce_movebackward {background-position:-280px -20px}\r
+.o2k7Skin span.mce_moveforward {background-position:-300px -20px}\r
+.o2k7Skin span.mce_media {background-position:-320px -20px}\r
+.o2k7Skin span.mce_nonbreaking {background-position:-340px -20px}\r
+.o2k7Skin span.mce_pastetext {background-position:-360px -20px}\r
+.o2k7Skin span.mce_pasteword {background-position:-380px -20px}\r
+.o2k7Skin span.mce_selectall {background-position:-400px -20px}\r
+.o2k7Skin span.mce_preview {background-position:-420px -20px}\r
+.o2k7Skin span.mce_print {background-position:-440px -20px}\r
+.o2k7Skin span.mce_cancel {background-position:-460px -20px}\r
+.o2k7Skin span.mce_save {background-position:-480px -20px}\r
+.o2k7Skin span.mce_replace {background-position:-500px -20px}\r
+.o2k7Skin span.mce_search {background-position:-520px -20px}\r
+.o2k7Skin span.mce_styleprops {background-position:-560px -20px}\r
+.o2k7Skin span.mce_table {background-position:-580px -20px}\r
+.o2k7Skin span.mce_cell_props {background-position:-600px -20px}\r
+.o2k7Skin span.mce_delete_table {background-position:-620px -20px}\r
+.o2k7Skin span.mce_delete_col {background-position:-640px -20px}\r
+.o2k7Skin span.mce_delete_row {background-position:-660px -20px}\r
+.o2k7Skin span.mce_col_after {background-position:-680px -20px}\r
+.o2k7Skin span.mce_col_before {background-position:-700px -20px}\r
+.o2k7Skin span.mce_row_after {background-position:-720px -20px}\r
+.o2k7Skin span.mce_row_before {background-position:-740px -20px}\r
+.o2k7Skin span.mce_merge_cells {background-position:-760px -20px}\r
+.o2k7Skin span.mce_table_props {background-position:-980px -20px}\r
+.o2k7Skin span.mce_row_props {background-position:-780px -20px}\r
+.o2k7Skin span.mce_split_cells {background-position:-800px -20px}\r
+.o2k7Skin span.mce_template {background-position:-820px -20px}\r
+.o2k7Skin span.mce_visualchars {background-position:-840px -20px}\r
+.o2k7Skin span.mce_abbr {background-position:-860px -20px}\r
+.o2k7Skin span.mce_acronym {background-position:-880px -20px}\r
+.o2k7Skin span.mce_attribs {background-position:-900px -20px}\r
+.o2k7Skin span.mce_cite {background-position:-920px -20px}\r
+.o2k7Skin span.mce_del {background-position:-940px -20px}\r
+.o2k7Skin span.mce_ins {background-position:-960px -20px}\r
+.o2k7Skin span.mce_pagebreak {background-position:0 -40px}\r
+.o2k7Skin .mce_spellchecker span.mceAction {background-position:-540px -20px}\r
--- /dev/null
+/* Black */\r
+.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton span.mceOpen, .o2k7SkinBlack .mceListBox .mceOpen {background-image:url(img/button_bg_black.png)}\r
+.o2k7SkinBlack table, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF}\r
+.o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0}\r
+.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0}\r
+.o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;}\r
+.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)}\r
+.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#FFE7A1}
\ No newline at end of file
--- /dev/null
+/* Silver */\r
+.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton span.mceOpen, .o2k7SkinSilver .mceListBox .mceOpen {background-image:url(img/button_bg_silver.png)}\r
+.o2k7SkinSilver table, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee}\r
+.o2k7SkinSilver .mceListBox .mceText {background:#FFF}\r
+.o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb}\r
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
+ <title>{#advanced_dlg.code_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
+ <script type="text/javascript" src="js/source_editor.js"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body onresize="resizeInputs();" style="display:none; overflow:hidden;">\r
+ <form name="source" onsubmit="saveContent();return false;" action="#">\r
+ <div style="float: left" class="title">{#advanced_dlg.code_title}</div>\r
+\r
+ <div id="wrapline" style="float: right">\r
+ <input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{#advanced_dlg.code_wordwrap}</label>\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+\r
+ <textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,monospace; font-size: 12px;" dir="ltr" wrap="off" class="mceFocus"></textarea>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" name="insert" value="{#update}" id="insert" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />\r
+ </div>\r
+ </div>\r
+ </form>\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){var DOM=tinymce.DOM;tinymce.ThemeManager.requireLangPack('simple');tinymce.create('tinymce.themes.SimpleTheme',{init:function(ed,url){var t=this,states=['Bold','Italic','Underline','Strikethrough','InsertUnorderedList','InsertOrderedList'],s=ed.settings;t.editor=ed;ed.onInit.add(function(){ed.onNodeChange.add(function(ed,cm){tinymce.each(states,function(c){cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));});});ed.dom.loadCSS(url+"/skins/"+s.skin+"/content.css");});DOM.loadCSS(url+"/skins/"+s.skin+"/ui.css");},renderUI:function(o){var t=this,n=o.targetNode,ic,tb,ed=t.editor,cf=ed.controlManager,sc;n=DOM.insertAfter(DOM.create('span',{id:ed.id+'_container','class':'mceEditor '+ed.settings.skin+'SimpleSkin'}),n);n=sc=DOM.add(n,'table',{cellPadding:0,cellSpacing:0,'class':'mceLayout'});n=tb=DOM.add(n,'tbody');n=DOM.add(tb,'tr');n=ic=DOM.add(DOM.add(n,'td'),'div',{'class':'mceIframeContainer'});n=DOM.add(DOM.add(tb,'tr',{'class':'last'}),'td',{'class':'mceToolbar mceLast',align:'center'});tb=t.toolbar=cf.createToolbar("tools1");tb.add(cf.createButton('bold',{title:'simple.bold_desc',cmd:'Bold'}));tb.add(cf.createButton('italic',{title:'simple.italic_desc',cmd:'Italic'}));tb.add(cf.createButton('underline',{title:'simple.underline_desc',cmd:'Underline'}));tb.add(cf.createButton('strikethrough',{title:'simple.striketrough_desc',cmd:'Strikethrough'}));tb.add(cf.createSeparator());tb.add(cf.createButton('undo',{title:'simple.undo_desc',cmd:'Undo'}));tb.add(cf.createButton('redo',{title:'simple.redo_desc',cmd:'Redo'}));tb.add(cf.createSeparator());tb.add(cf.createButton('cleanup',{title:'simple.cleanup_desc',cmd:'mceCleanup'}));tb.add(cf.createSeparator());tb.add(cf.createButton('insertunorderedlist',{title:'simple.bullist_desc',cmd:'InsertUnorderedList'}));tb.add(cf.createButton('insertorderedlist',{title:'simple.numlist_desc',cmd:'InsertOrderedList'}));tb.renderTo(n);return{iframeContainer:ic,editorContainer:ed.id+'_container',sizeContainer:sc,deltaHeight:-20};},getInfo:function(){return{longname:'Simple theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.ThemeManager.add('simple',tinymce.themes.SimpleTheme);})();
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * This file is meant to showcase how to create a simple theme. The advanced\r
+ * theme is more suitable for production use.\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM;\r
+\r
+ // Tell it to load theme specific language pack(s)\r
+ tinymce.ThemeManager.requireLangPack('simple');\r
+\r
+ tinymce.create('tinymce.themes.SimpleTheme', {\r
+ init : function(ed, url) {\r
+ var t = this, states = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'InsertUnorderedList', 'InsertOrderedList'], s = ed.settings;\r
+\r
+ t.editor = ed;\r
+\r
+ ed.onInit.add(function() {\r
+ ed.onNodeChange.add(function(ed, cm) {\r
+ tinymce.each(states, function(c) {\r
+ cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));\r
+ });\r
+ });\r
+\r
+ ed.dom.loadCSS(url + "/skins/" + s.skin + "/content.css");\r
+ });\r
+\r
+ DOM.loadCSS(url + "/skins/" + s.skin + "/ui.css");\r
+ },\r
+\r
+ renderUI : function(o) {\r
+ var t = this, n = o.targetNode, ic, tb, ed = t.editor, cf = ed.controlManager, sc;\r
+\r
+ n = DOM.insertAfter(DOM.create('span', {id : ed.id + '_container', 'class' : 'mceEditor ' + ed.settings.skin + 'SimpleSkin'}), n);\r
+ n = sc = DOM.add(n, 'table', {cellPadding : 0, cellSpacing : 0, 'class' : 'mceLayout'});\r
+ n = tb = DOM.add(n, 'tbody');\r
+\r
+ // Create iframe container\r
+ n = DOM.add(tb, 'tr');\r
+ n = ic = DOM.add(DOM.add(n, 'td'), 'div', {'class' : 'mceIframeContainer'});\r
+\r
+ // Create toolbar container\r
+ n = DOM.add(DOM.add(tb, 'tr', {'class' : 'last'}), 'td', {'class' : 'mceToolbar mceLast', align : 'center'});\r
+\r
+ // Create toolbar\r
+ tb = t.toolbar = cf.createToolbar("tools1");\r
+ tb.add(cf.createButton('bold', {title : 'simple.bold_desc', cmd : 'Bold'}));\r
+ tb.add(cf.createButton('italic', {title : 'simple.italic_desc', cmd : 'Italic'}));\r
+ tb.add(cf.createButton('underline', {title : 'simple.underline_desc', cmd : 'Underline'}));\r
+ tb.add(cf.createButton('strikethrough', {title : 'simple.striketrough_desc', cmd : 'Strikethrough'}));\r
+ tb.add(cf.createSeparator());\r
+ tb.add(cf.createButton('undo', {title : 'simple.undo_desc', cmd : 'Undo'}));\r
+ tb.add(cf.createButton('redo', {title : 'simple.redo_desc', cmd : 'Redo'}));\r
+ tb.add(cf.createSeparator());\r
+ tb.add(cf.createButton('cleanup', {title : 'simple.cleanup_desc', cmd : 'mceCleanup'}));\r
+ tb.add(cf.createSeparator());\r
+ tb.add(cf.createButton('insertunorderedlist', {title : 'simple.bullist_desc', cmd : 'InsertUnorderedList'}));\r
+ tb.add(cf.createButton('insertorderedlist', {title : 'simple.numlist_desc', cmd : 'InsertOrderedList'}));\r
+ tb.renderTo(n);\r
+\r
+ return {\r
+ iframeContainer : ic,\r
+ editorContainer : ed.id + '_container',\r
+ sizeContainer : sc,\r
+ deltaHeight : -20\r
+ };\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Simple theme',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ }\r
+ }\r
+ });\r
+\r
+ tinymce.ThemeManager.add('simple', tinymce.themes.SimpleTheme);\r
+})();
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('en.simple',{\r
+bold_desc:"Bold (Ctrl+B)",\r
+italic_desc:"Italic (Ctrl+I)",\r
+underline_desc:"Underline (Ctrl+U)",\r
+striketrough_desc:"Strikethrough",\r
+bullist_desc:"Unordered list",\r
+numlist_desc:"Ordered list",\r
+undo_desc:"Undo (Ctrl+Z)",\r
+redo_desc:"Redo (Ctrl+Y)",\r
+cleanup_desc:"Cleanup messy code"\r
+});
\ No newline at end of file
--- /dev/null
+body, td, pre {\r
+ font-family: Verdana, Arial, Helvetica, sans-serif;\r
+ font-size: 10px;\r
+}\r
+\r
+body {\r
+ background-color: #FFFFFF;\r
+}\r
+\r
+.mceVisualAid {\r
+ border: 1px dashed #BBBBBB;\r
+}\r
+\r
+/* MSIE specific */\r
+\r
+* html body {\r
+ scrollbar-3dlight-color: #F0F0EE;\r
+ scrollbar-arrow-color: #676662;\r
+ scrollbar-base-color: #F0F0EE;\r
+ scrollbar-darkshadow-color: #DDDDDD;\r
+ scrollbar-face-color: #E0E0DD;\r
+ scrollbar-highlight-color: #F0F0EE;\r
+ scrollbar-shadow-color: #F0F0EE;\r
+ scrollbar-track-color: #F5F5F5; \r
+}\r
--- /dev/null
+/* Reset */\r
+.defaultSimpleSkin table, .defaultSimpleSkin tbody, .defaultSimpleSkin a, .defaultSimpleSkin img, .defaultSimpleSkin tr, .defaultSimpleSkin div, .defaultSimpleSkin td, .defaultSimpleSkin iframe, .defaultSimpleSkin span, .defaultSimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
+\r
+/* Containers */\r
+.defaultSimpleSkin {position:relative}\r
+.defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;}\r
+.defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;}\r
+.defaultSimpleSkin .mceToolbar {height:24px;}\r
+\r
+/* Layout */\r
+.defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px}\r
+.defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
+\r
+/* Button */\r
+.defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px}\r
+.defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}\r
+.defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0}\r
+.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; filter:alpha(opacity=30)}\r
+\r
+/* Separator */\r
+.defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px}\r
+\r
+/* Theme */\r
+.defaultSimpleSkin span.mce_bold {background-position:0 0}\r
+.defaultSimpleSkin span.mce_italic {background-position:-60px 0}\r
+.defaultSimpleSkin span.mce_underline {background-position:-140px 0}\r
+.defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0}\r
+.defaultSimpleSkin span.mce_undo {background-position:-160px 0}\r
+.defaultSimpleSkin span.mce_redo {background-position:-100px 0}\r
+.defaultSimpleSkin span.mce_cleanup {background-position:-40px 0}\r
+.defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}\r
+.defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0}\r
--- /dev/null
+body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
+\r
+body {background: #FFF;}\r
+.mceVisualAid {border: 1px dashed #BBB;}\r
+\r
+/* IE */\r
+\r
+* html body {\r
+scrollbar-3dlight-color: #F0F0EE;\r
+scrollbar-arrow-color: #676662;\r
+scrollbar-base-color: #F0F0EE;\r
+scrollbar-darkshadow-color: #DDDDDD;\r
+scrollbar-face-color: #E0E0DD;\r
+scrollbar-highlight-color: #F0F0EE;\r
+scrollbar-shadow-color: #F0F0EE;\r
+scrollbar-track-color: #F5F5F5; \r
+}\r
--- /dev/null
+/* Reset */\r
+.o2k7SimpleSkin table, .o2k7SimpleSkin tbody, .o2k7SimpleSkin a, .o2k7SimpleSkin img, .o2k7SimpleSkin tr, .o2k7SimpleSkin div, .o2k7SimpleSkin td, .o2k7SimpleSkin iframe, .o2k7SimpleSkin span, .o2k7SimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
+\r
+/* Containers */\r
+.o2k7SimpleSkin {position:relative}\r
+.o2k7SimpleSkin table.mceLayout {background:#E5EFFD; border:1px solid #ABC6DD;}\r
+.o2k7SimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #ABC6DD;}\r
+.o2k7SimpleSkin .mceToolbar {height:26px;}\r
+\r
+/* Layout */\r
+.o2k7SimpleSkin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; }\r
+.o2k7SimpleSkin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}\r
+.o2k7SimpleSkin span.mceIcon, .o2k7SimpleSkin img.mceIcon {display:block; width:20px; height:20px}\r
+.o2k7SimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
+\r
+/* Button */\r
+.o2k7SimpleSkin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}\r
+.o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px}\r
+.o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}\r
+.o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px}\r
+.o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; filter:alpha(opacity=30)}\r
+\r
+/* Separator */\r
+.o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}\r
+\r
+/* Theme */\r
+.o2k7SimpleSkin span.mce_bold {background-position:0 0}\r
+.o2k7SimpleSkin span.mce_italic {background-position:-60px 0}\r
+.o2k7SimpleSkin span.mce_underline {background-position:-140px 0}\r
+.o2k7SimpleSkin span.mce_strikethrough {background-position:-120px 0}\r
+.o2k7SimpleSkin span.mce_undo {background-position:-160px 0}\r
+.o2k7SimpleSkin span.mce_redo {background-position:-100px 0}\r
+.o2k7SimpleSkin span.mce_cleanup {background-position:-40px 0}\r
+.o2k7SimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}\r
+.o2k7SimpleSkin span.mce_insertorderedlist {background-position:-80px 0}\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#standard_dlg.about_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js?v=307"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js?v=307"></script>\r
+ <script type="text/javascript" src="js/about.js?v=307"></script>\r
+</head>\r
+<body id="about" style="display: none">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#standard_dlg.about_general}</a></span></li>\r
+ <li id="help_tab" style="display:none"><span><a href="javascript:mcTabs.displayTab('help_tab','help_panel');" onmousedown="return false;">{#standard_dlg.about_help}</a></span></li>\r
+ <li id="plugins_tab"><span><a href="javascript:mcTabs.displayTab('plugins_tab','plugins_panel');" onmousedown="return false;">{#standard_dlg.about_plugins}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <h3>{#standard_dlg.about_title}</h3>\r
+ <p>Version: <span id="version"></span> (<span id="date"></span>)</p>\r
+ <p>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under <a href="../../license.txt" target="_blank">LGPL</a>\r
+ by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p>\r
+ <p>Copyright © 2003-2008, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>\r
+ <p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p>\r
+\r
+ <div id="buttoncontainer">\r
+ <a href="http://www.moxiecode.com" target="_blank"><img src="http://tinymce.moxiecode.com/images/gotmoxie.png" alt="Got Moxie?" border="0" /></a>\r
+ <a href="http://sourceforge.net/projects/tinymce/" target="_blank"><img src="http://sourceforge.net/sflogo.php?group_id=103281" alt="Hosted By Sourceforge" border="0" /></a>\r
+ <a href="http://www.freshmeat.net/projects/tinymce" target="_blank"><img src="http://tinymce.moxiecode.com/images/fm.gif" alt="Also on freshmeat" border="0" /></a>\r
+ </div>\r
+ </div>\r
+\r
+ <div id="plugins_panel" class="panel">\r
+ <div id="pluginscontainer">\r
+ <h3>{#standard_dlg.about_loaded}</h3>\r
+\r
+ <div id="plugintablecontainer">\r
+ </div>\r
+\r
+ <p> </p>\r
+ </div>\r
+ </div>\r
+\r
+ <div id="help_panel" class="panel noscroll" style="overflow: visible;">\r
+ <div id="iframecontainer"></div>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#close}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#standard_dlg.anchor_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js?v=307"></script>\r
+ <script type="text/javascript" src="js/anchor.js?v=307"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body style="display: none">\r
+<form onsubmit="AnchorDialog.update();return false;" action="#">\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td colspan="2" class="title">{#standard_dlg.anchor_title}</td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap">{#standard_dlg.anchor_name}:</td>\r
+ <td><input name="anchorName" type="text" class="mceFocus" id="anchorName" value="" style="width: 200px" /></td>\r
+ </tr>\r
+ </table>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#update}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#standard_dlg.charmap_title}</title>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js?v=307"></script>\r
+ <script type="text/javascript" src="js/charmap.js?v=307"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body id="charmap" style="display:none">\r
+<table align="center" border="0" cellspacing="0" cellpadding="2">\r
+ <tr>\r
+ <td colspan="2" class="title">{#standard_dlg.charmap_title}</td>\r
+ </tr>\r
+ <tr>\r
+ <td id="charmapView" rowspan="2" align="left" valign="top">\r
+ <!-- Chars will be rendered here -->\r
+ </td>\r
+ <td width="100" align="center" valign="top">\r
+ <table border="0" cellpadding="0" cellspacing="0" width="100" style="height:100px">\r
+ <tr>\r
+ <td id="codeV"> </td>\r
+ </tr>\r
+ <tr>\r
+ <td id="codeN"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td valign="bottom" style="padding-bottom: 3px;">\r
+ <table width="100" align="center" border="0" cellpadding="2" cellspacing="0">\r
+ <tr>\r
+ <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">HTML-Code</td>\r
+ </tr>\r
+ <tr>\r
+ <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeA" align="center"> </td>\r
+ </tr>\r
+ <tr>\r
+ <td style="font-size: 1px;"> </td>\r
+ </tr>\r
+ <tr>\r
+ <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">NUM-Code</td>\r
+ </tr>\r
+ <tr>\r
+ <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeB" align="center"> </td>\r
+ </tr>\r
+ </table>\r
+ </td>\r
+ </tr>\r
+</table>\r
+\r
+</body>\r
+</html>\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#standard_dlg.colorpicker_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js?v=307"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js?v=307"></script>\r
+ <script type="text/javascript" src="js/color_picker.js?v=307"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body id="colorpicker" style="display: none">\r
+<form onsubmit="insertAction();return false" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="picker_tab" class="current"><span><a href="javascript:mcTabs.displayTab('picker_tab','picker_panel');" onmousedown="return false;">{#standard_dlg.colorpicker_picker_tab}</a></span></li>\r
+ <li id="rgb_tab"><span><a href="javascript:;" onclick="generateWebColors();mcTabs.displayTab('rgb_tab','rgb_panel');" onmousedown="return false;">{#standard_dlg.colorpicker_palette_tab}</a></span></li>\r
+ <li id="named_tab"><span><a href="javascript:;" onclick="generateNamedColors();javascript:mcTabs.displayTab('named_tab','named_panel');" onmousedown="return false;">{#standard_dlg.colorpicker_named_tab}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="picker_panel" class="panel current">\r
+ <fieldset>\r
+ <legend>{#standard_dlg.colorpicker_picker_title}</legend>\r
+ <div id="picker">\r
+ <img id="colors" src="img/colorpicker.jpg" onclick="computeColor(event)" onmousedown="isMouseDown = true;return false;" onmouseup="isMouseDown = false;" onmousemove="if (isMouseDown && isMouseOver) computeColor(event); return false;" onmouseover="isMouseOver=true;" onmouseout="isMouseOver=false;" />\r
+\r
+ <div id="light">\r
+ <!-- Will be filled with divs -->\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+ </div>\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="rgb_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#standard_dlg.colorpicker_palette_title}</legend>\r
+ <div id="webcolors">\r
+ <!-- Gets filled with web safe colors-->\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+ </fieldset>\r
+ </div>\r
+\r
+ <div id="named_panel" class="panel">\r
+ <fieldset>\r
+ <legend>{#standard_dlg.colorpicker_named_title}</legend>\r
+ <div id="namedcolors">\r
+ <!-- Gets filled with named colors-->\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+\r
+ <div id="colornamecontainer">\r
+ {#standard_dlg.colorpicker_name} <span id="colorname"></span>\r
+ </div>\r
+ </fieldset>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#apply}" />\r
+ </div>\r
+\r
+ <div id="preview"></div>\r
+\r
+ <div id="previewblock">\r
+ <label for="color">{#standard_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" maxlength="8" class="text mceFocus" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,each=tinymce.each,Cookie=tinymce.util.Cookie,lastExtID,explode=tinymce.explode;tinymce.ThemeManager.requireLangPack('standard');tinymce.create('tinymce.themes.standardTheme',{controls:{bold:['bold_desc','Bold'],italic:['italic_desc','Italic'],underline:['underline_desc','Underline'],strikethrough:['striketrough_desc','Strikethrough'],justifyleft:['justifyleft_desc','JustifyLeft'],justifycenter:['justifycenter_desc','JustifyCenter'],justifyright:['justifyright_desc','JustifyRight'],justifyfull:['justifyfull_desc','JustifyFull'],bullist:['bullist_desc','InsertUnorderedList'],numlist:['numlist_desc','InsertOrderedList'],outdent:['outdent_desc','Outdent'],indent:['indent_desc','Indent'],cut:['cut_desc','Cut'],copy:['copy_desc','Copy'],paste:['paste_desc','Paste'],undo:['undo_desc','Undo'],redo:['redo_desc','Redo'],link:['link_desc','mceLink'],unlink:['unlink_desc','unlink'],image:['image_desc','mceImage'],cleanup:['cleanup_desc','mceCleanup'],help:['help_desc','mceHelp'],code:['code_desc','mceCodeEditor'],hr:['hr_desc','InsertHorizontalRule'],removeformat:['removeformat_desc','RemoveFormat'],sub:['sub_desc','subscript'],sup:['sup_desc','superscript'],forecolor:['forecolor_desc','ForeColor'],forecolorpicker:['forecolor_desc','mceForeColor'],backcolor:['backcolor_desc','HiliteColor'],backcolorpicker:['backcolor_desc','mceBackColor'],charmap:['charmap_desc','mceCharMap'],visualaid:['visualaid_desc','mceToggleVisualAid'],anchor:['anchor_desc','mceInsertAnchor'],newdocument:['newdocument_desc','mceNewDocument'],blockquote:['blockquote_desc','mceBlockQuote']},stateControls:['bold','italic','underline','strikethrough','bullist','numlist','justifyleft','justifycenter','justifyright','justifyfull','sub','sup','blockquote'],init:function(ed,url){var t=this,s,v;t.editor=ed;t.url=url;t.onResolveName=new tinymce.util.Dispatcher(this);t.settings=s=extend({theme_standard_path:true,theme_standard_toolbar_location:'top',theme_standard_buttons1:"fontselect,fontsizeselect,formatselect,bold,italic,underline,strikethrough,sub,sup,undo,redo,cleanup,removeformat,|",theme_standard_buttons2:"justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,outdent,indent,forecolor,backcolor,link,unlink,anchor,image,charmap,code,|",theme_standard_buttons3:"",theme_standard_blockformats:"h1,h2,h3,h4,h5,h6,p,address,pre",theme_standard_toolbar_align:"left",theme_standard_fonts:"Trebuchet=Trebuchet MS,Verdana,Arial,Helvetica,sans-serif;Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;Wingdings=wingdings",theme_standard_font_sizes:"1,2,3,4,5,6,7",theme_standard_more_colors:1,theme_standard_row_height:23,theme_standard_resize_horizontal:1,theme_standard_resizing_use_cookie:1},ed.settings);if((v=s.theme_standard_path_location)&&v!='none')s.theme_standard_statusbar_location=s.theme_standard_path_location;if(s.theme_standard_statusbar_location=='none')s.theme_standard_statusbar_location=0;ed.onInit.add(function(){ed.onNodeChange.add(t._nodeChanged,t);if(ed.settings.content_css!==false)ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/standard/skins/"+ed.settings.skin+"/content.css"));});ed.onSetProgressState.add(function(ed,b,ti){var co,id=ed.id,tb;if(b){t.progressTimer=setTimeout(function(){co=ed.getContainer();co=co.insertBefore(DOM.create('DIV',{style:'position:relative'}),co.firstChild);tb=DOM.get(ed.id+'_tbl');DOM.add(co,'div',{id:id+'_blocker','class':'mceBlocker',style:{width:tb.clientWidth+2,height:tb.clientHeight+2}});DOM.add(co,'div',{id:id+'_progress','class':'mceProgress',style:{left:tb.clientWidth/ 2, top : tb.clientHeight /2}});},ti||0);}else{DOM.remove(id+'_blocker');DOM.remove(id+'_progress');clearTimeout(t.progressTimer);}});DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css||"themes/standard/skins/"+ed.settings.skin+"/ui.css"));if(s.skin_variant)DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css||"themes/standard/skins/"+ed.settings.skin+"/ui_"+s.skin_variant+".css"));},createControl:function(n,cf){var cd,c;if(c=cf.createControl(n))return c;switch(n){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu();}if((cd=this.controls[n]))return cf.createButton(n,{title:"standard."+cd[0],cmd:cd[1],ui:cd[2],value:cd[3]});},execCommand:function(cmd,ui,val){var f=this['_'+cmd];if(f){f.call(this,ui,val);return true;}return false;},_importClasses:function(){var ed=this.editor,c=ed.controlManager.get('styleselect');if(c.getLength()==0){each(ed.dom.getClasses(),function(o){c.add(o['class'],o['class']);});}},_createStyleSelect:function(n){var t=this,ed=t.editor,cf=ed.controlManager,c=cf.createListBox('styleselect',{title:'standard.style_select',onselect:function(v){if(c.selectedValue===v){ed.execCommand('mceSetStyleInfo',0,{command:'removeformat'});c.select();return false;}else ed.execCommand('mceReplaceContent',false,'<span lang="'+v+'" class="multilang">{$selection}</span>');}});if(c){each(ed.getParam('theme_standard_styles','','hash'),function(v,k){if(v)c.add(t.editor.translate(k),v);});c.onPostRender.add(function(ed,n){Event.add(n,'focus',t._importClasses,t);Event.add(n,'mousedown',t._importClasses,t);});}return c;},_createFontSelect:function(){var c,t=this,ed=t.editor;c=ed.controlManager.createListBox('fontselect',{title:'standard.fontdefault',cmd:'FontName'});if(c){each(ed.getParam('theme_standard_fonts',t.settings.theme_standard_fonts,'hash'),function(v,k){c.add(ed.translate(k),v,{style:v.indexOf('dings')==-1?'font-family:'+v:''});});}return c;},_createFontSizeSelect:function(){var c,t=this,lo=["1 (8 pt)","2 (10 pt)","3 (12 pt)","4 (14 pt)","5 (18 pt)","6 (24 pt)","7 (36 pt)"],fz=[8,10,12,14,18,24,36];c=t.editor.controlManager.createListBox('fontsizeselect',{title:'standard.font_size',cmd:'FontSize'});if(c){each(explode(t.settings.theme_standard_font_sizes),function(v){c.add(lo[parseInt(v)-1],v,{'style':'font-size:'+fz[v-1]+'pt','class':'mceFontSize'+v});});}return c;},_createBlockFormats:function(){var c,fmts={p:'standard.paragraph',address:'standard.address',pre:'standard.pre',h1:'standard.h1',h2:'standard.h2',h3:'standard.h3',h4:'standard.h4',h5:'standard.h5',h6:'standard.h6',div:'standard.div',blockquote:'standard.blockquote',code:'standard.code',dt:'standard.dt',dd:'standard.dd',samp:'standard.samp'},t=this;c=t.editor.controlManager.createListBox('formatselect',{title:'standard.block',cmd:'FormatBlock'});if(c){each(t.editor.getParam('theme_standard_blockformats',t.settings.theme_standard_blockformats,'hash'),function(v,k){c.add(t.editor.translate(k!=v?k:fmts[v]),v,{'class':'mce_formatPreview mce_'+v});});}return c;},_createForeColorMenu:function(){var c,t=this,s=t.settings,o={},v;if(s.theme_standard_more_colors){o.more_colors_func=function(){t._mceColorPicker(0,{color:c.value,func:function(co){c.setColor(co);}});};}if(v=s.theme_standard_text_colors)o.colors=v;o.title='standard.forecolor_desc';o.cmd='ForeColor';o.scope=this;c=t.editor.controlManager.createColorSplitButton('forecolor',o);return c;},_createBackColorMenu:function(){var c,t=this,s=t.settings,o={},v;if(s.theme_standard_more_colors){o.more_colors_func=function(){t._mceColorPicker(0,{color:c.value,func:function(co){c.setColor(co);}});};}if(v=s.theme_standard_background_colors)o.colors=v;o.title='standard.backcolor_desc';o.cmd='HiliteColor';o.scope=this;c=t.editor.controlManager.createColorSplitButton('backcolor',o);return c;},renderUI:function(o){var n,ic,tb,t=this,ed=t.editor,s=t.settings,sc,p,nl;n=p=DOM.create('span',{id:ed.id+'_parent','class':'mceEditor '+ed.settings.skin+'Skin'+(s.skin_variant?' '+ed.settings.skin+'Skin'+t._ufirst(s.skin_variant):'')});if(!DOM.boxModel)n=DOM.add(n,'div',{'class':'mceOldBoxModel'});n=sc=DOM.add(n,'table',{id:ed.id+'_tbl','class':'mceLayout',cellSpacing:0,cellPadding:0});n=tb=DOM.add(n,'tbody');switch((s.theme_standard_layout_manager||'').toLowerCase()){case"rowlayout":ic=t._rowLayout(s,tb,o);break;case"customlayout":ic=ed.execCallback("theme_standard_custom_layout",s,tb,o,p);break;default:ic=t._simpleLayout(s,tb,o,p);}n=o.targetNode;nl=DOM.stdMode?sc.getElementsByTagName('tr'):sc.rows;DOM.addClass(nl[0],'mceFirst');DOM.addClass(nl[nl.length-1],'mceLast');each(DOM.select('tr',tb),function(n){DOM.addClass(n.firstChild,'mceFirst');DOM.addClass(n.childNodes[n.childNodes.length-1],'mceLast');});if(DOM.get(s.theme_standard_toolbar_container))DOM.get(s.theme_standard_toolbar_container).appendChild(p);else DOM.insertAfter(p,n);Event.add(ed.id+'_path_row','click',function(e){e=e.target;if(e.nodeName=='A'){t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/,'$1'));return Event.cancel(e);}});if(!ed.getParam('accessibility_focus')||ed.getParam('tab_focus'))Event.add(DOM.add(p,'a',{href:'#'},'<!-- IE -->'),'focus',function(){tinyMCE.get(ed.id).focus();});if(s.theme_standard_toolbar_location=='external')o.deltaHeight=0;t.deltaHeight=o.deltaHeight;o.targetNode=null;return{iframeContainer:ic,editorContainer:ed.id+'_parent',sizeContainer:sc,deltaHeight:o.deltaHeight};},getInfo:function(){return{longname:'standard theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}},resizeBy:function(dw,dh){var e=DOM.get(this.editor.id+'_tbl');this.resizeTo(e.clientWidth+dw,e.clientHeight+dh);},resizeTo:function(w,h){var ed=this.editor,s=ed.settings,e=DOM.get(ed.id+'_tbl'),ifr=DOM.get(ed.id+'_ifr'),dh;w=Math.max(s.theme_standard_resizing_min_width||100,w);h=Math.max(s.theme_standard_resizing_min_height||100,h);w=Math.min(s.theme_standard_resizing_max_width||0xFFFF,w);h=Math.min(s.theme_standard_resizing_max_height||0xFFFF,h);dh=e.clientHeight-ifr.clientHeight;DOM.setStyle(ifr,'height',h-dh);DOM.setStyles(e,{width:w,height:h});},destroy:function(){var id=this.editor.id;Event.clear(id+'_resize');Event.clear(id+'_path_row');Event.clear(id+'_external_close');},_simpleLayout:function(s,tb,o,p){var t=this,ed=t.editor,lo=s.theme_standard_toolbar_location,sl=s.theme_standard_statusbar_location,n,ic,etb,c;if(lo=='top')t._addToolbars(tb,o);if(lo=='external'){n=c=DOM.create('div',{style:'position:relative'});n=DOM.add(n,'div',{id:ed.id+'_external','class':'mceExternalToolbar'});DOM.add(n,'a',{id:ed.id+'_external_close',href:'javascript:;','class':'mceExternalClose'});n=DOM.add(n,'table',{id:ed.id+'_tblext',cellSpacing:0,cellPadding:0});etb=DOM.add(n,'tbody');if(p.firstChild.className=='mceOldBoxModel')p.firstChild.appendChild(c);else p.insertBefore(c,p.firstChild);t._addToolbars(etb,o);ed.onMouseUp.add(function(){var e=DOM.get(ed.id+'_external');DOM.show(e);DOM.hide(lastExtID);var f=Event.add(ed.id+'_external_close','click',function(){DOM.hide(ed.id+'_external');Event.remove(ed.id+'_external_close','click',f);});DOM.show(e);DOM.setStyle(e,'top',0-DOM.getRect(ed.id+'_tblext').h-1);DOM.hide(e);DOM.show(e);e.style.filter='';lastExtID=ed.id+'_external';e=null;});}if(sl=='top')t._addStatusBar(tb,o);if(!s.theme_standard_toolbar_container){n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});}if(lo=='bottom')t._addToolbars(tb,o);if(sl=='bottom')t._addStatusBar(tb,o);return ic;},_rowLayout:function(s,tb,o){var t=this,ed=t.editor,dc,da,cf=ed.controlManager,n,ic,to,a;dc=s.theme_standard_containers_default_class||'';da=s.theme_standard_containers_default_align||'center';each(explode(s.theme_standard_containers||''),function(c,i){var v=s['theme_standard_container_'+c]||'';switch(c.toLowerCase()){case'mceeditor':n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});break;case'mceelementpath':t._addStatusBar(tb,o);break;default:a=s['theme_standard_container_'+c+'_align'].toLowerCase();a='mce'+t._ufirst(a);n=DOM.add(DOM.add(tb,'tr'),'td',{'class':'mceToolbar '+(s['theme_standard_container_'+c+'_class']||dc)+' '+a||da});to=cf.createToolbar("toolbar"+i);t._addControls(v,to);DOM.setHTML(n,to.renderHTML());o.deltaHeight-=s.theme_standard_row_height;}});return ic;},_addControls:function(v,tb){var t=this,s=t.settings,di,cf=t.editor.controlManager;if(s.theme_standard_disable&&!t._disabled){di={};each(explode(s.theme_standard_disable),function(v){di[v]=1;});t._disabled=di;}else di=t._disabled;each(explode(v),function(n){var c;if(di&&di[n])return;if(n=='tablecontrols'){each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"],function(n){n=t.createControl(n,cf);if(n)tb.add(n);});return;}c=t.createControl(n,cf);if(c)tb.add(c);});},_addToolbars:function(c,o){var t=this,i,tb,ed=t.editor,s=t.settings,v,cf=ed.controlManager,di,n,h=[],a;a=s.theme_standard_toolbar_align.toLowerCase();a='mce'+t._ufirst(a);n=DOM.add(DOM.add(c,'tr'),'td',{'class':'mceToolbar '+a});if(!ed.getParam('accessibility_focus')||ed.getParam('tab_focus'))h.push(DOM.createHTML('a',{href:'#',onfocus:'tinyMCE.get(\''+ed.id+'\').focus();'},'<!-- IE -->'));h.push(DOM.createHTML('a',{href:'#',accesskey:'q',title:ed.getLang("standard.toolbar_focus")},'<!-- IE -->'));for(i=1;(v=s['theme_standard_buttons'+i]);i++){tb=cf.createToolbar("toolbar"+i,{'class':'mceToolbarRow'+i});if(s['theme_standard_buttons'+i+'_add'])v+=','+s['theme_standard_buttons'+i+'_add'];if(s['theme_standard_buttons'+i+'_add_before'])v=s['theme_standard_buttons'+i+'_add_before']+','+v;t._addControls(v,tb);h.push(tb.renderHTML());o.deltaHeight-=s.theme_standard_row_height;}h.push(DOM.createHTML('a',{href:'#',accesskey:'z',title:ed.getLang("standard.toolbar_focus"),onfocus:'tinyMCE.getInstanceById(\''+ed.id+'\').focus();'},'<!-- IE -->'));DOM.setHTML(n,h.join(''));},_addStatusBar:function(tb,o){var n,t=this,ed=t.editor,s=t.settings,r,mf,me,td;n=DOM.add(tb,'tr');n=td=DOM.add(n,'td',{'class':'mceStatusbar'});n=DOM.add(n,'div',{id:ed.id+'_path_row'},s.theme_standard_path?ed.translate('standard.path')+': ':' ');DOM.add(n,'a',{href:'#',accesskey:'x'});if(s.theme_standard_resizing&&!tinymce.isOldWebKit){DOM.add(td,'a',{id:ed.id+'_resize',href:'javascript:;',onclick:"return false;",'class':'mceResize'});if(s.theme_standard_resizing_use_cookie){ed.onPostRender.add(function(){var o=Cookie.getHash("TinyMCE_"+ed.id+"_size"),c=DOM.get(ed.id+'_tbl');if(!o)return;if(s.theme_standard_resize_horizontal)c.style.width=Math.max(10,o.cw)+'px';c.style.height=Math.max(10,o.ch)+'px';DOM.get(ed.id+'_ifr').style.height=Math.max(10,parseInt(o.ch)+t.deltaHeight)+'px';});}ed.onPostRender.add(function(){Event.add(ed.id+'_resize','mousedown',function(e){var c,p,w,h,n,pa;c=DOM.get(ed.id+'_tbl');w=c.clientWidth;h=c.clientHeight;miw=s.theme_standard_resizing_min_width||100;mih=s.theme_standard_resizing_min_height||100;maw=s.theme_standard_resizing_max_width||0xFFFF;mah=s.theme_standard_resizing_max_height||0xFFFF;p=DOM.add(DOM.get(ed.id+'_parent'),'div',{'class':'mcePlaceHolder'});DOM.setStyles(p,{width:w,height:h});DOM.hide(c);DOM.show(p);r={x:e.screenX,y:e.screenY,w:w,h:h,dx:null,dy:null};mf=Event.add(DOM.doc,'mousemove',function(e){var w,h;r.dx=e.screenX-r.x;r.dy=e.screenY-r.y;w=Math.max(miw,r.w+r.dx);h=Math.max(mih,r.h+r.dy);w=Math.min(maw,w);h=Math.min(mah,h);if(s.theme_standard_resize_horizontal)p.style.width=w+'px';p.style.height=h+'px';return Event.cancel(e);});me=Event.add(DOM.doc,'mouseup',function(e){var ifr;Event.remove(DOM.doc,'mousemove',mf);Event.remove(DOM.doc,'mouseup',me);c.style.display='';DOM.remove(p);if(r.dx===null)return;ifr=DOM.get(ed.id+'_ifr');if(s.theme_standard_resize_horizontal)c.style.width=Math.max(10,r.w+r.dx)+'px';c.style.height=Math.max(10,r.h+r.dy)+'px';ifr.style.height=Math.max(10,ifr.clientHeight+r.dy)+'px';if(s.theme_standard_resizing_use_cookie){Cookie.setHash("TinyMCE_"+ed.id+"_size",{cw:r.w+r.dx,ch:r.h+r.dy});}});return Event.cancel(e);});});}o.deltaHeight-=21;n=tb=null;},_nodeChanged:function(ed,cm,n,co){var t=this,p,de=0,v,c,s=t.settings;tinymce.each(t.stateControls,function(c){cm.setActive(c,ed.queryCommandState(t.controls[c][1]));});cm.setActive('visualaid',ed.hasVisual);cm.setDisabled('undo',!ed.undoManager.hasUndo()&&!ed.typing);cm.setDisabled('redo',!ed.undoManager.hasRedo());cm.setDisabled('outdent',!ed.queryCommandState('Outdent'));p=DOM.getParent(n,'A');if(c=cm.get('link')){if(!p||!p.name){c.setDisabled(!p&&co);c.setActive(!!p);}}if(c=cm.get('unlink')){c.setDisabled(!p&&co);c.setActive(!!p&&!p.name);}if(c=cm.get('anchor')){c.setActive(!!p&&p.name);if(tinymce.isWebKit){p=DOM.getParent(n,'IMG');c.setActive(!!p&&DOM.getAttrib(p,'mce_name')=='a');}}p=DOM.getParent(n,'IMG');if(c=cm.get('image'))c.setActive(!!p&&n.className.indexOf('mceItem')==-1);if(c=cm.get('styleselect')){if(n.className){t._importClasses();c.select(n.className);}else c.select();}if(c=cm.get('formatselect')){p=DOM.getParent(n,DOM.isBlock);if(p)c.select(p.nodeName.toLowerCase());}if(c=cm.get('fontselect'))c.select(ed.queryCommandValue('FontName'));if(c=cm.get('fontsizeselect'))c.select(ed.queryCommandValue('FontSize'));if(s.theme_standard_path&&s.theme_standard_statusbar_location){p=DOM.get(ed.id+'_path')||DOM.add(ed.id+'_path_row','span',{id:ed.id+'_path'});DOM.setHTML(p,'');ed.dom.getParent(n,function(n){var na=n.nodeName.toLowerCase(),u,pi,ti='';if(n.nodeType!=1||(DOM.hasClass(n,'mceItemHidden')||DOM.hasClass(n,'mceItemRemoved')))return;if(v=DOM.getAttrib(n,'mce_name'))na=v;if(tinymce.isIE&&n.scopeName!=='HTML')na=n.scopeName+':'+na;na=na.replace(/mce\:/g,'');switch(na){case'b':na='strong';break;case'i':na='em';break;case'img':if(v=DOM.getAttrib(n,'src'))ti+='src: '+v+' ';break;case'a':if(v=DOM.getAttrib(n,'name')){ti+='name: '+v+' ';na+='#'+v;}if(v=DOM.getAttrib(n,'href'))ti+='href: '+v+' ';break;case'font':if(s.convert_fonts_to_spans)na='span';if(v=DOM.getAttrib(n,'face'))ti+='font: '+v+' ';if(v=DOM.getAttrib(n,'size'))ti+='size: '+v+' ';if(v=DOM.getAttrib(n,'color'))ti+='color: '+v+' ';break;case'span':if(v=DOM.getAttrib(n,'style'))ti+='style: '+v+' ';break;}if(v=DOM.getAttrib(n,'id'))ti+='id: '+v+' ';if(v=n.className){v=v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g,'');if(v&&v.indexOf('mceItem')==-1){ti+='class: '+v+' ';if(DOM.isBlock(n)||na=='img'||na=='span')na+='.'+v;}}na=na.replace(/(html:)/g,'');na={name:na,node:n,title:ti};t.onResolveName.dispatch(t,na);ti=na.title;na=na.name;pi=DOM.create('a',{'href':"javascript:;",onmousedown:"return false;",title:ti,'class':'mcePath_'+(de++)},na);if(p.hasChildNodes()){p.insertBefore(DOM.doc.createTextNode(' \u00bb '),p.firstChild);p.insertBefore(pi,p.firstChild);}else p.appendChild(pi);},ed.getBody());}},_sel:function(v){this.editor.execCommand('mceSelectNodeDepth',false,v);},_mceInsertAnchor:function(ui,v){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/standard/anchor.htm',width:320+parseInt(ed.getLang('standard.anchor_delta_width',0)),height:90+parseInt(ed.getLang('standard.anchor_delta_height',0)),inline:true},{theme_url:this.url});},_mceCharMap:function(){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/standard/charmap.htm',width:550+parseInt(ed.getLang('standard.charmap_delta_width',0)),height:250+parseInt(ed.getLang('standard.charmap_delta_height',0)),inline:true},{theme_url:this.url});},_mceHelp:function(){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/standard/about.htm',width:480,height:380,inline:true},{theme_url:this.url});},_mceColorPicker:function(u,v){var ed=this.editor;v=v||{};ed.windowManager.open({url:tinymce.baseURL+'/themes/standard/color_picker.htm',width:375+parseInt(ed.getLang('standard.colorpicker_delta_width',0)),height:250+parseInt(ed.getLang('standard.colorpicker_delta_height',0)),close_previous:false,inline:true},{input_color:v.color,func:v.func,theme_url:this.url});},_mceCodeEditor:function(ui,val){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/standard/source_editor.htm',width:parseInt(ed.getParam("theme_standard_source_editor_width",720)),height:parseInt(ed.getParam("theme_standard_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url});},_mceImage:function(ui,val){var ed=this.editor;if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({url:tinymce.baseURL+'/themes/standard/image.htm',width:355+parseInt(ed.getLang('standard.image_delta_width',0)),height:275+parseInt(ed.getLang('standard.image_delta_height',0)),inline:true},{theme_url:this.url});},_mceLink:function(ui,val){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/standard/link.htm',width:310+parseInt(ed.getLang('standard.link_delta_width',0)),height:200+parseInt(ed.getLang('standard.link_delta_height',0)),inline:true},{theme_url:this.url});},_mceNewDocument:function(){var ed=this.editor;ed.windowManager.confirm('standard.newdocument',function(s){if(s)ed.execCommand('mceSetContent',false,'');});},_mceForeColor:function(){var t=this;this._mceColorPicker(0,{color:t.fgColor,func:function(co){t.fgColor=co;t.editor.execCommand('ForeColor',false,co);}});},_mceBackColor:function(){var t=this;this._mceColorPicker(0,{color:t.bgColor,func:function(co){t.bgColor=co;t.editor.execCommand('HiliteColor',false,co);}});},_ufirst:function(s){return s.substring(0,1).toUpperCase()+s.substring(1);}});tinymce.ThemeManager.add('standard',tinymce.themes.standardTheme);}());
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode;\r
+\r
+ // Tell it to load theme specific language pack(s)\r
+ tinymce.ThemeManager.requireLangPack('standard');\r
+\r
+ tinymce.create('tinymce.themes.standardTheme', {\r
+ // Control name lookup, format: title, command\r
+ controls : {\r
+ bold : ['bold_desc', 'Bold'],\r
+ italic : ['italic_desc', 'Italic'],\r
+ underline : ['underline_desc', 'Underline'],\r
+ strikethrough : ['striketrough_desc', 'Strikethrough'],\r
+ justifyleft : ['justifyleft_desc', 'JustifyLeft'],\r
+ justifycenter : ['justifycenter_desc', 'JustifyCenter'],\r
+ justifyright : ['justifyright_desc', 'JustifyRight'],\r
+ justifyfull : ['justifyfull_desc', 'JustifyFull'],\r
+ bullist : ['bullist_desc', 'InsertUnorderedList'],\r
+ numlist : ['numlist_desc', 'InsertOrderedList'],\r
+ outdent : ['outdent_desc', 'Outdent'],\r
+ indent : ['indent_desc', 'Indent'],\r
+ cut : ['cut_desc', 'Cut'],\r
+ copy : ['copy_desc', 'Copy'],\r
+ paste : ['paste_desc', 'Paste'],\r
+ undo : ['undo_desc', 'Undo'],\r
+ redo : ['redo_desc', 'Redo'],\r
+ link : ['link_desc', 'mceLink'],\r
+ unlink : ['unlink_desc', 'unlink'],\r
+ image : ['image_desc', 'mceImage'],\r
+ cleanup : ['cleanup_desc', 'mceCleanup'],\r
+ help : ['help_desc', 'mceHelp'],\r
+ code : ['code_desc', 'mceCodeEditor'],\r
+ hr : ['hr_desc', 'InsertHorizontalRule'],\r
+ removeformat : ['removeformat_desc', 'RemoveFormat'],\r
+ sub : ['sub_desc', 'subscript'],\r
+ sup : ['sup_desc', 'superscript'],\r
+ forecolor : ['forecolor_desc', 'ForeColor'],\r
+ forecolorpicker : ['forecolor_desc', 'mceForeColor'],\r
+ backcolor : ['backcolor_desc', 'HiliteColor'],\r
+ backcolorpicker : ['backcolor_desc', 'mceBackColor'],\r
+ charmap : ['charmap_desc', 'mceCharMap'],\r
+ visualaid : ['visualaid_desc', 'mceToggleVisualAid'],\r
+ anchor : ['anchor_desc', 'mceInsertAnchor'],\r
+ newdocument : ['newdocument_desc', 'mceNewDocument'],\r
+ blockquote : ['blockquote_desc', 'mceBlockQuote']\r
+ },\r
+\r
+ stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'],\r
+\r
+ init : function(ed, url) {\r
+ var t = this, s, v;\r
+ \r
+ t.editor = ed;\r
+ t.url = url;\r
+ t.onResolveName = new tinymce.util.Dispatcher(this);\r
+\r
+ // Default settings\r
+ t.settings = s = extend({\r
+ theme_standard_path : true,\r
+ theme_standard_toolbar_location : 'top',\r
+ theme_standard_buttons1 : "fontselect,fontsizeselect,formatselect,bold,italic,underline,strikethrough,sub,sup,undo,redo,cleanup,removeformat,|",\r
+ theme_standard_buttons2 : "justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,outdent,indent,forecolor,backcolor,link,unlink,anchor,image,charmap,code,|",\r
+ theme_standard_buttons3 : "",\r
+ theme_standard_blockformats : "h1,h2,h3,h4,h5,h6,p,address,pre",\r
+ theme_standard_toolbar_align : "left",\r
+ theme_standard_fonts : "Trebuchet=Trebuchet MS,Verdana,Arial,Helvetica,sans-serif;Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;Wingdings=wingdings",\r
+ theme_standard_font_sizes : "1,2,3,4,5,6,7",\r
+ theme_standard_more_colors : 1,\r
+ theme_standard_row_height : 23,\r
+ theme_standard_resize_horizontal : 1,\r
+ theme_standard_resizing_use_cookie : 1\r
+ }, ed.settings);\r
+\r
+ if ((v = s.theme_standard_path_location) && v != 'none')\r
+ s.theme_standard_statusbar_location = s.theme_standard_path_location;\r
+\r
+ if (s.theme_standard_statusbar_location == 'none')\r
+ s.theme_standard_statusbar_location = 0;\r
+\r
+ // Init editor\r
+ ed.onInit.add(function() {\r
+ ed.onNodeChange.add(t._nodeChanged, t);\r
+\r
+ if (ed.settings.content_css !== false)\r
+ ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/standard/skins/" + ed.settings.skin + "/content.css"));\r
+ });\r
+\r
+ ed.onSetProgressState.add(function(ed, b, ti) {\r
+ var co, id = ed.id, tb;\r
+\r
+ if (b) {\r
+ t.progressTimer = setTimeout(function() {\r
+ co = ed.getContainer();\r
+ co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild);\r
+ tb = DOM.get(ed.id + '_tbl');\r
+\r
+ DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}});\r
+ DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}});\r
+ }, ti || 0);\r
+ } else {\r
+ DOM.remove(id + '_blocker');\r
+ DOM.remove(id + '_progress');\r
+ clearTimeout(t.progressTimer);\r
+ }\r
+ });\r
+\r
+ DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/standard/skins/" + ed.settings.skin + "/ui.css"));\r
+\r
+ if (s.skin_variant)\r
+ DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/standard/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css"));\r
+ },\r
+\r
+ createControl : function(n, cf) {\r
+ var cd, c;\r
+\r
+ if (c = cf.createControl(n))\r
+ return c;\r
+\r
+ switch (n) {\r
+ case "styleselect":\r
+ return this._createStyleSelect();\r
+\r
+ case "formatselect":\r
+ return this._createBlockFormats();\r
+\r
+ case "fontselect":\r
+ return this._createFontSelect();\r
+\r
+ case "fontsizeselect":\r
+ return this._createFontSizeSelect();\r
+\r
+ case "forecolor":\r
+ return this._createForeColorMenu();\r
+\r
+ case "backcolor":\r
+ return this._createBackColorMenu();\r
+ }\r
+\r
+ if ((cd = this.controls[n]))\r
+ return cf.createButton(n, {title : "standard." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]});\r
+ },\r
+\r
+ execCommand : function(cmd, ui, val) {\r
+ var f = this['_' + cmd];\r
+\r
+ if (f) {\r
+ f.call(this, ui, val);\r
+ return true;\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ _importClasses : function() {\r
+ var ed = this.editor, c = ed.controlManager.get('styleselect');\r
+\r
+ if (c.getLength() == 0) {\r
+ each(ed.dom.getClasses(), function(o) {\r
+ c.add(o['class'], o['class']);\r
+ });\r
+ }\r
+ },\r
+\r
+ _createStyleSelect : function(n) {\r
+ var t = this, ed = t.editor, cf = ed.controlManager, c = cf.createListBox('styleselect', {\r
+ title : 'standard.style_select',\r
+ onselect : function(v) {\r
+ if (c.selectedValue === v) {\r
+ ed.execCommand('mceSetStyleInfo', 0, {command : 'removeformat'});\r
+ c.select();\r
+ return false;\r
+ } else\r
+ ed.execCommand('mceReplaceContent',false,'<span lang="'+v+'" class="multilang">{$selection}</span>');\r
+ }\r
+ });\r
+\r
+ if (c) {\r
+ each(ed.getParam('theme_standard_styles', '', 'hash'), function(v, k) {\r
+ if (v)\r
+ c.add(t.editor.translate(k), v);\r
+ });\r
+\r
+ c.onPostRender.add(function(ed, n) {\r
+ Event.add(n, 'focus', t._importClasses, t);\r
+ Event.add(n, 'mousedown', t._importClasses, t);\r
+ });\r
+ }\r
+\r
+ return c;\r
+ },\r
+\r
+ _createFontSelect : function() {\r
+ var c, t = this, ed = t.editor;\r
+\r
+ c = ed.controlManager.createListBox('fontselect', {title : 'standard.fontdefault', cmd : 'FontName'});\r
+ if (c) {\r
+ each(ed.getParam('theme_standard_fonts', t.settings.theme_standard_fonts, 'hash'), function(v, k) {\r
+ c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''});\r
+ });\r
+ }\r
+\r
+ return c;\r
+ },\r
+\r
+ _createFontSizeSelect : function() {\r
+ var c, t = this, lo = [\r
+ "1 (8 pt)",\r
+ "2 (10 pt)",\r
+ "3 (12 pt)",\r
+ "4 (14 pt)",\r
+ "5 (18 pt)",\r
+ "6 (24 pt)",\r
+ "7 (36 pt)"\r
+ ], fz = [8, 10, 12, 14, 18, 24, 36];\r
+\r
+ c = t.editor.controlManager.createListBox('fontsizeselect', {title : 'standard.font_size', cmd : 'FontSize'});\r
+ if (c) {\r
+ each(explode(t.settings.theme_standard_font_sizes), function(v) {\r
+ c.add(lo[parseInt(v) - 1], v, {'style' : 'font-size:' + fz[v - 1] + 'pt', 'class' : 'mceFontSize' + v});\r
+ });\r
+ }\r
+\r
+ return c;\r
+ },\r
+\r
+ _createBlockFormats : function() {\r
+ var c, fmts = {\r
+ p : 'standard.paragraph',\r
+ address : 'standard.address',\r
+ pre : 'standard.pre',\r
+ h1 : 'standard.h1',\r
+ h2 : 'standard.h2',\r
+ h3 : 'standard.h3',\r
+ h4 : 'standard.h4',\r
+ h5 : 'standard.h5',\r
+ h6 : 'standard.h6',\r
+ div : 'standard.div',\r
+ blockquote : 'standard.blockquote',\r
+ code : 'standard.code',\r
+ dt : 'standard.dt',\r
+ dd : 'standard.dd',\r
+ samp : 'standard.samp'\r
+ }, t = this;\r
+\r
+ c = t.editor.controlManager.createListBox('formatselect', {title : 'standard.block', cmd : 'FormatBlock'});\r
+ if (c) {\r
+ each(t.editor.getParam('theme_standard_blockformats', t.settings.theme_standard_blockformats, 'hash'), function(v, k) {\r
+ c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v});\r
+ });\r
+ }\r
+\r
+ return c;\r
+ },\r
+\r
+ _createForeColorMenu : function() {\r
+ var c, t = this, s = t.settings, o = {}, v;\r
+\r
+ if (s.theme_standard_more_colors) {\r
+ o.more_colors_func = function() {\r
+ t._mceColorPicker(0, {\r
+ color : c.value,\r
+ func : function(co) {\r
+ c.setColor(co);\r
+ }\r
+ });\r
+ };\r
+ }\r
+\r
+ if (v = s.theme_standard_text_colors)\r
+ o.colors = v;\r
+\r
+ o.title = 'standard.forecolor_desc';\r
+ o.cmd = 'ForeColor';\r
+ o.scope = this;\r
+\r
+ c = t.editor.controlManager.createColorSplitButton('forecolor', o);\r
+\r
+ return c;\r
+ },\r
+\r
+ _createBackColorMenu : function() {\r
+ var c, t = this, s = t.settings, o = {}, v;\r
+\r
+ if (s.theme_standard_more_colors) {\r
+ o.more_colors_func = function() {\r
+ t._mceColorPicker(0, {\r
+ color : c.value,\r
+ func : function(co) {\r
+ c.setColor(co);\r
+ }\r
+ });\r
+ };\r
+ }\r
+\r
+ if (v = s.theme_standard_background_colors)\r
+ o.colors = v;\r
+\r
+ o.title = 'standard.backcolor_desc';\r
+ o.cmd = 'HiliteColor';\r
+ o.scope = this;\r
+\r
+ c = t.editor.controlManager.createColorSplitButton('backcolor', o);\r
+\r
+ return c;\r
+ },\r
+\r
+ renderUI : function(o) {\r
+ var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl;\r
+\r
+ n = p = DOM.create('span', {id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')});\r
+\r
+ if (!DOM.boxModel)\r
+ n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'});\r
+\r
+ n = sc = DOM.add(n, 'table', {id : ed.id + '_tbl', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0});\r
+ n = tb = DOM.add(n, 'tbody');\r
+\r
+ switch ((s.theme_standard_layout_manager || '').toLowerCase()) {\r
+ case "rowlayout":\r
+ ic = t._rowLayout(s, tb, o);\r
+ break;\r
+\r
+ case "customlayout":\r
+ ic = ed.execCallback("theme_standard_custom_layout", s, tb, o, p);\r
+ break;\r
+\r
+ default:\r
+ ic = t._simpleLayout(s, tb, o, p);\r
+ }\r
+\r
+ n = o.targetNode;\r
+\r
+ // Add classes to first and last TRs\r
+ nl = DOM.stdMode ? sc.getElementsByTagName('tr') : sc.rows; // Quick fix for IE 8\r
+ DOM.addClass(nl[0], 'mceFirst');\r
+ DOM.addClass(nl[nl.length - 1], 'mceLast');\r
+\r
+ // Add classes to first and last TDs\r
+ each(DOM.select('tr', tb), function(n) {\r
+ DOM.addClass(n.firstChild, 'mceFirst');\r
+ DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast');\r
+ });\r
+\r
+ if (DOM.get(s.theme_standard_toolbar_container))\r
+ DOM.get(s.theme_standard_toolbar_container).appendChild(p);\r
+ else\r
+ DOM.insertAfter(p, n);\r
+\r
+ Event.add(ed.id + '_path_row', 'click', function(e) {\r
+ e = e.target;\r
+\r
+ if (e.nodeName == 'A') {\r
+ t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1'));\r
+\r
+ return Event.cancel(e);\r
+ }\r
+ });\r
+/*\r
+ if (DOM.get(ed.id + '_path_row')) {\r
+ Event.add(ed.id + '_tbl', 'mouseover', function(e) {\r
+ var re;\r
+ \r
+ e = e.target;\r
+\r
+ if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) {\r
+ re = DOM.get(ed.id + '_path_row');\r
+ t.lastPath = re.innerHTML;\r
+ DOM.setHTML(re, e.parentNode.title);\r
+ }\r
+ });\r
+\r
+ Event.add(ed.id + '_tbl', 'mouseout', function(e) {\r
+ if (t.lastPath) {\r
+ DOM.setHTML(ed.id + '_path_row', t.lastPath);\r
+ t.lastPath = 0;\r
+ }\r
+ });\r
+ }\r
+*/\r
+\r
+ if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))\r
+ Event.add(DOM.add(p, 'a', {href : '#'}, '<!-- IE -->'), 'focus', function() {tinyMCE.get(ed.id).focus();});\r
+\r
+ if (s.theme_standard_toolbar_location == 'external')\r
+ o.deltaHeight = 0;\r
+\r
+ t.deltaHeight = o.deltaHeight;\r
+ o.targetNode = null;\r
+\r
+ return {\r
+ iframeContainer : ic,\r
+ editorContainer : ed.id + '_parent',\r
+ sizeContainer : sc,\r
+ deltaHeight : o.deltaHeight\r
+ };\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'standard theme',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ }\r
+ },\r
+\r
+ resizeBy : function(dw, dh) {\r
+ var e = DOM.get(this.editor.id + '_tbl');\r
+\r
+ this.resizeTo(e.clientWidth + dw, e.clientHeight + dh);\r
+ },\r
+\r
+ resizeTo : function(w, h) {\r
+ var ed = this.editor, s = ed.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr'), dh;\r
+\r
+ // Boundery fix box\r
+ w = Math.max(s.theme_standard_resizing_min_width || 100, w);\r
+ h = Math.max(s.theme_standard_resizing_min_height || 100, h);\r
+ w = Math.min(s.theme_standard_resizing_max_width || 0xFFFF, w);\r
+ h = Math.min(s.theme_standard_resizing_max_height || 0xFFFF, h);\r
+\r
+ // Calc difference between iframe and container\r
+ dh = e.clientHeight - ifr.clientHeight;\r
+\r
+ // Resize iframe and container\r
+ DOM.setStyle(ifr, 'height', h - dh);\r
+ DOM.setStyles(e, {width : w, height : h});\r
+ },\r
+\r
+ destroy : function() {\r
+ var id = this.editor.id;\r
+\r
+ Event.clear(id + '_resize');\r
+ Event.clear(id + '_path_row');\r
+ Event.clear(id + '_external_close');\r
+ },\r
+\r
+ // Internal functions\r
+\r
+ _simpleLayout : function(s, tb, o, p) {\r
+ var t = this, ed = t.editor, lo = s.theme_standard_toolbar_location, sl = s.theme_standard_statusbar_location, n, ic, etb, c;\r
+\r
+ // Create toolbar container at top\r
+ if (lo == 'top')\r
+ t._addToolbars(tb, o);\r
+\r
+ // Create external toolbar\r
+ if (lo == 'external') {\r
+ n = c = DOM.create('div', {style : 'position:relative'});\r
+ n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'});\r
+ DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'});\r
+ n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0});\r
+ etb = DOM.add(n, 'tbody');\r
+\r
+ if (p.firstChild.className == 'mceOldBoxModel')\r
+ p.firstChild.appendChild(c);\r
+ else\r
+ p.insertBefore(c, p.firstChild);\r
+\r
+ t._addToolbars(etb, o);\r
+\r
+ ed.onMouseUp.add(function() {\r
+ var e = DOM.get(ed.id + '_external');\r
+ DOM.show(e);\r
+\r
+ DOM.hide(lastExtID);\r
+\r
+ var f = Event.add(ed.id + '_external_close', 'click', function() {\r
+ DOM.hide(ed.id + '_external');\r
+ Event.remove(ed.id + '_external_close', 'click', f);\r
+ });\r
+\r
+ DOM.show(e);\r
+ DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1);\r
+\r
+ // Fixes IE rendering bug\r
+ DOM.hide(e);\r
+ DOM.show(e);\r
+ e.style.filter = '';\r
+\r
+ lastExtID = ed.id + '_external';\r
+\r
+ e = null;\r
+ });\r
+ }\r
+\r
+ if (sl == 'top')\r
+ t._addStatusBar(tb, o);\r
+\r
+ // Create iframe container\r
+ if (!s.theme_standard_toolbar_container) {\r
+ n = DOM.add(tb, 'tr');\r
+ n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
+ }\r
+\r
+ // Create toolbar container at bottom\r
+ if (lo == 'bottom')\r
+ t._addToolbars(tb, o);\r
+\r
+ if (sl == 'bottom')\r
+ t._addStatusBar(tb, o);\r
+\r
+ return ic;\r
+ },\r
+\r
+ _rowLayout : function(s, tb, o) {\r
+ var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a;\r
+\r
+ dc = s.theme_standard_containers_default_class || '';\r
+ da = s.theme_standard_containers_default_align || 'center';\r
+\r
+ each(explode(s.theme_standard_containers || ''), function(c, i) {\r
+ var v = s['theme_standard_container_' + c] || '';\r
+\r
+ switch (c.toLowerCase()) {\r
+ case 'mceeditor':\r
+ n = DOM.add(tb, 'tr');\r
+ n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
+ break;\r
+\r
+ case 'mceelementpath':\r
+ t._addStatusBar(tb, o);\r
+ break;\r
+\r
+ default:\r
+ a = s['theme_standard_container_' + c + '_align'].toLowerCase();\r
+ a = 'mce' + t._ufirst(a);\r
+\r
+ n = DOM.add(DOM.add(tb, 'tr'), 'td', {\r
+ 'class' : 'mceToolbar ' + (s['theme_standard_container_' + c + '_class'] || dc) + ' ' + a || da\r
+ });\r
+\r
+ to = cf.createToolbar("toolbar" + i);\r
+ t._addControls(v, to);\r
+ DOM.setHTML(n, to.renderHTML());\r
+ o.deltaHeight -= s.theme_standard_row_height;\r
+ }\r
+ });\r
+\r
+ return ic;\r
+ },\r
+\r
+ _addControls : function(v, tb) {\r
+ var t = this, s = t.settings, di, cf = t.editor.controlManager;\r
+\r
+ if (s.theme_standard_disable && !t._disabled) {\r
+ di = {};\r
+\r
+ each(explode(s.theme_standard_disable), function(v) {\r
+ di[v] = 1;\r
+ });\r
+\r
+ t._disabled = di;\r
+ } else\r
+ di = t._disabled;\r
+\r
+ each(explode(v), function(n) {\r
+ var c;\r
+\r
+ if (di && di[n])\r
+ return;\r
+\r
+ // Compatiblity with 2.x\r
+ if (n == 'tablecontrols') {\r
+ each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) {\r
+ n = t.createControl(n, cf);\r
+\r
+ if (n)\r
+ tb.add(n);\r
+ });\r
+\r
+ return;\r
+ }\r
+\r
+ c = t.createControl(n, cf);\r
+\r
+ if (c)\r
+ tb.add(c);\r
+ });\r
+ },\r
+\r
+ _addToolbars : function(c, o) {\r
+ var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a;\r
+\r
+ a = s.theme_standard_toolbar_align.toLowerCase();\r
+ a = 'mce' + t._ufirst(a);\r
+\r
+ n = DOM.add(DOM.add(c, 'tr'), 'td', {'class' : 'mceToolbar ' + a});\r
+\r
+ if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))\r
+ h.push(DOM.createHTML('a', {href : '#', onfocus : 'tinyMCE.get(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));\r
+\r
+ h.push(DOM.createHTML('a', {href : '#', accesskey : 'q', title : ed.getLang("standard.toolbar_focus")}, '<!-- IE -->'));\r
+\r
+ // Create toolbar and add the controls\r
+ for (i=1; (v = s['theme_standard_buttons' + i]); i++) {\r
+ tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i});\r
+\r
+ if (s['theme_standard_buttons' + i + '_add'])\r
+ v += ',' + s['theme_standard_buttons' + i + '_add'];\r
+\r
+ if (s['theme_standard_buttons' + i + '_add_before'])\r
+ v = s['theme_standard_buttons' + i + '_add_before'] + ',' + v;\r
+\r
+ t._addControls(v, tb);\r
+\r
+ //n.appendChild(n = tb.render());\r
+ h.push(tb.renderHTML());\r
+\r
+ o.deltaHeight -= s.theme_standard_row_height;\r
+ }\r
+\r
+ h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("standard.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));\r
+ DOM.setHTML(n, h.join(''));\r
+ },\r
+\r
+ _addStatusBar : function(tb, o) {\r
+ var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td;\r
+\r
+ n = DOM.add(tb, 'tr');\r
+ n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'});\r
+ n = DOM.add(n, 'div', {id : ed.id + '_path_row'}, s.theme_standard_path ? ed.translate('standard.path') + ': ' : ' ');\r
+ DOM.add(n, 'a', {href : '#', accesskey : 'x'});\r
+\r
+ if (s.theme_standard_resizing && !tinymce.isOldWebKit) {\r
+ DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize'});\r
+\r
+ if (s.theme_standard_resizing_use_cookie) {\r
+ ed.onPostRender.add(function() {\r
+ var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl');\r
+\r
+ if (!o)\r
+ return;\r
+\r
+ if (s.theme_standard_resize_horizontal)\r
+ c.style.width = Math.max(10, o.cw) + 'px';\r
+\r
+ c.style.height = Math.max(10, o.ch) + 'px';\r
+ DOM.get(ed.id + '_ifr').style.height = Math.max(10, parseInt(o.ch) + t.deltaHeight) + 'px';\r
+ });\r
+ }\r
+\r
+ ed.onPostRender.add(function() {\r
+ Event.add(ed.id + '_resize', 'mousedown', function(e) {\r
+ var c, p, w, h, n, pa;\r
+\r
+ // Measure container\r
+ c = DOM.get(ed.id + '_tbl');\r
+ w = c.clientWidth;\r
+ h = c.clientHeight;\r
+\r
+ miw = s.theme_standard_resizing_min_width || 100;\r
+ mih = s.theme_standard_resizing_min_height || 100;\r
+ maw = s.theme_standard_resizing_max_width || 0xFFFF;\r
+ mah = s.theme_standard_resizing_max_height || 0xFFFF;\r
+\r
+ // Setup placeholder\r
+ p = DOM.add(DOM.get(ed.id + '_parent'), 'div', {'class' : 'mcePlaceHolder'});\r
+ DOM.setStyles(p, {width : w, height : h});\r
+\r
+ // Replace with placeholder\r
+ DOM.hide(c);\r
+ DOM.show(p);\r
+\r
+ // Create internal resize obj\r
+ r = {\r
+ x : e.screenX,\r
+ y : e.screenY,\r
+ w : w,\r
+ h : h,\r
+ dx : null,\r
+ dy : null\r
+ };\r
+\r
+ // Start listening\r
+ mf = Event.add(DOM.doc, 'mousemove', function(e) {\r
+ var w, h;\r
+\r
+ // Calc delta values\r
+ r.dx = e.screenX - r.x;\r
+ r.dy = e.screenY - r.y;\r
+\r
+ // Boundery fix box\r
+ w = Math.max(miw, r.w + r.dx);\r
+ h = Math.max(mih, r.h + r.dy);\r
+ w = Math.min(maw, w);\r
+ h = Math.min(mah, h);\r
+\r
+ // Resize placeholder\r
+ if (s.theme_standard_resize_horizontal)\r
+ p.style.width = w + 'px';\r
+\r
+ p.style.height = h + 'px';\r
+\r
+ return Event.cancel(e);\r
+ });\r
+\r
+ me = Event.add(DOM.doc, 'mouseup', function(e) {\r
+ var ifr;\r
+\r
+ // Stop listening\r
+ Event.remove(DOM.doc, 'mousemove', mf);\r
+ Event.remove(DOM.doc, 'mouseup', me);\r
+\r
+ c.style.display = '';\r
+ DOM.remove(p);\r
+\r
+ if (r.dx === null)\r
+ return;\r
+\r
+ ifr = DOM.get(ed.id + '_ifr');\r
+\r
+ if (s.theme_standard_resize_horizontal)\r
+ c.style.width = Math.max(10, r.w + r.dx) + 'px';\r
+\r
+ c.style.height = Math.max(10, r.h + r.dy) + 'px';\r
+ ifr.style.height = Math.max(10, ifr.clientHeight + r.dy) + 'px';\r
+\r
+ if (s.theme_standard_resizing_use_cookie) {\r
+ Cookie.setHash("TinyMCE_" + ed.id + "_size", {\r
+ cw : r.w + r.dx,\r
+ ch : r.h + r.dy\r
+ });\r
+ }\r
+ });\r
+\r
+ return Event.cancel(e);\r
+ });\r
+ });\r
+ }\r
+\r
+ o.deltaHeight -= 21;\r
+ n = tb = null;\r
+ },\r
+\r
+ _nodeChanged : function(ed, cm, n, co) {\r
+ var t = this, p, de = 0, v, c, s = t.settings;\r
+\r
+ tinymce.each(t.stateControls, function(c) {\r
+ cm.setActive(c, ed.queryCommandState(t.controls[c][1]));\r
+ });\r
+\r
+ cm.setActive('visualaid', ed.hasVisual);\r
+ cm.setDisabled('undo', !ed.undoManager.hasUndo() && !ed.typing);\r
+ cm.setDisabled('redo', !ed.undoManager.hasRedo());\r
+ cm.setDisabled('outdent', !ed.queryCommandState('Outdent'));\r
+\r
+ p = DOM.getParent(n, 'A');\r
+ if (c = cm.get('link')) {\r
+ if (!p || !p.name) {\r
+ c.setDisabled(!p && co);\r
+ c.setActive(!!p);\r
+ }\r
+ }\r
+\r
+ if (c = cm.get('unlink')) {\r
+ c.setDisabled(!p && co);\r
+ c.setActive(!!p && !p.name);\r
+ }\r
+\r
+ if (c = cm.get('anchor')) {\r
+ c.setActive(!!p && p.name);\r
+\r
+ if (tinymce.isWebKit) {\r
+ p = DOM.getParent(n, 'IMG');\r
+ c.setActive(!!p && DOM.getAttrib(p, 'mce_name') == 'a');\r
+ }\r
+ }\r
+\r
+ p = DOM.getParent(n, 'IMG');\r
+ if (c = cm.get('image'))\r
+ c.setActive(!!p && n.className.indexOf('mceItem') == -1);\r
+\r
+ if (c = cm.get('styleselect')) {\r
+ if (n.className) {\r
+ t._importClasses();\r
+ c.select(n.className);\r
+ } else\r
+ c.select();\r
+ }\r
+\r
+ if (c = cm.get('formatselect')) {\r
+ p = DOM.getParent(n, DOM.isBlock);\r
+\r
+ if (p)\r
+ c.select(p.nodeName.toLowerCase());\r
+ }\r
+\r
+ if (c = cm.get('fontselect'))\r
+ c.select(ed.queryCommandValue('FontName'));\r
+\r
+ if (c = cm.get('fontsizeselect'))\r
+ c.select(ed.queryCommandValue('FontSize'));\r
+\r
+ if (s.theme_standard_path && s.theme_standard_statusbar_location) {\r
+ p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'});\r
+ DOM.setHTML(p, '');\r
+\r
+ ed.dom.getParent(n, function(n) {\r
+ var na = n.nodeName.toLowerCase(), u, pi, ti = '';\r
+\r
+ // Ignore non element and hidden elements\r
+ if (n.nodeType != 1 || (DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved')))\r
+ return;\r
+\r
+ // Fake name\r
+ if (v = DOM.getAttrib(n, 'mce_name'))\r
+ na = v;\r
+ \r
+ // Handle prefix\r
+ if (tinymce.isIE && n.scopeName !== 'HTML')\r
+ na = n.scopeName + ':' + na;\r
+\r
+ // Remove internal prefix\r
+ na = na.replace(/mce\:/g, '');\r
+\r
+ // Handle node name\r
+ switch (na) {\r
+ case 'b':\r
+ na = 'strong';\r
+ break;\r
+\r
+ case 'i':\r
+ na = 'em';\r
+ break;\r
+\r
+ case 'img':\r
+ if (v = DOM.getAttrib(n, 'src'))\r
+ ti += 'src: ' + v + ' ';\r
+\r
+ break;\r
+\r
+ case 'a':\r
+ if (v = DOM.getAttrib(n, 'name')) {\r
+ ti += 'name: ' + v + ' ';\r
+ na += '#' + v;\r
+ }\r
+\r
+ if (v = DOM.getAttrib(n, 'href'))\r
+ ti += 'href: ' + v + ' ';\r
+\r
+ break;\r
+\r
+ case 'font':\r
+ if (s.convert_fonts_to_spans)\r
+ na = 'span';\r
+\r
+ if (v = DOM.getAttrib(n, 'face'))\r
+ ti += 'font: ' + v + ' ';\r
+\r
+ if (v = DOM.getAttrib(n, 'size'))\r
+ ti += 'size: ' + v + ' ';\r
+\r
+ if (v = DOM.getAttrib(n, 'color'))\r
+ ti += 'color: ' + v + ' ';\r
+\r
+ break;\r
+\r
+ case 'span':\r
+ if (v = DOM.getAttrib(n, 'style'))\r
+ ti += 'style: ' + v + ' ';\r
+\r
+ break;\r
+ }\r
+\r
+ if (v = DOM.getAttrib(n, 'id'))\r
+ ti += 'id: ' + v + ' ';\r
+\r
+ if (v = n.className) {\r
+ v = v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g, '');\r
+\r
+ if (v && v.indexOf('mceItem') == -1) {\r
+ ti += 'class: ' + v + ' ';\r
+\r
+ if (DOM.isBlock(n) || na == 'img' || na == 'span')\r
+ na += '.' + v;\r
+ }\r
+ }\r
+\r
+ na = na.replace(/(html:)/g, '');\r
+ na = {name : na, node : n, title : ti};\r
+ t.onResolveName.dispatch(t, na);\r
+ ti = na.title;\r
+ na = na.name;\r
+\r
+ //u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');";\r
+ pi = DOM.create('a', {'href' : "javascript:;", onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na);\r
+\r
+ if (p.hasChildNodes()) {\r
+ p.insertBefore(DOM.doc.createTextNode(' \u00bb '), p.firstChild);\r
+ p.insertBefore(pi, p.firstChild);\r
+ } else\r
+ p.appendChild(pi);\r
+ }, ed.getBody());\r
+ }\r
+ },\r
+\r
+ // Commands gets called by execCommand\r
+\r
+ _sel : function(v) {\r
+ this.editor.execCommand('mceSelectNodeDepth', false, v);\r
+ },\r
+\r
+ _mceInsertAnchor : function(ui, v) {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/standard/anchor.htm',\r
+ width : 320 + parseInt(ed.getLang('standard.anchor_delta_width', 0)),\r
+ height : 90 + parseInt(ed.getLang('standard.anchor_delta_height', 0)),\r
+ inline : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceCharMap : function() {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/standard/charmap.htm',\r
+ width : 550 + parseInt(ed.getLang('standard.charmap_delta_width', 0)),\r
+ height : 250 + parseInt(ed.getLang('standard.charmap_delta_height', 0)),\r
+ inline : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceHelp : function() {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/standard/about.htm',\r
+ width : 480,\r
+ height : 380,\r
+ inline : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceColorPicker : function(u, v) {\r
+ var ed = this.editor;\r
+\r
+ v = v || {};\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/standard/color_picker.htm',\r
+ width : 375 + parseInt(ed.getLang('standard.colorpicker_delta_width', 0)),\r
+ height : 250 + parseInt(ed.getLang('standard.colorpicker_delta_height', 0)),\r
+ close_previous : false,\r
+ inline : true\r
+ }, {\r
+ input_color : v.color,\r
+ func : v.func,\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceCodeEditor : function(ui, val) {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/standard/source_editor.htm',\r
+ width : parseInt(ed.getParam("theme_standard_source_editor_width", 720)),\r
+ height : parseInt(ed.getParam("theme_standard_source_editor_height", 580)),\r
+ inline : true,\r
+ resizable : true,\r
+ maximizable : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceImage : function(ui, val) {\r
+ var ed = this.editor;\r
+\r
+ // Internal image object like a flash placeholder\r
+ if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)\r
+ return;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/standard/image.htm',\r
+ width : 355 + parseInt(ed.getLang('standard.image_delta_width', 0)),\r
+ height : 275 + parseInt(ed.getLang('standard.image_delta_height', 0)),\r
+ inline : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceLink : function(ui, val) {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.open({\r
+ url : tinymce.baseURL + '/themes/standard/link.htm',\r
+ width : 310 + parseInt(ed.getLang('standard.link_delta_width', 0)),\r
+ height : 200 + parseInt(ed.getLang('standard.link_delta_height', 0)),\r
+ inline : true\r
+ }, {\r
+ theme_url : this.url\r
+ });\r
+ },\r
+\r
+ _mceNewDocument : function() {\r
+ var ed = this.editor;\r
+\r
+ ed.windowManager.confirm('standard.newdocument', function(s) {\r
+ if (s)\r
+ ed.execCommand('mceSetContent', false, '');\r
+ });\r
+ },\r
+\r
+ _mceForeColor : function() {\r
+ var t = this;\r
+\r
+ this._mceColorPicker(0, {\r
+ color: t.fgColor,\r
+ func : function(co) {\r
+ t.fgColor = co;\r
+ t.editor.execCommand('ForeColor', false, co);\r
+ }\r
+ });\r
+ },\r
+\r
+ _mceBackColor : function() {\r
+ var t = this;\r
+\r
+ this._mceColorPicker(0, {\r
+ color: t.bgColor,\r
+ func : function(co) {\r
+ t.bgColor = co;\r
+ t.editor.execCommand('HiliteColor', false, co);\r
+ }\r
+ });\r
+ },\r
+\r
+ _ufirst : function(s) {\r
+ return s.substring(0, 1).toUpperCase() + s.substring(1);\r
+ }\r
+ });\r
+\r
+ tinymce.ThemeManager.add('standard', tinymce.themes.standardTheme);\r
+}());
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * Various form utilitiy functions.\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+var themeBaseURL = tinyMCEPopup.editor.baseURI.toAbsolute('themes/' + tinyMCEPopup.getParam("theme"));\r
+\r
+function getColorPickerHTML(id, target_form_element) {\r
+ var h = "";\r
+\r
+ h += '<a id="' + id + '_link" href="javascript:;" onclick="tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;" class="pickcolor">';\r
+ h += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"></span></a>';\r
+\r
+ return h;\r
+}\r
+\r
+function updateColor(img_id, form_element_id) {\r
+ document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value;\r
+}\r
+\r
+function setBrowserDisabled(id, state) {\r
+ var img = document.getElementById(id);\r
+ var lnk = document.getElementById(id + "_link");\r
+\r
+ if (lnk) {\r
+ if (state) {\r
+ lnk.setAttribute("realhref", lnk.getAttribute("href"));\r
+ lnk.removeAttribute("href");\r
+ tinyMCEPopup.dom.addClass(img, 'disabled');\r
+ } else {\r
+ if (lnk.getAttribute("realhref"))\r
+ lnk.setAttribute("href", lnk.getAttribute("realhref"));\r
+\r
+ tinyMCEPopup.dom.removeClass(img, 'disabled');\r
+ }\r
+ }\r
+}\r
+\r
+function getBrowserHTML(id, target_form_element, type, prefix) {\r
+ var option = prefix + "_" + type + "_browser_callback", cb, html;\r
+\r
+ cb = tinyMCEPopup.getParam(option, tinyMCEPopup.getParam("file_browser_callback"));\r
+\r
+ if (!cb)\r
+ return "";\r
+\r
+ html = "";\r
+ html += '<a id="' + id + '_link" href="javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;" class="browse">';\r
+ html += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"></span></a>';\r
+\r
+ return html;\r
+}\r
+\r
+function openBrowser(img_id, target_form_element, type, option) {\r
+ var img = document.getElementById(img_id);\r
+\r
+ if (img.className != "mceButtonDisabled")\r
+ tinyMCEPopup.openBrowser(target_form_element, type, option);\r
+}\r
+\r
+function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {\r
+ if (!form_obj || !form_obj.elements[field_name])\r
+ return;\r
+\r
+ var sel = form_obj.elements[field_name];\r
+\r
+ var found = false;\r
+ for (var i=0; i<sel.options.length; i++) {\r
+ var option = sel.options[i];\r
+\r
+ if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {\r
+ option.selected = true;\r
+ found = true;\r
+ } else\r
+ option.selected = false;\r
+ }\r
+\r
+ if (!found && add_custom && value != '') {\r
+ var option = new Option(value, value);\r
+ option.selected = true;\r
+ sel.options[sel.options.length] = option;\r
+ sel.selectedIndex = sel.options.length - 1;\r
+ }\r
+\r
+ return found;\r
+}\r
+\r
+function getSelectValue(form_obj, field_name) {\r
+ var elm = form_obj.elements[field_name];\r
+\r
+ if (elm == null || elm.options == null)\r
+ return "";\r
+\r
+ return elm.options[elm.selectedIndex].value;\r
+}\r
+\r
+function addSelectValue(form_obj, field_name, name, value) {\r
+ var s = form_obj.elements[field_name];\r
+ var o = new Option(name, value);\r
+ s.options[s.options.length] = o;\r
+}\r
+\r
+function addClassesToList(list_id, specific_option) {\r
+ // Setup class droplist\r
+ var styleSelectElm = document.getElementById(list_id);\r
+ var styles = tinyMCEPopup.getParam('theme_standard_styles', false);\r
+ styles = tinyMCEPopup.getParam(specific_option, styles);\r
+\r
+ if (styles) {\r
+ var stylesAr = styles.split(';');\r
+\r
+ for (var i=0; i<stylesAr.length; i++) {\r
+ if (stylesAr != "") {\r
+ var key, value;\r
+\r
+ key = stylesAr[i].split('=')[0];\r
+ value = stylesAr[i].split('=')[1];\r
+\r
+ styleSelectElm.options[styleSelectElm.length] = new Option(key, value);\r
+ }\r
+ }\r
+ } else {\r
+ tinymce.each(tinyMCEPopup.editor.dom.getClasses(), function(o) {\r
+ styleSelectElm.options[styleSelectElm.length] = new Option(o.title || o['class'], o['class']);\r
+ });\r
+ }\r
+}\r
+\r
+function isVisible(element_id) {\r
+ var elm = document.getElementById(element_id);\r
+\r
+ return elm && elm.style.display != "none";\r
+}\r
+\r
+function convertRGBToHex(col) {\r
+ var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");\r
+\r
+ var rgb = col.replace(re, "$1,$2,$3").split(',');\r
+ if (rgb.length == 3) {\r
+ r = parseInt(rgb[0]).toString(16);\r
+ g = parseInt(rgb[1]).toString(16);\r
+ b = parseInt(rgb[2]).toString(16);\r
+\r
+ r = r.length == 1 ? '0' + r : r;\r
+ g = g.length == 1 ? '0' + g : g;\r
+ b = b.length == 1 ? '0' + b : b;\r
+\r
+ return "#" + r + g + b;\r
+ }\r
+\r
+ return col;\r
+}\r
+\r
+function convertHexToRGB(col) {\r
+ if (col.indexOf('#') != -1) {\r
+ col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');\r
+\r
+ r = parseInt(col.substring(0, 2), 16);\r
+ g = parseInt(col.substring(2, 4), 16);\r
+ b = parseInt(col.substring(4, 6), 16);\r
+\r
+ return "rgb(" + r + "," + g + "," + b + ")";\r
+ }\r
+\r
+ return col;\r
+}\r
+\r
+function trimSize(size) {\r
+ return size.replace(/([0-9\.]+)px|(%|in|cm|mm|em|ex|pt|pc)/, '$1$2');\r
+}\r
+\r
+function getCSSSize(size) {\r
+ size = trimSize(size);\r
+\r
+ if (size == "")\r
+ return "";\r
+\r
+ // Add px\r
+ if (/^[0-9]+$/.test(size))\r
+ size += 'px';\r
+\r
+ return size;\r
+}\r
+\r
+function getStyle(elm, attrib, style) {\r
+ var val = tinyMCEPopup.dom.getAttrib(elm, attrib);\r
+\r
+ if (val != '')\r
+ return '' + val;\r
+\r
+ if (typeof(style) == 'undefined')\r
+ style = attrib;\r
+\r
+ return tinyMCEPopup.dom.getStyle(elm, style);\r
+}\r
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#standard_dlg.image_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js?v=307"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js?v=307"></script>\r
+ <script type="text/javascript" src="form_utils.js?v=307"></script>\r
+ <script type="text/javascript" src="js/image.js?v=307"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body id="image" style="display: none">\r
+<form onsubmit="ImageDialog.update();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#standard_dlg.image_title}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="src">{#standard_dlg.image_src}</label></td>\r
+ <td><table border="0" cellspacing="0" cellpadding="0">\r
+ <tr>\r
+ <td><input id="src" name="src" type="text" class="mceFocus" value="" style="width: 200px" onchange="ImageDialog.getImageData();" /></td>\r
+ <td id="srcbrowsercontainer"> </td>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="image_list">{#standard_dlg.image_list}</label></td>\r
+ <td><select id="image_list" name="image_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;"></select></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="alt">{#standard_dlg.image_alt}</label></td>\r
+ <td><input id="alt" name="alt" type="text" value="" style="width: 200px" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="align">{#standard_dlg.image_align}</label></td>\r
+ <td><select id="align" name="align" onchange="ImageDialog.updateStyle();">\r
+ <option value="">{#not_set}</option>\r
+ <option value="baseline">{#standard_dlg.image_align_baseline}</option>\r
+ <option value="top">{#standard_dlg.image_align_top}</option>\r
+ <option value="middle">{#standard_dlg.image_align_middle}</option>\r
+ <option value="bottom">{#standard_dlg.image_align_bottom}</option>\r
+ <option value="text-top">{#standard_dlg.image_align_texttop}</option>\r
+ <option value="text-bottom">{#standard_dlg.image_align_textbottom}</option>\r
+ <option value="left">{#standard_dlg.image_align_left}</option>\r
+ <option value="right">{#standard_dlg.image_align_right}</option>\r
+ </select></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="width">{#standard_dlg.image_dimensions}</label></td>\r
+ <td><input id="width" name="width" type="text" value="" size="3" maxlength="5" />\r
+ x\r
+ <input id="height" name="height" type="text" value="" size="3" maxlength="5" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="border">{#standard_dlg.image_border}</label></td>\r
+ <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="vspace">{#standard_dlg.image_vspace}</label></td>\r
+ <td><input id="vspace" name="vspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="hspace">{#standard_dlg.image_hspace}</label></td>\r
+ <td><input id="hspace" name="hspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+function init() {\r
+ var ed, tcont;\r
+\r
+ tinyMCEPopup.resizeToInnerSize();\r
+ ed = tinyMCEPopup.editor;\r
+\r
+ // Give FF some time\r
+ window.setTimeout('insertHelpIFrame();', 10);\r
+\r
+ tcont = document.getElementById('plugintablecontainer');\r
+ document.getElementById('plugins_tab').style.display = 'none';\r
+\r
+ var html = "";\r
+ html += '<table id="plugintable">';\r
+ html += '<thead>';\r
+ html += '<tr>';\r
+ html += '<td>' + ed.getLang('standard_dlg.about_plugin') + '</td>';\r
+ html += '<td>' + ed.getLang('standard_dlg.about_author') + '</td>';\r
+ html += '<td>' + ed.getLang('standard_dlg.about_version') + '</td>';\r
+ html += '</tr>';\r
+ html += '</thead>';\r
+ html += '<tbody>';\r
+\r
+ tinymce.each(ed.plugins, function(p, n) {\r
+ var info;\r
+\r
+ if (!p.getInfo)\r
+ return;\r
+\r
+ html += '<tr>';\r
+\r
+ info = p.getInfo();\r
+\r
+ if (info.infourl != null && info.infourl != '')\r
+ html += '<td width="50%" title="' + n + '"><a href="' + info.infourl + '" target="_blank">' + info.longname + '</a></td>';\r
+ else\r
+ html += '<td width="50%" title="' + n + '">' + info.longname + '</td>';\r
+\r
+ if (info.authorurl != null && info.authorurl != '')\r
+ html += '<td width="35%"><a href="' + info.authorurl + '" target="_blank">' + info.author + '</a></td>';\r
+ else\r
+ html += '<td width="35%">' + info.author + '</td>';\r
+\r
+ html += '<td width="15%">' + info.version + '</td>';\r
+ html += '</tr>';\r
+\r
+ document.getElementById('plugins_tab').style.display = '';\r
+\r
+ });\r
+\r
+ html += '</tbody>';\r
+ html += '</table>';\r
+\r
+ tcont.innerHTML = html;\r
+\r
+ tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion;\r
+ tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate;\r
+}\r
+\r
+function insertHelpIFrame() {\r
+ var html;\r
+\r
+ if (tinyMCEPopup.getParam('docs_url')) {\r
+ html = '<iframe width="100%" height="300" src="' + tinyMCEPopup.editor.baseURI.toAbsolute(tinyMCEPopup.getParam('docs_url')) + '"></iframe>';\r
+ document.getElementById('iframecontainer').innerHTML = html;\r
+ document.getElementById('help_tab').style.display = 'block';\r
+ }\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var AnchorDialog = {\r
+ init : function(ed) {\r
+ var action, elm, f = document.forms[0];\r
+\r
+ this.editor = ed;\r
+ elm = ed.dom.getParent(ed.selection.getNode(), 'A,IMG');\r
+ v = ed.dom.getAttrib(elm, 'name');\r
+\r
+ if (v) {\r
+ this.action = 'update';\r
+ f.anchorName.value = v;\r
+ }\r
+\r
+ f.insert.value = ed.getLang(elm ? 'update' : 'insert');\r
+ },\r
+\r
+ update : function() {\r
+ var ed = this.editor;\r
+ \r
+ tinyMCEPopup.restoreSelection();\r
+\r
+ if (this.action != 'update')\r
+ ed.selection.collapse(1);\r
+\r
+ // Webkit acts weird if empty inline element is inserted so we need to use a image instead\r
+ if (tinymce.isWebKit)\r
+ ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('img', {mce_name : 'a', name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}));\r
+ else\r
+ ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}, ''));\r
+\r
+ tinyMCEPopup.close();\r
+ }\r
+};\r
+\r
+tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var charmap = [\r
+ [' ', ' ', true, 'no-break space'],\r
+ ['&', '&', true, 'ampersand'],\r
+ ['"', '"', true, 'quotation mark'],\r
+// finance\r
+ ['¢', '¢', true, 'cent sign'],\r
+ ['€', '€', true, 'euro sign'],\r
+ ['£', '£', true, 'pound sign'],\r
+ ['¥', '¥', true, 'yen sign'],\r
+// signs\r
+ ['©', '©', true, 'copyright sign'],\r
+ ['®', '®', true, 'registered sign'],\r
+ ['™', '™', true, 'trade mark sign'],\r
+ ['‰', '‰', true, 'per mille sign'],\r
+ ['µ', 'µ', true, 'micro sign'],\r
+ ['·', '·', true, 'middle dot'],\r
+ ['•', '•', true, 'bullet'],\r
+ ['…', '…', true, 'three dot leader'],\r
+ ['′', '′', true, 'minutes / feet'],\r
+ ['″', '″', true, 'seconds / inches'],\r
+ ['§', '§', true, 'section sign'],\r
+ ['¶', '¶', true, 'paragraph sign'],\r
+ ['ß', 'ß', true, 'sharp s / ess-zed'],\r
+// quotations\r
+ ['‹', '‹', true, 'single left-pointing angle quotation mark'],\r
+ ['›', '›', true, 'single right-pointing angle quotation mark'],\r
+ ['«', '«', true, 'left pointing guillemet'],\r
+ ['»', '»', true, 'right pointing guillemet'],\r
+ ['‘', '‘', true, 'left single quotation mark'],\r
+ ['’', '’', true, 'right single quotation mark'],\r
+ ['“', '“', true, 'left double quotation mark'],\r
+ ['”', '”', true, 'right double quotation mark'],\r
+ ['‚', '‚', true, 'single low-9 quotation mark'],\r
+ ['„', '„', true, 'double low-9 quotation mark'],\r
+ ['<', '<', true, 'less-than sign'],\r
+ ['>', '>', true, 'greater-than sign'],\r
+ ['≤', '≤', true, 'less-than or equal to'],\r
+ ['≥', '≥', true, 'greater-than or equal to'],\r
+ ['–', '–', true, 'en dash'],\r
+ ['—', '—', true, 'em dash'],\r
+ ['¯', '¯', true, 'macron'],\r
+ ['‾', '‾', true, 'overline'],\r
+ ['¤', '¤', true, 'currency sign'],\r
+ ['¦', '¦', true, 'broken bar'],\r
+ ['¨', '¨', true, 'diaeresis'],\r
+ ['¡', '¡', true, 'inverted exclamation mark'],\r
+ ['¿', '¿', true, 'turned question mark'],\r
+ ['ˆ', 'ˆ', true, 'circumflex accent'],\r
+ ['˜', '˜', true, 'small tilde'],\r
+ ['°', '°', true, 'degree sign'],\r
+ ['−', '−', true, 'minus sign'],\r
+ ['±', '±', true, 'plus-minus sign'],\r
+ ['÷', '÷', true, 'division sign'],\r
+ ['⁄', '⁄', true, 'fraction slash'],\r
+ ['×', '×', true, 'multiplication sign'],\r
+ ['¹', '¹', true, 'superscript one'],\r
+ ['²', '²', true, 'superscript two'],\r
+ ['³', '³', true, 'superscript three'],\r
+ ['¼', '¼', true, 'fraction one quarter'],\r
+ ['½', '½', true, 'fraction one half'],\r
+ ['¾', '¾', true, 'fraction three quarters'],\r
+// math / logical\r
+ ['ƒ', 'ƒ', true, 'function / florin'],\r
+ ['∫', '∫', true, 'integral'],\r
+ ['∑', '∑', true, 'n-ary sumation'],\r
+ ['∞', '∞', true, 'infinity'],\r
+ ['√', '√', true, 'square root'],\r
+ ['∼', '∼', false,'similar to'],\r
+ ['≅', '≅', false,'approximately equal to'],\r
+ ['≈', '≈', true, 'almost equal to'],\r
+ ['≠', '≠', true, 'not equal to'],\r
+ ['≡', '≡', true, 'identical to'],\r
+ ['∈', '∈', false,'element of'],\r
+ ['∉', '∉', false,'not an element of'],\r
+ ['∋', '∋', false,'contains as member'],\r
+ ['∏', '∏', true, 'n-ary product'],\r
+ ['∧', '∧', false,'logical and'],\r
+ ['∨', '∨', false,'logical or'],\r
+ ['¬', '¬', true, 'not sign'],\r
+ ['∩', '∩', true, 'intersection'],\r
+ ['∪', '∪', false,'union'],\r
+ ['∂', '∂', true, 'partial differential'],\r
+ ['∀', '∀', false,'for all'],\r
+ ['∃', '∃', false,'there exists'],\r
+ ['∅', '∅', false,'diameter'],\r
+ ['∇', '∇', false,'backward difference'],\r
+ ['∗', '∗', false,'asterisk operator'],\r
+ ['∝', '∝', false,'proportional to'],\r
+ ['∠', '∠', false,'angle'],\r
+// undefined\r
+ ['´', '´', true, 'acute accent'],\r
+ ['¸', '¸', true, 'cedilla'],\r
+ ['ª', 'ª', true, 'feminine ordinal indicator'],\r
+ ['º', 'º', true, 'masculine ordinal indicator'],\r
+ ['†', '†', true, 'dagger'],\r
+ ['‡', '‡', true, 'double dagger'],\r
+// alphabetical special chars\r
+ ['À', 'À', true, 'A - grave'],\r
+ ['Á', 'Á', true, 'A - acute'],\r
+ ['Â', 'Â', true, 'A - circumflex'],\r
+ ['Ã', 'Ã', true, 'A - tilde'],\r
+ ['Ä', 'Ä', true, 'A - diaeresis'],\r
+ ['Å', 'Å', true, 'A - ring above'],\r
+ ['Æ', 'Æ', true, 'ligature AE'],\r
+ ['Ç', 'Ç', true, 'C - cedilla'],\r
+ ['È', 'È', true, 'E - grave'],\r
+ ['É', 'É', true, 'E - acute'],\r
+ ['Ê', 'Ê', true, 'E - circumflex'],\r
+ ['Ë', 'Ë', true, 'E - diaeresis'],\r
+ ['Ì', 'Ì', true, 'I - grave'],\r
+ ['Í', 'Í', true, 'I - acute'],\r
+ ['Î', 'Î', true, 'I - circumflex'],\r
+ ['Ï', 'Ï', true, 'I - diaeresis'],\r
+ ['Ð', 'Ð', true, 'ETH'],\r
+ ['Ñ', 'Ñ', true, 'N - tilde'],\r
+ ['Ò', 'Ò', true, 'O - grave'],\r
+ ['Ó', 'Ó', true, 'O - acute'],\r
+ ['Ô', 'Ô', true, 'O - circumflex'],\r
+ ['Õ', 'Õ', true, 'O - tilde'],\r
+ ['Ö', 'Ö', true, 'O - diaeresis'],\r
+ ['Ø', 'Ø', true, 'O - slash'],\r
+ ['Œ', 'Œ', true, 'ligature OE'],\r
+ ['Š', 'Š', true, 'S - caron'],\r
+ ['Ù', 'Ù', true, 'U - grave'],\r
+ ['Ú', 'Ú', true, 'U - acute'],\r
+ ['Û', 'Û', true, 'U - circumflex'],\r
+ ['Ü', 'Ü', true, 'U - diaeresis'],\r
+ ['Ý', 'Ý', true, 'Y - acute'],\r
+ ['Ÿ', 'Ÿ', true, 'Y - diaeresis'],\r
+ ['Þ', 'Þ', true, 'THORN'],\r
+ ['à', 'à', true, 'a - grave'],\r
+ ['á', 'á', true, 'a - acute'],\r
+ ['â', 'â', true, 'a - circumflex'],\r
+ ['ã', 'ã', true, 'a - tilde'],\r
+ ['ä', 'ä', true, 'a - diaeresis'],\r
+ ['å', 'å', true, 'a - ring above'],\r
+ ['æ', 'æ', true, 'ligature ae'],\r
+ ['ç', 'ç', true, 'c - cedilla'],\r
+ ['è', 'è', true, 'e - grave'],\r
+ ['é', 'é', true, 'e - acute'],\r
+ ['ê', 'ê', true, 'e - circumflex'],\r
+ ['ë', 'ë', true, 'e - diaeresis'],\r
+ ['ì', 'ì', true, 'i - grave'],\r
+ ['í', 'í', true, 'i - acute'],\r
+ ['î', 'î', true, 'i - circumflex'],\r
+ ['ï', 'ï', true, 'i - diaeresis'],\r
+ ['ð', 'ð', true, 'eth'],\r
+ ['ñ', 'ñ', true, 'n - tilde'],\r
+ ['ò', 'ò', true, 'o - grave'],\r
+ ['ó', 'ó', true, 'o - acute'],\r
+ ['ô', 'ô', true, 'o - circumflex'],\r
+ ['õ', 'õ', true, 'o - tilde'],\r
+ ['ö', 'ö', true, 'o - diaeresis'],\r
+ ['ø', 'ø', true, 'o slash'],\r
+ ['œ', 'œ', true, 'ligature oe'],\r
+ ['š', 'š', true, 's - caron'],\r
+ ['ù', 'ù', true, 'u - grave'],\r
+ ['ú', 'ú', true, 'u - acute'],\r
+ ['û', 'û', true, 'u - circumflex'],\r
+ ['ü', 'ü', true, 'u - diaeresis'],\r
+ ['ý', 'ý', true, 'y - acute'],\r
+ ['þ', 'þ', true, 'thorn'],\r
+ ['ÿ', 'ÿ', true, 'y - diaeresis'],\r
+ ['Α', 'Α', true, 'Alpha'],\r
+ ['Β', 'Β', true, 'Beta'],\r
+ ['Γ', 'Γ', true, 'Gamma'],\r
+ ['Δ', 'Δ', true, 'Delta'],\r
+ ['Ε', 'Ε', true, 'Epsilon'],\r
+ ['Ζ', 'Ζ', true, 'Zeta'],\r
+ ['Η', 'Η', true, 'Eta'],\r
+ ['Θ', 'Θ', true, 'Theta'],\r
+ ['Ι', 'Ι', true, 'Iota'],\r
+ ['Κ', 'Κ', true, 'Kappa'],\r
+ ['Λ', 'Λ', true, 'Lambda'],\r
+ ['Μ', 'Μ', true, 'Mu'],\r
+ ['Ν', 'Ν', true, 'Nu'],\r
+ ['Ξ', 'Ξ', true, 'Xi'],\r
+ ['Ο', 'Ο', true, 'Omicron'],\r
+ ['Π', 'Π', true, 'Pi'],\r
+ ['Ρ', 'Ρ', true, 'Rho'],\r
+ ['Σ', 'Σ', true, 'Sigma'],\r
+ ['Τ', 'Τ', true, 'Tau'],\r
+ ['Υ', 'Υ', true, 'Upsilon'],\r
+ ['Φ', 'Φ', true, 'Phi'],\r
+ ['Χ', 'Χ', true, 'Chi'],\r
+ ['Ψ', 'Ψ', true, 'Psi'],\r
+ ['Ω', 'Ω', true, 'Omega'],\r
+ ['α', 'α', true, 'alpha'],\r
+ ['β', 'β', true, 'beta'],\r
+ ['γ', 'γ', true, 'gamma'],\r
+ ['δ', 'δ', true, 'delta'],\r
+ ['ε', 'ε', true, 'epsilon'],\r
+ ['ζ', 'ζ', true, 'zeta'],\r
+ ['η', 'η', true, 'eta'],\r
+ ['θ', 'θ', true, 'theta'],\r
+ ['ι', 'ι', true, 'iota'],\r
+ ['κ', 'κ', true, 'kappa'],\r
+ ['λ', 'λ', true, 'lambda'],\r
+ ['μ', 'μ', true, 'mu'],\r
+ ['ν', 'ν', true, 'nu'],\r
+ ['ξ', 'ξ', true, 'xi'],\r
+ ['ο', 'ο', true, 'omicron'],\r
+ ['π', 'π', true, 'pi'],\r
+ ['ρ', 'ρ', true, 'rho'],\r
+ ['ς', 'ς', true, 'final sigma'],\r
+ ['σ', 'σ', true, 'sigma'],\r
+ ['τ', 'τ', true, 'tau'],\r
+ ['υ', 'υ', true, 'upsilon'],\r
+ ['φ', 'φ', true, 'phi'],\r
+ ['χ', 'χ', true, 'chi'],\r
+ ['ψ', 'ψ', true, 'psi'],\r
+ ['ω', 'ω', true, 'omega'],\r
+// symbols\r
+ ['ℵ', 'ℵ', false,'alef symbol'],\r
+ ['ϖ', 'ϖ', false,'pi symbol'],\r
+ ['ℜ', 'ℜ', false,'real part symbol'],\r
+ ['ϑ','ϑ', false,'theta symbol'],\r
+ ['ϒ', 'ϒ', false,'upsilon - hook symbol'],\r
+ ['℘', '℘', false,'Weierstrass p'],\r
+ ['ℑ', 'ℑ', false,'imaginary part'],\r
+// arrows\r
+ ['←', '←', true, 'leftwards arrow'],\r
+ ['↑', '↑', true, 'upwards arrow'],\r
+ ['→', '→', true, 'rightwards arrow'],\r
+ ['↓', '↓', true, 'downwards arrow'],\r
+ ['↔', '↔', true, 'left right arrow'],\r
+ ['↵', '↵', false,'carriage return'],\r
+ ['⇐', '⇐', false,'leftwards double arrow'],\r
+ ['⇑', '⇑', false,'upwards double arrow'],\r
+ ['⇒', '⇒', false,'rightwards double arrow'],\r
+ ['⇓', '⇓', false,'downwards double arrow'],\r
+ ['⇔', '⇔', false,'left right double arrow'],\r
+ ['∴', '∴', false,'therefore'],\r
+ ['⊂', '⊂', false,'subset of'],\r
+ ['⊃', '⊃', false,'superset of'],\r
+ ['⊄', '⊄', false,'not a subset of'],\r
+ ['⊆', '⊆', false,'subset of or equal to'],\r
+ ['⊇', '⊇', false,'superset of or equal to'],\r
+ ['⊕', '⊕', false,'circled plus'],\r
+ ['⊗', '⊗', false,'circled times'],\r
+ ['⊥', '⊥', false,'perpendicular'],\r
+ ['⋅', '⋅', false,'dot operator'],\r
+ ['⌈', '⌈', false,'left ceiling'],\r
+ ['⌉', '⌉', false,'right ceiling'],\r
+ ['⌊', '⌊', false,'left floor'],\r
+ ['⌋', '⌋', false,'right floor'],\r
+ ['⟨', '〈', false,'left-pointing angle bracket'],\r
+ ['⟩', '〉', false,'right-pointing angle bracket'],\r
+ ['◊', '◊', true,'lozenge'],\r
+ ['♠', '♠', false,'black spade suit'],\r
+ ['♣', '♣', true, 'black club suit'],\r
+ ['♥', '♥', true, 'black heart suit'],\r
+ ['♦', '♦', true, 'black diamond suit'],\r
+ [' ', ' ', false,'en space'],\r
+ [' ', ' ', false,'em space'],\r
+ [' ', ' ', false,'thin space'],\r
+ ['‌', '‌', false,'zero width non-joiner'],\r
+ ['‍', '‍', false,'zero width joiner'],\r
+ ['‎', '‎', false,'left-to-right mark'],\r
+ ['‏', '‏', false,'right-to-left mark'],\r
+ ['­', '­', false,'soft hyphen']\r
+];\r
+\r
+tinyMCEPopup.onInit.add(function() {\r
+ tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML());\r
+});\r
+\r
+function renderCharMapHTML() {\r
+ var charsPerRow = 20, tdWidth=20, tdHeight=20, i;\r
+ var html = '<table border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + '"><tr height="' + tdHeight + '">';\r
+ var cols=-1;\r
+\r
+ for (i=0; i<charmap.length; i++) {\r
+ if (charmap[i][2]==true) {\r
+ cols++;\r
+ html += ''\r
+ + '<td class="charmap">'\r
+ + '<a onmouseover="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" onfocus="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" href="javascript:void(0)" onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');" onclick="return false;" onmousedown="return false;" title="' + charmap[i][3] + '">'\r
+ + charmap[i][1]\r
+ + '</a></td>';\r
+ if ((cols+1) % charsPerRow == 0)\r
+ html += '</tr><tr height="' + tdHeight + '">';\r
+ }\r
+ }\r
+\r
+ if (cols % charsPerRow > 0) {\r
+ var padd = charsPerRow - (cols % charsPerRow);\r
+ for (var i=0; i<padd-1; i++)\r
+ html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"> </td>';\r
+ }\r
+\r
+ html += '</tr></table>';\r
+\r
+ return html;\r
+}\r
+\r
+function insertChar(chr) {\r
+ tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';');\r
+\r
+ // Refocus in window\r
+ if (tinyMCEPopup.isWindow)\r
+ window.focus();\r
+\r
+ tinyMCEPopup.editor.focus();\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function previewChar(codeA, codeB, codeN) {\r
+ var elmA = document.getElementById('codeA');\r
+ var elmB = document.getElementById('codeB');\r
+ var elmV = document.getElementById('codeV');\r
+ var elmN = document.getElementById('codeN');\r
+\r
+ if (codeA=='#160;') {\r
+ elmV.innerHTML = '__';\r
+ } else {\r
+ elmV.innerHTML = '&' + codeA;\r
+ }\r
+\r
+ elmB.innerHTML = '&' + codeA;\r
+ elmA.innerHTML = '&' + codeB;\r
+ elmN.innerHTML = codeN;\r
+}\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false;\r
+\r
+var colors = [\r
+ "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033",\r
+ "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099",\r
+ "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff",\r
+ "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033",\r
+ "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399",\r
+ "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff",\r
+ "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333",\r
+ "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399",\r
+ "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff",\r
+ "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633",\r
+ "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699",\r
+ "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff",\r
+ "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633",\r
+ "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999",\r
+ "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff",\r
+ "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933",\r
+ "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999",\r
+ "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff",\r
+ "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33",\r
+ "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99",\r
+ "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff",\r
+ "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33",\r
+ "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99",\r
+ "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff",\r
+ "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33",\r
+ "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99",\r
+ "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff"\r
+];\r
+\r
+var named = {\r
+ '#F0F8FF':'AliceBlue','#FAEBD7':'AntiqueWhite','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige',\r
+ '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'BlanchedAlmond','#0000FF':'Blue','#8A2BE2':'BlueViolet','#A52A2A':'Brown',\r
+ '#DEB887':'BurlyWood','#5F9EA0':'CadetBlue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'CornflowerBlue',\r
+ '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'DarkBlue','#008B8B':'DarkCyan','#B8860B':'DarkGoldenRod',\r
+ '#A9A9A9':'DarkGray','#A9A9A9':'DarkGrey','#006400':'DarkGreen','#BDB76B':'DarkKhaki','#8B008B':'DarkMagenta','#556B2F':'DarkOliveGreen',\r
+ '#FF8C00':'Darkorange','#9932CC':'DarkOrchid','#8B0000':'DarkRed','#E9967A':'DarkSalmon','#8FBC8F':'DarkSeaGreen','#483D8B':'DarkSlateBlue',\r
+ '#2F4F4F':'DarkSlateGray','#2F4F4F':'DarkSlateGrey','#00CED1':'DarkTurquoise','#9400D3':'DarkViolet','#FF1493':'DeepPink','#00BFFF':'DeepSkyBlue',\r
+ '#696969':'DimGray','#696969':'DimGrey','#1E90FF':'DodgerBlue','#B22222':'FireBrick','#FFFAF0':'FloralWhite','#228B22':'ForestGreen',\r
+ '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'GhostWhite','#FFD700':'Gold','#DAA520':'GoldenRod','#808080':'Gray','#808080':'Grey',\r
+ '#008000':'Green','#ADFF2F':'GreenYellow','#F0FFF0':'HoneyDew','#FF69B4':'HotPink','#CD5C5C':'IndianRed','#4B0082':'Indigo','#FFFFF0':'Ivory',\r
+ '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'LavenderBlush','#7CFC00':'LawnGreen','#FFFACD':'LemonChiffon','#ADD8E6':'LightBlue',\r
+ '#F08080':'LightCoral','#E0FFFF':'LightCyan','#FAFAD2':'LightGoldenRodYellow','#D3D3D3':'LightGray','#D3D3D3':'LightGrey','#90EE90':'LightGreen',\r
+ '#FFB6C1':'LightPink','#FFA07A':'LightSalmon','#20B2AA':'LightSeaGreen','#87CEFA':'LightSkyBlue','#778899':'LightSlateGray','#778899':'LightSlateGrey',\r
+ '#B0C4DE':'LightSteelBlue','#FFFFE0':'LightYellow','#00FF00':'Lime','#32CD32':'LimeGreen','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon',\r
+ '#66CDAA':'MediumAquaMarine','#0000CD':'MediumBlue','#BA55D3':'MediumOrchid','#9370D8':'MediumPurple','#3CB371':'MediumSeaGreen','#7B68EE':'MediumSlateBlue',\r
+ '#00FA9A':'MediumSpringGreen','#48D1CC':'MediumTurquoise','#C71585':'MediumVioletRed','#191970':'MidnightBlue','#F5FFFA':'MintCream','#FFE4E1':'MistyRose','#FFE4B5':'Moccasin',\r
+ '#FFDEAD':'NavajoWhite','#000080':'Navy','#FDF5E6':'OldLace','#808000':'Olive','#6B8E23':'OliveDrab','#FFA500':'Orange','#FF4500':'OrangeRed','#DA70D6':'Orchid',\r
+ '#EEE8AA':'PaleGoldenRod','#98FB98':'PaleGreen','#AFEEEE':'PaleTurquoise','#D87093':'PaleVioletRed','#FFEFD5':'PapayaWhip','#FFDAB9':'PeachPuff',\r
+ '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'PowderBlue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'RosyBrown','#4169E1':'RoyalBlue',\r
+ '#8B4513':'SaddleBrown','#FA8072':'Salmon','#F4A460':'SandyBrown','#2E8B57':'SeaGreen','#FFF5EE':'SeaShell','#A0522D':'Sienna','#C0C0C0':'Silver',\r
+ '#87CEEB':'SkyBlue','#6A5ACD':'SlateBlue','#708090':'SlateGray','#708090':'SlateGrey','#FFFAFA':'Snow','#00FF7F':'SpringGreen',\r
+ '#4682B4':'SteelBlue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet',\r
+ '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'WhiteSmoke','#FFFF00':'Yellow','#9ACD32':'YellowGreen'\r
+};\r
+\r
+function init() {\r
+ var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color'));\r
+\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ generatePicker();\r
+\r
+ if (inputColor) {\r
+ changeFinalColor(inputColor);\r
+\r
+ col = convertHexToRGB(inputColor);\r
+\r
+ if (col)\r
+ updateLight(col.r, col.g, col.b);\r
+ }\r
+}\r
+\r
+function insertAction() {\r
+ var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func');\r
+\r
+ tinyMCEPopup.restoreSelection();\r
+\r
+ if (f)\r
+ f(color);\r
+\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function showColor(color, name) {\r
+ if (name)\r
+ document.getElementById("colorname").innerHTML = name;\r
+\r
+ document.getElementById("preview").style.backgroundColor = color;\r
+ document.getElementById("color").value = color.toLowerCase();\r
+}\r
+\r
+function convertRGBToHex(col) {\r
+ var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");\r
+\r
+ if (!col)\r
+ return col;\r
+\r
+ var rgb = col.replace(re, "$1,$2,$3").split(',');\r
+ if (rgb.length == 3) {\r
+ r = parseInt(rgb[0]).toString(16);\r
+ g = parseInt(rgb[1]).toString(16);\r
+ b = parseInt(rgb[2]).toString(16);\r
+\r
+ r = r.length == 1 ? '0' + r : r;\r
+ g = g.length == 1 ? '0' + g : g;\r
+ b = b.length == 1 ? '0' + b : b;\r
+\r
+ return "#" + r + g + b;\r
+ }\r
+\r
+ return col;\r
+}\r
+\r
+function convertHexToRGB(col) {\r
+ if (col.indexOf('#') != -1) {\r
+ col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');\r
+\r
+ r = parseInt(col.substring(0, 2), 16);\r
+ g = parseInt(col.substring(2, 4), 16);\r
+ b = parseInt(col.substring(4, 6), 16);\r
+\r
+ return {r : r, g : g, b : b};\r
+ }\r
+\r
+ return null;\r
+}\r
+\r
+function generatePicker() {\r
+ var el = document.getElementById('light'), h = '', i;\r
+\r
+ for (i = 0; i < detail; i++){\r
+ h += '<div id="gs'+i+'" style="background-color:#000000; width:15px; height:3px; border-style:none; border-width:0px;"'\r
+ + ' onclick="changeFinalColor(this.style.backgroundColor)"'\r
+ + ' onmousedown="isMouseDown = true; return false;"'\r
+ + ' onmouseup="isMouseDown = false;"'\r
+ + ' onmousemove="if (isMouseDown && isMouseOver) changeFinalColor(this.style.backgroundColor); return false;"'\r
+ + ' onmouseover="isMouseOver = true;"'\r
+ + ' onmouseout="isMouseOver = false;"'\r
+ + '></div>';\r
+ }\r
+\r
+ el.innerHTML = h;\r
+}\r
+\r
+function generateWebColors() {\r
+ var el = document.getElementById('webcolors'), h = '', i;\r
+\r
+ if (el.className == 'generated')\r
+ return;\r
+\r
+ h += '<table border="0" cellspacing="1" cellpadding="0">'\r
+ + '<tr>';\r
+\r
+ for (i=0; i<colors.length; i++) {\r
+ h += '<td bgcolor="' + colors[i] + '" width="10" height="10">'\r
+ + '<a href="javascript:insertAction();" onfocus="showColor(\'' + colors[i] + '\');" onmouseover="showColor(\'' + colors[i] + '\');" style="display:block;width:10px;height:10px;overflow:hidden;">'\r
+ + '</a></td>';\r
+ if ((i+1) % 18 == 0)\r
+ h += '</tr><tr>';\r
+ }\r
+\r
+ h += '</table>';\r
+\r
+ el.innerHTML = h;\r
+ el.className = 'generated';\r
+}\r
+\r
+function generateNamedColors() {\r
+ var el = document.getElementById('namedcolors'), h = '', n, v, i = 0;\r
+\r
+ if (el.className == 'generated')\r
+ return;\r
+\r
+ for (n in named) {\r
+ v = named[n];\r
+ h += '<a href="javascript:insertAction();" onmouseover="showColor(\'' + n + '\',\'' + v + '\');" style="background-color: ' + n + '"><!-- IE --></a>'\r
+ }\r
+\r
+ el.innerHTML = h;\r
+ el.className = 'generated';\r
+}\r
+\r
+function dechex(n) {\r
+ return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16);\r
+}\r
+\r
+function computeColor(e) {\r
+ var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB;\r
+\r
+ x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0);\r
+ y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0);\r
+\r
+ partWidth = document.getElementById('colors').width / 6;\r
+ partDetail = detail / 2;\r
+ imHeight = document.getElementById('colors').height;\r
+\r
+ r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255;\r
+ g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255 + (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth);\r
+ b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth);\r
+\r
+ coef = (imHeight - y) / imHeight;\r
+ r = 128 + (r - 128) * coef;\r
+ g = 128 + (g - 128) * coef;\r
+ b = 128 + (b - 128) * coef;\r
+\r
+ changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b));\r
+ updateLight(r, g, b);\r
+}\r
+\r
+function updateLight(r, g, b) {\r
+ var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color;\r
+\r
+ for (i=0; i<detail; i++) {\r
+ if ((i>=0) && (i<partDetail)) {\r
+ finalCoef = i / partDetail;\r
+ finalR = dechex(255 - (255 - r) * finalCoef);\r
+ finalG = dechex(255 - (255 - g) * finalCoef);\r
+ finalB = dechex(255 - (255 - b) * finalCoef);\r
+ } else {\r
+ finalCoef = 2 - i / partDetail;\r
+ finalR = dechex(r * finalCoef);\r
+ finalG = dechex(g * finalCoef);\r
+ finalB = dechex(b * finalCoef);\r
+ }\r
+\r
+ color = finalR + finalG + finalB;\r
+\r
+ document.getElementById('gs' + i).style.backgroundColor = '#'+color;\r
+ }\r
+}\r
+\r
+function changeFinalColor(color) {\r
+ if (color.indexOf('#') == -1)\r
+ color = convertRGBToHex(color);\r
+\r
+ document.getElementById('preview').style.backgroundColor = color;\r
+ document.getElementById('color').value = color;\r
+}\r
+\r
+tinyMCEPopup.onInit.add(init);\r
--- /dev/null
+var ImageDialog = {\r
+ preInit : function() {\r
+ var url;\r
+\r
+ tinyMCEPopup.requireLangPack();\r
+\r
+ if (url = tinyMCEPopup.getParam("external_image_list_url"))\r
+ document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
+ },\r
+\r
+ init : function() {\r
+ var f = document.forms[0], ed = tinyMCEPopup.editor;\r
+\r
+ // Setup browse button\r
+ document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_standard_image');\r
+ if (isVisible('srcbrowser'))\r
+ document.getElementById('src').style.width = '180px';\r
+\r
+ e = ed.selection.getNode();\r
+\r
+ this.fillFileList('image_list', 'tinyMCEImageList');\r
+\r
+ if (e.nodeName == 'IMG') {\r
+ f.src.value = ed.dom.getAttrib(e, 'src');\r
+ f.alt.value = ed.dom.getAttrib(e, 'alt');\r
+ f.border.value = this.getAttrib(e, 'border');\r
+ f.vspace.value = this.getAttrib(e, 'vspace');\r
+ f.hspace.value = this.getAttrib(e, 'hspace');\r
+ f.width.value = ed.dom.getAttrib(e, 'width');\r
+ f.height.value = ed.dom.getAttrib(e, 'height');\r
+ f.insert.value = ed.getLang('update');\r
+ this.styleVal = ed.dom.getAttrib(e, 'style');\r
+ selectByValue(f, 'image_list', f.src.value);\r
+ selectByValue(f, 'align', this.getAttrib(e, 'align'));\r
+ this.updateStyle();\r
+ }\r
+ },\r
+\r
+ fillFileList : function(id, l) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
+\r
+ l = window[l];\r
+\r
+ if (l && l.length > 0) {\r
+ lst.options[lst.options.length] = new Option('', '');\r
+\r
+ tinymce.each(l, function(o) {\r
+ lst.options[lst.options.length] = new Option(o[0], o[1]);\r
+ });\r
+ } else\r
+ dom.remove(dom.getParent(id, 'tr'));\r
+ },\r
+\r
+ update : function() {\r
+ var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el;\r
+\r
+ tinyMCEPopup.restoreSelection();\r
+\r
+ if (f.src.value === '') {\r
+ if (ed.selection.getNode().nodeName == 'IMG') {\r
+ ed.dom.remove(ed.selection.getNode());\r
+ ed.execCommand('mceRepaint');\r
+ }\r
+\r
+ tinyMCEPopup.close();\r
+ return;\r
+ }\r
+\r
+ if (!ed.settings.inline_styles) {\r
+ args = tinymce.extend(args, {\r
+ vspace : nl.vspace.value,\r
+ hspace : nl.hspace.value,\r
+ border : nl.border.value,\r
+ align : getSelectValue(f, 'align')\r
+ });\r
+ } else\r
+ args.style = this.styleVal;\r
+\r
+ tinymce.extend(args, {\r
+ src : f.src.value,\r
+ alt : f.alt.value,\r
+ width : f.width.value,\r
+ height : f.height.value\r
+ });\r
+\r
+ el = ed.selection.getNode();\r
+\r
+ if (el && el.nodeName == 'IMG') {\r
+ ed.dom.setAttribs(el, args);\r
+ } else {\r
+ ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" src="javascript:;" />', {skip_undo : 1});\r
+ ed.dom.setAttribs('__mce_tmp', args);\r
+ ed.dom.setAttrib('__mce_tmp', 'id', '');\r
+ ed.undoManager.add();\r
+ }\r
+\r
+ tinyMCEPopup.close();\r
+ },\r
+\r
+ updateStyle : function() {\r
+ var dom = tinyMCEPopup.dom, st, v, f = document.forms[0];\r
+\r
+ if (tinyMCEPopup.editor.settings.inline_styles) {\r
+ st = tinyMCEPopup.dom.parseStyle(this.styleVal);\r
+\r
+ // Handle align\r
+ v = getSelectValue(f, 'align');\r
+ if (v) {\r
+ if (v == 'left' || v == 'right') {\r
+ st['float'] = v;\r
+ delete st['vertical-align'];\r
+ } else {\r
+ st['vertical-align'] = v;\r
+ delete st['float'];\r
+ }\r
+ } else {\r
+ delete st['float'];\r
+ delete st['vertical-align'];\r
+ }\r
+\r
+ // Handle border\r
+ v = f.border.value;\r
+ if (v || v == '0') {\r
+ if (v == '0')\r
+ st['border'] = '0';\r
+ else\r
+ st['border'] = v + 'px solid black';\r
+ } else\r
+ delete st['border'];\r
+\r
+ // Handle hspace\r
+ v = f.hspace.value;\r
+ if (v) {\r
+ delete st['margin'];\r
+ st['margin-left'] = v + 'px';\r
+ st['margin-right'] = v + 'px';\r
+ } else {\r
+ delete st['margin-left'];\r
+ delete st['margin-right'];\r
+ }\r
+\r
+ // Handle vspace\r
+ v = f.vspace.value;\r
+ if (v) {\r
+ delete st['margin'];\r
+ st['margin-top'] = v + 'px';\r
+ st['margin-bottom'] = v + 'px';\r
+ } else {\r
+ delete st['margin-top'];\r
+ delete st['margin-bottom'];\r
+ }\r
+\r
+ // Merge\r
+ st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st));\r
+ this.styleVal = dom.serializeStyle(st);\r
+ }\r
+ },\r
+\r
+ getAttrib : function(e, at) {\r
+ var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;\r
+\r
+ if (ed.settings.inline_styles) {\r
+ switch (at) {\r
+ case 'align':\r
+ if (v = dom.getStyle(e, 'float'))\r
+ return v;\r
+\r
+ if (v = dom.getStyle(e, 'vertical-align'))\r
+ return v;\r
+\r
+ break;\r
+\r
+ case 'hspace':\r
+ v = dom.getStyle(e, 'margin-left')\r
+ v2 = dom.getStyle(e, 'margin-right');\r
+ if (v && v == v2)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+\r
+ case 'vspace':\r
+ v = dom.getStyle(e, 'margin-top')\r
+ v2 = dom.getStyle(e, 'margin-bottom');\r
+ if (v && v == v2)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+\r
+ case 'border':\r
+ v = 0;\r
+\r
+ tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {\r
+ sv = dom.getStyle(e, 'border-' + sv + '-width');\r
+\r
+ // False or not the same as prev\r
+ if (!sv || (sv != v && v !== 0)) {\r
+ v = 0;\r
+ return false;\r
+ }\r
+\r
+ if (sv)\r
+ v = sv;\r
+ });\r
+\r
+ if (v)\r
+ return parseInt(v.replace(/[^0-9]/g, ''));\r
+\r
+ break;\r
+ }\r
+ }\r
+\r
+ if (v = dom.getAttrib(e, at))\r
+ return v;\r
+\r
+ return '';\r
+ },\r
+\r
+ resetImageData : function() {\r
+ var f = document.forms[0];\r
+\r
+ f.width.value = f.height.value = ""; \r
+ },\r
+\r
+ updateImageData : function() {\r
+ var f = document.forms[0], t = ImageDialog;\r
+\r
+ if (f.width.value == "")\r
+ f.width.value = t.preloadImg.width;\r
+\r
+ if (f.height.value == "")\r
+ f.height.value = t.preloadImg.height;\r
+ },\r
+\r
+ getImageData : function() {\r
+ var f = document.forms[0];\r
+\r
+ this.preloadImg = new Image();\r
+ this.preloadImg.onload = this.updateImageData;\r
+ this.preloadImg.onerror = this.resetImageData;\r
+ this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value);\r
+ }\r
+};\r
+\r
+ImageDialog.preInit();\r
+tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+\r
+var LinkDialog = {\r
+ preInit : function() {\r
+ var url;\r
+\r
+ if (url = tinyMCEPopup.getParam("external_link_list_url"))\r
+ document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
+ },\r
+\r
+ init : function() {\r
+ var f = document.forms[0], ed = tinyMCEPopup.editor;\r
+\r
+ // Setup browse button\r
+ document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_standard_link');\r
+ if (isVisible('hrefbrowser'))\r
+ document.getElementById('href').style.width = '180px';\r
+\r
+ this.fillClassList('class_list');\r
+ this.fillFileList('link_list', 'tinyMCELinkList');\r
+ this.fillTargetList('target_list');\r
+\r
+ if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) {\r
+ f.href.value = ed.dom.getAttrib(e, 'href');\r
+ f.linktitle.value = ed.dom.getAttrib(e, 'title');\r
+ f.insert.value = ed.getLang('update');\r
+ selectByValue(f, 'link_list', f.href.value);\r
+ selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target'));\r
+ selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class'));\r
+ }\r
+ },\r
+\r
+ update : function() {\r
+ var f = document.forms[0], ed = tinyMCEPopup.editor, e, b;\r
+\r
+ tinyMCEPopup.restoreSelection();\r
+ e = ed.dom.getParent(ed.selection.getNode(), 'A');\r
+\r
+ // Remove element if there is no href\r
+ if (!f.href.value) {\r
+ if (e) {\r
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
+ b = ed.selection.getBookmark();\r
+ ed.dom.remove(e, 1);\r
+ ed.selection.moveToBookmark(b);\r
+ tinyMCEPopup.execCommand("mceEndUndoLevel");\r
+ tinyMCEPopup.close();\r
+ return;\r
+ }\r
+ }\r
+\r
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
+\r
+ // Create new anchor elements\r
+ if (e == null) {\r
+ tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});\r
+\r
+ tinymce.each(ed.dom.select("a"), function(n) {\r
+ if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {\r
+ e = n;\r
+\r
+ ed.dom.setAttribs(e, {\r
+ href : f.href.value,\r
+ title : f.linktitle.value,\r
+ target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,\r
+ 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null\r
+ });\r
+ }\r
+ });\r
+ } else {\r
+ ed.dom.setAttribs(e, {\r
+ href : f.href.value,\r
+ title : f.linktitle.value,\r
+ target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,\r
+ 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null\r
+ });\r
+ }\r
+\r
+ // Don't move caret if selection was image\r
+ if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') {\r
+ ed.focus();\r
+ ed.selection.select(e);\r
+ ed.selection.collapse(0);\r
+ tinyMCEPopup.storeSelection();\r
+ }\r
+\r
+ tinyMCEPopup.execCommand("mceEndUndoLevel");\r
+ tinyMCEPopup.close();\r
+ },\r
+\r
+ checkPrefix : function(n) {\r
+ if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('standard_dlg.link_is_email')))\r
+ n.value = 'mailto:' + n.value;\r
+\r
+ if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('standard_dlg.link_is_external')))\r
+ n.value = 'http://' + n.value;\r
+ },\r
+\r
+ fillFileList : function(id, l) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
+\r
+ l = window[l];\r
+\r
+ if (l && l.length > 0) {\r
+ lst.options[lst.options.length] = new Option('', '');\r
+\r
+ tinymce.each(l, function(o) {\r
+ lst.options[lst.options.length] = new Option(o[0], o[1]);\r
+ });\r
+ } else\r
+ dom.remove(dom.getParent(id, 'tr'));\r
+ },\r
+\r
+ fillClassList : function(id) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
+\r
+ if (v = tinyMCEPopup.getParam('theme_standard_styles')) {\r
+ cl = [];\r
+\r
+ tinymce.each(v.split(';'), function(v) {\r
+ var p = v.split('=');\r
+\r
+ cl.push({'title' : p[0], 'class' : p[1]});\r
+ });\r
+ } else\r
+ cl = tinyMCEPopup.editor.dom.getClasses();\r
+\r
+ if (cl.length > 0) {\r
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
+\r
+ tinymce.each(cl, function(o) {\r
+ lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);\r
+ });\r
+ } else\r
+ dom.remove(dom.getParent(id, 'tr'));\r
+ },\r
+\r
+ fillTargetList : function(id) {\r
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v;\r
+\r
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('standard_dlg.link_target_same'), '_self');\r
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('standard_dlg.link_target_blank'), '_blank');\r
+\r
+ if (v = tinyMCEPopup.getParam('theme_standard_link_targets')) {\r
+ tinymce.each(v.split(','), function(v) {\r
+ v = v.split('=');\r
+ lst.options[lst.options.length] = new Option(v[0], v[1]);\r
+ });\r
+ }\r
+ }\r
+};\r
+\r
+LinkDialog.preInit();\r
+tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog);\r
--- /dev/null
+tinyMCEPopup.requireLangPack();\r
+tinyMCEPopup.onInit.add(onLoadInit);\r
+\r
+function saveContent() {\r
+ tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value);\r
+ tinyMCEPopup.close();\r
+}\r
+\r
+function onLoadInit() {\r
+ tinyMCEPopup.resizeToInnerSize();\r
+\r
+ // Remove Gecko spellchecking\r
+ if (tinymce.isGecko)\r
+ document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck");\r
+\r
+ document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent();\r
+\r
+ if (tinyMCEPopup.editor.getParam("theme_standard_source_editor_wrap", true)) {\r
+ setWrap('soft');\r
+ document.getElementById('wraped').checked = true;\r
+ }\r
+\r
+ resizeInputs();\r
+}\r
+\r
+function setWrap(val) {\r
+ var v, n, s = document.getElementById('htmlSource');\r
+\r
+ s.wrap = val;\r
+\r
+ if (!tinymce.isIE) {\r
+ v = s.value;\r
+ n = s.cloneNode(false);\r
+ n.setAttribute("wrap", val);\r
+ s.parentNode.replaceChild(n, s);\r
+ n.value = v;\r
+ }\r
+}\r
+\r
+function toggleWordWrap(elm) {\r
+ if (elm.checked)\r
+ setWrap('soft');\r
+ else\r
+ setWrap('off');\r
+}\r
+\r
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;\r
+\r
+function resizeInputs() {\r
+ var el = document.getElementById('htmlSource');\r
+\r
+ if (!tinymce.isIE) {\r
+ wHeight = self.innerHeight - 65;\r
+ wWidth = self.innerWidth - 16;\r
+ } else {\r
+ wHeight = document.body.clientHeight - 70;\r
+ wWidth = document.body.clientWidth - 16;\r
+ }\r
+\r
+ el.style.height = Math.abs(wHeight) + 'px';\r
+ el.style.width = Math.abs(wWidth) + 'px';\r
+}\r
--- /dev/null
+tinyMCE.addI18n('ar.standard',{\r
+style_select:"Lang",\r
+font_size:"\u062D\u062C\u0645 \u0627\u0644\u062E\u0637",\r
+fontdefault:"\u0646\u0648\u0639 \u0627\u0644\u062E\u0637",\r
+block:"\u062A\u0646\u0633\u064A\u0642",\r
+paragraph:"\u0641\u0642\u0631\u0629",\r
+div:"Div",\r
+address:"\u0639\u0646\u0648\u0627\u0646",\r
+pre:"Preformatted",\r
+h1:"\u0639\u0646\u0648\u0627\u0646 1",\r
+h2:"\u0639\u0646\u0648\u0627\u0646 2",\r
+h3:"\u0639\u0646\u0648\u0627\u0646 3",\r
+h4:"\u0639\u0646\u0648\u0627\u0646 4",\r
+h5:"\u0639\u0646\u0648\u0627\u0646 5",\r
+h6:"\u0639\u0646\u0648\u0627\u0646 6",\r
+blockquote:"Blockquote",\r
+code:"\u0643\u0648\u062F",\r
+samp:"\u0643\u0648\u062F \u0628\u0633\u064A\u0637",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"\u0639\u0631\u064A\u0636 (Ctrl+B)",\r
+italic_desc:"\u0645\u0627\u0626\u0644 (Ctrl+I)",\r
+underline_desc:"\u062A\u062D\u062A\u0647 \u062E\u0637 (Ctrl+U)",\r
+striketrough_desc:"\u064A\u062A\u0648\u0633\u0637\u0629 \u062E\u0637",\r
+justifyleft_desc:"\u0645\u062D\u0627\u0630\u0627\u0629 \u0644\u0644\u064A\u0633\u0627\u0631",\r
+justifycenter_desc:"\u0645\u062D\u0627\u0630\u0627\u0629 \u0644\u0644\u0648\u0633\u0637",\r
+justifyright_desc:"\u0645\u062D\u0627\u0630\u0627\u0629 \u064A\u0645\u064A\u0646",\r
+justifyfull_desc:"\u0636\u0628\u0637",\r
+bullist_desc:"\u062A\u0639\u062F\u0627\u062F \u0646\u0642\u0637\u064A",\r
+numlist_desc:"\u062A\u0639\u062F\u0627\u062F \u0631\u0642\u0645\u064A",\r
+outdent_desc:"\u0625\u0646\u0642\u0627\u0635 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062F\u0626\u0629",\r
+indent_desc:"\u0632\u064A\u0627\u062F\u0629 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062F\u0626\u0629",\r
+undo_desc:"\u062A\u0631\u0627\u062C\u0639 (Ctrl+Z)",\r
+redo_desc:"\u0625\u0639\u0627\u062F\u0629 (Ctrl+Y)",\r
+link_desc:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0631\u0627\u0628\u0637",\r
+unlink_desc:"\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0631\u0627\u0628\u0637",\r
+image_desc:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0635\u0648\u0631\u0629",\r
+cleanup_desc:"\u062A\u0646\u0636\u064A\u0641 \u0627\u0644\u0623\u0643\u0648\u0627\u062F \u0627\u0644\u062E\u0627\u0637\u0626\u0629",\r
+code_desc:"\u062A\u062D\u0631\u064A\u0631 \u0643\u0648\u062F HTML",\r
+sub_desc:"\u0623\u0633\u0641\u0644 \u0627\u0644\u0646\u0635",\r
+sup_desc:"\u0623\u0639\u0644\u0649 \u0627\u0644\u0646\u0635",\r
+hr_desc:"\u0625\u062F\u0631\u0627\u062C \u062E\u0637 \u0627\u0641\u0642\u064A",\r
+removeformat_desc:"\u0645\u0633\u062D \u0627\u0644\u062A\u0646\u0633\u064A\u0642\u0627\u062A",\r
+custom1_desc:"Your custom description here",\r
+forecolor_desc:"\u062D\u062F\u062F \u0644\u0648\u0646 \u0627\u0644\u0646\u0635",\r
+backcolor_desc:"\u062D\u062F\u062F \u0644\u0648\u0646 \u0627\u0644\u062E\u0644\u0641\u064A\u0629",\r
+charmap_desc:"\u0625\u062F\u0627\u0631\u062C \u062D\u0631\u0641 \u0645\u062E\u0635\u0635",\r
+visualaid_desc:"Toggle guidelines/invisible elements",\r
+anchor_desc:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0639\u0644\u0627\u0645\u0629",\r
+cut_desc:"\u0642\u0635",\r
+copy_desc:"\u0646\u0633\u062E",\r
+paste_desc:"\u0644\u0635\u0642",\r
+image_props_desc:"\u062E\u0635\u0627\u0626\u0635 \u0627\u0644\u0635\u0648\u0631\u0629",\r
+newdocument_desc:"\u0645\u0633\u062A\u0646\u062F \u062C\u062F\u064A\u062F",\r
+help_desc:"\u0645\u0633\u0627\u0639\u062F\u0629",\r
+blockquote_desc:"Blockquote",\r
+clipboard_msg:"\u0646\u0633\u062E/\u0642\u0635/\u0644\u0635\u0642 \u063A\u064A\u0631 \u0645\u062A\u0648\u0641\u0631\u0629 \u0644\u0645\u062A\u0635\u0641\u062D Mozilla \u0648 Firefox.\n\u0647\u0644 \u062A\u0631\u064A\u062F \u0645\u0639\u0631\u0641\u0629 \u0627\u0644\u0645\u0632\u064A\u062F \u0645\u0646 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u062D\u0648\u0644 \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0636\u0648\u0639?",\r
+path:"\u0627\u0644\u0645\u0633\u0627\u0631",\r
+newdocument:"\u0647\u0644 \u062A\u0631\u064A\u062F \u062D\u0642\u0627 \u0645\u0633\u062D \u062C\u0645\u064A\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u064A\u0627\u062A?",\r
+toolbar_focus:"\u0625\u0646\u062A\u0642\u0627\u0644 \u0644\u0634\u0631\u064A\u0637 \u0627\u0644\u0623\u062F\u0648\u0627\u062A - Alt+Q, \u0625\u0646\u062A\u0642\u0627\u0644 \u0644\u0644\u0645\u062D\u0631\u0631 - Alt-Z, \u0625\u0646\u062A\u0642\u0627\u0644 \u0644\u0644\u0645\u0633\u0627\u0631 - Alt-X",\r
+more_colors:"\u0645\u0632\u064A\u062F \u0645\u0646 \u0627\u0644\u0623\u0644\u0648\u0627\u0646"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ar.standard_dlg',{\r
+about_title:"\u062D\u0648\u0644 TinyMCE",\r
+about_general:"\u062D\u0648\u0644",\r
+about_help:"\u0645\u0633\u0627\u0639\u062F\u0629",\r
+about_license:"\u0627\u0644\u0631\u062E\u0635\u0629",\r
+about_plugins:"\u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062A",\r
+about_plugin:"\u0627\u0644\u0625\u0636\u0627\u0641\u0629",\r
+about_author:"\u0627\u0644\u0645\u0628\u0631\u0645\u062C",\r
+about_version:"\u0627\u0644\u0625\u0635\u062F\u0627\u0631",\r
+about_loaded:"\u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062A \u0627\u0644\u0645\u062D\u0645\u0644\u0629",\r
+anchor_title:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0639\u0644\u0627\u0645\u0629",\r
+anchor_name:"\u0627\u0633\u0645 \u0627\u0644\u0639\u0644\u0627\u0645\u0629",\r
+code_title:"\u0645\u062D\u0631\u0631 \u0643\u0648\u062F HTML",\r
+code_wordwrap:"\u0627\u0644\u062A\u0641\u0627\u0641 \u0627\u0644\u0646\u0635",\r
+colorpicker_title:"\u062D\u062F\u062F \u0644\u0648\u0646",\r
+colorpicker_picker_tab:"\u0627\u0644\u0645\u0627\u0632\u062C",\r
+colorpicker_picker_title:"\u0645\u0627\u0632\u062C \u0627\u0644\u0623\u0644\u0648\u0627\u0646",\r
+colorpicker_palette_tab:"\u0627\u0644\u0644\u0648\u062D\u0629",\r
+colorpicker_palette_title:"\u0644\u0648\u062D\u0629 \u0627\u0644\u0623\u0644\u0648\u0627\u0646",\r
+colorpicker_named_tab:"\u0627\u0644\u0623\u0633\u0645\u0627\u0621",\r
+colorpicker_named_title:"\u0627\u0633\u0645\u0627\u0621 \u0627\u0644\u0623\u0644\u0648\u0627\u0646",\r
+colorpicker_color:"\u0627\u0644\u0644\u0648\u0646:",\r
+colorpicker_name:"\u0627\u0644\u0623\u0633\u0645:",\r
+charmap_title:"\u062D\u062F\u062F \u062D\u0631\u0641 \u0645\u062E\u0635\u0635",\r
+image_title:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0635\u0648\u0631\u0629",\r
+image_src:"\u0631\u0627\u0628\u0637 \u0627\u0644\u0635\u0648\u0631\u0629",\r
+image_alt:"\u0648\u0635\u0641 \u0627\u0644\u0635\u0648\u0631\u0629",\r
+image_list:"\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0635\u0648\u0631",\r
+image_border:"\u0627\u0644\u062D\u062F\u0648\u062F",\r
+image_dimensions:"\u0627\u0644\u0642\u064A\u0627\u0633\u0627\u062A",\r
+image_vspace:"\u0645\u0633\u0627\u0641\u0629 \u0639\u0645\u0648\u062F\u064A\u0629",\r
+image_hspace:"\u0645\u0633\u0627\u0641\u0629 \u0627\u0641\u0642\u064A\u0629",\r
+image_align:"\u0645\u062D\u0627\u0630\u0627\u0629",\r
+image_align_baseline:"\u062E\u0637 \u0627\u0644\u0642\u0627\u0639\u062F\u0629",\r
+image_align_top:"\u0623\u0639\u0644\u0649",\r
+image_align_middle:"\u062A\u0648\u0633\u064A\u0637 \u0639\u0645\u0648\u062F\u064A",\r
+image_align_bottom:"\u0627\u0633\u0641\u0644",\r
+image_align_texttop:"\u0623\u0639\u0644\u0649 \u0627\u0644\u0646\u0635",\r
+image_align_textbottom:"\u0623\u0633\u0641\u0644 \u0627\u0644\u0646\u0635",\r
+image_align_left:"\u064A\u0633\u0627\u0631",\r
+image_align_right:"\u064A\u0645\u064A\u0646",\r
+link_title:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0631\u0627\u0628\u0637",\r
+link_url:"\u0627\u0644\u0631\u0627\u0628\u0637",\r
+link_target:"\u0627\u0644\u0645\u0633\u0627\u0631",\r
+link_target_same:"\u0641\u062A\u062D \u0627\u0644\u0631\u0627\u0628\u0637 \u0641\u064A \u0646\u0641\u0633 \u0627\u0644\u0635\u0641\u062D\u0629",\r
+link_target_blank:"\u0641\u062A\u062D \u0627\u0644\u0631\u0627\u0628\u0637 \u0641\u064A \u0635\u0641\u062D\u0629 \u062C\u062F\u064A\u062F\u0629",\r
+link_titlefield:"\u0627\u0644\u0639\u0646\u0648\u0627\u0646",\r
+link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
+link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
+link_list:"\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0631\u0648\u0627\u0628\u0637"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bg.standard',{\r
+style_select:"Lang",\r
+font_size:"\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0448\u0440\u0438\u0444\u0442\u0430",\r
+fontdefault:"\u0428\u0440\u0438\u0444\u0442",\r
+block:"\u0424\u043E\u0440\u043C\u0430\u0442",\r
+paragraph:"\u041F\u0430\u0440\u0430\u0433\u0440\u0430\u0444",\r
+div:"Div",\r
+address:"\u0410\u0434\u0440\u0435\u0441",\r
+pre:"\u041F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u043D\u043E \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u0430\u043D",\r
+h1:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 1",\r
+h2:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 2",\r
+h3:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 3",\r
+h4:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 4",\r
+h5:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 5",\r
+h6:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 6",\r
+blockquote:"\u0426\u0438\u0442\u0430\u0442",\r
+code:"\u041A\u043E\u0434",\r
+samp:"\u041F\u0440\u043E\u043C\u0435\u0440\u0435\u043D \u043A\u043E\u0434",\r
+dt:"\u0414\u0435\u0444\u0438\u043D\u0438\u0446\u0438\u044F ",\r
+dd:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430 \u0434\u0435\u0444\u0438\u043D\u0438\u0446\u0438\u044F",\r
+bold_desc:"\u041F\u043E\u043B\u0443\u0447\u0435\u0440 (Ctrl+B)",\r
+italic_desc:"\u041A\u0443\u0440\u0441\u0438\u0432 (Ctrl+I)",\r
+underline_desc:"\u041F\u043E\u0434\u0447\u0435\u0440\u0442\u0430\u043D (Ctrl+U)",\r
+striketrough_desc:"\u0417\u0430\u0447\u0435\u0440\u0442\u0430\u043D",\r
+justifyleft_desc:"\u041F\u043E\u0434\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435 \u043E\u0442\u043B\u044F\u0432\u043E",\r
+justifycenter_desc:"\u0426\u0435\u043D\u0442\u0440\u0438\u0440\u0430\u043D\u043E",\r
+justifyright_desc:"\u041F\u043E\u0434\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435 \u043E\u0442\u0434\u044F\u0441\u043D\u043E",\r
+justifyfull_desc:"\u0414\u0432\u0443\u0441\u0442\u0440\u0430\u043D\u043D\u043E",\r
+bullist_desc:"\u0412\u043E\u0434\u0430\u0447\u0438",\r
+numlist_desc:"\u041D\u043E\u043C\u0435\u0440\u0430",\r
+outdent_desc:"\u041D\u0430\u043C\u0430\u043B\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0442\u0441\u0442\u044A\u043F\u0430",\r
+indent_desc:"\u0423\u0432\u0435\u043B\u0438\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0442\u0441\u0442\u044A\u043F\u0430",\r
+undo_desc:"\u041E\u0442\u043C\u044F\u043D\u0430 (Ctrl+Z)",\r
+redo_desc:"\u0412\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 (Ctrl+Y)",\r
+link_desc:"\u0412\u043C\u044A\u043A\u0432\u0430\u043D\u0435/\u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u043D\u0430 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430",\r
+unlink_desc:"\u041F\u0440\u0435\u043C\u0430\u0445\u043D\u0438 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430",\r
+image_desc:"\u0412\u043C\u044A\u043A\u0432\u0430\u043D\u0435/\u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+cleanup_desc:"\u0418\u0437\u0447\u0438\u0441\u0442\u0438 \u043A\u043E\u0434\u0430",\r
+code_desc:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 HTML",\r
+sub_desc:"\u0414\u043E\u043B\u0435\u043D \u0438\u043D\u0434\u0435\u043A\u0441",\r
+sup_desc:"\u0413\u043E\u0440\u0435\u043D \u0438\u043D\u0434\u0435\u043A\u0441",\r
+hr_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u0445\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u043D\u0430 \u043B\u0438\u043D\u0438\u044F",\r
+removeformat_desc:"\u041F\u0440\u0435\u043C\u0430\u0445\u043D\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u0430\u043D\u0435\u0442\u043E",\r
+custom1_desc:"\u0412\u0430\u0448\u0435\u0442\u043E \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0442\u0443\u043A",\r
+forecolor_desc:"\u0418\u0437\u0431\u0435\u0440\u0438 \u0446\u0432\u044F\u0442 \u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u0430",\r
+backcolor_desc:"\u0418\u0437\u0431\u0435\u0440\u0438 \u0446\u0432\u044F\u0442 \u043D\u0430 \u0444\u043E\u043D\u0430",\r
+charmap_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+visualaid_desc:"\u0412\u043A\u043B./\u0438\u0437\u043A\u043B. \u043D\u0435\u0432\u0438\u0434\u0438\u043C\u0438\u0442\u0435 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438",\r
+anchor_desc:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u043A\u043E\u0442\u0432\u0430",\r
+cut_desc:"\u0418\u0437\u0440\u044F\u0437\u0432\u0430\u043D\u0435",\r
+copy_desc:"\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435",\r
+paste_desc:"\u041F\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435",\r
+image_props_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430\u0442\u0430",\r
+newdocument_desc:"\u041D\u043E\u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442",\r
+help_desc:"\u041F\u043E\u043C\u043E\u0449",\r
+blockquote_desc:"\u0426\u0438\u0442\u0430\u0442",\r
+clipboard_msg:"\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435/\u041E\u0442\u0440\u044F\u0437\u0432\u0430\u043D\u0435/\u041F\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435 \u043D\u0435 \u0435 \u0434\u043E\u0441\u0442\u044A\u043F\u043D\u043E \u043F\u043E\u0434 Mozilla \u0438 Firefox.\r\n\u0416\u0435\u043B\u0430\u0435\u0442\u0435 \u043B\u0438 \u043F\u043E\u0432\u0435\u0447\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430?",\r
+path:"\u041F\u044A\u0442",\r
+newdocument:"\u0421\u0438\u0433\u0443\u0440\u0435\u043D \u043B\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043A\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0447\u0438\u0441\u0442\u0438\u0442\u0435 \u0446\u044F\u043B\u043E\u0442\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435?",\r
+toolbar_focus:"\u041E\u0442\u0438\u0434\u0438 \u043F\u0440\u0438 \u0431\u0443\u0442\u043E\u043D\u0438\u0442\u0435 - Alt+Q, \u041E\u0442\u0438\u0434\u0438 \u043F\u0440\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 - Alt-Z, \u041E\u0442\u0438\u0434\u0438 \u043F\u0440\u0438 \u043F\u044A\u0442\u0435\u043A\u0430\u0442\u0430 \u043D\u0430 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438\u0442\u0435 - Alt-X",\r
+more_colors:"\u041E\u0449\u0435 \u0446\u0432\u0435\u0442\u043E\u0432\u0435"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bg.standard_dlg',{\r
+about_title:"\u041E\u0442\u043D\u043E\u0441\u043D\u043E TinyMCE",\r
+about_general:"\u041E\u0442\u043D\u043E\u0441\u043D\u043E",\r
+about_help:"\u041F\u043E\u043C\u043E\u0449",\r
+about_license:"\u041B\u0438\u0446\u0435\u043D\u0437",\r
+about_plugins:"\u0414\u043E\u0431\u0430\u0432\u043A\u0438",\r
+about_plugin:"\u0414\u043E\u0431\u0430\u0432\u043A\u0430",\r
+about_author:"\u0410\u0432\u0442\u043E\u0440",\r
+about_version:"\u0412\u0435\u0440\u0441\u0438\u044F",\r
+about_loaded:"\u0417\u0430\u0440\u0435\u0434\u0435\u043D\u0438 \u0434\u043E\u0431\u0430\u0432\u043A\u0438",\r
+anchor_title:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u043A\u043E\u0442\u0432\u0430",\r
+anchor_name:"\u0418\u043C\u0435 \u043D\u0430 \u043A\u043E\u0442\u0432\u0430\u0442\u0430",\r
+code_title:"\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0430 HTML",\r
+code_wordwrap:"\u041F\u0440\u0435\u043D\u043E\u0441 \u043D\u0430 \u0434\u0443\u043C\u0438",\r
+colorpicker_title:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0446\u0432\u044F\u0442",\r
+colorpicker_picker_tab:"\u0418\u0437\u0431\u043E\u0440",\r
+colorpicker_picker_title:"\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0446\u0432\u044F\u0442",\r
+colorpicker_palette_tab:"\u041F\u0430\u043B\u0438\u0442\u0440\u0430",\r
+colorpicker_palette_title:"\u0426\u0432\u0435\u0442\u043E\u0432\u0430 \u043F\u0430\u043B\u0438\u0442\u0440\u0430",\r
+colorpicker_named_tab:"\u0418\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0438",\r
+colorpicker_named_title:"\u0418\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0438 \u0446\u0432\u0435\u0442\u043E\u0432\u0435",\r
+colorpicker_color:"\u0426\u0432\u044F\u0442:",\r
+colorpicker_name:"\u0418\u043C\u0435:",\r
+charmap_title:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+image_title:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+image_src:"URL \u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+image_alt:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+image_list:"\u0421\u043F\u0438\u0441\u044A\u043A \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438",\r
+image_border:"\u0420\u0430\u043C\u043A\u0430",\r
+image_dimensions:"\u0420\u0430\u0437\u043C\u0435\u0440\u0438",\r
+image_vspace:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u043D\u043E \u0440\u0430\u0437\u0441\u0442\u043E\u044F\u043D\u0438\u0435",\r
+image_hspace:"\u0425\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u043D\u043E \u0440\u0430\u0437\u0441\u0442\u043E\u044F\u043D\u0438\u0435",\r
+image_align:"\u041F\u043E\u0434\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435",\r
+image_align_baseline:"\u0411\u0430\u0437\u043E\u0432\u0430 \u043B\u0438\u043D\u0438\u044F",\r
+image_align_top:"\u0413\u043E\u0440\u0435",\r
+image_align_middle:"\u0426\u0435\u043D\u0442\u0440\u0438\u0440\u0430\u043D\u0435",\r
+image_align_bottom:"\u0414\u043E\u043B\u0443",\r
+image_align_texttop:"\u0422\u0435\u043A\u0441\u0442 \u0433\u043E\u0440\u0435",\r
+image_align_textbottom:"\u0422\u0435\u043A\u0441\u0442 \u0434\u043E\u043B\u0443",\r
+image_align_left:"\u041B\u044F\u0432\u043E",\r
+image_align_right:"\u0414\u044F\u0441\u043D\u043E",\r
+link_title:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430",\r
+link_url:"URL \u043D\u0430 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430",\r
+link_target:"\u0426\u0435\u043B",\r
+link_target_same:"\u041E\u0442\u0432\u043E\u0440\u0438 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u0432 \u0441\u044A\u0449\u0438\u044F\u0442 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446",\r
+link_target_blank:"\u041E\u0442\u0432\u043E\u0440\u0438 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u0432 \u043D\u043E\u0432 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446",\r
+link_titlefield:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435",\r
+link_is_email:"URL-\u0442\u043E \u043A\u043E\u0435\u0442\u043E \u0432\u044A\u0432\u0435\u0434\u043E\u0445\u0442\u0435 \u0435 email \u0430\u0434\u0440\u0435\u0441, \u0436\u0435\u043B\u0430\u0435\u0442\u0435 \u043B\u0438 \u0434\u0430 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u0435 \u043D\u0443\u0436\u043D\u0438\u044F\u0442 mailto: \u043F\u0440\u0435\u0444\u0438\u043A\u0441?",\r
+link_is_external:"URL-\u0442\u043E \u043A\u043E\u0435\u0442\u043E \u0432\u044A\u0432\u0435\u0434\u043E\u0445\u0442\u0435 \u0435 \u0432\u044A\u043D\u0448\u043D\u0430 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430, \u0436\u0435\u043B\u0430\u0435\u0442\u0435 \u043B\u0438 \u0434\u0430 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u0435 \u043D\u0443\u0436\u043D\u0438\u044F\u0442 http:// \u043F\u0440\u0435\u0444\u0438\u043A\u0441?",\r
+link_list:"\u0421\u043F\u0438\u0441\u044A\u043A \u043B\u0438\u043D\u043A\u043E\u0432\u0435"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bs.standard',{\r
+style_select:"Lang",\r
+font_size:"Veli\u010Dina pisma",\r
+fontdefault:"Vrsta pisma",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adresa",\r
+pre:"Oblikovano",\r
+h1:"Naslov 1",\r
+h2:"Naslov 2",\r
+h3:"Naslov 3",\r
+h4:"Naslov 4",\r
+h5:"Naslov 5",\r
+h6:"Naslov 6",\r
+blockquote:"Citat",\r
+code:"Kod",\r
+samp:"Primjer koda",\r
+dt:"Definicija pojma",\r
+dd:"Opis definicije",\r
+bold_desc:"Podebljaj (Ctrl+B)",\r
+italic_desc:"Kurziv (Ctrl+I)",\r
+underline_desc:"Podcrtaj (Ctrl+U)",\r
+striketrough_desc:"Precrtaj",\r
+justifyleft_desc:"Poravnaj lijevo",\r
+justifycenter_desc:"Centriraj",\r
+justifyright_desc:"Poravnaj desno",\r
+justifyfull_desc:"Poravnaj potpuno",\r
+bullist_desc:"Neure\u0111ena lista",\r
+numlist_desc:"Ure\u0111ena lista",\r
+outdent_desc:"Uvuci",\r
+indent_desc:"Izvuci",\r
+undo_desc:"Poni\u0161ti (Ctrl+Z)",\r
+redo_desc:"Ponovi (Ctrl+Y)",\r
+link_desc:"Umetni/uredi poveznicu",\r
+unlink_desc:"Poni\u0161ti poveznicu",\r
+image_desc:"Umetni/uredi sliku",\r
+cleanup_desc:"Po\u010Disti kod",\r
+code_desc:"Uredi HTML izvor",\r
+sub_desc:"Indeks",\r
+sup_desc:"Eksponent",\r
+hr_desc:"Umetni vodoravnu crtu",\r
+removeformat_desc:"Poni\u0161ti oblikovanje",\r
+custom1_desc:"Vlastiti opis ovdje",\r
+forecolor_desc:"Odaberite boju teksta",\r
+backcolor_desc:"Odaberite boju pozadine",\r
+charmap_desc:"Umetni vlastiti znak",\r
+visualaid_desc:"Vodilice/nevidljivi elementi",\r
+anchor_desc:"Umetni/uredi sidro",\r
+cut_desc:"Izre\u017Ei",\r
+copy_desc:"Kopiraj",\r
+paste_desc:"Zalijepi",\r
+image_props_desc:"Svojstva slike",\r
+newdocument_desc:"Novi dokument",\r
+help_desc:"Pomo\u0107",\r
+blockquote_desc:"Citiraj",\r
+clipboard_msg:"Kopiraj/Izre\u017Ei/Zalijepi nije dostupno u Mozilla i Firefox preglednicima. Vi\u0161e informacija?",\r
+path:"Staza",\r
+newdocument:"Jeste li sigurni da \u017Eelite izbrisati cijeli sadr\u017Eaj?",\r
+toolbar_focus:"Prije\u0111i na alatnu traku - Alt+Q, prije\u0111i na ure\u0111iva\u010D - Alt-Z, prije\u0111i na element path - Alt-X",\r
+more_colors:"Vi\u0161e boja"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bs.standard_dlg',{\r
+about_title:"TinyMCE",\r
+about_general:"O programu",\r
+about_help:"Pomo\u0107",\r
+about_license:"Licenca",\r
+about_plugins:"Dodaci",\r
+about_plugin:"Dodatak",\r
+about_author:"Autor",\r
+about_version:"Verzija",\r
+about_loaded:"Postoje\u0107i dodaci",\r
+anchor_title:"Umetni/uredi sidro",\r
+anchor_name:"Ime sidra",\r
+code_title:"HTML ure\u0111iva\u010D",\r
+code_wordwrap:"Omatanje teksta",\r
+colorpicker_title:"Izbor boje",\r
+colorpicker_picker_tab:"Odabir",\r
+colorpicker_picker_title:"Odabir boje",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta boja",\r
+colorpicker_named_tab:"Imenovano",\r
+colorpicker_named_title:"Imenovane boje",\r
+colorpicker_color:"Boja:",\r
+colorpicker_name:"Naziv:",\r
+charmap_title:"Odaberite znak",\r
+image_title:"Umetni/uredi sliku",\r
+image_src:"URL slike",\r
+image_alt:"Opis slike",\r
+image_list:"Lista slika",\r
+image_border:"Obrub",\r
+image_dimensions:"Dimenzije",\r
+image_vspace:"Okomiti razmak",\r
+image_hspace:"Vodoravni razmak",\r
+image_align:"Poravnavanje",\r
+image_align_baseline:"Osnovna linija",\r
+image_align_top:"Vrh",\r
+image_align_middle:"Sredina",\r
+image_align_bottom:"Dno",\r
+image_align_texttop:"Vrh teksta",\r
+image_align_textbottom:"Dno teksta",\r
+image_align_left:"Lijevo",\r
+image_align_right:"Desno",\r
+link_title:"Umetni/uredi poveznicu",\r
+link_url:"URL poveznice",\r
+link_target:"Meta",\r
+link_target_same:"Otvori poveznicu u istom prozoru",\r
+link_target_blank:"Otvori poveznicu u novom prozoru",\r
+link_titlefield:"Naslov",\r
+link_is_email:"URL koji ste unijeli izgleda kao e-mail adresa, \u017Eelite li dodati potrebni mailto: prefiks?",\r
+link_is_external:"URL koji ste unijeli izgleda kao vanjska poveznica, \u017Eelite li dodati potrebni http:// prefiks?",\r
+link_list:"Lista poveznica"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ca.standard',{\r
+style_select:"Lang",\r
+font_size:"Mida de lletra",\r
+fontdefault:"Tipografia",\r
+block:"Format",\r
+paragraph:"Par\u00E0graf",\r
+div:"Div",\r
+address:"Adre\u00E7a",\r
+pre:"Preformatat",\r
+h1:"Cap\u00E7alera 1",\r
+h2:"Cap\u00E7alera 2",\r
+h3:"Cap\u00E7alera 3",\r
+h4:"Cap\u00E7alera 4",\r
+h5:"Cap\u00E7alera 5",\r
+h6:"Cap\u00E7alera 6",\r
+blockquote:"Blockquote",\r
+code:"Codi",\r
+samp:"Mostra de codi",\r
+dt:"Terme de la definici\u00F3",\r
+dd:"Descripci\u00F3 de la definici\u00F3",\r
+bold_desc:"Negreta (Ctrl+B)",\r
+italic_desc:"Cursiva (Ctrl+I)",\r
+underline_desc:"Subratllat (Ctrl+U)",\r
+striketrough_desc:"Tatxat",\r
+justifyleft_desc:"Alinea a l'esquerra",\r
+justifycenter_desc:"Centra",\r
+justifyright_desc:"Alinea a la dreta",\r
+justifyfull_desc:"Justifica",\r
+bullist_desc:"Llista no ordenada",\r
+numlist_desc:"Llista ordenada",\r
+outdent_desc:"Redueix el sagnat",\r
+indent_desc:"Augmenta el sagnat",\r
+undo_desc:"Desf\u00E9s (Ctrl+Z)",\r
+redo_desc:"Ref\u00E9s (Ctrl+Y)",\r
+link_desc:"Insereix/edita enlla\u00E7",\r
+unlink_desc:"Desenlla\u00E7a",\r
+image_desc:"Insereix/edita imatge",\r
+cleanup_desc:"Neteja el codi embullat",\r
+code_desc:"Edita el font HTML",\r
+sub_desc:"Sub\u00EDndex",\r
+sup_desc:"Super\u00EDndex",\r
+hr_desc:"Insereix regle horitzontal",\r
+removeformat_desc:"Elimina el format",\r
+custom1_desc:"Aqu\u00ED la teva descripci\u00F3 personalitzada",\r
+forecolor_desc:"Selecciona el color del text",\r
+backcolor_desc:"Selecciona el color de fons",\r
+charmap_desc:"Insereix car\u00E0cter personalitzat",\r
+visualaid_desc:"Canvia els elements guies/invisibles",\r
+anchor_desc:"Insereix/edita \u00E0ncora",\r
+cut_desc:"Retalla",\r
+copy_desc:"Copia",\r
+paste_desc:"Enganxa",\r
+image_props_desc:"Propietats de la imatge",\r
+newdocument_desc:"Nou document",\r
+help_desc:"Ajuda",\r
+blockquote_desc:"Blockquote",\r
+clipboard_msg:"Copia/Retalla/Enganxa no est\u00E0 disponible en Mozilla/Firefox.\r\nVols m\u00E9s informaci\u00F3 sobre aquest tema?",\r
+path:"Cam\u00ED",\r
+newdocument:"Segur que vols esborrar tot el contingut?",\r
+toolbar_focus:"Salta als botons d'eines - Alt+Q, Salta a l'editor - Alt-Z, Salta al cam\u00ED de l'element - Alt-X",\r
+more_colors:"M\u00E9s colors"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ca.standard_dlg',{\r
+about_title:"Quant a TinyMCE",\r
+about_general:"Quant a",\r
+about_help:"Ajuda",\r
+about_license:"Llic\u00E8ncia",\r
+about_plugins:"Extensions",\r
+about_plugin:"Extensi\u00F3",\r
+about_author:"Autor",\r
+about_version:"Versi\u00F3",\r
+about_loaded:"Extensions carregades",\r
+anchor_title:"Insereix/edita \u00E0ncora",\r
+anchor_name:"Nom de l'\u00E0ncora",\r
+code_title:"Editor de Font HTML",\r
+code_wordwrap:"Salt de paraula",\r
+colorpicker_title:"Selecciona un color",\r
+colorpicker_picker_tab:"Triador",\r
+colorpicker_picker_title:"Triador de color",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Colors de la paleta",\r
+colorpicker_named_tab:"Amb nom",\r
+colorpicker_named_title:"Colors amb nom",\r
+colorpicker_color:"Color:",\r
+colorpicker_name:"Nom:",\r
+charmap_title:"Selecciona el car\u00E0cter personalitzat",\r
+image_title:"Insereix/edita imatge",\r
+image_src:"URL de la imatge",\r
+image_alt:"Descripci\u00F3 de la imatge",\r
+image_list:"Llista d'imatges",\r
+image_border:"Vora",\r
+image_dimensions:"Dimensions",\r
+image_vspace:"Espaiat vertical",\r
+image_hspace:"Espaiat horitzontal",\r
+image_align:"Alineaci\u00F3",\r
+image_align_baseline:"L\u00EDnia base",\r
+image_align_top:"Dalt",\r
+image_align_middle:"Mig",\r
+image_align_bottom:"Baix",\r
+image_align_texttop:"A dalt del text",\r
+image_align_textbottom:"A baix del text",\r
+image_align_left:"Esquerra",\r
+image_align_right:"Dreta",\r
+link_title:"Insereix/edita enlla\u00E7",\r
+link_url:"URL de l'enlla\u00E7",\r
+link_target:"Objectiu",\r
+link_target_same:"Obre l'enlla\u00E7 a la mateixa finestra",\r
+link_target_blank:"Obre l'enlla\u00E7 en una finestra nova",\r
+link_titlefield:"T\u00EDtol",\r
+link_is_email:"L'URL que has introdu\u00EFt sembla una adre\u00E7a de correu, vols afegir-hi el prefix mailto://?",\r
+link_is_external:"L'URL que has introdu\u00EFt sembla un enlla\u00E7 extern, vols afegir-hi el prefix http://?",\r
+link_list:"Llista d'enlla\u00E7os"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ch.standard',{\r
+style_select:"Lang",\r
+font_size:"\u5B57\u4F53\u5927\u5C0F",\r
+fontdefault:"\u5B57\u4F53",\r
+block:"\u683C\u5F0F",\r
+paragraph:"\u6BB5\u843D",\r
+div:"Div",\r
+address:"\u5730\u5740",\r
+pre:"\u9ED8\u8BA4\u683C\u5F0F",\r
+h1:"\u6807\u9898 1",\r
+h2:"\u6807\u9898 2",\r
+h3:"\u6807\u9898 3",\r
+h4:"\u6807\u9898 4",\r
+h5:"\u6807\u9898 5",\r
+h6:"\u6807\u9898 6",\r
+blockquote:"\u5F15\u7528",\r
+code:"\u4EE3\u7801",\r
+samp:"\u7A0B\u5E8F\u8303\u4F8B",\r
+dt:"\u540D\u8BCD\u5B9A\u4E49",\r
+dd:"\u540D\u8BCD\u89E3\u91CA",\r
+bold_desc:"\u7C97\u4F53 (Ctrl+B)",\r
+italic_desc:"\u659C\u4F53 (Ctrl+I)",\r
+underline_desc:"\u5E95\u7EBF (Ctrl+U)",\r
+striketrough_desc:"\u4E2D\u5212\u7EBF",\r
+justifyleft_desc:"\u5DE6\u5BF9\u9F50",\r
+justifycenter_desc:"\u5C45\u4E2D",\r
+justifyright_desc:"\u53F3\u5BF9\u9F50",\r
+justifyfull_desc:"\u4E24\u7AEF\u5BF9\u9F50",\r
+bullist_desc:"\u6E05\u5355\u7B26\u53F7",\r
+numlist_desc:"\u7F16\u53F7",\r
+outdent_desc:"\u51CF\u5C11\u7F29\u8FDB",\r
+indent_desc:"\u589E\u52A0\u7F29\u8FDB",\r
+undo_desc:"\u64A4\u9500 (Ctrl+Z)",\r
+redo_desc:"\u6062\u590D (Ctrl+Y)",\r
+link_desc:"\u63D2\u5165/\u7F16\u8F91 \u8FDE\u7ED3",\r
+unlink_desc:"\u53D6\u6D88\u8FDE\u7ED3",\r
+image_desc:"\u63D2\u5165/\u7F16\u8F91 \u56FE\u7247",\r
+cleanup_desc:"\u5220\u9664\u5197\u4F59\u7801",\r
+code_desc:"\u7F16\u8F91 HTML \u539F\u59CB\u7A0B\u5E8F\u4EE3\u7801",\r
+sub_desc:"\u4E0B\u6807",\r
+sup_desc:"\u4E0A\u6807",\r
+hr_desc:"\u63D2\u5165\u6C34\u5E73\u7EBF",\r
+removeformat_desc:"\u6E05\u9664\u6837\u5F0F",\r
+custom1_desc:"\u5728\u6B64\u8F93\u5165\u60A8\u7684\u81EA\u8BA2\u63CF\u8FF0",\r
+forecolor_desc:"\u9009\u62E9\u6587\u5B57\u989C\u8272",\r
+backcolor_desc:"\u9009\u62E9\u80CC\u666F\u989C\u8272",\r
+charmap_desc:"\u63D2\u5165\u7279\u6B8A\u7B26\u53F7",\r
+visualaid_desc:"\u7F51\u683C/\u9690\u85CF\u7EC4\u4EF6\uFF1F",\r
+anchor_desc:"\u63D2\u5165/\u7F16\u8F91 \u951A\u70B9",\r
+cut_desc:"\u526A\u5207 (Ctrl+X)",\r
+copy_desc:"\u590D\u5236 (Ctrl+C)",\r
+paste_desc:"\u7C98\u8D34 (Ctrl+V)",\r
+image_props_desc:"\u56FE\u7247\u5C5E\u6027",\r
+newdocument_desc:"\u65B0\u5EFA\u6587\u4EF6",\r
+help_desc:"\u5E2E\u52A9",\r
+blockquote_desc:"\u5F15\u7528",\r
+clipboard_msg:"\u590D\u5236\u3001\u526A\u5207\u548C\u7C98\u8D34\u529F\u80FD\u5728Mozilla \u548C Firefox\u4E2D\u65E0\u6CD5\u4F7F\u7528",\r
+path:"\u8DEF\u5F84",\r
+newdocument:"\u60A8\u786E\u8BA4\u8981\u5220\u9664\u5168\u90E8\u5185\u5BB9\u5417\uFF1F",\r
+toolbar_focus:"\u5DE5\u5177\u5217 - Alt+Q, \u7F16\u8F91\u5668 - Alt-Z, \u7EC4\u4EF6\u8DEF\u5F84 - Alt-X",\r
+more_colors:"\u66F4\u591A\u989C\u8272"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ch.standard_dlg',{\r
+about_title:"\u5173\u4E8E TinyMCE",\r
+about_general:"\u5173\u4E8E",\r
+about_help:"\u5E2E\u52A9",\r
+about_license:"\u6388\u6743",\r
+about_plugins:"\u5168\u90E8\u5916\u6302\u7A0B\u5E8F",\r
+about_plugin:"\u5916\u6302\u7A0B\u5E8F",\r
+about_author:"\u4F5C\u8005",\r
+about_version:"\u7248\u672C",\r
+about_loaded:"\u5DF2\u52A0\u8F7D\u7684\u5916\u6302\u7A0B\u5E8F",\r
+anchor_title:"\u63D2\u5165/\u7F16\u8F91 \u951A\u70B9",\r
+anchor_name:"\u951A\u70B9\u540D\u79F0",\r
+code_title:"HTML \u539F\u59CB\u7A0B\u5E8F\u4EE3\u7801\u7F16\u8F91\u5668",\r
+code_wordwrap:"\u81EA\u52A8\u6362\u884C",\r
+colorpicker_title:"\u9009\u62E9\u989C\u8272",\r
+colorpicker_picker_tab:"\u9009\u62E9\u5668",\r
+colorpicker_picker_title:"\u53D6\u8272\u5668",\r
+colorpicker_palette_tab:"\u8272\u8C31",\r
+colorpicker_palette_title:"\u8272\u8C31\u989C\u8272",\r
+colorpicker_named_tab:"\u9ED8\u8BA4\u503C",\r
+colorpicker_named_title:"\u9ED8\u8BA4\u7684\u989C\u8272",\r
+colorpicker_color:"\u989C\u8272:",\r
+colorpicker_name:"\u8272\u540D:",\r
+charmap_title:"\u63D2\u5165\u7279\u6B8A\u7B26\u53F7",\r
+image_title:"\u63D2\u5165/\u7F16\u8F91 \u56FE\u7247",\r
+image_src:"\u56FE\u7247\u7F51\u5740",\r
+image_alt:"\u56FE\u7247\u8BF4\u660E",\r
+image_list:"\u56FE\u7247\u6E05\u5355",\r
+image_border:"\u8FB9\u6846",\r
+image_dimensions:"\u5C3A\u5BF8",\r
+image_vspace:"\u5782\u76F4\u95F4\u8DDD",\r
+image_hspace:"\u6C34\u5E73\u95F4\u8DDD",\r
+image_align:"\u5BF9\u9F50\u65B9\u5F0F",\r
+image_align_baseline:"\u57FA\u7EBF",\r
+image_align_top:"\u9876\u90E8\u5BF9\u9F50",\r
+image_align_middle:"\u4E2D\u90E8\u5BF9\u9F50",\r
+image_align_bottom:"\u5E95\u90E8\u5BF9\u9F50",\r
+image_align_texttop:"\u6587\u5B57\u4E0A\u65B9",\r
+image_align_textbottom:"\u6587\u5B57\u4E0B\u65B9",\r
+image_align_left:"\u5DE6\u5BF9\u9F50",\r
+image_align_right:"\u53F3\u5BF9\u9F50",\r
+link_title:"\u63D2\u5165/\u7F16\u8F91 \u8FDE\u7ED3",\r
+link_url:"\u8FDE\u7ED3\u7F51\u5740",\r
+link_target:"\u76EE\u6807",\r
+link_target_same:"\u5F53\u524D\u7A97\u53E3\u6253\u5F00",\r
+link_target_blank:"\u65B0\u7A97\u53E3\u6253\u5F00",\r
+link_titlefield:"\u6807\u9898",\r
+link_is_email:"\u60A8\u8F93\u5165\u7684\u5E94\u8BE5\u662F\u4E00\u4E2A\u7535\u5B50\u90AE\u5BC4\u5730\u5740\uFF0C\u662F\u5426\u9700\u8981\u5728\u7F51\u5740\u524D\u52A0\u4E0A mailto: ? ",\r
+link_is_external:"\u60A8\u8F93\u5165\u7684\u7F51\u5740\u5E94\u8BE5\u662F\u4E00\u4E2A\u5916\u90E8\u8FDE\u7ED3\uFF0C\u662F\u5426\u9700\u8981\u5728\u7F51\u5740\u524D\u52A0\u4E0A http:// ?",\r
+link_list:"\u8FDE\u7ED3\u6E05\u5355"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('cs.standard',{\r
+style_select:"Lang",\r
+font_size:"Velikost p\u00EDsma",\r
+fontdefault:"P\u00EDsmo",\r
+block:"Form\u00E1t",\r
+paragraph:"Odstavec",\r
+div:"Div",\r
+address:"Adresa",\r
+pre:"P\u0159edform\u00E1tov\u00E1no [p]",\r
+h1:"Nadpis 1 [h1]",\r
+h2:"Nadpis 2 [h2]",\r
+h3:"Nadpis 3 [h3]",\r
+h4:"Nadpis 4 [h4]",\r
+h5:"Nadpis 5 [h5]",\r
+h6:"Nadpis 6 [h6]",\r
+blockquote:"Blockquote",\r
+code:"K\u00F3d",\r
+samp:"Uk\u00E1zka k\u00F3du",\r
+dt:"Slo\u017Eka definice",\r
+dd:"Popis definice",\r
+bold_desc:"Tu\u010Dn\u011B (Ctrl+B)",\r
+italic_desc:"Kurz\u00EDva (Ctrl+I)",\r
+underline_desc:"Podtr\u017Een\u00ED (Ctrl+U)",\r
+striketrough_desc:"P\u0159e\u0161krtnut\u00ED",\r
+justifyleft_desc:"Zarovnat vlevo",\r
+justifycenter_desc:"Zarovnat doprost\u0159ed",\r
+justifyright_desc:"Zarovnat vpravo",\r
+justifyfull_desc:"Zarovnat do bloku",\r
+bullist_desc:"Seznam s odr\u00E1\u017Ekami",\r
+numlist_desc:"\u010C\u00EDslovan\u00FD seznam",\r
+outdent_desc:"Zmen\u0161it odsazen\u00ED",\r
+indent_desc:"Zv\u011Bt\u0161it odsazen\u00ED",\r
+undo_desc:"Zp\u011Bt (Ctrl+Z)",\r
+redo_desc:"Znovu (Ctrl+Y)",\r
+link_desc:"Vlo\u017Eit/upravit odkaz",\r
+unlink_desc:"Zru\u0161it odkaz",\r
+image_desc:"Vlo\u017Eit/upravit obr\u00E1zek",\r
+cleanup_desc:"Vy\u010Distit k\u00F3d",\r
+code_desc:"Upravit HTML zdroj",\r
+sub_desc:"Doln\u00ED index",\r
+sup_desc:"Horn\u00ED index",\r
+hr_desc:"Vlo\u017Eit vodorovn\u00FD odd\u011Blova\u010D",\r
+removeformat_desc:"Zru\u0161it form\u00E1tov\u00E1n\u00ED",\r
+custom1_desc:"Libovoln\u00FD popisek",\r
+forecolor_desc:"Barva textu",\r
+backcolor_desc:"Barva pozad\u00ED",\r
+charmap_desc:"Vlo\u017Eit speci\u00E1ln\u00ED znak",\r
+visualaid_desc:"Zapnout zna\u010Dky/neviditeln\u00E9 prvky",\r
+anchor_desc:"Vlo\u017Eit/upravit z\u00E1lo\u017Eky",\r
+cut_desc:"Vyjmout",\r
+copy_desc:"Kop\u00EDrovat",\r
+paste_desc:"Vlo\u017Eit",\r
+image_props_desc:"Vlastnosti obr\u00E1zku",\r
+newdocument_desc:"Nov\u00FD dokument",\r
+help_desc:"N\u00E1pov\u011Bda",\r
+blockquote_desc:"Citace",\r
+clipboard_msg:"Funkce kop\u00EDrovat/vyjmout/vlo\u017Eit nejsou pou\u017Eiteln\u00E9 v Mozille a Firefoxu.\nChcete v\u00EDce informac\u00ED?",\r
+path:"Cesta",\r
+newdocument:"Jste si opravdu jisti, \u017Ee chcete vymazat ve\u0161ker\u00FD obsah?",\r
+toolbar_focus:"Nastaven\u00ED fokusu na n\u00E1strojovou li\u0161tu - Alt+Q, nastaven\u00ED fokusu na editor textu - Alt-Z, nastaven\u00ED fokusu na \u0159\u00E1dek zano\u0159en\u00ED element\u016F - Alt-X",\r
+more_colors:"Dal\u0161\u00ED barvy"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('cs.standard_dlg',{\r
+about_title:"O TinyMCE",\r
+about_general:"O n\u00E1s",\r
+about_help:"N\u00E1pov\u011Bda",\r
+about_license:"Licence",\r
+about_plugins:"Pluginy",\r
+about_plugin:"Plugin",\r
+about_author:"Autor",\r
+about_version:"Verze",\r
+about_loaded:"Na\u010Dten\u00E9 pluginy",\r
+anchor_title:"Vlo\u017Eit/upravit zalo\u017Eku",\r
+anchor_name:"N\u00E1zev z\u00E1lo\u017Eky",\r
+code_title:"Editor HTML",\r
+code_wordwrap:"D\u011Blit slova",\r
+colorpicker_title:"V\u00FDb\u011Br barvy",\r
+colorpicker_picker_tab:"Kap\u00E1tko",\r
+colorpicker_picker_title:"Barevn\u00E9 kap\u00E1tko",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta barev",\r
+colorpicker_named_tab:"N\u00E1zvy",\r
+colorpicker_named_title:"N\u00E1zvy barev",\r
+colorpicker_color:"Vybran\u00E1 barva:",\r
+colorpicker_name:"N\u00E1zev:",\r
+charmap_title:"V\u00FDb\u011Br speci\u00E1ln\u00EDch znak\u016F",\r
+image_title:"Vlo\u017Eit/upravit obr\u00E1zek",\r
+image_src:"URL obr\u00E1zku",\r
+image_alt:"Popis obr\u00E1zku",\r
+image_list:"Seznam obr\u00E1zk\u016F",\r
+image_border:"Okraj",\r
+image_dimensions:"Rozm\u011Bry",\r
+image_vspace:"Vertik\u00E1ln\u00ED okraj",\r
+image_hspace:"Horizont\u00E1ln\u00ED okraj",\r
+image_align:"Zarovn\u00E1n\u00ED",\r
+image_align_baseline:"Na z\u00E1kladnu",\r
+image_align_top:"Nahoru",\r
+image_align_middle:"Na st\u0159ed",\r
+image_align_bottom:"Dol\u016F",\r
+image_align_texttop:"Vrch textu",\r
+image_align_textbottom:"Spodek textu",\r
+image_align_left:"Vlevo",\r
+image_align_right:"Vpravo",\r
+link_title:"Vlo\u017Eit/upravit odkaz",\r
+link_url:"URL odkazu",\r
+link_target:"C\u00EDl",\r
+link_target_same:"Otev\u0159\u00EDt odkaz ve stejn\u00E9m okn\u011B",\r
+link_target_blank:"Otev\u0159\u00EDt odkaz v nov\u00E9m okn\u011B",\r
+link_titlefield:"Titulek",\r
+link_is_email:"Zadan\u00E9 URL vypad\u00E1 jako emailov\u00E1 adresa, chcete doplnit pot\u0159ebn\u00FD prefix mailto: ?",\r
+link_is_external:"Zadan\u00E9 URL vypad\u00E1 jako extern\u00ED odkaz, chtete doplnit pot\u0159ebn\u00FD prefix http:// ?",\r
+link_list:"Seznam odkaz\u016F"\r
+});
\ No newline at end of file
--- /dev/null
+// UK lang variables\r
+\r
+tinyMCE.addToLang('',{\r
+theme_style_select : 'Lang',\r
+theme_code_desc : 'Golygu côd HTML',\r
+theme_code_title : 'Golygydd Côd HTML',\r
+theme_code_wordwrap : 'Amlapio geiriau',\r
+theme_sub_desc : 'Is-sgript',\r
+theme_sup_desc : 'Uwch-sgript',\r
+theme_hr_desc : 'Mewnosod llinell llorweddol',\r
+theme_removeformat_desc : 'Diddymu fformatio',\r
+theme_custom1_desc : 'Dy ddisgrifiad fan hyn',\r
+insert_image_border : 'Ymyl',\r
+insert_image_dimensions : 'Meintiau',\r
+insert_image_vspace : 'Gofod fertigol',\r
+insert_image_hspace : 'Gofod llorweddol',\r
+insert_image_align : 'Unioniad',\r
+insert_image_align_default : '-- Heb ddewis --',\r
+insert_image_align_baseline : 'Gwaelodlin',\r
+insert_image_align_top : 'Brig',\r
+insert_image_align_middle : 'Canol',\r
+insert_image_align_bottom : 'Gwaelod',\r
+insert_image_align_texttop : 'Brig Testun',\r
+insert_image_align_absmiddle : 'Canol Union',\r
+insert_image_align_absbottom : 'Gwaelod Union',\r
+insert_image_align_left : 'Chwith',\r
+insert_image_align_right : 'Dde',\r
+theme_font_size : '-- Maint ffont --',\r
+theme_fontdefault : '-- Teulu ffont --',\r
+theme_block : '-- Fformat --',\r
+theme_paragraph : 'Paragraff',\r
+theme_div : 'Div',\r
+theme_address : 'Cyfeiriad',\r
+theme_pre : 'Rhag-fformatiwyd',\r
+theme_h1 : 'Pennawd 1',\r
+theme_h2 : 'Pennawd 2',\r
+theme_h3 : 'Pennawd 3',\r
+theme_h4 : 'Pennawd 4',\r
+theme_h5 : 'Pennawd 5',\r
+theme_h6 : 'Pennawd 6',\r
+theme_colorpicker_title : 'Dewis lliw',\r
+theme_colorpicker_apply : 'Gosod',\r
+theme_forecolor_desc : 'Dewis lliw testun',\r
+theme_backcolor_desc : 'Dewis lliw cefndir',\r
+theme_charmap_title : 'Dewis llythyren arbennig',\r
+theme_charmap_desc : 'Gosod llythyren arbennig',\r
+theme_visualaid_desc : 'Gwrthdroi canllawiau/elfennau anweledig',\r
+insert_anchor_title : 'Mewnosod/golygu angor',\r
+insert_anchor_name : 'Enw angor',\r
+theme_anchor_desc : 'Mewnosod/golygu angor',\r
+theme_insert_link_titlefield : 'Teitl',\r
+theme_clipboard_msg : 'Dyw Copïo/Torri/Gludo ddim ar gael ym Mozilla na Firefox.\nHoffet ti ragor o wybodaeth ynghylch hyn?',\r
+theme_path : 'Llwybr',\r
+cut_desc : 'Torri',\r
+copy_desc : 'Copïo',\r
+paste_desc : 'Gludo',\r
+link_list : 'Rhestr dolenni',\r
+image_list : 'Rhestr delweddau',\r
+browse : 'Pori',\r
+image_props_desc : 'Priodoleddau delwedd',\r
+newdocument_desc : 'Dogfen newydd',\r
+class_name : 'Dosbarth',\r
+newdocument : 'Wyt ti\'n sicr eisiau clirio\'r holl gynnwys?',\r
+about_title : 'Ynglŷn â TinyMCE',\r
+about : 'Ynglŷn â',\r
+license : 'Trwydded',\r
+plugins : 'Ategynnau',\r
+plugin : 'Ategyn',\r
+author : 'Awdur',\r
+version : 'Fersiwn',\r
+loaded_plugins : 'Ategynnau gweithredol',\r
+help : 'Cymorth',\r
+not_set : '-- Heb ddewis --',\r
+close : 'Cau',\r
+toolbar_focus : 'Neidio i fotymau offer - Alt+Q, Neidio i\'r golygydd - Alt+Z, Neidio i lwybr y elfen - Alt+X'\r
+});\r
--- /dev/null
+tinyMCE.addI18n('da.standard',{\r
+style_select:"Lang",\r
+font_size:"Skriftst\u00F8rrelse",\r
+fontdefault:"Skrifttype",\r
+block:"Format",\r
+paragraph:"Afsnit",\r
+div:"Div",\r
+address:"Adresse",\r
+pre:"Pr\u00E6formatteret",\r
+h1:"Overskrift 1",\r
+h2:"Overskrift 2",\r
+h3:"Overskrift 3",\r
+h4:"Overskrift 4",\r
+h5:"Overskrift 5",\r
+h6:"Overskrift 6",\r
+blockquote:"Blokcitat",\r
+code:"Kode",\r
+samp:"Kodeeksempel",\r
+dt:"Definitionsterm ",\r
+dd:"Definitionsbeskrivelse",\r
+bold_desc:"Fed (Ctrl+B)",\r
+italic_desc:"Kursiv (Ctrl+I)",\r
+underline_desc:"Understreget (Ctrl+U)",\r
+striketrough_desc:"Gennemstreget",\r
+justifyleft_desc:"Venstrejusteret",\r
+justifycenter_desc:"Centreret",\r
+justifyright_desc:"H\u00F8jrejusteret",\r
+justifyfull_desc:"Lige marginer",\r
+bullist_desc:"Unummereret punktopstilling",\r
+numlist_desc:"Nummereret punktopstilling",\r
+outdent_desc:"Formindsk indrykning",\r
+indent_desc:"\u00D8g indrykning",\r
+undo_desc:"Fortryd (Ctrl+Z)",\r
+redo_desc:"Gendan (Ctrl+Y)",\r
+link_desc:"Inds\u00E6t/rediger link",\r
+unlink_desc:"Fjern link",\r
+image_desc:"Inds\u00E6t/rediger billede",\r
+cleanup_desc:"Ryd op i uordentlig kode",\r
+code_desc:"Rediger HTML-kilde",\r
+sub_desc:"S\u00E6nket skrift",\r
+sup_desc:"H\u00E6vet skrift",\r
+hr_desc:"Inds\u00E6t horisontal linie",\r
+removeformat_desc:"Fjern formatering",\r
+custom1_desc:"Din egen beskrivelse her",\r
+forecolor_desc:"V\u00E6lg tekstfarve",\r
+backcolor_desc:"V\u00E6lg baggrundsfarve",\r
+charmap_desc:"Inds\u00E6t specialtegn",\r
+visualaid_desc:"Sl\u00E5 hj\u00E6lp/synlige elementer til/fra",\r
+anchor_desc:"Inds\u00E6t/rediger anker",\r
+cut_desc:"Klip",\r
+copy_desc:"Kopier",\r
+paste_desc:"Inds\u00E6t",\r
+image_props_desc:"Billedeegenskaber",\r
+newdocument_desc:"Nyt dokument",\r
+help_desc:"Hj\u00E6lp",\r
+blockquote_desc:"Blokcitat",\r
+clipboard_msg:"Kopier/Klip/inds\u00E6t er ikke muligt i Mozilla og Firefox.\nVil du have mere information om dette emne?",\r
+path:"Sti",\r
+newdocument:"Er du sikker p\u00E5 du vil slette alt indhold?",\r
+toolbar_focus:"Hop til v\u00E6rkt\u00F8jsknapper - Alt+Q, Skift til redigering - Alt-Z, Skift til element sti - Alt-X",\r
+more_colors:"Flere farver"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('da.standard_dlg',{\r
+about_title:"Om TinyMCE",\r
+about_general:"Om",\r
+about_help:"Hj\u00E6lp",\r
+about_license:"Licens",\r
+about_plugins:"Udvidelser",\r
+about_plugin:"Udvidelse",\r
+about_author:"Forfatter",\r
+about_version:"Version",\r
+about_loaded:"Indl\u00E6ste udvidelser",\r
+anchor_title:"Inds\u00E6t/rediger anker",\r
+anchor_name:"Navn p\u00E5 anker",\r
+code_title:"HTML kildekode redigering",\r
+code_wordwrap:"Tekstombrydning",\r
+colorpicker_title:"V\u00E6lg en farve",\r
+colorpicker_picker_tab:"V\u00E6lger",\r
+colorpicker_picker_title:"Farve v\u00E6lger",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Palette farver",\r
+colorpicker_named_tab:"Navngivet",\r
+colorpicker_named_title:"Navngivet farve",\r
+colorpicker_color:"Farve:",\r
+colorpicker_name:"Navn:",\r
+charmap_title:"V\u00E6lg specialtegn",\r
+image_title:"Inds\u00E6t/rediger billede",\r
+image_src:"Billede URL",\r
+image_alt:"Billedebeskrivelse",\r
+image_list:"Liste over billeder",\r
+image_border:"Kant",\r
+image_dimensions:"Dimensioner",\r
+image_vspace:"Vertikal afstand",\r
+image_hspace:"Horisontal afstand",\r
+image_align:"Justering",\r
+image_align_baseline:"Grundlinie",\r
+image_align_top:"Toppen",\r
+image_align_middle:"Centreret",\r
+image_align_bottom:"Bunden",\r
+image_align_texttop:"Tekst toppen",\r
+image_align_textbottom:"Tekst bunden",\r
+image_align_left:"Venstre",\r
+image_align_right:"H\u00F8jre",\r
+link_title:"Inds\u00E6t/rediger link",\r
+link_url:"Link URL",\r
+link_target:"Target",\r
+link_target_same:"\u00C5ben link i samme vindue",\r
+link_target_blank:"\u00C5ben link i nyt vindue",\r
+link_titlefield:"Titel",\r
+link_is_email:"Den URL der er indtastet ser ud til at v\u00E6re en emailadresse. Vil du have tilf\u00F8jet det p\u00E5kr\u00E6vede mailto: foran?",\r
+link_is_external:"Den URL der er indtastet ser ud til at v\u00E6re et eksternt link. Vil du have tilf\u00F8jet det p\u00E5kr\u00E6vede http:// foran?",\r
+link_list:"Liste over links"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('de.standard',{\r
+style_select:"Lang",\r
+font_size:"Schriftgr\u00F6\u00DFe",\r
+fontdefault:"Schriftart",\r
+block:"Vorlage",\r
+paragraph:"Absatz",\r
+div:"Zusammenh\u00E4ngender Bereich",\r
+address:"Addresse",\r
+pre:"Rohdaten",\r
+h1:"\u00DCberschrift 1",\r
+h2:"\u00DCberschrift 2",\r
+h3:"\u00DCberschrift 3",\r
+h4:"\u00DCberschrift 4",\r
+h5:"\u00DCberschrift 5",\r
+h6:"\u00DCberschrift 6",\r
+blockquote:"Zitatblock",\r
+code:"Code",\r
+samp:"Beispiel",\r
+dt:"Definitionsbegriff",\r
+dd:"Definitionsbeschreibung",\r
+bold_desc:"Fett (Strg+B)",\r
+italic_desc:"Kursiv (Strg+I)",\r
+underline_desc:"Unterstrichen (Strg+U)",\r
+striketrough_desc:"Durchgestrichen",\r
+justifyleft_desc:"Links ausgerichtet",\r
+justifycenter_desc:"Mittig ausgerichtet",\r
+justifyright_desc:"Rechts ausgerichtet",\r
+justifyfull_desc:"Blocksatz",\r
+bullist_desc:"Unsortierte Liste",\r
+numlist_desc:"Sortierte Liste",\r
+outdent_desc:"Ausr\u00FCcken",\r
+indent_desc:"Einr\u00FCcken",\r
+undo_desc:"R\u00FCckg\u00E4ngig (Strg+Z)",\r
+redo_desc:"Wiederholen (Strg+Y)",\r
+link_desc:"Link einf\u00FCgen/ver\u00E4ndern",\r
+unlink_desc:"Link entfernen",\r
+image_desc:"Bild einf\u00FCgen/ver\u00E4ndern",\r
+cleanup_desc:"Quellcode aufr\u00E4ufen",\r
+code_desc:"HTML-Quellcode bearbeiten",\r
+sub_desc:"Tiefgestellt",\r
+sup_desc:"Hochgestellt",\r
+hr_desc:"Trennlinie einf\u00FCgen",\r
+removeformat_desc:"Formatierungen zur\u00FCcksetzen",\r
+custom1_desc:"Benutzerdefinierte Beschreibung",\r
+forecolor_desc:"Textfarbe",\r
+backcolor_desc:"Hintergrundfarbe",\r
+charmap_desc:"Sonderzeichen einf\u00FCgen",\r
+visualaid_desc:"Hilfslinien und unsichtbare Elemente ein-/ausblenden",\r
+anchor_desc:"Anker einf\u00FCgen/ver\u00E4ndern",\r
+cut_desc:"Ausschneiden",\r
+copy_desc:"Kopieren",\r
+paste_desc:"Einf\u00FCgen",\r
+image_props_desc:"Bildeigenschaften",\r
+newdocument_desc:"Neues Dokument",\r
+help_desc:"Hilfe",\r
+blockquote_desc:"Zitatblock",\r
+clipboard_msg:"Kopieren, Ausschneiden und Einf\u00FCgen sind im Mozilla Firefox nicht m\u00F6glich.\r\nWollen Sie mehr \u00FCber dieses Problem erfahren?",\r
+path:"Pfad",\r
+newdocument:"Wollen Sie wirklich den ganzen Inhalt l\u00F6schen?",\r
+toolbar_focus:"Zur Werkzeugleiste springen: Alt+Q; Zum Editor springen: Alt-Z; Zum Elementpfad springen: Alt-X",\r
+more_colors:"Weitere Farben"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('de.standard_dlg',{\r
+about_title:"\u00DCber TinyMCE",\r
+about_general:"\u00DCber\u2026",\r
+about_help:"Hilfe",\r
+about_license:"Lizenzbedingungen",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Urheber",\r
+about_version:"Version",\r
+about_loaded:"Geladene Plugins",\r
+anchor_title:"Anker einf\u00FCgen/ver\u00E4ndern",\r
+anchor_name:"Name des Ankers",\r
+code_title:"HTML-Quellcode bearbeiten",\r
+code_wordwrap:"Automatischer Zeilenumbruch",\r
+colorpicker_title:"Farbe",\r
+colorpicker_picker_tab:"Farbwahl",\r
+colorpicker_picker_title:"Farbwahl",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Farbpalette",\r
+colorpicker_named_tab:"Benannte Farben",\r
+colorpicker_named_title:"Benannte Farben",\r
+colorpicker_color:"Farbe:",\r
+colorpicker_name:"Name:",\r
+charmap_title:"Sonderzeichen",\r
+image_title:"Bild einf\u00FCgen/bearbeiten",\r
+image_src:"Adresse",\r
+image_alt:"Alternativtext",\r
+image_list:"Bilderliste",\r
+image_border:"Rahmen",\r
+image_dimensions:"Ausma\u00DFe",\r
+image_vspace:"Vertikaler Abstand",\r
+image_hspace:"Horizontaler Abstand",\r
+image_align:"Ausrichtung",\r
+image_align_baseline:"Zeile",\r
+image_align_top:"Oben",\r
+image_align_middle:"Mittig",\r
+image_align_bottom:"Unten",\r
+image_align_texttop:"Oben im Text",\r
+image_align_textbottom:"Unten im Text",\r
+image_align_left:"Links",\r
+image_align_right:"Rechts",\r
+link_title:"Link einf\u00FCgen/bearbeiten",\r
+link_url:"Adresse",\r
+link_target:"Fenster",\r
+link_target_same:"Im selben Fenster \u00F6ffnen",\r
+link_target_blank:"Neues Fenster \u00F6ffnen",\r
+link_titlefield:"Titel",\r
+link_is_email:"Bei der Adresse scheint es sich um eine E-Mail-Adresse zu handeln. Wollen Sie das dazu ben\u00F6tigte mailto: voranstellen?",\r
+link_is_external:"Bei der Adresse scheint es sich um einen externen Link zu handeln. M\u00F6chten Sie, dass zur korrekten Verlinkung ein http:// vorangestellt wird?",\r
+link_list:"Linkliste"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('el.standard',{\r
+style_select:"Lang",\r
+font_size:"\u039C\u03AD\u03B3\u03B5\u03B8\u03BF\u03C2 \u0393\u03C1\u03B1\u03BC\u03BC\u03AC\u03C4\u03C9\u03BD",\r
+fontdefault:"\u0393\u03C1\u03B1\u03BC\u03BC\u03B1\u03C4\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC",\r
+block:"\u039C\u03BF\u03C1\u03C6\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7",\r
+paragraph:"\u03A0\u03B1\u03C1\u03AC\u03B3\u03C1\u03B1\u03C6\u03BF\u03C2",\r
+div:"Div",\r
+address:"\u0394\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7",\r
+pre:"Pre",\r
+h1:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 1",\r
+h2:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 2",\r
+h3:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 3",\r
+h4:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 4",\r
+h5:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 5",\r
+h6:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 6",\r
+blockquote:"Blockquote",\r
+code:"\u039A\u03CE\u03B4\u03B9\u03BA\u03B1\u03C2",\r
+samp:"\u0394\u03B5\u03AF\u03B3\u03BC\u03B1 \u039A\u03CE\u03B4\u03B9\u03BA\u03B1",\r
+dt:"\u039F\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2",\r
+dd:"\u03A0\u03B5\u03C1\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u039F\u03C1\u03B9\u03C3\u03BC\u03BF\u03CD",\r
+bold_desc:"\u039C\u03B1\u03CD\u03C1\u03B1 (Ctrl+B)",\r
+italic_desc:"\u03A0\u03BB\u03AC\u03B3\u03B9\u03B1 (Ctrl+I)",\r
+underline_desc:"\u03A5\u03C0\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B9\u03C3\u03BC\u03AD\u03BD\u03B1 (Ctrl+U)",\r
+striketrough_desc:"\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03BC\u03BC\u03B9\u03C3\u03BC\u03AD\u03BD\u03B1",\r
+justifyleft_desc:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7 \u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC",\r
+justifycenter_desc:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7 \u03BA\u03AD\u03BD\u03C4\u03C1\u03BF",\r
+justifyright_desc:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7 \u03B4\u03B5\u03BE\u03B9\u03AC",\r
+justifyfull_desc:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7 \u03C0\u03BB\u03AE\u03C1\u03B7\u03C2",\r
+bullist_desc:"\u039B\u03AF\u03C3\u03C4\u03B1 \u03C7\u03C9\u03C1\u03AF\u03C2 \u03C3\u03B5\u03B9\u03C1\u03AC",\r
+numlist_desc:"\u039B\u03AF\u03C3\u03C4\u03B1 \u03BC\u03B5 \u03C3\u03B5\u03B9\u03C1\u03AC",\r
+outdent_desc:"\u03A0\u03C1\u03BF\u03B5\u03BE\u03BF\u03C7\u03AE",\r
+indent_desc:"\u0395\u03C3\u03BF\u03C7\u03AE",\r
+undo_desc:"\u0391\u03BD\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 (Ctrl+Z)",\r
+redo_desc:"\u0395\u03C0\u03B1\u03BD\u03AC\u03BB\u03B7\u03C8\u03B7 (Ctrl+Y)",\r
+link_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5",\r
+unlink_desc:"\u039A\u03B1\u03C4\u03AC\u03C1\u03B3\u03B7\u03C3\u03B7 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5",\r
+image_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+cleanup_desc:"\u039A\u03B1\u03B8\u03B1\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u03BC\u03C0\u03B5\u03C1\u03B4\u03B5\u03BC\u03AD\u03BD\u03BF\u03C5 \u03BA\u03CE\u03B4\u03B9\u03BA\u03B1",\r
+code_desc:"\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 HTML \u039A\u03CE\u03B4\u03B9\u03BA\u03B1",\r
+sub_desc:"\u0394\u03B5\u03AF\u03BA\u03C4\u03B7\u03C2",\r
+sup_desc:"\u0395\u03BA\u03B8\u03AD\u03C4\u03B7\u03C2",\r
+hr_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03BF\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03B1\u03C2 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2",\r
+removeformat_desc:"\u0391\u03C6\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 \u03BC\u03BF\u03C1\u03C6\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7\u03C2",\r
+custom1_desc:"\u0397 \u03C0\u03B5\u03C1\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u03C3\u03B1\u03C2 \u03B5\u03B4\u03CE",\r
+forecolor_desc:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03BF\u03C2 \u03BA\u03B5\u03B9\u03BC\u03AD\u03BD\u03BF\u03C5",\r
+backcolor_desc:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03BF\u03C2 \u03C6\u03CC\u03BD\u03C4\u03BF\u03C5",\r
+charmap_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B1",\r
+visualaid_desc:"\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7/\u0391\u03C0\u03CC\u03BA\u03C1\u03C5\u03C8\u03B7 \u03B2\u03BF\u03B7\u03B8\u03B7\u03C4\u03B9\u03BA\u03CE\u03BD \u03B3\u03C1\u03B1\u03BC\u03BC\u03CE\u03BD \u03BA\u03B1\u03B9 \u03B1\u03CC\u03C1\u03B1\u03C4\u03C9\u03BD \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03C9\u03BD",\r
+anchor_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 anchor",\r
+cut_desc:"\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE",\r
+copy_desc:"\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE",\r
+paste_desc:"\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7",\r
+image_props_desc:"\u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2 \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+newdocument_desc:"\u039D\u03AD\u03BF \u03AD\u03B3\u03B3\u03C1\u03B1\u03C6\u03BF",\r
+help_desc:"\u0392\u03BF\u03AE\u03B8\u03B5\u03B9\u03B1",\r
+blockquote_desc:"Blockquote",\r
+clipboard_msg:"\u039F\u03B9 \u03BB\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B5\u03C2 \u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE/\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE/\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03B5\u03C2 \u03C3\u03B5 Mozilla \u03BA\u03B1\u03B9 Firefox.\n\u0398\u03AD\u03BB\u03B5\u03C4\u03B5 \u03C0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B5\u03C2 \u03C0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B5\u03C2 ;",\r
+path:"\u0394\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE",\r
+newdocument:"\u03A3\u03B9\u03AF\u03B3\u03BF\u03C5\u03C1\u03B1 \u03B8\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03BA\u03B1\u03B8\u03B1\u03C1\u03AF\u03C3\u03B5\u03C4\u03B5 \u03CC\u03BB\u03BF \u03C4\u03BF \u03C0\u03B5\u03C1\u03B9\u03B5\u03C7\u03CC\u03BC\u03B5\u03BD\u03BF ;",\r
+toolbar_focus:"\u039C\u03B5\u03C4\u03AC\u03B2\u03B1\u03C3\u03B7 \u03C3\u03C4\u03B1 \u03BA\u03BF\u03C5\u03BC\u03C0\u03B9\u03AC \u03B5\u03C1\u03B3\u03B1\u03BB\u03B5\u03AF\u03C9\u03BD - Alt+Q, \u039C\u03B5\u03C4\u03AC\u03B2\u03B1\u03C3\u03B7 \u03C3\u03C4\u03BF\u03BD \u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03C4\u03AE \u03BA\u03B5\u03B9\u03BC\u03AD\u03BD\u03BF\u03C5 - Alt-Z, \u039C\u03B5\u03C4\u03AC\u03B2\u03B1\u03C3\u03B7 \u03C3\u03C4\u03B7\u03BD \u03B4\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE \u03C4\u03BF\u03C5 \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03BF\u03C5 - Alt-X",\r
+more_colors:"\u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1 \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03B1"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('el.standard_dlg',{\r
+about_title:"\u03A3\u03C7\u03B5\u03C4\u03B9\u03BA\u03AC \u03BC\u03B5 \u03C4\u03BF TinyMCE",\r
+about_general:"\u03A3\u03C7\u03B5\u03C4\u03B9\u03BA\u03AC",\r
+about_help:"\u0392\u03BF\u03AE\u03B8\u03B5\u03B9\u03B1",\r
+about_license:"\u0386\u03B4\u03B5\u03B9\u03B1",\r
+about_plugins:"\u03A3\u03C7\u03B5\u03C4\u03B9\u03BA\u03AC \u03BC\u03B5 \u03C4\u03B1 \u03C0\u03C1\u03CC\u03C3\u03B8\u03B5\u03C4\u03B1",\r
+about_plugin:"\u03A3\u03C7\u03B5\u03C4\u03B9\u03BA\u03AC \u03BC\u03B5 \u03C4\u03BF \u03C0\u03C1\u03CC\u03C3\u03B8\u03B5\u03C4\u03BF",\r
+about_author:"\u03A3\u03C5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03B1\u03C2",\r
+about_version:"\u0388\u03BA\u03B4\u03BF\u03C3\u03B7",\r
+about_loaded:"\u03A6\u03BF\u03C1\u03C4\u03C9\u03BC\u03AD\u03BD\u03B1 \u03C0\u03C1\u03CC\u03C3\u03B8\u03B5\u03C4\u03B1",\r
+anchor_title:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 anchor",\r
+anchor_name:"\u038C\u03BD\u03BF\u03BC\u03B1 anchor",\r
+code_title:"\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03C4\u03AE\u03C2 \u03BA\u03CE\u03B4\u03B9\u03BA\u03B1 HTML",\r
+code_wordwrap:"\u0391\u03BD\u03B1\u03B4\u03AF\u03C0\u03BB\u03C9\u03C3\u03B7 \u03BA\u03B5\u03B9\u03BC\u03AD\u03BD\u03BF\u03C5",\r
+colorpicker_title:"\u0394\u03B9\u03B1\u03BB\u03AD\u03BE\u03C4\u03B5 \u03C7\u03C1\u03CE\u03BC\u03B1",\r
+colorpicker_picker_tab:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE",\r
+colorpicker_picker_title:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03BF\u03C2",\r
+colorpicker_palette_tab:"\u03A0\u03B1\u03BB\u03AD\u03C4\u03B1",\r
+colorpicker_palette_title:"\u03A7\u03C1\u03CE\u03BC\u03B1\u03C4\u03B1 \u03C0\u03B1\u03BB\u03AD\u03C4\u03B1\u03C2",\r
+colorpicker_named_tab:"\u039F\u03BD\u03BF\u03BC\u03B1\u03C3\u03C4\u03B9\u03BA\u03AC",\r
+colorpicker_named_title:"\u039F\u03BD\u03BF\u03BC\u03B1\u03C3\u03C4\u03B9\u03BA\u03AC \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03B1",\r
+colorpicker_color:"\u03A7\u03C1\u03CE\u03BC\u03B1:",\r
+colorpicker_name:"\u038C\u03BD\u03BF\u03BC\u03B1:",\r
+charmap_title:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B1",\r
+image_title:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+image_src:"\u0394\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE URL \u0395\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+image_alt:"\u03A0\u03B5\u03C1\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+image_list:"\u039B\u03AF\u03C3\u03C4\u03B1 \u03B5\u03B9\u03BA\u03CC\u03BD\u03C9\u03BD",\r
+image_border:"\u03A0\u03BB\u03B1\u03AF\u03C3\u03B9\u03BF",\r
+image_dimensions:"\u0394\u03B9\u03B1\u03C3\u03C4\u03AC\u03C3\u03B5\u03B9\u03C2",\r
+image_vspace:"\u0391\u03C0\u03CC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03BA\u03AC\u03B8\u03B5\u03C4\u03B7",\r
+image_hspace:"\u0391\u03C0\u03CC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03BF\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03B1",\r
+image_align:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7",\r
+image_align_baseline:"\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u03C3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7\u03C2 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AC\u03C4\u03C9\u03BD",\r
+image_align_top:"\u0395\u03C0\u03AC\u03BD\u03C9",\r
+image_align_middle:"\u039C\u03AD\u03C3\u03B7",\r
+image_align_bottom:"\u039A\u03AC\u03C4\u03C9",\r
+image_align_texttop:"\u039A\u03AD\u03B9\u03BC\u03B5\u03BD\u03BF \u03C0\u03AC\u03BD\u03C9",\r
+image_align_textbottom:"\u039A\u03B5\u03AF\u03BC\u03B5\u03BD\u03BF \u03BA\u03AC\u03C4\u03C9",\r
+image_align_left:"\u0391\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC",\r
+image_align_right:"\u0394\u03B5\u03BE\u03B9\u03AC",\r
+link_title:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5",\r
+link_url:"\u0394\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE URL \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5",\r
+link_target:"\u03A3\u03C4\u03CC\u03C7\u03BF\u03C2",\r
+link_target_same:"\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 \u03C3\u03C4\u03BF \u03AF\u03B4\u03B9\u03BF \u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF",\r
+link_target_blank:"\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 \u03C3\u03B5 \u03BD\u03AD\u03BF \u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF",\r
+link_titlefield:"\u03A4\u03AF\u03C4\u03BB\u03BF\u03C2",\r
+link_is_email:"\u0397 \u03B4\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE URL \u03C0\u03BF\u03C5 \u03B5\u03B9\u03C3\u03AC\u03B3\u03B1\u03C4\u03B5 \u03C6\u03B1\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 email, \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03C4\u03B5\u03B8\u03B5\u03AF \u03C4\u03BF \u03B1\u03C0\u03B1\u03C1\u03B1\u03AF\u03C4\u03B7\u03C4\u03BF mailto: ;",\r
+link_is_external:"\u0397 \u03B4\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE URL \u03C0\u03BF\u03C5 \u03B5\u03B9\u03C3\u03AC\u03B3\u03B1\u03C4\u03B5 \u03C6\u03B1\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B5\u03BE\u03C9\u03C4\u03B5\u03C1\u03B9\u03BA\u03CC\u03C2 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03BC\u03BF\u03C2, \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03C4\u03B5\u03B8\u03B5\u03AF \u03C4\u03BF \u03B1\u03C0\u03B1\u03C1\u03B1\u03AF\u03C4\u03B7\u03C4\u03BF http:// ;",\r
+link_list:"\u039B\u03AF\u03C3\u03C4\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03C9\u03BD"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('en.standard',{\r
+style_select:"Lang",\r
+font_size:"Font size",\r
+fontdefault:"Font family",\r
+block:"Format",\r
+paragraph:"Paragraph",\r
+div:"Div",\r
+address:"Address",\r
+pre:"Preformatted",\r
+h1:"Heading 1",\r
+h2:"Heading 2",\r
+h3:"Heading 3",\r
+h4:"Heading 4",\r
+h5:"Heading 5",\r
+h6:"Heading 6",\r
+blockquote:"Blockquote",\r
+code:"Code",\r
+samp:"Code sample",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"Bold (Ctrl+B)",\r
+italic_desc:"Italic (Ctrl+I)",\r
+underline_desc:"Underline (Ctrl+U)",\r
+striketrough_desc:"Strikethrough",\r
+justifyleft_desc:"Align left",\r
+justifycenter_desc:"Align center",\r
+justifyright_desc:"Align right",\r
+justifyfull_desc:"Align full",\r
+bullist_desc:"Unordered list",\r
+numlist_desc:"Ordered list",\r
+outdent_desc:"Outdent",\r
+indent_desc:"Indent",\r
+undo_desc:"Undo (Ctrl+Z)",\r
+redo_desc:"Redo (Ctrl+Y)",\r
+link_desc:"Insert/edit link",\r
+unlink_desc:"Unlink",\r
+image_desc:"Insert/edit image",\r
+cleanup_desc:"Cleanup messy code",\r
+code_desc:"Edit HTML Source",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Insert horizontal ruler",\r
+removeformat_desc:"Remove formatting",\r
+custom1_desc:"Your custom description here",\r
+forecolor_desc:"Select text color",\r
+backcolor_desc:"Select background color",\r
+charmap_desc:"Insert custom character",\r
+visualaid_desc:"Toggle guidelines/invisible elements",\r
+anchor_desc:"Insert/edit anchor",\r
+cut_desc:"Cut",\r
+copy_desc:"Copy",\r
+paste_desc:"Paste",\r
+image_props_desc:"Image properties",\r
+newdocument_desc:"New document",\r
+help_desc:"Help",\r
+blockquote_desc:"Blockquote",\r
+clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\r\nDo you want more information about this issue?",\r
+path:"Path",\r
+newdocument:"Are you sure you want clear all contents?",\r
+toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",\r
+more_colors:"More colors"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('en.standard_dlg',{\r
+about_title:"About TinyMCE",\r
+about_general:"About",\r
+about_help:"Help",\r
+about_license:"License",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Author",\r
+about_version:"Version",\r
+about_loaded:"Loaded plugins",\r
+anchor_title:"Insert/edit anchor",\r
+anchor_name:"Anchor name",\r
+code_title:"HTML Source Editor",\r
+code_wordwrap:"Word wrap",\r
+colorpicker_title:"Select a color",\r
+colorpicker_picker_tab:"Picker",\r
+colorpicker_picker_title:"Color picker",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Palette colors",\r
+colorpicker_named_tab:"Named",\r
+colorpicker_named_title:"Named colors",\r
+colorpicker_color:"Color:",\r
+colorpicker_name:"Name:",\r
+charmap_title:"Select custom character",\r
+image_title:"Insert/edit image",\r
+image_src:"Image URL",\r
+image_alt:"Image description",\r
+image_list:"Image list",\r
+image_border:"Border",\r
+image_dimensions:"Dimensions",\r
+image_vspace:"Vertical space",\r
+image_hspace:"Horizontal space",\r
+image_align:"Alignment",\r
+image_align_baseline:"Baseline",\r
+image_align_top:"Top",\r
+image_align_middle:"Middle",\r
+image_align_bottom:"Bottom",\r
+image_align_texttop:"Text top",\r
+image_align_textbottom:"Text bottom",\r
+image_align_left:"Left",\r
+image_align_right:"Right",\r
+link_title:"Insert/edit link",\r
+link_url:"Link URL",\r
+link_target:"Target",\r
+link_target_same:"Open link in the same window",\r
+link_target_blank:"Open link in a new window",\r
+link_titlefield:"Title",\r
+link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
+link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
+link_list:"Link list"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('es.standard',{\r
+style_select:"Lang",\r
+font_size:"Tama\u00F1o",\r
+fontdefault:"Fuente",\r
+block:"Formato",\r
+paragraph:"P\u00E1rrafo",\r
+div:"Div",\r
+address:"Direcci\u00F3n",\r
+pre:"Preformateado",\r
+h1:"Encabezado 1",\r
+h2:"Encabezado 2",\r
+h3:"Encabezado 3",\r
+h4:"Encabezado 4",\r
+h5:"Encabezado 5",\r
+h6:"Encabezado 6",\r
+blockquote:"Cita",\r
+code:"C\u00F3digo",\r
+samp:"Ejemplo de c\u00F3digo",\r
+dt:"T\u00E9rmino de definici\u00F3n",\r
+dd:"Descripci\u00F3n de definici\u00F3n",\r
+bold_desc:"Negrita (Ctrl+B)",\r
+italic_desc:"Cursiva (Ctrl+I)",\r
+underline_desc:"Subrayado (Ctrl+U)",\r
+striketrough_desc:"Tachado",\r
+justifyleft_desc:"Alinear a la izquierda",\r
+justifycenter_desc:"Alinear al centro",\r
+justifyright_desc:"Alinear a la derecha",\r
+justifyfull_desc:"Justificar",\r
+bullist_desc:"Lista desordenada",\r
+numlist_desc:"Lista ordenada",\r
+outdent_desc:"Reducir sangr\u00EDa",\r
+indent_desc:"Aumentar sandr\u00EDa",\r
+undo_desc:"Deshacer (Ctrl+Z)",\r
+redo_desc:"Rehacer (Ctrl+Y)",\r
+link_desc:"Insertar/editar hiperv\u00EDnculo",\r
+unlink_desc:"Quitar hiperv\u00EDnculo",\r
+image_desc:"Insertar/editar imagen",\r
+cleanup_desc:"Limpiar c\u00F3digo basura",\r
+code_desc:"Editar c\u00F3digo HTML",\r
+sub_desc:"Sub\u00EDndice",\r
+sup_desc:"Super\u00EDndice",\r
+hr_desc:"Insertar regla horizontal",\r
+removeformat_desc:"Limpiar formato",\r
+custom1_desc:"Su descripci\u00F3n personal aqu\u00ED",\r
+forecolor_desc:"Seleccionar color del texto",\r
+backcolor_desc:"Seleccionar color de fondo",\r
+charmap_desc:"Insertar caracteres personalizados",\r
+visualaid_desc:"Mostrar/ocultar l\u00EDnea de gu\u00EDa/elementos invisibles",\r
+anchor_desc:"Insertar/editar ancla",\r
+cut_desc:"Cortar",\r
+copy_desc:"Copiar",\r
+paste_desc:"Pegar",\r
+image_props_desc:"Propiedades de imagen",\r
+newdocument_desc:"Nuevo documento",\r
+help_desc:"Ayuda",\r
+blockquote_desc:"Cita",\r
+clipboard_msg:"Copiar/Cortar/Pegar no se encuentra disponible en Mozilla y Firefox.\n\u00BFDesea obtener m\u00E1s informaci\u00F3n acerca de este tema?",\r
+path:"Ruta",\r
+newdocument:"\u00BFEst\u00E1 seguro que desea limpiar todo el contenido?",\r
+toolbar_focus:"Ir a los botones de herramientas - Alt+Q, Ir al editor - Alt-Z, Ir a la ruta del elemento - Alt-X",\r
+more_colors:"M\u00E1s colores"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('es.standard_dlg',{\r
+about_title:"Acerca de TinyMCE",\r
+about_general:"Acerca de ",\r
+about_help:"Ayuda",\r
+about_license:"Licencia",\r
+about_plugins:"Complementos",\r
+about_plugin:"Complemento",\r
+about_author:"Autor",\r
+about_version:"Versi\u00F3n",\r
+about_loaded:"Complementos cargados",\r
+anchor_title:"Insertar/editar ancla",\r
+anchor_name:"Nombre del ancla",\r
+code_title:"Editor del c\u00F3digo fuente HTML",\r
+code_wordwrap:"Ajustar al margen",\r
+colorpicker_title:"Seleccionar color",\r
+colorpicker_picker_tab:"Selector",\r
+colorpicker_picker_title:"Paleta de color",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta de colores",\r
+colorpicker_named_tab:"Nombrados",\r
+colorpicker_named_title:"Colores nombrados",\r
+colorpicker_color:"Color:",\r
+colorpicker_name:"Nombre:",\r
+charmap_title:"Seleccionar caracter personalizado",\r
+image_title:"Insertar/editar imagen",\r
+image_src:"URL de la Imagen",\r
+image_alt:"Descripci\u00F3n de la Imagen",\r
+image_list:"Lista de la Imagen",\r
+image_border:"Borde",\r
+image_dimensions:"Dimensi\u00F3n",\r
+image_vspace:"Espacio vertical",\r
+image_hspace:"Espacio horizontal",\r
+image_align:"Alineaci\u00F3n",\r
+image_align_baseline:"L\u00EDnea base",\r
+image_align_top:"Arriba",\r
+image_align_middle:"Medio",\r
+image_align_bottom:"Debajo",\r
+image_align_texttop:"Texto arriba",\r
+image_align_textbottom:"Texto debajo",\r
+image_align_left:"Izquierda",\r
+image_align_right:"Derecha",\r
+link_title:"Insertar/editar hiperv\u00EDnculo",\r
+link_url:"URL del hiperv\u00EDnculo",\r
+link_target:"Destino",\r
+link_target_same:"Abrir v\u00EDnculo en la misma ventana",\r
+link_target_blank:"Abrir v\u00EDnculo en una ventana nueva",\r
+link_titlefield:"T\u00EDtulo",\r
+link_is_email:"La URL que introdujo parece ser una direcci\u00F3n de email, \u00BFdesea agregar el prefijo mailto: necesario?",\r
+link_is_external:"La URL que introdujo parece ser un v\u00EDnculo externo, \u00BFdesea agregar el prefijo http:// necesario?",\r
+link_list:"Lista de hiperv\u00EDnculos"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('et.standard',{\r
+style_select:"Lang",\r
+font_size:"Font size",\r
+fontdefault:"Font family",\r
+block:"Format",\r
+paragraph:"Paragraph",\r
+div:"Div",\r
+address:"Address",\r
+pre:"Preformatted",\r
+h1:"Heading 1",\r
+h2:"Heading 2",\r
+h3:"Heading 3",\r
+h4:"Heading 4",\r
+h5:"Heading 5",\r
+h6:"Heading 6",\r
+blockquote:"Blockquote",\r
+code:"Code",\r
+samp:"Code sample",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"Rasvane (Ctrl+B)",\r
+italic_desc:"Kursiiv (Ctrl+I)",\r
+underline_desc:"Allajoonitud (Ctrl+U)",\r
+striketrough_desc:"L\u00E4bijoonitud",\r
+justifyleft_desc:"Vasak joondus",\r
+justifycenter_desc:"Keskjoondus",\r
+justifyright_desc:"Parem joondus",\r
+justifyfull_desc:"T\u00E4isjoondus",\r
+bullist_desc:"Ebakorrap\u00E4rane loetelu",\r
+numlist_desc:"Korrap\u00E4rane loetelu",\r
+outdent_desc:"Taanda v\u00E4lja",\r
+indent_desc:"Taanda sisse",\r
+undo_desc:"V\u00F5ta tagasi (Ctrl+Z)",\r
+redo_desc:"Tee uuesti (Ctrl+Y)",\r
+link_desc:"Sisesta/redigeeri link",\r
+unlink_desc:"Eemalda link",\r
+image_desc:"Sisesta/redigeeri pilt",\r
+cleanup_desc:"Puhasta segane kood",\r
+code_desc:"Redigeeri HTML l\u00E4htekoodi",\r
+sub_desc:"Alaindeks",\r
+sup_desc:"\u00DClaindeks",\r
+hr_desc:"Sisesta horisontaalne joonlaud",\r
+removeformat_desc:"Eemalda vormindus",\r
+custom1_desc:"Teie kohandatud kirjeldus siia",\r
+forecolor_desc:"Vali teksti v\u00E4rv",\r
+backcolor_desc:"Vali tausta v\u00E4rv",\r
+charmap_desc:"Sisesta kohandatud kirjam\u00E4rk",\r
+visualaid_desc:"L\u00FClita \u00FCmber juhtjooned/n\u00E4htamatud elemendid",\r
+anchor_desc:"Sisesta/redigeeri ankur",\r
+cut_desc:"L\u00F5ika",\r
+copy_desc:"Kopeeri",\r
+paste_desc:"Kleebi",\r
+image_props_desc:"Pildi kirjeldus",\r
+newdocument_desc:"Uus dokument",\r
+help_desc:"Abi",\r
+blockquote_desc:"Plokkviide",\r
+clipboard_msg:"Kopeeri/L\u00F5ika/Kleebi ei ole Mozillas ja Firefoxis saadaval.\r\nKas soovid rohkem infot selle probleemi kohta?",\r
+path:"Tee",\r
+newdocument:"Oled sa kindel, et tahad kustutada k\u00F5ik sisud?",\r
+toolbar_focus:"H\u00FCppa t\u00F6\u00F6riista nuppudele - Alt+Q, H\u00FCppa redigeerijale - Alt-Z, H\u00FCppa elemendi teele - Alt-X",\r
+more_colors:"Rohkem v\u00E4rve"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('et.standard_dlg',{\r
+about_title:"About TinyMCE",\r
+about_general:"About",\r
+about_help:"Help",\r
+about_license:"License",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Author",\r
+about_version:"Version",\r
+about_loaded:"Loaded plugins",\r
+anchor_title:"Sisesta/redigeeri ankur",\r
+anchor_name:"Ankru nimi",\r
+code_title:"HTML Source Editor",\r
+code_wordwrap:"Word wrap",\r
+colorpicker_title:"Vali v\u00E4rv",\r
+colorpicker_picker_tab:"Korjaja",\r
+colorpicker_picker_title:"V\u00E4rvi korjaja",\r
+colorpicker_palette_tab:"Palett",\r
+colorpicker_palette_title:"Palett v\u00E4rvid",\r
+colorpicker_named_tab:"Nimetatud",\r
+colorpicker_named_title:"Nimetatud v\u00E4rvid",\r
+colorpicker_color:"V\u00E4rv:",\r
+colorpicker_name:"Nimi:",\r
+charmap_title:"Vali kohandatud t\u00E4hem\u00E4rk",\r
+image_title:"Sisestal/redigeeri pilt",\r
+image_src:"Pildi URL",\r
+image_alt:"Pildi kirjeldus",\r
+image_list:"Pildi loend",\r
+image_border:"Raam",\r
+image_dimensions:"Dimensioonid",\r
+image_vspace:"Vertikaalne vahe",\r
+image_hspace:"Horisontaalne vahe",\r
+image_align:"Reastus",\r
+image_align_baseline:"Kirjajoondus",\r
+image_align_top:"\u00DClemine",\r
+image_align_middle:"Keskmine",\r
+image_align_bottom:"Alumine",\r
+image_align_texttop:"Teksti tipp",\r
+image_align_textbottom:"Teksti p\u00F5hi",\r
+image_align_left:"Vasak",\r
+image_align_right:"Parem",\r
+link_title:"Sisesta/redigeeri link",\r
+link_url:"Link URL",\r
+link_target:"Sihtala",\r
+link_target_same:"Ava link samas aknas",\r
+link_target_blank:"Ava link uues aknas",\r
+link_titlefield:"Tiitel",\r
+link_is_email:"URL, mille te sisestasite, tundub olevat emaili aadress, kas soovite, et lisataks mailto: eesliite?",\r
+link_is_external:"URL, mille sisestasite, tundub olevat v\u00E4line link, kas soovite, et lisataks http:// eesliite?",\r
+link_list:"Lingi loetelu"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fa.standard',{\r
+style_select:"Lang",\r
+font_size:"\u0627\u0646\u062F\u0627\u0632\u0647 \u0642\u0644\u0645",\r
+fontdefault:"\u0646\u0648\u0639 \u0642\u0644\u0645",\r
+block:"\u0642\u0627\u0644\u0628",\r
+paragraph:"\u067E\u0627\u0631\u0627\u06AF\u0631\u0627\u0641",\r
+div:"Div",\r
+address:"\u0622\u062F\u0631\u0633",\r
+pre:"\u0627\u0632 \u0642\u0628\u0644 \u0642\u0627\u0644\u0628\u0646\u062F\u06CC \u0634\u062F\u0647",\r
+h1:"\u0633\u0631\u0641\u0635\u0644 1",\r
+h2:"\u0633\u0631\u0641\u0635\u0644 2",\r
+h3:"\u0633\u0631\u0641\u0635\u0644 3",\r
+h4:"\u0633\u0631\u0641\u0635\u0644 4",\r
+h5:"\u0633\u0631\u0641\u0635\u0644 5",\r
+h6:"\u0633\u0631\u0641\u0635\u0644 6",\r
+blockquote:"\u062C\u0639\u0628\u0647 \u0646\u0642\u0644 \u0642\u0648\u0644",\r
+code:"\u06A9\u062F",\r
+samp:"\u0646\u0645\u0648\u0646\u0647 \u06A9\u062F",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"(Ctrl+B) \u067E\u0631\u0631\u0646\u06AF",\r
+italic_desc:"(Ctrl+I) \u06A9\u062C",\r
+underline_desc:"(Ctrl+U) \u0632\u06CC\u0631\u062E\u0637",\r
+striketrough_desc:"\u062E\u0637 \u062E\u0648\u0631\u062F\u0647",\r
+justifyleft_desc:"\u0686\u067E \u0686\u06CC\u0646",\r
+justifycenter_desc:"\u0648\u0633\u0637 \u0686\u06CC\u0646",\r
+justifyright_desc:"\u0631\u0627\u0633\u062A \u0686\u06CC\u0646",\r
+justifyfull_desc:"\u062A\u0631\u0627\u0632 \u06A9\u0634\u06CC\u062F\u0647",\r
+bullist_desc:"\u0644\u06CC\u0633\u062A \u0633\u0627\u062F\u0647",\r
+numlist_desc:"\u0644\u06CC\u0633\u062A \u0634\u0645\u0627\u0631\u0647\u200C\u062F\u0627\u0631",\r
+outdent_desc:"\u06A9\u0627\u0647\u0634 \u062A\u0648\u0631\u0641\u062A\u06AF\u06CC",\r
+indent_desc:"\u0627\u0641\u0632\u0627\u06CC\u0634 \u062A\u0648\u0631\u0641\u062A\u06AF\u06CC",\r
+undo_desc:"(Ctrl+Z) \u0628\u0627\u0637\u0644 \u0646\u0645\u0648\u062F\u0646",\r
+redo_desc:"(Ctrl+Y) \u062A\u06A9\u0631\u0627\u0631",\r
+link_desc:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0644\u06CC\u0646\u06A9",\r
+unlink_desc:"\u062D\u0630\u0641 \u0644\u06CC\u0646\u06A9",\r
+image_desc:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u062A\u0635\u0648\u06CC\u0631",\r
+cleanup_desc:"\u067E\u0627\u06A9 \u0633\u0627\u0632\u06CC \u06A9\u062F\u0647\u0627\u06CC \u0622\u0634\u0641\u062A\u0647",\r
+code_desc:"HTML \u0648\u06CC\u0631\u0627\u06CC\u0634 \u06A9\u062F",\r
+sub_desc:"(\u0632\u06CC\u0631\u0646\u0648\u06CC\u0633 (\u0627\u0646\u062F\u06CC\u0633",\r
+sup_desc:"(\u0628\u0627\u0644\u0627\u0646\u0648\u06CC\u0633 (\u062A\u0648\u0627\u0646",\r
+hr_desc:"\u062F\u0631\u062C \u062E\u0637 \u0627\u0641\u0642\u06CC",\r
+removeformat_desc:"\u062D\u0630\u0641 \u0633\u0628\u06A9",\r
+custom1_desc:"\u0645\u062D\u0644 \u062A\u0648\u0636\u06CC\u062D \u062F\u0644\u062E\u0648\u0627\u0647 \u0634\u0645\u0627",\r
+forecolor_desc:"\u0631\u0646\u06AF \u0645\u062A\u0646 \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F",\r
+backcolor_desc:"\u0631\u0646\u06AF \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647 \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F",\r
+charmap_desc:"\u062F\u0631\u062C \u06A9\u0627\u0631\u0627\u06A9\u062A\u0631 \u062F\u0644\u062E\u0648\u0627\u0647",\r
+visualaid_desc:"\u062A\u063A\u06CC\u06CC\u0631 \u0648\u0636\u0639\u06CC\u062A \u062E\u0637\u0648\u0637 \u0631\u0627\u0647\u0646\u0645\u0627/\u0639\u0646\u0627\u0635\u0631 \u0645\u062E\u0641\u06CC",\r
+anchor_desc:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0645\u0631\u062C\u0639",\r
+cut_desc:"\u0628\u0631\u0634",\r
+copy_desc:"\u0631\u0648\u0646\u0648\u0634\u062A",\r
+paste_desc:"\u0686\u0633\u0628\u0627\u0646\u062F\u0646",\r
+image_props_desc:"\u062A\u0646\u0638\u06CC\u0645\u0627\u062A \u062A\u0635\u0648\u06CC\u0631",\r
+newdocument_desc:"\u0633\u0646\u062F \u062C\u062F\u06CC\u062F",\r
+help_desc:"\u0631\u0627\u0647\u0646\u0645\u0627",\r
+blockquote_desc:"\u062C\u0639\u0628\u0647 \u0646\u0642\u0644 \u0642\u0648\u0644",\r
+clipboard_msg:"\u0631\u0648\u0646\u0648\u0634\u062A/\u0628\u0631\u0634/\u062C\u0627\u06CC\u06AF\u0630\u0627\u0631\u06CC \u062F\u0631 \u0645\u0631\u0648\u0631\u06AF\u0631\u0647\u0627\u06CC \u0645\u0648\u0632\u06CC\u0644\u0627 \u0648 \u0641\u0627\u06CC\u0631\u0641\u0627\u06A9\u0633 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u0646\u062F.\r\n\u0622\u06CC\u0627 \u0628\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062A \u0628\u06CC\u0634\u062A\u0631\u06CC \u062F\u0631 \u0627\u06CC\u0646 \u0632\u0645\u06CC\u0646\u0647 \u0646\u06CC\u0627\u0632 \u062F\u0627\u0631\u06CC\u062F\u061F",\r
+path:"\u0645\u0633\u064A\u0631",\r
+newdocument:"\u0622\u06CC\u0627 \u0645\u0637\u0645\u0626\u0646\u06CC\u062F \u06A9\u0647 \u0645\u0647\u0645 \u0645\u062D\u062A\u0648\u06CC\u0627\u062A \u0631\u0627 \u067E\u0627\u06A9 \u0645\u06CC \u06A9\u0646\u06CC\u062F\u061F",\r
+toolbar_focus:"\u067E\u0631\u0634 \u0628\u0647 \u06A9\u0644\u06CC\u062F\u0647\u0627\u06CC \u0627\u0628\u0632\u0627\u0631 - Alt+Q, \u067E\u0631\u0634 \u0628\u0647 \u0648\u06CC\u0631\u0627\u06CC\u0634\u06AF\u0631 - Alt-Z, \u067E\u0631\u0634 \u0628\u0647 \u0645\u0633\u06CC\u0631 \u0639\u0646\u0635\u0631 - Alt-X",\r
+more_colors:"\u0631\u0646\u06AF\u200C\u0647\u0627\u06CC \u0628\u06CC\u0634\u062A\u0631"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fa.standard_dlg',{\r
+about_title:"About TinyMCE",\r
+about_general:"\u062F\u0631\u0628\u0627\u0631\u0647",\r
+about_help:"\u0631\u0627\u0647\u0646\u0645\u0627",\r
+about_license:"\u0627\u062C\u0627\u0632\u0647 \u0646\u0627\u0645\u0647",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Author",\r
+about_version:"\u0646\u06AF\u0627\u0631\u0634",\r
+about_loaded:"Loaded plugins",\r
+anchor_title:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0645\u0631\u062C\u0639",\r
+anchor_name:"\u0646\u0627\u0645 \u0645\u0631\u062C\u0639",\r
+code_title:"HTML Source Editor",\r
+code_wordwrap:"Word wrap",\r
+colorpicker_title:"\u0631\u0646\u06AF\u06CC \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F",\r
+colorpicker_picker_tab:"Picker",\r
+colorpicker_picker_title:"Color picker",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Palette colors",\r
+colorpicker_named_tab:"Named",\r
+colorpicker_named_title:"Named colors",\r
+colorpicker_color:"\u0631\u0646\u06AF:",\r
+colorpicker_name:"\u0646\u0627\u0645:",\r
+charmap_title:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631 \u062F\u0644\u062E\u0648\u0627\u0647 \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F",\r
+image_title:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u062A\u0635\u0648\u06CC\u0631",\r
+image_src:"\u062A\u0635\u0648\u06CC\u0631 URL",\r
+image_alt:"\u062A\u0648\u0636\u06CC\u062D\u0627\u062A \u062A\u0635\u0648\u06CC\u0631",\r
+image_list:"Image list",\r
+image_border:"\u062D\u0627\u0634\u06CC\u0647",\r
+image_dimensions:"\u0627\u0628\u0639\u0627\u062F",\r
+image_vspace:"\u0641\u0636\u0627\u06CC \u0639\u0645\u0648\u062F\u06CC",\r
+image_hspace:"\u0641\u0636\u0627\u06CC \u0627\u0641\u0642\u06CC",\r
+image_align:"\u062A\u0631\u0627\u0632",\r
+image_align_baseline:"\u062E\u0637 \u0632\u0645\u06CC\u0646\u0647",\r
+image_align_top:"\u0628\u0627\u0644\u0627",\r
+image_align_middle:"\u0648\u0633\u0637",\r
+image_align_bottom:"\u067E\u0627\u06CC\u06CC\u0646",\r
+image_align_texttop:"Text top",\r
+image_align_textbottom:"Text bottom",\r
+image_align_left:"\u0686\u067E",\r
+image_align_right:"\u0631\u0627\u0633\u062A",\r
+link_title:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0644\u06CC\u0646\u06A9",\r
+link_url:"\u0644\u06CC\u0646\u06A9 URL",\r
+link_target:"\u0647\u062F\u0641",\r
+link_target_same:"\u0628\u0627\u0632\u0634\u062F\u0646 \u062F\u0631 \u0647\u0645\u0627\u0646 \u067E\u0646\u062C\u0631\u0647",\r
+link_target_blank:"\u0628\u0627\u0632\u0634\u062F\u0646 \u062F\u0631 \u067E\u0646\u062C\u0631\u0647 \u062C\u062F\u06CC\u062F",\r
+link_titlefield:"\u0639\u0646\u0648\u0627\u0646",\r
+link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
+link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
+link_list:"Link list"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fi.standard',{\r
+style_select:"Lang",\r
+font_size:"Fonttikoko",\r
+fontdefault:"Fontti",\r
+block:"Muotoilu",\r
+paragraph:"Kappale",\r
+div:"Div",\r
+address:"Osoite",\r
+pre:"Esimuotoiltu (pre)",\r
+h1:"Otsikko 1",\r
+h2:"Otsikko 2",\r
+h3:"Otsikko 3",\r
+h4:"Otsikko 4",\r
+h5:"Otsikko 5",\r
+h6:"Otsikko 6",\r
+blockquote:"Pitk\u00E4 lainaus",\r
+code:"Koodi",\r
+samp:"Koodi esimerkki",\r
+dt:"M\u00E4\u00E4rittelyn ehto ",\r
+dd:"M\u00E4\u00E4rittelyn kuvaus",\r
+bold_desc:"Lihavoitu (Ctrl+B)",\r
+italic_desc:"Kursivoitu (Ctrl+I)",\r
+underline_desc:"Alleviivattu (Ctrl+U)",\r
+striketrough_desc:"Yliviivattu",\r
+justifyleft_desc:"Tasaus vasemmalle",\r
+justifycenter_desc:"Keskitetty",\r
+justifyright_desc:"Tasaus oikealle",\r
+justifyfull_desc:"Tasattu",\r
+bullist_desc:"J\u00E4rjest\u00E4m\u00E4t\u00F6n lista",\r
+numlist_desc:"J\u00E4rjestetty lista",\r
+outdent_desc:"V\u00E4henn\u00E4 sisennyst\u00E4",\r
+indent_desc:"Sisenn\u00E4",\r
+undo_desc:"Peru (Ctrl+Z)",\r
+redo_desc:"Tee uudelleen (Ctrl+Y)",\r
+link_desc:"Lis\u00E4\u00E4/muuta linkki",\r
+unlink_desc:"Poista linkki",\r
+image_desc:"Lis\u00E4\u00E4/muuta kuva",\r
+cleanup_desc:"Siisti sekainen koodi",\r
+code_desc:"Editoi HTML-koodia",\r
+sub_desc:"Alaindeksi",\r
+sup_desc:"Yl\u00E4indeksi",\r
+hr_desc:"Lis\u00E4\u00E4 vaakasuora viivain",\r
+removeformat_desc:"Poista muotoilu",\r
+custom1_desc:"Oma kuvauksesi t\u00E4h\u00E4n",\r
+forecolor_desc:"Valitse tekstin v\u00E4ri",\r
+backcolor_desc:"Valitse taustan v\u00E4ri",\r
+charmap_desc:"Lis\u00E4\u00E4 erikoismerkki",\r
+visualaid_desc:"Suuntaviivat/N\u00E4kym\u00E4tt\u00F6m\u00E4t elementit",\r
+anchor_desc:"Lis\u00E4\u00E4/Muokkaa ankkuri",\r
+cut_desc:"Leikkaa",\r
+copy_desc:"Kopioi",\r
+paste_desc:"Liit\u00E4",\r
+image_props_desc:"Kuvan ominaisuudet",\r
+newdocument_desc:"Uusi tiedosto",\r
+help_desc:"Ohje",\r
+blockquote_desc:"Pitk\u00E4 lainaus",\r
+clipboard_msg:"Kopioi/Leikkaa/Liit\u00E4 -painikkeet eiv\u00E4t toimi Mozilla ja Firefox-selaimilla. Voit kuitenkin k\u00E4ytt\u00E4\u00E4 n\u00E4pp\u00E4inyhdistelmi\u00E4 kopioimiseen (ctrl+c), leikkaamiseen (ctrl+x) ja liitt\u00E4miseen (ctrl+v).\r\nHalutatko lis\u00E4\u00E4 tietoa?",\r
+path:"Polku",\r
+newdocument:"Haluatko varmasti tyhjent\u00E4\u00E4 kaiken sis\u00E4ll\u00F6n?",\r
+toolbar_focus:"Siirry ty\u00F6kaluihin - Alt+Q, Siirry tekstieditoriin - Alt-Z, Siirry elementin polkuun - Alt-X",\r
+more_colors:"Enemm\u00E4n v\u00E4rej\u00E4"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fi.standard_dlg',{\r
+about_title:"Tietoja TinyMCE:st\u00E4",\r
+about_general:"Tietoja",\r
+about_help:"Ohje",\r
+about_license:"Lisenssi",\r
+about_plugins:"Lis\u00E4osat",\r
+about_plugin:"Lis\u00E4osa",\r
+about_author:"Kirjoittaja",\r
+about_version:"Versio",\r
+about_loaded:"Ladatut lis\u00E4osat",\r
+anchor_title:"Liit\u00E4/muokkaa ankkuria",\r
+anchor_name:"Ankkurin nimi",\r
+code_title:"HTML-koodin muokkaus",\r
+code_wordwrap:"Automaattinen rivinvaihto",\r
+colorpicker_title:"Valitse v\u00E4ri",\r
+colorpicker_picker_tab:"Valitsin",\r
+colorpicker_picker_title:"V\u00E4rin valitsin",\r
+colorpicker_palette_tab:"Paletti",\r
+colorpicker_palette_title:"V\u00E4ripalette",\r
+colorpicker_named_tab:"Nimetty",\r
+colorpicker_named_title:"Nimetyt v\u00E4rit",\r
+colorpicker_color:"V\u00E4ri:",\r
+colorpicker_name:"Nimi:",\r
+charmap_title:"Valitse erikoismerkki",\r
+image_title:"Lis\u00E4\u00E4/muokkaa kuvaa",\r
+image_src:"Kuvan osoite",\r
+image_alt:"Kuvan kuvaus",\r
+image_list:"Kuvalista",\r
+image_border:"Reunus",\r
+image_dimensions:"Mitat",\r
+image_vspace:"Pystysuuntainen tila",\r
+image_hspace:"Vaakasuuntainen tila",\r
+image_align:"Tasaus",\r
+image_align_baseline:"Tekstin tasossa",\r
+image_align_top:"Yl\u00F6s",\r
+image_align_middle:"Keskelle",\r
+image_align_bottom:"Alas",\r
+image_align_texttop:"Tekstin yl\u00E4osaan",\r
+image_align_textbottom:"Tekstin alaosaan",\r
+image_align_left:"Vasemmalle",\r
+image_align_right:"Oikealle",\r
+link_title:"Lis\u00E4\u00E4/muuta linkki",\r
+link_url:"Linkin osoite",\r
+link_target:"Kohde",\r
+link_target_same:"Avaa linkki samassa ikkunassa",\r
+link_target_blank:"Avaa linkki uuteen ikkunaan",\r
+link_titlefield:"Otsikko",\r
+link_is_email:"Antamasi osoite n\u00E4ytt\u00E4\u00E4 olevan s\u00E4\u00E4hk\u00F6postiosoite. Haluatko lis\u00E4t\u00E4 siihen mailto:-etuliitteen?",\r
+link_is_external:"Antamasi osoite n\u00E4ytt\u00E4\u00E4 johtavan ulkopuoliselle sivustolle. Haluatko lis\u00E4t\u00E4 linkin eteen http://-etuliitteen? (suositus)",\r
+link_list:"Linkkilista"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fr.standard',{\r
+style_select:"Lang",\r
+font_size:"Taille de la police",\r
+fontdefault:"Famille de police",\r
+block:"Format",\r
+paragraph:"Paragraphe",\r
+div:"Div",\r
+address:"Adresse",\r
+pre:"Preformatt\u00E9",\r
+h1:"Titre 1",\r
+h2:"Titre 2",\r
+h3:"Titre 3",\r
+h4:"Titre 4",\r
+h5:"Titre 5",\r
+h6:"Titre 6",\r
+blockquote:"Citation",\r
+code:"Code",\r
+samp:"Exemple de code",\r
+dt:"Terme \u00E0 d\u00E9finir",\r
+dd:"D\u00E9finition du terme",\r
+bold_desc:"Gras (Ctrl+B)",\r
+italic_desc:"Italique (Ctrl+I)",\r
+underline_desc:"Soulign\u00E9 (Ctrl+U)",\r
+striketrough_desc:"Barr\u00E9",\r
+justifyleft_desc:"Align\u00E9 \u00E0 gauche",\r
+justifycenter_desc:"Centr\u00E9",\r
+justifyright_desc:"Align\u00E9 \u00E0 droite",\r
+justifyfull_desc:"Justifi\u00E9",\r
+bullist_desc:"Liste non-num\u00E9rot\u00E9e",\r
+numlist_desc:"Liste num\u00E9rot\u00E9e",\r
+outdent_desc:"Retirer l'indentation",\r
+indent_desc:"Indenter",\r
+undo_desc:"D\u00E9faire (Ctrl+Z)",\r
+redo_desc:"Refaire (Ctrl+Y)",\r
+link_desc:"Ins\u00E9rer/\u00C9diter le lien",\r
+unlink_desc:"D\u00E9lier",\r
+image_desc:"Ins\u00E9rer/\u00C9diter l'image",\r
+cleanup_desc:"Nettoyer le code non propre",\r
+code_desc:"\u00C9diter source HTML",\r
+sub_desc:"Indice",\r
+sup_desc:"Exposant",\r
+hr_desc:"Ins\u00E9rer trait horizontal",\r
+removeformat_desc:"Enlever formattage",\r
+custom1_desc:"Votre description personnalis\u00E9e ici",\r
+forecolor_desc:"Choisir la couleur du texte",\r
+backcolor_desc:"Choisir la couleur de surlignage",\r
+charmap_desc:"Ins\u00E9rer caract\u00E8res sp\u00E9ciaux",\r
+visualaid_desc:"Activer/d\u00E9sactiver les guides et les \u00E9l\u00E9ments invisibles",\r
+anchor_desc:"Ins\u00E9rer/\u00C9diter ancre",\r
+cut_desc:"Couper",\r
+copy_desc:"Copier",\r
+paste_desc:"Coller",\r
+image_props_desc:"Propri\u00E9t\u00E9s de l'image",\r
+newdocument_desc:"Nouveau document",\r
+help_desc:"Aide",\r
+blockquote_desc:"Citation",\r
+clipboard_msg:"Copier/Couper/Coller n'est pas disponible sous Mozilla et sous Firefox.\n\r\n Voulez-vous plus d'information sur ce probl\u00E8me\u00A0?",\r
+path:"Chemin",\r
+newdocument:"\u00CAtes-vous s\u00FBr de vouloir effacer l'enti\u00E8ret\u00E9 du document\u00A0?",\r
+toolbar_focus:"Aller aux boutons de l'\u00E9diteur - Alt+Q, Aller \u00E0 l'\u00E9diteur - Alt-Z, Aller au chemin de l'\u00E9l\u00E9ment - Alt-X",\r
+more_colors:"Plus de couleurs"\r
+});
\ No newline at end of file
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Styles --',
+theme_code_desc : 'Modifier le code source HTML',
+theme_code_title : 'Éditeur de code source HTML',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Souscrit',
+theme_sup_desc : 'Indice supérieur',
+theme_hr_desc : 'Insérer un séparateur horizontal',
+theme_removeformat_desc : 'Supprimer le formattage',
+theme_custom1_desc : 'Votre description personnalisée ici',
+insert_image_border : 'Bordure',
+insert_image_dimensions : 'Dimensions',
+insert_image_vspace : 'VSpace',
+insert_image_hspace : 'HSpace',
+insert_image_align : 'Alignement',
+insert_image_align_default : 'Défaut',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Haut',
+insert_image_align_middle : 'Milieu',
+insert_image_align_bottom : 'Bas',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Milieu absolu',
+insert_image_align_absbottom : 'Bas absolu',
+insert_image_align_left : 'Gauche',
+insert_image_align_right : 'Droit',
+theme_font_size : 'Taille',
+theme_fontdefault : '-- Police --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraphe',
+theme_div : 'Div',
+theme_address : 'Addresse',
+theme_pre : 'Préformatté',
+theme_h1 : 'Entête 1',
+theme_h2 : 'Entête 2',
+theme_h3 : 'Entête 3',
+theme_h4 : 'Entête 4',
+theme_h5 : 'Entête 5',
+theme_h6 : 'Entête 6',
+theme_colorpicker_title : 'Choisir une couleur',
+theme_colorpicker_apply : 'Appliquer',
+theme_forecolor_desc : 'Choisir la couleur d\'avant plan',
+theme_backcolor_desc : 'Choisir une couleur d\'arrière plan',
+theme_charmap_title : 'Sélectionner un charactère spécial',
+theme_charmap_desc : 'Insérer un charactère spécial',
+theme_visualaid_desc : 'Active/Désactive les lignes guides et les éléments invisibles',
+insert_anchor_title : 'Insérer/Modifier une ancre',
+insert_anchor_name : 'Nom de l\'ancre',
+theme_anchor_desc : 'Insérer / Modifier une ancre',
+theme_insert_link_titlefield : 'Titre',
+theme_clipboard_msg : 'Copier/Couper/Coller ne sont pas disponibles dans Mozilla et FireFox.\nDésirez-vous consulter de plus amples informations à ce sujet?',
+theme_path : 'Chemin',
+cut_desc : 'Couper',
+copy_desc : 'Copier',
+paste_desc : 'Coller',
+link_list : 'Liste de liens',
+image_list : 'Liste d\'images',
+browse : 'Sélectionner',
+image_props_desc : 'Propriétés de l\'image',
+newdocument_desc : 'Nouveau Document',
+class_name : 'Classe',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+tinyMCE.addI18n('fr.standard_dlg',{\r
+about_title:"\u00C0 propos de TinyMCE",\r
+about_general:"\u00C0 propos",\r
+about_help:"Aide",\r
+about_license:"Licence",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Auteur",\r
+about_version:"Version",\r
+about_loaded:"Plugins charg\u00E9s",\r
+anchor_title:"Ins\u00E9rer/\u00C9diter ancre",\r
+anchor_name:"Nom de l'ancre",\r
+code_title:"\u00C9diteur de la source HTML",\r
+code_wordwrap:"Rupture de ligne",\r
+colorpicker_title:"Choisir une couleur",\r
+colorpicker_picker_tab:"Nuancier",\r
+colorpicker_picker_title:"Nuancier",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Couleurs de la palette",\r
+colorpicker_named_tab:"Noms",\r
+colorpicker_named_title:"Couleurs nomm\u00E9es",\r
+colorpicker_color:"Couleur :",\r
+colorpicker_name:"Nom :",\r
+charmap_title:"Choisir le caract\u00E8re \u00E0 ins\u00E9rer",\r
+image_title:"Ins\u00E9rer/\u00C9diter image",\r
+image_src:"URL de l'image",\r
+image_alt:"Description de l'image",\r
+image_list:"Liste d'images",\r
+image_border:"Bordure",\r
+image_dimensions:"Dimensions",\r
+image_vspace:"Espacement vertical",\r
+image_hspace:"Espacement horizontal",\r
+image_align:"Alignement",\r
+image_align_baseline:"Base",\r
+image_align_top:"Sommet",\r
+image_align_middle:"Milieu",\r
+image_align_bottom:"Bas",\r
+image_align_texttop:"Haut du texte",\r
+image_align_textbottom:"Bas du texte",\r
+image_align_left:"Gauche",\r
+image_align_right:"Droite",\r
+link_title:"Ins\u00E9rer/\u00C9diter lien",\r
+link_url:"URL du lien",\r
+link_target:"Cible",\r
+link_target_same:"Ouvrir dans la m\u00EAme fen\u00EAtre",\r
+link_target_blank:"Ouvrir dans une nouvelle fen\u00EAtre",\r
+link_titlefield:"Titre",\r
+link_is_email:"L'url que vous avez entr\u00E9 semble \u00EAtre une adresse e-mail, voulez-vous ajouter le pr\u00E9fixe mailto:\u00A0?",\r
+link_is_external:"L'url que vous avez entr\u00E9 semble \u00EAtre une adresse web externe, voulez-vous ajouter le pr\u00E9fixe http://\u00A0?",\r
+link_list:"Liste de liens"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('he.standard',{\r
+style_select:"Lang",\r
+font_size:"\u05D2\u05D5\u05D3\u05DC \u05D2\u05D5\u05E4\u05DF",\r
+fontdefault:"\u05D2\u05D5\u05E4\u05DF",\r
+block:"\u05E2\u05D9\u05E6\u05D5\u05D1",\r
+paragraph:"\u05E4\u05E1\u05E7\u05D4",\r
+div:"Div",\r
+address:"\u05DB\u05EA\u05D5\u05D1\u05EA",\r
+pre:"Preformatted",\r
+h1:"\u05DB\u05D5\u05EA\u05E8\u05EA 1",\r
+h2:"\u05DB\u05D5\u05EA\u05E8\u05EA 2",\r
+h3:"\u05DB\u05D5\u05EA\u05E8\u05EA 3",\r
+h4:"\u05DB\u05D5\u05EA\u05E8\u05EA 4",\r
+h5:"\u05DB\u05D5\u05EA\u05E8\u05EA 5",\r
+h6:"\u05DB\u05D5\u05EA\u05E8\u05EA 6",\r
+blockquote:"\u05E6\u05D9\u05D8\u05D5\u05D8 \u05D1\u05DC\u05D5\u05E7",\r
+code:"\u05E7\u05D5\u05D3",\r
+samp:"\u05D3\u05D5\u05D2\u05DE\u05EA \u05E7\u05D5\u05D3",\r
+dt:"\u05DE\u05D5\u05E9\u05D2",\r
+dd:"\u05D4\u05D2\u05D3\u05E8\u05EA \u05D4\u05DE\u05D5\u05E9\u05D2",\r
+bold_desc:"\u05DE\u05D5\u05D3\u05D2\u05E9 (Ctrl+B)",\r
+italic_desc:"\u05E0\u05D8\u05D5\u05D9 (Ctrl+I)",\r
+underline_desc:"\u05E7\u05D5 \u05EA\u05D7\u05EA\u05D5\u05DF(Ctrl+U)",\r
+striketrough_desc:"\u05E7\u05D5 \u05D7\u05D5\u05E6\u05D4",\r
+justifyleft_desc:"\u05D9\u05E9\u05E8 \u05D8\u05E7\u05E1\u05D8 \u05DC\u05E9\u05DE\u05D0\u05DC",\r
+justifycenter_desc:"\u05DE\u05E8\u05DB\u05D6",\r
+justifyright_desc:"\u05D9\u05E9\u05E8 \u05D8\u05E7\u05E1\u05D8 \u05DC\u05D9\u05DE\u05D9\u05DF",\r
+justifyfull_desc:"\u05D9\u05E9\u05E8 \u05DC\u05E9\u05E0\u05D9 \u05D4\u05E6\u05D3\u05D3\u05D9\u05DD",\r
+bullist_desc:"\u05EA\u05D1\u05DC\u05D9\u05D8\u05D9\u05DD",\r
+numlist_desc:"\u05DE\u05E1\u05E4\u05D5\u05E8",\r
+outdent_desc:"\u05D4\u05D2\u05D3\u05DC \u05DB\u05E0\u05D9\u05E1\u05D4",\r
+indent_desc:"\u05D4\u05E7\u05D8\u05DF \u05DB\u05E0\u05D9\u05E1\u05D4",\r
+undo_desc:"\u05D1\u05D8\u05DC \u05E4\u05E2\u05D5\u05DC\u05D4 (Ctrl+Z)",\r
+redo_desc:"\u05D7\u05D6\u05D5\u05E8 \u05E4\u05E2\u05D5\u05DC\u05D4 (Ctrl+Y)",\r
+link_desc:"\u05D4\u05D5\u05E1\u05E3\\u05E2\u05E8\u05DA \u05D4\u05D9\u05E4\u05E8-\u05E7\u05D9\u05E9\u05D5\u05E8",\r
+unlink_desc:"\u05D4\u05E1\u05E8 \u05D4\u05D9\u05E4\u05E8-\u05E7\u05D9\u05E9\u05D5\u05E8",\r
+image_desc:"\u05D4\u05D5\u05E1\u05E3\\u05E2\u05E8\u05DA \u05EA\u05DE\u05D5\u05E0\u05D4",\r
+cleanup_desc:"\u05E0\u05E7\u05D4 \u05E7\u05D5\u05D3",\r
+code_desc:"\u05E2\u05E8\u05DA \u05E7\u05D5\u05D3 HTML",\r
+sub_desc:"\u05DB\u05EA\u05D1 \u05E2\u05D9\u05DC\u05D9",\r
+sup_desc:"\u05DB\u05EA\u05D1 \u05EA\u05D7\u05EA\u05D9",\r
+hr_desc:"\u05D4\u05D5\u05E1\u05E3 \u05E7\u05D5 \u05DE\u05EA\u05D7",\r
+removeformat_desc:"\u05D4\u05E1\u05E8 \u05E2\u05D9\u05E6\u05D5\u05D1",\r
+custom1_desc:"\u05D4\u05EA\u05D0\u05D5\u05E8 \u05E9\u05DC\u05DA \u05DB\u05D0\u05D5",\r
+forecolor_desc:"\u05D1\u05D7\u05E8 \u05E6\u05D1\u05E2 \u05D2\u05D5\u05E4\u05DF",\r
+backcolor_desc:"\u05D1\u05D7\u05E8 \u05E6\u05D1\u05E2 \u05E8\u05E7\u05E2",\r
+charmap_desc:"\u05D4\u05D5\u05E1\u05E3 \u05E1\u05D9\u05DE\u05DF",\r
+visualaid_desc:"\u05D4\u05E6\u05D2\u05D4 \u05D0\u05D5 \u05D4\u05E1\u05EA\u05E8\u05D4 \u05E9\u05DC \u05E1\u05D9\u05DE\u05D5\u05E0\u05D9 \u05E2\u05D9\u05E6\u05D5\u05D1",\r
+anchor_desc:"\u05D4\u05D5\u05E1\u05E3\\u05E2\u05E8\u05DA \u05E1\u05D9\u05DE\u05E0\u05D9\u05D4",\r
+cut_desc:"\u05D2\u05D6\u05D5\u05E8",\r
+copy_desc:"\u05D4\u05E2\u05EA\u05E7",\r
+paste_desc:"\u05D4\u05D3\u05D1\u05E7",\r
+image_props_desc:"\u05DE\u05E2\u05E4\u05D9\u05D9\u05E0\u05D9 \u05D4\u05EA\u05DE\u05D5\u05E0\u05D4",\r
+newdocument_desc:"\u05DE\u05E1\u05DE\u05DA \u05D7\u05D3\u05E9",\r
+help_desc:"\u05E2\u05D6\u05E8\u05D4",\r
+blockquote_desc:"\u05E6\u05D9\u05D8\u05D5\u05D8",\r
+clipboard_msg:"\u05D4\u05E2\u05EA\u05E7\\u05D2\u05D6\u05D5\u05E8\\u05D4\u05D3\u05D1\u05E7 \u05DC\u05D0 \u05D6\u05DE\u05D9\u05E0\u05D9\u05DD \u05D1 Mozilla \u05D5\u05D1-Firefox.\r\n \u05D4\u05D0\u05DD \u05D1\u05E8\u05E6\u05D5\u05E0\u05DA \u05DC\u05E7\u05D1\u05DC \u05DE\u05D9\u05D3\u05E2 \u05E0\u05D5\u05E1\u05E3 \u05E2\u05DC \u05D4\u05E0\u05D5\u05E9\u05D0?",\r
+path:"\u05E0\u05EA\u05D9\u05D1",\r
+newdocument:"\u05D4\u05D0\u05DD \u05D1\u05E8\u05E6\u05D5\u05E0\u05DA \u05DC\u05DE\u05D7\u05D5\u05E7 \u05D0\u05EA \u05DB\u05DC \u05D4\u05EA\u05D5\u05DB\u05DF?",\r
+toolbar_focus:"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05D1\u05E8\u05D2\u05DC \u05DB\u05DC\u05D9\u05DD - Alt+Q, \u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05DE\u05E2\u05D1\u05D3 \u05EA\u05DE\u05DC\u05D9\u05DC\u05D9\u05DD - Alt-Z, \u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05E0\u05EA\u05D9\u05D1 \u05D4\u05D0\u05DC\u05DE\u05D8\u05D9\u05DD - Alt-X",\r
+more_colors:"\u05E2\u05D5\u05D3 \u05E6\u05D1\u05E2\u05D9\u05DD"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('he.standard_dlg',{\r
+about_title:"\u05D0\u05D5\u05D3\u05D5\u05EA TinyMCE",\r
+about_general:"\u05D0\u05D5\u05D3\u05D5\u05EA",\r
+about_help:"\u05D0\u05D6\u05E8\u05E2",\r
+about_license:"\u05E8\u05E9\u05D9\u05D5\u05DF",\r
+about_plugins:"\u05EA\u05D5\u05E1\u05E4\u05D5\u05EA",\r
+about_plugin:"\u05EA\u05D5\u05E1\u05E4\u05EA",\r
+about_author:"\u05D9\u05D5\u05E6\u05E8",\r
+about_version:"\u05D2\u05D9\u05E8\u05E1\u05D4",\r
+about_loaded:"\u05EA\u05D5\u05E1\u05E4\u05D5\u05EA \u05E4\u05E2\u05D9\u05DC\u05D5\u05EA",\r
+anchor_title:"\u05D4\u05D5\u05E1\u05E3\\u05E2\u05E8\u05DA \u05E1\u05D9\u05DE\u05E0\u05D9\u05D4",\r
+anchor_name:"\u05E9\u05DD \u05D4\u05E1\u05D9\u05DE\u05E0\u05D9\u05D4",\r
+code_title:"\u05E2\u05D5\u05E8\u05DA \u05D4-HTML",\r
+code_wordwrap:"\u05D4\u05E2\u05D1\u05E8\u05EA \u05DE\u05D9\u05DC\u05D9\u05DD",\r
+colorpicker_title:"\u05D1\u05D7\u05E8 \u05E6\u05D1\u05E2",\r
+colorpicker_picker_tab:"\u05D1\u05D5\u05E8\u05E8",\r
+colorpicker_picker_title:"\u05D1\u05D5\u05E8\u05E8 \u05D4\u05E6\u05D1\u05E2\u05D9\u05DD",\r
+colorpicker_palette_tab:"\u05DC\u05D5\u05D7 \u05E6\u05D1\u05E2\u05D9\u05DD",\r
+colorpicker_palette_title:"\u05DC\u05D5\u05D7 \u05E6\u05D1\u05E2\u05D9\u05DD",\r
+colorpicker_named_tab:"\u05DB\u05E0\u05D5\u05D9",\r
+colorpicker_named_title:"\u05E6\u05D1\u05E2\u05D9\u05DD \u05DB\u05E0\u05D5\u05D9\u05DD",\r
+colorpicker_color:"\u05E6\u05D1\u05E2:",\r
+colorpicker_name:"\u05E9\u05DD:",\r
+charmap_title:"\u05D1\u05D7\u05E8 \u05E1\u05D9\u05DE\u05DF",\r
+image_title:"\u05D4\u05D5\u05E1\u05E3\\u05E2\u05E8\u05DA \u05EA\u05DE\u05D5\u05E0\u05D4",\r
+image_src:"\u05DB\u05EA\u05D5\u05D1\u05EA:",\r
+image_alt:"\u05EA\u05D9\u05D0\u05D5\u05E8",\r
+image_list:"\u05E8\u05E9\u05D9\u05DE\u05D4",\r
+image_border:"\u05D2\u05D1\u05D5\u05DC",\r
+image_dimensions:"\u05D2\u05D5\u05D3\u05DC",\r
+image_vspace:"\u05E8\u05D5\u05D5\u05D7 \u05D0\u05E0\u05DB\u05D9",\r
+image_hspace:"\u05E8\u05D5\u05D5\u05D7 \u05D0\u05D5\u05E4\u05E7\u05D9",\r
+image_align:"\u05D9\u05E9\u05E8",\r
+image_align_baseline:"\u05E7\u05D5 \u05D4\u05D4\u05EA\u05D7\u05DC\u05D4",\r
+image_align_top:"\u05E7\u05E6\u05D4 \u05D4\u05E2\u05DC\u05D9\u05D5\u05DF",\r
+image_align_middle:"\u05D0\u05DE\u05E6\u05E2",\r
+image_align_bottom:"\u05E7\u05E6\u05D4 \u05D4\u05EA\u05D7\u05EA\u05D5\u05DF",\r
+image_align_texttop:"\u05E7\u05E6\u05D4 \u05D4\u05E2\u05DC\u05D9\u05D5\u05DF \u05E9\u05DC \u05D4\u05D8\u05E7\u05E1\u05D8",\r
+image_align_textbottom:"\u05E7\u05E6\u05D4 \u05D4\u05EA\u05D7\u05EA\u05D5\u05DF \u05E9\u05DC \u05D4\u05D8\u05E7\u05E1\u05D8",\r
+image_align_left:"\u05E9\u05DE\u05D0\u05DC",\r
+image_align_right:"\u05D9\u05DE\u05D9\u05DF",\r
+link_title:"\u05D4\u05D5\u05E1\u05E3\\u05E2\u05E8\u05DA link",\r
+link_url:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D4\u05D4\u05D9\u05E4\u05E8-\u05E7\u05D9\u05E9\u05D5\u05E8",\r
+link_target:"\u05D9\u05E2\u05D3",\r
+link_target_same:"Open link in the same window",\r
+link_target_blank:"Open link in a new window",\r
+link_titlefield:"\u05DB\u05D5\u05EA\u05E8\u05EA",\r
+link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
+link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
+link_list:"Link list"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hr.standard',{\r
+style_select:"Lang",\r
+font_size:"Veli\u010Dina pisma",\r
+fontdefault:"Vrsta pisma",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adresa",\r
+pre:"Oblikovano",\r
+h1:"Naslov 1",\r
+h2:"Naslov 2",\r
+h3:"Naslov 3",\r
+h4:"Naslov 4",\r
+h5:"Naslov 5",\r
+h6:"Naslov 6",\r
+blockquote:"Citat",\r
+code:"Kod",\r
+samp:"Primjer koda",\r
+dt:"Definicija pojma",\r
+dd:"Opis definicije",\r
+bold_desc:"Podebljaj (Ctrl+B)",\r
+italic_desc:"Kurziv (Ctrl+I)",\r
+underline_desc:"Podcrtaj (Ctrl+U)",\r
+striketrough_desc:"Precrtaj",\r
+justifyleft_desc:"Poravnaj lijevo",\r
+justifycenter_desc:"Centriraj",\r
+justifyright_desc:"Poravnaj desno",\r
+justifyfull_desc:"Poravnaj potpuno",\r
+bullist_desc:"Neure\u0111ena lista",\r
+numlist_desc:"Ure\u0111ena lista",\r
+outdent_desc:"Uvuci",\r
+indent_desc:"Izvuci",\r
+undo_desc:"Poni\u0161ti (Ctrl+Z)",\r
+redo_desc:"Ponovi (Ctrl+Y)",\r
+link_desc:"Umetni/uredi poveznicu",\r
+unlink_desc:"Poni\u0161ti poveznicu",\r
+image_desc:"Umetni/uredi sliku",\r
+cleanup_desc:"Po\u010Disti kod",\r
+code_desc:"Uredi HTML izvor",\r
+sub_desc:"Indeks",\r
+sup_desc:"Eksponent",\r
+hr_desc:"Umetni vodoravnu crtu",\r
+removeformat_desc:"Poni\u0161ti oblikovanje",\r
+custom1_desc:"Vlastiti opis ovdje",\r
+forecolor_desc:"Odaberite boju teksta",\r
+backcolor_desc:"Odaberite boju pozadine",\r
+charmap_desc:"Umetni vlastiti znak",\r
+visualaid_desc:"Vodilice/nevidljivi elementi",\r
+anchor_desc:"Umetni/uredi sidro",\r
+cut_desc:"Izre\u017Ei",\r
+copy_desc:"Kopiraj",\r
+paste_desc:"Zalijepi",\r
+image_props_desc:"Svojstva slike",\r
+newdocument_desc:"Novi dokument",\r
+help_desc:"Pomo\u0107",\r
+blockquote_desc:"Citiraj",\r
+clipboard_msg:"Kopiraj/Izre\u017Ei/Zalijepi nije dostupno u Mozilla i Firefox preglednicima. Vi\u0161e informacija?",\r
+path:"Staza",\r
+newdocument:"Jeste li sigurni da \u017Eelite izbrisati cijeli sadr\u017Eaj?",\r
+toolbar_focus:"Prije\u0111i na alatnu traku - Alt+Q, prije\u0111i na ure\u0111iva\u010D - Alt-Z, prije\u0111i na element path - Alt-X",\r
+more_colors:"Vi\u0161e boja"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hr.standard_dlg',{\r
+about_title:"TinyMCE",\r
+about_general:"O programu",\r
+about_help:"Pomo\u0107",\r
+about_license:"Licenca",\r
+about_plugins:"Dodaci",\r
+about_plugin:"Dodatak",\r
+about_author:"Autor",\r
+about_version:"Verzija",\r
+about_loaded:"Postoje\u0107i dodaci",\r
+anchor_title:"Umetni/uredi sidro",\r
+anchor_name:"Ime sidra",\r
+code_title:"HTML ure\u0111iva\u010D",\r
+code_wordwrap:"Omatanje teksta",\r
+colorpicker_title:"Izbor boje",\r
+colorpicker_picker_tab:"Odabir",\r
+colorpicker_picker_title:"Odabir boje",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta boja",\r
+colorpicker_named_tab:"Imenovano",\r
+colorpicker_named_title:"Imenovane boje",\r
+colorpicker_color:"Boja:",\r
+colorpicker_name:"Naziv:",\r
+charmap_title:"Odaberite znak",\r
+image_title:"Umetni/uredi sliku",\r
+image_src:"URL slike",\r
+image_alt:"Opis slike",\r
+image_list:"Lista slika",\r
+image_border:"Obrub",\r
+image_dimensions:"Dimenzije",\r
+image_vspace:"Okomiti razmak",\r
+image_hspace:"Vodoravni razmak",\r
+image_align:"Poravnavanje",\r
+image_align_baseline:"Osnovna linija",\r
+image_align_top:"Vrh",\r
+image_align_middle:"Sredina",\r
+image_align_bottom:"Dno",\r
+image_align_texttop:"Vrh teksta",\r
+image_align_textbottom:"Dno teksta",\r
+image_align_left:"Lijevo",\r
+image_align_right:"Desno",\r
+link_title:"Umetni/uredi poveznicu",\r
+link_url:"URL poveznice",\r
+link_target:"Meta",\r
+link_target_same:"Otvori poveznicu u istom prozoru",\r
+link_target_blank:"Otvori poveznicu u novom prozoru",\r
+link_titlefield:"Naslov",\r
+link_is_email:"URL koji ste unijeli izgleda kao e-mail adresa, \u017Eelite li dodati potrebni mailto: prefiks?",\r
+link_is_external:"URL koji ste unijeli izgleda kao vanjska poveznica, \u017Eelite li dodati potrebni http:// prefiks?",\r
+link_list:"Lista poveznica"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hu.standard',{\r
+style_select:"Lang",\r
+font_size:"Bet\u0171m\u00E9ret",\r
+fontdefault:"Bet\u0171t\u00EDpus",\r
+block:"Form\u00E1tum",\r
+paragraph:"Bekezd\u00E9s",\r
+div:"Div",\r
+address:"C\u00EDm",\r
+pre:"El\u0151form\u00E1zott",\r
+h1:"C\u00EDmsor 1",\r
+h2:"C\u00EDmsor 2",\r
+h3:"C\u00EDmsor 3",\r
+h4:"C\u00EDmsor 4",\r
+h5:"C\u00EDmsor 5",\r
+h6:"C\u00EDmsor 6",\r
+blockquote:"Id\u00E9zet",\r
+code:"K\u00F3d",\r
+samp:"K\u00F3d minta",\r
+dt:"Defini\u00E1lt kifejez\u00E9s a defin\u00EDci\u00F3s list\u00E1ban",\r
+dd:"Defin\u00EDci\u00F3 a defin\u00EDci\u00F3s list\u00E1ban",\r
+bold_desc:"F\u00E9lk\u00F6v\u00E9r (Ctrl+B)",\r
+italic_desc:"D\u0151lt (Ctrl+I)",\r
+underline_desc:"Al\u00E1h\u00FAzott (Ctrl+U)",\r
+striketrough_desc:"\u00C1th\u00FAzott",\r
+justifyleft_desc:"Balra z\u00E1rt",\r
+justifycenter_desc:"K\u00F6z\u00E9pre z\u00E1rt",\r
+justifyright_desc:"Jobbra z\u00E1rt",\r
+justifyfull_desc:"Sorkiz\u00E1rt",\r
+bullist_desc:"Rendezetlen lista",\r
+numlist_desc:"Rendezett lista",\r
+outdent_desc:"Beh\u00FAz\u00E1s cs\u00F6kkent\u00E9se",\r
+indent_desc:"Beh\u00FAz\u00E1s n\u00F6vel\u00E9se",\r
+undo_desc:"Visszavon (Ctrl+Z)",\r
+redo_desc:"M\u00E9gis v\u00E9grehajt (Ctrl+Y)",\r
+link_desc:"Link besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+unlink_desc:"Link megsz\u00FCntet\u00E9se",\r
+image_desc:"K\u00E9p besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+cleanup_desc:"Rendetlen k\u00F3d takar\u00EDt\u00E1sa",\r
+code_desc:"HTML forr\u00E1s szerkeszt\u00E9se",\r
+sub_desc:"Als\u00F3 index",\r
+sup_desc:"Fels\u0151 index",\r
+hr_desc:"Vizszintes elv\u00E1laszt\u00F3 besz\u00FAr\u00E1sa",\r
+removeformat_desc:"Form\u00E1z\u00E1s elt\u00E1vol\u00EDt\u00E1sa",\r
+custom1_desc:"Az \u00F6n egyedi le\u00EDr\u00E1sa",\r
+forecolor_desc:"Sz\u00F6vegsz\u00EDn v\u00E1laszt\u00E1sa",\r
+backcolor_desc:"H\u00E1tt\u00E9rsz\u00EDn v\u00E1laszt\u00E1sa",\r
+charmap_desc:"Speci\u00E1lis karakter besz\u00FAr\u00E1sa",\r
+visualaid_desc:"Vezet\u0151vonalak/nem l\u00E1that\u00F3 elemek ki-/bekapcsol\u00E1sa",\r
+anchor_desc:"Horgony besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+cut_desc:"Kiv\u00E1g\u00E1s",\r
+copy_desc:"M\u00E1sol\u00E1s",\r
+paste_desc:"Besz\u00FAr\u00E1s",\r
+image_props_desc:"K\u00E9p tulajdons\u00E1gai",\r
+newdocument_desc:"\u00DAj dokumentum",\r
+help_desc:"Seg\u00EDts\u00E9g",\r
+blockquote_desc:"Id\u00E9zet",\r
+clipboard_msg:"A M\u00E1sol\u00E1s/Kiv\u00E1g\u00E1s/Besz\u00FAr\u00E1s funkci\u00F3k nem el\u00E9rhet\u0151k Mozilla \u00E9s Firefox alatt. K\u00EDv\u00E1n t\u00F6bbet tudni err\u0151l a t\u00E9m\u00E1r\u00F3l?",\r
+path:"\u00DAtvonal",\r
+newdocument:"Biztosan t\u00F6rli az eddigi tartalmat?",\r
+toolbar_focus:"Eszk\u00F6zgombokra ugr\u00E1s - Alt+Q, Szerkeszt\u0151h\u00F6z ugr\u00E1s - Alt-Z, Elem\u00FAtvonalhoz ugr\u00E1s - Alt-X",\r
+more_colors:"T\u00F6bb sz\u00EDn"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hu.standard_dlg',{\r
+about_title:"A TinyMCE-r\u0151l",\r
+about_general:"R\u00F3lunk",\r
+about_help:"Seg\u00EDts\u00E9g",\r
+about_license:"Licensz",\r
+about_plugins:"Pluginok",\r
+about_plugin:"Plugin",\r
+about_author:"Szerz\u0151",\r
+about_version:"Verzi\u00F3",\r
+about_loaded:"Bet\u00F6lt\u00F6tt pluginok",\r
+anchor_title:"Horgony besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+anchor_name:"Horgonyn\u00E9v",\r
+code_title:"HTML forr\u00E1s szerkeszt\u00E9se",\r
+code_wordwrap:"Sz\u00F6veg t\u00F6rdel\u00E9s",\r
+colorpicker_title:"Sz\u00EDnv\u00E1laszt\u00E1s",\r
+colorpicker_picker_tab:"V\u00E1laszt\u00F3",\r
+colorpicker_picker_title:"Sz\u00EDnv\u00E1laszt\u00F3",\r
+colorpicker_palette_tab:"Paletta",\r
+colorpicker_palette_title:"Paletta sz\u00EDnek",\r
+colorpicker_named_tab:"Nevezettek",\r
+colorpicker_named_title:"Nevezett sz\u00EDnek",\r
+colorpicker_color:"Sz\u00EDn:",\r
+colorpicker_name:"N\u00E9v:",\r
+charmap_title:"Egyedi karakter v\u00E1laszt\u00E1sa",\r
+image_title:"K\u00E9p besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+image_src:"K\u00E9p URL",\r
+image_alt:"K\u00E9p le\u00EDr\u00E1s",\r
+image_list:"K\u00E9p lista",\r
+image_border:"Keret",\r
+image_dimensions:"Dimenzi\u00F3k",\r
+image_vspace:"F\u00FCgg\u0151leges t\u00E1v",\r
+image_hspace:"V\u00EDzszintes t\u00E1v",\r
+image_align:"Igaz\u00EDt\u00E1s",\r
+image_align_baseline:"Alapvonalhoz",\r
+image_align_top:"Fentre",\r
+image_align_middle:"K\u00F6z\u00E9pre",\r
+image_align_bottom:"Lentre",\r
+image_align_texttop:"Sz\u00F6veg tetej\u00E9hez",\r
+image_align_textbottom:"Sz\u00F6veg alj\u00E1hoz",\r
+image_align_left:"Balra",\r
+image_align_right:"Jobbra",\r
+link_title:"Link besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+link_url:"Link URL",\r
+link_target:"Target",\r
+link_target_same:"Link azonos ablakba nyit\u00E1sa",\r
+link_target_blank:"Link \u00FAj ablakba nyit\u00E1sa",\r
+link_titlefield:"C\u00EDm",\r
+link_is_email:"A be\u00EDrt URL e-mail c\u00EDmnek t\u0171nik, k\u00EDv\u00E1nja a sz\u00FCks\u00E9ges mailto:-t el\u00E9 tenni?",\r
+link_is_external:"A be\u00EDrt URL k\u00FCls\u0151 hivatkoz\u00E1snak t\u0171nik, k\u00EDv\u00E1nja a sz\u00FCks\u00E9ges http://-t el\u00E9 tenni?",\r
+link_list:"Link lista"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ia.standard',{\r
+style_select:"Lang",\r
+font_size:"\u5B57\u4F53\u5927\u5C0F",\r
+fontdefault:"\u5B57\u4F53",\r
+block:"\u683C\u5F0F",\r
+paragraph:"\u6BB5\u843D",\r
+div:"Div",\r
+address:"\u5730\u5740",\r
+pre:"\u9ED8\u8BA4\u683C\u5F0F",\r
+h1:"\u6807\u9898 1",\r
+h2:"\u6807\u9898 2",\r
+h3:"\u6807\u9898 3",\r
+h4:"\u6807\u9898 4",\r
+h5:"\u6807\u9898 5",\r
+h6:"\u6807\u9898 6",\r
+blockquote:"\u5F15\u7528",\r
+code:"\u4EE3\u7801",\r
+samp:"\u7A0B\u5E8F\u8303\u4F8B",\r
+dt:"\u540D\u8BCD\u5B9A\u4E49",\r
+dd:"\u540D\u8BCD\u89E3\u91CA",\r
+bold_desc:"\u7C97\u4F53 (Ctrl+B)",\r
+italic_desc:"\u659C\u4F53 (Ctrl+I)",\r
+underline_desc:"\u5E95\u7EBF (Ctrl+U)",\r
+striketrough_desc:"\u4E2D\u5212\u7EBF",\r
+justifyleft_desc:"\u5DE6\u5BF9\u9F50",\r
+justifycenter_desc:"\u5C45\u4E2D",\r
+justifyright_desc:"\u53F3\u5BF9\u9F50",\r
+justifyfull_desc:"\u4E24\u7AEF\u5BF9\u9F50",\r
+bullist_desc:"\u6E05\u5355\u7B26\u53F7",\r
+numlist_desc:"\u7F16\u53F7",\r
+outdent_desc:"\u51CF\u5C11\u7F29\u8FDB",\r
+indent_desc:"\u589E\u52A0\u7F29\u8FDB",\r
+undo_desc:"\u64A4\u9500 (Ctrl+Z)",\r
+redo_desc:"\u6062\u590D (Ctrl+Y)",\r
+link_desc:"\u63D2\u5165/\u7F16\u8F91 \u8FDE\u7ED3",\r
+unlink_desc:"\u53D6\u6D88\u8FDE\u7ED3",\r
+image_desc:"\u63D2\u5165/\u7F16\u8F91 \u56FE\u7247",\r
+cleanup_desc:"\u5220\u9664\u5197\u4F59\u7801",\r
+code_desc:"\u7F16\u8F91 HTML \u539F\u59CB\u7A0B\u5E8F\u4EE3\u7801",\r
+sub_desc:"\u4E0B\u6807",\r
+sup_desc:"\u4E0A\u6807",\r
+hr_desc:"\u63D2\u5165\u6C34\u5E73\u7EBF",\r
+removeformat_desc:"\u6E05\u9664\u6837\u5F0F",\r
+custom1_desc:"\u5728\u6B64\u8F93\u5165\u60A8\u7684\u81EA\u8BA2\u63CF\u8FF0",\r
+forecolor_desc:"\u9009\u62E9\u6587\u5B57\u989C\u8272",\r
+backcolor_desc:"\u9009\u62E9\u80CC\u666F\u989C\u8272",\r
+charmap_desc:"\u63D2\u5165\u7279\u6B8A\u7B26\u53F7",\r
+visualaid_desc:"\u7F51\u683C/\u9690\u85CF\u7EC4\u4EF6\uFF1F",\r
+anchor_desc:"\u63D2\u5165/\u7F16\u8F91 \u951A\u70B9",\r
+cut_desc:"\u526A\u5207 (Ctrl+X)",\r
+copy_desc:"\u590D\u5236 (Ctrl+C)",\r
+paste_desc:"\u7C98\u8D34 (Ctrl+V)",\r
+image_props_desc:"\u56FE\u7247\u5C5E\u6027",\r
+newdocument_desc:"\u65B0\u5EFA\u6587\u4EF6",\r
+help_desc:"\u5E2E\u52A9",\r
+blockquote_desc:"\u5F15\u7528",\r
+clipboard_msg:"\u590D\u5236\u3001\u526A\u5207\u548C\u7C98\u8D34\u529F\u80FD\u5728Mozilla \u548C Firefox\u4E2D\u65E0\u6CD5\u4F7F\u7528",\r
+path:"\u8DEF\u5F84",\r
+newdocument:"\u60A8\u786E\u8BA4\u8981\u5220\u9664\u5168\u90E8\u5185\u5BB9\u5417\uFF1F",\r
+toolbar_focus:"\u5DE5\u5177\u5217 - Alt+Q, \u7F16\u8F91\u5668 - Alt-Z, \u7EC4\u4EF6\u8DEF\u5F84 - Alt-X",\r
+more_colors:"\u66F4\u591A\u989C\u8272"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ia.standard_dlg',{\r
+about_title:"\u5173\u4E8E TinyMCE",\r
+about_general:"\u5173\u4E8E",\r
+about_help:"\u5E2E\u52A9",\r
+about_license:"\u6388\u6743",\r
+about_plugins:"\u5168\u90E8\u5916\u6302\u7A0B\u5E8F",\r
+about_plugin:"\u5916\u6302\u7A0B\u5E8F",\r
+about_author:"\u4F5C\u8005",\r
+about_version:"\u7248\u672C",\r
+about_loaded:"\u5DF2\u52A0\u8F7D\u7684\u5916\u6302\u7A0B\u5E8F",\r
+anchor_title:"\u63D2\u5165/\u7F16\u8F91 \u951A\u70B9",\r
+anchor_name:"\u951A\u70B9\u540D\u79F0",\r
+code_title:"HTML \u539F\u59CB\u7A0B\u5E8F\u4EE3\u7801\u7F16\u8F91\u5668",\r
+code_wordwrap:"\u81EA\u52A8\u6362\u884C",\r
+colorpicker_title:"\u9009\u62E9\u989C\u8272",\r
+colorpicker_picker_tab:"\u9009\u62E9\u5668",\r
+colorpicker_picker_title:"\u53D6\u8272\u5668",\r
+colorpicker_palette_tab:"\u8272\u8C31",\r
+colorpicker_palette_title:"\u8272\u8C31\u989C\u8272",\r
+colorpicker_named_tab:"\u9ED8\u8BA4\u503C",\r
+colorpicker_named_title:"\u9ED8\u8BA4\u7684\u989C\u8272",\r
+colorpicker_color:"\u989C\u8272:",\r
+colorpicker_name:"\u8272\u540D:",\r
+charmap_title:"\u63D2\u5165\u7279\u6B8A\u7B26\u53F7",\r
+image_title:"\u63D2\u5165/\u7F16\u8F91 \u56FE\u7247",\r
+image_src:"\u56FE\u7247\u7F51\u5740",\r
+image_alt:"\u56FE\u7247\u8BF4\u660E",\r
+image_list:"\u56FE\u7247\u6E05\u5355",\r
+image_border:"\u8FB9\u6846",\r
+image_dimensions:"\u5C3A\u5BF8",\r
+image_vspace:"\u5782\u76F4\u95F4\u8DDD",\r
+image_hspace:"\u6C34\u5E73\u95F4\u8DDD",\r
+image_align:"\u5BF9\u9F50\u65B9\u5F0F",\r
+image_align_baseline:"\u57FA\u7EBF",\r
+image_align_top:"\u9876\u90E8\u5BF9\u9F50",\r
+image_align_middle:"\u4E2D\u90E8\u5BF9\u9F50",\r
+image_align_bottom:"\u5E95\u90E8\u5BF9\u9F50",\r
+image_align_texttop:"\u6587\u5B57\u4E0A\u65B9",\r
+image_align_textbottom:"\u6587\u5B57\u4E0B\u65B9",\r
+image_align_left:"\u5DE6\u5BF9\u9F50",\r
+image_align_right:"\u53F3\u5BF9\u9F50",\r
+link_title:"\u63D2\u5165/\u7F16\u8F91 \u8FDE\u7ED3",\r
+link_url:"\u8FDE\u7ED3\u7F51\u5740",\r
+link_target:"\u76EE\u6807",\r
+link_target_same:"\u5F53\u524D\u7A97\u53E3\u6253\u5F00",\r
+link_target_blank:"\u65B0\u7A97\u53E3\u6253\u5F00",\r
+link_titlefield:"\u6807\u9898",\r
+link_is_email:"\u60A8\u8F93\u5165\u7684\u5E94\u8BE5\u662F\u4E00\u4E2A\u7535\u5B50\u90AE\u5BC4\u5730\u5740\uFF0C\u662F\u5426\u9700\u8981\u5728\u7F51\u5740\u524D\u52A0\u4E0A mailto: ? ",\r
+link_is_external:"\u60A8\u8F93\u5165\u7684\u7F51\u5740\u5E94\u8BE5\u662F\u4E00\u4E2A\u5916\u90E8\u8FDE\u7ED3\uFF0C\u662F\u5426\u9700\u8981\u5728\u7F51\u5740\u524D\u52A0\u4E0A http:// ?",\r
+link_list:"\u8FDE\u7ED3\u6E05\u5355"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ii.standard',{\r
+style_select:"Lang",\r
+font_size:"\u5B57\u4F53\u5927\u5C0F",\r
+fontdefault:"\u5B57\u4F53",\r
+block:"\u683C\u5F0F",\r
+paragraph:"\u6BB5\u843D",\r
+div:"Div",\r
+address:"\u5730\u5740",\r
+pre:"\u9ED8\u8BA4\u683C\u5F0F",\r
+h1:"\u6807\u9898 1",\r
+h2:"\u6807\u9898 2",\r
+h3:"\u6807\u9898 3",\r
+h4:"\u6807\u9898 4",\r
+h5:"\u6807\u9898 5",\r
+h6:"\u6807\u9898 6",\r
+blockquote:"\u5F15\u7528",\r
+code:"\u4EE3\u7801",\r
+samp:"\u7A0B\u5E8F\u8303\u4F8B",\r
+dt:"\u540D\u8BCD\u5B9A\u4E49",\r
+dd:"\u540D\u8BCD\u89E3\u91CA",\r
+bold_desc:"\u7C97\u4F53 (Ctrl+B)",\r
+italic_desc:"\u659C\u4F53 (Ctrl+I)",\r
+underline_desc:"\u5E95\u7EBF (Ctrl+U)",\r
+striketrough_desc:"\u4E2D\u5212\u7EBF",\r
+justifyleft_desc:"\u5DE6\u5BF9\u9F50",\r
+justifycenter_desc:"\u5C45\u4E2D",\r
+justifyright_desc:"\u53F3\u5BF9\u9F50",\r
+justifyfull_desc:"\u4E24\u7AEF\u5BF9\u9F50",\r
+bullist_desc:"\u6E05\u5355\u7B26\u53F7",\r
+numlist_desc:"\u7F16\u53F7",\r
+outdent_desc:"\u51CF\u5C11\u7F29\u8FDB",\r
+indent_desc:"\u589E\u52A0\u7F29\u8FDB",\r
+undo_desc:"\u64A4\u9500 (Ctrl+Z)",\r
+redo_desc:"\u6062\u590D (Ctrl+Y)",\r
+link_desc:"\u63D2\u5165/\u7F16\u8F91 \u8FDE\u7ED3",\r
+unlink_desc:"\u53D6\u6D88\u8FDE\u7ED3",\r
+image_desc:"\u63D2\u5165/\u7F16\u8F91 \u56FE\u7247",\r
+cleanup_desc:"\u5220\u9664\u5197\u4F59\u7801",\r
+code_desc:"\u7F16\u8F91 HTML \u539F\u59CB\u7A0B\u5E8F\u4EE3\u7801",\r
+sub_desc:"\u4E0B\u6807",\r
+sup_desc:"\u4E0A\u6807",\r
+hr_desc:"\u63D2\u5165\u6C34\u5E73\u7EBF",\r
+removeformat_desc:"\u6E05\u9664\u6837\u5F0F",\r
+custom1_desc:"\u5728\u6B64\u8F93\u5165\u60A8\u7684\u81EA\u8BA2\u63CF\u8FF0",\r
+forecolor_desc:"\u9009\u62E9\u6587\u5B57\u989C\u8272",\r
+backcolor_desc:"\u9009\u62E9\u80CC\u666F\u989C\u8272",\r
+charmap_desc:"\u63D2\u5165\u7279\u6B8A\u7B26\u53F7",\r
+visualaid_desc:"\u7F51\u683C/\u9690\u85CF\u7EC4\u4EF6\uFF1F",\r
+anchor_desc:"\u63D2\u5165/\u7F16\u8F91 \u951A\u70B9",\r
+cut_desc:"\u526A\u5207 (Ctrl+X)",\r
+copy_desc:"\u590D\u5236 (Ctrl+C)",\r
+paste_desc:"\u7C98\u8D34 (Ctrl+V)",\r
+image_props_desc:"\u56FE\u7247\u5C5E\u6027",\r
+newdocument_desc:"\u65B0\u5EFA\u6587\u4EF6",\r
+help_desc:"\u5E2E\u52A9",\r
+blockquote_desc:"\u5F15\u7528",\r
+clipboard_msg:"\u590D\u5236\u3001\u526A\u5207\u548C\u7C98\u8D34\u529F\u80FD\u5728Mozilla \u548C Firefox\u4E2D\u65E0\u6CD5\u4F7F\u7528",\r
+path:"\u8DEF\u5F84",\r
+newdocument:"\u60A8\u786E\u8BA4\u8981\u5220\u9664\u5168\u90E8\u5185\u5BB9\u5417\uFF1F",\r
+toolbar_focus:"\u5DE5\u5177\u5217 - Alt+Q, \u7F16\u8F91\u5668 - Alt-Z, \u7EC4\u4EF6\u8DEF\u5F84 - Alt-X",\r
+more_colors:"\u66F4\u591A\u989C\u8272"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ii.standard_dlg',{\r
+about_title:"\u5173\u4E8E TinyMCE",\r
+about_general:"\u5173\u4E8E",\r
+about_help:"\u5E2E\u52A9",\r
+about_license:"\u6388\u6743",\r
+about_plugins:"\u5168\u90E8\u5916\u6302\u7A0B\u5E8F",\r
+about_plugin:"\u5916\u6302\u7A0B\u5E8F",\r
+about_author:"\u4F5C\u8005",\r
+about_version:"\u7248\u672C",\r
+about_loaded:"\u5DF2\u52A0\u8F7D\u7684\u5916\u6302\u7A0B\u5E8F",\r
+anchor_title:"\u63D2\u5165/\u7F16\u8F91 \u951A\u70B9",\r
+anchor_name:"\u951A\u70B9\u540D\u79F0",\r
+code_title:"HTML \u539F\u59CB\u7A0B\u5E8F\u4EE3\u7801\u7F16\u8F91\u5668",\r
+code_wordwrap:"\u81EA\u52A8\u6362\u884C",\r
+colorpicker_title:"\u9009\u62E9\u989C\u8272",\r
+colorpicker_picker_tab:"\u9009\u62E9\u5668",\r
+colorpicker_picker_title:"\u53D6\u8272\u5668",\r
+colorpicker_palette_tab:"\u8272\u8C31",\r
+colorpicker_palette_title:"\u8272\u8C31\u989C\u8272",\r
+colorpicker_named_tab:"\u9ED8\u8BA4\u503C",\r
+colorpicker_named_title:"\u9ED8\u8BA4\u7684\u989C\u8272",\r
+colorpicker_color:"\u989C\u8272:",\r
+colorpicker_name:"\u8272\u540D:",\r
+charmap_title:"\u63D2\u5165\u7279\u6B8A\u7B26\u53F7",\r
+image_title:"\u63D2\u5165/\u7F16\u8F91 \u56FE\u7247",\r
+image_src:"\u56FE\u7247\u7F51\u5740",\r
+image_alt:"\u56FE\u7247\u8BF4\u660E",\r
+image_list:"\u56FE\u7247\u6E05\u5355",\r
+image_border:"\u8FB9\u6846",\r
+image_dimensions:"\u5C3A\u5BF8",\r
+image_vspace:"\u5782\u76F4\u95F4\u8DDD",\r
+image_hspace:"\u6C34\u5E73\u95F4\u8DDD",\r
+image_align:"\u5BF9\u9F50\u65B9\u5F0F",\r
+image_align_baseline:"\u57FA\u7EBF",\r
+image_align_top:"\u9876\u90E8\u5BF9\u9F50",\r
+image_align_middle:"\u4E2D\u90E8\u5BF9\u9F50",\r
+image_align_bottom:"\u5E95\u90E8\u5BF9\u9F50",\r
+image_align_texttop:"\u6587\u5B57\u4E0A\u65B9",\r
+image_align_textbottom:"\u6587\u5B57\u4E0B\u65B9",\r
+image_align_left:"\u5DE6\u5BF9\u9F50",\r
+image_align_right:"\u53F3\u5BF9\u9F50",\r
+link_title:"\u63D2\u5165/\u7F16\u8F91 \u8FDE\u7ED3",\r
+link_url:"\u8FDE\u7ED3\u7F51\u5740",\r
+link_target:"\u76EE\u6807",\r
+link_target_same:"\u5F53\u524D\u7A97\u53E3\u6253\u5F00",\r
+link_target_blank:"\u65B0\u7A97\u53E3\u6253\u5F00",\r
+link_titlefield:"\u6807\u9898",\r
+link_is_email:"\u60A8\u8F93\u5165\u7684\u5E94\u8BE5\u662F\u4E00\u4E2A\u7535\u5B50\u90AE\u5BC4\u5730\u5740\uFF0C\u662F\u5426\u9700\u8981\u5728\u7F51\u5740\u524D\u52A0\u4E0A mailto: ? ",\r
+link_is_external:"\u60A8\u8F93\u5165\u7684\u7F51\u5740\u5E94\u8BE5\u662F\u4E00\u4E2A\u5916\u90E8\u8FDE\u7ED3\uFF0C\u662F\u5426\u9700\u8981\u5728\u7F51\u5740\u524D\u52A0\u4E0A http:// ?",\r
+link_list:"\u8FDE\u7ED3\u6E05\u5355"\r
+});
\ No newline at end of file
--- /dev/null
+// Iceland lang variables by Johannes Birgir Jensson
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stílar --',
+theme_code_desc : 'Breyta HTML kóða',
+theme_code_title : 'HTML kóðaritill',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Lágskrift',
+theme_sup_desc : 'Háskrift',
+theme_hr_desc : 'Setja inn stiku',
+theme_removeformat_desc : 'Fjarlægja textasnið',
+theme_custom1_desc : 'Þín lýsing hér',
+insert_image_border : 'Rammi',
+insert_image_dimensions : 'Víddir',
+insert_image_vspace : 'Bil fyrir ofan og neðan',
+insert_image_hspace : 'Bil til vinstri og hægri',
+insert_image_align : 'Jöfnun',
+insert_image_align_default : '-- Ekki valin --',
+insert_image_align_baseline : 'Sama lína',
+insert_image_align_top : 'Uppi',
+insert_image_align_middle : 'Miðja',
+insert_image_align_bottom : 'Niðri',
+insert_image_align_texttop : 'Texti efst',
+insert_image_align_absmiddle : 'Alveg í miðju',
+insert_image_align_absbottom : 'Alveg neðst',
+insert_image_align_left : 'Vinstri',
+insert_image_align_right : 'Hægri',
+theme_font_size : '-- Textastærð --',
+theme_fontdefault : '-- Leturgerð --',
+theme_block : '-- Textasnið --',
+theme_paragraph : 'Málsgrein',
+theme_div : 'Div',
+theme_address : 'Heimilisfang',
+theme_pre : 'Ritvél',
+theme_h1 : 'Haus 1',
+theme_h2 : 'Haus 2',
+theme_h3 : 'Haus 3',
+theme_h4 : 'Haus 4',
+theme_h5 : 'Haus 5',
+theme_h6 : 'Haus 6',
+theme_colorpicker_title : 'Veldu lit',
+theme_colorpicker_apply : 'Staðfesta',
+theme_forecolor_desc : 'Veldu textalit',
+theme_backcolor_desc : 'Veldu bakgrunnslit',
+theme_charmap_title : 'Veldu sérstaf',
+theme_charmap_desc : 'Setja sérstaf inn',
+theme_visualaid_desc : 'Sýna/fela töflur, akkeri og fleira',
+insert_anchor_title : 'Setja inn/breyta akkeri',
+insert_anchor_name : 'Heiti akkeris',
+theme_anchor_desc : 'Setja inn/breyta akkeri',
+theme_insert_link_titlefield : 'Titill',
+theme_clipboard_msg : 'Afrita/klippa/líma er ekki virkt í Mozilla og Firefox.\nViltu fá upplýsingar um hvernig þú getur kveikt á þeim?',
+theme_path : 'Slóð',
+cut_desc : 'Klippa',
+copy_desc : 'Afrita',
+paste_desc : 'Skeyta',
+link_list : 'Tenglalisti',
+image_list : 'Myndalisti',
+browse : 'Vafra',
+image_props_desc : 'Stillingar myndar',
+newdocument_desc : 'Nýtt skjal',
+class_name : 'Class',
+newdocument : 'Ertu viss um að þú viljir hreinsa allt burtu?',
+about_title : 'Um TinyMCE',
+about : 'Um',
+license : 'Leyfi',
+plugins : 'Viðbætur',
+plugin : 'Viðbót',
+author : 'Höfundur',
+version : 'Útgáfa',
+loaded_plugins : 'Virkar viðbætur',
+help : 'Hjálp',
+not_set : '-- Ekki valið --',
+close : 'Loka',
+toolbar_focus : 'Flýtilykill fyrir takka - Alt+Q, Flýtilykill fyrir ritil - Alt-Z, Flýtilykill fyrir slóð - Alt-X'
+});
--- /dev/null
+tinyMCE.addI18n('it.standard',{\r
+style_select:"Lang",\r
+font_size:"Grandezza carattere",\r
+fontdefault:"Famiglia carattere",\r
+block:"Formato",\r
+paragraph:"Paragrafo",\r
+div:"Div",\r
+address:"Indirizzo",\r
+pre:"Preformattato",\r
+h1:"Intestazione 1",\r
+h2:"Intestazione 2",\r
+h3:"Intestazione 3",\r
+h4:"Intestazione 4",\r
+h5:"Intestazione 5",\r
+h6:"Intestazione 6",\r
+blockquote:"Testo quotato",\r
+code:"Codice",\r
+samp:"Esempio codice",\r
+dt:"Termine definizione",\r
+dd:"Descrizione definizione",\r
+bold_desc:"Grassetto (Ctrl+B)",\r
+italic_desc:"Corsivo (Ctrl+I)",\r
+underline_desc:"Sottolineato (Ctrl+U)",\r
+striketrough_desc:"Barrato",\r
+justifyleft_desc:"Allinea a sinistra",\r
+justifycenter_desc:"Centra",\r
+justifyright_desc:"Allinea a destra",\r
+justifyfull_desc:"Giustifica",\r
+bullist_desc:"Lista non ordinata",\r
+numlist_desc:"Lista ordinata",\r
+outdent_desc:"Sposta verso esterno",\r
+indent_desc:"Sposta verso interno",\r
+undo_desc:"Annulla (Ctrl+Z)",\r
+redo_desc:"Ripristina (Ctrl+Y)",\r
+link_desc:"Inserisci/modifica collegamento",\r
+unlink_desc:"Togli collegamento",\r
+image_desc:"Inserisci/modifica immagine",\r
+cleanup_desc:"Pulisci codice disordinato",\r
+code_desc:"Modifica sorgente HTML",\r
+sub_desc:"Pedice",\r
+sup_desc:"Apice",\r
+hr_desc:"Inserisci riga orizzontale",\r
+removeformat_desc:"Rimuovi formattazione",\r
+custom1_desc:"La tua descrizione personalizzata qui",\r
+forecolor_desc:"Seleziona colore testo",\r
+backcolor_desc:"Seleziona colore sfondo",\r
+charmap_desc:"Inserisci carattere speciale",\r
+visualaid_desc:"Mostra/nascondi linee guida/elementi invisibili",\r
+anchor_desc:"Inserisci/modifica ancora",\r
+cut_desc:"Taglia",\r
+copy_desc:"Copia",\r
+paste_desc:"Incolla",\r
+image_props_desc:"Propriet\u00E0 immagine",\r
+newdocument_desc:"Nuovo documento",\r
+help_desc:"Aiuto",\r
+blockquote_desc:"Testo quotato",\r
+clipboard_msg:"Copia/Taglia/Incolla non \u00E8 disponibile in Mozilla e Firefox..\r\nSi desidera avere maggiori informazioni su questo problema?",\r
+path:"Percorso",\r
+newdocument:"Sei sicuro di voler cancellare tutti i contenuti?",\r
+toolbar_focus:"Vai ai pulsanti strumento - Alt+Q, Vai all'editor - Alt-Z, Vai al percorso dell'elemento - Alt-X",\r
+more_colors:"Colori aggiuntivi"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('it.standard_dlg',{\r
+about_title:"Informazioni su TinyMCE",\r
+about_general:"Informazioni",\r
+about_help:"Aiuto",\r
+about_license:"Licenza",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Autore",\r
+about_version:"Versione",\r
+about_loaded:"Plugin caricati",\r
+anchor_title:"Inserisci/modifica ancora",\r
+anchor_name:"Nome ancora",\r
+code_title:"Editor sorgente HTML",\r
+code_wordwrap:"A capo automatico",\r
+colorpicker_title:"Seleziona un colore",\r
+colorpicker_picker_tab:"Selettore",\r
+colorpicker_picker_title:"Selettore colori",\r
+colorpicker_palette_tab:"Tavolozza",\r
+colorpicker_palette_title:"Tavolozza dei colori",\r
+colorpicker_named_tab:"Per nome",\r
+colorpicker_named_title:"Colori per nome",\r
+colorpicker_color:"Colore:",\r
+colorpicker_name:"Nome:",\r
+charmap_title:"Seleziona carattere speciale",\r
+image_title:"Inserisci/modifica immagine",\r
+image_src:"URL immagine",\r
+image_alt:"Descrizione immagine",\r
+image_list:"Lista immagini",\r
+image_border:"Bordo",\r
+image_dimensions:"Dimensioni",\r
+image_vspace:"Spaziatura verticale",\r
+image_hspace:"Spaziatura orizzontale",\r
+image_align:"Allineamentot",\r
+image_align_baseline:"Alla base",\r
+image_align_top:"In alto",\r
+image_align_middle:"In mezzo",\r
+image_align_bottom:"In basso",\r
+image_align_texttop:"In alto al testo",\r
+image_align_textbottom:"In basso al testo",\r
+image_align_left:"A sinistra",\r
+image_align_right:"A destra",\r
+link_title:"Inserisci/modifica collegamento",\r
+link_url:"URL collegamento",\r
+link_target:"Target",\r
+link_target_same:"Apri link nella stessa finestra",\r
+link_target_blank:"Apri link in una nuova finestra",\r
+link_titlefield:"Titolo",\r
+link_is_email:"L'URL inserito sembra essere un indirizzo email. Aggiungere il necessario prefisso mailto: ?",\r
+link_is_external:"L'URL inserito sembra essere un link esterno. Aggiungere il necessario prefisso http:// ?",\r
+link_list:"Lista collegamenti"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ja.standard',{\r
+style_select:"Lang",\r
+font_size:"\u30D5\u30A9\u30F3\u30C8\u30B5\u30A4\u30BA",\r
+fontdefault:"\u30D5\u30A9\u30F3\u30C8",\r
+block:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8",\r
+paragraph:"\u6BB5\u843D",\r
+div:"Div",\r
+address:"\u4F4F\u6240",\r
+pre:"\u6574\u5F62\u6E08\u307F",\r
+h1:"\u898B\u51FA\u30571",\r
+h2:"\u898B\u51FA\u30572",\r
+h3:"\u898B\u51FA\u30573",\r
+h4:"\u898B\u51FA\u30574",\r
+h5:"\u898B\u51FA\u30575",\r
+h6:"\u898B\u51FA\u30576",\r
+blockquote:"\u5F15\u7528",\r
+code:"\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9",\r
+samp:"\u30B3\u30FC\u30C9\u30B5\u30F3\u30D7\u30EB",\r
+dt:"\u8A9E\u53E5\u5B9A\u7FA9",\r
+dd:"\u8A9E\u53E5\u8AAC\u660E",\r
+bold_desc:"\u592A\u5B57 (Ctrl+B)",\r
+italic_desc:"\u659C\u4F53 (Ctrl+I)",\r
+underline_desc:"\u4E0B\u7DDA (Ctrl+U)",\r
+striketrough_desc:"\u6253\u6D88\u3057\u7DDA",\r
+justifyleft_desc:"\u5DE6\u63C3\u3048",\r
+justifycenter_desc:"\u4E2D\u592E\u63C3\u3048",\r
+justifyright_desc:"\u53F3\u63C3\u3048",\r
+justifyfull_desc:"\u5747\u7B49\u5272\u4ED8",\r
+bullist_desc:"\u756A\u53F7\u306A\u3057\u30EA\u30B9\u30C8",\r
+numlist_desc:"\u756A\u53F7\u3064\u304D\u30EA\u30B9\u30C8",\r
+outdent_desc:"\u30A4\u30F3\u30C7\u30F3\u30C8\u89E3\u9664",\r
+indent_desc:"\u30A4\u30F3\u30C7\u30F3\u30C8",\r
+undo_desc:"\u5143\u306B\u623B\u3059 (Ctrl+Z)",\r
+redo_desc:"\u3084\u308A\u76F4\u3059 (Ctrl+Y)",\r
+link_desc:"\u30EA\u30F3\u30AF\u306E\u633F\u5165/\u7DE8\u96C6",\r
+unlink_desc:"\u30EA\u30F3\u30AF\u89E3\u9664",\r
+image_desc:"\u753B\u50CF\u306E\u633F\u5165/\u7DE8\u96C6",\r
+cleanup_desc:"\u30B3\u30FC\u30C9\u6574\u5F62",\r
+code_desc:"HTML\u30BD\u30FC\u30B9\u7DE8\u96C6",\r
+sub_desc:"\u4E0B\u4ED8\u304D",\r
+sup_desc:"\u4E0A\u4ED8\u304D",\r
+hr_desc:"\u6C34\u5E73\u7DDA",\r
+removeformat_desc:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u89E3\u9664",\r
+custom1_desc:"\u8AAC\u660E\u6587\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",\r
+forecolor_desc:"\u6587\u5B57\u8272",\r
+backcolor_desc:"\u80CC\u666F\u8272",\r
+charmap_desc:"\u7279\u6B8A\u6587\u5B57",\r
+visualaid_desc:"\u30AC\u30A4\u30C9\u30E9\u30A4\u30F3\u3068\u975E\u8868\u793A\u9805\u76EE\u306E\u8868\u793A\u5207\u66FF",\r
+anchor_desc:"\u30A2\u30F3\u30AB\u30FC\u306E\u633F\u5165/\u7DE8\u96C6",\r
+cut_desc:"\u5207\u308A\u53D6\u308A",\r
+copy_desc:"\u30B3\u30D4\u30FC",\r
+paste_desc:"\u8CBC\u308A\u4ED8\u3051",\r
+image_props_desc:"\u753B\u50CF\u306E\u30D7\u30ED\u30D1\u30C6\u30A3",\r
+newdocument_desc:"\u65B0\u898F\u4F5C\u6210",\r
+help_desc:"\u30D8\u30EB\u30D7",\r
+blockquote_desc:"\u5F15\u7528",\r
+clipboard_msg:"\u30B3\u30D4\u30FC/\u5207\u308A\u53D6\u308A/\u8CBC\u308A\u4ED8\u3051\u306FMozilla\u53CA\u3073Firefox\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\u8A73\u7D30\u306F\u3053\u3061\u3089",\r
+path:"\u30D1\u30B9",\r
+newdocument:"\u7DE8\u96C6\u4E2D\u306E\u30C7\u30FC\u30BF\u3092\u7834\u68C4\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F",\r
+toolbar_focus:"\u30C4\u30FC\u30EB\u30DC\u30BF\u30F3\u3078\u30B8\u30E3\u30F3\u30D7 - Alt+Q, \u30A8\u30C7\u30A3\u30BF\u306B\u30B8\u30E3\u30F3\u30D7 - Alt-Z, \u30A8\u30EC\u30E1\u30F3\u30C8\u30D1\u30B9\u3078\u30B8\u30E3\u30F3\u30D7 - Alt-X",\r
+more_colors:"\u305D\u306E\u4ED6\u306E\u8272"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ja.standard_dlg',{\r
+about_title:"TinyMCE\u306B\u3064\u3044\u3066",\r
+about_general:"\u8A73\u7D30",\r
+about_help:"\u30D8\u30EB\u30D7",\r
+about_license:"\u30E9\u30A4\u30BB\u30F3\u30B9",\r
+about_plugins:"\u30D7\u30E9\u30B0\u30A4\u30F3",\r
+about_plugin:"\u30D7\u30E9\u30B0\u30A4\u30F3",\r
+about_author:"\u4F5C\u8005",\r
+about_version:"\u30D0\u30FC\u30B8\u30E7\u30F3",\r
+about_loaded:"\u8AAD\u8FBC\u6E08\u307F\u30D7\u30E9\u30B0\u30A4\u30F3",\r
+anchor_title:"\u30A2\u30F3\u30AB\u30FC\u306E\u633F\u5165/\u7DE8\u96C6",\r
+anchor_name:"\u30A2\u30F3\u30AB\u30FC\u540D",\r
+code_title:"HTML\u30BD\u30FC\u30B9\u30A8\u30C7\u30A3\u30BF",\r
+code_wordwrap:"\u6298\u308A\u8FD4\u3057",\r
+colorpicker_title:"\u8272\u306E\u9078\u629E",\r
+colorpicker_picker_tab:"\u30AB\u30E9\u30FC\u30D4\u30C3\u30AB\u30FC",\r
+colorpicker_picker_title:"\u30AB\u30E9\u30FC\u30D4\u30C3\u30AB\u30FC",\r
+colorpicker_palette_tab:"\u30D1\u30EC\u30C3\u30C8",\r
+colorpicker_palette_title:"\u30D1\u30EC\u30C3\u30C8",\r
+colorpicker_named_tab:"\u65E2\u5B9A\u8272",\r
+colorpicker_named_title:"\u65E2\u5B9A\u8272",\r
+colorpicker_color:"\u30AB\u30E9\u30FC:",\r
+colorpicker_name:"\u540D\u524D:",\r
+charmap_title:"\u7279\u6B8A\u6587\u5B57",\r
+image_title:"\u753B\u50CF\u306E\u633F\u5165/\u7DE8\u96C6",\r
+image_src:"\u753B\u50CFURL",\r
+image_alt:"\u753B\u50CF\u306E\u8AAC\u660E",\r
+image_list:"\u4E00\u89A7\u304B\u3089\u9078\u3076",\r
+image_border:"\u67A0\u7DDA",\r
+image_dimensions:"\u30B5\u30A4\u30BA",\r
+image_vspace:"\u4E0A\u4E0B\u4F59\u767D",\r
+image_hspace:"\u5DE6\u53F3\u4F59\u767D",\r
+image_align:"\u914D\u7F6E",\r
+image_align_baseline:"Baseline",\r
+image_align_top:"Top",\r
+image_align_middle:"Middle",\r
+image_align_bottom:"Bottom",\r
+image_align_texttop:"Text top",\r
+image_align_textbottom:"Text bottom",\r
+image_align_left:"Left",\r
+image_align_right:"Right",\r
+link_title:"\u30EA\u30F3\u30AF\u306E\u633F\u5165/\u7DE8\u96C6",\r
+link_url:"\u30EA\u30F3\u30AFURL",\r
+link_target:"\u30BF\u30FC\u30B2\u30C3\u30C8",\r
+link_target_same:"\u540C\u3058\u30A6\u30A4\u30F3\u30C9\u30A6\u3067\u958B\u304F",\r
+link_target_blank:"\u65B0\u3057\u3044\u30A6\u30A4\u30F3\u30C9\u30A6\u3067\u958B\u304F",\r
+link_titlefield:"\u30BF\u30A4\u30C8\u30EB",\r
+link_is_email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F\u3002\u30EA\u30F3\u30AF\u306Bmailto:\u3092\u4ED8\u52A0\u3057\u307E\u3059\u304B\uFF1F",\r
+link_is_external:"\u30EA\u30F3\u30AF\u306Bhttp://\u3092\u4ED8\u52A0\u3057\u307E\u3059\u304B\uFF1F",\r
+link_list:"\u4E00\u89A7\u304B\u3089\u9078\u3076"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ko.standard',{\r
+style_select:"Lang",\r
+font_size:"\uAE00\uAF34 \uD06C\uAE30",\r
+fontdefault:"\uAE00\uAF34",\r
+block:"\uD3EC\uB9F7",\r
+paragraph:"\uB2E8\uB77D",\r
+div:"Div",\r
+address:"\uC8FC\uC18C",\r
+pre:"pre",\r
+h1:"\uD45C\uC81C1",\r
+h2:"\uD45C\uC81C2",\r
+h3:"\uD45C\uC81C3",\r
+h4:"\uD45C\uC81C4",\r
+h5:"\uD45C\uC81C5",\r
+h6:"\uD45C\uC81C6",\r
+blockquote:"\uC778\uC6A9\uBB38",\r
+code:"\uCF54\uB4DC",\r
+samp:"\uC0D8\uD50C\uCF54\uB4DC",\r
+dt:"\uC5B4\uAD6C \uC815\uC758",\r
+dd:"\uC815\uC758 \uC124\uBA85",\r
+bold_desc:"\uAD75\uC740 \uAE00\uC528(Ctrl+B)",\r
+italic_desc:"\uC774\uD0E4\uB9AD(Ctrl+I)",\r
+underline_desc:"\uBC11\uC904(Ctrl+U)",\r
+striketrough_desc:"\uCDE8\uC18C\uC120",\r
+justifyleft_desc:"\uC67C\uCABD \uC815\uB82C",\r
+justifycenter_desc:"\uAC00\uC6B4\uB370 \uC815\uB82C",\r
+justifyright_desc:"\uC624\uB978\uCABD \uC815\uB82C",\r
+justifyfull_desc:"\uBC30\uBD84 \uC815\uB82C",\r
+bullist_desc:"\uBE44\uC21C\uCC28\uBAA9\uB85D",\r
+numlist_desc:"\uC21C\uCC28\uBAA9\uB85D",\r
+outdent_desc:"\uB0B4\uC5B4\uC4F0\uAE30",\r
+indent_desc:"\uB4E4\uC5EC\uC4F0\uAE30",\r
+undo_desc:"\uC2E4\uD589\uCDE8\uC18C(Ctrl+Z)",\r
+redo_desc:"\uB2E4\uC2DC\uC2E4\uD589(Ctrl+Y)",\r
+link_desc:"\uB9C1\uD06C\uC758 \uC0BD\uC785/\uD3B8\uC9D1",\r
+unlink_desc:"\uB9C1\uD06C \uC0AD\uC81C",\r
+image_desc:"\uC774\uBBF8\uC9C0 \uC0BD\uC785/\uD3B8\uC9D1",\r
+cleanup_desc:"\uC9C0\uC800\uBD84\uD55C \uCF54\uB4DC \uC0AD\uC81C",\r
+code_desc:"HTML \uD3B8\uC9D1",\r
+sub_desc:"\uC544\uB798\uCCA8\uC790",\r
+sup_desc:"\uC704\uCCA8\uC790",\r
+hr_desc:"\uAD6C\uBD84\uC120",\r
+removeformat_desc:"\uC11C\uC2DD \uD574\uC81C",\r
+custom1_desc:"\uCEE4\uC2A4\uD140 \uC124\uBA85",\r
+forecolor_desc:"\uAE00\uC790\uC0C9",\r
+backcolor_desc:"\uBC30\uACBD\uC0C9",\r
+charmap_desc:"\uD2B9\uC218 \uBB38\uC790",\r
+visualaid_desc:"\uAC00\uC774\uB4DC\uB77C\uC778 \uD45C\uC2DC/\uBE44\uD45C\uC2DC",\r
+anchor_desc:"\uC5E5\uCEE4 \uC0BD\uC785/\uD3B8\uC9D1",\r
+cut_desc:"\uC798\uB77C\uB0B4\uAE30",\r
+copy_desc:"\uBCF5\uC0AC",\r
+paste_desc:"\uBD99\uC774\uAE30",\r
+image_props_desc:"\uC774\uBBF8\uC9C0\uC18D\uC131",\r
+newdocument_desc:"\uC2E0\uADDC\uAE00 \uC791\uC131",\r
+help_desc:"\uB3C4\uC6C0\uB9D0",\r
+blockquote_desc:"\uC778\uC6A9\uBB38",\r
+clipboard_msg:"\uBCF5\uC0AC/\uC798\uB77C\uB0B4\uAE30/\uBD99\uC774\uAE30\uB294 Mozilla \uBC0FFirefox \uC5D0\uC11C \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n\uC0C1\uC138\uC815\uBCF4\uB97C \uD45C\uC2DC\uD569\uB2C8\uAE4C?",\r
+path:"Path",\r
+newdocument:"\uD3B8\uC9D1\uC911\uC758 \uB370\uC774\uD130\uB97C \uBAA8\uB450 \uC783\uC5B4\uB3C4 \uAD1C\uCC2E\uC2B5\uB2C8\uAE4C?",\r
+toolbar_focus:"\uBC84\uD2BC\uC73C\uB85C \uC810\uD504 - Alt+Q, \uC5D0\uB514\uD130\uB85C \uC810\uD504 - Alt-Z, Jump to element path - Alt-X",\r
+more_colors:"\uADF8 \uC678\uC758 \uC0C9"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ko.standard_dlg',{\r
+about_title:"TinyMCE\uC5D0 \uB300\uD558\uC5EC",\r
+about_general:"About",\r
+about_help:"\uB3C4\uC6C0\uB9D0",\r
+about_license:"\uB77C\uC774\uC13C\uC2A4",\r
+about_plugins:"\uD50C\uB7EC\uADF8\uC778",\r
+about_plugin:"\uD50C\uB7EC\uADF8\uC778",\r
+about_author:"\uC81C\uC791\uC790",\r
+about_version:"\uBC84\uC83C",\r
+about_loaded:"\uC2E4\uD589\uB41C \uD50C\uB7EC\uADF8\uC778",\r
+anchor_title:"\uC5E5\uCEE4 \uC0BD\uC785/\uD3B8\uC9D1",\r
+anchor_name:"\uC5E5\uCEE4\uBA85",\r
+code_title:"\uC18C\uC2A4 \uD3B8\uC9D1",\r
+code_wordwrap:"\uC6CC\uB4DC\uB7A9",\r
+colorpicker_title:"\uC0C9\uC744 \uC120\uD0DD",\r
+colorpicker_picker_tab:"\uD53D\uCEE4",\r
+colorpicker_picker_title:"\uCEEC\uB7EC \uD53D\uCEE4",\r
+colorpicker_palette_tab:"\uD314\uB808\uD2B8",\r
+colorpicker_palette_title:"\uD314\uB808\uD2B8 \uC0C9",\r
+colorpicker_named_tab:"\uC0C9 \uC774\uB984",\r
+colorpicker_named_title:"\uC0C9",\r
+colorpicker_color:"Color:",\r
+colorpicker_name:"\uC0C9 \uC774\uB984:",\r
+charmap_title:"\uD2B9\uC218 \uBB38\uC790",\r
+image_title:"\uC774\uBBF8\uC9C0\uC758 \uC0BD\uC785/\uD3B8\uC9D1",\r
+image_src:"\uC774\uBBF8\uC9C0 URL",\r
+image_alt:"\uC774\uBBF8\uC9C0 \uC124\uBA85",\r
+image_list:"\uC774\uBBF8\uC9C0 \uBAA9\uB85D",\r
+image_border:"\uD14C\uB450\uB9AC\uC120",\r
+image_dimensions:"\uD06C\uAE30",\r
+image_vspace:"\uC0C1\uD558 \uC5EC\uBC31",\r
+image_hspace:"\uC88C\uC6B0 \uC5EC\uBC31",\r
+image_align:"\uC815\uB82C",\r
+image_align_baseline:"\uAE30\uC900\uC120",\r
+image_align_top:"Top",\r
+image_align_middle:"Middle",\r
+image_align_bottom:"Bottom",\r
+image_align_texttop:"Text top",\r
+image_align_textbottom:"Text bottom",\r
+image_align_left:"Left",\r
+image_align_right:"Right",\r
+link_title:"\uB9C1\uD06C\uC758 \uC0BD\uC785/\uD3B8\uC9D1",\r
+link_url:"\uB9C1\uD06C URL",\r
+link_target:"Target",\r
+link_target_same:"\uAC19\uC740\uCC3D",\r
+link_target_blank:"\uC0C8\uCC3D",\r
+link_titlefield:"\uC81C\uBAA9",\r
+link_is_email:"\uBA54\uC77C\uC8FC\uC18C\uAC00 \uC785\uB825\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\n\uBA54\uC77C\uC8FC\uC18C\uC758 \uC55E\uC5D0 mailto:\uB97C \uBD99\uC785\uB2C8\uAE4C?",\r
+link_is_external:"\uC678\uBD80URL\uC774 \uC785\uB825\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\nURL\uC758 \uC55E\uC5D0 http://\uB97C \uBD99\uC785\uB2C8\uAE4C?",\r
+link_list:"\uB9C1\uD06C \uBAA9\uB85D"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lt.standard',{\r
+style_select:"Lang",\r
+font_size:"\u0160rifto dydis",\r
+fontdefault:"\u0160rifto \u0161eima",\r
+block:"Formatas",\r
+paragraph:"Paragrafas",\r
+div:"Div \u017Eym\u0117",\r
+address:"Adresas",\r
+pre:"Preformatuotas tekstas",\r
+h1:"Antra\u0161t\u0117 1",\r
+h2:"Antra\u0161t\u0117 2",\r
+h3:"Antra\u0161t\u0117 3",\r
+h4:"Antra\u0161t\u0117 4",\r
+h5:"Antra\u0161t\u0117 5",\r
+h6:"Antra\u0161t\u0117 6",\r
+blockquote:"Citatos blokas",\r
+code:"Kodas",\r
+samp:"Kodo pavyzdys",\r
+dt:"Apibr\u0117\u017Eimo terminas",\r
+dd:"Apibr\u0117\u017Eimo apra\u0161ymas",\r
+bold_desc:"Storas (Ctrl+B)",\r
+italic_desc:"Pasvir\u0119s (Ctrl+I)",\r
+underline_desc:"Pabrauktas (Ctrl+U)",\r
+striketrough_desc:"Perbrauktas",\r
+justifyleft_desc:"Lygiuoti pagal kair\u0119",\r
+justifycenter_desc:"Centruoti",\r
+justifyright_desc:"Lygiuoti pagal de\u0161in\u0119",\r
+justifyfull_desc:"Lygiuoti pagal abu kra\u0161tus",\r
+bullist_desc:"Ner\u016B\u0161uotas s\u0105ra\u0161as",\r
+numlist_desc:"R\u016B\u0161uotas skai\u010Diais s\u0105ra\u0161as",\r
+outdent_desc:"Stumti prie kairiojo kra\u0161to",\r
+indent_desc:"Stumti nuo kairiojo kra\u0161to",\r
+undo_desc:"Atstatyti (Ctrl+Z)",\r
+redo_desc:"Perdaryti (Ctrl+Y)",\r
+link_desc:"\u012Eterpti/redaguoti nuorod\u0105",\r
+unlink_desc:"Pa\u0161alinti nuorod\u0105",\r
+image_desc:"\u012Eterpti/redaguoti paveiksl\u0117l\u012F",\r
+cleanup_desc:"I\u0161valyti netvarking\u0105 kod\u0105",\r
+code_desc:"Redaguoti HTML i\u0161eities kod\u0105",\r
+sub_desc:"Apatinis indeksas",\r
+sup_desc:"Vir\u0161utinis indeksas",\r
+hr_desc:"\u012Eterpti horizontali\u0105 linij\u0105",\r
+removeformat_desc:"Pa\u0161alinti formatavim\u0105",\r
+custom1_desc:"J\u016Bs\u0173 apra\u0161ymas \u010Dia",\r
+forecolor_desc:"Parinkti teksto spalv\u0105",\r
+backcolor_desc:"Parinkti fono spalv\u0105",\r
+charmap_desc:"\u012Eterpti nestandartin\u012F simbol\u012F",\r
+visualaid_desc:"Kaitalioti gaires/nematom\u0173 element\u0173 rodym\u0105",\r
+anchor_desc:"\u012Eterpti/redaguoti inkar\u0105",\r
+cut_desc:"I\u0161kirpti",\r
+copy_desc:"Kopijuoti",\r
+paste_desc:"\u012Eklijuoti",\r
+image_props_desc:"Paveiksl\u0117lio nustatymai",\r
+newdocument_desc:"Naujas dokumentas",\r
+help_desc:"Pagalba",\r
+blockquote_desc:"Citatos blokas",\r
+clipboard_msg:"Kopijavimas/I\u0161kirpimas/\u012Eklijavimas negalimas Mozilla ir Firefox nar\u0161ykl\u0117se.\r\nAr norite daugiau informacijos apie \u0161i\u0105 problem\u0105?",\r
+path:"Kelias",\r
+newdocument:"Ar tikrai norite i\u0161trinti vis\u0105 turin\u012F?",\r
+toolbar_focus:"Per\u0161okimas prie \u012Franki\u0173 juostos mygtuk\u0173 - Alt+Q, Per\u0161okimas prie redaktoriaus - Alt-Z, Per\u0161okimas prie element\u0173 kelio - Alt-X",\r
+more_colors:"Daugiau spalv\u0173",\r
+advanced_image_delta_width:"10",\r
+advanced_link_delta_width:"10",\r
+advanced_colorpicker_delta_width:"10",\r
+advanced_charmap_delta_width:"10",\r
+advanced_anchor_delta_width:"10"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lt.standard_dlg',{\r
+about_title:"Apie TinyMCE",\r
+about_general:"Apie",\r
+about_help:"Pagalba",\r
+about_license:"Licenzija",\r
+about_plugins:"\u012Eskiepiai",\r
+about_plugin:"\u012Eskiepis",\r
+about_author:"Autorius",\r
+about_version:"Versija",\r
+about_loaded:"U\u017Ekrauti \u012Fskiepiai",\r
+anchor_title:"\u012Eterpti/redaguoti inkar\u0105",\r
+anchor_name:"Inkaro vardas",\r
+code_title:"HTML i\u0161eities kodo redaktorius",\r
+code_wordwrap:"\u017Dod\u017Eio lau\u017Eymas",\r
+colorpicker_title:"Pasirinkti spalv\u0105",\r
+colorpicker_picker_tab:"Parink\u0117jas",\r
+colorpicker_picker_title:"Spalvos parink\u0117jas",\r
+colorpicker_palette_tab:"Palet\u0117",\r
+colorpicker_palette_title:"Paletin\u0117s spalvos",\r
+colorpicker_named_tab:"\u012Evardintosios",\r
+colorpicker_named_title:"\u012Evardintosios spalvos",\r
+colorpicker_color:"Spalva:",\r
+colorpicker_name:"Pavadinimas:",\r
+charmap_title:"Pasirinkti nestandartin\u012F simbol\u012F",\r
+image_title:"\u012Eterpti/redaguoti paveiksl\u0117l\u012F",\r
+image_src:"Paveiksl\u0117lio URL adresas",\r
+image_alt:"Paveiksl\u0117lio apra\u0161ymas",\r
+image_list:"Paveiksl\u0117li\u0173 s\u0105ra\u0161as",\r
+image_border:"R\u0117melis",\r
+image_dimensions:"I\u0161matavimai",\r
+image_vspace:"Vertikalus tarpas",\r
+image_hspace:"Horizontalus tarpas",\r
+image_align:"Lygiavimas",\r
+image_align_baseline:"Pradiniame ta\u0161ke",\r
+image_align_top:"Vir\u0161uje",\r
+image_align_middle:"Viduryje",\r
+image_align_bottom:"Apa\u010Dioje",\r
+image_align_texttop:"Teksto vir\u0161uje",\r
+image_align_textbottom:"Teksto apa\u010Dioje",\r
+image_align_left:"Kair\u0117je",\r
+image_align_right:"De\u0161in\u0117je",\r
+link_title:"\u012Eterpti/redaguoti nuorod\u0105",\r
+link_url:"Nuorodos URL adresas",\r
+link_target:"Taikinys",\r
+link_target_same:"Atidaryti tame pa\u010Diame lange",\r
+link_target_blank:"Atidaryti naujame lange",\r
+link_titlefield:"Pavadinimas",\r
+link_is_email:"URL adresas, kur\u012F \u012Fved\u0117te yra e-pa\u0161to adresas, ar norite prid\u0117ti reikaling\u0105 mailto: prefiks\u0105?",\r
+link_is_external:"URL adresas, kur\u012F \u012Fved\u0117te yra i\u0161orin\u0117 nuoroda, ar norite prid\u0117ti reikaling\u0105 http:// prefiks\u0105?",\r
+link_list:"Nuorod\u0173 s\u0105ra\u0161as"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lv.standard',{\r
+style_select:"Lang",\r
+font_size:"Fonta lielums",\r
+fontdefault:"Fonta veids",\r
+block:"Form\u0101ts",\r
+paragraph:"Rindkopa",\r
+div:"Div\u012Bzija",\r
+address:"Adrese",\r
+pre:"Priek\u0161format\u0113ts",\r
+h1:"Virsraksts 1",\r
+h2:"Virsraksts 2",\r
+h3:"Virsraksts 3",\r
+h4:"Virsraksts 4",\r
+h5:"Virsraksts 5",\r
+h6:"Virsraksts 6",\r
+blockquote:"Cit\u0101ts",\r
+code:"Kods",\r
+samp:"Koda piem\u0113rs",\r
+dt:"Defin\u012Bcijas termins ",\r
+dd:"Defin\u012Bcijas apraksts",\r
+bold_desc:"Treknraksts (Ctrl+B)",\r
+italic_desc:"Sl\u012Bpraksts (Ctrl+I)",\r
+underline_desc:"Pasv\u012Btrojums (Ctrl+U)",\r
+striketrough_desc:"P\u0101rsv\u012Btrojums",\r
+justifyleft_desc:"Novietot pa kreisi",\r
+justifycenter_desc:"Centr\u0113t",\r
+justifyright_desc:"Novietot pa labi",\r
+justifyfull_desc:"Nol\u012Bdzin\u0101t malas",\r
+bullist_desc:"Nenumur\u0113ts saraksts",\r
+numlist_desc:"Numur\u0113ts saraksts",\r
+outdent_desc:"Uzk\u0101pe",\r
+indent_desc:"Atk\u0101pe",\r
+undo_desc:"Atsaukt (Ctrl+Z)",\r
+redo_desc:"Atatsaukt (Ctrl+Y)",\r
+link_desc:"Ievietot/Redi\u0123\u0113t saiti",\r
+unlink_desc:"Atsait\u0113t",\r
+image_desc:"Ievietot/Redi\u0123\u0113t att\u0113lu",\r
+cleanup_desc:"Izt\u012Br\u012Bt nek\u0101rt\u012Bgu kodu",\r
+code_desc:"Redi\u0123\u0113t HTML kodu",\r
+sub_desc:"Apak\u0161raksts",\r
+sup_desc:"Aug\u0161raksts",\r
+hr_desc:"Ievietot horizont\u0101lu sv\u012Btru",\r
+removeformat_desc:"Izdz\u0113st format\u0113to",\r
+custom1_desc:"Tevis izdom\u0101ts apraksts \u0161eit",\r
+forecolor_desc:"Uzst\u0101d\u012Bt teksta kr\u0101su",\r
+backcolor_desc:"Uzst\u0101d\u012Bt fona kr\u0101su",\r
+charmap_desc:"Ievietot simbolu",\r
+visualaid_desc:"Uzlikt/Nov\u0101kt pal\u012Bgsv\u012Btras/neredzamos elementus",\r
+anchor_desc:"Ievietot/Redi\u0123\u0113t enkursaiti",\r
+cut_desc:"Izgriezt",\r
+copy_desc:"Kop\u0113t",\r
+paste_desc:"Iekop\u0113t",\r
+image_props_desc:"Bildes iestat\u012Bjumi",\r
+newdocument_desc:"Jauns dokuments",\r
+help_desc:"Pal\u012Bdz\u012Bba",\r
+blockquote_desc:"Cit\u0101ts",\r
+clipboard_msg:"Iesp\u0113ja Kop\u0113t/Izgriezt/Iekop\u0113t nav pieejama p\u0101rl\u016Bkiem Mozilla and Firefox.\r\nVai J\u016Bs v\u0113laties uzzin\u0101t vair\u0101k par \u0161o probl\u0113mu?",\r
+path:"Atra\u0161an\u0101s vieta",\r
+newdocument:"Vai J\u016Bs esat p\u0101rliecin\u0101ti, ka v\u0113laties izdz\u0113st visu saturu?",\r
+toolbar_focus:"Iet uz r\u012Bkpog\u0101m - Alt+Q, Iet uz redaktoru - Alt-Z, Iet uz elementa atra\u0161an\u0101s vietu - Alt-X",\r
+more_colors:"Vair\u0101k kr\u0101su"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lv.standard_dlg',{\r
+about_title:"Par TinyMCE",\r
+about_general:"Par",\r
+about_help:"Pal\u012Bdz\u012Bba",\r
+about_license:"Licence",\r
+about_plugins:"Papildmodu\u013Ci",\r
+about_plugin:"Papildmodulis",\r
+about_author:"Autors",\r
+about_version:"Versija",\r
+about_loaded:"Iestat\u012Btie papildmodu\u013Ci",\r
+anchor_title:"Ievietot/Redi\u0123\u0113t enkursaiti",\r
+anchor_name:"Enkursaites nosaukums",\r
+code_title:"HTML koda redaktors",\r
+code_wordwrap:"V\u0101rdu p\u0101rne\u0161ana jaun\u0101 rind\u0101",\r
+colorpicker_title:"Izv\u0113l\u0113ties kr\u0101su",\r
+colorpicker_picker_tab:"Izv\u0113lnis",\r
+colorpicker_picker_title:"Kr\u0101su izv\u0113lnis",\r
+colorpicker_palette_tab:"Palete",\r
+colorpicker_palette_title:"Kr\u0101su palete",\r
+colorpicker_named_tab:"Nosaukts",\r
+colorpicker_named_title:"Nosaukt\u0101s kr\u0101sas",\r
+colorpicker_color:"Kr\u0101sa:",\r
+colorpicker_name:"Nosaukums:",\r
+charmap_title:"Izv\u0113lies simbolu",\r
+image_title:"Ievietot/Redi\u0123\u0113t att\u0113lu",\r
+image_src:"Att\u0113la URL",\r
+image_alt:"Att\u0113la apraksts",\r
+image_list:"Att\u0113lu saraksts",\r
+image_border:"Apmale",\r
+image_dimensions:"Izm\u0113ri",\r
+image_vspace:"Vertik\u0101l\u0101 atstarpe",\r
+image_hspace:"Horizont\u0101l\u0101 atstarpe",\r
+image_align:"Novietojums",\r
+image_align_baseline:"Pati apak\u0161a",\r
+image_align_top:"Aug\u0161a",\r
+image_align_middle:"Vidus",\r
+image_align_bottom:"Apak\u0161a",\r
+image_align_texttop:"Teksta aug\u0161a",\r
+image_align_textbottom:"Teksta apak\u0161a",\r
+image_align_left:"Pa kreisi",\r
+image_align_right:"Pa labi",\r
+link_title:"Ievietot/Redi\u0123\u0113t saiti",\r
+link_url:"Saites URL",\r
+link_target:"M\u0113r\u0137is",\r
+link_target_same:"Atv\u0113rt saiti \u0161ai pa\u0161\u0101 log\u0101",\r
+link_target_blank:"Atv\u0113rt saiti jaun\u0101 log\u0101",\r
+link_titlefield:"Nosaukums",\r
+link_is_email:"Ievad\u012Btais URL \u0161\u0137iet ir e-pasta adrese, vai tu v\u0113lies pirms t\u0101s pievienot mailto: pried\u0113kli? ",\r
+link_is_external:"Ievad\u012Btais URL \u0161\u0137iet ir \u0101r\u0113j\u0101 saite, vai tu v\u0113lies pirms t\u0101s pievienot http:// pried\u0113kli?",\r
+link_list:"Sai\u0161u saraksts"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nb.standard',{\r
+style_select:"Lang",\r
+font_size:"Skriftst\u00F8rrelse",\r
+fontdefault:"Skriftfamilie",\r
+block:"Format",\r
+paragraph:"Avsnitt",\r
+div:"Div",\r
+address:"Adresse",\r
+pre:"Pre-formatert",\r
+h1:"Overskrift 1",\r
+h2:"Overskrift 2",\r
+h3:"Overskrift 3",\r
+h4:"Overskrift 4",\r
+h5:"Overskrift 5",\r
+h6:"Overskrift 6",\r
+blockquote:"Innrykkinnrykk",\r
+code:"Kode",\r
+samp:"Kodeeksempel",\r
+dt:"Definisjonsuttrykk",\r
+dd:"Definisjonsbeskrivelse",\r
+bold_desc:"Fet",\r
+italic_desc:"Kursiv",\r
+underline_desc:"Understreking",\r
+striketrough_desc:"Gjennomstreking",\r
+justifyleft_desc:"Venstrejuster",\r
+justifycenter_desc:"Midtstill",\r
+justifyright_desc:"H\u00F8yrejuster",\r
+justifyfull_desc:"Blokkjuster",\r
+bullist_desc:"Punktliste",\r
+numlist_desc:"Nummerliste",\r
+outdent_desc:"Reduser innrykk",\r
+indent_desc:"\u00D8k innrykk",\r
+undo_desc:"Angre",\r
+redo_desc:"Gj\u00F8r om",\r
+link_desc:"Sett inn / endre lenke",\r
+unlink_desc:"Fjern lenke",\r
+image_desc:"Sett inn / endre bilde",\r
+cleanup_desc:"Rens ukurant kode",\r
+code_desc:"Redigere HTML-koden",\r
+sub_desc:"Senket skrift",\r
+sup_desc:"Hevet skrift",\r
+hr_desc:"Sett inn horisontal linje",\r
+removeformat_desc:"Fjern formatering",\r
+custom1_desc:"Beskrivelse av spesialfunksjon",\r
+forecolor_desc:"Velg skriftfarge",\r
+backcolor_desc:"Velg bakgrunnsfarge",\r
+charmap_desc:"Sett inn spesialtegn",\r
+visualaid_desc:"Sl\u00E5 av/p\u00E5 usynlige elementer",\r
+anchor_desc:"Sett inn / endre anker",\r
+cut_desc:"Klipp ut",\r
+copy_desc:"Kopier",\r
+paste_desc:"Lim inn",\r
+image_props_desc:"Bildeegenskaper",\r
+newdocument_desc:"Nytt dokument",\r
+help_desc:"Hjelp",\r
+blockquote_desc:"Innrykk",\r
+clipboard_msg:"Klipp ut / Kopier /Lim inn fungerer ikke i Mozilla og Firefox. \r\n Vil du vite mer om dette?",\r
+path:"Sti",\r
+newdocument:"Er du sikker p\u00E5 at du vil slette alt innhold?",\r
+toolbar_focus:"Skift til verkt\u00F8yknapper - Alt+Q, Skift til editor - Alt-Z, Skift til elementsti - Alt-",\r
+more_colors:"Flere farger"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nb.standard_dlg',{\r
+about_title:"Om TinyMCE",\r
+about_general:"Om",\r
+about_help:"Hjelp",\r
+about_license:"Lisens",\r
+about_plugins:"Programtillegg",\r
+about_plugin:"Programtillegg",\r
+about_author:"Utvikler",\r
+about_version:"Versjon",\r
+about_loaded:"Lastede programtillegg",\r
+anchor_title:"Sett inn / endre anker",\r
+anchor_name:"Ankernavn",\r
+code_title:"HTML-editor",\r
+code_wordwrap:"Tekstbryting",\r
+colorpicker_title:"Velg en farge",\r
+colorpicker_picker_tab:"Velg farge",\r
+colorpicker_picker_title:"Fargevalg",\r
+colorpicker_palette_tab:"Palett",\r
+colorpicker_palette_title:"Palettfarger",\r
+colorpicker_named_tab:"Navnevalg",\r
+colorpicker_named_title:"Fargenavn",\r
+colorpicker_color:"Farge:",\r
+colorpicker_name:"Navn:",\r
+charmap_title:"Velg spesialtegn",\r
+image_title:"Sett inn / endre bilde",\r
+image_src:"Bildets URL",\r
+image_alt:"Bildebeskrivelse",\r
+image_list:"Bildeliste",\r
+image_border:"Ramme",\r
+image_dimensions:"Dimensjoner",\r
+image_vspace:"Vertikal avstand",\r
+image_hspace:"Horisontal avstand",\r
+image_align:"Justering",\r
+image_align_baseline:"Bunnlinje",\r
+image_align_top:"Topp",\r
+image_align_middle:"Midtstilt",\r
+image_align_bottom:"Bunn",\r
+image_align_texttop:"Teksttopp",\r
+image_align_textbottom:"Tekstbunn",\r
+image_align_left:"Venstre",\r
+image_align_right:"H\u00F8yre",\r
+link_title:"Sett inn /endre lenke",\r
+link_url:"Lenkens URL",\r
+link_target:"M\u00E5lside",\r
+link_target_same:"\u00C5pne i dette vinduet",\r
+link_target_blank:"\u00C5pne i nytt vindu",\r
+link_titlefield:"Tittel",\r
+link_is_email:"Nettadressen du skrev inn ser ut til \u00E5 v\u00E6re en e-postadresse. \u00D8nsker du \u00E5 legge til det p\u00E5krevde mailto:-prefikset?",\r
+link_is_external:"Nettadressen du skrev inn ser ut til \u00E5 v\u00E6re en ekstern nettadresse. \u00D8nsker du \u00E5 legge til det p\u00E5krevde http://-prefikset?",\r
+link_list:"Lenkeliste"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nl.standard',{\r
+style_select:"Lang",\r
+font_size:"Tekengrootte",\r
+fontdefault:"Lettertype",\r
+block:"Formaat",\r
+paragraph:"Paragraaf",\r
+div:"Div",\r
+address:"Adres",\r
+pre:"Vaste opmaak",\r
+h1:"Kop 1",\r
+h2:"Kop 2",\r
+h3:"Kop 3",\r
+h4:"Kop 4",\r
+h5:"Kop 5",\r
+h6:"Kop 6",\r
+blockquote:"Citaat",\r
+code:"Code",\r
+samp:"Codevoorbeeld",\r
+dt:"Definitieterm",\r
+dd:"Definitiebeschrijving",\r
+bold_desc:"Vet (Ctrl+B)",\r
+italic_desc:"Cursief (Ctrl+I)",\r
+underline_desc:"Onderstrepen (Ctrl+U)",\r
+striketrough_desc:"Doorhalen",\r
+justifyleft_desc:"Links uitlijnen",\r
+justifycenter_desc:"Centreren",\r
+justifyright_desc:"Rechts uitlijnen",\r
+justifyfull_desc:"Uitvullen",\r
+bullist_desc:"Opsommingstekens",\r
+numlist_desc:"Nummering",\r
+outdent_desc:"Inspringing verkleinen",\r
+indent_desc:"Inspringing vergroten",\r
+undo_desc:"Ongedaan maken (Ctrl+Z)",\r
+redo_desc:"Herhalen (Ctrl+Y)",\r
+link_desc:"Link invoegen/bewerken",\r
+unlink_desc:"Link verwijderen",\r
+image_desc:"Afbeelding invoegen/bewerken",\r
+cleanup_desc:"Code opruimen",\r
+code_desc:"HTML bron bewerken",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Scheidingslijn invoegen",\r
+removeformat_desc:"Opmaak verwijderen",\r
+custom1_desc:"Uw eigen beschrijving hier",\r
+forecolor_desc:"Tekstkleur",\r
+backcolor_desc:"Tekstmarkeringskleur",\r
+charmap_desc:"Symbool invoegen",\r
+visualaid_desc:"Hulplijnen weergeven",\r
+anchor_desc:"Anker invoegen/bewerken",\r
+cut_desc:"Knippen",\r
+copy_desc:"Kopi\u00EBren",\r
+paste_desc:"Plakken",\r
+image_props_desc:"Afbeeldingseigenschappen",\r
+newdocument_desc:"Nieuw document",\r
+help_desc:"Help",\r
+blockquote_desc:"Citaat",\r
+clipboard_msg:"Kopi\u00EBren/knippen/plakken is niet beschikbaar in Mozilla en Firefox.\nWilt u meer informatie over deze beperking?",\r
+path:"Pad",\r
+newdocument:"Weet u zeker dat u alle inhoud wilt wissen?",\r
+toolbar_focus:"Spring naar werkbalk - Alt+Q, Spring naar tekst - Alt-Z, Spring naar elementpad - Alt-X",\r
+more_colors:"Meer kleuren"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nl.standard_dlg',{\r
+about_title:"Over TinyMCE",\r
+about_general:"Info",\r
+about_help:"Help",\r
+about_license:"Licentie",\r
+about_plugins:"Invoegtoepassingen",\r
+about_plugin:"Invoegtoepassing",\r
+about_author:"Auteur",\r
+about_version:"Versie",\r
+about_loaded:"Geladen Invoegtoepassingen",\r
+anchor_title:"Anker invoegen/bewerken",\r
+anchor_name:"Ankernaam",\r
+code_title:"HTML Bron",\r
+code_wordwrap:"Automatische terugloop",\r
+colorpicker_title:"Kleuren",\r
+colorpicker_picker_tab:"Alle kleuren",\r
+colorpicker_picker_title:"Alle kleuren",\r
+colorpicker_palette_tab:"Palet",\r
+colorpicker_palette_title:"Paletkleuren",\r
+colorpicker_named_tab:"Benoemd",\r
+colorpicker_named_title:"Benoemde kleuren",\r
+colorpicker_color:"Kleur:",\r
+colorpicker_name:"Naam:",\r
+charmap_title:"Symbolen",\r
+image_title:"Afbeelding invoegen/bewerken",\r
+image_src:"Bestand/URL",\r
+image_alt:"Beschrijving",\r
+image_list:"Lijst",\r
+image_border:"Rand",\r
+image_dimensions:"Afmetingen",\r
+image_vspace:"Verticale ruimte",\r
+image_hspace:"Horizontale ruimte",\r
+image_align:"Uitlijning",\r
+image_align_baseline:"Basislijn",\r
+image_align_top:"Boven",\r
+image_align_middle:"Midden",\r
+image_align_bottom:"Onder",\r
+image_align_texttop:"Bovenkant tekst",\r
+image_align_textbottom:"Onderkant tekst",\r
+image_align_left:"Links",\r
+image_align_right:"Rechts",\r
+link_title:"Link invoegen/bewerken",\r
+link_url:"URL",\r
+link_target:"Doel",\r
+link_target_same:"Link in hetzelfde venster openen",\r
+link_target_blank:"Link in een nieuw venster openen",\r
+link_titlefield:"Titel",\r
+link_is_email:"De ingevoerde URL lijkt op een e-mailadres. Wilt u de vereiste mailto: tekst voorvoegen?",\r
+link_is_external:"De ingevoerde URL lijkt op een externe link. Wilt u de vereiste http:// tekst voorvoegen?",\r
+link_list:"Link lijst"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nn.standard',{\r
+style_select:"Lang",\r
+font_size:"Skriftstorleik",\r
+fontdefault:"Skriftfamilie",\r
+block:"Format",\r
+paragraph:"Avsnitt",\r
+div:"Div",\r
+address:"Adresse",\r
+pre:"Pre-formatert",\r
+h1:"Overskrift 1",\r
+h2:"Overskrift 2",\r
+h3:"Overskrift 3",\r
+h4:"Overskrift 4",\r
+h5:"Overskrift 5",\r
+h6:"Overskrift 6",\r
+blockquote:"Innrykk",\r
+code:"Kode",\r
+samp:"Kodeeksempel",\r
+dt:"Definisjonsuttrykk",\r
+dd:"Definisjonsbeskrivelse",\r
+bold_desc:"Feit",\r
+italic_desc:"Kursiv",\r
+underline_desc:"Understreking",\r
+striketrough_desc:"Gjennomstreking",\r
+justifyleft_desc:"Venstrejustert",\r
+justifycenter_desc:"Midtstilt",\r
+justifyright_desc:"H\u00F8grejustert",\r
+justifyfull_desc:"Blokkjustert",\r
+bullist_desc:"Punktliste",\r
+numlist_desc:"Nummerliste",\r
+outdent_desc:"Reduser innrykk",\r
+indent_desc:"Auk innrykk",\r
+undo_desc:"Angre",\r
+redo_desc:"Gjer om",\r
+link_desc:"Set inn / endre lenkje",\r
+unlink_desc:"Fjern lenkje",\r
+image_desc:"Set inn / endre bilete",\r
+cleanup_desc:"Rens grisete kode",\r
+code_desc:"Redigere HTML-koden",\r
+sub_desc:"Senka skrift",\r
+sup_desc:"Heva skrift",\r
+hr_desc:"Set inn horisontal linje",\r
+removeformat_desc:"Fjern formatering",\r
+custom1_desc:"Din spesialfunksjondefinisjon her",\r
+forecolor_desc:"Vel skriftfarge",\r
+backcolor_desc:"Vel bakgrunnsfarge",\r
+charmap_desc:"Set inn spesialteikn",\r
+visualaid_desc:"Sl\u00E5 av/p\u00E5 usynlige element",\r
+anchor_desc:"Set inn / endre anker",\r
+cut_desc:"Klipp ut",\r
+copy_desc:"Kopier",\r
+paste_desc:"Lim inn",\r
+image_props_desc:"Eigenskaper for bilete",\r
+newdocument_desc:"Nytt dokument",\r
+help_desc:"Hjelp",\r
+blockquote_desc:"Innrykk",\r
+clipboard_msg:"Klipp ut / Kopier /Lim inn fungerer ikkje i Mozilla og Firefox. \r\n Vil du vite meir om dette?",\r
+path:"Sti",\r
+newdocument:"Er du sikker p\u00E5 at du vil slette alt innhald?",\r
+toolbar_focus:"Skift til verktyknappar - Alt+Q, Skift til editor - Alt-Z, Skift til elementsti - Alt-",\r
+more_colors:"Fleire fargar"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nn.standard_dlg',{\r
+about_title:"Om TinyMCE",\r
+about_general:"Om",\r
+about_help:"Hjelp",\r
+about_license:"Lisens",\r
+about_plugins:"Programtillegg",\r
+about_plugin:"Programtillegg",\r
+about_author:"Utviklar",\r
+about_version:"Versjon",\r
+about_loaded:"Lasta programtillegg",\r
+anchor_title:"Set inn / endre anker",\r
+anchor_name:"Ankernamn",\r
+code_title:"HTML-editor",\r
+code_wordwrap:"Tekstbryting",\r
+colorpicker_title:"Vel ein farge",\r
+colorpicker_picker_tab:"Vel farge",\r
+colorpicker_picker_title:"Fargeval",\r
+colorpicker_palette_tab:"Palett",\r
+colorpicker_palette_title:"Palettfargar",\r
+colorpicker_named_tab:"Namneval",\r
+colorpicker_named_title:"Fargenamn",\r
+colorpicker_color:"Farge:",\r
+colorpicker_name:"Namn:",\r
+charmap_title:"Vel spesialteikn",\r
+image_title:"Set inn / endre bilete",\r
+image_src:"Bilete-URL",\r
+image_alt:"Bileteomtale",\r
+image_list:"Liste med bilete",\r
+image_border:"Ramme",\r
+image_dimensions:"Dimensjonar",\r
+image_vspace:"Vertikal avstand",\r
+image_hspace:"Horisontal avstand",\r
+image_align:"Justering",\r
+image_align_baseline:"Botnlinje",\r
+image_align_top:"Topp",\r
+image_align_middle:"Midtstilt",\r
+image_align_bottom:"Botn",\r
+image_align_texttop:"Teksttopp",\r
+image_align_textbottom:"Tekstbotn",\r
+image_align_left:"Venstre",\r
+image_align_right:"H\u00F8gre",\r
+link_title:"Set inn / endre lenkje",\r
+link_url:"Lenkje-URL",\r
+link_target:"Vindauge",\r
+link_target_same:"Opne i dette vindauget",\r
+link_target_blank:"Opne i nytt vindauget",\r
+link_titlefield:"Tittel",\r
+link_is_email:"Nettadressa du skreiv inn ser ut til \u00E5 vere ein e-postadresse. \u00D8nskjer du \u00E5 leggje til det obligatoriske mailto:-prefikset?",\r
+link_is_external:"Nettadressa du skreiv inn ser ut til \u00E5 vere ein ekstern nettadresse. \u00D8nskjer du \u00E5 leggje til det obligatoriske http://-prefikset?",\r
+link_list:"Lenkjeliste"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pl.standard',{\r
+style_select:"Lang",\r
+font_size:"Rozmiar czcionki",\r
+fontdefault:"Rodzaj czcionki",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adres",\r
+pre:"Czcionka o sta\u0142ej szeroko\u015Bci",\r
+h1:"Nag\u0142\u00F3wek 1",\r
+h2:"Nag\u0142\u00F3wek 2",\r
+h3:"Nag\u0142\u00F3wek 3",\r
+h4:"Nag\u0142\u00F3wek 4",\r
+h5:"Nag\u0142\u00F3wek 5",\r
+h6:"Nag\u0142\u00F3wek 6",\r
+blockquote:"Wydzielony blok",\r
+code:"Kod",\r
+samp:"Pr\u00F3bka kodu",\r
+dt:"Definicja terminu ",\r
+dd:"Opis terminu",\r
+bold_desc:"Pogrubienie (Ctrl+B)",\r
+italic_desc:"Kursywa (Ctrl+I)",\r
+underline_desc:"Podkre\u015Blenie (Ctrl+U)",\r
+striketrough_desc:"Przekre\u015Blenia",\r
+justifyleft_desc:"Wyr\u00F3wnaj do lewej",\r
+justifycenter_desc:"Wycentruj",\r
+justifyright_desc:"Wyr\u00F3wnaj do prawej",\r
+justifyfull_desc:"R\u00F3wnanie do prawej i lewej",\r
+bullist_desc:"Lista nienumerowana",\r
+numlist_desc:"Lista numerowana",\r
+outdent_desc:"Cofnij wci\u0119cie",\r
+indent_desc:"Wci\u0119cie",\r
+undo_desc:"Cofnij (Ctrl+Z)",\r
+redo_desc:"Pon\u00F3w (Ctrl+Y)",\r
+link_desc:"Wstaw/edytuj link",\r
+unlink_desc:"Usu\u0144 link",\r
+image_desc:"Wstaw/edytuj obraz",\r
+cleanup_desc:"Wyczy\u015B\u0107 nieuporz\u0105dkowany kod",\r
+code_desc:"Edytuj \u017Ar\u00F3d\u0142o HTML",\r
+sub_desc:"Indeks dolny",\r
+sup_desc:"Indeks g\u00F3rny",\r
+hr_desc:"Wstaw poziom\u0105 lini\u0119",\r
+removeformat_desc:"Usu\u0144 formatowanie",\r
+custom1_desc:"Tw\u00F3j niestandardowy opis tutaj",\r
+forecolor_desc:"Wybierz kolor tekstu",\r
+backcolor_desc:"Wybierz kolor t\u0142a",\r
+charmap_desc:"Wstaw niestandardowy znak",\r
+visualaid_desc:"Toggle guidelines/niewidzialne elementy",\r
+anchor_desc:"Wstaw/edytuj anchor",\r
+cut_desc:"Wytnij",\r
+copy_desc:"Kopiuj",\r
+paste_desc:"Wklej",\r
+image_props_desc:"W\u0142a\u015Bciwo\u015Bci obrazka",\r
+newdocument_desc:"Nowy dokument",\r
+help_desc:"Pomoc",\r
+blockquote_desc:"Blok cytatu",\r
+clipboard_msg:"Wtnij/Kopiuj/Wklej nie jest dost\u0119pne w Mozilla and Firefox.\r\nCzy chcesz wi\u0119cej informacji o tym problemie?",\r
+path:"\u015Acie\u017Cka",\r
+newdocument:"Czy jeste\u015B pewnien, ze chcesz wyczy\u015Bci\u0107 ca\u0142\u0105 zawarto\u015B\u0107?",\r
+toolbar_focus:"Przeskocz do przycisk\u00F3w narz\u0119dzi - Alt+Q, Przeskocz do edytora - Alt-Z, Przeskocz do elementu \u015Bcie\u017Cki - Alt-X",\r
+more_colors:"Wi\u0119cej kolor\u00F3w"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pl.standard_dlg',{\r
+about_title:"O TinyMCE",\r
+about_general:"O TinyMCE",\r
+about_help:"Pomoc",\r
+about_license:"Licencja",\r
+about_plugins:"Wtyczki",\r
+about_plugin:"Wtyczka",\r
+about_author:"Autor",\r
+about_version:"Wersja",\r
+about_loaded:"Za\u0142adowane wtyczki",\r
+anchor_title:"Wstaw/Edytuj zakotwiczenie",\r
+anchor_name:"Nazwa zakotwiczenia",\r
+code_title:"Edytor \u017Ar\u00F3d\u0142a HTML",\r
+code_wordwrap:"Zawijanie s\u0142\u00F3w",\r
+colorpicker_title:"Wybierz kolor",\r
+colorpicker_picker_tab:"Wybieranie",\r
+colorpicker_picker_title:"Wybieranie kolor\u00F3w",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta kolor\u00F3w",\r
+colorpicker_named_tab:"Nazwane",\r
+colorpicker_named_title:"Nazwane kolory",\r
+colorpicker_color:"Kolor:",\r
+colorpicker_name:"Nazwa:",\r
+charmap_title:"Wybierz niestandardowy znak",\r
+image_title:"Wstaw/Edytuj obraz",\r
+image_src:"URL obrazka",\r
+image_alt:"Opis obrazka",\r
+image_list:"Lista obrazk\u00F3w",\r
+image_border:"Ramka",\r
+image_dimensions:"Rozmiary",\r
+image_vspace:"Pionowy odst\u0119p",\r
+image_hspace:"Poziomy odst\u0119p",\r
+image_align:"Wyr\u00F3wnanie",\r
+image_align_baseline:"Linia bazowa",\r
+image_align_top:"G\u00F3ra",\r
+image_align_middle:"\u015Arodek",\r
+image_align_bottom:"Dolny",\r
+image_align_texttop:"G\u00F3rny tekst",\r
+image_align_textbottom:"Dolny tekst",\r
+image_align_left:"Lewy",\r
+image_align_right:"Prawy",\r
+link_title:"Wstaw/edytuj link",\r
+link_url:"Link URL",\r
+link_target:"Celt",\r
+link_target_same:"Otw\u00F3rz link w tym samym oknie",\r
+link_target_blank:"Otw\u00F3rz link w nowym oknie",\r
+link_titlefield:"Tytu\u0142",\r
+link_is_email:"URL kt\u00F3ry otworzy\u0142e\u015B wydaje si\u0119 by\u0107 adresem mailowym, czy chcesz doda\u0107 odpowiedni prefix mailto: ?",\r
+link_is_external:"URL kt\u00F3ry otworzy\u0142e\u015B wydaje si\u0119 by\u0107 zewn\u0119trznym linkiem, czy chcesz doda\u0107 wymagany prefix http:// ?",\r
+link_list:"Lista link\u00F3w"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pt.standard',{\r
+style_select:"Lang",\r
+font_size:"Tamanho",\r
+fontdefault:"Fam\u00EDlia(Fonte)",\r
+block:"Formata\u00E7\u00E3o",\r
+paragraph:"Par\u00E1grafo",\r
+div:"Div",\r
+address:"Endere\u00E7o",\r
+pre:"Pr\u00E9-formatado",\r
+h1:"Cabe\u00E7alho 1",\r
+h2:"Cabe\u00E7alho 2",\r
+h3:"Cabe\u00E7alho 3",\r
+h4:"Cabe\u00E7alho 4",\r
+h5:"Cabe\u00E7alho 5",\r
+h6:"Cabe\u00E7alho 6",\r
+blockquote:"Cita\u00E7\u00E3o em bloco",\r
+code:"C\u00F3digo",\r
+samp:"Amostra de c\u00F3digo",\r
+dt:"Termo de defini\u00E7\u00E3o",\r
+dd:"Descri\u00E7\u00E3o de defini\u00E7\u00E3o",\r
+bold_desc:"Negrito (Ctrl+B)",\r
+italic_desc:"It\u00E1lico (Ctrl+I)",\r
+underline_desc:"Sublinhado (Ctrl+U)",\r
+striketrough_desc:"Texto Riscado",\r
+justifyleft_desc:"Alinhar \u00E0 esquerda",\r
+justifycenter_desc:"Centralizar",\r
+justifyright_desc:"Alinhar \u00E0 direita",\r
+justifyfull_desc:"Justificar",\r
+bullist_desc:"Marcadores",\r
+numlist_desc:"Numera\u00E7\u00E3o",\r
+outdent_desc:"Diminuir recuo",\r
+indent_desc:"Aumentar recuo",\r
+undo_desc:"Desfazer (Ctrl+Z)",\r
+redo_desc:"Refazer (Ctrl+Y)",\r
+link_desc:"Inserir/editar hyperlink",\r
+unlink_desc:"Remover hyperlink",\r
+image_desc:"Inserir/editar imagem",\r
+cleanup_desc:"Limpar c\u00F3digo incorreto",\r
+code_desc:"Editar c\u00F3digo de fonte",\r
+sub_desc:"Subscrito",\r
+sup_desc:"Superscrito",\r
+hr_desc:"Inserir separador horizontal",\r
+removeformat_desc:"Remover formata\u00E7\u00E3o",\r
+custom1_desc:"Sua descri\u00E7\u00E3o personalizada aqui",\r
+forecolor_desc:"Selecionar cor do texto",\r
+backcolor_desc:"Selecionar cor de fundo",\r
+charmap_desc:"Inserir caracteres especiais",\r
+visualaid_desc:"Alternar guias/elementos invis\u00EDveis",\r
+anchor_desc:"Inserir/editar \u00E2ncora",\r
+cut_desc:"Cortar",\r
+copy_desc:"Copiar",\r
+paste_desc:"Colar",\r
+image_props_desc:"Propriedades de imagem",\r
+newdocument_desc:"Novo documento",\r
+help_desc:"Ajuda",\r
+blockquote_desc:"Cita\u00E7\u00E3o em bloco",\r
+clipboard_msg:"Copiar/cortar/colar n\u00E3o est\u00E1 dispon\u00EDvel em Mozilla e Firefox. Deseja mais informa\u00E7\u00F5es sobre isso?",\r
+path:"Endere\u00E7o",\r
+newdocument:"Tem certeza de que deseja apagar tudo?",\r
+toolbar_focus:"Ir para ferramentas - Alt+Q, Ir para o editor - Alt-Z, Ir para endere\u00E7o do elemento - Alt-X",\r
+more_colors:"Mais cores"\r
+});
\ No newline at end of file
--- /dev/null
+/**
+ * pt_br lang variables
+ * Brazilian Portuguese
+ *
+ * Authors : ????
+ * Revision and modifications:
+ * Marcio Barbosa (mpg) <mpg@mpg.com.br>
+ * Last Updated : November 26, 2005
+ * TinyMCE Version : 2.0RC4
+ */
+tinyMCE.addToLang('',{
+theme_style_select : 'Estilos',
+theme_code_desc : 'Editar Código HTML',
+theme_code_title : 'Editor de Código HTML',
+theme_code_wordwrap : 'Quebrar Linhas',
+theme_sub_desc : 'Subscrito',
+theme_sup_desc : 'Subrescrito',
+theme_hr_desc : 'Inserir linha horizontal',
+theme_removeformat_desc : 'Remover formatação',
+theme_custom1_desc : 'Sua descrição personalizada aqui',
+insert_image_border : 'Borda',
+insert_image_dimensions : 'Dimensões',
+insert_image_vspace : 'Espaço Vertical',
+insert_image_hspace : 'Espaço Horizontal',
+insert_image_align : 'Alinhamento',
+insert_image_align_default : 'Padrão',
+insert_image_align_baseline : 'Linha base',
+insert_image_align_top : 'Topo',
+insert_image_align_middle : 'Centro',
+insert_image_align_bottom : 'Fundo',
+insert_image_align_texttop : 'Texto ao Topo',
+insert_image_align_absmiddle : 'Centro Absoluto',
+insert_image_align_absbottom : 'Fundo Absoluto',
+insert_image_align_left : 'Esquerda',
+insert_image_align_right : 'Direita',
+theme_font_size : '-- Corpo --',
+theme_fontdefault : '-- Tipo de Fonte --',
+theme_block : '-- Formato --',
+theme_paragraph : 'Parágrafo',
+theme_div : 'Div',
+theme_address : 'Endereço',
+theme_pre : 'Pré-formatado',
+theme_h1 : 'Cabeçalho 1',
+theme_h2 : 'Cabeçalho 2',
+theme_h3 : 'Cabeçalho 3',
+theme_h4 : 'Cabeçalho 4',
+theme_h5 : 'Cabeçalho 5',
+theme_h6 : 'Cabeçalho 6',
+theme_colorpicker_title : 'Selecionar côr',
+theme_colorpicker_apply : 'Aplicar',
+theme_forecolor_desc : 'Selecionar côr do texto',
+theme_backcolor_desc : 'Selecionar côr de fundo',
+theme_charmap_title : 'Selecionar caracter especial',
+theme_charmap_desc : 'Inserir caracter especial',
+theme_charmap_alpha_desc : 'Caracteres alfabéticos',
+theme_charmap_arrows_title : 'Flechas',
+theme_charmap_arrows_desc : 'Caracteres de flechas',
+theme_charmap_greek_title : 'Gregos',
+theme_charmap_greek_desc : 'Caracteres Gregos',
+theme_charmap_math_title : 'Mathematicos',
+theme_charmap_math_desc : 'Caracteres mathematicos',
+theme_charmap_misc_title : 'Diversos',
+theme_charmap_misc_desc : 'Caracteres diversos',
+theme_charmap_money_title : 'Moedas',
+theme_charmap_money_desc : 'Caracteres de moedas',
+theme_charmap_quotaion_title : 'Apóstrofes',
+theme_charmap_quotaion_desc : 'Caracteres de Apóstrofe',
+theme_visualaid_desc : 'Trocar as linhas de ajuda por elementos invisíveis',
+insert_anchor_title : 'Inserir/editar âncora',
+insert_anchor_name : 'Nome da âncora',
+theme_anchor_desc : 'Inserir/editar âncora',
+theme_insert_link_titlefield : 'Título',
+theme_clipboard_msg : 'Não se pode utiliza os comando de Copiar / Cortar / Colar no Mozilla e Firefox.\r\nUse o teclado para Copiar (Ctrl+C) / Cortar (Ctrl+X) / Colar (Ctrl+V)\r\nQuer obter mais informação?',
+theme_path : 'Rota',
+cut_desc : 'Cortar (Ctrl+X)',
+copy_desc : 'Copiar (Ctrl+C)',
+paste_desc : 'Colar (Ctrl+V)',
+link_list : 'Lista de links',
+image_list : 'Lista de imagens',
+browse : 'Navegar',
+image_props_desc : 'Propriedades da imagem',
+newdocument_desc : 'Novo documento',
+class_name : 'Classe',
+newdocument : 'Tem certesa que deseja apagar todo o conteúdo?',
+about_title : 'Sobre o TinyMCE',
+about : 'Sobre',
+license : 'Licença',
+plugins : 'Plugins',
+plugin : 'Plugin',
+author : 'Autor',
+version : 'Versão',
+loaded_plugins : 'Plugins carregados',
+help : 'Ajuda',
+not_set : '-- Por padrão --',
+close : 'Fechar',
+toolbar_focus : 'Ir para a barra de ferramentas - Alt+Q, Ir para o editor - Alt+Z, Ir para o elemento de destino - Alt+X',
+theme_visualaid_desc : 'Tornar linhas visíveis/invisíveis',
+insert_anchor_title : 'Inserir/editar âncora',
+insert_anchor_name : 'Nome da âncora',
+theme_anchor_desc : 'Inserir/editar âncora',
+theme_insert_link_titlefield : 'Título',
+theme_clipboard_msg : 'Copiar/Recortar/Colar não é permitido no Mozilla e Firefox.\nQuer mais informações sobre isso?',
+theme_path : 'Caminho',
+cut_desc : 'Recortar',
+copy_desc : 'Copiar',
+paste_desc : 'Colar',
+link_list : 'Lista de Links',
+image_list : 'Lista de Imagens',
+browse : 'Navegar',
+image_props_desc : 'Propriedades da Imagem',
+newdocument_desc : 'Novo Documento',
+class_name : 'Classe',
+newdocument : 'Tem certeza que deseja limpar todo o conteúdo?',
+theme_advanced_anchor_delta_width : 20
+});
--- /dev/null
+tinyMCE.addI18n('pt.standard_dlg',{\r
+about_title:"Sobre o TinyMCE",\r
+about_general:"Sobre",\r
+about_help:"Ajuda",\r
+about_license:"Licen\u00E7a",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Autor",\r
+about_version:"Vers\u00E3o",\r
+about_loaded:"Plugins Instalados",\r
+anchor_title:"Inserir/editar \u00E2ncora",\r
+anchor_name:"Nome da \u00E2ncora",\r
+code_title:"Editor HTML",\r
+code_wordwrap:"Quebra autom\u00E1tica de linha",\r
+colorpicker_title:"Selecione uma cor",\r
+colorpicker_picker_tab:"Editor",\r
+colorpicker_picker_title:"Editor de Cores",\r
+colorpicker_palette_tab:"Palheta",\r
+colorpicker_palette_title:"Palheta de Cores",\r
+colorpicker_named_tab:"Personalizadas",\r
+colorpicker_named_title:"Cores Personalizadas",\r
+colorpicker_color:"Cor:",\r
+colorpicker_name:"Nome:",\r
+charmap_title:"Selecionar caracteres personalizados",\r
+image_title:"Inserir/editar imagem",\r
+image_src:"Endere\u00E7o da imagem",\r
+image_alt:"Descri\u00E7\u00E3o da imagem",\r
+image_list:"Lista de imagens",\r
+image_border:"Borda",\r
+image_dimensions:"Dimens\u00F5es",\r
+image_vspace:"Espa\u00E7o Vertical",\r
+image_hspace:"Espa\u00E7o Horizontal",\r
+image_align:"Alinhamento",\r
+image_align_baseline:"Sobre a linha de texto",\r
+image_align_top:"Topo",\r
+image_align_middle:"Meio",\r
+image_align_bottom:"Embaixo",\r
+image_align_texttop:"Topo do texto",\r
+image_align_textbottom:"Base do texto",\r
+image_align_left:"Esquerda",\r
+image_align_right:"Direita",\r
+link_title:"Inserir/editar hyperlink",\r
+link_url:"URL do hyperink",\r
+link_target:"Alvo",\r
+link_target_same:"Abrir hyperlink na mesma janela",\r
+link_target_blank:"Abrir hyperlink em nova janela",\r
+link_titlefield:"T\u00EDtulo",\r
+link_is_email:"A URL digitada parece ser um endere\u00E7o de e-mail. Deseja acrescentar o (necess\u00E1rio) prefixo mailto:?",\r
+link_is_external:"A URL digitada parece conduzir a um link externo. Deseja acrescentar o (necess\u00E1rio) prefixo http://?",\r
+link_list:"Lista de Links"\r
+});
\ No newline at end of file
--- /dev/null
+Theme specific language packs.
+
+The language pack codes are based on ISO-639-2
+http://www.loc.gov/standards/iso639-2/englangn.html
--- /dev/null
+tinyMCE.addI18n('ru.standard',{\r
+style_select:"Lang",\r
+font_size:"\u0420\u0430\u0437\u043C\u0435\u0440 \u0441\u0438\u043C\u0432\u043E\u043B\u0430",\r
+fontdefault:"\u0428\u0440\u0438\u0444\u0442",\r
+block:"\u0424\u043E\u0440\u043C\u0430\u0442",\r
+paragraph:"\u041F\u0430\u0440\u0430\u0433\u0440\u0430\u0444",\r
+div:"\u0411\u043B\u043E\u043A (div)",\r
+address:"\u0410\u0434\u0440\u0435\u0441",\r
+pre:"\u0412 \u0437\u0430\u0434\u0430\u043D\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435",\r
+h1:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 1",\r
+h2:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 2",\r
+h3:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 3",\r
+h4:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 4",\r
+h5:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 5",\r
+h6:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 6",\r
+blockquote:"\u0426\u0438\u0442\u0430\u0442\u0430",\r
+code:"\u041A\u043E\u0434",\r
+samp:"\u041F\u0440\u0438\u043C\u0435\u0440 \u043A\u043E\u0434\u0430",\r
+dt:"\u0422\u0435\u0440\u043C\u0438\u043D",\r
+dd:"\u0423\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C",\r
+bold_desc:"\u041F\u043E\u043B\u0443\u0436\u0438\u0440\u043D\u044B\u0439 (Ctrl+B)",\r
+italic_desc:"\u041A\u0443\u0440\u0441\u0438\u0432 (Ctrl+I)",\r
+underline_desc:"\u041F\u043E\u0434\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u043D\u0438\u0435 (Ctrl+U)",\r
+striketrough_desc:"\u0417\u0430\u0447\u0435\u0440\u043A\u0438\u0432\u0430\u043D\u0438\u0435",\r
+justifyleft_desc:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u043F\u043E \u043B\u0435\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+justifycenter_desc:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u043F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+justifyright_desc:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u043F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+justifyfull_desc:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u043F\u043E \u0448\u0438\u0440\u0438\u043D\u0435",\r
+bullist_desc:"\u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A",\r
+numlist_desc:"\u041D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A",\r
+outdent_desc:"\u0412\u044B\u0441\u0442\u0443\u043F",\r
+indent_desc:"\u041E\u0442\u0441\u0442\u0443\u043F",\r
+undo_desc:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C (Ctrl+Z)",\r
+redo_desc:"\u0412\u0435\u0440\u043D\u0443\u0442\u044C (Ctrl+Y)",\r
+link_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443",\r
+unlink_desc:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443",\r
+image_desc:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C/\u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435",\r
+cleanup_desc:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0438\u0437\u0431\u044B\u0442\u043E\u0447\u043D\u044B\u0439 \u043A\u043E\u0434",\r
+code_desc:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C HTML \u043A\u043E\u0434",\r
+sub_desc:"\u041D\u0438\u0436\u043D\u0438\u0439 \u0438\u043D\u0434\u0435\u043A\u0441",\r
+sup_desc:"\u0412\u0435\u0440\u0445\u043D\u0438\u0439 \u0438\u043D\u0434\u0435\u043A\u0441",\r
+hr_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C",\r
+removeformat_desc:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",\r
+custom1_desc:"\u0412\u0430\u0448 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439",\r
+forecolor_desc:"\u0426\u0432\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u0430",\r
+backcolor_desc:"\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430",\r
+charmap_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0438\u043C\u0432\u043E\u043B",\r
+visualaid_desc:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435 \u043B\u0438\u043D\u0435\u0439\u043A\u0438/\u043D\u0435\u0432\u0438\u0434\u0438\u043C\u044B\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",\r
+anchor_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u044F\u043A\u043E\u0440\u044C",\r
+cut_desc:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C",\r
+copy_desc:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",\r
+paste_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C",\r
+image_props_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",\r
+newdocument_desc:"\u041D\u043E\u0432\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442",\r
+help_desc:"\u041F\u043E\u043C\u043E\u0449\u044C",\r
+blockquote_desc:"\u0426\u0438\u0442\u0430\u0442\u0430",\r
+clipboard_msg:"\u0424\u0443\u043D\u043A\u0446\u0438\u0438 \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C/\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C/\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0432 Mozilla \u0438 Firefox.\r\n\u0425\u043E\u0442\u0438\u0442\u0435 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0431\u043E\u043B\u0435\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0443\u044E \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u043E\u0431 \u044D\u0442\u043E\u0439 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0435?",\r
+path:"\u041F\u0443\u0442\u044C",\r
+newdocument:"\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0435?",\r
+toolbar_focus:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043A\u043D\u043E\u043F\u043A\u0430\u043C \u043D\u0430 \u043F\u0430\u043D\u0435\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 - Alt+Q, \u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0443 - Alt-Z, \u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043F\u0443\u0442\u0438 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 - Alt-X",\r
+more_colors:"\u0411\u043E\u043B\u044C\u0448\u0435 \u0446\u0432\u0435\u0442\u043E\u0432"\r
+});
\ No newline at end of file
--- /dev/null
+// Russian lang variables KOI8-R
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- óÔÉÌÉ --',
+theme_code_desc : 'òÅÄÁËÔÉÒÏ×ÁÔØ HTML ËÏÄÙ',
+theme_code_title : 'òÅÄÁËÔÏÒ HTML ËÏÄÏ×',
+theme_code_wordwrap : 'ðÅÒÅÎÏÓ ÐÏ ÓÌÏ×ÁÍ',
+theme_sub_desc : 'îÉÖÎÉÊ ÉÎÄÅËÓ',
+theme_sup_desc : '÷ÅÒÈÎÉÊ ÉÎÄÅËÓ',
+theme_hr_desc : '÷ÓÔÁ×ÉÔØ ÇÏÒÉÚÏÎÔÁÌØÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ',
+theme_removeformat_desc : 'õÂÒÁÔØ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÅ',
+theme_custom1_desc : '÷ÁÛÅ ÐÒÏÉÚ×ÏÌØÎÏÅ ÏÐÉÓÁÎÉÅ',
+insert_image_border : 'òÁÍËÁ',
+insert_image_dimensions : 'òÁÚÍÅÒÙ',
+insert_image_vspace : '÷ÅÒÔÉËÁÌØÎÙÊ ÏÔÓÔÕÐ',
+insert_image_hspace : 'çÏÒÉÚÏÎÔÁÌØÎÙÊ ÏÔÓÔÕÐ',
+insert_image_align : '÷ÙÒÁ×ÎÉ×ÁÎÉÅ',
+insert_image_align_default : '-- îÅ ÚÁÄÁÎÏ --',
+insert_image_align_baseline : 'ðÏ ÂÁÚÏ×ÏÊ ÌÉÎÉÉ',
+insert_image_align_top : 'ðÏ ×ÅÒÈÕ',
+insert_image_align_middle : 'ðÏÓÒÅÄÉÎÅ',
+insert_image_align_bottom : 'ðÏ ÎÉÚÕ',
+insert_image_align_texttop : 'ðÏ ×ÅÒÈÕ ÔÅËÓÔÁ',
+insert_image_align_absmiddle : 'áÂÓÏÌÀÔÎÏ ÐÏÓÒÅÄÉÎÅ',
+insert_image_align_absbottom : 'áÂÓÏÌÀÔÎÏ Ó×ÅÒÈÕ',
+insert_image_align_left : '÷ÌÅ×Ï',
+insert_image_align_right : '÷ÐÒÁ×Ï',
+theme_font_size : '-- òÁÚÍÅÒ ÛÒÉÆÔÁ --',
+theme_fontdefault : '-- óÅÍÅÊÓÔ×Ï ÛÒÉÆÔÏ× --',
+theme_block : '-- æÏÒÍÁÔ --',
+theme_paragraph : 'áÂÚÁÃ',
+theme_div : 'Div',
+theme_address : 'óÔÉÌØ ÁÄÒÅÓÁ',
+theme_pre : ':`ðÒÅÄ×ÁÒÉÔÅÌØÎÏ ÆÏÒÍÁÔÉÒÏ×ÁÎÎÙÊ',
+theme_h1 : 'úÁÇÏÌÏ×ÏË 1',
+theme_h2 : 'úÁÇÏÌÏ×ÏË 2',
+theme_h3 : 'úÁÇÏÌÏ×ÏË 3',
+theme_h4 : 'úÁÇÏÌÏ×ÏË 4',
+theme_h5 : 'úÁÇÏÌÏ×ÏË 5',
+theme_h6 : 'úÁÇÏÌÏ×ÏË 6',
+theme_colorpicker_title : '÷ÙÂÒÁÔØ Ã×ÅÔ',
+theme_colorpicker_apply : 'ðÒÉÍÅÎÉÔØ',
+theme_forecolor_desc : '÷ÙÂÒÁÔØ Ã×ÅÔ ÔÅËÓÔÁ',
+theme_backcolor_desc : '÷ÙÂÒÁÔØ Ã×ÅÔ ÆÏÎÁ',
+theme_charmap_title : '÷ÙÂÏÒ ÐÒÏÉÚ×ÏÌØÎÏÇÏ ÓÉÍ×ÏÌÁ',
+theme_charmap_desc : '÷ÓÔÁ×ÉÔØ ÐÒÏÉÚ×ÏÌØÎÙÊ ÓÉÍ×ÏÌ',
+theme_visualaid_desc : 'ðÏËÁÚÁÔØ ÇÒÁÎÉÃÙ ÓËÒÙÔÙÈ ÜÌÅÍÅÎÔÏ×',
+insert_anchor_title : '÷ÓÔÁ×ÉÔØ/ÒÅÄÁËÔÉÒÏ×ÁÔØ ÑËÏÒØ',
+insert_anchor_name : 'éÍÑ ÑËÏÒÑ',
+theme_anchor_desc : '÷ÓÔÁ×ÉÔØ/ÒÅÄÁËÔÉÒÏ×ÁÔØ ÑËÏÒØ',
+theme_insert_link_titlefield : 'úÁÇÏÌÏ×ÏË',
+theme_clipboard_msg : 'ëÏÐÉÒÏ×ÁÔØ/÷ÙÒÅÚÁÔØ/÷ÓÔÁ×ÉÔØ ÎÅÄÏÓÔÕÐÎÙ ÄÌÑ Mozilla É Firefox.\nèÏÔÉÔÅ ÕÚÎÁÔØ Ï ÜÔÏÍ ÐÏÄÒÏÂÎÅÅ?',
+theme_path : 'ðÕÔØ',
+cut_desc : '÷ÙÒÅÚÁÔØ',
+copy_desc : 'ëÏÐÉÒÏ×ÁÔØ',
+paste_desc : '÷ÓÔÁ×ÉÔØ',
+link_list : 'ðÅÒÅÞÁÎØ ÓÓÙÌÏË',
+image_list : 'ðÅÒÅÞÅÎØ ËÁÒÔÉÎÏË',
+browse : 'ðÏÄÏÂÒÁÔØ',
+image_props_desc : 'ó×ÏÊÓÔ×Á ËÁÒÔÉÎËÉ',
+newdocument_desc : 'îÏ×ÙÊ ÄÏËÕÍÅÎÔ',
+class_name : 'ëÌÁÓÓ',
+newdocument : '÷Ù Õ×ÅÒÅÎÙ, ÞÔÏ ÈÏÔÉÔÅ ÏÞÉÓÔÉÔØ ×Ó£ ÓÏÄÅÒÖÉÍÏÅ?',
+about_title : 'ï TinyMCE',
+about : 'ï TinyMCE',
+license : 'ìÉÃÅÎÚÉÑ',
+plugins : 'ðÌÁÇÉÎÙ',
+plugin : 'ðÌÁÇÉÎ',
+author : 'á×ÔÏÒ',
+version : '÷ÅÒÓÉÑ',
+loaded_plugins : 'úÁÇÒÕÖÅÎÎÙÅ ÐÌÁÇÉÎÙ',
+help : 'ðÏÍÏÝØ',
+not_set : '-- ÎÅ ÕÓÔÁÎÏ×ÌÅÎÏ --',
+close : 'úÁËÒÙÔØ',
+toolbar_focus : 'ðÅÒÅÍÅÓÔÉÔØ ÆÏËÕÓ ÎÁ ÐÁÎÅÌØ ÉÎÓÔÒÕÍÅÎÔÏ× - Alt+Q, ðÅÒÅÍÅÓÔÉÔØ ÆÏËÕÓ × ÒÅÄÁËÔÏÒ - Alt-Z, ðÅÒÅÍÅÓÔÉÔØ ÆÏËÕÓ ÎÁ ÜÌÅÍÅÎÔ ÐÕÔÉ - Alt-X'
+});
--- /dev/null
+// Russian lang variables UTF-8
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Стили --',
+theme_code_desc : 'Редактировать HTML коды',
+theme_code_title : 'Редактор HTML кодов',
+theme_code_wordwrap : 'Перенос по словам',
+theme_sub_desc : 'Нижний индекс',
+theme_sup_desc : 'Верхний индекс',
+theme_hr_desc : 'Вставить горизонтальный разделитель',
+theme_removeformat_desc : 'Убрать форматирование',
+theme_custom1_desc : 'Ваше произвольное описание',
+insert_image_border : 'Рамка',
+insert_image_dimensions : 'Размеры',
+insert_image_vspace : 'Вертикальный отступ',
+insert_image_hspace : 'Горизонтальный отступ',
+insert_image_align : 'Выравнивание',
+insert_image_align_default : '-- Не задано --',
+insert_image_align_baseline : 'По базовой линии',
+insert_image_align_top : 'По верху',
+insert_image_align_middle : 'Посредине',
+insert_image_align_bottom : 'По низу',
+insert_image_align_texttop : 'По верху текста',
+insert_image_align_absmiddle : 'Абсолютно посредине',
+insert_image_align_absbottom : 'Абсолютно сверху',
+insert_image_align_left : 'Влево',
+insert_image_align_right : 'Вправо',
+theme_font_size : '-- Размер шрифта --',
+theme_fontdefault : '-- Семейство шрифтов --',
+theme_block : '-- Формат --',
+theme_paragraph : 'Абзац',
+theme_div : 'Div',
+theme_address : 'Стиль адреса',
+theme_pre : ':`Предварительно форматированный',
+theme_h1 : 'Заголовок 1',
+theme_h2 : 'Заголовок 2',
+theme_h3 : 'Заголовок 3',
+theme_h4 : 'Заголовок 4',
+theme_h5 : 'Заголовок 5',
+theme_h6 : 'Заголовок 6',
+theme_colorpicker_title : 'Выбрать цвет',
+theme_colorpicker_apply : 'Применить',
+theme_forecolor_desc : 'Выбрать цвет текста',
+theme_backcolor_desc : 'Выбрать цвет фона',
+theme_charmap_title : 'Выбор произвольного символа',
+theme_charmap_desc : 'Вставить произвольный символ',
+theme_visualaid_desc : 'Показать границы скрытых элементов',
+insert_anchor_title : 'Вставить/редактировать якорь',
+insert_anchor_name : 'Имя якоря',
+theme_anchor_desc : 'Вставить/редактировать якорь',
+theme_insert_link_titlefield : 'Заголовок',
+theme_clipboard_msg : 'Копировать/Вырезать/Вставить недоступны для Mozilla и Firefox.\nХотите узнать об этом подробнее?',
+theme_path : 'Путь',
+cut_desc : 'Вырезать',
+copy_desc : 'Копировать',
+paste_desc : 'Вставить',
+link_list : 'Перечань ссылок',
+image_list : 'Перечень картинок',
+browse : 'Подобрать',
+image_props_desc : 'Свойства картинки',
+newdocument_desc : 'Новый документ',
+class_name : 'Класс',
+newdocument : 'Вы уверены, что хотите очистить всё содержимое?',
+about_title : 'О TinyMCE',
+about : 'О TinyMCE',
+license : 'Лицензия',
+plugins : 'Плагины',
+plugin : 'Плагин',
+author : 'Автор',
+version : 'Версия',
+loaded_plugins : 'Загруженные плагины',
+help : 'Помощь',
+not_set : '-- не установлено --',
+close : 'Закрыть',
+toolbar_focus : 'Переместить фокус на панель инструментов - Alt+Q, Переместить фокус в редактор - Alt-Z, Переместить фокус на элемент пути - Alt-X'
+});
--- /dev/null
+tinyMCE.addI18n('ru.standard_dlg',{\r
+about_title:"\u041E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 TinyMCE",\r
+about_general:"\u041E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435",\r
+about_help:"\u041F\u043E\u043C\u043E\u0449\u044C",\r
+about_license:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F",\r
+about_plugins:"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F",\r
+about_plugin:"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435",\r
+about_author:"\u0410\u0432\u0442\u043E\u0440",\r
+about_version:"\u0412\u0435\u0440\u0441\u0438\u044F",\r
+about_loaded:"\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F",\r
+anchor_title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u044F\u043A\u043E\u0440\u044C",\r
+anchor_name:"\u0418\u043C\u044F \u044F\u043A\u043E\u0440\u044F",\r
+code_title:"\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 HTML \u043A\u043E\u0434\u0430",\r
+code_wordwrap:"\u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u043F\u043E \u0441\u043B\u043E\u0432\u0430\u043C",\r
+colorpicker_title:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0446\u0432\u0435\u0442",\r
+colorpicker_picker_tab:"\u0421\u043F\u0435\u043A\u0442\u0440",\r
+colorpicker_palette_tab:"\u041F\u0430\u043B\u0438\u0442\u0440\u0430",\r
+colorpicker_named_title:"\u0418\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u0430",\r
+colorpicker_color:"\u0426\u0432\u0435\u0442:",\r
+colorpicker_name:"\u0418\u043C\u044F:",\r
+charmap_title:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+image_title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435",\r
+image_src:"\u0410\u0434\u0440\u0435\u0441 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",\r
+image_alt:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",\r
+image_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439",\r
+image_border:"\u0413\u0440\u0430\u043D\u0438\u0446\u0430",\r
+image_dimensions:"\u0420\u0430\u0437\u043C\u0435\u0440\u044B",\r
+image_vspace:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u043E\u0442\u0441\u0442\u0443\u043F",\r
+image_hspace:"\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0439 \u043E\u0442\u0441\u0442\u0443\u043F",\r
+image_align:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435",\r
+image_align_baseline:"\u041F\u043E \u0431\u0430\u0437\u043E\u0432\u043E\u0439 \u043B\u0438\u043D\u0438\u0438",\r
+image_align_top:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+image_align_middle:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+image_align_bottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+image_align_texttop:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E \u0442\u0435\u043A\u0441\u0442\u0430",\r
+image_align_textbottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E \u0442\u0435\u043A\u0441\u0442\u0430",\r
+image_align_left:"\u041F\u043E \u043B\u0435\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+image_align_right:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+link_title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443",\r
+link_url:"\u0410\u0434\u0440\u0435\u0441 \u0441\u0441\u044B\u043B\u043A\u0438",\r
+link_target:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435",\r
+link_target_same:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u0441 \u044D\u0442\u043E\u043C \u0436\u0435 \u043E\u043A\u043D\u0435",\r
+link_target_blank:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u0432 \u043D\u043E\u0432\u043E\u043C \u043E\u043A\u043D\u0435",\r
+link_titlefield:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A",\r
+link_is_email:"\u0412\u0432\u0435\u0434\u0435\u043D \u0430\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B. \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0439 \u043F\u0440\u0435\u0444\u0438\u043A\u0441 mailto:?",\r
+link_is_external:"\u0412\u0432\u0435\u0434\u0435\u043D \u0430\u0434\u0440\u0435\u0441 \u0432\u043D\u0435\u0448\u043D\u0435\u0439 \u0441\u0441\u044B\u043B\u043A\u0438. \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0439 \u043F\u0440\u0435\u0444\u0438\u043A\u0441 http://?",\r
+link_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0441\u0441\u044B\u043B\u043E\u043A"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('si.standard',{\r
+style_select:"Lang",\r
+font_size:"Font size",\r
+fontdefault:"Font family",\r
+block:"Format",\r
+paragraph:"Paragraph",\r
+div:"Div",\r
+address:"Address",\r
+pre:"Preformatted",\r
+h1:"Heading 1",\r
+h2:"Heading 2",\r
+h3:"Heading 3",\r
+h4:"Heading 4",\r
+h5:"Heading 5",\r
+h6:"Heading 6",\r
+blockquote:"Blockquote",\r
+code:"Code",\r
+samp:"Code sample",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"Bold (Ctrl+B)",\r
+italic_desc:"Italic (Ctrl+I)",\r
+underline_desc:"Underline (Ctrl+U)",\r
+striketrough_desc:"Strikethrough",\r
+justifyleft_desc:"Align left",\r
+justifycenter_desc:"Align center",\r
+justifyright_desc:"Align right",\r
+justifyfull_desc:"Align full",\r
+bullist_desc:"Unordered list",\r
+numlist_desc:"Ordered list",\r
+outdent_desc:"Outdent",\r
+indent_desc:"Indent",\r
+undo_desc:"Undo (Ctrl+Z)",\r
+redo_desc:"Redo (Ctrl+Y)",\r
+link_desc:"Insert/edit link",\r
+unlink_desc:"Unlink",\r
+image_desc:"Insert/edit image",\r
+cleanup_desc:"Cleanup messy code",\r
+code_desc:"Edit HTML Source",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Insert horizontal ruler",\r
+removeformat_desc:"Remove formatting",\r
+custom1_desc:"Your custom description here",\r
+forecolor_desc:"Select text color",\r
+backcolor_desc:"Select background color",\r
+charmap_desc:"Insert custom character",\r
+visualaid_desc:"Toggle guidelines/invisible elements",\r
+anchor_desc:"Insert/edit anchor",\r
+cut_desc:"Cut",\r
+copy_desc:"Copy",\r
+paste_desc:"Paste",\r
+image_props_desc:"Image properties",\r
+newdocument_desc:"New document",\r
+help_desc:"Help",\r
+blockquote_desc:"Blockquote",\r
+clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\r\nDo you want more information about this issue?",\r
+path:"Path",\r
+newdocument:"Are you sure you want clear all contents?",\r
+toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",\r
+more_colors:"More colors"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('si.standard_dlg',{\r
+about_title:"About TinyMCE",\r
+about_general:"About",\r
+about_help:"Help",\r
+about_license:"License",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Author",\r
+about_version:"Version",\r
+about_loaded:"Loaded plugins",\r
+anchor_title:"Insert/edit anchor",\r
+anchor_name:"Anchor name",\r
+code_title:"HTML Source Editor",\r
+code_wordwrap:"Word wrap",\r
+colorpicker_title:"Select a color",\r
+colorpicker_picker_tab:"Picker",\r
+colorpicker_picker_title:"Color picker",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Palette colors",\r
+colorpicker_named_tab:"Named",\r
+colorpicker_named_title:"Named colors",\r
+colorpicker_color:"Color:",\r
+colorpicker_name:"Name:",\r
+charmap_title:"Select custom character",\r
+image_title:"Insert/edit image",\r
+image_src:"Image URL",\r
+image_alt:"Image description",\r
+image_list:"Image list",\r
+image_border:"Border",\r
+image_dimensions:"Dimensions",\r
+image_vspace:"Vertical space",\r
+image_hspace:"Horizontal space",\r
+image_align:"Alignment",\r
+image_align_baseline:"Baseline",\r
+image_align_top:"Top",\r
+image_align_middle:"Middle",\r
+image_align_bottom:"Bottom",\r
+image_align_texttop:"Text top",\r
+image_align_textbottom:"Text bottom",\r
+image_align_left:"Left",\r
+image_align_right:"Right",\r
+link_title:"Insert/edit link",\r
+link_url:"Link URL",\r
+link_target:"Target",\r
+link_target_same:"Open link in the same window",\r
+link_target_blank:"Open link in a new window",\r
+link_titlefield:"Title",\r
+link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
+link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
+link_list:"Link list"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sk.standard',{\r
+style_select:"Lang",\r
+font_size:"- Ve\u013Ekos\u0165 p\u00EDsma -",\r
+fontdefault:"- Typ p\u00EDsma -",\r
+block:"- Form\u00E1tovanie -",\r
+paragraph:"Odstavec [p]",\r
+div:"Div",\r
+address:"Adresa [address]",\r
+pre:"Predform\u00E1t [pre]",\r
+h1:"Nadpis 1 [h1]",\r
+h2:"Nadpis 2 [h2]",\r
+h3:"Nadpis 3 [h3]",\r
+h4:"Nadpis 4 [h4]",\r
+h5:"Nadpis 5 [h5]",\r
+h6:"Nadpis 6 [h6]",\r
+blockquote:"Odsadenie",\r
+code:"K\u00F3d",\r
+samp:"Uk\u00E1\u017Eka k\u00F3du",\r
+dt:"Defin\u00EDcia podmienky",\r
+dd:"Defin\u00EDcia popisu",\r
+bold_desc:"Tu\u010Dn\u00FD text (Ctrl+B)",\r
+italic_desc:"\u0160ikm\u00FD text (kurziv\u00E1) (Ctrl+I)",\r
+underline_desc:"Pod\u010Diarknut\u00FD text (Ctrl+U)",\r
+striketrough_desc:"Pre\u0161krtnut\u00FD text",\r
+justifyleft_desc:"Zarovna\u0165 v\u013Eavo",\r
+justifycenter_desc:"Zarovna\u0165 na stred",\r
+justifyright_desc:"Zarovna\u0165 vpravo",\r
+justifyfull_desc:"Zarovna\u0165 do bloku",\r
+bullist_desc:"Zoznam s odr\u00E1\u017Ekami",\r
+numlist_desc:"\u010C\u00EDslovan\u00FD zoznam",\r
+outdent_desc:"Zmen\u0161i\u0165 odsadenie",\r
+indent_desc:"Zv\u00E4\u010D\u0161i\u0165 odsadenie",\r
+undo_desc:"Sp\u00E4\u0165 (Ctrl+Z)",\r
+redo_desc:"Znovu (Ctrl+Y)",\r
+link_desc:"Vlo\u017Ei\u0165/upravi\u0165 odkaz",\r
+unlink_desc:"Zru\u0161i\u0165 odkaz",\r
+image_desc:"Vlo\u017Ei\u0165/upravi\u0165 obr\u00E1zok",\r
+cleanup_desc:"Vy\u010Disti\u0165 neusporiadan\u00FD k\u00F3d",\r
+code_desc:"Zobrazi\u0165 HTML zdroj",\r
+sub_desc:"Doln\u00FD index",\r
+sup_desc:"Horn\u00FD index",\r
+hr_desc:"Vlo\u017Ei\u0165 vodorovn\u00FD odde\u013Eova\u010D",\r
+removeformat_desc:"Odstr\u00E1ni\u0165 form\u00E1tovanie",\r
+custom1_desc:"\u013Dubovoln\u00FD popisok",\r
+forecolor_desc:"Vyber farbu textu",\r
+backcolor_desc:"Vyber farbu pozadia",\r
+charmap_desc:"Insert custom character",\r
+visualaid_desc:"Zobrazi\u0165 pomocn\u00E9/nevidite\u013En\u00E9 prvky",\r
+anchor_desc:"Vlo\u017Ei\u0165/upravi\u0165 n\u00E1zov kotvy",\r
+cut_desc:"Vystrihn\u00FA\u0165",\r
+copy_desc:"Kop\u00EDrova\u0165",\r
+paste_desc:"Vlo\u017Ei\u0165",\r
+image_props_desc:"Vlastnosti obr\u00E1zka",\r
+newdocument_desc:"Nov\u00FD dokument",\r
+help_desc:"N\u00E1poveda",\r
+blockquote_desc:"Odsadenie bloku textu",\r
+clipboard_msg:"Funkcie Kop\u00EDrova\u0165/vysrihn\u00FA\u0165/vlo\u017Ei\u0165 nie su podporovan\u00E9 prehliada\u010Dmi Mozilla a Firefox.\nChcete viac inform\u00E1ci\u00ED o tomto probl\u00E9me?",\r
+path:"Cesta",\r
+newdocument:"Naozaj chce\u0161 vy\u010Disti\u0165 v\u0161etok obsah?",\r
+toolbar_focus:"Prejdi na n\u00E1strojov\u00E9 tla\u010Didl\u00E1 - Alt+Q, Prejdi na editor - Alt-Z, Prejdi na cestu elementov - Alt-X",\r
+more_colors:"Viac farieb"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sk.standard_dlg',{\r
+about_title:"O TinyMCE",\r
+about_general:"O Programe",\r
+about_help:"N\u00E1poveda",\r
+about_license:"Licencia",\r
+about_plugins:"Pluginy",\r
+about_plugin:"Plugin",\r
+about_author:"Autor",\r
+about_version:"Verzia",\r
+about_loaded:"Na\u010D\u00EDtan\u00E9 pluginy",\r
+anchor_title:"Vlo\u017Ei\u0165/upravi\u0165 n\u00E1zov kotvy",\r
+anchor_name:"N\u00E1zov kotvy",\r
+code_title:"Editor HTML k\u00F3du",\r
+code_wordwrap:"Zalamova\u0165 riadky",\r
+colorpicker_title:"Vyber farbu",\r
+colorpicker_picker_tab:"Mie\u0161a\u010D",\r
+colorpicker_picker_title:"Mie\u0161a\u010D farieb",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta farieb",\r
+colorpicker_named_tab:"N\u00E1zvoslovia",\r
+colorpicker_named_title:"N\u00E1zvy farieb",\r
+colorpicker_color:"Farba:",\r
+colorpicker_name:"N\u00E1zov:",\r
+charmap_title:"Vyber \u0161peci\u00E1lny znak",\r
+image_title:"Vlo\u017Ei\u0165/editova\u0165 obr\u00E1zok",\r
+image_src:"URL obr\u00E1zka",\r
+image_alt:"Popis obr\u00E1zku",\r
+image_list:"Zoznam obr\u00E1zkov",\r
+image_border:"Okraj",\r
+image_dimensions:"Rozmery",\r
+image_vspace:"Vertik\u00E1lna medzera",\r
+image_hspace:"Horizont\u00E1lna medzera",\r
+image_align:"Usporiadanie",\r
+image_align_baseline:"Z\u00E1klad\u0148a",\r
+image_align_top:"Hore",\r
+image_align_middle:"Uprostred",\r
+image_align_bottom:"Dolu",\r
+image_align_texttop:"Text hore",\r
+image_align_textbottom:"Text dolu",\r
+image_align_left:"V\u013Eavo",\r
+image_align_right:"Vpravo",\r
+link_title:"Vlo\u017Ei\u0165/editova\u0165 odkaz",\r
+link_url:"URL odkazu",\r
+link_target:"Cie\u013E",\r
+link_target_same:"Otvori\u0165 odkaz v rovnakom okne",\r
+link_target_blank:"Otvori\u0165 odkaz v novom okne",\r
+link_titlefield:"N\u00E1zov",\r
+link_is_email:"Zd\u00E1 sa, \u017Ee zadan\u00E1 URL je emailov\u00E1 adresa. Chce\u0161 vlo\u017Ei\u0165 povinn\u00FD prefix mailto: ?",\r
+link_is_external:"Zd\u00E1 sa, \u017Ee zadan\u00E1 URL je extern\u00FD odkaz. Chce\u0161 vlo\u017Ei\u0165 povinn\u00FD prefix http:// ?",\r
+link_list:"Zoznam odkazov"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sl.standard',{\r
+style_select:"Lang",\r
+font_size:"Velikost pisave",\r
+fontdefault:"Dru\u017Eina pisave",\r
+block:"oblika",\r
+paragraph:"odstavek",\r
+div:"blok",\r
+address:"naslov",\r
+pre:"predoblikovano",\r
+h1:"naslov 1",\r
+h2:"naslov 2",\r
+h3:"naslov 3",\r
+h4:"naslov 4",\r
+h5:"naslov 5",\r
+h6:"naslov 6",\r
+blockquote:"citat",\r
+code:"koda",\r
+samp:"kodni zgled",\r
+dt:"definicija - izraz",\r
+dd:"definicija - opis",\r
+bold_desc:"Krepko (Ctrl+B)",\r
+italic_desc:"Po\u0161evno (Ctrl+I)",\r
+underline_desc:"Pod\u010Drtano (Ctrl+U)",\r
+striketrough_desc:"Pre\u010Drtano",\r
+justifyleft_desc:"Poravnava levo",\r
+justifycenter_desc:"Poravnava na sredino",\r
+justifyright_desc:"Poravnava desno",\r
+justifyfull_desc:"Polna poravnava",\r
+bullist_desc:"Alineje",\r
+numlist_desc:"Na\u0161tevanje",\r
+outdent_desc:"Zamakni",\r
+indent_desc:"Odmakni ven",\r
+undo_desc:"Razveljavi (Ctrl+Z)",\r
+redo_desc:"Uveljavi (Ctrl+Y)",\r
+link_desc:"Vstavi/uredi povezavo",\r
+unlink_desc:"Odstrani povezavo",\r
+image_desc:"Vstavi/uredi sliko",\r
+cleanup_desc:"Pre\u010Disti kodo",\r
+code_desc:"Uredi kodo HTML",\r
+sub_desc:"Podpisano",\r
+sup_desc:"Nadpisano",\r
+hr_desc:"Vstavi \u010Drto",\r
+removeformat_desc:"Odstrani oblikovanje",\r
+custom1_desc:"Opis tule",\r
+forecolor_desc:"Izberite barvo pisave",\r
+backcolor_desc:"Izberite barvo ozadja",\r
+charmap_desc:"Vstavi posebni znak",\r
+visualaid_desc:"Preklop prikaza vodil",\r
+anchor_desc:"Vstavi/uredi sidro",\r
+cut_desc:"Izre\u017Ei",\r
+copy_desc:"Kopiraj",\r
+paste_desc:"Prilepi",\r
+image_props_desc:"Lastnosti slike",\r
+newdocument_desc:"Nov dokument",\r
+help_desc:"Pomo\u010D",\r
+blockquote_desc:"Citat",\r
+clipboard_msg:"Delo z odlo\u017Ei\u0161\u010Dem ni mogo\u010De v tem brskalniku. Lahko uporabljate kombinacije tipk Ctrl+X, Ctrl+C, Ctrl+V.\n\u017Delite ve\u010D informacij o tem?",\r
+path:"Pot",\r
+newdocument:"Ste prepri\u010Dani, da \u017Eelite odstraniti vsebino?",\r
+toolbar_focus:"Preskok na orodjarno - Alt+Q, Preskok v urejevalnik - Alt-Z, Preskok na pot elementa - Alt-X",\r
+more_colors:"Ve\u010D barv",\r
+advanced_link_delta_width:"100"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sl.standard_dlg',{\r
+about_title:"O TinyMCE",\r
+about_general:"Vizitka",\r
+about_help:"Pomo\u010D",\r
+about_license:"Licenca",\r
+about_plugins:"Vsadki",\r
+about_plugin:"Vsadek",\r
+about_author:"Avtor",\r
+about_version:"Verzija",\r
+about_loaded:"Nalo\u017Eeni vsadki",\r
+anchor_title:"Vstavi/uredi sidro",\r
+anchor_name:"Ime sidra",\r
+code_title:"Urejevalnik kode HTML",\r
+code_wordwrap:"Prelomi vrstice",\r
+colorpicker_title:"Izberite barvo",\r
+colorpicker_picker_tab:"Izbor",\r
+colorpicker_picker_title:"Izbor barve",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Barve palete",\r
+colorpicker_named_tab:"Poimenovane",\r
+colorpicker_named_title:"Poimenovane barve",\r
+colorpicker_color:"Barva:",\r
+colorpicker_name:"Ime:",\r
+charmap_title:"Izberite posebni znak",\r
+image_title:"Vstavi/uredi sliko",\r
+image_src:"Naslov URL slike",\r
+image_alt:"Opis slike",\r
+image_list:"Seznam slik",\r
+image_border:"Obroba",\r
+image_dimensions:"Dimenzije",\r
+image_vspace:"Prostor zg/sp",\r
+image_hspace:"Prostor le/de",\r
+image_align:"Poravnava",\r
+image_align_baseline:"osnovna \u010Drta",\r
+image_align_top:"vrh",\r
+image_align_middle:"sredina",\r
+image_align_bottom:"dno",\r
+image_align_texttop:"vrh besedila",\r
+image_align_textbottom:"dno besedila",\r
+image_align_left:"levo, plavajo\u010De",\r
+image_align_right:"desno, plavajo\u010De",\r
+link_title:"Vstavi/uredi povezavo",\r
+link_url:"Naslov URL",\r
+link_target:"Ime cilja",\r
+link_target_same:"odpri povezavo v istem oknu",\r
+link_target_blank:"odpri povezavo v novem oknu",\r
+link_titlefield:"Naslov",\r
+link_is_email:"Vneseni naslov verjetno prestavlja e-naslov, \u017Eelite da dodam zahtevano predpono \'mailto:\'?",\r
+link_is_external:"Vneseni naslov verjetno predstavlja zunanjo povezavo, \u017Eelite da dodam zahtevano predpono \'http://\'?",\r
+link_list:"Seznam povezav"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sr.standard',{\r
+style_select:"Lang",\r
+font_size:"Veli\u010Dina pisma",\r
+fontdefault:"Vrsta pisma",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adresa",\r
+pre:"Oblikovano",\r
+h1:"Naslov 1",\r
+h2:"Naslov 2",\r
+h3:"Naslov 3",\r
+h4:"Naslov 4",\r
+h5:"Naslov 5",\r
+h6:"Naslov 6",\r
+blockquote:"Citat",\r
+code:"Kod",\r
+samp:"Primjer koda",\r
+dt:"Definicija pojma",\r
+dd:"Opis definicije",\r
+bold_desc:"Podebljaj (Ctrl+B)",\r
+italic_desc:"Kurziv (Ctrl+I)",\r
+underline_desc:"Podcrtaj (Ctrl+U)",\r
+striketrough_desc:"Precrtaj",\r
+justifyleft_desc:"Poravnaj levo",\r
+justifycenter_desc:"Centriraj",\r
+justifyright_desc:"Poravnaj desno",\r
+justifyfull_desc:"Poravnaj potpuno",\r
+bullist_desc:"Neure\u0111ena lista",\r
+numlist_desc:"Ure\u0111ena lista",\r
+outdent_desc:"Uvuci",\r
+indent_desc:"Izvuci",\r
+undo_desc:"Poni\u0161ti (Ctrl+Z)",\r
+redo_desc:"Ponovi (Ctrl+Y)",\r
+link_desc:"Umetni/uredi poveznicu",\r
+unlink_desc:"Poni\u0161ti poveznicu",\r
+image_desc:"Umetni/uredi sliku",\r
+cleanup_desc:"Po\u010Disti kod",\r
+code_desc:"Uredi HTML izvor",\r
+sub_desc:"Indeks",\r
+sup_desc:"Eksponent",\r
+hr_desc:"Umetni vodoravnu crtu",\r
+removeformat_desc:"Poni\u0161ti oblikovanje",\r
+custom1_desc:"Vlastiti opis ovdje",\r
+forecolor_desc:"Odaberite boju teksta",\r
+backcolor_desc:"Odaberite boju pozadine",\r
+charmap_desc:"Umetni vlastiti znak",\r
+visualaid_desc:"Vodilice/nevidljivi elementi",\r
+anchor_desc:"Umetni/uredi sidro",\r
+cut_desc:"Izre\u017Ei",\r
+copy_desc:"Kopiraj",\r
+paste_desc:"Zalepi",\r
+image_props_desc:"Svojstva slike",\r
+newdocument_desc:"Novi dokument",\r
+help_desc:"Pomo\u0107",\r
+blockquote_desc:"Citiraj",\r
+clipboard_msg:"Kopiraj/Izre\u017Ei/Zalepi nije dostupno u Mozilla i Firefox preglednicima. Vi\u0161e informacija?",\r
+path:"Staza",\r
+newdocument:"Jeste li sigurni da \u017Eelite izbrisati celi sadr\u017Eaj?",\r
+toolbar_focus:"Pre\u0111i na alatnu traku - Alt+Q, pre\u0111i na ure\u0111iva\u010D - Alt-Z, pre\u0111i na element path - Alt-X",\r
+more_colors:"Vi\u0161e boja"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sr.standard_dlg',{\r
+about_title:"TinyMCE",\r
+about_general:"O programu",\r
+about_help:"Pomo\u0107",\r
+about_license:"Licenca",\r
+about_plugins:"Dodaci",\r
+about_plugin:"Dodatak",\r
+about_author:"Autor",\r
+about_version:"Verzija",\r
+about_loaded:"Postoje\u0107i dodaci",\r
+anchor_title:"Umetni/uredi sidro",\r
+anchor_name:"Ime sidra",\r
+code_title:"HTML ure\u0111iva\u010D",\r
+code_wordwrap:"Omatanje teksta",\r
+colorpicker_title:"Izbor boje",\r
+colorpicker_picker_tab:"Odabir",\r
+colorpicker_picker_title:"Odabir boje",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta boja",\r
+colorpicker_named_tab:"Imenovano",\r
+colorpicker_named_title:"Imenovane boje",\r
+colorpicker_color:"Boja:",\r
+colorpicker_name:"Naziv:",\r
+charmap_title:"Odaberite znak",\r
+image_title:"Umetni/uredi sliku",\r
+image_src:"URL slike",\r
+image_alt:"Opis slike",\r
+image_list:"Lista slika",\r
+image_border:"Obrub",\r
+image_dimensions:"Dimenzije",\r
+image_vspace:"Okomiti razmak",\r
+image_hspace:"Vodoravni razmak",\r
+image_align:"Poravnavanje",\r
+image_align_baseline:"Osnovna linija",\r
+image_align_top:"Vrh",\r
+image_align_middle:"Sredina",\r
+image_align_bottom:"Dno",\r
+image_align_texttop:"Vrh teksta",\r
+image_align_textbottom:"Dno teksta",\r
+image_align_left:"Levo",\r
+image_align_right:"Desno",\r
+link_title:"Umetni/uredi poveznicu",\r
+link_url:"URL poveznice",\r
+link_target:"Meta",\r
+link_target_same:"Otvori poveznicu u istom prozoru",\r
+link_target_blank:"Otvori poveznicu u novom prozoru",\r
+link_titlefield:"Naslov",\r
+link_is_email:"URL koji ste uneli izgleda kao e-mail adresa, \u017Eelite li dodati potrebni mailto: prefiks?",\r
+link_is_external:"URL koji ste uneli izgleda kao vanjska poveznica, \u017Eelite li dodati potrebni http:// prefiks?",\r
+link_list:"Lista poveznica"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sv.standard',{\r
+style_select:"Lang",\r
+font_size:"Fontstorlek",\r
+fontdefault:"Fontfamilj",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adress",\r
+pre:"F\u00F6rformaterad",\r
+h1:"Rubrik 1",\r
+h2:"Rubrik 2",\r
+h3:"Rubrik 3",\r
+h4:"Rubrik 4",\r
+h5:"Rubrik 5",\r
+h6:"Rubrik 6",\r
+blockquote:"Blockcitat",\r
+code:"Kodblock",\r
+samp:"Kodexempel",\r
+dt:"Definitionsterm",\r
+dd:"Definitionsbeskrivning",\r
+bold_desc:"Fet (Ctrl+B)",\r
+italic_desc:"Kursiv (Ctrl+I)",\r
+underline_desc:"Understruken (Ctrl+U)",\r
+striketrough_desc:"Genomstruken",\r
+justifyleft_desc:"V\u00E4nsterst\u00E4lld",\r
+justifycenter_desc:"Centrera",\r
+justifyright_desc:"H\u00F6gerst\u00E4lld",\r
+justifyfull_desc:"Justera",\r
+bullist_desc:"Punktlista",\r
+numlist_desc:"Nummerlista",\r
+outdent_desc:"Drag tillbaka",\r
+indent_desc:"Indrag",\r
+undo_desc:"\u00C5ngra (Ctrl+Z)",\r
+redo_desc:"G\u00F6r om (Ctrl+Y)",\r
+link_desc:"Infoga/redigera l\u00E4nk",\r
+unlink_desc:"Ta bort l\u00E4nk",\r
+image_desc:"Infoga/redigera bild",\r
+cleanup_desc:"St\u00E4da upp i k\u00E4llkoden",\r
+code_desc:"Redigera HTML k\u00E4llkoden",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Infoga horisontell skiljelinje",\r
+removeformat_desc:"Ta bort formatering",\r
+forecolor_desc:"V\u00E4lj textf\u00E4rg",\r
+backcolor_desc:"V\u00E4lj bakgrundsf\u00E4rg",\r
+charmap_desc:"Infoga specialtecken",\r
+visualaid_desc:"Visa/d\u00F6lj visuella hj\u00E4lpmedel",\r
+anchor_desc:"Infoga/redigera bokm\u00E4rke",\r
+cut_desc:"Klipp ut",\r
+copy_desc:"Kopiera",\r
+paste_desc:"Klistra in",\r
+image_props_desc:"Bildinst\u00E4llningar",\r
+newdocument_desc:"Nytt dokument",\r
+help_desc:"Hj\u00E4lp",\r
+blockquote_desc:"Blockcitat",\r
+clipboard_msg:"Kopiera/klipp ut/klistra in \u00E4r inte tillg\u00E4ngligt i din webbl\u00E4sare.\nVill du veta mer om detta?",\r
+path:"Element",\r
+newdocument:"\u00C4r du s\u00E4ker p\u00E5 att du vill radera allt inneh\u00E5ll?",\r
+toolbar_focus:"Hoppa till verktygsf\u00E4ltet - Alt+Q, Hoppa till redigeraren - Alt-Z, Hoppa till element listan - Alt-X"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sv.standard_dlg',{\r
+about_title:"Om TinyMCE",\r
+about_general:"Om",\r
+about_help:"Hj\u00E4lp",\r
+about_license:"Licens",\r
+about_plugins:"Om plug-in",\r
+about_plugin:"Om plug-in",\r
+about_author:"Utvecklare",\r
+about_version:"Version",\r
+about_loaded:"Laddade plug-ins",\r
+anchor_title:"Infoga/redigera bokm\u00E4rke",\r
+anchor_name:"Namn",\r
+code_title:"HTML k\u00E4llkodsl\u00E4ge",\r
+code_wordwrap:"Bryt ord",\r
+colorpicker_title:"V\u00E4lj en f\u00E4rg",\r
+colorpicker_picker_tab:"V\u00E4ljare",\r
+colorpicker_picker_title:"F\u00E4rgv\u00E4ljare",\r
+colorpicker_palette_tab:"Palett",\r
+colorpicker_palette_title:"Palettf\u00E4rger",\r
+colorpicker_named_tab:"Namngivna",\r
+colorpicker_named_title:"Namngivna f\u00E4rger",\r
+colorpicker_color:"F\u00E4rg:",\r
+colorpicker_name:"Namn:",\r
+charmap_title:"V\u00E4lj ett specialtecken",\r
+image_title:"Infoga/redigera bild",\r
+image_src:"Bildens URL",\r
+image_alt:"Bildens beskrivning",\r
+image_list:"Bildlista",\r
+image_border:"Ram",\r
+image_dimensions:"Dimensioner",\r
+image_vspace:"Vertikalrymd",\r
+image_hspace:"Horisontalrymd",\r
+image_align:"Justering",\r
+image_align_baseline:"Baslinje",\r
+image_align_top:"Toppen",\r
+image_align_middle:"Mitten",\r
+image_align_bottom:"Botten",\r
+image_align_texttop:"Toppen av texten",\r
+image_align_textbottom:"Botten av texten",\r
+image_align_left:"H\u00F6ger",\r
+image_align_right:"V\u00E4nster",\r
+link_title:"Infoga/redigera l\u00E4nk",\r
+link_url:"L\u00E4nkens URL",\r
+link_target:"M\u00E5l",\r
+link_target_same:"\u00D6ppna l\u00E4nken i samma f\u00F6nster",\r
+link_target_blank:"\u00D6ppna l\u00E4nken i ett nytt f\u00F6nster",\r
+link_titlefield:"Titel",\r
+link_is_email:"L\u00E4nken du angav verkar vara en e-post adress. Vill du infoga mailto: prefixet p\u00E5 l\u00E4nken?",\r
+link_is_external:"L\u00E4nken du angav verkar vara en extern adress. Vill du infoga http:// prefixet p\u00E5 l\u00E4nken?",\r
+link_list:"L\u00E4nklista"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('tr.standard',{\r
+style_select:"Lang",\r
+font_size:"Yaz\u0131 boyutu",\r
+fontdefault:"Yaz\u0131 tipi",\r
+block:"Bi\u00E7im",\r
+paragraph:"Paragraf",\r
+div:"B\u00F6l\u00FCm",\r
+address:"Adres",\r
+pre:"\u00D6nformatl\u0131",\r
+h1:"Ba\u015Fl\u0131k 1",\r
+h2:"Ba\u015Fl\u0131k 2",\r
+h3:"Ba\u015Fl\u0131k 3",\r
+h4:"Ba\u015Fl\u0131k 4",\r
+h5:"Ba\u015Fl\u0131k 5",\r
+h6:"Ba\u015Fl\u0131k 6",\r
+blockquote:"Al\u0131nt\u0131",\r
+code:"Kod",\r
+samp:"Kod \u00F6rne\u011Fi",\r
+dt:"Tan\u0131m terimi ",\r
+dd:"Tan\u0131m a\u00E7\u0131klamas\u0131",\r
+bold_desc:"Kal\u0131n (Ctrl+B)",\r
+italic_desc:"E\u011Fik (Ctrl+I)",\r
+underline_desc:"Alt\u0131 \u00E7izgili (Ctrl+U)",\r
+striketrough_desc:"Ortas\u0131 \u00E7izgili",\r
+justifyleft_desc:"Sola yasla",\r
+justifycenter_desc:"Ortala",\r
+justifyright_desc:"Sa\u011Fa yasla",\r
+justifyfull_desc:"\u0130ki yana yasla",\r
+bullist_desc:"S\u0131ras\u0131z liste",\r
+numlist_desc:"S\u0131ral\u0131 liste",\r
+outdent_desc:"D\u0131\u015Fa kayd\u0131r",\r
+indent_desc:"\u0130\u00E7e kayd\u0131r",\r
+undo_desc:"Geri al (Ctrl+Z)",\r
+redo_desc:"Tekrarla (Ctrl+Y)",\r
+link_desc:"Ba\u011Flant\u0131 ekle/d\u00FCzenle",\r
+unlink_desc:"Ba\u011Flant\u0131y\u0131 sil",\r
+image_desc:"Resim ekle/d\u00FCzenle",\r
+cleanup_desc:"Da\u011F\u0131n\u0131k kodu temizle",\r
+code_desc:"HTML Kayna\u011F\u0131n\u0131 D\u00FCzenle",\r
+sub_desc:"Altsimge",\r
+sup_desc:"\u00DCstsimge",\r
+hr_desc:"Yatay \u00E7izgi ekle",\r
+removeformat_desc:"Bi\u00E7imi kald\u0131r",\r
+custom1_desc:"\u00D6zel a\u00E7\u0131klaman\u0131z\u0131 buraya girin",\r
+forecolor_desc:"Metin rengi se\u00E7",\r
+backcolor_desc:"Arkaplan rengi se\u00E7",\r
+charmap_desc:"\u00D6zel karakter ekle",\r
+visualaid_desc:"Y\u00F6nergeleri ve g\u00F6r\u00FCnmez elemanlar\u0131 a\u00E7/kapa",\r
+anchor_desc:"\u00C7engel noktas\u0131 ekle",\r
+cut_desc:"Kes",\r
+copy_desc:"Kopyala",\r
+paste_desc:"Yap\u0131\u015Ft\u0131r",\r
+image_props_desc:"Resim \u00F6zellikleri",\r
+newdocument_desc:"Yeni belge",\r
+help_desc:"Yard\u0131m",\r
+blockquote_desc:"Al\u0131nt\u0131",\r
+clipboard_msg:"Kopyala/Kes/Yap\u0131\u015Ft\u0131r Mozilla ve Firefox'ta kullan\u0131lamaz.\r\nBu konuda daha fazla bilgi edinmek ister misiniz?",\r
+path:"Yol",\r
+newdocument:"T\u00FCm i\u00E7eri\u011Fi bo\u015Faltmak istedinizden emin misiniz?",\r
+toolbar_focus:"Ara\u00E7 d\u00FC\u011Fmelerine atla - Alt+Q, Edit\u00F6re atla - Alt-Z, Eleman yoluna atla - Alt-X",\r
+more_colors:"Daha fazla renk"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('tr.standard_dlg',{\r
+about_title:"TinyMCE Hakk\u0131nda",\r
+about_general:"Hakk\u0131nda",\r
+about_help:"Yard\u0131m",\r
+about_license:"Lisans",\r
+about_plugins:"Eklentiler",\r
+about_plugin:"Eklenti",\r
+about_author:"Yazar",\r
+about_version:"S\u00FCr\u00FCm",\r
+about_loaded:"Y\u00FCkl\u00FC eklentiler",\r
+anchor_title:"\u00C7engel noktas\u0131 ekle/d\u00FCzenle",\r
+anchor_name:"\u00C7engel noktas\u0131 ad\u0131",\r
+code_title:"HTML Kaynak Edit\u00F6r\u00FC",\r
+code_wordwrap:"S\u00F6zc\u00FCk kayd\u0131r",\r
+colorpicker_title:"Bir renk se\u00E7",\r
+colorpicker_picker_tab:"Se\u00E7ici",\r
+colorpicker_picker_title:"Renk se\u00E7ici",\r
+colorpicker_palette_tab:"Palet",\r
+colorpicker_palette_title:"Palet renkleri",\r
+colorpicker_named_tab:"\u0130simli",\r
+colorpicker_named_title:"\u0130simli renkler",\r
+colorpicker_color:"Renk:",\r
+colorpicker_name:"\u0130sim:",\r
+charmap_title:"\u00D6zel karakter se\u00E7",\r
+image_title:"Resim ekle/d\u00FCzenle",\r
+image_src:"Resim URL",\r
+image_alt:"Resim tan\u0131m\u0131",\r
+image_list:"Resim listesi",\r
+image_border:"Kenarl\u0131k",\r
+image_dimensions:"Boyutlar",\r
+image_vspace:"Dikey bo\u015Fluk",\r
+image_hspace:"Yatay bo\u015Fluk",\r
+image_align:"Hizalama",\r
+image_align_baseline:"Taban \u00E7izgisi",\r
+image_align_top:"\u00DCst",\r
+image_align_middle:"Orta",\r
+image_align_bottom:"Alt",\r
+image_align_texttop:"Metin \u00FCstte",\r
+image_align_textbottom:"Metin altta",\r
+image_align_left:"Sola",\r
+image_align_right:"Sa\u011Fa",\r
+link_title:"Ba\u011Flant\u0131 ekle/d\u00FCzenle",\r
+link_url:"Ba\u011Flant\u0131 URL",\r
+link_target:"Hedef",\r
+link_target_same:"Ba\u011Flant\u0131y\u0131 ayn\u0131 pencerede a\u00E7",\r
+link_target_blank:"Ba\u011Flant\u0131y\u0131 yeni pencerede a\u00E7",\r
+link_titlefield:"Ba\u015Fl\u0131k",\r
+link_is_email:"Girdi\u011Finiz URL bir e-posta adresi gibi g\u00F6z\u00FCk\u00FCyor, gerekli olan mailto: \u00F6nekinin eklenmesini ister misiniz?",\r
+link_is_external:"Girdi\u011Finiz URL d\u0131\u015F bir ba\u011Flant\u0131 gibi g\u00F6z\u00FCk\u00FCyor, gerekli olan http:// \u00F6nekinin eklenmesini ister misiniz?",\r
+link_list:"Ba\u011Flant\u0131 listesi"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('tw.standard',{\r
+style_select:"Lang",\r
+font_size:"\u5B57\u865F",\r
+fontdefault:"\u5B57\u578B",\r
+block:"\u683C\u5F0F",\r
+paragraph:"\u6BB5\u843D",\r
+div:"Div",\r
+address:"\u5730\u5740",\r
+pre:"\u9810\u8A2D\u683C\u5F0F",\r
+h1:"\u6A19\u984C 1",\r
+h2:"\u6A19\u984C 2",\r
+h3:"\u6A19\u984C 3",\r
+h4:"\u6A19\u984C 4",\r
+h5:"\u6A19\u984C 5",\r
+h6:"\u6A19\u984C 6",\r
+blockquote:"\u5F15\u7528",\r
+code:"\u539F\u59CB\u78BC",\r
+samp:"\u539F\u59CB\u78BC\u7BC4\u4F8B",\r
+dt:"\u540D\u8A5E\u5B9A\u7FA9",\r
+dd:"\u540D\u8A5E\u63CF\u8FF0",\r
+bold_desc:"\u7C97\u9AD4 (Ctrl+B)",\r
+italic_desc:"\u659C\u9AD4 (Ctrl+I)",\r
+underline_desc:"\u5E95\u7DDA (Ctrl+U)",\r
+striketrough_desc:"\u522A\u9664\u7DDA",\r
+justifyleft_desc:"\u9760\u5DE6\u5C0D\u9F4A",\r
+justifycenter_desc:"\u7F6E\u4E2D",\r
+justifyright_desc:"\u9760\u53F3\u5C0D\u9F4A",\r
+justifyfull_desc:"\u5DE6\u53F3\u5C0D\u9F4A",\r
+bullist_desc:"\u9805\u76EE\u7B26\u865F",\r
+numlist_desc:"\u7DE8\u865F",\r
+outdent_desc:"\u6E1B\u5C11\u7E2E\u6392",\r
+indent_desc:"\u589E\u52A0\u7E2E\u6392",\r
+undo_desc:"\u5FA9\u539F (Ctrl+Z)",\r
+redo_desc:"\u91CD\u505A (Ctrl+Y)",\r
+link_desc:"\u63D2\u5165/\u7DE8\u8F2F \u93C8\u7D50",\r
+unlink_desc:"\u53D6\u6D88\u93C8\u7D50",\r
+image_desc:"\u63D2\u5165/\u7DE8\u8F2F \u5716\u7247",\r
+cleanup_desc:"\u6E05\u9664\u591A\u9918\u7A0B\u5E8F\u4EE3\u78BC",\r
+code_desc:"\u7DE8\u8F2F HTML \u539F\u59CB\u78BC",\r
+sub_desc:"\u4E0B\u6A19",\r
+sup_desc:"\u4E0A\u6A19",\r
+hr_desc:"\u63D2\u5165\u6C34\u5E73\u8EF8",\r
+removeformat_desc:"\u6E05\u9664\u6A23\u5F0F",\r
+custom1_desc:"\u5728\u6B64\u8F38\u5165\u60A8\u7684\u81EA\u5B9A\u63CF\u8FF0",\r
+forecolor_desc:"\u9078\u64C7\u6587\u5B57\u984F\u8272",\r
+backcolor_desc:"\u9078\u64C7\u80CC\u666F\u984F\u8272",\r
+charmap_desc:"\u63D2\u5165\u7279\u6B8A\u7B26\u865F",\r
+visualaid_desc:"\u555F\u9589 \u7DB2\u683C\u7DDA/\u96B1\u85CF\u7D44\u4EF6",\r
+anchor_desc:"\u63D2\u5165/\u7DE8\u8F2F \u9328\u9EDE",\r
+cut_desc:"\u526A\u4E0B",\r
+copy_desc:"\u8907\u88FD",\r
+paste_desc:"\u8CBC\u4E0A",\r
+image_props_desc:"\u5716\u7247\u5C6C\u6027",\r
+newdocument_desc:"\u958B\u65B0\u6A94\u6848",\r
+help_desc:"\u8AAA\u660E",\r
+blockquote_desc:"\u5F15\u7528",\r
+clipboard_msg:"\u8907\u88FD\u3001\u526A\u4E0B\u53CA\u8CBC\u4E0A\u529F\u80FD\u5728 Mozilla \u548C Firefox \u4E2D\u7121\u6CD5\u4F7F\u7528\u3002\n \u662F\u5426\u9700\u8981\u77AD\u89E3\u66F4\u591A\u6709\u95DC\u6B64\u554F\u984C\u7684\u4FE1\u606F ?",\r
+path:"\u8DEF\u5F91",\r
+newdocument:"\u60A8\u78BA\u8A8D\u8981\u6E05\u9664\u5168\u90E8\u5167\u5BB9\u55CE\uFF1F",\r
+toolbar_focus:"\u5DE5\u5177\u6309\u9215 - Alt+Q, \u7DE8\u8F2F\u5668 - Alt-Z, \u7D44\u4EF6\u8DEF\u5F91 - Alt-X",\r
+more_colors:"\u66F4\u591A\u984F\u8272"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('tw.standard_dlg',{\r
+about_title:"\u95DC\u65BC TinyMCE",\r
+about_general:"\u95DC\u65BC",\r
+about_help:"\u8AAA\u660E",\r
+about_license:"\u6388\u6B0A",\r
+about_plugins:"\u5168\u90E8\u5957\u4EF6",\r
+about_plugin:"\u5957\u4EF6",\r
+about_author:"\u4F5C\u8005",\r
+about_version:"\u7248\u672C",\r
+about_loaded:"\u5DF2\u7F6E\u5165\u7684\u5957\u4EF6",\r
+anchor_title:"\u63D2\u5165/\u7DE8\u8F2F \u9328\u9EDE",\r
+anchor_name:"\u9328\u9EDE\u540D\u7A31",\r
+code_title:"HTML \u539F\u59CB\u78BC\u7DE8\u8F2F\u5668",\r
+code_wordwrap:"\u81EA\u52D5\u63DB\u884C",\r
+colorpicker_title:"\u6311\u9078\u984F\u8272",\r
+colorpicker_picker_tab:"\u6311\u9078\u5668",\r
+colorpicker_picker_title:"\u9078\u8272\u5668",\r
+colorpicker_palette_tab:"\u8272\u76E4",\r
+colorpicker_palette_title:"\u8272\u76E4\u984F\u8272",\r
+colorpicker_named_tab:"\u9810\u8A2D\u7684",\r
+colorpicker_named_title:"\u9810\u8A2D\u7684\u984F\u8272",\r
+colorpicker_color:"\u984F\u8272:",\r
+colorpicker_name:"\u540D\u7A31:",\r
+charmap_title:"\u63D2\u5165\u7279\u6B8A\u7B26\u865F",\r
+image_title:"\u63D2\u5165/\u7DE8\u8F2F \u5716\u7247",\r
+image_src:"\u5716\u7247\u7DB2\u5740",\r
+image_alt:"\u5716\u7247\u8AAA\u660E",\r
+image_list:"\u5716\u7247\u5217\u8868",\r
+image_border:"\u908A\u6846",\r
+image_dimensions:"\u5C3A\u5BF8",\r
+image_vspace:"\u5782\u76F4\u9593\u8DDD",\r
+image_hspace:"\u6C34\u5E73\u9593\u8DDD",\r
+image_align:"\u5C0D\u9F4A\u65B9\u5F0F",\r
+image_align_baseline:"\u57FA\u7DDA",\r
+image_align_top:"\u4E0A\u65B9\u5C0D\u9F4A",\r
+image_align_middle:"\u7F6E\u4E2D\u5C0D\u9F4A",\r
+image_align_bottom:"\u5E95\u90E8\u5C0D\u9F4A",\r
+image_align_texttop:"\u6587\u5B57\u4E0A\u65B9",\r
+image_align_textbottom:"\u6587\u5B57\u4E0B\u65B9",\r
+image_align_left:"\u9760\u5DE6\u5C0D\u9F4A",\r
+image_align_right:"\u9760\u53F3\u5C0D\u9F4A",\r
+link_title:"\u63D2\u5165/\u7DE8\u8F2F \u93C8\u7D50",\r
+link_url:"\u93C8\u7D50\u7DB2\u5740",\r
+link_target:"\u76EE\u7684\u5730",\r
+link_target_same:"\u5C07\u93C8\u7D50\u7DB2\u5740\u958B\u5728\u6B64\u8996\u7A97",\r
+link_target_blank:"\u5C07\u93C8\u7D50\u7DB2\u5740\u958B\u5728\u65B0\u8996\u7A97",\r
+link_titlefield:"\u6A19\u984C",\r
+link_is_email:"\u60A8\u8F38\u5165\u7684\u7DB2\u5740\u61C9\u8A72\u662F\u4E00\u500B\u96FB\u90F5\u5730\u5740\uFF0C\u662F\u5426\u9700\u8981\u5728\u90F5\u5740\u524D\u65B9\u52A0\u5165 mailto: ?",\r
+link_is_external:"\u60A8\u8F38\u5165\u7684\u7DB2\u5740\u61C9\u8A72\u662F\u4E00\u500B\u5916\u90E8\u9023\u7D50\uFF0C\u662F\u5426\u9700\u8981\u5728\u7DB2\u5740\u524D\u65B9\u52A0\u5165 http:// ?",\r
+link_list:"\u93C8\u7D50\u6E05\u55AE"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('uk.standard',{\r
+style_select:"Lang",\r
+font_size:"\u0420\u043E\u0437\u043C\u0456\u0440 \u0448\u0440\u0438\u0444\u0442\u0443",\r
+fontdefault:"\u0428\u0440\u0438\u0444\u0442",\r
+block:"\u0424\u043E\u0440\u043C\u0430\u0442",\r
+paragraph:"\u0410\u0431\u0437\u0430\u0446",\r
+div:"Div",\r
+address:"\u0421\u0442\u0438\u043B\u044C \u0430\u0434\u0440\u0435\u0441\u0438",\r
+pre:"\u041F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u044C\u043E \u0444\u043E\u0440\u043C\u0430\u0442\u043E\u0432\u0430\u043D\u0438\u0439",\r
+h1:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 1",\r
+h2:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 2",\r
+h3:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 3",\r
+h4:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 4",\r
+h5:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 5",\r
+h6:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 6",\r
+blockquote:"\u0426\u0438\u0442\u0430\u0442\u0430",\r
+code:"\u041A\u043E\u0434",\r
+samp:"\u041F\u0440\u0438\u043A\u043B\u0430\u0434 \u043A\u043E\u0434\u0443",\r
+dt:"\u0414\u043E\u0432\u0456\u0434\u043D\u0438\u043A \u0442\u0435\u0440\u043C\u0456\u043D ",\r
+dd:"\u0414\u043E\u0432\u0456\u0434\u043D\u0438\u043A \u043E\u043F\u0438\u0441 ",\r
+bold_desc:"\u0416\u0438\u0440\u043D\u0438\u0439 (Ctrl+B)",\r
+italic_desc:"\u041A\u0443\u0440\u0441\u0438\u0432 (Ctrl+I)",\r
+underline_desc:"\u041F\u0456\u0434\u043A\u0440\u0435\u0441\u043B\u0435\u043D\u0438\u0439 (Ctrl+U)",\r
+striketrough_desc:"\u0417\u0430\u043A\u0440\u0435\u0441\u043B\u0435\u043D\u0438\u0439",\r
+justifyleft_desc:"\u041F\u043E \u043B\u0456\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+justifycenter_desc:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+justifyright_desc:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+justifyfull_desc:"\u041F\u043E \u0448\u0438\u0440\u0438\u043D\u0456",\r
+bullist_desc:"\u0421\u043F\u0438\u0441\u043E\u043A",\r
+numlist_desc:"\u041D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u0438\u0439 \u0441\u043F\u0438\u0441\u043E\u043A",\r
+outdent_desc:"\u0417\u043C\u0435\u043D\u0448\u0442\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043F",\r
+indent_desc:"\u0417\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043F",\r
+undo_desc:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 (Ctrl+Z)",\r
+redo_desc:"\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u0438 (Ctrl+Y)",\r
+link_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",\r
+unlink_desc:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",\r
+image_desc:"\u0414\u043E\u0434\u0430\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",\r
+cleanup_desc:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0437\u0430\u0439\u0432\u044B\u0439 \u043A\u043E\u0434",\r
+code_desc:"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 HTML \u043A\u043E\u0434",\r
+sub_desc:"\u041D\u0438\u0436\u043D\u0456\u0439 \u0456\u043D\u0434\u0435\u043A\u0441",\r
+sup_desc:"\u0412\u0435\u0440\u0445\u043D\u0456\u0439 \u0456\u043D\u0434\u0435\u043A\u0441",\r
+hr_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u0434\u0456\u043B\u044C\u043D\u0438\u043A",\r
+removeformat_desc:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0443\u0432\u0430\u043D\u043D\u044F",\r
+custom1_desc:"\u0412\u0430\u0448 \u0434\u043E\u0432\u0456\u043B\u044C\u043D\u0438\u0439 \u043E\u043F\u0438\u0441 \u0442\u0443\u0442",\r
+forecolor_desc:"\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u043A\u043E\u043B\u0456\u0440 \u0442\u0435\u043A\u0441\u0442\u0443",\r
+backcolor_desc:"\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u043A\u043E\u043B\u0456\u0440 \u0444\u043E\u043D\u0443",\r
+charmap_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+visualaid_desc:"Toggle guidelines/invisible elements",\r
+anchor_desc:"\u0414\u043E\u0434\u0430\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u044F\u043A\u0456\u0440",\r
+cut_desc:"\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438",\r
+copy_desc:"\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438",\r
+paste_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438",\r
+image_props_desc:"\u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",\r
+newdocument_desc:"\u041D\u043E\u0432\u0438\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442",\r
+help_desc:"\u0414\u043E\u043F\u043E\u043C\u043E\u0433\u0430",\r
+blockquote_desc:"\u0426\u0438\u0442\u0430\u0442\u0430",\r
+clipboard_msg:"\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438/\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438/\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0456 \u0432 Mozilla \u0438 Firefox.\n\u0412\u0430\u043C \u0446\u0456\u043A\u0430\u0432\u0430 \u0456\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u044F \u043F\u0440\u043E \u0446\u0435?",\r
+path:"\u0428\u043B\u044F\u0445",\r
+newdocument:"\u0412\u0438 \u043F\u0435\u0432\u043D\u0456, \u0449\u043E \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0432\u0441\u0435 \u0432\u0438\u0434\u0430\u043B\u0438\u0442\u0438?",\r
+toolbar_focus:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u043F\u0430\u043D\u0435\u043B\u044C \u043A\u043D\u043E\u043F\u043E\u043A - Alt+Q, \u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u0434\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0443 - Alt-Z, \u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0448\u043B\u044F\u0445\u0443 - Alt-X",\r
+more_colors:"\u0411\u0456\u043B\u044C\u0448\u0435 \u043A\u043E\u043B\u044C\u043E\u0440\u0456\u0432",\r
+advanced_image_delta_width:"25",\r
+advanced_link_delta_width:"15"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('uk.standard_dlg',{\r
+about_title:"\u041F\u0440\u043E \u043F\u0440\u043E\u0434\u0443\u043A\u0442 TinyMCE",\r
+about_general:"\u041F\u0440\u043E \u043F\u0440\u043E\u0434\u0443\u043A\u0442...",\r
+about_help:"\u0414\u043E\u043F\u043E\u043C\u043E\u0433\u0430",\r
+about_license:"\u041B\u0456\u0446\u0435\u043D\u0437\u0456\u044F",\r
+about_plugins:"\u041F\u043B\u0430\u0433\u0456\u043D\u0438",\r
+about_plugin:"\u041F\u043B\u0430\u0433\u0456\u043D",\r
+about_author:"\u0410\u0432\u0442\u043E\u0440",\r
+about_version:"\u0412\u0435\u0440\u0441\u0456\u044F",\r
+about_loaded:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u0456 \u043F\u043B\u0430\u0433\u0456\u043D\u0438",\r
+anchor_title:"\u0414\u043E\u0434\u0430\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u044F\u043A\u0456\u0440",\r
+anchor_name:"\u041D\u0430\u0437\u0432\u0430 \u044F\u043A\u043E\u0440\u044F",\r
+code_title:"\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 HTML \u043A\u043E\u0434\u0443",\r
+code_wordwrap:"\u041F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0438 \u0441\u043B\u043E\u0432\u0430",\r
+colorpicker_title:"\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u043A\u043E\u043B\u0456\u0440",\r
+colorpicker_picker_tab:"\u041F\u0456\u043F\u0435\u0442\u043A\u0430",\r
+colorpicker_picker_title:"\u041F\u0456\u043F\u0435\u0442\u043A\u0430 \u043A\u043E\u043B\u044C\u043E\u0440\u0443",\r
+colorpicker_palette_tab:"\u041F\u0430\u043B\u0456\u0442\u0440\u0430",\r
+colorpicker_palette_title:"\u041F\u0430\u043B\u0456\u0442\u0440\u0430 \u043A\u043E\u043B\u044C\u043E\u0440\u0456\u0432",\r
+colorpicker_named_tab:"\u0417\u0430 \u043D\u0430\u0437\u0432\u043E\u044E",\r
+colorpicker_named_title:"\u0417\u0430 \u043D\u0430\u0437\u0432\u043E\u044E",\r
+colorpicker_color:"\u041A\u043E\u043B\u0456\u0440:",\r
+colorpicker_name:"\u041D\u0430\u0439\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u043D\u044F:",\r
+charmap_title:"\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u0434\u043E\u0432\u0456\u043B\u044C\u043D\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+image_title:"\u0414\u043E\u0434\u0430\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",\r
+image_src:"\u0410\u0434\u0440\u0435\u0441\u0430",\r
+image_alt:"\u041E\u043F\u0438\u0441",\r
+image_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u044C",\r
+image_border:"\u0413\u0440\u0430\u043D\u0438\u0446\u044F",\r
+image_dimensions:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438",\r
+image_vspace:"\u0412\u0435\u0440\u0442. \u0432\u0456\u0434\u0441\u0442\u0443\u043F",\r
+image_hspace:"\u0413\u043E\u0440\u0438\u0437. \u0432\u0456\u0434\u0441\u0442\u0443\u043F",\r
+image_align:"\u0412\u0438\u0440\u0456\u0432\u043D\u044E\u0432\u0430\u043D\u043D\u044F",\r
+image_align_baseline:"\u041F\u043E \u0431\u0430\u0437\u043E\u0432\u0456\u0439 \u043B\u0438\u043D\u0456\u0457",\r
+image_align_top:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u044C\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+image_align_middle:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+image_align_bottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u044C\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+image_align_texttop:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u044C\u043E\u043C\u0443 \u043A\u0440\u0430\u044E \u0442\u0435\u043A\u0441\u0442\u0443",\r
+image_align_textbottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u044C\u043E\u043C\u0443 \u043A\u0440\u0430\u044E \u0442\u0435\u043A\u0441\u0442\u0443",\r
+image_align_left:"\u041F\u043E \u043B\u0456\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+image_align_right:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+link_title:"\u0414\u043E\u0434\u0430\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",\r
+link_url:"\u0410\u0434\u0440\u0435\u0441\u0430 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",\r
+link_target:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0432...",\r
+link_target_same:"\u0446\u044C\u043E\u043C\u0443 \u0436\u0435 \u0432\u0456\u043A\u043D\u0456",\r
+link_target_blank:"\u043D\u043E\u0432\u043E\u043C\u0443 \u0432\u0456\u043A\u043D\u0456",\r
+link_titlefield:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A",\r
+link_is_email:"\u0412\u0432\u0435\u0434\u0435\u043D\u0438\u0439 URL \u0441\u0445\u043E\u0436\u0438\u0439 \u043D\u0430 email \u0430\u0434\u0440\u0435\u0441\u0443, \u0432\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043E\u0434\u0430\u0442\u0438 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u0438\u0439 \u043F\u0440\u0435\u0444\u0456\u043A\u0441 mailto:?",\r
+link_is_external:"\u0412\u0432\u0435\u0434\u0435\u043D\u0438\u0439 URL \u0441\u0445\u043E\u0436\u0438\u0439 \u043D\u0430 \u0437\u043E\u0432\u043D\u0456\u0448\u043D\u0454 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F, \u0432\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043E\u0434\u0430\u0442\u0438 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u0438\u0439 \u043F\u0440\u0435\u0444\u0456\u043A\u0441 http://?",\r
+link_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u044C"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('vi.standard',{\r
+style_select:"Lang",\r
+font_size:"C\u1EE1 ch\u1EEF",\r
+fontdefault:"Ph\u00F4ng ch\u1EEF",\r
+block:"\u0110\u1ECBnh d\u1EA1ng",\r
+paragraph:"\u0110o\u1EA1n v\u0103n b\u1EA3n",\r
+div:"Div",\r
+address:"\u0110\u1ECBa ch\u1EC9",\r
+pre:"Kh\u00F4ng \u0111\u1ECBnh d\u1EA1ng",\r
+h1:"Ti\u00EAu \u0111\u1EC1 1",\r
+h2:"Ti\u00EAu \u0111\u1EC1 2",\r
+h3:"Ti\u00EAu \u0111\u1EC1 3",\r
+h4:"Ti\u00EAu \u0111\u1EC1 4",\r
+h5:"Ti\u00EAu \u0111\u1EC1 5",\r
+h6:"Ti\u00EAu \u0111\u1EC1 6",\r
+blockquote:"\u0110\u1ECBnh d\u1EA1ng kh\u1ED1i",\r
+code:"M\u00E3",\r
+samp:"M\u00E3 v\u00ED d\u1EE5",\r
+dt:"T\u00EAn \u0111\u1ECBnh ngh\u0129a ",\r
+dd:"M\u00F4 t\u1EA3 \u0111\u1ECBnh ngh\u0129a",\r
+bold_desc:"\u0110\u1EADm (Ctrl+B)",\r
+italic_desc:"Nghi\u00EAng (Ctrl+I)",\r
+underline_desc:"G\u1EA1ch ch\u00E2n (Ctrl+U)",\r
+striketrough_desc:"G\u1EA1ch x\u00F3a",\r
+justifyleft_desc:"C\u0103n tr\u00E1i",\r
+justifycenter_desc:"C\u0103n gi\u1EEFa",\r
+justifyright_desc:"C\u0103n ph\u1EA3i",\r
+justifyfull_desc:"C\u0103n \u0111\u1EC1u",\r
+bullist_desc:"Danh s\u00E1ch",\r
+numlist_desc:"Danh s\u00E1ch th\u1EE9 t\u1EF1",\r
+outdent_desc:"Gi\u1EA3m l\u1EC1 tr\u00E1i",\r
+indent_desc:"T\u0103ng l\u1EC1 tr\u00E1i",\r
+undo_desc:"Kh\u00F4i ph\u1EE5c (Ctrl+Z)",\r
+redo_desc:"L\u1EB7p l\u1EA1i (Ctrl+Y)",\r
+link_desc:"Ch\u00E8n/s\u1EEDa li\u00EAn k\u1EBFt",\r
+unlink_desc:"X\u00F3a li\u00EAn k\u1EBFt",\r
+image_desc:"Ch\u00E8n/s\u1EEDa h\u00ECnh \u1EA3nh",\r
+cleanup_desc:"D\u1ECDn d\u1EB9p m\u00E3 l\u1ED9n x\u1ED9n",\r
+code_desc:"S\u1EEDa m\u00E3 ngu\u1ED3n HTML",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Ch\u00E8n thanh ngang",\r
+removeformat_desc:"X\u00F3a \u0111\u1ECBnh d\u1EA1ng",\r
+custom1_desc:"M\u00F4 t\u1EA3 c\u1EE7a b\u1EA1n \u1EDF \u0111\u00E2y",\r
+forecolor_desc:"Ch\u1ECDn m\u00E0u ch\u1EEF",\r
+backcolor_desc:"Ch\u1ECDn m\u00E0u n\u1EC1n",\r
+charmap_desc:"Ch\u00E8n k\u00FD t\u1EF1 \u0111\u1EB7c bi\u1EC7t",\r
+visualaid_desc:"B\u1EADt/t\u1EAFt c\u00E1c ph\u1EA7n t\u1EED \u1EA9n",\r
+anchor_desc:"Ch\u00E8n/s\u1EEDa m\u1ED1c (anchor)",\r
+cut_desc:"C\u1EAFt",\r
+copy_desc:"Sao ch\u00E9p",\r
+paste_desc:"D\u00E1n",\r
+image_props_desc:"Thu\u1ED9c t\u00EDnh h\u00ECnh \u1EA3nh",\r
+newdocument_desc:"V\u0103n b\u1EA3n m\u1EDBi",\r
+help_desc:"Gi\u00FAp \u0111\u1EE1",\r
+blockquote_desc:"\u0110\u1ECBnh d\u1EA1ng kh\u1ED1i",\r
+clipboard_msg:"Sao ch\u00E9p/C\u1EAFt/D\u00E1n kh\u00F4ng ho\u1EA1t \u0111\u1ED9ng tr\u00EAn Mozilla v\u00E0 Firefox.\nB\u1EA1n mu\u1ED1n xem th\u00EAm th\u00F4ng tin v\u1EC1 v\u1EA5n \u0111\u1EC1 n\u00E0y?",\r
+path:"D\u01B0\u1EDDng d\u1EABn",\r
+newdocument:"B\u1EA1n c\u00F3 ch\u1EAFc ch\u1EAFn mu\u1ED1n x\u00F3a t\u1EA5t c\u1EA3 n\u1ED9i dung \u0111\u00E3 so\u1EA1n?",\r
+toolbar_focus:"Nh\u1EA3y \u0111\u1EBFn thanh c\u00F4ng c\u1EE5 - Alt+Q, Nh\u1EA3y \u0111\u1EBFn \u00F4 so\u1EA1n th\u1EA3o - Alt-Z, Nh\u1EA3y \u0111\u1EBFn \u0111\u01B0\u1EDDng d\u1EABn - Alt-X",\r
+more_colors:"Nhi\u1EC1u m\u00E0u h\u01A1n"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('vi.standard_dlg',{\r
+about_title:"Gi\u1EDBi thi\u1EC7u TinyMCE",\r
+about_general:"Gi\u1EDBi thi\u1EC7u",\r
+about_help:"Gi\u00FAp \u0111\u1EE1",\r
+about_license:"Gi\u1EA5y ph\u00E9p",\r
+about_plugins:"C\u00E1c ph\u1EA7n m\u1EDF r\u1ED9ng",\r
+about_plugin:"Ph\u1EA7n m\u1EDF r\u1ED9ng",\r
+about_author:"T\u00E1c gi\u1EA3",\r
+about_version:"Phi\u00EAn b\u1EA3n",\r
+about_loaded:"C\u00E1c ph\u1EA7n m\u1EDF r\u1ED9ng \u0111\u00E3 n\u1EA1p",\r
+anchor_title:"Ch\u00E8n/s\u1EEDa m\u1ED1c (anchor)",\r
+anchor_name:"T\u00EAn m\u1ED1c (anchor)",\r
+code_title:"So\u1EA1n M\u00E3 HTML",\r
+code_wordwrap:"Xu\u1ED1ng d\u00F2ng",\r
+colorpicker_title:"Ch\u1ECDn m\u1ED9t m\u00E0u",\r
+colorpicker_picker_tab:"B\u1ED9 ch\u1ECDn",\r
+colorpicker_picker_title:"B\u1ED9 ch\u1ECDn m\u00E0u",\r
+colorpicker_palette_tab:"B\u1EA3ng",\r
+colorpicker_palette_title:"B\u1EA3ng m\u00E0u",\r
+colorpicker_named_tab:"\u0110\u00E3 c\u00F3 t\u00EAn",\r
+colorpicker_named_title:"M\u00E0u \u0111\u00E3 c\u00F3 t\u00EAn",\r
+colorpicker_color:"M\u00E0u:",\r
+colorpicker_name:"T\u00EAn:",\r
+charmap_title:"Ch\u1ECDn k\u00FD t\u1EF1 \u0111\u1EB7c bi\u1EC7t",\r
+image_title:"Ch\u00E8n/s\u1EEDa h\u00ECnh \u1EA3nh",\r
+image_src:"D\u01B0\u1EDDng d\u1EABn \u0111\u1EBFn h\u00ECnh \u1EA3nh",\r
+image_alt:"M\u00F4 t\u1EA3 h\u00ECnh \u1EA3nh",\r
+image_list:"Danh s\u00E1ch h\u00ECnh \u1EA3nh",\r
+image_border:"Vi\u1EC1n",\r
+image_dimensions:"K\u00EDch th\u01B0\u1EDBc",\r
+image_vspace:"Kho\u1EA3ng c\u00E1ch d\u1ECDc",\r
+image_hspace:"Kho\u1EA3ng c\u00E1ch ngang",\r
+image_align:"C\u0103n l\u1EC1",\r
+image_align_baseline:"\u0110\u01B0\u1EDDng c\u01A1 b\u1EA3n",\r
+image_align_top:"Tr\u00EAn",\r
+image_align_middle:"Gi\u1EEFa",\r
+image_align_bottom:"\u0110\u00E1y",\r
+image_align_texttop:"Tr\u00EAn c\u1EE7a ch\u1EEF",\r
+image_align_textbottom:"\u0110\u00E1y c\u1EE7a ch\u1EEF",\r
+image_align_left:"Tr\u00E1i",\r
+image_align_right:"Ph\u1EA3i",\r
+link_title:"Ch\u00E8n/s\u1EEDa li\u00EAn k\u1EBFt",\r
+link_url:"Li\u00EAn k\u1EBFt",\r
+link_target:"\u0110\u00EDch",\r
+link_target_same:"M\u1EDF li\u00EAn k\u1EBFt trong c\u00F9ng c\u1EEDa s\u1ED5",\r
+link_target_blank:"M\u1EDF li\u00EAn k\u1EBFt trong c\u1EEDa s\u1ED5 m\u1EDBi",\r
+link_titlefield:"Ti\u00EAu \u0111\u1EC1",\r
+link_is_email:"Li\u00EAn k\u1EBFt b\u1EA1n nh\u1EADp c\u00F3 v\u1EBB nh\u01B0 l\u00E0 m\u1ED9t \u0111\u1ECBa ch\u1EC9 email, b\u1EA1n c\u00F3 mu\u1ED1n th\u00EAm ph\u1EA7n mailto: v\u00E0o tr\u01B0\u1EDBc li\u00EAn k\u1EBFt?",\r
+link_is_external:"Li\u00EAn k\u1EBFt b\u1EA1n nh\u1EADp c\u00F3 v\u1EBB nh\u01B0 l\u00E0 m\u1ED9t trang web ngo\u00E0i, b\u1EA1n c\u00F3 mu\u1ED1n th\u00EAm ph\u1EA7n http:// v\u00E0o tr\u01B0\u1EDBc li\u00EAn k\u1EBFt?",\r
+link_list:"Danh s\u00E1ch li\u00EAn k\u1EBFt"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('zh.standard',{\r
+style_select:"Lang",\r
+font_size:"\u5B57\u9AD4\u5927\u5C0F",\r
+fontdefault:"\u5B57\u9AD4",\r
+block:"\u683C\u5F0F",\r
+paragraph:"\u6BB5\u843D",\r
+div:"Div",\r
+address:"\u5730\u5740",\r
+pre:"\u9ED8\u8A8D\u683C\u5F0F",\r
+h1:"\u6A19\u984C 1",\r
+h2:"\u6A19\u984C 2",\r
+h3:"\u6A19\u984C 3",\r
+h4:"\u6A19\u984C 4",\r
+h5:"\u6A19\u984C 5",\r
+h6:"\u6A19\u984C 6",\r
+blockquote:"\u5F15\u7528",\r
+code:"\u4EE3\u78BC",\r
+samp:"\u7A0B\u5F0F\u7BC4\u4F8B",\r
+dt:"\u540D\u8A5E\u5B9A\u7FA9",\r
+dd:"\u540D\u8A5E\u89E3\u91CB",\r
+bold_desc:"\u7C97\u9AD4 (Ctrl+B)",\r
+italic_desc:"\u659C\u9AD4 (Ctrl+I)",\r
+underline_desc:"\u5E95\u7DDA (Ctrl+U)",\r
+striketrough_desc:"\u4E2D\u5283\u7DDA",\r
+justifyleft_desc:"\u5DE6\u5C0D\u9F4A",\r
+justifycenter_desc:"\u5C45\u4E2D",\r
+justifyright_desc:"\u53F3\u5C0D\u9F4A",\r
+justifyfull_desc:"\u5169\u7AEF\u5C0D\u9F4A",\r
+bullist_desc:"\u6E05\u55AE\u7B26\u865F",\r
+numlist_desc:"\u7DE8\u865F",\r
+outdent_desc:"\u6E1B\u5C11\u7E2E\u9032",\r
+indent_desc:"\u589E\u52A0\u7E2E\u9032",\r
+undo_desc:"\u64A4\u92B7 (Ctrl+Z)",\r
+redo_desc:"\u6062\u5FA9 (Ctrl+Y)",\r
+link_desc:"\u63D2\u5165/\u7DE8\u8F2F \u9023\u7D50",\r
+unlink_desc:"\u53D6\u6D88\u9023\u7D50",\r
+image_desc:"\u63D2\u5165/\u7DE8\u8F2F \u5716\u7247",\r
+cleanup_desc:"\u522A\u9664\u5197\u9918\u78BC",\r
+code_desc:"\u7DE8\u8F2F HTML \u539F\u59CB\u7A0B\u5F0F\u78BC",\r
+sub_desc:"\u4E0B\u6A19",\r
+sup_desc:"\u4E0A\u6A19",\r
+hr_desc:"\u63D2\u5165\u6C34\u5E73\u7DDA",\r
+removeformat_desc:"\u6E05\u9664\u6A23\u5F0F",\r
+custom1_desc:"\u5728\u6B64\u8F38\u5165\u60A8\u7684\u81EA\u8A02\u63CF\u8FF0",\r
+forecolor_desc:"\u9078\u64C7\u6587\u5B57\u984F\u8272",\r
+backcolor_desc:"\u9078\u64C7\u80CC\u666F\u984F\u8272",\r
+charmap_desc:"\u63D2\u5165\u7279\u6B8A\u7B26\u865F",\r
+visualaid_desc:"\u7DB2\u683C/\u96B1\u85CF\u7D44\u4EF6\uFF1F",\r
+anchor_desc:"\u63D2\u5165/\u7DE8\u8F2F \u9328\u9EDE",\r
+cut_desc:"\u526A\u5207 (Ctrl+X)",\r
+copy_desc:"\u8907\u88FD (Ctrl+C)",\r
+paste_desc:"\u7C98\u8CBC (Ctrl+V)",\r
+image_props_desc:"\u5716\u7247\u5C6C\u6027",\r
+newdocument_desc:"\u65B0\u5EFA\u6587\u4EF6",\r
+help_desc:"\u5E6B\u52A9",\r
+blockquote_desc:"\u5F15\u7528",\r
+clipboard_msg:"\u8907\u88FD\u3001\u526A\u5207\u548C\u7C98\u8CBC\u529F\u80FD\u5728Mozilla \u548C Firefox\u4E2D\u7121\u6CD5\u4F7F\u7528",\r
+path:"\u8DEF\u5F91",\r
+newdocument:"\u60A8\u78BA\u8A8D\u8981\u522A\u9664\u5168\u90E8\u5167\u5BB9\u55CE\uFF1F",\r
+toolbar_focus:"\u5DE5\u5177\u5217 - Alt+Q, \u7DE8\u8F2F\u5668 - Alt-Z, \u5143\u4EF6\u8DEF\u5F91 - Alt-X",\r
+more_colors:"\u66F4\u591A\u984F\u8272"\r
+});
\ No newline at end of file
--- /dev/null
+// Simplified Chinese lang variables contributed by tom_cat (thomaswangyang@gmail.com)
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- ¸ñʽ --',
+theme_code_desc : '±à¼HTMLÔ´´úÂë',
+theme_code_title : 'HTMLÔ´´úÂë±à¼Æ÷',
+theme_code_wordwrap : '×Ô¶¯»»ÐÐ',
+theme_sub_desc : '챐',
+theme_sup_desc : 'Éϱê',
+theme_hr_desc : '²åÈëˮƽÏß',
+theme_removeformat_desc : 'ÒÆ³ý¸ñʽ',
+theme_custom1_desc : 'ÕâÀïÌîдÓû§×Ô¶¨ÒåÃèÊö',
+insert_image_border : '±ß¿ò',
+insert_image_dimensions : 'άÊý',
+insert_image_vspace : '´¹Ö±¼ä¾à',
+insert_image_hspace : 'ˮƽ¼ä¾à',
+insert_image_align : '¶ÔÆë·½Ê½',
+insert_image_align_default : '-- ĬÈÏ --',
+insert_image_align_baseline : '»ùÏß',
+insert_image_align_top : '¶¥¶Ë',
+insert_image_align_middle : '¾ÓÖÐ',
+insert_image_align_bottom : 'µ×²¿',
+insert_image_align_texttop : 'ÎÄ×ÖÉÏ·½',
+insert_image_align_absmiddle : '¾ø¶Ô¾ÓÖÐ',
+insert_image_align_absbottom : '¾ø¶Ôµ×²¿',
+insert_image_align_left : '×ó¶ÔÆë',
+insert_image_align_right : 'ÓÒ¶ÔÆë',
+theme_font_size : '-- ×ֺŠ--',
+theme_fontdefault : '-- ×ÖÌå --',
+theme_block : '-- ¸ñʽ --',
+theme_paragraph : '¶ÎÂä',
+theme_div : '²ã',
+theme_address : 'µØÖ·',
+theme_pre : 'Ô¤¸ñʽ»¯',
+theme_h1 : '±êÌâ 1',
+theme_h2 : '±êÌâ 2',
+theme_h3 : '±êÌâ 3',
+theme_h4 : '±êÌâ 4',
+theme_h5 : '±êÌâ 5',
+theme_h6 : '±êÌâ 6',
+theme_colorpicker_title : 'Ñ¡ÔñÑÕÉ«',
+theme_colorpicker_apply : 'Ó¦ÓÃ',
+theme_forecolor_desc : 'Ñ¡ÔñÎÄ×ÖÑÕÉ«',
+theme_backcolor_desc : 'Ñ¡Ôñ±³¾°ÑÕÉ«',
+theme_charmap_title : 'Ñ¡ÔñÌØÊâ·ûºÅ',
+theme_charmap_desc : '²åÈëÌØÊâ·ûºÅ',
+theme_visualaid_desc : '¿ª¹Ø²»¿É¼ûÔªËØ',
+insert_anchor_title : '²åÈë/±à¼ êµã',
+insert_anchor_name : 'êµãÃû³Æ',
+theme_anchor_desc : '²åÈë/±à¼ êµã',
+theme_insert_link_titlefield : '±êÌâ',
+theme_clipboard_msg : '¼ôÇÐ/¸´ÖÆ/Õ³Ìù¹¦ÄÜÔÚ Mozilla ºÍ Firefox ä¯ÀÀÆ÷Öв»Ö§³Ö¡£\nÄúÏ£Íû»ñµÃ¸ü¶àµÄÐÅÏ¢Âð£¿',
+theme_path : '·¾¶',
+cut_desc : '¼ôÇÐ',
+copy_desc : '¸´ÖÆ',
+paste_desc : 'Õ³Ìù',
+link_list : 'Á´½ÓÁбí',
+image_list : 'ͼÏñÁбí',
+browse : 'ä¯ÀÀ',
+image_props_desc : 'ͼÏñÊôÐÔ',
+newdocument_desc : 'н¨¼äµµ',
+class_name : 'Àà',
+newdocument : 'ÄúÈ·ÈÏÒªÇå³ýËùÓÐÄÚÈÝÂð£¿',
+about_title : '¹ØÓÚ TinyMCE',
+about : '¹ØÓÚ',
+license : 'ÊÚȨÊé',
+plugins : 'ËùÓвå¼þ',
+plugin : '²å¼þ',
+author : '×÷Õß',
+version : '°æ±¾',
+loaded_plugins : '¶ÁÈ¡²å¼þ',
+help : '°ïÖú',
+not_set : '-- ¿ÕÉ趨 --',
+close : '¹Ø±Õ',
+toolbar_focus : 'Ìøµ½¹¤¾ß°´Å¥ - Alt+Q, Ìøµ½±à¼Æ÷ - Alt-Z, Ìøµ½ÔªËØÂ·¾¶ - Alt-X'
+});
--- /dev/null
+tinyMCE.addI18n('zh.standard_dlg',{\r
+about_title:"\u95DC\u65BC TinyMCE",\r
+about_general:"\u95DC\u65BC",\r
+about_help:"\u5E6B\u52A9",\r
+about_license:"\u6388\u6B0A",\r
+about_plugins:"\u5168\u90E8\u5916\u639B\u7A0B\u5F0F",\r
+about_plugin:"\u5916\u639B\u7A0B\u5F0F",\r
+about_author:"\u4F5C\u8005",\r
+about_version:"\u7248\u672C",\r
+about_loaded:"\u5DF2\u8F09\u5165\u7684\u5916\u639B\u7A0B\u5F0F",\r
+anchor_title:"\u63D2\u5165/\u7DE8\u8F2F \u9328\u9EDE",\r
+anchor_name:"\u9328\u9EDE\u540D\u7A31",\r
+code_title:"HTML \u539F\u59CB\u7A0B\u5F0F\u78BC\u7DE8\u8F2F\u5668",\r
+code_wordwrap:"\u81EA\u52D5\u63DB\u884C",\r
+colorpicker_title:"\u9078\u64C7\u984F\u8272",\r
+colorpicker_picker_tab:"\u9078\u64C7\u5668",\r
+colorpicker_picker_title:"\u53D6\u8272\u5668",\r
+colorpicker_palette_tab:"\u8272\u8B5C",\r
+colorpicker_palette_title:"\u8272\u8B5C\u984F\u8272",\r
+colorpicker_named_tab:"\u9810\u8A2D\u503C",\r
+colorpicker_named_title:"\u9ED8\u8A8D\u7684\u984F\u8272",\r
+colorpicker_color:"\u984F\u8272:",\r
+colorpicker_name:"\u8272\u540D:",\r
+charmap_title:"\u63D2\u5165\u7279\u6B8A\u7B26\u865F",\r
+image_title:"\u63D2\u5165/\u7DE8\u8F2F \u5716\u7247",\r
+image_src:"\u5716\u7247\u7DB2\u5740",\r
+image_alt:"\u5716\u7247\u8AAA\u660E",\r
+image_list:"\u5716\u7247\u6E05\u55AE",\r
+image_border:"\u908A\u6846",\r
+image_dimensions:"\u5C3A\u5BF8",\r
+image_vspace:"\u5782\u76F4\u9593\u8DDD",\r
+image_hspace:"\u6C34\u6E96\u9593\u8DDD",\r
+image_align:"\u5C0D\u9F4A\u65B9\u5F0F",\r
+image_align_baseline:"\u57FA\u7DDA",\r
+image_align_top:"\u9802\u90E8\u5C0D\u9F4A",\r
+image_align_middle:"\u4E2D\u90E8\u5C0D\u9F4A",\r
+image_align_bottom:"\u5E95\u90E8\u5C0D\u9F4A",\r
+image_align_texttop:"\u6587\u5B57\u4E0A\u65B9",\r
+image_align_textbottom:"\u6587\u5B57\u4E0B\u65B9",\r
+image_align_left:"\u5DE6\u5C0D\u9F4A",\r
+image_align_right:"\u53F3\u5C0D\u9F4A",\r
+link_title:"\u63D2\u5165/\u7DE8\u8F2F \u9023\u7D50",\r
+link_url:"\u9023\u7D50\u7DB2\u5740",\r
+link_target:"\u76EE\u6A19",\r
+link_target_same:"\u7576\u524D\u8996\u7A97\u6253\u958B",\r
+link_target_blank:"\u65B0\u8996\u7A97\u6253\u958B",\r
+link_titlefield:"\u6A19\u984C",\r
+link_is_email:"\u60A8\u8F38\u5165\u7684\u61C9\u8A72\u662F\u4E00\u500B\u96FB\u5B50\u90F5\u5BC4\u5730\u5740\uFF0C\u662F\u5426\u9700\u8981\u5728\u7DB2\u5740\u524D\u52A0\u4E0A mailto: ? ",\r
+link_is_external:"\u60A8\u8F38\u5165\u7684\u7DB2\u5740\u61C9\u8A72\u662F\u4E00\u500B\u5916\u90E8\u9023\u7D50\uFF0C\u662F\u5426\u9700\u8981\u5728\u7DB2\u5740\u524D\u52A0\u4E0A http:// ?",\r
+link_list:"\u9023\u7D50\u6E05\u55AE"\r
+});
\ No newline at end of file
--- /dev/null
+// Traditional Chinese BIG-5; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// ÁcÅ餤¤å BIG-5 ¡F¼Æ¦ìÀ³¥Î§{»s§@¡F twapweb_AT_gmail_DOT_com
+
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- ¦¡¼Ë --',
+theme_code_desc : '½s¿è HTML ½X',
+theme_code_title : 'HTML ½X½s¿è¾¹',
+theme_code_wordwrap : '¦rµüÀô¶',
+theme_sub_desc : '¤U¼Ð',
+theme_sup_desc : '¤W¼Ð',
+theme_hr_desc : '´¡¤J¤ô¥½u',
+theme_removeformat_desc : '²M°£®æ¦¡³]©w',
+theme_custom1_desc : '¦Ûq»¡©ú¦b¦¹¿é¤J',
+insert_image_border : '®Ø½u',
+insert_image_dimensions : '¤Ø¤o',
+insert_image_vspace : '¹Ï¹³¤W¤U°¼¶¡¶Z',
+insert_image_hspace : '¹Ï¹³¥ª¥kÃä¶¡¶Z',
+insert_image_align : '««ª½¹ï»ô',
+insert_image_align_default : '-- ¥¼³]¸m --',
+insert_image_align_baseline : '©³½u',
+insert_image_align_top : '³»ºÝ',
+insert_image_align_middle : '¤¤½u',
+insert_image_align_bottom : '©³³¡',
+insert_image_align_texttop : '¤å¦r³»ºÝ',
+insert_image_align_absmiddle : 'µ´¹ï¤¤½u',
+insert_image_align_absbottom : 'µ´¹ï©³³¡',
+insert_image_align_left : '¥ª',
+insert_image_align_right : '¥k',
+theme_font_size : '-- ¦rÅé¤j¤p --',
+theme_fontdefault : '-- ¦rÅé¿ï¾Ü --',
+theme_block : '-- ®æ¦¡ --',
+theme_paragraph : '¬q¸¨',
+theme_div : '¤À¬É',
+theme_address : '¦ì¸m',
+theme_pre : '¤º©w®æ¦¡',
+theme_h1 : '¼ÐÃD¤@',
+theme_h2 : '¼ÐÃD¤G',
+theme_h3 : '¼ÐÃD¤T',
+theme_h4 : '¼ÐÃD¥|',
+theme_h5 : '¼ÐÃD¤',
+theme_h6 : '¼ÐÃD¤»',
+theme_colorpicker_title : '¿ï¨úÃC¦â',
+theme_colorpicker_apply : '®M¥Î',
+theme_forecolor_desc : '¿ï¨ú¤å¦rÃC¦â',
+theme_backcolor_desc : '¿ï¨úI´ºÃC¦â',
+theme_charmap_title : '¿ï¨ú¦Ûq¦r¤¸',
+theme_charmap_desc : '´¡¤J¦Ûq¦r¤¸',
+theme_visualaid_desc : '¤Á´««ü¥Ü©Î«D¥i¨£¤¸¥ó',
+insert_anchor_title : '´¡¤J©Î½s¿è³sµ²ÂI',
+insert_anchor_name : '³sµ²ÂI¦WºÙ',
+theme_anchor_desc : '´¡¤J©Î½s¿è³sµ²ÂI',
+theme_insert_link_titlefield : '¼ÐÃD',
+theme_clipboard_msg : '¦b Mozilla ©M Firefox ¤¤µLªk¨Ï¥Î½Æ»s©Î°Å¤U©Î¶K¤W¥\¯à¡C\n»Ýn§ó¦hÃö©ó¦¹ªº°T®§¶Ü¡H',
+theme_path : '¸ô®|',
+cut_desc : '°Å¤U',
+copy_desc : '½Æ»s',
+paste_desc : '¶K¤W',
+link_list : '³sµ²¦Cªí',
+image_list : '¹ÏÀɦCªí',
+browse : 'ÂsÄý',
+image_props_desc : '¹ÏÀÉÄÝ©Ê',
+newdocument_desc : '·s¤å¥ó',
+class_name : '¤ÀÃþ',
+newdocument : '½T©wn²M°£¥þ³¡¤º®e¡H',
+about_title : 'Ãö©ó TinyMCE',
+about : 'Ãö©ó',
+license : '±ÂÅv',
+plugins : 'À³¥Î®M¥ó',
+plugin : 'À³¥Î®M¥ó',
+author : '§@ªÌ',
+version : 'ª©¥»',
+loaded_plugins : '¤w¸ü¤JÀ³¥Î®M¥ó',
+help : '¨ó§U',
+not_set : '-- ¥¼³]¸m --',
+close : 'Ãö³¬',
+toolbar_focus : '§Ö³t±Ò¥Î¤u¨ã¯Ã - Alt+Q¡F§Ö³t±Ò¥Î½s¿è¾¹ - Alt-Z¡F§Ö³t²¾¦Ü¤¸¥ó¸ô®| - Alt-X'
+});
--- /dev/null
+// Traditional Chinese UTF-8; Twapweb Site translated; twapweb_AT_gmail_DOT_com
+// 繁體中文 UTF-8 ;數位應用坊製作; twapweb_AT_gmail_DOT_com
+
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- 式樣 --',
+theme_code_desc : '編輯 HTML 碼',
+theme_code_title : 'HTML 碼編輯器',
+theme_code_wordwrap : '字詞環繞',
+theme_sub_desc : '下標',
+theme_sup_desc : '上標',
+theme_hr_desc : '插入水平線',
+theme_removeformat_desc : '清除格式設定',
+theme_custom1_desc : '自訂說明在此輸入',
+insert_image_border : '框線',
+insert_image_dimensions : '尺寸',
+insert_image_vspace : '圖像上下側間距',
+insert_image_hspace : '圖像左右邊間距',
+insert_image_align : '垂直對齊',
+insert_image_align_default : '-- 未設置 --',
+insert_image_align_baseline : '底線',
+insert_image_align_top : '頂端',
+insert_image_align_middle : '中線',
+insert_image_align_bottom : '底部',
+insert_image_align_texttop : '文字頂端',
+insert_image_align_absmiddle : '絕對中線',
+insert_image_align_absbottom : '絕對底部',
+insert_image_align_left : '左',
+insert_image_align_right : '右',
+theme_font_size : '-- 字體大小 --',
+theme_fontdefault : '-- 字體選擇 --',
+theme_block : '-- 格式 --',
+theme_paragraph : '段落',
+theme_div : '分界',
+theme_address : '位置',
+theme_pre : '內定格式',
+theme_h1 : '標題一',
+theme_h2 : '標題二',
+theme_h3 : '標題三',
+theme_h4 : '標題四',
+theme_h5 : '標題五',
+theme_h6 : '標題六',
+theme_colorpicker_title : '選取顏色',
+theme_colorpicker_apply : '套用',
+theme_forecolor_desc : '選取文字顏色',
+theme_backcolor_desc : '選取背景顏色',
+theme_charmap_title : '選取自訂字元',
+theme_charmap_desc : '插入自訂字元',
+theme_visualaid_desc : '切換指示或非可見元件',
+insert_anchor_title : '插入或編輯連結點',
+insert_anchor_name : '連結點名稱',
+theme_anchor_desc : '插入或編輯連結點',
+theme_insert_link_titlefield : '標題',
+theme_clipboard_msg : '在 Mozilla 和 Firefox 中無法使用複製或剪下或貼上功能。\n需要更多關於此的訊息嗎?',
+theme_path : '路徑',
+cut_desc : '剪下',
+copy_desc : '複製',
+paste_desc : '貼上',
+link_list : '連結列表',
+image_list : '圖檔列表',
+browse : '瀏覽',
+image_props_desc : '圖檔屬性',
+newdocument_desc : '新文件',
+class_name : '分類',
+newdocument : '確定要清除全部內容?',
+about_title : '關於 TinyMCE',
+about : '關於',
+license : '授權',
+plugins : '應用套件',
+plugin : '應用套件',
+author : '作者',
+version : '版本',
+loaded_plugins : '已載入應用套件',
+help : '協助',
+not_set : '-- 未設置 --',
+close : '關閉',
+toolbar_focus : '快速啟用工具紐 - Alt+Q;快速啟用編輯器 - Alt-Z;快速移至元件路徑 - Alt-X'
+});
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <title>{#standard_dlg.link_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js?v=307"></script>\r
+ <script type="text/javascript" src="../../utils/mctabs.js?v=307"></script>\r
+ <script type="text/javascript" src="form_utils.js?v=307"></script>\r
+ <script type="text/javascript" src="../../utils/validate.js?v=307"></script>\r
+ <script type="text/javascript" src="js/link.js?v=307"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body id="link" style="display: none">\r
+<form onsubmit="LinkDialog.update();return false;" action="#">\r
+ <div class="tabs">\r
+ <ul>\r
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#standard_dlg.link_title}</a></span></li>\r
+ </ul>\r
+ </div>\r
+\r
+ <div class="panel_wrapper">\r
+ <div id="general_panel" class="panel current">\r
+\r
+ <table border="0" cellpadding="4" cellspacing="0">\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="href">{#standard_dlg.link_url}</label></td>\r
+ <td><table border="0" cellspacing="0" cellpadding="0"> \r
+ <tr> \r
+ <td><input id="href" name="href" type="text" class="mceFocus" value="" style="width: 200px" onchange="LinkDialog.checkPrefix(this);" /></td> \r
+ <td id="hrefbrowsercontainer"> </td>\r
+ </tr> \r
+ </table></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="link_list">{#standard_dlg.link_list}</label></td>\r
+ <td><select id="link_list" name="link_list" onchange="document.getElementById('href').value=this.options[this.selectedIndex].value;"></select></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label id="targetlistlabel" for="targetlist">{#standard_dlg.link_target}</label></td>\r
+ <td><select id="target_list" name="target_list"></select></td>\r
+ </tr>\r
+ <tr>\r
+ <td nowrap="nowrap"><label for="linktitle">{#standard_dlg.link_titlefield}</label></td>\r
+ <td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px" /></td>\r
+ </tr>\r
+ <tr>\r
+ <td><label for="class_list">{#class_name}</label></td>\r
+ <td><select id="class_list" name="class_list"></select></td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+ </div>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" id="insert" name="insert" value="{#insert}" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
+ </div>\r
+ </div>\r
+</form>\r
+</body>\r
+</html>\r
--- /dev/null
+body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}\r
+body {background:#FFF;}\r
+body.mceForceColors {background:#FFF; color:#000;}\r
+h1 {font-size: 2em}\r
+h2 {font-size: 1.5em}\r
+h3 {font-size: 1.17em}\r
+h4 {font-size: 1em}\r
+h5 {font-size: .83em}\r
+h6 {font-size: .75em}\r
+.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}\r
+a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(img/items.gif) no-repeat bottom left;}\r
+img.mceItemAnchor {width:12px; height:12px; background:url(img/items.gif) no-repeat;}\r
+img {border:0;}\r
+table {cursor:default}\r
+table td, table th {cursor:text}\r
+\r
+/* IE */\r
+* html body {\r
+scrollbar-3dlight-color:#F0F0EE;\r
+scrollbar-arrow-color:#676662;\r
+scrollbar-base-color:#F0F0EE;\r
+scrollbar-darkshadow-color:#DDD;\r
+scrollbar-face-color:#E0E0DD;\r
+scrollbar-highlight-color:#F0F0EE;\r
+scrollbar-shadow-color:#F0F0EE;\r
+scrollbar-track-color:#F5F5F5;\r
+}\r
--- /dev/null
+/* Generic */\r
+body {\r
+font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;\r
+scrollbar-3dlight-color:#F0F0EE;\r
+scrollbar-arrow-color:#676662;\r
+scrollbar-base-color:#F0F0EE;\r
+scrollbar-darkshadow-color:#DDDDDD;\r
+scrollbar-face-color:#E0E0DD;\r
+scrollbar-highlight-color:#F0F0EE;\r
+scrollbar-shadow-color:#F0F0EE;\r
+scrollbar-track-color:#F5F5F5;\r
+background:#F0F0EE;\r
+padding:0;\r
+margin:8px 8px 0 8px;\r
+}\r
+\r
+html {background:#F0F0EE;}\r
+td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
+textarea {resize:none;outline:none;}\r
+a:link, a:visited {color:black;}\r
+a:hover {color:#2B6FB6;}\r
+\r
+/* Forms */\r
+fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}\r
+legend {color:#2B6FB6; font-weight:bold;}\r
+label.msg {display:none;}\r
+label.invalid {color:#EE0000; display:inline;}\r
+input.invalid {border:1px solid #EE0000;}\r
+input {background:#FFF; border:1px solid #CCC;}\r
+input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
+input, select, textarea {border:1px solid #808080;}\r
+input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}\r
+input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}\r
+.input_noborder {border:0;}\r
+\r
+/* Buttons */\r
+#insert, #cancel, input.button, .updateButton {\r
+border:0; margin:0; padding:0;\r
+font-weight:bold;\r
+width:94px; height:26px;\r
+background:url(img/buttons.png) 0 -26px;\r
+cursor:pointer;\r
+padding-bottom:2px;\r
+}\r
+\r
+#insert {background:url(img/buttons.png) 0 -52px;}\r
+#cancel {background:url(img/buttons.png) 0 0;}\r
+\r
+/* Browse */\r
+a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}\r
+.mceOldBoxModel a.browse span {width:22px; height:20px;}\r
+a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}\r
+a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}\r
+a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}\r
+a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}\r
+.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}\r
+a.pickcolor:hover span {background-color:#B2BBD0;}\r
+a.pickcolor:hover span.disabled {}\r
+\r
+/* Charmap */\r
+table.charmap {border:1px solid #AAA; text-align:center}\r
+td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}\r
+#charmap a {display:block; color:#000; text-decoration:none; border:0}\r
+#charmap a:hover {background:#CCC;color:#2B6FB6}\r
+#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}\r
+#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}\r
+\r
+/* Source */\r
+.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}\r
+.mceActionPanel {margin-top:5px;}\r
+\r
+/* Tabs classes */\r
+.tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;}\r
+.tabs ul {margin:0; padding:0; list-style:none;}\r
+.tabs li {float:left; background:url(img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}\r
+.tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}\r
+.tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}\r
+.tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;}\r
+.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}\r
+.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}\r
+\r
+/* Panels */\r
+.panel_wrapper div.panel {display:none;}\r
+.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}\r
+.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}\r
+\r
+/* Columns */\r
+.column {float:left;}\r
+.properties {width:100%;}\r
+.properties .column1 {}\r
+.properties .column2 {text-align:left;}\r
+\r
+/* Titles */\r
+h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}\r
+h3 {font-size:14px;}\r
+.title {font-size:12px; font-weight:bold; color:#2B6FB6;}\r
+\r
+/* Dialog specific */\r
+#link .panel_wrapper, #link div.current {height:125px;}\r
+#image .panel_wrapper, #image div.current {height:200px;}\r
+#plugintable thead {font-weight:bold; background:#DDD;}\r
+#plugintable, #about #plugintable td {border:1px solid #919B9C;}\r
+#plugintable {width:96%; margin-top:10px;}\r
+#pluginscontainer {height:290px; overflow:auto;}\r
+#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}\r
+#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}\r
+#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}\r
+#colorpicker #light div {overflow:hidden;}\r
+#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}\r
+#colorpicker .panel_wrapper div.current {height:175px;}\r
+#colorpicker #namedcolors {width:150px;}\r
+#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}\r
+#colorpicker #colornamecontainer {margin-top:5px;}\r
+#colorpicker #picker_panel fieldset {margin:auto;width:325px;}
\ No newline at end of file
--- /dev/null
+/* Reset */\r
+.defaultSkin table, .defaultSkin tbody, .defaultSkin a, .defaultSkin img, .defaultSkin tr, .defaultSkin div, .defaultSkin td, .defaultSkin iframe, .defaultSkin span, .defaultSkin *, .defaultSkin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}\r
+.defaultSkin a:hover, .defaultSkin a:link, .defaultSkin a:visited, .defaultSkin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
+.defaultSkin table td {vertical-align:middle}\r
+\r
+/* Containers */\r
+.defaultSkin table {background:#F0F0EE}\r
+.defaultSkin iframe {display:block; background:#FFF}\r
+.defaultSkin .mceToolbar {height:26px}\r
+.defaultSkin .mceLeft {text-align:left}\r
+.defaultSkin .mceRight {text-align:right}\r
+\r
+/* External */\r
+.defaultSkin .mceExternalToolbar {position:absolute; border:1px solid #CCC; border-bottom:0; display:none;}\r
+.defaultSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;}\r
+.defaultSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}\r
+\r
+/* Layout */\r
+.defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC}\r
+.defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #CCC}\r
+.defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #CCC}\r
+.defaultSkin table.mceToolbar, .defaultSkin tr.mceFirst .mceToolbar tr td, .defaultSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0;}\r
+.defaultSkin td.mceToolbar {padding-top:1px; vertical-align:top}\r
+.defaultSkin .mceIframeContainer {border-top:1px solid #CCC; border-bottom:1px solid #CCC}\r
+.defaultSkin .mceStatusbar {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; display:block; height:20px}\r
+.defaultSkin .mceStatusbar div {float:left; margin:2px}\r
+.defaultSkin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize}\r
+.defaultSkin .mceStatusbar a:hover {text-decoration:underline}\r
+.defaultSkin table.mceToolbar {margin-left:3px}\r
+.defaultSkin span.mceIcon, .defaultSkin img.mceIcon {display:block; width:20px; height:20px}\r
+.defaultSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
+.defaultSkin td.mceCenter {text-align:center;}\r
+.defaultSkin td.mceCenter table {margin:0 auto; text-align:left;}\r
+.defaultSkin td.mceRight table {margin:0 0 0 auto;}\r
+\r
+/* Button */\r
+.defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px}\r
+.defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}\r
+.defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0}\r
+.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}\r
+.defaultSkin .mceButtonLabeled {width:auto}\r
+.defaultSkin .mceButtonLabeled span.mceIcon {float:left}\r
+.defaultSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}\r
+.defaultSkin .mceButtonDisabled .mceButtonLabel {color:#888}\r
+\r
+/* Separator */\r
+.defaultSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:2px 2px 0 4px}\r
+\r
+/* ListBox */\r
+.defaultSkin .mceListBox {direction:ltr}\r
+.defaultSkin .mceListBox, .defaultSkin .mceListBox a {display:block}\r
+.defaultSkin .mceListBox .mceText {padding-left:4px; width:70px; text-align:left; border:1px solid #CCC; border-right:0; background:#FFF; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}\r
+.defaultSkin .mceListBox .mceOpen {width:9px; height:20px; background:url(../../img/icons.gif) -741px 0; margin-right:2px; border:1px solid #CCC;}\r
+.defaultSkin table.mceListBoxEnabled:hover .mceText, .defaultSkin .mceListBoxHover .mceText, .defaultSkin .mceListBoxSelected .mceText {border:1px solid #A2ABC0; border-right:0; background:#FFF}\r
+.defaultSkin table.mceListBoxEnabled:hover .mceOpen, .defaultSkin .mceListBoxHover .mceOpen, .defaultSkin .mceListBoxSelected .mceOpen {background-color:#FFF; border:1px solid #A2ABC0}\r
+.defaultSkin .mceListBoxDisabled a.mceText {color:gray; background-color:transparent;}\r
+.defaultSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden}\r
+.defaultSkin .mceOldBoxModel .mceListBox .mceText {height:22px}\r
+.defaultSkin .mceOldBoxModel .mceListBox .mceOpen {width:11px; height:22px;}\r
+.defaultSkin select.mceNativeListBox {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:7pt; background:#F0F0EE; border:1px solid gray; margin-right:2px;}\r
+\r
+/* SplitButton */\r
+.defaultSkin .mceSplitButton {width:32px; height:20px; direction:ltr}\r
+.defaultSkin .mceSplitButton a, .defaultSkin .mceSplitButton span {height:20px; display:block}\r
+.defaultSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #F0F0EE; border-right:0;}\r
+.defaultSkin .mceSplitButton span.mceAction {width:20px; background:url(../../img/icons.gif) 20px 20px;}\r
+.defaultSkin .mceSplitButton a.mceOpen {width:9px; border:1px solid #F0F0EE;}\r
+.defaultSkin .mceSplitButton span.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0;}\r
+.defaultSkin table.mceSplitButtonEnabled:hover a.mceAction, .defaultSkin .mceSplitButtonHover a.mceAction, .defaultSkin .mceSplitButtonSelected a.mceAction {border:1px solid #0A246A; border-right:0; background-color:#B2BBD0}\r
+.defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {border:1px solid #0A246A;}\r
+.defaultSkin table.mceSplitButtonEnabled:hover span.mceOpen, .defaultSkin .mceSplitButtonHover span.mceOpen, .defaultSkin .mceSplitButtonSelected span.mceOpen {background-color:#B2BBD0}\r
+.defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled span.mceOpen {opacity:0.3; filter:alpha(opacity=30)}\r
+.defaultSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0}\r
+.defaultSkin .mceSplitButtonActive a.mceOpen {border-left:0;}\r
+\r
+/* ColorSplitButton */\r
+.defaultSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}\r
+.defaultSkin .mceColorSplitMenu td {padding:2px}\r
+.defaultSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}\r
+.defaultSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}\r
+.defaultSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}\r
+.defaultSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}\r
+.defaultSkin a.mceMoreColors:hover {border:1px solid #0A246A}\r
+.defaultSkin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a}\r
+.defaultSkin .mce_forecolor span.mceAction, .defaultSkin .mce_backcolor span.mceAction {overflow:hidden; height:16px}\r
+\r
+/* Menu */\r
+.defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8}\r
+.defaultSkin .mceNoIcons span.mceIcon {width:0;}\r
+.defaultSkin .mceNoIcons a .mceText {padding-left:10px}\r
+.defaultSkin .mceMenu table {background:#FFF}\r
+.defaultSkin .mceMenu a, .defaultSkin .mceMenu span, .defaultSkin .mceMenu {display:block}\r
+.defaultSkin .mceMenu td {height:20px}\r
+.defaultSkin .mceMenu a {position:relative;padding:3px 0 4px 0}\r
+.defaultSkin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}\r
+.defaultSkin .mceMenu span.mceText, .defaultSkin .mceMenu .mcePreview {font-size:11px}\r
+.defaultSkin .mceMenu pre.mceText {font-family:Monospace}\r
+.defaultSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}\r
+.defaultSkin .mceMenu .mceMenuItemEnabled a:hover, .defaultSkin .mceMenu .mceMenuItemActive {background-color:#dbecf3}\r
+.defaultSkin td.mceMenuItemSeparator {background:#DDD; height:1px}\r
+.defaultSkin .mceMenuItemTitle a {border:0; background:#EEE; border-bottom:1px solid #DDD}\r
+.defaultSkin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}\r
+.defaultSkin .mceMenuItemDisabled .mceText {color:#888}\r
+.defaultSkin .mceMenuItemSelected .mceIcon {background:url(img/menu_check.gif)}\r
+.defaultSkin .mceNoIcons .mceMenuItemSelected a {background:url(img/menu_arrow.gif) no-repeat -6px center}\r
+.defaultSkin .mceMenu span.mceMenuLine {display:none}\r
+.defaultSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;}\r
+\r
+/* Progress,Resize */\r
+.defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}\r
+.defaultSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}\r
+.defaultSkin .mcePlaceHolder {border:1px dotted gray}\r
+\r
+/* Formats */\r
+.defaultSkin .mce_formatPreview a {font-size:10px}\r
+.defaultSkin .mce_p span.mceText {}\r
+.defaultSkin .mce_address span.mceText {font-style:italic}\r
+.defaultSkin .mce_pre span.mceText {font-family:monospace}\r
+.defaultSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}\r
+.defaultSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}\r
+.defaultSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}\r
+.defaultSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}\r
+.defaultSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}\r
+.defaultSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}\r
+\r
+/* Theme */\r
+.defaultSkin span.mce_bold {background-position:0 0}\r
+.defaultSkin span.mce_italic {background-position:-60px 0}\r
+.defaultSkin span.mce_underline {background-position:-140px 0}\r
+.defaultSkin span.mce_strikethrough {background-position:-120px 0}\r
+.defaultSkin span.mce_undo {background-position:-160px 0}\r
+.defaultSkin span.mce_redo {background-position:-100px 0}\r
+.defaultSkin span.mce_cleanup {background-position:-40px 0}\r
+.defaultSkin span.mce_bullist {background-position:-20px 0}\r
+.defaultSkin span.mce_numlist {background-position:-80px 0}\r
+.defaultSkin span.mce_justifyleft {background-position:-460px 0}\r
+.defaultSkin span.mce_justifyright {background-position:-480px 0}\r
+.defaultSkin span.mce_justifycenter {background-position:-420px 0}\r
+.defaultSkin span.mce_justifyfull {background-position:-440px 0}\r
+.defaultSkin span.mce_anchor {background-position:-200px 0}\r
+.defaultSkin span.mce_indent {background-position:-400px 0}\r
+.defaultSkin span.mce_outdent {background-position:-540px 0}\r
+.defaultSkin span.mce_link {background-position:-500px 0}\r
+.defaultSkin span.mce_unlink {background-position:-640px 0}\r
+.defaultSkin span.mce_sub {background-position:-600px 0}\r
+.defaultSkin span.mce_sup {background-position:-620px 0}\r
+.defaultSkin span.mce_removeformat {background-position:-580px 0}\r
+.defaultSkin span.mce_newdocument {background-position:-520px 0}\r
+.defaultSkin span.mce_image {background-position:-380px 0}\r
+.defaultSkin span.mce_help {background-position:-340px 0}\r
+.defaultSkin span.mce_code {background-position:-260px 0}\r
+.defaultSkin span.mce_hr {background-position:-360px 0}\r
+.defaultSkin span.mce_visualaid {background-position:-660px 0}\r
+.defaultSkin span.mce_charmap {background-position:-240px 0}\r
+.defaultSkin span.mce_paste {background-position:-560px 0}\r
+.defaultSkin span.mce_copy {background-position:-700px 0}\r
+.defaultSkin span.mce_cut {background-position:-680px 0}\r
+.defaultSkin span.mce_blockquote {background-position:-220px 0}\r
+.defaultSkin .mce_forecolor span.mceAction {background-position:-720px 0}\r
+.defaultSkin .mce_backcolor span.mceAction {background-position:-760px 0}\r
+.defaultSkin span.mce_forecolorpicker {background-position:-720px 0}\r
+.defaultSkin span.mce_backcolorpicker {background-position:-760px 0}\r
+\r
+/* Plugins */\r
+.defaultSkin span.mce_advhr {background-position:-0px -20px}\r
+.defaultSkin span.mce_ltr {background-position:-20px -20px}\r
+.defaultSkin span.mce_rtl {background-position:-40px -20px}\r
+.defaultSkin span.mce_emotions {background-position:-60px -20px}\r
+.defaultSkin span.mce_fullpage {background-position:-80px -20px}\r
+.defaultSkin span.mce_fullscreen {background-position:-100px -20px}\r
+.defaultSkin span.mce_iespell {background-position:-120px -20px}\r
+.defaultSkin span.mce_insertdate {background-position:-140px -20px}\r
+.defaultSkin span.mce_inserttime {background-position:-160px -20px}\r
+.defaultSkin span.mce_absolute {background-position:-180px -20px}\r
+.defaultSkin span.mce_backward {background-position:-200px -20px}\r
+.defaultSkin span.mce_forward {background-position:-220px -20px}\r
+.defaultSkin span.mce_insert_layer {background-position:-240px -20px}\r
+.defaultSkin span.mce_insertlayer {background-position:-260px -20px}\r
+.defaultSkin span.mce_movebackward {background-position:-280px -20px}\r
+.defaultSkin span.mce_moveforward {background-position:-300px -20px}\r
+.defaultSkin span.mce_media {background-position:-320px -20px}\r
+.defaultSkin span.mce_nonbreaking {background-position:-340px -20px}\r
+.defaultSkin span.mce_pastetext {background-position:-360px -20px}\r
+.defaultSkin span.mce_pasteword {background-position:-380px -20px}\r
+.defaultSkin span.mce_selectall {background-position:-400px -20px}\r
+.defaultSkin span.mce_preview {background-position:-420px -20px}\r
+.defaultSkin span.mce_print {background-position:-440px -20px}\r
+.defaultSkin span.mce_cancel {background-position:-460px -20px}\r
+.defaultSkin span.mce_save {background-position:-480px -20px}\r
+.defaultSkin span.mce_replace {background-position:-500px -20px}\r
+.defaultSkin span.mce_search {background-position:-520px -20px}\r
+.defaultSkin span.mce_styleprops {background-position:-560px -20px}\r
+.defaultSkin span.mce_table {background-position:-580px -20px}\r
+.defaultSkin span.mce_cell_props {background-position:-600px -20px}\r
+.defaultSkin span.mce_delete_table {background-position:-620px -20px}\r
+.defaultSkin span.mce_delete_col {background-position:-640px -20px}\r
+.defaultSkin span.mce_delete_row {background-position:-660px -20px}\r
+.defaultSkin span.mce_col_after {background-position:-680px -20px}\r
+.defaultSkin span.mce_col_before {background-position:-700px -20px}\r
+.defaultSkin span.mce_row_after {background-position:-720px -20px}\r
+.defaultSkin span.mce_row_before {background-position:-740px -20px}\r
+.defaultSkin span.mce_merge_cells {background-position:-760px -20px}\r
+.defaultSkin span.mce_table_props {background-position:-980px -20px}\r
+.defaultSkin span.mce_row_props {background-position:-780px -20px}\r
+.defaultSkin span.mce_split_cells {background-position:-800px -20px}\r
+.defaultSkin span.mce_template {background-position:-820px -20px}\r
+.defaultSkin span.mce_visualchars {background-position:-840px -20px}\r
+.defaultSkin span.mce_abbr {background-position:-860px -20px}\r
+.defaultSkin span.mce_acronym {background-position:-880px -20px}\r
+.defaultSkin span.mce_attribs {background-position:-900px -20px}\r
+.defaultSkin span.mce_cite {background-position:-920px -20px}\r
+.defaultSkin span.mce_del {background-position:-940px -20px}\r
+.defaultSkin span.mce_ins {background-position:-960px -20px}\r
+.defaultSkin span.mce_pagebreak {background-position:0 -40px}\r
+.defaultSkin .mce_spellchecker span.mceAction {background-position:-540px -20px}\r
--- /dev/null
+body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}\r
+body {background:#FFF;}\r
+body.mceForceColors {background:#FFF; color:#000;}\r
+h1 {font-size: 2em}\r
+h2 {font-size: 1.5em}\r
+h3 {font-size: 1.17em}\r
+h4 {font-size: 1em}\r
+h5 {font-size: .83em}\r
+h6 {font-size: .75em}\r
+.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}\r
+a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(../default/img/items.gif) no-repeat bottom left;}\r
+img.mceItemAnchor {width:12px; height:12px; background:url(../default/img/items.gif) no-repeat;}\r
+img {border:0;}\r
+table {cursor:default}\r
+table td, table th {cursor:text}\r
+\r
+/* IE */\r
+* html body {\r
+scrollbar-3dlight-color:#F0F0EE;\r
+scrollbar-arrow-color:#676662;\r
+scrollbar-base-color:#F0F0EE;\r
+scrollbar-darkshadow-color:#DDD;\r
+scrollbar-face-color:#E0E0DD;\r
+scrollbar-highlight-color:#F0F0EE;\r
+scrollbar-shadow-color:#F0F0EE;\r
+scrollbar-track-color:#F5F5F5;\r
+}\r
--- /dev/null
+/* Generic */\r
+body {\r
+font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;\r
+scrollbar-3dlight-color:#F0F0EE;\r
+scrollbar-arrow-color:#676662;\r
+scrollbar-base-color:#F0F0EE;\r
+scrollbar-darkshadow-color:#DDDDDD;\r
+scrollbar-face-color:#E0E0DD;\r
+scrollbar-highlight-color:#F0F0EE;\r
+scrollbar-shadow-color:#F0F0EE;\r
+scrollbar-track-color:#F5F5F5;\r
+background:#F0F0EE;\r
+padding:0;\r
+margin:8px 8px 0 8px;\r
+}\r
+\r
+html {background:#F0F0EE;}\r
+td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
+textarea {resize:none;outline:none;}\r
+a:link, a:visited {color:black;}\r
+a:hover {color:#2B6FB6;}\r
+\r
+/* Forms */\r
+fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}\r
+legend {color:#2B6FB6; font-weight:bold;}\r
+label.msg {display:none;}\r
+label.invalid {color:#EE0000; display:inline;}\r
+input.invalid {border:1px solid #EE0000;}\r
+input {background:#FFF; border:1px solid #CCC;}\r
+input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
+input, select, textarea {border:1px solid #808080;}\r
+input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}\r
+input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}\r
+.input_noborder {border:0;}\r
+\r
+/* Buttons */\r
+#insert, #cancel, input.button, .updateButton {\r
+border:0; margin:0; padding:0;\r
+font-weight:bold;\r
+width:94px; height:26px;\r
+background:url(../default/img/buttons.png) 0 -26px;\r
+cursor:pointer;\r
+padding-bottom:2px;\r
+}\r
+\r
+#insert {background:url(../default/img/buttons.png) 0 -52px;}\r
+#cancel {background:url(../default/img/buttons.png) 0 0;}\r
+\r
+/* Browse */\r
+a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}\r
+.mceOldBoxModel a.browse span {width:22px; height:20px;}\r
+a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}\r
+a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}\r
+a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}\r
+a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}\r
+.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}\r
+a.pickcolor:hover span {background-color:#B2BBD0;}\r
+a.pickcolor:hover span.disabled {}\r
+\r
+/* Charmap */\r
+table.charmap {border:1px solid #AAA; text-align:center}\r
+td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}\r
+#charmap a {display:block; color:#000; text-decoration:none; border:0}\r
+#charmap a:hover {background:#CCC;color:#2B6FB6}\r
+#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}\r
+#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}\r
+\r
+/* Source */\r
+.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}\r
+.mceActionPanel {margin-top:5px;}\r
+\r
+/* Tabs classes */\r
+.tabs {width:100%; height:18px; line-height:normal; background:url(../default/img/tabs.gif) repeat-x 0 -72px;}\r
+.tabs ul {margin:0; padding:0; list-style:none;}\r
+.tabs li {float:left; background:url(../default/img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}\r
+.tabs li.current {background:url(../default/img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}\r
+.tabs span {float:left; display:block; background:url(../default/img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}\r
+.tabs .current span {background:url(../default/img/tabs.gif) no-repeat right -54px;}\r
+.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}\r
+.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}\r
+\r
+/* Panels */\r
+.panel_wrapper div.panel {display:none;}\r
+.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}\r
+.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}\r
+\r
+/* Columns */\r
+.column {float:left;}\r
+.properties {width:100%;}\r
+.properties .column1 {}\r
+.properties .column2 {text-align:left;}\r
+\r
+/* Titles */\r
+h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}\r
+h3 {font-size:14px;}\r
+.title {font-size:12px; font-weight:bold; color:#2B6FB6;}\r
+\r
+/* Dialog specific */\r
+#link .panel_wrapper, #link div.current {height:125px;}\r
+#image .panel_wrapper, #image div.current {height:200px;}\r
+#plugintable thead {font-weight:bold; background:#DDD;}\r
+#plugintable, #about #plugintable td {border:1px solid #919B9C;}\r
+#plugintable {width:96%; margin-top:10px;}\r
+#pluginscontainer {height:290px; overflow:auto;}\r
+#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}\r
+#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}\r
+#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}\r
+#colorpicker #light div {overflow:hidden;}\r
+#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}\r
+#colorpicker .panel_wrapper div.current {height:175px;}\r
+#colorpicker #namedcolors {width:150px;}\r
+#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}\r
+#colorpicker #colornamecontainer {margin-top:5px;}\r
--- /dev/null
+/* Reset */\r
+.o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}\r
+.o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
+.o2k7Skin table td {vertical-align:middle}\r
+\r
+/* Containers */\r
+.o2k7Skin table {background:#E5EFFD}\r
+.o2k7Skin iframe {display:block; background:#FFF}\r
+.o2k7Skin .mceToolbar {height:26px}\r
+\r
+/* External */\r
+.o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none}\r
+.o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;}\r
+.o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}\r
+\r
+/* Layout */\r
+.o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD}\r
+.o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD}\r
+.o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD}\r
+.o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0}\r
+.o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD}\r
+.o2k7Skin .mceStatusbar {display:block; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; height:20px}\r
+.o2k7Skin .mceStatusbar div {float:left; padding:2px}\r
+.o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize}\r
+.o2k7Skin .mceStatusbar a:hover {text-decoration:underline}\r
+.o2k7Skin table.mceToolbar {margin-left:3px}\r
+.o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;}\r
+.o2k7Skin .mceToolbar td.mceFirst span {margin:0}\r
+.o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}\r
+.o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none}\r
+.o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px}\r
+.o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
+.o2k7Skin td.mceCenter {text-align:center;}\r
+.o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;}\r
+.o2k7Skin td.mceRight table {margin:0 0 0 auto;}\r
+\r
+/* Button */\r
+.o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}\r
+.o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px}\r
+.o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px}\r
+.o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}\r
+.o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px}\r
+.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}\r
+.o2k7Skin .mceButtonLabeled {width:auto}\r
+.o2k7Skin .mceButtonLabeled span.mceIcon {float:left}\r
+.o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}\r
+.o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888}\r
+\r
+/* Separator */\r
+.o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}\r
+\r
+/* ListBox */\r
+.o2k7Skin .mceListBox {margin-left:3px}\r
+.o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block}\r
+.o2k7Skin .mceListBox .mceText {padding-left:4px; text-align:left; width:70px; border:1px solid #b3c7e1; border-right:0; background:#eaf2fb; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}\r
+.o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0}\r
+.o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF}\r
+.o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px}\r
+.o2k7Skin .mceListBoxDisabled .mceText {color:gray}\r
+.o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden}\r
+.o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px}\r
+.o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;}\r
+\r
+/* SplitButton */\r
+.o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px}\r
+.o2k7Skin .mceSplitButton {background:url(img/button_bg.png)}\r
+.o2k7Skin .mceSplitButton a.mceAction {width:22px}\r
+.o2k7Skin .mceSplitButton span.mceAction {width:22px; background:url(../../img/icons.gif) 20px 20px}\r
+.o2k7Skin .mceSplitButton a.mceOpen {width:10px}\r
+.o2k7Skin .mceSplitButton span.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0}\r
+.o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px}\r
+.o2k7Skin table.mceSplitButtonEnabled:hover span.mceOpen, .o2k7Skin .mceSplitButtonHover span.mceOpen, .o2k7Skin .mceSplitButtonSelected span.mceOpen {background-position:-44px -44px}\r
+.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; filter:alpha(opacity=30)}\r
+.o2k7Skin .mceSplitButtonActive {background-position:0 -44px}\r
+\r
+/* ColorSplitButton */\r
+.o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}\r
+.o2k7Skin .mceColorSplitMenu td {padding:2px}\r
+.o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}\r
+.o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}\r
+.o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}\r
+.o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}\r
+.o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A}\r
+.o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden}\r
+.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden}\r
+\r
+/* Menu */\r
+.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD}\r
+.o2k7Skin .mceNoIcons span.mceIcon {width:0;}\r
+.o2k7Skin .mceNoIcons a .mceText {padding-left:10px}\r
+.o2k7Skin .mceMenu table {background:#FFF}\r
+.o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block}\r
+.o2k7Skin .mceMenu td {height:20px}\r
+.o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0}\r
+.o2k7Skin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}\r
+.o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px}\r
+.o2k7Skin .mceMenu pre.mceText {font-family:Monospace}\r
+.o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}\r
+.o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3}\r
+.o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px}\r
+.o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD}\r
+.o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}\r
+.o2k7Skin .mceMenuItemDisabled .mceText {color:#888}\r
+.o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)}\r
+.o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center}\r
+.o2k7Skin .mceMenu span.mceMenuLine {display:none}\r
+.o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;}\r
+\r
+/* Progress,Resize */\r
+.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}\r
+.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}\r
+.o2k7Skin .mcePlaceHolder {border:1px dotted gray}\r
+\r
+/* Formats */\r
+.o2k7Skin .mce_formatPreview a {font-size:10px}\r
+.o2k7Skin .mce_p span.mceText {}\r
+.o2k7Skin .mce_address span.mceText {font-style:italic}\r
+.o2k7Skin .mce_pre span.mceText {font-family:monospace}\r
+.o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}\r
+.o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}\r
+.o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}\r
+.o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}\r
+.o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}\r
+.o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}\r
+\r
+/* Theme */\r
+.o2k7Skin span.mce_bold {background-position:0 0}\r
+.o2k7Skin span.mce_italic {background-position:-60px 0}\r
+.o2k7Skin span.mce_underline {background-position:-140px 0}\r
+.o2k7Skin span.mce_strikethrough {background-position:-120px 0}\r
+.o2k7Skin span.mce_undo {background-position:-160px 0}\r
+.o2k7Skin span.mce_redo {background-position:-100px 0}\r
+.o2k7Skin span.mce_cleanup {background-position:-40px 0}\r
+.o2k7Skin span.mce_bullist {background-position:-20px 0}\r
+.o2k7Skin span.mce_numlist {background-position:-80px 0}\r
+.o2k7Skin span.mce_justifyleft {background-position:-460px 0}\r
+.o2k7Skin span.mce_justifyright {background-position:-480px 0}\r
+.o2k7Skin span.mce_justifycenter {background-position:-420px 0}\r
+.o2k7Skin span.mce_justifyfull {background-position:-440px 0}\r
+.o2k7Skin span.mce_anchor {background-position:-200px 0}\r
+.o2k7Skin span.mce_indent {background-position:-400px 0}\r
+.o2k7Skin span.mce_outdent {background-position:-540px 0}\r
+.o2k7Skin span.mce_link {background-position:-500px 0}\r
+.o2k7Skin span.mce_unlink {background-position:-640px 0}\r
+.o2k7Skin span.mce_sub {background-position:-600px 0}\r
+.o2k7Skin span.mce_sup {background-position:-620px 0}\r
+.o2k7Skin span.mce_removeformat {background-position:-580px 0}\r
+.o2k7Skin span.mce_newdocument {background-position:-520px 0}\r
+.o2k7Skin span.mce_image {background-position:-380px 0}\r
+.o2k7Skin span.mce_help {background-position:-340px 0}\r
+.o2k7Skin span.mce_code {background-position:-260px 0}\r
+.o2k7Skin span.mce_hr {background-position:-360px 0}\r
+.o2k7Skin span.mce_visualaid {background-position:-660px 0}\r
+.o2k7Skin span.mce_charmap {background-position:-240px 0}\r
+.o2k7Skin span.mce_paste {background-position:-560px 0}\r
+.o2k7Skin span.mce_copy {background-position:-700px 0}\r
+.o2k7Skin span.mce_cut {background-position:-680px 0}\r
+.o2k7Skin span.mce_blockquote {background-position:-220px 0}\r
+.o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0}\r
+.o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0}\r
+.o2k7Skin span.mce_forecolorpicker {background-position:-720px 0}\r
+.o2k7Skin span.mce_backcolorpicker {background-position:-760px 0}\r
+\r
+/* Plugins */\r
+.o2k7Skin span.mce_advhr {background-position:-0px -20px}\r
+.o2k7Skin span.mce_ltr {background-position:-20px -20px}\r
+.o2k7Skin span.mce_rtl {background-position:-40px -20px}\r
+.o2k7Skin span.mce_emotions {background-position:-60px -20px}\r
+.o2k7Skin span.mce_fullpage {background-position:-80px -20px}\r
+.o2k7Skin span.mce_fullscreen {background-position:-100px -20px}\r
+.o2k7Skin span.mce_iespell {background-position:-120px -20px}\r
+.o2k7Skin span.mce_insertdate {background-position:-140px -20px}\r
+.o2k7Skin span.mce_inserttime {background-position:-160px -20px}\r
+.o2k7Skin span.mce_absolute {background-position:-180px -20px}\r
+.o2k7Skin span.mce_backward {background-position:-200px -20px}\r
+.o2k7Skin span.mce_forward {background-position:-220px -20px}\r
+.o2k7Skin span.mce_insert_layer {background-position:-240px -20px}\r
+.o2k7Skin span.mce_insertlayer {background-position:-260px -20px}\r
+.o2k7Skin span.mce_movebackward {background-position:-280px -20px}\r
+.o2k7Skin span.mce_moveforward {background-position:-300px -20px}\r
+.o2k7Skin span.mce_media {background-position:-320px -20px}\r
+.o2k7Skin span.mce_nonbreaking {background-position:-340px -20px}\r
+.o2k7Skin span.mce_pastetext {background-position:-360px -20px}\r
+.o2k7Skin span.mce_pasteword {background-position:-380px -20px}\r
+.o2k7Skin span.mce_selectall {background-position:-400px -20px}\r
+.o2k7Skin span.mce_preview {background-position:-420px -20px}\r
+.o2k7Skin span.mce_print {background-position:-440px -20px}\r
+.o2k7Skin span.mce_cancel {background-position:-460px -20px}\r
+.o2k7Skin span.mce_save {background-position:-480px -20px}\r
+.o2k7Skin span.mce_replace {background-position:-500px -20px}\r
+.o2k7Skin span.mce_search {background-position:-520px -20px}\r
+.o2k7Skin span.mce_styleprops {background-position:-560px -20px}\r
+.o2k7Skin span.mce_table {background-position:-580px -20px}\r
+.o2k7Skin span.mce_cell_props {background-position:-600px -20px}\r
+.o2k7Skin span.mce_delete_table {background-position:-620px -20px}\r
+.o2k7Skin span.mce_delete_col {background-position:-640px -20px}\r
+.o2k7Skin span.mce_delete_row {background-position:-660px -20px}\r
+.o2k7Skin span.mce_col_after {background-position:-680px -20px}\r
+.o2k7Skin span.mce_col_before {background-position:-700px -20px}\r
+.o2k7Skin span.mce_row_after {background-position:-720px -20px}\r
+.o2k7Skin span.mce_row_before {background-position:-740px -20px}\r
+.o2k7Skin span.mce_merge_cells {background-position:-760px -20px}\r
+.o2k7Skin span.mce_table_props {background-position:-980px -20px}\r
+.o2k7Skin span.mce_row_props {background-position:-780px -20px}\r
+.o2k7Skin span.mce_split_cells {background-position:-800px -20px}\r
+.o2k7Skin span.mce_template {background-position:-820px -20px}\r
+.o2k7Skin span.mce_visualchars {background-position:-840px -20px}\r
+.o2k7Skin span.mce_abbr {background-position:-860px -20px}\r
+.o2k7Skin span.mce_acronym {background-position:-880px -20px}\r
+.o2k7Skin span.mce_attribs {background-position:-900px -20px}\r
+.o2k7Skin span.mce_cite {background-position:-920px -20px}\r
+.o2k7Skin span.mce_del {background-position:-940px -20px}\r
+.o2k7Skin span.mce_ins {background-position:-960px -20px}\r
+.o2k7Skin span.mce_pagebreak {background-position:0 -40px}\r
+.o2k7Skin .mce_spellchecker span.mceAction {background-position:-540px -20px}\r
--- /dev/null
+/* Black */\r
+.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton span.mceOpen, .o2k7SkinBlack .mceListBox .mceOpen {background-image:url(img/button_bg_black.png)}\r
+.o2k7SkinBlack table, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF}\r
+.o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0}\r
+.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0}\r
+.o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;}\r
+.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)}\r
+.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#FFE7A1}
\ No newline at end of file
--- /dev/null
+/* Silver */\r
+.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton span.mceOpen, .o2k7SkinSilver .mceListBox .mceOpen {background-image:url(img/button_bg_silver.png)}\r
+.o2k7SkinSilver table, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee}\r
+.o2k7SkinSilver .mceListBox .mceText {background:#FFF}\r
+.o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb}\r
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
+ <title>{#standard_dlg.code_title}</title>\r
+ <script type="text/javascript" src="../../tiny_mce_popup.js?v=307"></script>\r
+ <script type="text/javascript" src="js/source_editor.js?v=307"></script>\r
+ <base target="_self" />\r
+</head>\r
+<body onresize="resizeInputs();" style="display:none; overflow:hidden;">\r
+ <form name="source" onsubmit="saveContent();return false;" action="#">\r
+ <div style="float: left" class="title">{#standard_dlg.code_title}</div>\r
+\r
+ <div id="wrapline" style="float: right">\r
+ <input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{#standard_dlg.code_wordwrap}</label>\r
+ </div>\r
+\r
+ <br style="clear: both" />\r
+\r
+ <textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,monospace; font-size: 12px;" dir="ltr" wrap="off" class="mceFocus"></textarea>\r
+\r
+ <div class="mceActionPanel">\r
+ <div style="float: left">\r
+ <input type="submit" name="insert" value="{#update}" id="insert" />\r
+ </div>\r
+\r
+ <div style="float: right">\r
+ <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />\r
+ </div>\r
+ </div>\r
+ </form>\r
+</body>\r
+</html>\r
--- /dev/null
+var tinymce={majorVersion:'3',minorVersion:'0.5',releaseDate:'2008-03-12',_init:function(){var t=this,ua=navigator.userAgent,i,nl,n,base;t.isOpera=window.opera&&opera.buildNumber;t.isWebKit=/WebKit/.test(ua);t.isOldWebKit=t.isWebKit&&!window.getSelection().getRangeAt;t.isIE=!t.isWebKit&&!t.isOpera&&(/MSIE/gi).test(ua)&&(/Explorer/gi).test(navigator.appName);t.isIE6=t.isIE&&/MSIE [56]/.test(ua);t.isGecko=!t.isWebKit&&/Gecko/.test(ua);t.isMac=ua.indexOf('Mac')!=-1;if(window.tinyMCEPreInit){t.suffix=tinyMCEPreInit.suffix;t.baseURL=tinyMCEPreInit.base;return;}t.suffix='';nl=document.getElementsByTagName('base');for(i=0;i<nl.length;i++){if(nl[i].href)base=nl[i].href;}function getBase(n){if(n.src&&/tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)){if(/_(src|dev)\.js/g.test(n.src))t.suffix='_src';t.baseURL=n.src.substring(0,n.src.lastIndexOf('/'));if(base&&t.baseURL.indexOf('://')==-1)t.baseURL=base+t.baseURL;return t.baseURL;}return null;};nl=document.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}n=document.getElementsByTagName('head')[0];if(n){nl=n.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}}return;},is:function(o,t){var n=typeof(o);if(!t)return n!='undefined';if(t=='array'&&(o instanceof Array))return true;return n==t;},each:function(o,cb,s){var n,l;if(!o)return 0;s=s||o;if(typeof(o.length)!='undefined'){for(n=0,l=o.length;n<l;n++){if(cb.call(s,o[n],n,o)===false)return 0;}}else{for(n in o){if(o.hasOwnProperty(n)){if(cb.call(s,o[n],n,o)===false)return 0;}}}return 1;},map:function(a,f){var o=[];tinymce.each(a,function(v){o.push(f(v));});return o;},grep:function(a,f){var o=[];tinymce.each(a,function(v){if(!f||f(v))o.push(v);});return o;},inArray:function(a,v){var i,l;if(a){for(i=0,l=a.length;i<l;i++){if(a[i]===v)return i;}}return-1;},extend:function(o,e){var i,a=arguments;for(i=1;i<a.length;i++){e=a[i];tinymce.each(e,function(v,n){if(typeof(v)!=='undefined')o[n]=v;});}return o;},trim:function(s){return(s?''+s:'').replace(/^\s*|\s*$/g,'');},create:function(s,p){var t=this,sp,ns,cn,scn,c,de=0;s=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);cn=s[3].match(/(^|\.)(\w+)$/i)[2];ns=t.createNS(s[3].replace(/\.\w+$/,''));if(ns[cn])return;if(s[2]=='static'){ns[cn]=p;if(this.onCreate)this.onCreate(s[2],s[3],ns[cn]);return;}if(!p[cn]){p[cn]=function(){};de=1;}ns[cn]=p[cn];t.extend(ns[cn].prototype,p);if(s[5]){sp=t.resolve(s[5]).prototype;scn=s[5].match(/\.(\w+)$/i)[1];c=ns[cn];if(de){ns[cn]=function(){return sp[scn].apply(this,arguments);};}else{ns[cn]=function(){this.parent=sp[scn];return c.apply(this,arguments);};}ns[cn].prototype[cn]=ns[cn];t.each(sp,function(f,n){ns[cn].prototype[n]=sp[n];});t.each(p,function(f,n){if(sp[n]){ns[cn].prototype[n]=function(){this.parent=sp[n];return f.apply(this,arguments);};}else{if(n!=cn)ns[cn].prototype[n]=f;}});}t.each(p['static'],function(f,n){ns[cn][n]=f;});if(this.onCreate)this.onCreate(s[2],s[3],ns[cn].prototype);},walk:function(o,f,n,s){s=s||this;if(o){if(n)o=o[n];tinymce.each(o,function(o,i){if(f.call(s,o,i,n)===false)return false;tinymce.walk(o,f,n,s);});}},createNS:function(n,o){var i,v;o=o||window;n=n.split('.');for(i=0;i<n.length;i++){v=n[i];if(!o[v])o[v]={};o=o[v];}return o;},resolve:function(n,o){var i,l;o=o||window;n=n.split('.');for(i=0,l=n.length;i<l;i++){o=o[n[i]];if(!o)break;}return o;},addUnload:function(f,s){var t=this,w=window,unload;f={func:f,scope:s||this};if(!t.unloads){unload=function(){var li=t.unloads,o,n;for(n in li){o=li[n];if(o&&o.func)o.func.call(o.scope);}if(w.detachEvent)w.detachEvent('onunload',unload);else if(w.removeEventListener)w.removeEventListener('unload',unload,false);o=li=w=unload=null;if(window.CollectGarbage)window.CollectGarbage();};if(w.attachEvent)w.attachEvent('onunload',unload);else if(w.addEventListener)w.addEventListener('unload',unload,false);t.unloads=[f];}else t.unloads.push(f);return f;},removeUnload:function(f){var u=this.unloads,r=null;tinymce.each(u,function(o,i){if(o&&o.func==f){u.splice(i,1);r=f;return false;}});return r;},explode:function(s,d){return tinymce.map(s.split(d||','),tinymce.trim);}};window.tinymce=tinymce;tinymce._init();tinymce.create('tinymce.util.Dispatcher',{scope:null,listeners:null,Dispatcher:function(s){this.scope=s||this;this.listeners=[];},add:function(cb,s){this.listeners.push({cb:cb,scope:s||this.scope});return cb;},addToTop:function(cb,s){this.listeners.unshift({cb:cb,scope:s||this.scope});return cb;},remove:function(cb){var l=this.listeners,o=null;tinymce.each(l,function(c,i){if(cb==c.cb){o=cb;l.splice(i,1);return false;}});return o;},dispatch:function(){var s,a=arguments;tinymce.each(this.listeners,function(c){return s=c.cb.apply(c.scope,a);});return s;}});(function(){var each=tinymce.each;tinymce.create('tinymce.util.URI',{URI:function(u,s){var t=this,o,a,b;s=t.settings=s||{};if(/^(mailto|news|javascript|about):/i.test(u)||/^\s*#/.test(u)){t.source=u;return;}if(u.indexOf('/')===0&&u.indexOf('//')!==0)u=(s.base_uri?s.base_uri.protocol||'http':'http')+'://mce_host'+u;if(u.indexOf('://')===-1&&u.indexOf('//')!==0)u=(s.base_uri.protocol||'http')+'://mce_host'+t.toAbsPath(s.base_uri.path,u);u=u.replace(/@@/g,'(mce_at)');u=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(u);each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(v,i){var s=u[i];if(s)s=s.replace(/\(mce_at\)/g,'@@');t[v]=s;});if(b=s.base_uri){if(!t.protocol)t.protocol=b.protocol;if(!t.userInfo)t.userInfo=b.userInfo;if(!t.port&&t.host=='mce_host')t.port=b.port;if(!t.host||t.host=='mce_host')t.host=b.host;t.source='';}},setPath:function(p){var t=this;p=/^(.*?)\/?(\w+)?$/.exec(p);t.path=p[0];t.directory=p[1];t.file=p[2];t.source='';t.getURI();},toRelative:function(u){var t=this,o;u=new tinymce.util.URI(u,{base_uri:t});if((u.host!='mce_host'&&t.host!=u.host&&u.host)||t.port!=u.port||t.protocol!=u.protocol)return u.getURI();o=t.toRelPath(t.path,u.path);if(u.query)o+='?'+u.query;if(u.anchor)o+='#'+u.anchor;return o;},toAbsolute:function(u,nh){var u=new tinymce.util.URI(u,{base_uri:this});return u.getURI(this.host==u.host?nh:0);},toRelPath:function(base,path){var items,bp=0,out='',i;base=base.substring(0,base.lastIndexOf('/'));base=base.split('/');items=path.split('/');if(base.length>=items.length){for(i=0;i<base.length;i++){if(i>=items.length||base[i]!=items[i]){bp=i+1;break;}}}if(base.length<items.length){for(i=0;i<items.length;i++){if(i>=base.length||base[i]!=items[i]){bp=i+1;break;}}}if(bp==1)return path;for(i=0;i<base.length-(bp-1);i++)out+="../";for(i=bp-1;i<items.length;i++){if(i!=bp-1)out+="/"+items[i];else out+=items[i];}return out;},toAbsPath:function(base,path){var i,nb=0,o=[];base=base.split('/');path=path.split('/');each(base,function(k){if(k)o.push(k);});base=o;for(i=path.length-1,o=[];i>=0;i--){if(path[i].length==0||path[i]==".")continue;if(path[i]=='..'){nb++;continue;}if(nb>0){nb--;continue;}o.push(path[i]);}i=base.length-nb;if(i<=0)return'/'+o.reverse().join('/');return'/'+base.slice(0,i).join('/')+'/'+o.reverse().join('/');},getURI:function(nh){var s,t=this;if(!t.source||nh){s='';if(!nh){if(t.protocol)s+=t.protocol+'://';if(t.userInfo)s+=t.userInfo+'@';if(t.host)s+=t.host;if(t.port)s+=':'+t.port;}if(t.path)s+=t.path;if(t.query)s+='?'+t.query;if(t.anchor)s+='#'+t.anchor;t.source=s;}return t.source;}});})();(function(){var each=tinymce.each;tinymce.create('static tinymce.util.Cookie',{getHash:function(n){var v=this.get(n),h;if(v){each(v.split('&'),function(v){v=v.split('=');h=h||{};h[unescape(v[0])]=unescape(v[1]);});}return h;},setHash:function(n,v,e,p,d,s){var o='';each(v,function(v,k){o+=(!o?'':'&')+escape(k)+'='+escape(v);});this.set(n,o,e,p,d,s);},get:function(n){var c=document.cookie,e,p=n+"=",b;if(!c)return;b=c.indexOf("; "+p);if(b==-1){b=c.indexOf(p);if(b!=0)return null;}else b+=2;e=c.indexOf(";",b);if(e==-1)e=c.length;return unescape(c.substring(b+p.length,e));},set:function(n,v,e,p,d,s){document.cookie=n+"="+escape(v)+((e)?"; expires="+e.toGMTString():"")+((p)?"; path="+escape(p):"")+((d)?"; domain="+d:"")+((s)?"; secure":"");},remove:function(n,p){var d=new Date();d.setTime(d.getTime()-1000);this.set(n,'',d,p,d);}});})();tinymce.create('static tinymce.util.JSON',{serialize:function(o){var i,v,s=tinymce.util.JSON.serialize,t;if(o==null)return'null';t=typeof o;if(t=='string'){v='\bb\tt\nn\ff\rr\""\'\'\\\\';return'"'+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'])/g,function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a;})+'"';}if(t=='object'){if(o instanceof Array){for(i=0,v='[';i<o.length;i++)v+=(i>0?',':'')+s(o[i]);return v+']';}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}';}return''+o;},parse:function(s){try{return eval('('+s+')');}catch(ex){}}});tinymce.create('static tinymce.util.XHR',{send:function(o){var x,t,w=window,c=0;o.scope=o.scope||this;o.success_scope=o.success_scope||o.scope;o.error_scope=o.error_scope||o.scope;o.async=o.async===false?false:true;o.data=o.data||'';function get(s){x=0;try{x=new ActiveXObject(s);}catch(ex){}return x;};x=w.XMLHttpRequest?new XMLHttpRequest():get('Microsoft.XMLHTTP')||get('Msxml2.XMLHTTP');if(x){if(x.overrideMimeType)x.overrideMimeType(o.content_type);x.open(o.type||(o.data?'POST':'GET'),o.url,o.async);if(o.content_type)x.setRequestHeader('Content-Type',o.content_type);x.send(o.data);t=w.setInterval(function(){if(x.readyState==4||c++>10000){w.clearInterval(t);if(o.success&&c<10000&&x.status==200)o.success.call(o.success_scope,''+x.responseText,x,o);else if(o.error)o.error.call(o.error_scope,c>10000?'TIMED_OUT':'GENERAL',x,o);x=null;}},10);}}});(function(){var extend=tinymce.extend,JSON=tinymce.util.JSON,XHR=tinymce.util.XHR;tinymce.create('tinymce.util.JSONRequest',{JSONRequest:function(s){this.settings=extend({},s);this.count=0;},send:function(o){var ecb=o.error,scb=o.success;o=extend(this.settings,o);o.success=function(c,x){c=JSON.parse(c);if(typeof(c)=='undefined'){c={error:'JSON Parse error.'};}if(c.error)ecb.call(o.error_scope||o.scope,c.error,x);else scb.call(o.success_scope||o.scope,c.result);};o.error=function(ty,x){ecb.call(o.error_scope||o.scope,ty,x);};o.data=JSON.serialize({id:o.id||'c'+(this.count++),method:o.method,params:o.params});o.content_type='application/json';XHR.send(o);},'static':{sendRPC:function(o){return new tinymce.util.JSONRequest().send(o);}}});}());(function(){var each=tinymce.each,is=tinymce.is;var isWebKit=tinymce.isWebKit,isIE=tinymce.isIE;tinymce.create('tinymce.dom.DOMUtils',{doc:null,root:null,files:null,listeners:{},pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,cache:{},idPattern:/^#[\w]+$/,elmPattern:/^[\w_*]+$/,elmClassPattern:/^([\w_]*)\.([\w_]+)$/,DOMUtils:function(d,s){var t=this;t.doc=d;t.files={};t.cssFlicker=false;t.counter=0;t.boxModel=!tinymce.isIE||d.compatMode=="CSS1Compat";t.stdMode=d.documentMode===8;this.settings=s=tinymce.extend({keep_values:false,hex_colors:1,process_html:1},s);if(tinymce.isIE6){try{d.execCommand('BackgroundImageCache',false,true);}catch(e){t.cssFlicker=true;}}tinymce.addUnload(function(){t.doc=t.root=null;});},getRoot:function(){var t=this,s=t.settings;return(s&&t.get(s.root_element))||t.doc.body;},getViewPort:function(w){var d,b;w=!w?window:w;d=w.document;b=this.boxModel?d.documentElement:d.body;return{x:w.pageXOffset||b.scrollLeft,y:w.pageYOffset||b.scrollTop,w:w.innerWidth||b.clientWidth,h:w.innerHeight||b.clientHeight};},getRect:function(e){var p,t=this,w,h;e=t.get(e);p=t.getPos(e);w=t.getStyle(e,'width');h=t.getStyle(e,'height');if(w.indexOf('px')===-1)w=0;if(h.indexOf('px')===-1)h=0;return{x:p.x,y:p.y,w:parseInt(w)||e.offsetWidth||e.clientWidth,h:parseInt(h)||e.offsetHeight||e.clientHeight};},getParent:function(n,f,r){var na,se=this.settings;n=this.get(n);if(se.strict_root)r=r||this.getRoot();if(is(f,'string')){na=f.toUpperCase();f=function(n){var s=false;if(n.nodeType==1&&na==='*'){s=true;return false;}each(na.split(','),function(v){if(n.nodeType==1&&((se.strict&&n.nodeName.toUpperCase()==v)||n.nodeName==v)){s=true;return false;}});return s;};}while(n){if(n==r)return null;if(f(n))return n;n=n.parentNode;}return null;},get:function(e){var n;if(typeof(e)=='string'){n=e;e=this.doc.getElementById(e);if(e&&e.id!==n)return this.doc.getElementsByName(n)[1];}return e;},select:function(pa,s){var t=this,cs,c,pl,o=[],x,i,l,n;s=t.get(s)||t.doc;if(s.querySelectorAll){if(s!=t.doc){i=s.id;s.id='_mc_tmp';pa='#_mc_tmp '+pa;}l=tinymce.grep(s.querySelectorAll(pa));if(i)s.id=i;return l;}if(t.settings.strict){function get(s,n){return s.getElementsByTagName(n.toLowerCase());};}else{function get(s,n){return s.getElementsByTagName(n);};}if(t.elmPattern.test(pa)){x=get(s,pa);for(i=0,l=x.length;i<l;i++)o.push(x[i]);return o;}if(t.elmClassPattern.test(pa)){pl=t.elmClassPattern.exec(pa);x=get(s,pl[1]||'*');c=' '+pl[2]+' ';for(i=0,l=x.length;i<l;i++){n=x[i];if(n.className&&(' '+n.className+' ').indexOf(c)!==-1)o.push(n);}return o;}function collect(n){if(!n.mce_save){n.mce_save=1;o.push(n);}};function collectIE(n){if(!n.getAttribute('mce_save')){n.setAttribute('mce_save','1');o.push(n);}};function find(n,f,r){var i,l,nl=get(r,n);for(i=0,l=nl.length;i<l;i++)f(nl[i]);};each(pa.split(','),function(v,i){v=tinymce.trim(v);if(t.elmPattern.test(v)){each(get(s,v),function(n){collect(n);});return;}if(t.elmClassPattern.test(v)){x=t.elmClassPattern.exec(v);each(get(s,x[1]),function(n){if(t.hasClass(n,x[2]))collect(n);});return;}if(!(cs=t.cache[pa])){cs='x=(function(cf, s) {';pl=v.split(' ');each(pl,function(v){var p=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i.exec(v);p[1]=p[1]||'*';cs+='find("'+p[1]+'", function(n) {';if(p[2])cs+='if (n.id !== "'+p[2]+'") return;';if(p[3]){cs+='var c = " " + n.className + " ";';cs+='if (';c='';each(p[3].split('.'),function(v){if(v)c+=(c?'||':'')+'c.indexOf(" '+v+' ") === -1';});cs+=c+') return;';}});cs+='cf(n);';for(i=pl.length-1;i>=0;i--)cs+='}, '+(i?'n':'s')+');';cs+='})';t.cache[pa]=cs=eval(cs);}cs(isIE?collectIE:collect,s);});each(o,function(n){if(isIE)n.removeAttribute('mce_save');else delete n.mce_save;});return o;},add:function(p,n,a,h,c){var t=this;return this.run(p,function(p){var e,k;e=is(n,'string')?t.doc.createElement(n):n;if(a){for(k in a){if(a.hasOwnProperty(k)&&!is(a[k],'object'))t.setAttrib(e,k,''+a[k]);}if(a.style&&!is(a.style,'string')){each(a.style,function(v,n){t.setStyle(e,n,v);});}}if(h){if(h.nodeType)e.appendChild(h);else t.setHTML(e,h);}return!c?p.appendChild(e):e;});},create:function(n,a,h){return this.add(this.doc.createElement(n),n,a,h,1);},createHTML:function(n,a,h){var o='',t=this,k;o+='<'+n;for(k in a){if(a.hasOwnProperty(k))o+=' '+k+'="'+t.encode(a[k])+'"';}if(tinymce.is(h))return o+'>'+h+'</'+n+'>';return o+' />';},remove:function(n,k){return this.run(n,function(n){var p;p=n.parentNode;if(!p)return null;if(k){each(n.childNodes,function(c){p.insertBefore(c.cloneNode(true),n);});}return p.removeChild(n);});},setStyle:function(n,na,v){var t=this;return t.run(n,function(e){var s,i;s=e.style;na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(t.pixelStyles.test(na)&&(tinymce.is(v,'number')||/^[\-0-9\.]+$/.test(v)))v+='px';switch(na){case'opacity':if(isIE){s.filter=v===''?'':"alpha(opacity="+(v*100)+")";if(!n.currentStyle||!n.currentStyle.hasLayout)s.display='inline-block';}s[na]=s['-moz-opacity']=s['-khtml-opacity']=v||'';break;case'float':isIE?s.styleFloat=v:s.cssFloat=v;break;default:s[na]=v||'';}if(t.settings.update_styles)t.setAttrib(e,'mce_style');});},getStyle:function(n,na,c){n=this.get(n);if(!n)return false;if(this.doc.defaultView&&c){na=na.replace(/[A-Z]/g,function(a){return'-'+a;});try{return this.doc.defaultView.getComputedStyle(n,null).getPropertyValue(na);}catch(ex){return null;}}na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(na=='float')na=isIE?'styleFloat':'cssFloat';if(n.currentStyle&&c)return n.currentStyle[na];return n.style[na];},setStyles:function(e,o){var t=this,s=t.settings,ol;ol=s.update_styles;s.update_styles=0;each(o,function(v,n){t.setStyle(e,n,v);});s.update_styles=ol;if(s.update_styles)t.setAttrib(e,s.cssText);},setAttrib:function(e,n,v){var t=this;if(t.settings.strict)n=n.toLowerCase();return this.run(e,function(e){var s=t.settings;switch(n){case"style":if(s.keep_values){if(v)e.setAttribute('mce_style',v,2);else e.removeAttribute('mce_style',2);}e.style.cssText=v;break;case"class":e.className=v||'';break;case"src":case"href":if(s.keep_values){if(s.url_converter)v=s.url_converter.call(s.url_converter_scope||t,v,n,e);t.setAttrib(e,'mce_'+n,v,2);}break;}if(is(v)&&v!==null&&v.length!==0)e.setAttribute(n,''+v,2);else e.removeAttribute(n,2);});},setAttribs:function(e,o){var t=this;return this.run(e,function(e){each(o,function(v,n){t.setAttrib(e,n,v);});});},getAttrib:function(e,n,dv){var v,t=this;e=t.get(e);if(!e)return false;if(!is(dv))dv="";if(/^(src|href|style|coords)$/.test(n)){v=e.getAttribute("mce_"+n);if(v)return v;}v=e.getAttribute(n,2);if(!v){switch(n){case'class':v=e.className;break;default:if(isIE&&n==='name'&&e.nodeName==='A'){v=e.name;break;}v=e.attributes[n];v=v&&is(v.nodeValue)?v.nodeValue:v;}}switch(n){case'style':v=v||e.style.cssText;if(v){v=t.serializeStyle(t.parseStyle(v));if(t.settings.keep_values)e.setAttribute('mce_style',v);}break;}if(isWebKit&&n==="class"&&v)v=v.replace(/(apple|webkit)\-[a-z\-]+/gi,'');if(isIE){switch(n){case'rowspan':case'colspan':if(v===1)v='';break;case'size':if(v==='+0')v='';break;case'hspace':if(v===-1)v='';break;case'tabindex':if(v===32768)v='';break;case'shape':v=v.toLowerCase();break;default:if(n.indexOf('on')===0&&v)v=(''+v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1');}}return(v&&v!='')?''+v:dv;},getPos:function(n){var t=this,x=0,y=0,e,d=t.doc,r;n=t.get(n);if(n&&isIE){n=n.getBoundingClientRect();e=t.boxModel?d.documentElement:d.body;x=t.getStyle(t.select('html')[0],'borderWidth');x=(x=='medium'||t.boxModel&&!t.isIE6)&&2||x;n.top+=window.self!=window.top?2:0;return{x:n.left+e.scrollLeft-x,y:n.top+e.scrollTop-x};}r=n;while(r){x+=r.offsetLeft||0;y+=r.offsetTop||0;r=r.offsetParent;}r=n;while(r){if(!/^table-row|inline.*/i.test(t.getStyle(r,"display",1))){x-=r.scrollLeft||0;y-=r.scrollTop||0;}r=r.parentNode;if(r==d.body)break;}return{x:x,y:y};},parseStyle:function(st){var t=this,s=t.settings,o={};if(!st)return o;function compress(p,s,ot){var t,r,b,l;t=o[p+'-top'+s];if(!t)return;r=o[p+'-right'+s];if(t!=r)return;b=o[p+'-bottom'+s];if(r!=b)return;l=o[p+'-left'+s];if(b!=l)return;o[ot]=l;delete o[p+'-top'+s];delete o[p+'-right'+s];delete o[p+'-bottom'+s];delete o[p+'-left'+s];};function compress2(ta,a,b,c){var t;t=o[a];if(!t)return;t=o[b];if(!t)return;t=o[c];if(!t)return;o[ta]=o[a]+' '+o[b]+' '+o[c];delete o[a];delete o[b];delete o[c];};each(st.split(';'),function(v){var sv,ur=[];if(v){v=v.replace(/url\([^\)]+\)/g,function(v){ur.push(v);return'url('+ur.length+')';});v=v.split(':');sv=tinymce.trim(v[1]);sv=sv.replace(/url\(([^\)]+)\)/g,function(a,b){return ur[parseInt(b)-1];});sv=sv.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});if(s.url_converter){sv=sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(x,c){return'url('+t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),'style',null))+')';});}o[tinymce.trim(v[0]).toLowerCase()]=sv;}});compress("border","","border");compress("border","-width","border-width");compress("border","-color","border-color");compress("border","-style","border-style");compress("padding","","padding");compress("margin","","margin");compress2('border','border-width','border-style','border-color');if(isIE){if(o.border=='medium none')o.border='';}return o;},serializeStyle:function(o){var s='';each(o,function(v,k){if(k&&v){switch(k){case'color':case'background-color':v=v.toLowerCase();break;}s+=(s?' ':'')+k+': '+v+';';}});return s;},loadCSS:function(u){var t=this,d=this.doc;if(!u)u='';each(u.split(','),function(u){if(t.files[u])return;t.files[u]=true;t.add(t.select('head')[0],'link',{rel:'stylesheet',href:u});});},addClass:function(e,c){return this.run(e,function(e){var o;if(!c)return 0;if(this.hasClass(e,c))return e.className;o=this.removeClass(e,c);return e.className=(o!=''?(o+' '):'')+c;});},removeClass:function(e,c){var t=this,re;return t.run(e,function(e){var v;if(t.hasClass(e,c)){if(!re)re=new RegExp("(^|\\s+)"+c+"(\\s+|$)","g");v=e.className.replace(re,' ');return e.className=tinymce.trim(v!=' '?v:'');}return e.className;});},hasClass:function(n,c){n=this.get(n);if(!n||!c)return false;return(' '+n.className+' ').indexOf(' '+c+' ')!==-1;},show:function(e){return this.setStyle(e,'display','block');},hide:function(e){return this.setStyle(e,'display','none');},isHidden:function(e){e=this.get(e);return e.style.display=='none'||this.getStyle(e,'display')=='none';},uniqueId:function(p){return(!p?'mce_':p)+(this.counter++);},setHTML:function(e,h){var t=this;return this.run(e,function(e){var x,i,nl,n,p,x;h=t.processHTML(h);if(isIE){function set(){try{e.innerHTML='<br />'+h;e.removeChild(e.firstChild);}catch(ex){while(e.firstChild)e.firstChild.removeNode();x=t.create('div');x.innerHTML='<br />'+h;each(x.childNodes,function(n,i){if(i)e.appendChild(n);});}};if(t.settings.fix_ie_paragraphs)h=h.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi,'<p$1 mce_keep="true"> </p>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("p");for(i=nl.length-1,x=0;i>=0;i--){n=nl[i];if(!n.hasChildNodes()){if(!n.mce_keep){x=1;break;}n.removeAttribute('mce_keep');}}}if(x){h=h.replace(/<p([^>]+)>|<p>/g,'<div$1 mce_tmp="1">');h=h.replace(/<\/p>/g,'</div>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("DIV");for(i=nl.length-1;i>=0;i--){n=nl[i];if(n.mce_tmp){p=t.doc.createElement('p');n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(a,b){var v;if(b!=='mce_tmp'){v=n.getAttribute(b);if(!v&&b==='class')v=n.className;p.setAttribute(b,v);}});for(x=0;x<n.childNodes.length;x++)p.appendChild(n.childNodes[x].cloneNode(true));n.swapNode(p);}}}}}else e.innerHTML=h;return h;});},processHTML:function(h){var t=this,s=t.settings;if(!s.process_html)return h;if(tinymce.isGecko){h=h.replace(/<(\/?)strong>|<strong( [^>]+)>/gi,'<$1b$2>');h=h.replace(/<(\/?)em>|<em( [^>]+)>/gi,'<$1i$2>');}h=h.replace(/<a( )([^>]+)\/>|<a\/>/gi,'<a$1$2></a>');if(s.keep_values){if(h.indexOf('<script')!==-1){h=h.replace(/<script>/g,'<script type="text/javascript">');h=h.replace(/<script(|[^>]+)>(\s*<!--|\/\/\s*<\[CDATA\[)?[\r\n]*/g,'<mce:script$1><!--\n');h=h.replace(/\s*(\/\/\s*-->|\/\/\s*]]>)?<\/script>/g,'\n// --></mce:script>');h=h.replace(/<mce:script(|[^>]+)><!--\n\/\/ --><\/mce:script>/g,'<mce:script$1></mce:script>');}h=h.replace(/<([\w:]+) [^>]*(src|href|style|coords)[^>]*>/gi,function(a,n){function handle(m,b,c){var u=c;if(a.indexOf('mce_'+b)!=-1)return m;if(b=='style'){if(s.hex_colors){u=u.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});}if(s.url_converter){u=u.replace(/url\([\'\"]?([^\)\'\"]+)\)/g,function(x,c){return'url('+t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n))+')';});}}else if(b!='coords'){if(s.url_converter)u=t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n));}return' '+b+'="'+c+'" mce_'+b+'="'+u+'"';};a=a.replace(/ (src|href|style|coords)=[\"]([^\"]+)[\"]/gi,handle);a=a.replace(/ (src|href|style|coords)=[\']([^\']+)[\']/gi,handle);return a.replace(/ (src|href|style|coords)=([^\s\"\'>]+)/gi,handle);});}return h;},getOuterHTML:function(e){var d;e=this.get(e);if(!e)return null;if(isIE)return e.outerHTML;d=(e.ownerDocument||this.doc).createElement("body");d.appendChild(e.cloneNode(true));return d.innerHTML;},setOuterHTML:function(e,h,d){var t=this;return this.run(e,function(e){var n,tp;e=t.get(e);d=d||e.ownerDocument||t.doc;if(isIE&&e.nodeType==1)e.outerHTML=h;else{tp=d.createElement("body");tp.innerHTML=h;n=tp.lastChild;while(n){t.insertAfter(n.cloneNode(true),e);n=n.previousSibling;}t.remove(e);}});},decode:function(s){var e;if(/&[^;]+;/.test(s)){e=this.doc.createElement("div");e.innerHTML=s;return!e.firstChild?s:e.firstChild.nodeValue;}return s;},encode:function(s){return s?(''+s).replace(/[<>&\"]/g,function(c,b){switch(c){case'&':return'&';case'"':return'"';case'<':return'<';case'>':return'>';}return c;}):s;},insertAfter:function(n,r){var t=this;r=t.get(r);return this.run(n,function(n){var p,ns;p=r.parentNode;ns=r.nextSibling;if(ns)p.insertBefore(n,ns);else p.appendChild(n);return n;});},isBlock:function(n){if(n.nodeType&&n.nodeType!==1)return false;n=n.nodeName||n;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);},replace:function(n,o,k){if(is(o,'array'))n=n.cloneNode(true);return this.run(o,function(o){if(k){each(o.childNodes,function(c){n.appendChild(c.cloneNode(true));});}return o.parentNode.replaceChild(n,o);});},toHex:function(s){var c=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);function hex(s){s=parseInt(s).toString(16);return s.length>1?s:'0'+s;};if(c){s='#'+hex(c[1])+hex(c[2])+hex(c[3]);return s;}return s;},getClasses:function(){var t=this,cl=[],i,lo={},f=t.settings.class_filter,ov;if(t.classes)return t.classes;function addClasses(s){each(s.imports,function(r){addClasses(r);});each(s.cssRules||s.rules,function(r){switch(r.type||1){case 1:if(r.selectorText){each(r.selectorText.split(','),function(v){v=v.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(v)||!/\.[\w\-]+$/.test(v))return;ov=v;v=v.replace(/.*\.([a-z0-9_\-]+).*/i,'$1');if(f&&!(v=f(v,ov)))return;if(!lo[v]){cl.push({'class':v});lo[v]=1;}});}break;case 3:addClasses(r.styleSheet);break;}});};try{each(t.doc.styleSheets,addClasses);}catch(ex){}if(cl.length>0)t.classes=cl;return cl;},run:function(e,f,s){var t=this,o;if(typeof(e)==='string')e=t.doc.getElementById(e);if(!e)return false;s=s||this;if(!e.nodeType&&(e.length||e.length===0)){o=[];each(e,function(e,i){if(e){if(typeof(e)=='string')e=t.doc.getElementById(e);o.push(f.call(s,e,i));}});return o;}return f.call(s,e);}});tinymce.DOM=new tinymce.dom.DOMUtils(document,{process_html:0});})();(function(){var each=tinymce.each,DOM=tinymce.DOM,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit,Event;tinymce.create('static tinymce.dom.Event',{inits:[],events:[],add:function(o,n,f,s){var cb,t=this,el=t.events,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.add(o,n,f,s));});return r;}o=DOM.get(o);if(!o)return;cb=function(e){e=e||window.event;if(e&&!e.target&&isIE)e.target=e.srcElement;if(!s)return f(e);return f.call(s,e);};if(n=='unload'){tinymce.unloads.unshift({func:cb});return cb;}if(n=='init'){if(t.domLoaded)cb();else t.inits.push(cb);return cb;}el.push({obj:o,name:n,func:f,cfunc:cb,scope:s});t._add(o,n,cb);return f;},remove:function(o,n,f){var t=this,a=t.events,s=false,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.remove(o,n,f));});return r;}o=DOM.get(o);each(a,function(e,i){if(e.obj==o&&e.name==n&&(!f||(e.func==f||e.cfunc==f))){a.splice(i,1);t._remove(o,n,e.cfunc);s=true;return false;}});return s;},cancel:function(e){if(!e)return false;this.stop(e);return this.prevent(e);},stop:function(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false;},prevent:function(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false;},_unload:function(){var t=Event;each(t.events,function(e,i){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;});t.events=[];t=null;},_add:function(o,n,f){if(o.attachEvent)o.attachEvent('on'+n,f);else if(o.addEventListener)o.addEventListener(n,f,false);else o['on'+n]=f;},_remove:function(o,n,f){if(o.detachEvent)o.detachEvent('on'+n,f);else if(o.removeEventListener)o.removeEventListener(n,f,false);else o['on'+n]=null;},_pageInit:function(){var e=Event;e._remove(window,'DOMContentLoaded',e._pageInit);e.domLoaded=true;each(e.inits,function(c){c();});e.inits=[];},_wait:function(){var t;if(window.tinyMCE_GZ&&tinyMCE_GZ.loaded)return;if(isIE&&document.location.protocol!='https:'){document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');DOM.get("__ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){Event._pageInit();DOM.get("__ie_onload").onreadystatechange=null;}};}else{Event._add(window,'DOMContentLoaded',Event._pageInit,Event);if(isIE||isWebKit){t=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(t);Event._pageInit();}},10);}}}});Event=tinymce.dom.Event;Event._wait();tinymce.addUnload(Event._unload);})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.Element',{Element:function(id,s){var t=this,dom,el;s=s||{};t.id=id;t.dom=dom=s.dom||tinymce.DOM;t.settings=s;if(!tinymce.isIE)el=t.dom.get(t.id);each(['getPos','getRect','getParent','add','setStyle','getStyle','setStyles','setAttrib','setAttribs','getAttrib','addClass','removeClass','hasClass','getOuterHTML','setOuterHTML','remove','show','hide','isHidden','setHTML','get'],function(k){t[k]=function(){var a=arguments,o;if(tinymce.isOpera){a=[id];each(arguments,function(v){a.push(v);});}else Array.prototype.unshift.call(a,el||id);o=dom[k].apply(dom,a);t.update(k);return o;};});},on:function(n,f,s){return tinymce.dom.Event.add(this.id,n,f,s);},getXY:function(){return{x:parseInt(this.getStyle('left')),y:parseInt(this.getStyle('top'))};},getSize:function(){var n=this.dom.get(this.id);return{w:parseInt(this.getStyle('width')||n.clientWidth),h:parseInt(this.getStyle('height')||n.clientHeight)};},moveTo:function(x,y){this.setStyles({left:x,top:y});},moveBy:function(x,y){var p=this.getXY();this.moveTo(p.x+x,p.y+y);},resizeTo:function(w,h){this.setStyles({width:w,height:h});},resizeBy:function(w,h){var s=this.getSize();this.resizeTo(s.w+w,s.h+h);},update:function(k){var t=this,b,dom=t.dom;if(tinymce.isIE6&&t.settings.blocker){k=k||'';if(k.indexOf('get')===0||k.indexOf('has')===0||k.indexOf('is')===0)return;if(k=='remove'){dom.remove(t.blocker);return;}if(!t.blocker){t.blocker=dom.uniqueId();b=dom.add(t.settings.container||dom.getRoot(),'iframe',{id:t.blocker,style:'position:absolute;',frameBorder:0,src:'javascript:""'});dom.setStyle(b,'opacity',0);}else b=dom.get(t.blocker);dom.setStyle(b,'left',t.getStyle('left',1));dom.setStyle(b,'top',t.getStyle('top',1));dom.setStyle(b,'width',t.getStyle('width',1));dom.setStyle(b,'height',t.getStyle('height',1));dom.setStyle(b,'display',t.getStyle('display',1));dom.setStyle(b,'zIndex',parseInt(t.getStyle('zIndex',1)||0)-1);}}});})();(function(){var is=tinymce.is,isIE=tinymce.isIE,each=tinymce.each;tinymce.create('tinymce.dom.Selection',{Selection:function(dom,win,serializer){var t=this;t.dom=dom;t.win=win;t.serializer=serializer;tinymce.addUnload(function(){t.win=null;});},getContent:function(s){var t=this,r=t.getRng(),e=t.dom.create("body"),se=t.getSel(),wb,wa,n;s=s||{};wb=wa='';s.get=true;s.format=s.format||'html';if(s.format=='text')return t.isCollapsed()?'':(r.text||(se.toString?se.toString():''));if(r.cloneContents){n=r.cloneContents();if(n)e.appendChild(n);}else if(is(r.item)||is(r.htmlText))e.innerHTML=r.item?r.item(0).outerHTML:r.htmlText;else e.innerHTML=r.toString();if(/^\s/.test(e.innerHTML))wb=' ';if(/\s+$/.test(e.innerHTML))wa=' ';s.getInner=true;return t.isCollapsed()?'':wb+t.serializer.serialize(e,s)+wa;},setContent:function(h,s){var t=this,r=t.getRng(),d;s=s||{format:'html'};s.set=true;h=t.dom.processHTML(h);if(r.insertNode){d=t.win.document;if(tinymce.isGecko&&h.indexOf('<')==-1){r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h+'<span id="__caret">_</span>'));t.select(t.dom.get('__caret'));t.getRng().deleteContents();return;}try{if(d.queryCommandEnabled('InsertHTML'))return d.execCommand('InsertHTML',false,h);}catch(ex){r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h));}}else{if(r.item)r.item(0).outerHTML=h;else r.pasteHTML(h);}},getStart:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(1);e=r.parentElement();if(e.nodeName=='BODY')return e.firstChild;return e;}else{e=r.startContainer;if(e.nodeName=='BODY')return e.firstChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getEnd:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(0);e=r.parentElement();if(e.nodeName=='BODY')return e.lastChild;return e;}else{e=r.endContainer;if(e.nodeName=='BODY')return e.lastChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getBookmark:function(si){var t=this,r=t.getRng(),tr,sx,sy,vp=t.dom.getViewPort(t.win),e,sp,bp,le,c=-0xFFFFFF,s,ro=t.dom.getRoot(),wb=0,wa=0,nv;sx=vp.x;sy=vp.y;if(si=='simple')return{rng:r,scrollX:sx,scrollY:sy};if(isIE){if(r.item){e=r.item(0);each(t.dom.select(e.nodeName),function(n,i){if(e==n){sp=i;return false;}});return{tag:e.nodeName,index:sp,scrollX:sx,scrollY:sy};}tr=t.dom.doc.body.createTextRange();tr.moveToElementText(ro);tr.collapse(true);bp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(true);sp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(false);le=Math.abs(tr.move('character',c))-sp;return{start:sp-bp,length:le,scrollX:sx,scrollY:sy};}e=t.getNode();s=t.getSel();if(!s)return null;if(e&&e.nodeName=='IMG'){return{scrollX:sx,scrollY:sy};}function getPos(r,sn,en){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){if(n==sn)d.start=p;if(n==en){d.end=p;return d;}p+=tinymce.trim(n.nodeValue||'').length;}return null;};if(s.anchorNode==s.focusNode&&s.anchorOffset==s.focusOffset){e=getPos(ro,s.anchorNode,s.focusNode);if(!e)return{scrollX:sx,scrollY:sy};(s.anchorNode.nodeValue||'').replace(/^\s+/,function(a){wb=a.length;});return{start:Math.max(e.start+s.anchorOffset-wb,0),end:Math.max(e.end+s.focusOffset-wb,0),scrollX:sx,scrollY:sy,beg:s.anchorOffset-wb==0};}else{e=getPos(ro,r.startContainer,r.endContainer);(r.startContainer.nodeValue||'').replace(/^\s+/,function(a){wb=a.length;});(r.endContainer.nodeValue||'').replace(/^\s+/,function(a){wa=a.length;});if(!e)return{scrollX:sx,scrollY:sy};return{start:Math.max(e.start+r.startOffset-wb,0),end:Math.max(e.end+r.endOffset-wa,0),scrollX:sx,scrollY:sy,beg:r.startOffset-wb==0};}},moveToBookmark:function(b){var t=this,r=t.getRng(),s=t.getSel(),ro=t.dom.getRoot(),sd,nvl,nv;function getPos(r,sp,ep){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={},o,v,wa,wb;while((n=w.nextNode())!=null){wa=wb=0;nv=n.nodeValue||'';nv.replace(/^\s+[^\s]/,function(a){wb=a.length-1;});nv.replace(/[^\s]\s+$/,function(a){wa=a.length-1;});nvl=tinymce.trim(nv).length;p+=nvl;if(p>=sp&&!d.startNode){o=sp-(p-nvl);if(b.beg&&o>=nvl)continue;d.startNode=n;d.startOffset=o+wb;}if(p>=ep){d.endNode=n;d.endOffset=ep-(p-nvl)+wb;return d;}}return null;};if(!b)return false;t.win.scrollTo(b.scrollX,b.scrollY);if(isIE){if(r=b.rng){try{r.select();}catch(ex){}return true;}t.win.focus();if(b.tag){r=ro.createControlRange();each(t.dom.select(b.tag),function(n,i){if(i==b.index)r.addElement(n);});}else{try{if(b.start<0)return true;r=s.createRange();r.moveToElementText(ro);r.collapse(true);r.moveStart('character',b.start);r.moveEnd('character',b.length);}catch(ex2){return true;}}try{r.select();}catch(ex){}return true;}if(!s)return false;if(b.rng){s.removeAllRanges();s.addRange(b.rng);}else{if(is(b.start)&&is(b.end)){try{sd=getPos(ro,b.start,b.end);if(sd){r=t.dom.doc.createRange();r.setStart(sd.startNode,sd.startOffset);r.setEnd(sd.endNode,sd.endOffset);s.removeAllRanges();s.addRange(r);}if(!tinymce.isOpera)t.win.focus();}catch(ex){}}}},select:function(n,c){var t=this,r=t.getRng(),s=t.getSel(),b,fn,ln,d=t.win.document;function first(n){return n?d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode():null;};function last(n){var c,o,w;if(!n)return null;w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(c=w.nextNode())o=c;return o;};if(isIE){try{b=d.body;if(/^(IMG|TABLE)$/.test(n.nodeName)){r=b.createControlRange();r.addElement(n);}else{r=b.createTextRange();r.moveToElementText(n);}r.select();}catch(ex){}}else{if(c){fn=first(n);ln=last(n);if(fn&&ln){r=d.createRange();r.setStart(fn,0);r.setEnd(ln,ln.nodeValue.length);}else r.selectNode(n);}else r.selectNode(n);t.setRng(r);}return n;},isCollapsed:function(){var t=this,r=t.getRng(),s=t.getSel();if(!r||r.item)return false;return!s||r.boundingWidth==0||s.isCollapsed;},collapse:function(b){var t=this,r=t.getRng(),n;if(r.item){n=r.item(0);r=this.win.document.body.createTextRange();r.moveToElementText(n);}r.collapse(!!b);t.setRng(r);},getSel:function(){var t=this,w=this.win;return w.getSelection?w.getSelection():w.document.selection;},getRng:function(){var t=this,s=t.getSel(),r;try{if(s)r=s.rangeCount>0?s.getRangeAt(0):(s.createRange?s.createRange():t.win.document.createRange());}catch(ex){}if(!r)r=isIE?t.win.document.body.createTextRange():t.win.document.createRange();return r;},setRng:function(r){var s;if(!isIE){s=this.getSel();if(s){s.removeAllRanges();s.addRange(r);}}else{try{r.select();}catch(ex){}}},setNode:function(n){var t=this;t.setContent(t.dom.getOuterHTML(n));return n;},getNode:function(){var t=this,r=t.getRng(),s=t.getSel(),e;if(!isIE){if(!r)return t.dom.getRoot();e=r.commonAncestorContainer;if(!r.collapsed){if(r.startContainer==r.endContainer||(tinymce.isWebKit&&r.startContainer==r.endContainer.parentNode)){if(r.startOffset-r.endOffset<2||tinymce.isWebKit){if(r.startContainer.hasChildNodes())e=r.startContainer.childNodes[r.startOffset];}}}return t.dom.getParent(e,function(n){return n.nodeType==1;});}return r.item?r.item(0):r.parentElement();}});})();(function(){tinymce.create('tinymce.dom.XMLWriter',{node:null,XMLWriter:function(s){function getXML(){var i=document.implementation;if(!i||!i.createDocument){try{return new ActiveXObject('MSXML2.DOMDocument');}catch(ex){}try{return new ActiveXObject('Microsoft.XmlDom');}catch(ex){}}else return i.createDocument('','',null);};this.doc=getXML();this.valid=tinymce.isOpera||tinymce.isWebKit;this.reset();},reset:function(){var t=this,d=t.doc;if(d.firstChild)d.removeChild(d.firstChild);t.node=d.appendChild(d.createElement("html"));},writeStartElement:function(n){var t=this;t.node=t.node.appendChild(t.doc.createElement(n));},writeAttribute:function(n,v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.setAttribute(n,v);},writeEndElement:function(){this.node=this.node.parentNode;},writeFullEndElement:function(){var t=this,n=t.node;n.appendChild(t.doc.createTextNode(""));t.node=n.parentNode;},writeText:function(v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.appendChild(this.doc.createTextNode(v));},writeCDATA:function(v){this.node.appendChild(this.doc.createCDATA(v));},writeComment:function(v){this.node.appendChild(this.doc.createComment(v));},getContent:function(){var h;h=this.doc.xml||new XMLSerializer().serializeToString(this.doc);h=h.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g,'');h=h.replace(/ ?\/>/g,' />');if(this.valid)h=h.replace(/\%MCGT%/g,'>');return h;}});})();(function(){tinymce.create('tinymce.dom.StringWriter',{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(s){this.settings=tinymce.extend({indent_char:' ',indentation:1},s);this.reset();},reset:function(){this.indent='';this.str="";this.tags=[];this.count=0;},writeStartElement:function(n){this._writeAttributesEnd();this.writeRaw('<'+n);this.tags.push(n);this.inAttr=true;this.count++;this.elementCount=this.count;},writeAttribute:function(n,v){var t=this;t.writeRaw(" "+t.encode(n)+'="'+t.encode(v)+'"');},writeEndElement:function(){var n;if(this.tags.length>0){n=this.tags.pop();if(this._writeAttributesEnd(1))this.writeRaw('</'+n+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeFullEndElement:function(){if(this.tags.length>0){this._writeAttributesEnd();this.writeRaw('</'+this.tags.pop()+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeText:function(v){this._writeAttributesEnd();this.writeRaw(this.encode(v));this.count++;},writeCDATA:function(v){this._writeAttributesEnd();this.writeRaw('<![CDATA['+v+']]>');this.count++;},writeComment:function(v){this._writeAttributesEnd();this.writeRaw('<!-- '+v+'-->');this.count++;},writeRaw:function(v){this.str+=v;},encode:function(s){return s.replace(/[<>&"]/g,function(v){switch(v){case'<':return'<';case'>':return'>';case'&':return'&';case'"':return'"';}return v;});},getContent:function(){return this.str;},_writeAttributesEnd:function(s){if(!this.inAttr)return;this.inAttr=false;if(s&&this.elementCount==this.count){this.writeRaw(' />');return false;}this.writeRaw('>');return true;}});})();(function(){var extend=tinymce.extend,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher,isIE=tinymce.isIE;function getIEAtts(n){var o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;};function wildcardToRE(s){return s.replace(/([?+*])/g,'.$1');};tinymce.create('tinymce.dom.Serializer',{Serializer:function(s){var t=this;t.key=0;t.onPreProcess=new Dispatcher(t);t.onPostProcess=new Dispatcher(t);if(tinymce.relaxedDomain&&tinymce.isGecko){t.writer=new tinymce.dom.StringWriter();}else{try{t.writer=new tinymce.dom.XMLWriter();}catch(ex){t.writer=new tinymce.dom.StringWriter();}}t.settings=s=extend({dom:tinymce.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_)/,closed:/(br|hr|input|meta|img|link|param)/,entity_encoding:'named',entities:'160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro',valid_elements:'*[*]',extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:0,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,font_size_style_values:0,apply_source_formatting:0,indent_mode:'simple',indent_char:'\t',indent_levels:1,remove_linebreaks:1},s);t.dom=s.dom;if(s.fix_list_elements){t.onPreProcess.add(function(se,o){var nl,x,a=['ol','ul'],i,n,p,r=/^(OL|UL)$/,np;function prevNode(e,n){var a=n.split(','),i;while((e=e.previousSibling)!=null){for(i=0;i<a.length;i++){if(e.nodeName==a[i])return e;}}return null;};for(x=0;x<a.length;x++){nl=t.dom.select(a[x],o.node);for(i=0;i<nl.length;i++){n=nl[i];p=n.parentNode;if(r.test(p.nodeName)){np=prevNode(n,'LI');if(!np){np=t.dom.create('li');np.innerHTML=' ';np.appendChild(n);p.insertBefore(np,p.firstChild);}else np.appendChild(n);}}}});}if(s.fix_table_elements){t.onPreProcess.add(function(se,o){each(t.dom.select('table',o.node),function(e){var pa=t.dom.getParent(e,'H1,H2,H3,H4,H5,H6,P'),pa2,n,tm,pl=[],i,ns;if(pa){pa2=pa.cloneNode(false);pl.push(e);for(n=e;n=n.parentNode;){pl.push(n);if(n==pa)break;}tm=pa2;for(i=pl.length-1;i>=0;i--){if(i==pl.length-1){while(ns=pl[i-1].nextSibling)tm.appendChild(ns.parentNode.removeChild(ns));}else{n=pl[i].cloneNode(false);if(i!=0){while(ns=pl[i-1].nextSibling)n.appendChild(ns.parentNode.removeChild(ns));}tm=tm.appendChild(n);}}e=t.dom.insertAfter(e.parentNode.removeChild(e),pa);t.dom.insertAfter(e,pa);t.dom.insertAfter(pa2,e);}});});}},setEntities:function(s){var t=this,a,i,l={},re='',v;if(t.entityLookup)return;a=s.split(',');for(i=0;i<a.length;i+=2){v=a[i];if(v==34||v==38||v==60||v==62)continue;l[String.fromCharCode(a[i])]=a[i+1];v=parseInt(a[i]).toString(16);re+='\\u'+'0000'.substring(v.length)+v;}if(!re){t.settings.entity_encoding='raw';return;}t.entitiesRE=new RegExp('['+re+']','g');t.entityLookup=l;},setValidChildRules:function(s){this.childRules=null;this.addValidChildRules(s);},addValidChildRules:function(s){var t=this,inst,intr,bloc;if(!s)return;inst='A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';intr='A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';bloc='H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';each(s.split(','),function(s){var p=s.split(/\[|\]/),re;s='';each(p[1].split('|'),function(v){if(s)s+='|';switch(v){case'%itrans':v=intr;break;case'%itrans_na':v=intr.substring(2);break;case'%istrict':v=inst;break;case'%istrict_na':v=inst.substring(2);break;case'%btrans':v=bloc;break;case'%bstrict':v=bloc;break;}s+=v;});re=new RegExp('^('+s.toLowerCase()+')$','i');each(p[0].split('/'),function(s){t.childRules=t.childRules||{};t.childRules[s]=re;});});s='';each(t.childRules,function(v,k){if(s)s+='|';s+=k;});t.parentElementsRE=new RegExp('^('+s.toLowerCase()+')$','i');},setRules:function(s){var t=this;t._setup();t.rules={};t.wildRules=[];t.validElements={};return t.addRules(s);},addRules:function(s){var t=this,dr;if(!s)return;t._setup();each(s.split(','),function(s){var p=s.split(/\[|\]/),tn=p[0].split('/'),ra,at,wat,va=[];if(dr)at=tinymce.extend([],dr.attribs);if(p.length>1){each(p[1].split('|'),function(s){var ar={},i;at=at||[];s=s.replace(/::/g,'~');s=/^([!\-])?([\w*.?~]+|)([=:<])?(.+)?$/.exec(s);s[2]=s[2].replace(/~/g,':');if(s[1]=='!'){ra=ra||[];ra.push(s[2]);}if(s[1]=='-'){for(i=0;i<at.length;i++){if(at[i].name==s[2]){at.splice(i,1);return;}}}switch(s[3]){case'=':ar.defaultVal=s[4]||'';break;case':':ar.forcedVal=s[4];break;case'<':ar.validVals=s[4].split('?');break;}if(/[*.?]/.test(s[2])){wat=wat||[];ar.nameRE=new RegExp('^'+wildcardToRE(s[2])+'$');wat.push(ar);}else{ar.name=s[2];at.push(ar);}va.push(s[2]);});}each(tn,function(s,i){var pr=s.charAt(0),x=1,ru={};if(dr){if(dr.noEmpty)ru.noEmpty=dr.noEmpty;if(dr.fullEnd)ru.fullEnd=dr.fullEnd;if(dr.padd)ru.padd=dr.padd;}switch(pr){case'-':ru.noEmpty=true;break;case'+':ru.fullEnd=true;break;case'#':ru.padd=true;break;default:x=0;}tn[i]=s=s.substring(x);t.validElements[s]=1;if(/[*.?]/.test(tn[0])){ru.nameRE=new RegExp('^'+wildcardToRE(tn[0])+'$');t.wildRules=t.wildRules||{};t.wildRules.push(ru);}else{ru.name=tn[0];if(tn[0]=='@')dr=ru;t.rules[s]=ru;}ru.attribs=at;if(ra)ru.requiredAttribs=ra;if(wat){s='';each(va,function(v){if(s)s+='|';s+='('+wildcardToRE(v)+')';});ru.validAttribsRE=new RegExp('^'+s.toLowerCase()+'$');ru.wildAttribs=wat;}});});s='';each(t.validElements,function(v,k){if(s)s+='|';if(k!='@')s+=k;});t.validElementsRE=new RegExp('^('+wildcardToRE(s.toLowerCase())+')$');},findRule:function(n){var t=this,rl=t.rules,i,r;t._setup();r=rl[n];if(r)return r;rl=t.wildRules;for(i=0;i<rl.length;i++){if(rl[i].nameRE.test(n))return rl[i];}return null;},findAttribRule:function(ru,n){var i,wa=ru.wildAttribs;for(i=0;i<wa.length;i++){if(wa[i].nameRE.test(n))return wa[i];}return null;},serialize:function(n,o){var h,t=this;t._setup();o=o||{};o.format=o.format||'html';t.processObj=o;n=n.cloneNode(true);t.key=''+(parseInt(t.key)+1);if(!o.no_events){o.node=n;t.onPreProcess.dispatch(t,o);}t.writer.reset();t._serializeNode(n,o.getInner);o.content=t.writer.getContent();if(!o.no_events)t.onPostProcess.dispatch(t,o);t._postProcess(o);o.node=null;return tinymce.trim(o.content);},_postProcess:function(o){var t=this,s=t.settings,h=o.content,sc=[],p,l;if(o.format=='html'){p=t._protect({content:h,patterns:[/(<script[^>]*>)(.*?)(<\/script>)/g,/(<style[^>]*>)(.*?)(<\/style>)/g,/(<pre[^>]*>)(.*?)(<\/pre>)/g]});h=p.content;if(s.entity_encoding!=='raw'){if(s.entity_encoding.indexOf('named')!=-1){t.setEntities(s.entities);l=t.entityLookup;h=h.replace(t.entitiesRE,function(a){var v;if(v=l[a])a='&'+v+';';return a;});}if(s.entity_encoding.indexOf('numeric')!=-1){h=h.replace(/[\u007E-\uFFFF]/g,function(a){return'&#'+a.charCodeAt(0)+';';});}}if(o.set)h=h.replace(/<p>\s+( | |\u00a0|<br \/>)\s+<\/p>/g,'<p><br /></p>');else h=h.replace(/<p>\s+( | |\u00a0|<br \/>)\s+<\/p>/g,'<p>$1</p>');if(!o.set){if(s.remove_linebreaks){h=h.replace(/(<[^>]+>)\s+/g,'$1 ');h=h.replace(/\s+(<\/[^>]+>)/g,' $1');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g,'<$1 $2>');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g,'<$1>');h=h.replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g,'</$1>');}if(s.apply_source_formatting&&s.indent_mode=='simple'){h=h.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g,'\n<$1$2$3>\n');h=h.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g,'\n<$1$2>');h=h.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g,'</$1>\n');h=h.replace(/\n\n/g,'\n');}}h=t._unprotect(h,p);}o.content=h;},_serializeNode:function(n,inn){var t=this,s=t.settings,w=t.writer,hc,el,cn,i,l,a,at,no,v,nn,ru,ar,iv;if(!s.node_filter||s.node_filter(n)){switch(n.nodeType){case 1:if(n.hasAttribute?n.hasAttribute('mce_bogus'):n.getAttribute('mce_bogus'))return;iv=false;hc=n.hasChildNodes();nn=n.getAttribute('mce_name')||n.nodeName.toLowerCase();if(isIE){if(n.scopeName!=='HTML'&&n.scopeName!=='html')nn=n.scopeName+':'+nn;}if(nn.indexOf('mce:')===0)nn=nn.substring(4);if(!t.validElementsRE.test(nn)||(t.invalidElementsRE&&t.invalidElementsRE.test(nn))||inn){iv=true;break;}if(isIE){if(s.fix_content_duplication){if(n.mce_serialized==t.key)return;n.mce_serialized=t.key;}if(nn.charAt(0)=='/')nn=nn.substring(1);}if(t.childRules){if(t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(nn)){iv=true;break;}}t.elementName=nn;}ru=t.findRule(nn);nn=ru.name||nn;if((!hc&&ru.noEmpty)||(isIE&&!nn)){iv=true;break;}if(ru.requiredAttribs){a=ru.requiredAttribs;for(i=a.length-1;i>=0;i--){if(this.dom.getAttrib(n,a[i])!=='')break;}if(i==-1){iv=true;break;}}w.writeStartElement(nn);if(ru.attribs){for(i=0,at=ru.attribs,l=at.length;i<l;i++){a=at[i];v=t._getAttrib(n,a);if(v!==null)w.writeAttribute(a.name,v);}}if(ru.validAttribsRE){at=isIE?getIEAtts(n):n.attributes;for(i=at.length-1;i>-1;i--){no=at[i];if(no.specified){a=no.nodeName.toLowerCase();if(s.invalid_attrs.test(a)||!ru.validAttribsRE.test(a))continue;ar=t.findAttribRule(ru,a);v=t._getAttrib(n,ar,a);if(v!==null)w.writeAttribute(a,v);}}}if(!hc&&ru.padd)w.writeText('\u00a0');break;case 3:if(t.childRules&&t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(n.nodeName))return;}return w.writeText(n.nodeValue);case 4:return w.writeCDATA(n.nodeValue);case 8:return w.writeComment(n.nodeValue);}}else if(n.nodeType==1)hc=n.hasChildNodes();if(hc){cn=n.firstChild;while(cn){t._serializeNode(cn);t.elementName=nn;cn=cn.nextSibling;}}if(!iv){if(hc||!s.closed.test(nn))w.writeFullEndElement();else w.writeEndElement();}},_protect:function(o){o.items=o.items||[];function enc(s){return s.replace(/[\r\n\\]/g,function(c){if(c==='\n')return'\\n';else if(c==='\\')return'\\\\';return'\\r';});};function dec(s){return s.replace(/\\[\\rn]/g,function(c){if(c==='\\n')return'\n';else if(c==='\\\\')return'\\';return'\r';});};each(o.patterns,function(p){o.content=dec(enc(o.content).replace(p,function(x,a,b,c){o.items.push(dec(b));return a+'<!--mce:'+(o.items.length-1)+'-->'+c;}));});return o;},_unprotect:function(h,o){h=h.replace(/\<!--mce:([0-9]+)--\>/g,function(a,b){return o.items[parseInt(b)];});o.items=[];return h;},_setup:function(){var t=this,s=this.settings;if(t.done)return;t.done=1;t.setRules(s.valid_elements);t.addRules(s.extended_valid_elements);t.addValidChildRules(s.valid_child_elements);if(s.invalid_elements)t.invalidElementsRE=new RegExp('^('+wildcardToRE(s.invalid_elements.replace(',','|').toLowerCase())+')$');if(s.attrib_value_filter)t.attribValueFilter=s.attribValueFilter;},_getAttrib:function(n,a,na){var i,v;na=na||a.name;if(a.forcedVal&&(v=a.forcedVal)){if(v==='{$uid}')return this.dom.uniqueId();return v;}v=this.dom.getAttrib(n,na);switch(na){case'rowspan':case'colspan':if(v=='1')v='';break;}if(this.attribValueFilter)v=this.attribValueFilter(na,v,n);if(a.validVals){for(i=a.validVals.length-1;i>=0;i--){if(v==a.validVals[i])break;}if(i==-1)return null;}if(v===''&&typeof(a.defaultVal)!='undefined'){v=a.defaultVal;if(v==='{$uid}')return this.dom.uniqueId();return v;}else{if(na=='class'&&this.processObj.get)v=v.replace(/\s?mceItem\w+\s?/g,'');}if(v==='')return null;return v;}});})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.ScriptLoader',{ScriptLoader:function(s){this.settings=s||{};this.queue=[];this.lookup={};},isDone:function(u){return this.lookup[u]?this.lookup[u].state==2:0;},markDone:function(u){this.lookup[u]={state:2,url:u};},add:function(u,cb,s,pr){var t=this,lo=t.lookup,o;if(o=lo[u]){if(cb&&o.state==2)cb.call(s||this);return o;}o={state:0,url:u,func:cb,scope:s||this};if(pr)t.queue.unshift(o);else t.queue.push(o);lo[u]=o;return o;},load:function(u,cb,s){var t=this,o;function loadScript(u){if(tinymce.dom.Event.domLoaded||t.settings.strict_mode){tinymce.util.XHR.send({url:u,error:t.settings.error,async:false,success:function(co){t.eval(co);}});}else document.write('<script type="text/javascript" src="'+u+'"></script>');};if(!tinymce.is(u,'string')){each(u,function(u){loadScript(u);});if(cb)cb.call(s||t);}else{loadScript(u);if(cb)cb.call(s||t);}},loadQueue:function(cb,s){var t=this;if(!t.queueLoading){t.queueLoading=1;t.queueCallbacks=[];t.loadScripts(t.queue,function(){t.queueLoading=0;if(cb)cb.call(s||t);each(t.queueCallbacks,function(o){o.func.call(o.scope);});});}else if(cb)t.queueCallbacks.push({func:cb,scope:s||t});},eval:function(co){var w=window;if(!w.execScript){try{eval.call(w,co);}catch(ex){eval(co,w);}}else w.execScript(co);},loadScripts:function(sc,cb,s){var t=this,lo=t.lookup;function done(o){o.state=2;if(o.func)o.func.call(o.scope||t);};function allDone(){var l;l=sc.length;each(sc,function(o){o=lo[o.url];if(o.state===2){done(o);l--;}else load(o);});if(l===0&&cb){cb.call(s||t);cb=0;}};function load(o){if(o.state>0)return;o.state=1;tinymce.util.XHR.send({url:o.url,error:t.settings.error,success:function(co){t.eval(co);done(o);allDone();}});};each(sc,function(o){var u=o.url;if(!lo[u]){lo[u]=o;t.queue.push(o);}else o=lo[u];if(o.state>0)return;if(!tinymce.dom.Event.domLoaded&&!t.settings.strict_mode){var ix,ol='';if(cb||o.func){o.state=1;ix=tinymce.dom.ScriptLoader._addOnLoad(function(){done(o);allDone();});if(tinymce.isIE)ol=' onreadystatechange="';else ol=' onload="';ol+='tinymce.dom.ScriptLoader._onLoad(this,\''+u+'\','+ix+');"';}document.write('<script type="text/javascript" src="'+u+'"'+ol+'></script>');if(!o.func)done(o);}else load(o);});allDone();},'static':{_addOnLoad:function(f){var t=this;t._funcs=t._funcs||[];t._funcs.push(f);return t._funcs.length-1;},_onLoad:function(e,u,ix){if(!tinymce.isIE||e.readyState=='complete')this._funcs[ix].call(this);}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader();})();(function(){var DOM=tinymce.DOM,is=tinymce.is;tinymce.create('tinymce.ui.Control',{Control:function(id,s){this.id=id;this.settings=s=s||{};this.rendered=false;this.onRender=new tinymce.util.Dispatcher(this);this.classPrefix='';this.scope=s.scope||this;this.disabled=0;this.active=0;},setDisabled:function(s){var e;if(s!=this.disabled){e=DOM.get(this.id);if(e&&this.settings.unavailable_prefix){if(s){this.prevTitle=e.title;e.title=this.settings.unavailable_prefix+": "+e.title;}else e.title=this.prevTitle;}this.setState('Disabled',s);this.setState('Enabled',!s);this.disabled=s;}},isDisabled:function(){return this.disabled;},setActive:function(s){if(s!=this.active){this.setState('Active',s);this.active=s;}},isActive:function(){return this.active;},setState:function(c,s){var n=DOM.get(this.id);c=this.classPrefix+c;if(s)DOM.addClass(n,c);else DOM.removeClass(n,c);},isRendered:function(){return this.rendered;},renderHTML:function(){},renderTo:function(n){DOM.setHTML(n,this.renderHTML());},postRender:function(){var t=this,b;if(is(t.disabled)){b=t.disabled;t.disabled=-1;t.setDisabled(b);}if(is(t.active)){b=t.active;t.active=-1;t.setActive(b);}},destroy:function(){DOM.remove(this.id);}});})();tinymce.create('tinymce.ui.Container:tinymce.ui.Control',{Container:function(id,s){this.parent(id,s);this.controls=[];this.lookup={};},add:function(c){this.lookup[c.id]=c;this.controls.push(c);return c;},get:function(n){return this.lookup[n];}});tinymce.create('tinymce.ui.Separator:tinymce.ui.Control',{renderHTML:function(){return tinymce.DOM.createHTML('span',{'class':'mceSeparator'});}});(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control',{MenuItem:function(id,s){this.parent(id,s);this.classPrefix='mceMenuItem';},setSelected:function(s){this.setState('Selected',s);this.selected=s;},isSelected:function(){return this.selected;},postRender:function(){var t=this;t.parent();if(is(t.selected))t.setSelected(t.selected);}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem',{Menu:function(id,s){var t=this;t.parent(id,s);t.items={};t.collapsed=false;t.menuCount=0;t.onAddItem=new tinymce.util.Dispatcher(this);},expand:function(d){var t=this;if(d){walk(t,function(o){if(o.expand)o.expand();},'items',t);}t.collapsed=false;},collapse:function(d){var t=this;if(d){walk(t,function(o){if(o.collapse)o.collapse();},'items',t);}t.collapsed=true;},isCollapsed:function(){return this.collapsed;},add:function(o){if(!o.settings)o=new tinymce.ui.MenuItem(o.id||DOM.uniqueId(),o);this.onAddItem.dispatch(this,o);return this.items[o.id]=o;},addSeparator:function(){return this.add({separator:true});},addMenu:function(o){if(!o.collapse)o=this.createMenu(o);this.menuCount++;return this.add(o);},hasMenus:function(){return this.menuCount!==0;},remove:function(o){delete this.items[o.id];},removeAll:function(){var t=this;walk(t,function(o){if(o.removeAll)o.removeAll();o.destroy();},'items',t);t.items={};},createMenu:function(o){var m=new tinymce.ui.Menu(o.id||DOM.uniqueId(),o);m.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return m;}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,Event=tinymce.dom.Event,Element=tinymce.dom.Element;tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu',{DropMenu:function(id,s){s=s||{};s.container=s.container||document.body;s.offset_x=s.offset_x||0;s.offset_y=s.offset_y||0;s.vp_offset_x=s.vp_offset_x||0;s.vp_offset_y=s.vp_offset_y||0;if(is(s.icons)&&!s.icons)s['class']+=' mceNoIcons';this.parent(id,s);this.onShowMenu=new tinymce.util.Dispatcher(this);this.onHideMenu=new tinymce.util.Dispatcher(this);this.classPrefix='mceMenu';this.fixIE=tinymce.isIE&&window.top!=window;},createMenu:function(s){var t=this,cs=t.settings,m;s.container=s.container||cs.container;s.parent=t;s.constrain=s.constrain||cs.constrain;s['class']=s['class']||cs['class'];s.vp_offset_x=s.vp_offset_x||cs.vp_offset_x;s.vp_offset_y=s.vp_offset_y||cs.vp_offset_y;m=new tinymce.ui.DropMenu(s.id||DOM.uniqueId(),s);m.onAddItem.add(t.onAddItem.dispatch,t.onAddItem);return m;},update:function(){var t=this,s=t.settings,tb=DOM.get('menu_'+t.id+'_tbl'),co=DOM.get('menu_'+t.id+'_co'),tw,th;tw=s.max_width?Math.min(tb.clientWidth,s.max_width):tb.clientWidth;th=s.max_height?Math.min(tb.clientHeight,s.max_height):tb.clientHeight;if(!DOM.boxModel)t.element.setStyles({width:tw+2,height:th+2});else t.element.setStyles({width:tw,height:th});if(s.max_width)DOM.setStyle(co,'width',tw);if(s.max_height){DOM.setStyle(co,'height',th);if(tb.clientHeight<s.max_height)DOM.setStyle(co,'overflow','hidden');}},showMenu:function(x,y,px){var t=this,s=t.settings,co,vp=DOM.getViewPort(),w,h,mx,my,ot=2,dm,tb;t.collapse(1);if(t.isMenuVisible)return;if(!t.rendered){co=DOM.add(t.settings.container,t.renderNode());each(t.items,function(o){o.postRender();});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});}else co=DOM.get('menu_'+t.id);if(!tinymce.isOpera)DOM.setStyles(co,{left:-0xFFFF,top:-0xFFFF});DOM.show(co);t.update();x+=s.offset_x||0;y+=s.offset_y||0;vp.w-=4;vp.h-=4;if(s.constrain){w=co.clientWidth-ot;h=co.clientHeight-ot;mx=vp.x+vp.w;my=vp.y+vp.h;if((x+s.vp_offset_x+w)>mx)x=px?px-w:Math.max(0,(mx-s.vp_offset_x)-w);if((y+s.vp_offset_y+h)>my)y=Math.max(0,(my-s.vp_offset_y)-h);}DOM.setStyles(co,{left:x,top:y});t.element.update();t.isMenuVisible=1;t.mouseClickFunc=Event.add(co,t.fixIE?'mousedown':'click',function(e){var m;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))&&!DOM.hasClass(e,'mceMenuItemSub')){m=t.items[e.id];if(m.isDisabled())return;dm=t;while(dm){if(dm.hideMenu)dm.hideMenu();dm=dm.settings.parent;}if(m.settings.onclick)m.settings.onclick(e);return Event.cancel(e);}});if(t.hasMenus()){t.mouseOverFunc=Event.add(co,'mouseover',function(e){var m,r,mi;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))){m=t.items[e.id];if(t.lastMenu)t.lastMenu.collapse(1);if(m.isDisabled())return;if(e&&DOM.hasClass(e,'mceMenuItemSub')){r=DOM.getRect(e);m.showMenu((r.x+r.w-ot),r.y-ot,r.x);t.lastMenu=m;DOM.addClass(DOM.get(m.id).firstChild,'mceMenuItemActive');}}});}t.onShowMenu.dispatch(t);},hideMenu:function(c){var t=this,co=DOM.get('menu_'+t.id),e;if(!t.isMenuVisible)return;Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,t.fixIE?'mousedown':'click',t.mouseClickFunc);DOM.hide(co);t.isMenuVisible=0;if(!c)t.collapse(1);if(t.element)t.element.hide();if(e=DOM.get(t.id))DOM.removeClass(e.firstChild,'mceMenuItemActive');t.onHideMenu.dispatch(t);},add:function(o){var t=this,co;o=t.parent(o);if(t.isRendered&&(co=DOM.get('menu_'+t.id)))t._add(DOM.select('tbody',co)[0],o);return o;},collapse:function(d){this.parent(d);this.hideMenu(1);},remove:function(o){DOM.remove(o.id);return this.parent(o);},destroy:function(){var t=this,co=DOM.get('menu_'+t.id);Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);if(t.element)t.element.remove();DOM.remove(co);},renderNode:function(){var t=this,s=t.settings,n,tb,co,w;w=DOM.create('div',{id:'menu_'+t.id,dir:'ltr','class':s['class'],'style':'position:absolute;left:0;top:0;z-index:150'});co=DOM.add(w,'div',{id:'menu_'+t.id+'_co','class':'mceMenu'+(s['class']?' '+s['class']:'')});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});if(s.menu_line)DOM.add(co,'span',{'class':'mceMenuLine'});n=DOM.add(co,'table',{id:'menu_'+t.id+'_tbl',border:0,cellPadding:0,cellSpacing:0});tb=DOM.add(n,'tbody');each(t.items,function(o){t._add(tb,o);});t.rendered=true;return w;},_add:function(tb,o){var n,s=o.settings,a,ro,it;if(s.separator){ro=DOM.add(tb,'tr',{id:o.id,'class':'mceMenuItemSeparator'});DOM.add(ro,'td',{'class':'mceMenuItemSeparator'});if(n=ro.previousSibling)DOM.addClass(n,'mceLast');return;}n=ro=DOM.add(tb,'tr',{id:o.id,'class':'mceMenuItem mceMenuItemEnabled'});n=it=DOM.add(n,'td');n=a=DOM.add(n,'a',{href:'javascript:;',onclick:"return false;",onmousedown:'return false;'});DOM.addClass(it,s['class']);DOM.add(n,'span',{'class':'mceIcon'+(s.icon?' mce_'+s.icon:'')});n=DOM.add(n,s.element||'span',{'class':'mceText',title:o.settings.title},o.settings.title);if(o.settings.style)DOM.setAttrib(n,'style',o.settings.style);if(tb.childNodes.length==1)DOM.addClass(ro,'mceFirst');if((n=ro.previousSibling)&&DOM.hasClass(n,'mceMenuItemSeparator'))DOM.addClass(ro,'mceFirst');if(o.collapse)DOM.addClass(ro,'mceMenuItemSub');if(n=ro.previousSibling)DOM.removeClass(n,'mceLast');DOM.addClass(ro,'mceLast');}});})();(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.ui.Button:tinymce.ui.Control',{Button:function(id,s){this.parent(id,s);this.classPrefix='mceButton';},renderHTML:function(){var s=this.settings,h='<a id="'+this.id+'" href="javascript:;" class="mceButton mceButtonEnabled '+s['class']+'" onmousedown="return false;" onclick="return false;" title="'+DOM.encode(s.title)+'">';if(s.image)h+='<img class="mceIcon" src="'+s.image+'" /></a>';else h+='<span class="mceIcon '+s['class']+'"></span></a>';return h;},postRender:function(){var t=this,s=t.settings;tinymce.dom.Event.add(t.id,'click',function(e){if(!t.isDisabled())return s.onclick.call(s.scope,e);});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control',{ListBox:function(id,s){var t=this;t.parent(id,s);t.items=[];t.onChange=new Dispatcher(t);t.onPostRender=new Dispatcher(t);t.onAdd=new Dispatcher(t);t.onRenderMenu=new tinymce.util.Dispatcher(this);t.classPrefix='mceListBox';},select:function(v){var t=this,e,fv;if(v!=t.selectedValue){e=DOM.get(t.id+'_text');t.selectedValue=v;each(t.items,function(o){if(o.value==v){DOM.setHTML(e,DOM.encode(o.title));fv=1;return false;}});if(!fv){DOM.setHTML(e,DOM.encode(t.settings.title));DOM.addClass(e,'mceTitle');e=0;return;}else DOM.removeClass(e,'mceTitle');}e=0;},add:function(n,v,o){var t=this;o=o||{};o=tinymce.extend(o,{title:n,value:v});t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return this.items.length;},renderHTML:function(){var h='',t=this,s=t.settings;h='<table id="'+t.id+'" cellpadding="0" cellspacing="0" class="mceListBox mceListBoxEnabled'+(s['class']?(' '+s['class']):'')+'"><tbody><tr>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_text',href:'javascript:;','class':'mceText',onclick:"return false;",onmousedown:'return false;'},DOM.encode(t.settings.title))+'</td>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',href:'javascript:;','class':'mceOpen',onclick:"return false;",onmousedown:'return false;'},'<span></span>')+'</td>';h+='</tr></tbody></table>';return h;},showMenu:function(){var t=this,p1,p2,e=DOM.get(this.id),m;if(t.isDisabled()||t.items.length==0)return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}p1=DOM.getPos(this.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;if(t.oldID)m.items[t.oldID].setSelected(0);each(t.items,function(o){if(o.value===t.selectedValue){m.items[o.id].setSelected(1);t.oldID=o.id;}});m.showMenu(0,e.clientHeight);Event.add(document,'mousedown',t.hideMenu,t);DOM.addClass(t.id,'mceListBoxSelected');},hideMenu:function(e){var t=this;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){DOM.removeClass(t.id,'mceListBoxSelected');Event.remove(document,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':'mceListBoxMenu mceNoIcons',max_width:150,max_height:150});m.onHideMenu.add(t.hideMenu,t);m.add({title:t.settings.title,'class':'mceMenuItemTitle'}).setDisabled(1);each(t.items,function(o){o.id=DOM.uniqueId();o.onclick=function(){if(t.settings.onselect(o.value)!==false)t.select(o.value);};m.add(o);});t.onRenderMenu.dispatch(t,m);t.menu=m;},postRender:function(){var t=this;Event.add(t.id,'click',t.showMenu,t);if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,'mceListBoxDisabled'))DOM.addClass(t.id,'mceListBoxHover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,'mceListBoxDisabled'))DOM.removeClass(t.id,'mceListBoxHover');});}t.onPostRender.dispatch(t,DOM.get(t.id));}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox',{NativeListBox:function(id,s){this.parent(id,s);this.classPrefix='mceNativeListBox';},setDisabled:function(s){DOM.get(this.id).disabled=s;},isDisabled:function(){return DOM.get(this.id).disabled;},select:function(v){var e=DOM.get(this.id),ol=e.options;v=''+(v||'');e.selectedIndex=0;each(ol,function(o,i){if(o.value==v){e.selectedIndex=i;return false;}});},add:function(n,v,a){var o,t=this;a=a||{};a.value=v;if(t.isRendered())DOM.add(DOM.get(this.id),'option',a,n);o={title:n,value:v,attribs:a};t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return DOM.get(this.id).options.length-1;},renderHTML:function(){var h,t=this;h=DOM.createHTML('option',{value:''},'-- '+t.settings.title+' --');each(t.items,function(it){h+=DOM.createHTML('option',{value:it.value},it.title);});h=DOM.createHTML('select',{id:t.id,'class':'mceNativeListBox'},h);return h;},postRender:function(){var t=this,ch;t.rendered=true;function onChange(e){var v=e.target.options[e.target.selectedIndex].value;t.onChange.dispatch(t,v);if(t.settings.onselect)t.settings.onselect(v);};Event.add(t.id,'change',onChange);Event.add(t.id,'keydown',function(e){var bf;Event.remove(t.id,'change',ch);bf=Event.add(t.id,'blur',function(){Event.add(t.id,'change',onChange);Event.remove(t.id,'blur',bf);});if(e.keyCode==13||e.keyCode==32){onChange(e);return Event.cancel(e);}});t.onPostRender.dispatch(t,DOM.get(t.id));}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button',{MenuButton:function(id,s){this.parent(id,s);this.onRenderMenu=new tinymce.util.Dispatcher(this);s.menu_container=s.menu_container||document.body;},showMenu:function(){var t=this,p1,p2,e=DOM.get(t.id),m;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}p1=DOM.getPos(t.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.vp_offset_x=p2.x;m.settings.vp_offset_y=p2.y;m.showMenu(0,e.clientHeight);Event.add(document,'mousedown',t.hideMenu,t);t.setState('Selected',1);},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':this.classPrefix+'Menu',icons:t.settings.icons});m.onHideMenu.add(t.hideMenu,t);t.onRenderMenu.dispatch(t,m);t.menu=m;},hideMenu:function(e){var t=this;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){t.setState('Selected',0);Event.remove(document,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}},postRender:function(){var t=this,s=t.settings;Event.add(t.id,'click',function(){if(!t.isDisabled()){if(s.onclick)s.onclick(t.value);t.showMenu();}});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton',{SplitButton:function(id,s){this.parent(id,s);this.classPrefix='mceSplitButton';},renderHTML:function(){var h,t=this,s=t.settings,h1;h='<tbody><tr>';if(s.image)h1=DOM.createHTML('img ',{src:s.image,'class':'mceAction '+s['class']});else h1=DOM.createHTML('span',{'class':'mceAction '+s['class']});h+='<td>'+DOM.createHTML('a',{id:t.id+'_action',href:'javascript:;','class':'mceAction '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h1=DOM.createHTML('span',{'class':'mceOpen '+s['class']});h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',href:'javascript:;','class':'mceOpen '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h+='</tr></tbody>';return DOM.createHTML('table',{id:t.id,'class':'mceSplitButton mceSplitButtonEnabled '+s['class'],cellpadding:'0',cellspacing:'0',onmousedown:'return false;',title:s.title},h);},postRender:function(){var t=this,s=t.settings;if(s.onclick){Event.add(t.id+'_action','click',function(){if(!t.isDisabled())s.onclick(t.value);});}Event.add(t.id+'_open','click',t.showMenu,t);if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.addClass(t.id,'mceSplitButtonHover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.removeClass(t.id,'mceSplitButtonHover');});}}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,is=tinymce.is,each=tinymce.each;tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton',{ColorSplitButton:function(id,s){var t=this;t.parent(id,s);t.settings=s=tinymce.extend({colors:'000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF',grid_width:8,default_color:'#888888'},t.settings);t.value=s.default_color;},showMenu:function(){var t=this,r,p,e;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}e=DOM.get(t.id);DOM.show(t.id+'_menu');DOM.addClass(e,'mceSplitButtonSelected');p2=DOM.getPos(e);DOM.setStyles(t.id+'_menu',{left:p2.x,top:p2.y+e.clientHeight,zIndex:150});e=0;Event.add(document,'mousedown',t.hideMenu,t);},hideMenu:function(e){var t=this;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceSplitButtonMenu');})){DOM.removeClass(t.id,'mceSplitButtonSelected');Event.remove(document,'mousedown',t.hideMenu,t);DOM.hide(t.id+'_menu');}},renderMenu:function(){var t=this,m,i=0,s=t.settings,n,tb,tr,w;w=DOM.add(s.menu_container,'div',{id:t.id+'_menu',dir:'ltr','class':s['menu_class']+' '+s['class'],style:'position:absolute;left:0;top:-1000px;'});m=DOM.add(w,'div',{'class':s['class']+' mceSplitButtonMenu'});DOM.add(m,'span',{'class':'mceMenuLine'});n=DOM.add(m,'table',{'class':'mceColorSplitMenu'});tb=DOM.add(n,'tbody');i=0;each(is(s.colors,'array')?s.colors:s.colors.split(','),function(c){c=c.replace(/^#/,'');if(!i--){tr=DOM.add(tb,'tr');i=s.grid_width-1;}n=DOM.add(tr,'td');n=DOM.add(n,'a',{href:'javascript:;',style:{backgroundColor:'#'+c}});Event.add(n,'mousedown',function(){t.setColor('#'+c);});});if(s.more_colors_func){n=DOM.add(tb,'tr');n=DOM.add(n,'td',{colspan:s.grid_width,'class':'mceMoreColors'});n=DOM.add(n,'a',{href:'javascript:;',onclick:'return false;','class':'mceMoreColors'},s.more_colors_title);Event.add(n,'click',function(e){s.more_colors_func.call(s.more_colors_scope||this);return Event.cancel(e);});}DOM.addClass(m,'mceColorSplitMenu');return w;},setColor:function(c){var t=this,p,s=this.settings,co=s.menu_container,po,cp,id=t.id+'_preview';if(!(p=DOM.get(id))){DOM.setStyle(t.id+'_action','position','relative');p=DOM.add(t.id+'_action','div',{id:id,'class':'mceColorPreview'});}p.style.backgroundColor=c;t.value=c;t.hideMenu();s.onselect(c);},destroy:function(){this.parent();DOM.remove(this.id+'_menu');}});})();tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container',{renderHTML:function(){var t=this,h='',c,co,dom=tinymce.DOM,s=t.settings,i,pr,nx,cl;cl=t.controls;for(i=0;i<cl.length;i++){co=cl[i];pr=cl[i-1];nx=cl[i+1];if(i===0){c='mceToolbarStart';if(co.Button)c+=' mceToolbarStartButton';else if(co.SplitButton)c+=' mceToolbarStartSplitButton';else if(co.ListBox)c+=' mceToolbarStartListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));}if(pr&&co.ListBox){if(pr.Button||pr.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarEnd'},dom.createHTML('span',null,'<!-- IE -->'));}if(dom.stdMode)h+='<td style="position: relative">'+co.renderHTML()+'</td>';else h+='<td>'+co.renderHTML()+'</td>';if(nx&&co.ListBox){if(nx.Button||nx.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarStart'},dom.createHTML('span',null,'<!-- IE -->'));}}c='mceToolbarEnd';if(co.Button)c+=' mceToolbarEndButton';else if(co.SplitButton)c+=' mceToolbarEndSplitButton';else if(co.ListBox)c+=' mceToolbarEndListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));return dom.createHTML('table',{id:t.id,'class':'mceToolbar'+(s['class']?' '+s['class']:''),cellpadding:'0',cellspacing:'0',align:t.settings.align||''},'<tbody><tr>'+h+'</tr></tbody>');}});(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each;tinymce.create('tinymce.AddOnManager',{items:[],urls:{},lookup:{},onAdd:new Dispatcher(this),get:function(n){return this.lookup[n];},requireLangPack:function(n){var u,s;if(tinymce.EditorManager.settings){u=this.urls[n]+'/langs/'+tinymce.EditorManager.settings.language+'.js';s=tinymce.EditorManager.settings;if(s){if(!tinymce.dom.Event.domLoaded&&!s.strict_mode)tinymce.ScriptLoader.load(u);else tinymce.ScriptLoader.add(u);}}},add:function(id,o){this.items.push(o);this.lookup[id]=o;this.onAdd.dispatch(this,id,o);return o;},load:function(n,u,cb,s){if(u.indexOf('/')!=0&&u.indexOf('://')==-1)u=tinymce.baseURL+'/'+u;this.urls[n]=u.substring(0,u.lastIndexOf('/'));tinymce.ScriptLoader.add(u,cb,s);}});tinymce.PluginManager=new tinymce.AddOnManager();tinymce.ThemeManager=new tinymce.AddOnManager();}());(function(){var each=tinymce.each,extend=tinymce.extend,DOM=tinymce.DOM,Event=tinymce.dom.Event,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,explode=tinymce.explode;tinymce.create('static tinymce.EditorManager',{editors:{},i18n:{},activeEditor:null,init:function(s){var t=this,pl,sl=tinymce.ScriptLoader,c;function execCallback(se,n,s){var f=se[n];if(!f)return;if(tinymce.is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);}return f.apply(s||this,Array.prototype.slice.call(arguments,2));};s=extend({theme:"simple",language:"en",strict_loading_mode:document.contentType=='application/xhtml+xml'},s);t.settings=s;if(!Event.domLoaded&&!s.strict_loading_mode){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme&&s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');if(s.plugins){pl=explode(s.plugins);if(tinymce.inArray(pl,'compat2x')!=-1)PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');each(pl,function(v){if(v&&v.charAt(0)!='-'&&!PluginManager.urls[v]){if(!tinymce.isWebKit&&v=='safari')return;PluginManager.load(v,'plugins/'+v+'/editor_plugin'+tinymce.suffix+'.js');}});}sl.loadQueue();}Event.add(document,'init',function(){var l,co;execCallback(s,'onpageload');if(s.browsers){l=false;each(explode(s.browsers),function(v){switch(v){case'ie':case'msie':if(tinymce.isIE)l=true;break;case'gecko':if(tinymce.isGecko)l=true;break;case'safari':case'webkit':if(tinymce.isWebKit)l=true;break;case'opera':if(tinymce.isOpera)l=true;break;}});if(!l)return;}switch(s.mode){case"exact":l=s.elements||'';if(l.length>0){each(explode(l),function(v){if(DOM.get(v))new tinymce.Editor(v,s).render(1);else{c=0;each(document.forms,function(f){each(f.elements,function(e){if(e.name===v){v='mce_editor_'+c;DOM.setAttrib(e,'id',v);new tinymce.Editor(v,s).render(1);}});});}});}break;case"textareas":case"specific_textareas":function hasClass(n,c){return new RegExp('\\b'+c+'\\b','g').test(n.className);};each(DOM.select('textarea'),function(v){if(s.editor_deselector&&hasClass(v,s.editor_deselector))return;if(!s.editor_selector||hasClass(v,s.editor_selector))new tinymce.Editor(v.id=(v.id||v.name||(v.id=DOM.uniqueId())),s).render(1);});break;}if(s.oninit){l=co=0;each(t.editors,function(ed){co++;if(!ed.initialized){ed.onInit.add(function(){l++;if(l==co)execCallback(s,'oninit');});}else l++;if(l==co)execCallback(s,'oninit');});}});},get:function(id){return this.editors[id];},getInstanceById:function(id){return this.get(id);},add:function(e){this.editors[e.id]=e;this._setActive(e);return e;},remove:function(e){var t=this;if(!t.editors[e.id])return null;delete t.editors[e.id];if(t.activeEditor==e){each(t.editors,function(e){t._setActive(e);return false;});}e._destroy();return e;},execCommand:function(c,u,v){var t=this,ed=t.get(v);switch(c){case"mceFocus":ed.focus();return true;case"mceAddEditor":case"mceAddControl":new tinymce.Editor(v,t.settings).render();return true;case"mceAddFrameControl":return true;case"mceRemoveEditor":case"mceRemoveControl":ed.remove();return true;case'mceToggleEditor':if(!ed){t.execCommand('mceAddControl',0,v);return true;}if(ed.isHidden())ed.show();else ed.hide();return true;}if(t.activeEditor)return t.activeEditor.execCommand(c,u,v);return false;},execInstanceCommand:function(id,c,u,v){var ed=this.get(id);if(ed)return ed.execCommand(c,u,v);return false;},triggerSave:function(){each(this.editors,function(e){e.save();});},addI18n:function(p,o){var lo,i18n=this.i18n;if(!tinymce.is(p,'string')){each(p,function(o,lc){each(o,function(o,g){each(o,function(o,k){if(g==='common')i18n[lc+'.'+k]=o;else i18n[lc+'.'+g+'.'+k]=o;});});});}else{each(o,function(o,k){i18n[p+'.'+k]=o;});}},_setActive:function(e){this.selectedInstance=this.activeEditor=e;}});tinymce.documentBaseURL=window.location.href.replace(/[\?#].*$/,'').replace(/[\/\\][^\/]+$/,'');if(!/[\/\\]$/.test(tinymce.documentBaseURL))tinymce.documentBaseURL+='/';tinymce.baseURL=new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);tinymce.EditorManager.baseURI=new tinymce.util.URI(tinymce.baseURL);if(tinymce.EditorManager.baseURI.host!=window.location.hostname&&window.location.hostname)document.domain=tinymce.relaxedDomain=window.location.hostname.replace(/.*\.(.+\..+)$/,'$1');})();var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,Dispatcher=tinymce.util.Dispatcher;var each=tinymce.each,isGecko=tinymce.isGecko,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit;var is=tinymce.is,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,EditorManager=tinymce.EditorManager;var inArray=tinymce.inArray,grep=tinymce.grep,explode=tinymce.explode;tinymce.create('tinymce.Editor',{Editor:function(id,s){var t=this;t.id=t.editorId=id;t.execCommands={};t.queryStateCommands={};t.queryValueCommands={};t.plugins={};each(['onPreInit','onBeforeRenderUI','onPostRender','onInit','onRemove','onActivate','onDeactivate','onClick','onEvent','onMouseUp','onMouseDown','onDblClick','onKeyDown','onKeyUp','onKeyPress','onContextMenu','onSubmit','onReset','onPaste','onPreProcess','onPostProcess','onBeforeSetContent','onBeforeGetContent','onSetContent','onGetContent','onLoadContent','onSaveContent','onNodeChange','onChange','onBeforeExecCommand','onExecCommand','onUndo','onRedo','onVisualAid','onSetProgressState'],function(e){t[e]=new Dispatcher(t);});t.settings=s=extend({id:id,language:'en',docs_language:'en',theme:'simple',skin:'default',delta_width:0,delta_height:0,popup_css:'',plugins:'',document_base_url:tinymce.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',visual_table_class:'mceItemTable',visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:'xx-small,x-small,small,medium,large,x-large,xx-large',apply_source_formatting:1,directionality:'ltr',forced_root_block:'p',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,-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,-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|_value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target]',hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:'30px'},s);t.documentBaseURI=new tinymce.util.URI(s.document_base_url||tinymce.documentBaseURL,{base_uri:tinyMCE.baseURI});t.baseURI=EditorManager.baseURI;t.execCallback('setup',t);},render:function(nst){var t=this,s=t.settings,id=t.id,sl=tinymce.ScriptLoader;if(!Event.domLoaded){Event.add(document,'init',function(){t.render();});return;}if(!nst){s.strict_loading_mode=1;tinyMCE.settings=s;}if(!t.getElement())return;if(s.strict_loading_mode){sl.settings.strict_mode=s.strict_loading_mode;tinymce.DOM.settings.strict=1;}if(!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&s.hidden_input&&DOM.getParent(id,'form'))DOM.insertAfter(DOM.create('input',{type:'hidden',name:id}),id);t.windowManager=new tinymce.WindowManager(t);if(s.encoding=='xml'){t.onGetContent.add(function(ed,o){if(o.get)o.content=DOM.encode(o.content);});}if(s.add_form_submit_trigger){t.onSubmit.addToTop(function(){if(t.initialized){t.save();t.isNotDirty=1;}});}if(s.add_unload_trigger){Event.add(document,'beforeunload',function(){if(t.initialized&&!t.destroyed)t.save({format:'raw',no_events:true});});}tinymce.addUnload(t._destroy,t);if(s.submit_patch){t.onBeforeRenderUI.add(function(){var n=t.getElement().form;if(!n)return;if(n._mceOldSubmit)return;if(!n.submit.nodeType&&!n.submit.length){t.formElement=n;n._mceOldSubmit=n.submit;n.submit=function(){EditorManager.triggerSave();t.isNotDirty=1;return this._mceOldSubmit(this);};}n=null;});}function loadScripts(){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');each(explode(s.plugins),function(p){if(p&&p.charAt(0)!='-'&&!PluginManager.urls[p]){if(!isWebKit&&p=='safari')return;PluginManager.load(p,'plugins/'+p+'/editor_plugin'+tinymce.suffix+'.js');}});sl.loadQueue(function(){if(s.ask){function ask(){t.windowManager.confirm(t.getLang('edit_confirm'),function(s){if(s)t.init();else Event.remove(t.id,'focus',ask);});};Event.add(t.id,'focus',ask);return;}if(!t.removed)t.init();});};if(s.plugins.indexOf('compat2x')!=-1){PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');sl.loadQueue(loadScripts);}else loadScripts();},init:function(){var n,t=this,s=t.settings,w,h,e=t.getElement(),o,ti,u,bi,bc,re;EditorManager.add(t);s.theme=s.theme.replace(/-/,'');o=ThemeManager.get(s.theme);t.theme=new o();if(t.theme.init&&s.init_theme)t.theme.init(t,ThemeManager.urls[s.theme]||tinymce.documentBaseURL.replace(/\/$/,''));each(explode(s.plugins.replace(/\-/g,'')),function(p){var c=PluginManager.get(p),u=PluginManager.urls[p]||tinymce.documentBaseURL.replace(/\/$/,''),po;if(c){po=new c(t,u);t.plugins[p]=po;if(po.init)po.init(t,u);}});if(s.popup_css)s.popup_css=t.documentBaseURI.toAbsolute(s.popup_css);else s.popup_css=t.baseURI.toAbsolute("themes/"+s.theme+"/skins/"+s.skin+"/dialog.css");if(s.popup_css_add)s.popup_css+=','+t.documentBaseURI.toAbsolute(s.popup_css_add);t.controlManager=new tinymce.ControlManager(t);t.undoManager=new tinymce.UndoManager(t);t.undoManager.onAdd.add(function(um,l){return t.onChange.dispatch(t,l,um);});t.undoManager.onUndo.add(function(um,l){return t.onUndo.dispatch(t,l,um);});t.undoManager.onRedo.add(function(um,l){return t.onRedo.dispatch(t,l,um);});if(s.custom_undo_redo){t.onExecCommand.add(function(ed,cmd,ui,val,a){if(cmd!='Undo'&&cmd!='Redo'&&cmd!='mceRepaint'&&(!a||!a.skip_undo))t.undoManager.add();});}t.onExecCommand.add(function(ed,c){if(!/^(FontName|FontSize)$/.test(c))t.nodeChanged();});if(isGecko){function repaint(a,o){if(!o||!o.initial)t.execCommand('mceRepaint');};t.onUndo.add(repaint);t.onRedo.add(repaint);t.onSetContent.add(repaint);}t.onBeforeRenderUI.dispatch(t,t.controlManager);if(s.render_ui){w=s.width||e.style.width||e.clientWidth;h=s.height||e.style.height||e.clientHeight;t.orgDisplay=e.style.display;re=/^[0-9\.]+(|px)$/i;if(re.test(''+w))w=Math.max(parseInt(w)+(o.deltaWidth||0),100);if(re.test(''+h))h=Math.max(parseInt(h)+(o.deltaHeight||0),100);o=t.theme.renderUI({targetNode:e,width:w,height:h,deltaWidth:s.delta_width,deltaHeight:s.delta_height});t.editorContainer=o.editorContainer;}DOM.setStyles(o.sizeContainer||o.editorContainer,{width:w,height:h});h=(o.iframeHeight||h)+((h+'').indexOf('%')==-1?(o.deltaHeight||0):'');if(h<100)h=100;t.iframeHTML=s.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="'+t.documentBaseURI.getURI()+'"></base>';t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';if(tinymce.relaxedDomain)t.iframeHTML+='<script type="text/javascript">document.domain = "'+tinymce.relaxedDomain+'";</script>';bi=s.body_id||'tinymce';if(bi.indexOf('=')!=-1){bi=t.getParam('body_id','','hash');bi=bi[t.id]||bi;}bc=s.body_class||'';if(bc.indexOf('=')!=-1){bc=t.getParam('body_class','','hash');bc=bc[t.id]||'';}t.iframeHTML+='</head><body id="'+bi+'" class="mceContentBody '+bc+'"></body></html>';if(tinymce.relaxedDomain){if(isIE)u='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';else if(tinymce.isOpera)u='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()';}n=DOM.add(o.iframeContainer,'iframe',{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:'0',style:{width:'100%',height:h}});t.contentAreaContainer=o.iframeContainer;DOM.get(o.editorContainer).style.display=t.orgDisplay;DOM.get(t.id).style.display='none';if(tinymce.isOldWebKit){Event.add(n,'load',t.setupIframe,t);n.src=tinymce.baseURL+'/plugins/safari/blank.htm';}else{if(!isIE||!tinymce.relaxedDomain)t.setupIframe();e=n=o=null;}},setupIframe:function(){var t=this,s=t.settings,e=DOM.get(t.id),d=t.getDoc(),h;if(!isIE||!tinymce.relaxedDomain){d.open();d.write(t.iframeHTML);d.close();}if(!isIE){try{d.designMode='On';}catch(ex){}}if(isIE)t.getBody().contentEditable=true;t.dom=new tinymce.DOM.DOMUtils(t.getDoc(),{keep_values:true,url_converter:t.convertURL,url_converter_scope:t,hex_colors:s.force_hex_style_colors,class_filter:s.class_filter,update_styles:1,fix_ie_paragraphs:1});t.serializer=new tinymce.dom.Serializer({entity_encoding:s.entity_encoding,entities:s.entities,valid_elements:s.verify_html===false?'*[*]':s.valid_elements,extended_valid_elements:s.extended_valid_elements,valid_child_elements:s.valid_child_elements,invalid_elements:s.invalid_elements,fix_table_elements:s.fix_table_elements,fix_list_elements:s.fix_list_elements,fix_content_duplication:s.fix_content_duplication,convert_fonts_to_spans:s.convert_fonts_to_spans,font_size_classes:s.font_size_classes,font_size_style_values:s.font_size_style_values,apply_source_formatting:s.apply_source_formatting,remove_linebreaks:s.remove_linebreaks,dom:t.dom});t.selection=new tinymce.dom.Selection(t.dom,t.getWin(),t.serializer);t.forceBlocks=new tinymce.ForceBlocks(t,{forced_root_block:s.forced_root_block});t.editorCommands=new tinymce.EditorCommands(t);t.serializer.onPreProcess.add(function(se,o){return t.onPreProcess.dispatch(t,o,se);});t.serializer.onPostProcess.add(function(se,o){return t.onPostProcess.dispatch(t,o,se);});t.onPreInit.dispatch(t);if(!s.gecko_spellcheck)t.getBody().spellcheck=0;t._addEvents();t.controlManager.onPostRender.dispatch(t,t.controlManager);t.onPostRender.dispatch(t);if(s.directionality)t.getBody().dir=s.directionality;if(s.nowrap)t.getBody().style.whiteSpace="nowrap";if(s.auto_resize)t.onNodeChange.add(t.resizeToContent,t);if(s.custom_elements){function handleCustom(ed,o){each(explode(s.custom_elements),function(v){var n;if(v.indexOf('~')===0){v=v.substring(1);n='span';}else n='div';o.content=o.content.replace(new RegExp('<('+v+')([^>]*)>','g'),'<'+n+' mce_name="$1"$2>');o.content=o.content.replace(new RegExp('</('+v+')>','g'),'</'+n+'>');});};t.onBeforeSetContent.add(handleCustom);t.onPostProcess.add(function(ed,o){if(o.set)handleCustom(ed,o)});}if(s.handle_node_change_callback){t.onNodeChange.add(function(ed,cm,n){t.execCallback('handle_node_change_callback',t.id,n,-1,-1,true,t.selection.isCollapsed());});}if(s.save_callback){t.onSaveContent.add(function(ed,o){var h=t.execCallback('save_callback',t.id,o.content,t.getBody());if(h)o.content=h;});}if(s.onchange_callback){t.onChange.add(function(ed,l){t.execCallback('onchange_callback',t,l);});}if(s.convert_newlines_to_brs){t.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/\r?\n/g,'<br />');});}if(s.fix_nesting&&isIE){t.onBeforeSetContent.add(function(ed,o){o.content=t._fixNesting(o.content);});}if(s.preformatted){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^\s*<pre.*?>/,'');o.content=o.content.replace(/<\/pre>\s*$/,'');if(o.set)o.content='<pre class="mceItemHidden">'+o.content+'</pre>';});}if(s.verify_css_classes){t.serializer.attribValueFilter=function(n,v){var s,cl;if(n=='class'){if(!t.classesRE){cl=t.dom.getClasses();if(cl.length>0){s='';each(cl,function(o){s+=(s?'|':'')+o['class'];});t.classesRE=new RegExp('('+s+')','gi');}}return!t.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v)||t.classesRE.test(v)?v:'';}return v;};}if(s.convert_fonts_to_spans)t._convertFonts();if(s.inline_styles)t._convertInlineElements();if(s.cleanup_callback){t.onBeforeSetContent.add(function(ed,o){o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);});t.onPreProcess.add(function(ed,o){if(o.set)t.execCallback('cleanup_callback','insert_to_editor_dom',o.node,o);if(o.get)t.execCallback('cleanup_callback','get_from_editor_dom',o.node,o);});t.onPostProcess.add(function(ed,o){if(o.set)o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);if(o.get)o.content=t.execCallback('cleanup_callback','get_from_editor',o.content,o);});}if(s.save_callback){t.onGetContent.add(function(ed,o){if(o.save)o.content=t.execCallback('save_callback',t.id,o.content,t.getBody());});}if(s.handle_event_callback){t.onEvent.add(function(ed,e,o){if(t.execCallback('handle_event_callback',e,ed,o)===false)Event.cancel(e);});}t.onSetContent.add(function(){t.addVisual(t.getBody());});if(s.padd_empty_editor){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^<p>( |#160;|\s)<\/p>$/,'');});}if(isGecko){try{d.designMode='Off';d.designMode='On';}catch(ex){}}setTimeout(function(){if(t.removed)return;t.load({initial:true,format:(s.cleanup_on_startup?'html':'raw')});t.startContent=t.getContent({format:'raw'});t.undoManager.add({initial:true});t.initialized=true;t.onInit.dispatch(t);t.execCallback('setupcontent_callback',t.id,t.getBody(),t.getDoc());t.execCallback('init_instance_callback',t);t.focus(true);t.nodeChanged({initial:1});if(s.content_css){tinymce.each(explode(s.content_css),function(u){t.dom.loadCSS(t.documentBaseURI.toAbsolute(u));});}if(s.auto_focus){setTimeout(function(){var ed=EditorManager.get(s.auto_focus);ed.selection.select(ed.getBody(),1);ed.selection.collapse(1);ed.getWin().focus();},100);}},1);e=null;},focus:function(sf){var oed,t=this;if(!sf){t.getWin().focus();}if(EditorManager.activeEditor!=t){if((oed=EditorManager.activeEditor)!=null)oed.onDeactivate.dispatch(oed,t);t.onActivate.dispatch(t,oed);}EditorManager._setActive(t);},execCallback:function(n){var t=this,f=t.settings[n],s;if(!f)return;if(t.callbackLookup&&(s=t.callbackLookup[n])){f=s.func;s=s.scope;}if(is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);t.callbackLookup=t.callbackLookup||{};t.callbackLookup[n]={func:f,scope:s};}return f.apply(s||t,Array.prototype.slice.call(arguments,1));},translate:function(s){var c=this.settings.language,i18n=EditorManager.i18n;if(!s)return'';return i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return i18n[c+'.'+b]||'{#'+b+'}';});},getLang:function(n,dv){return EditorManager.i18n[this.settings.language+'.'+n]||(is(dv)?dv:'{#'+n+'}');},getParam:function(n,dv,ty){var tr=tinymce.trim,v=is(this.settings[n])?this.settings[n]:dv,o;if(ty==='hash'){o={};if(is(v,'string')){each(v.split(/[;,]/),function(v){v=v.split('=');if(v.length>1)o[tr(v[0])]=tr(v[1]);else o[tr(v[0])]=tr(v);});}else o=v;return o;}return v;},nodeChanged:function(o){var t=this,s=t.selection,n=s.getNode()||t.getBody();if(t.initialized){t.onNodeChange.dispatch(t,o?o.controlManager||t.controlManager:t.controlManager,isIE&&n.ownerDocument!=t.getDoc()?t.getBody():n,s.isCollapsed(),o);}},addButton:function(n,s){var t=this;t.buttons=t.buttons||{};t.buttons[n]=s;},addCommand:function(n,f,s){this.execCommands[n]={func:f,scope:s||this};},addQueryStateHandler:function(n,f,s){this.queryStateCommands[n]={func:f,scope:s||this};},addQueryValueHandler:function(n,f,s){this.queryValueCommands[n]={func:f,scope:s||this};},addShortcut:function(pa,desc,cmd_func,sc){var t=this,c;if(!t.settings.custom_shortcuts)return false;t.shortcuts=t.shortcuts||{};if(is(cmd_func,'string')){c=cmd_func;cmd_func=function(){t.execCommand(c,false,null);};}if(is(cmd_func,'object')){c=cmd_func;cmd_func=function(){t.execCommand(c[0],c[1],c[2]);};}each(explode(pa),function(pa){var o={func:cmd_func,scope:sc||this,desc:desc,alt:false,ctrl:false,shift:false};each(explode(pa,'+'),function(v){switch(v){case'alt':case'ctrl':case'shift':o[v]=true;break;default:o.charCode=v.charCodeAt(0);o.keyCode=v.toUpperCase().charCodeAt(0);}});t.shortcuts[(o.ctrl?'ctrl':'')+','+(o.alt?'alt':'')+','+(o.shift?'shift':'')+','+o.keyCode]=o;});return true;},execCommand:function(cmd,ui,val,a){var t=this,s=0,o;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd)&&(!a||!a.skip_focus))t.focus();o={};t.onBeforeExecCommand.dispatch(t,cmd,ui,val,o);if(o.terminate)return false;if(t.execCallback('execcommand_callback',t.id,t.selection.getNode(),cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(o=t.execCommands[cmd]){s=o.func.call(o.scope,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);return s;}each(t.plugins,function(p){if(p.execCommand&&p.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);s=1;return false;}});if(s)return true;if(t.theme.execCommand&&t.theme.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(t.editorCommands.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}t.getDoc().execCommand(cmd,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);},queryCommandState:function(c){var t=this,o;if(t._isHidden())return;if(o=t.queryStateCommands[c])return o.func.call(o.scope);o=t.editorCommands.queryCommandState(c);if(o!==-1)return o;try{return this.getDoc().queryCommandState(c);}catch(ex){}},queryCommandValue:function(c){var t=this,o;if(t._isHidden())return;if(o=t.queryValueCommands[c])return o.func.call(o.scope);o=t.editorCommands.queryCommandValue(c);if(is(o))return o;try{return this.getDoc().queryCommandValue(c);}catch(ex){}},show:function(){var t=this;DOM.show(t.getContainer());DOM.hide(t.id);t.load();},hide:function(){var t=this,d=t.getDoc();if(isIE&&d)d.execCommand('SelectAll');t.save();DOM.hide(t.getContainer());DOM.setStyle(t.id,'display',t.orgDisplay);},isHidden:function(){return!DOM.isHidden(this.id);},setProgressState:function(b,ti,o){this.onSetProgressState.dispatch(this,b,ti,o);return b;},remove:function(){var t=this;t.removed=1;t.hide();DOM.remove(t.getContainer());t.execCallback('remove_instance_callback',t);t.onRemove.dispatch(t);t.onExecCommand.listeners=[];EditorManager.remove(t);},resizeToContent:function(){var t=this;DOM.setStyle(t.id+"_ifr",'height',t.getBody().scrollHeight);},load:function(o){var t=this,e=t.getElement(),h;o=o||{};o.load=true;h=t.setContent(is(e.value)?e.value:e.innerHTML,o);o.element=e;if(!o.no_events)t.onLoadContent.dispatch(t,o);o.element=e=null;return h;},save:function(o){var t=this,e=t.getElement(),h,f;if(!t.initialized)return;o=o||{};o.save=true;o.element=e;h=o.content=t.getContent(o);if(!o.no_events)t.onSaveContent.dispatch(t,o);h=o.content;if(!/TEXTAREA|INPUT/i.test(e.nodeName)){e.innerHTML=h;if(f=DOM.getParent(t.id,'form')){each(f.elements,function(e){if(e.name==t.id){e.value=h;return false;}});}}else e.value=h;o.element=e=null;return h;},setContent:function(h,o){var t=this;o=o||{};o.format=o.format||'html';o.set=true;o.content=h;if(!o.no_events)t.onBeforeSetContent.dispatch(t,o);if(!tinymce.isIE&&(h.length===0||/^\s+$/.test(h))){o.content=t.dom.setHTML(t.getBody(),'<br mce_bogus="1" />',1);o.format='raw';}o.content=t.dom.setHTML(t.getBody(),tinymce.trim(o.content));if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;o.content=t.dom.setHTML(t.getBody(),t.serializer.serialize(t.getBody(),o));}if(!o.no_events)t.onSetContent.dispatch(t,o);return o.content;},getContent:function(o){var t=this,h;o=o||{};o.format=o.format||'html';o.get=true;if(!o.no_events)t.onBeforeGetContent.dispatch(t,o);if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;h=t.serializer.serialize(t.getBody(),o);}else h=t.getBody().innerHTML;h=h.replace(/^\s*|\s*$/g,'');o={content:h};t.onGetContent.dispatch(t,o);return o.content;},isDirty:function(){var t=this;return tinymce.trim(t.startContent)!=tinymce.trim(t.getContent({format:'raw',no_events:1}))&&!t.isNotDirty;},getContainer:function(){var t=this;if(!t.container)t.container=DOM.get(t.editorContainer||t.id+'_parent');return t.container;},getContentAreaContainer:function(){return this.contentAreaContainer;},getElement:function(){return DOM.get(this.settings.content_element||this.id);},getWin:function(){var t=this,e;if(!t.contentWindow){e=DOM.get(t.id+"_ifr");if(e)t.contentWindow=e.contentWindow;}return t.contentWindow;},getDoc:function(){var t=this,w;if(!t.contentDocument){w=t.getWin();if(w)t.contentDocument=w.document;}return t.contentDocument;},getBody:function(){return this.bodyElement||this.getDoc().body;},convertURL:function(u,n,e){var t=this,s=t.settings;if(s.urlconverter_callback)return t.execCallback('urlconverter_callback',u,e,true,n);if(!s.convert_urls||(e&&e.nodeName=='LINK')||u.indexOf('file:')===0)return u;if(s.relative_urls)return t.documentBaseURI.toRelative(u);u=t.documentBaseURI.toAbsolute(u,s.remove_script_host);return u;},addVisual:function(e){var t=this,s=t.settings;e=e||t.getBody();if(!is(t.hasVisual))t.hasVisual=s.visual;each(t.dom.select('table,a',e),function(e){var v;switch(e.nodeName){case'TABLE':v=t.dom.getAttrib(e,'border');if(!v||v=='0'){if(t.hasVisual)t.dom.addClass(e,s.visual_table_class);else t.dom.removeClass(e,s.visual_table_class);}return;case'A':v=t.dom.getAttrib(e,'name');if(v){if(t.hasVisual)t.dom.addClass(e,'mceItemAnchor');else t.dom.removeClass(e,'mceItemAnchor');}return;}});t.onVisualAid.dispatch(t,e,t.hasVisual);},_addEvents:function(){var t=this,i,s=t.settings,lo={mouseup:'onMouseUp',mousedown:'onMouseDown',click:'onClick',keyup:'onKeyUp',keydown:'onKeyDown',keypress:'onKeyPress',submit:'onSubmit',reset:'onReset',contextmenu:'onContextMenu',dblclick:'onDblClick',paste:'onPaste'};function eventHandler(e,o){var ty=e.type;if(t.removed)return;if(t.onEvent.dispatch(t,e,o)!==false){t[lo[e.fakeType||e.type]].dispatch(t,e,o);}};each(lo,function(v,k){switch(k){case'contextmenu':if(tinymce.isOpera){Event.add(t.getDoc(),'mousedown',function(e){if(e.ctrlKey){e.fakeType='contextmenu';eventHandler(e);}});}else Event.add(t.getDoc(),k,eventHandler);break;case'paste':Event.add(t.getBody(),k,function(e){var tx,h,el,r;if(e.clipboardData)tx=e.clipboardData.getData('text/plain');else if(tinymce.isIE)tx=t.getWin().clipboardData.getData('Text');eventHandler(e,{text:tx,html:h});});break;case'submit':case'reset':Event.add(t.getElement().form||DOM.getParent(t.id,'form'),k,eventHandler);break;default:Event.add(s.content_editable?t.getBody():t.getDoc(),k,eventHandler);}});Event.add(s.content_editable?t.getBody():(isGecko?t.getDoc():t.getWin()),'focus',function(e){t.focus(true);});if(tinymce.isGecko){Event.add(t.getDoc(),'DOMNodeInserted',function(e){var v;e=e.target;if(e.nodeType===1&&e.nodeName==='IMG'&&(v=e.getAttribute('mce_src')))e.src=t.documentBaseURI.toAbsolute(v);});}if(isGecko){function setOpts(){var t=this,d=t.getDoc(),s=t.settings;if(isGecko){if(t._isHidden()){try{if(!s.content_editable)d.designMode='On';}catch(ex){}}try{d.execCommand("styleWithCSS",0,false);}catch(ex){if(!t._isHidden())d.execCommand("useCSS",0,true);}if(!s.table_inline_editing)try{d.execCommand('enableInlineTableEditing',false,false);}catch(ex){}if(!s.object_resizing)try{d.execCommand('enableObjectResizing',false,false);}catch(ex){}}};t.onBeforeExecCommand.add(setOpts);t.onMouseDown.add(setOpts);}t.onMouseUp.add(t.nodeChanged);t.onClick.add(t.nodeChanged);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.keyCode==46||e.keyCode==8||e.ctrlKey)t.nodeChanged();});t.onReset.add(function(){t.setContent(t.startContent,{format:'raw'});});if(t.getParam('tab_focus')){function tabCancel(ed,e){if(e.keyCode===9)return Event.cancel(e);};function tabHandler(ed,e){var x,i,f,el,v;function find(d){f=DOM.getParent(ed.id,'form');el=f.elements;if(f){each(el,function(e,i){if(e.id==ed.id){x=i;return false;}});if(d>0){for(i=x+1;i<el.length;i++){if(el[i].type!='hidden')return el[i];}}else{for(i=x-1;i>=0;i--){if(el[i].type!='hidden')return el[i];}}}return null;};if(e.keyCode===9){v=explode(ed.getParam('tab_focus'));if(v.length==1){v[1]=v[0];v[0]=':prev';}if(e.shiftKey){if(v[0]==':prev')el=find(-1);else el=DOM.get(v[0]);}else{if(v[1]==':next')el=find(1);else el=DOM.get(v[1]);}if(el){if(ed=EditorManager.get(el.id||el.name))ed.focus();else window.setTimeout(function(){window.focus();el.focus();},10);return Event.cancel(e);}}};t.onKeyUp.add(tabCancel);if(isGecko){t.onKeyPress.add(tabHandler);t.onKeyDown.add(tabCancel);}else t.onKeyDown.add(tabHandler);}if(s.custom_shortcuts){if(s.custom_undo_redo_keyboard_shortcuts){t.addShortcut('ctrl+z',t.getLang('undo_desc'),'Undo');t.addShortcut('ctrl+y',t.getLang('redo_desc'),'Redo');}if(isGecko){t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold');t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic');t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline');}for(i=1;i<=6;i++)t.addShortcut('ctrl+'+i,'',['FormatBlock',false,'<h'+i+'>']);t.addShortcut('ctrl+7','',['FormatBlock',false,'<p>']);t.addShortcut('ctrl+8','',['FormatBlock',false,'<div>']);t.addShortcut('ctrl+9','',['FormatBlock',false,'<address>']);function find(e){var v=null;if(!e.altKey&&!e.ctrlKey&&!e.metaKey)return v;each(t.shortcuts,function(o){if(o.ctrl!=e.ctrlKey&&(!tinymce.isMac||o.ctrl==e.metaKey))return;if(o.alt!=e.altKey)return;if(o.shift!=e.shiftKey)return;if(e.keyCode==o.keyCode||(e.charCode&&e.charCode==o.charCode)){v=o;return false;}});return v;};t.onKeyUp.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyPress.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyDown.add(function(ed,e){var o=find(e);if(o){o.func.call(o.scope);return Event.cancel(e);}});}if(tinymce.isIE){Event.add(t.getDoc(),'controlselect',function(e){var re=t.resizeInfo,cb;e=e.target;if(re)Event.remove(re.node,re.ev,re.cb);if(!t.dom.hasClass(e,'mceItemNoResize')){ev='resizeend';cb=Event.add(e,ev,function(e){var v;e=e.target;if(v=t.dom.getStyle(e,'width')){t.dom.setAttrib(e,'width',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'width','');}if(v=t.dom.getStyle(e,'height')){t.dom.setAttrib(e,'height',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'height','');}});}else{ev='resizestart';cb=Event.add(e,'resizestart',Event.cancel,Event);}re=t.resizeInfo={node:e,ev:ev,cb:cb};});t.onKeyDown.add(function(ed,e){switch(e.keyCode){case 8:if(t.selection.getRng().item){t.selection.getRng().item(0).removeNode();return Event.cancel(e);}}});}if(tinymce.isOpera){t.onClick.add(function(ed,e){Event.prevent(e);});}if(s.custom_undo_redo){function addUndo(){t.undoManager.typing=0;t.undoManager.add();};if(tinymce.isIE){Event.add(t.getWin(),'blur',function(e){var n;if(t.selection){n=t.selection.getNode();if(!t.removed&&n.ownerDocument&&n.ownerDocument!=t.getDoc())addUndo();}});}else{Event.add(t.getDoc(),'blur',function(){if(t.selection&&!t.removed)addUndo();});}t.onMouseDown.add(addUndo);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.ctrlKey){t.undoManager.typing=0;t.undoManager.add();}});t.onKeyDown.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45){if(t.undoManager.typing){t.undoManager.add();t.undoManager.typing=0;}return;}if(!t.undoManager.typing){t.undoManager.add();t.undoManager.typing=1;}});}},_destroy:function(){var t=this;if(t.formElement){t.formElement.submit=t.formElement._mceOldSubmit;t.formElement._mceOldSubmit=null;}t.contentAreaContainer=t.formElement=t.container=t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null;if(t.selection)t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null;t.destroyed=1;},_convertInlineElements:function(){var t=this,s=t.settings,dom=t.dom,v,e,na,st,sp;function convert(ed,o){if(!s.inline_styles)return;if(o.get){each(t.dom.select('table,u,strike',o.node),function(n){switch(n.nodeName){case'TABLE':if(v=dom.getAttrib(n,'height')){dom.setStyle(n,'height',v);dom.setAttrib(n,'height','');}break;case'U':case'STRIKE':sp=dom.create('span',{style:dom.getAttrib(n,'style')});sp.style.textDecoration=n.nodeName=='U'?'underline':'line-through';dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);break;}});}else if(o.set){each(t.dom.select('table,span',o.node),function(n){if(n.nodeName=='TABLE'){if(v=dom.getStyle(n,'height'))dom.setAttrib(n,'height',v.replace(/[^0-9%]+/g,''));}else{if(n.style.textDecoration=='underline')na='u';else if(n.style.textDecoration=='line-through')na='strike';else na='';if(na){n.style.textDecoration='';dom.setAttrib(n,'mce_style','');e=dom.create(na,{style:dom.getAttrib(n,'style')});dom.replace(e,n,1);}}});}};t.onPreProcess.add(convert);if(!s.cleanup_on_startup){t.onInit.add(function(){convert(t,{node:t.getBody(),set:1});});}},_convertFonts:function(){var t=this,s=t.settings,dom=t.dom,sl,cl,fz,fzn,v,i,st,x,nl,sp,f,n;if(!s.inline_styles)return;fz=[8,10,12,14,18,24,36];fzn=['xx-small','x-small','small','medium','large','x-large','xx-large'];if(sl=s.font_size_style_values)sl=explode(sl);if(cl=s.font_size_classes)cl=explode(cl);function convertToFonts(no){if(tinymce.isWebKit||!s.inline_styles)return;nl=t.dom.select('span',no);for(x=nl.length-1;x>=0;x--){n=nl[x];f=dom.create('font',{color:dom.toHex(dom.getStyle(n,'color')),face:dom.getStyle(n,'fontFamily'),style:dom.getAttrib(n,'style')});st=f.style;if(st.color||st.fontFamily){st.color=st.fontFamily='';dom.setAttrib(f,'mce_style','');}if(sl){i=inArray(sl,dom.getStyle(n,'fontSize'));if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));f.style.fontSize='';}}else if(cl){i=inArray(cl,dom.getAttrib(n,'class'));v=dom.getStyle(n,'fontSize');if(i==-1&&v.indexOf('pt')>0)i=inArray(fz,parseInt(v));if(i==-1)i=inArray(fzn,v);if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));f.style.fontSize='';}}if(f.color||f.face||f.size){f.style.fontFamily='';dom.setAttrib(f,'mce_style','');dom.replace(f,n,1);}}};t.onSetContent.add(function(ed,o){convertToFonts(ed.getBody());});t.onPreProcess.add(function(ed,o){if(!s.inline_styles)return;if(o.get){nl=t.dom.select('font',o.node);for(x=nl.length-1;x>=0;x--){n=nl[x];sp=dom.create('span',{style:dom.getAttrib(n,'style')});dom.setStyles(sp,{fontFamily:dom.getAttrib(n,'face'),color:dom.getAttrib(n,'color'),backgroundColor:n.style.backgroundColor});if(n.size){if(sl)dom.setStyle(sp,'fontSize',sl[parseInt(n.size)-1]);else dom.setAttrib(sp,'class',cl[parseInt(n.size)-1]);}dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);}}});},_isHidden:function(){var s;if(!isGecko)return 0;s=this.selection.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},_fixNesting:function(s){var d=[],i;s=s.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(a,b,c){var e;if(b==='/'){if(!d.length)return'';if(c!==d[d.length-1].tag){for(i=d.length-1;i>=0;i--){if(d[i].tag===c){d[i].close=1;break;}}return'';}else{d.pop();if(d.length&&d[d.length-1].close){a=a+'</'+d[d.length-1].tag+'>';d.pop();}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(c))return a;if(/\/>$/.test(a))return a;d.push({tag:c});}return a;});for(i=d.length-1;i>=0;i--)s+='</'+d[i].tag+'>';return s;}});})();(function(){var each=tinymce.each,isIE=tinymce.isIE,isGecko=tinymce.isGecko,isOpera=tinymce.isOpera,isWebKit=tinymce.isWebKit;tinymce.create('tinymce.EditorCommands',{EditorCommands:function(ed){this.editor=ed;},execCommand:function(cmd,ui,val){var t=this,ed=t.editor,f;switch(cmd){case'Cut':case'Copy':case'Paste':try{ed.getDoc().execCommand(cmd,ui,val);}catch(ex){if(isGecko){ed.windowManager.confirm(ed.getLang('clipboard_msg'),function(s){if(s)window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');});}else ed.windowManager.alert(ed.getLang('clipboard_no_support'));}return true;case'mceResetDesignMode':case'mceBeginUndoLevel':return true;case'unlink':t.UnLink();return true;case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':t.mceJustify(cmd,cmd.substring(7).toLowerCase());return true;case'mceEndUndoLevel':case'mceAddUndoLevel':ed.undoManager.add();return true;default:f=this[cmd];if(f){f.call(this,ui,val);return true;}}return false;},Indent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){d.setStyle(e,'paddingLeft',(parseInt(e.style.paddingLeft||0)+iv)+iu);});return;}ed.getDoc().execCommand('Indent',false,null);if(isIE){d.getParent(s.getNode(),function(n){if(n.nodeName=='BLOCKQUOTE'){n.dir=n.style.cssText='';}});}},Outdent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,v,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){v=Math.max(0,parseInt(e.style.paddingLeft||0)-iv);d.setStyle(e,'paddingLeft',v?v+iu:'');});return;}ed.getDoc().execCommand('Outdent',false,null);},mceSetAttribute:function(u,v){var ed=this.editor,d=ed.dom,e;if(e=d.getParent(ed.selection.getNode(),d.isBlock))d.setAttrib(e,v.name,v.value);},mceSetContent:function(u,v){this.editor.setContent(v);},mceToggleVisualAid:function(){var ed=this.editor;ed.hasVisual=!ed.hasVisual;ed.addVisual();},mceReplaceContent:function(u,v){var s=this.editor.selection;s.setContent(v.replace(/\{\$selection\}/g,s.getContent({format:'text'})));},mceInsertLink:function(u,v){var ed=this.editor,e=ed.dom.getParent(ed.selection.getNode(),'A');if(tinymce.is(v,'string'))v={href:v};function set(e){each(v,function(v,k){ed.dom.setAttrib(e,k,v);});};if(!e){ed.execCommand('CreateLink',false,'javascript:mctmp(0);');each(ed.dom.select('a'),function(e){if(e.href=='javascript:mctmp(0);')set(e);});}else{if(v.href)set(e);else ed.dom.remove(e,1);}},UnLink:function(){var ed=this.editor,s=ed.selection;if(s.isCollapsed())s.select(s.getNode());ed.getDoc().execCommand('unlink',false,null);s.collapse(0);},FontName:function(u,v){var t=this,ed=t.editor,s=ed.selection,e;if(!v){if(s.isCollapsed())s.select(s.getNode());t.RemoveFormat();}else ed.getDoc().execCommand('FontName',false,v);},queryCommandValue:function(c){var f=this['queryValue'+c];if(f)return f.call(this,c);return false;},queryCommandState:function(cmd){var f;switch(cmd){case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':return this.queryStateJustify(cmd,cmd.substring(7).toLowerCase());default:if(f=this['queryState'+cmd])return f.call(this,cmd);}return-1;},queryValueFontSize:function(){var ed=this.editor,v=0,p;if(isOpera||isWebKit){if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.size;return v;}return ed.getDoc().queryCommandValue('FontSize');},queryValueFontName:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.face;if(!v)v=ed.getDoc().queryCommandValue('FontName');return v;},mceJustify:function(c,v){var ed=this.editor,se=ed.selection,n=se.getNode(),nn=n.nodeName,bl,nb,dom=ed.dom,rm;if(ed.settings.inline_styles&&this.queryStateJustify(c,v))rm=1;bl=dom.getParent(n,ed.dom.isBlock);if(nn=='IMG'){if(v=='full')return;if(rm){if(v=='center')dom.setStyle(n.parentNode,'textAlign','');dom.setStyle(n,'float','');this.mceRepaint();return;}if(v=='center'){if(/^(TD|TH)$/.test(bl.nodeName))bl=0;if(!bl||bl.childNodes.length>1){nb=dom.create('p');nb.appendChild(n.cloneNode(false));if(bl)dom.insertAfter(nb,bl);else dom.insertAfter(nb,n);dom.remove(n);n=nb.firstChild;bl=nb;}dom.setStyle(bl,'textAlign',v);dom.setStyle(n,'float','');}else{dom.setStyle(n,'float',v);dom.setStyle(n.parentNode,'textAlign','');}this.mceRepaint();return;}if(ed.settings.inline_styles&&ed.settings.forced_root_block){if(rm)v='';each(this._getSelectedBlocks(dom.getParent(se.getStart(),dom.isBlock),dom.getParent(se.getEnd(),dom.isBlock)),function(e){dom.setAttrib(e,'align','');dom.setStyle(e,'textAlign',v=='full'?'justify':v);});return;}else if(!rm)ed.getDoc().execCommand(c,false,null);if(ed.settings.inline_styles){if(rm){dom.getParent(ed.selection.getNode(),function(n){if(n.style&&n.style.textAlign)dom.setStyle(n,'textAlign','');});return;}each(dom.select('*'),function(n){var v=n.align;if(v){if(v=='full')v='justify';dom.setStyle(n,'textAlign',v);dom.setAttrib(n,'align','');}});}},mceSetCSSClass:function(u,v){this.mceSetStyleInfo(0,{command:'setattrib',name:'class',value:v});},getSelectedElement:function(){var t=this,ed=t.editor,dom=ed.dom,se=ed.selection,r=se.getRng(),r1,r2,sc,ec,so,eo,e,sp,ep,re;if(se.isCollapsed()||r.item)return se.getNode();re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(isIE){r1=r.duplicate();r1.collapse(true);sc=r1.parentElement();r2=r.duplicate();r2.collapse(false);ec=r2.parentElement();if(sc!=ec){r1.move('character',1);sc=r1.parentElement();}if(sc==ec){r1=r.duplicate();r1.moveToElementText(sc);if(r1.compareEndPoints('StartToStart',r)==0&&r1.compareEndPoints('EndToEnd',r)==0)return re&&re.test(sc.nodeName)?null:sc;}}else{function getParent(n){return dom.getParent(n,function(n){return n.nodeType==1;});};sc=r.startContainer;ec=r.endContainer;so=r.startOffset;eo=r.endOffset;if(!r.collapsed){if(sc==ec){if(so-eo<2){if(sc.hasChildNodes()){sp=sc.childNodes[so];return re&&re.test(sp.nodeName)?null:sp;}}}}if(sc.nodeType!=3||ec.nodeType!=3)return null;if(so==0){sp=getParent(sc);if(sp&&sp.firstChild!=sc)sp=null;}if(so==sc.nodeValue.length){e=sc.nextSibling;if(e&&e.nodeType==1)sp=sc.nextSibling;}if(eo==0){e=ec.previousSibling;if(e&&e.nodeType==1)ep=e;}if(eo==ec.nodeValue.length){ep=getParent(ec);if(ep&&ep.lastChild!=ec)ep=null;}if(sp==ep)return re&&sp&&re.test(sp.nodeName)?null:sp;}return null;},InsertHorizontalRule:function(){if(isGecko||isIE)this.editor.selection.setContent('<hr />');else this.editor.getDoc().execCommand('InsertHorizontalRule',false,'');},RemoveFormat:function(){var t=this,ed=t.editor,s=ed.selection,b;if(isWebKit)s.setContent(s.getContent({format:'raw'}).replace(/(<(span|b|i|strong|em|strike) [^>]+>|<(span|b|i|strong|em|strike)>|<\/(span|b|i|strong|em|strike)>|)/g,''),{format:'raw'});else ed.getDoc().execCommand('RemoveFormat',false,null);t.mceSetStyleInfo(0,{command:'removeformat'});ed.addVisual();},mceSetStyleInfo:function(u,v){var t=this,ed=t.editor,d=ed.getDoc(),dom=ed.dom,e,b,s=ed.selection,nn=v.wrapper||'span',b=s.getBookmark(),re;function set(n,e){if(n.nodeType==1){switch(v.command){case'setattrib':return dom.setAttrib(n,v.name,v.value);case'setstyle':return dom.setStyle(n,v.name,v.value);case'removeformat':return dom.setAttrib(n,'class','');}}};re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(e=t.getSelectedElement())set(e,1);else{d.execCommand('FontName',false,'__');each(isWebKit?dom.select('span'):dom.select('font'),function(n){var sp,e;if(dom.getAttrib(n,'face')=='__'||n.style.fontFamily==='__'){sp=dom.create(nn,{mce_new:'1'});set(sp);each(n.childNodes,function(n){sp.appendChild(n.cloneNode(true));});dom.replace(sp,n);}});}each(dom.select(nn).reverse(),function(n){var p=n.parentNode;dom.setAttrib(n,'mce_new','');if(!dom.getAttrib(n,'mce_new')){p=dom.getParent(n,function(n){return n.nodeType==1&&dom.getAttrib(n,'mce_new');});if(p)dom.remove(n,1);}});each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!p)return;if(p.nodeName==nn.toUpperCase()&&p.childNodes.length==1)return dom.remove(p,1);if(n.nodeType==1&&(!re||!re.test(p.nodeName))&&p.childNodes.length==1){set(p);dom.setAttrib(n,'class','');}});each(dom.select(nn).reverse(),function(n){if(!dom.getAttrib(n,'class')&&!dom.getAttrib(n,'style'))return dom.remove(n,1);});s.moveToBookmark(b);},queryStateJustify:function(c,v){var ed=this.editor,n=ed.selection.getNode(),dom=ed.dom;if(n&&n.nodeName=='IMG'){if(dom.getStyle(n,'float')==v)return 1;return n.parentNode.style.textAlign==v;}n=dom.getParent(ed.selection.getStart(),function(n){return n.nodeType==1&&n.style.textAlign;});if(v=='full')v='justify';if(ed.settings.inline_styles)return(n&&n.style.textAlign==v);return ed.getDoc().queryCommandState(c);},HiliteColor:function(ui,val){var t=this,ed=t.editor,d=ed.getDoc();function set(s){if(!isGecko)return;try{d.execCommand("styleWithCSS",0,s);}catch(ex){d.execCommand("useCSS",0,!s);}};if(isGecko||isOpera){set(true);d.execCommand('hilitecolor',false,val);set(false);}else d.execCommand('BackColor',false,val);},Undo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.undo();ed.nodeChanged();}else ed.getDoc().execCommand('Undo',false,null);},Redo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.redo();ed.nodeChanged();}else ed.getDoc().execCommand('Redo',false,null);},FormatBlock:function(ui,val){var t=this,ed=t.editor;val=ed.settings.forced_root_block?(val||'<p>'):val;if(/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(ed.selection.getNode().nodeName))t.mceRemoveNode();if(val.indexOf('<')==-1)val='<'+val+'>';if(tinymce.isGecko)val=val.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi,'$1');ed.getDoc().execCommand('FormatBlock',false,val);},mceCleanup:function(){var ed=this.editor,s=ed.selection,b=s.getBookmark();ed.setContent(ed.getContent());s.moveToBookmark(b);},mceRemoveNode:function(ui,val){var ed=this.editor,s=ed.selection,b,n=val||s.getNode();if(n==ed.getBody())return;b=s.getBookmark();ed.dom.remove(n,1);s.moveToBookmark(b);ed.nodeChanged();},mceSelectNodeDepth:function(ui,val){var ed=this.editor,s=ed.selection,c=0;ed.dom.getParent(s.getNode(),function(n){if(n.nodeType==1&&c++==val){s.select(n);ed.nodeChanged();return false;}},ed.getBody());},mceSelectNode:function(u,v){this.editor.selection.select(v);},mceInsertContent:function(ui,val){this.editor.selection.setContent(val);},mceInsertRawHTML:function(ui,val){var ed=this.editor;ed.selection.setContent('tiny_mce_marker');ed.setContent(ed.getContent().replace(/tiny_mce_marker/g,val));},mceRepaint:function(){var s,b,e=this.editor;if(tinymce.isGecko){try{s=e.selection;b=s.getBookmark(true);if(s.getSel())s.getSel().selectAllChildren(e.getBody());s.collapse(true);s.moveToBookmark(b);}catch(ex){}}},queryStateUnderline:function(){var ed=this.editor,n;if(n&&n.nodeName=='A')return false;return ed.getDoc().queryCommandState('Underline');},queryStateOutdent:function(){var ed=this.editor,n;if(ed.settings.inline_styles){if((n=ed.dom.getParent(ed.selection.getStart(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;if((n=ed.dom.getParent(ed.selection.getEnd(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;}else return!!ed.dom.getParent(ed.selection.getNode(),'BLOCKQUOTE');return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList();},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'UL');},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'OL');},queryStatemceBlockQuote:function(){return!!this.editor.dom.getParent(this.editor.selection.getStart(),function(n){return n.nodeName==='BLOCKQUOTE';});},mceBlockQuote:function(){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,sb,eb,n,bm,bq,r,bq2,i,nl;function getBQ(e){return dom.getParent(e,function(n){return n.nodeName==='BLOCKQUOTE';});};sb=dom.getParent(s.getStart(),dom.isBlock);eb=dom.getParent(s.getEnd(),dom.isBlock);if(bq=getBQ(sb)){if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();if(getBQ(eb)){bq2=bq.cloneNode(false);while(n=eb.nextSibling)bq2.appendChild(n.parentNode.removeChild(n));}if(bq2)dom.insertAfter(bq2,bq);nl=t._getSelectedBlocks(sb,eb);for(i=nl.length-1;i>=0;i--){dom.insertAfter(nl[i],bq);}if(/^\s*$/.test(bq.innerHTML))dom.remove(bq,1);if(bq2&&/^\s*$/.test(bq2.innerHTML))dom.remove(bq2,1);if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(0);if(dom.getParent(s.getStart(),dom.isBlock)!=sb){r=s.getRng();r.move('character',-1);r.select();}}}else t.editor.selection.moveToBookmark(bm);return;}if(isIE&&!sb&&!eb){t.editor.getDoc().execCommand('Indent');n=getBQ(s.getNode());n.style.margin=n.dir='';return;}if(!sb||!eb)return;if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();each(t._getSelectedBlocks(getBQ(s.getStart()),getBQ(s.getEnd())),function(e){if(e.nodeName=='BLOCKQUOTE'&&!bq){bq=e;return;}if(!bq){bq=dom.create('blockquote');e.parentNode.insertBefore(bq,e);}if(e.nodeName=='BLOCKQUOTE'&&bq){n=e.firstChild;while(n){bq.appendChild(n.cloneNode(true));n=n.nextSibling;}dom.remove(e);return;}bq.appendChild(dom.remove(e));});if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(1);}}else s.moveToBookmark(bm);},_getSelectedBlocks:function(st,en){var ed=this.editor,dom=ed.dom,s=ed.selection,sb,eb,n,bl=[];sb=dom.getParent(st||s.getStart(),dom.isBlock);eb=dom.getParent(en||s.getEnd(),dom.isBlock);if(sb)bl.push(sb);if(sb&&eb&&sb!=eb){n=sb;while((n=n.nextSibling)&&n!=eb){if(dom.isBlock(n))bl.push(n);}}if(eb&&sb!=eb)bl.push(eb);return bl;}});})();tinymce.create('tinymce.UndoManager',{index:0,data:null,typing:0,UndoManager:function(ed){var t=this,Dispatcher=tinymce.util.Dispatcher;t.editor=ed;t.data=[];t.onAdd=new Dispatcher(this);t.onUndo=new Dispatcher(this);t.onRedo=new Dispatcher(this);},add:function(l){var t=this,i,ed=t.editor,b,s=ed.settings,la;l=l||{};l.content=l.content||ed.getContent({format:'raw',no_events:1});l.content=l.content.replace(/^\s*|\s*$/g,'');la=t.data[t.index>0?t.index-1:0];if(!l.initial&&la&&l.content==la.content)return null;if(s.custom_undo_redo_levels){if(t.data.length>s.custom_undo_redo_levels){for(i=0;i<t.data.length-1;i++)t.data[i]=t.data[i+1];t.data.length--;t.index=t.data.length;}}if(s.custom_undo_redo_restore_selection&&!l.initial)l.bookmark=b=l.bookmark||ed.selection.getBookmark();if(t.index<t.data.length&&t.data[t.index].initial)t.index++;t.data.length=t.index+1;t.data[t.index++]=l;if(l.initial)t.index=0;if(t.data.length==2&&t.data[0].initial)t.data[0].bookmark=b;t.onAdd.dispatch(t,l);ed.isNotDirty=0;return l;},undo:function(){var t=this,ed=t.editor,l=l,i;if(t.typing){t.add();t.typing=0;}if(t.index>0){if(t.index==t.data.length&&t.index>1){i=t.index;t.typing=0;if(!t.add())t.index=i;--t.index;}l=t.data[--t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onUndo.dispatch(t,l);}return l;},redo:function(){var t=this,ed=t.editor,l=null;if(t.index<t.data.length-1){l=t.data[++t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onRedo.dispatch(t,l);}return l;},clear:function(){var t=this;t.data=[];t.index=0;t.typing=0;t.add({initial:true});},hasUndo:function(){return this.index!=0||this.typing;},hasRedo:function(){return this.index<this.data.length-1;}});(function(){var Event,isIE,isGecko,isOpera,each,extend;Event=tinymce.dom.Event;isIE=tinymce.isIE;isGecko=tinymce.isGecko;isOpera=tinymce.isOpera;each=tinymce.each;extend=tinymce.extend;tinymce.create('tinymce.ForceBlocks',{ForceBlocks:function(ed){var t=this,s=ed.settings,elm;t.editor=ed;t.dom=ed.dom;elm=(s.forced_root_block||'p').toLowerCase();s.element=elm.toUpperCase();ed.onPreInit.add(t.setup,t);t.reOpera=new RegExp('(\u00a0| | )<\/'+elm+'>','gi');t.rePadd=new RegExp('<p( )([^>]+)><\/p>|<p( )([^>]+)\/>|<p( )([^>]+)>\s+<\/p>|<p><\/p>|<p\/>|<p>\s+<\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR=new RegExp('<p( )([^>]+)>[\s\u00a0]+<\/p>|<p>[\s\u00a0]+<\/p>'.replace(/p/g,elm),'gi');t.reBR2Nbsp=new RegExp('<p( )([^>]+)>\s*<br \/>\s*<\/p>|<p>\s*<br \/>\s*<\/p>'.replace(/p/g,elm),'gi');t.reTrailBr=new RegExp('\s*<br \/>\s*<\/p>'.replace(/p/g,elm),'gi');function padd(ed,o){if(isOpera)o.content=o.content.replace(t.reOpera,'</'+elm+'>');o.content=o.content.replace(t.rePadd,'<'+elm+'$1$2$3$4$5$6>\u00a0</'+elm+'>');if(!isIE&&o.set){o.content=o.content.replace(t.reNbsp2BR,'<'+elm+'$1$2><br /></'+elm+'>');}else{o.content=o.content.replace(t.reBR2Nbsp,'<'+elm+'$1$2>\u00a0</'+elm+'>');o.content=o.content.replace(t.reTrailBr,'</'+elm+'>');}};ed.onBeforeSetContent.add(padd);ed.onPostProcess.add(padd);if(s.forced_root_block){ed.onInit.add(t.forceRoots,t);ed.onSetContent.add(t.forceRoots,t);ed.onBeforeGetContent.add(t.forceRoots,t);}},setup:function(){var t=this,ed=t.editor,s=ed.settings;if(s.forced_root_block){ed.onKeyUp.add(t.forceRoots,t);ed.onPreProcess.add(t.forceRoots,t);}if(s.force_br_newlines){if(isIE){ed.onKeyPress.add(function(ed,e){var n,s=ed.selection;if(e.keyCode==13&&s.getNode().nodeName!='LI'){s.setContent('<br id="__" /> ',{format:'raw'});n=ed.dom.get('__');n.removeAttribute('id');s.select(n);s.collapse();return Event.cancel(e);}});}return;}if(!isIE&&s.force_p_newlines){ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&!e.shiftKey){if(!t.insertPara(e))Event.cancel(e);}});if(isGecko){ed.onKeyDown.add(function(ed,e){if((e.keyCode==8||e.keyCode==46)&&!e.shiftKey)t.backspaceDelete(e,e.keyCode==8);});}}function ren(rn,na){var ne=ed.dom.create(na);each(rn.attributes,function(a){if(a.specified&&a.nodeValue)ne.setAttribute(a.nodeName.toLowerCase(),a.nodeValue);});each(rn.childNodes,function(n){ne.appendChild(n.cloneNode(true));});rn.parentNode.replaceChild(ne,rn);return ne;};if(isIE&&s.element!='P'){ed.onKeyPress.add(function(ed,e){t.lastElm=ed.selection.getNode().nodeName;});ed.onKeyUp.add(function(ed,e){var bl,sel=ed.selection,n=sel.getNode(),b=ed.getBody();if(b.childNodes.length===1&&n.nodeName=='P'){n=ren(n,s.element);sel.select(n);sel.collapse();ed.nodeChanged();}else if(e.keyCode==13&&!e.shiftKey&&t.lastElm!='P'){bl=ed.dom.getParent(n,'P');if(bl){ren(bl,s.element);ed.nodeChanged();}}});}},find:function(n,t,s){var ed=this.editor,w=ed.getDoc().createTreeWalker(n,4,null,false),c=-1;while(n=w.nextNode()){c++;if(t==0&&n==s)return c;if(t==1&&c==s)return n;}return-1;},forceRoots:function(ed,e){var t=this,ed=t.editor,b=ed.getBody(),d=ed.getDoc(),se=ed.selection,s=se.getSel(),r=se.getRng(),si=-2,ei,so,eo,tr,c=-0xFFFFFF;var nx,bl,bp,sp,le,nl=b.childNodes,i;if(e&&e.keyCode==13)return true;for(i=nl.length-1;i>=0;i--){nx=nl[i];if(nx.nodeType==3||!t.dom.isBlock(nx)){if(!bl){if(nx.nodeType!=3||/[^\s]/g.test(nx.nodeValue)){if(si==-2&&r){if(!isIE){so=r.startOffset;eo=r.endOffset;si=t.find(b,0,r.startContainer);ei=t.find(b,0,r.endContainer);}else{tr=d.body.createTextRange();tr.moveToElementText(b);tr.collapse(1);bp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(1);sp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(0);le=(tr.move('character',c)*-1)-sp;si=sp-bp;ei=le;}}bl=ed.dom.create(ed.settings.forced_root_block);bl.appendChild(nx.cloneNode(1));nx.parentNode.replaceChild(bl,nx);}}else{if(bl.hasChildNodes())bl.insertBefore(nx,bl.firstChild);else bl.appendChild(nx);}}else bl=null;}if(si!=-2){if(!isIE){bl=d.getElementsByTagName(ed.settings.element)[0];r=d.createRange();if(si!=-1)r.setStart(t.find(b,1,si),so);else r.setStart(bl,0);if(ei!=-1)r.setEnd(t.find(b,1,ei),eo);else r.setEnd(bl,0);if(s){s.removeAllRanges();s.addRange(r);}}else{try{r=s.createRange();r.moveToElementText(b);r.collapse(1);r.moveStart('character',si);r.moveEnd('character',ei);r.select();}catch(ex){}}}},getParentBlock:function(n){var d=this.dom;return d.getParent(n,d.isBlock);},insertPara:function(e){var t=this,ed=t.editor,d=ed.getDoc(),se=ed.settings,s=ed.selection.getSel(),r=s.getRangeAt(0),b=d.body;var rb,ra,dir,sn,so,en,eo,sb,eb,bn,bef,aft,sc,ec,n;function isEmpty(n){n=n.innerHTML;n=n.replace(/<(img|hr|table)/gi,'-');n=n.replace(/<[^>]+>/g,'');return n.replace(/[ \t\r\n]+/g,'')=='';};rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(true);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(true);dir=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;sn=dir?s.anchorNode:s.focusNode;so=dir?s.anchorOffset:s.focusOffset;en=dir?s.focusNode:s.anchorNode;eo=dir?s.focusOffset:s.anchorOffset;if(sn==b&&en==b&&b.firstChild&&ed.dom.isBlock(b.firstChild)){sn=en=sn.firstChild;so=eo=0;rb=d.createRange();rb.setStart(sn,0);ra=d.createRange();ra.setStart(en,0);}sn=sn.nodeName=="HTML"?d.body:sn;sn=sn.nodeName=="BODY"?sn.firstChild:sn;en=en.nodeName=="HTML"?d.body:en;en=en.nodeName=="BODY"?en.firstChild:en;sb=t.getParentBlock(sn);eb=t.getParentBlock(en);bn=sb?sb.nodeName:se.element;if(t.dom.getParent(sb,function(n){return/OL|UL|PRE/.test(n.nodeName);}))return true;if(sb&&(sb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(sb.style.position))){bn=se.element;sb=null;}if(eb&&(eb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(eb.style.position))){bn=se.element;eb=null;}if(/(TD|TABLE|TH|CAPTION)/.test(bn)||(sb&&bn=="DIV"&&/left|right/gi.test(sb.style.cssFloat))){bn=se.element;sb=eb=null;}bef=(sb&&sb.nodeName==bn)?sb.cloneNode(0):ed.dom.create(bn);aft=(eb&&eb.nodeName==bn)?eb.cloneNode(0):ed.dom.create(bn);aft.removeAttribute('id');if(/^(H[1-6])$/.test(bn)&&sn.nodeValue&&so==sn.nodeValue.length)aft=ed.dom.create(se.element);n=sc=sn;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;sc=n;}while((n=n.previousSibling?n.previousSibling:n.parentNode));n=ec=en;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;ec=n;}while((n=n.nextSibling?n.nextSibling:n.parentNode));if(sc.nodeName==bn)rb.setStart(sc,0);else rb.setStartBefore(sc);rb.setEnd(sn,so);bef.appendChild(rb.cloneContents()||d.createTextNode(''));try{ra.setEndAfter(ec);}catch(ex){}ra.setStart(en,eo);aft.appendChild(ra.cloneContents()||d.createTextNode(''));r=d.createRange();if(!sc.previousSibling&&sc.parentNode.nodeName==bn){r.setStartBefore(sc.parentNode);}else{if(rb.startContainer.nodeName==bn&&rb.startOffset==0)r.setStartBefore(rb.startContainer);else r.setStart(rb.startContainer,rb.startOffset);}if(!ec.nextSibling&&ec.parentNode.nodeName==bn)r.setEndAfter(ec.parentNode);else r.setEnd(ra.endContainer,ra.endOffset);r.deleteContents();if(bef.firstChild&&bef.firstChild.nodeName==bn)bef.innerHTML=bef.firstChild.innerHTML;if(aft.firstChild&&aft.firstChild.nodeName==bn)aft.innerHTML=aft.firstChild.innerHTML;if(isEmpty(bef))bef.innerHTML='<br />';if(isEmpty(aft))aft.innerHTML=isOpera?' ':'<br />';if(isOpera){r.insertNode(bef);r.insertNode(aft);}else{r.insertNode(aft);r.insertNode(bef);}aft.normalize();bef.normalize();r=d.createRange();r.selectNodeContents(aft);r.collapse(1);s.removeAllRanges();s.addRange(r);if(tinymce.isWebKit)ed.getWin().scrollTo(0,ed.dom.getPos(aft).y);else aft.scrollIntoView(0);return false;},backspaceDelete:function(e,bs){var t=this,ed=t.editor,b=ed.getBody(),n,se=ed.selection,r=se.getRng(),sc=r.startContainer,n;if(sc&&ed.dom.isBlock(sc)&&bs){if(sc.childNodes.length==1&&sc.firstChild.nodeName=='BR'){n=sc.previousSibling;if(n){ed.dom.remove(sc);se.select(n.firstChild);se.collapse(0);return Event.cancel(e);}}}function handler(e){e=e.target;if(e&&e.parentNode&&e.nodeName=='BR'&&t.getParentBlock(e)){ed.dom.remove(e);Event.remove(b,'DOMNodeInserted',handler);}};Event._add(b,'DOMNodeInserted',handler);window.setTimeout(function(){Event._remove(b,'DOMNodeInserted',handler);},1);}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,extend=tinymce.extend;tinymce.create('tinymce.ControlManager',{ControlManager:function(ed,s){var t=this,i;s=s||{};t.editor=ed;t.controls={};t.onAdd=new tinymce.util.Dispatcher(t);t.onPostRender=new tinymce.util.Dispatcher(t);t.prefix=s.prefix||ed.id+'_';t.onPostRender.add(function(){each(t.controls,function(c){c.postRender();});});},get:function(id){return this.controls[this.prefix+id]||this.controls[id];},setActive:function(id,s){var c=null;if(c=this.get(id))c.setActive(s);return c;},setDisabled:function(id,s){var c=null;if(c=this.get(id))c.setDisabled(s);return c;},add:function(c){var t=this;if(c){t.controls[c.id]=c;t.onAdd.dispatch(c,t);}return c;},createControl:function(n){var c,t=this,ed=t.editor;each(ed.plugins,function(p){if(p.createControl){c=p.createControl(n,t);if(c)return false;}});switch(n){case"|":case"separator":return t.createSeparator();}if(!c&&ed.buttons&&(c=ed.buttons[n]))return t.createButton(n,c);return t.add(c);},createDropMenu:function(id,s){var t=this,ed=t.editor,c,bm,v;s=extend({'class':'mceDropDown',constrain:ed.settings.constrain_menus},s);s['class']=s['class']+' '+ed.getParam('skin')+'Skin';if(v=ed.getParam('skin_variant'))s['class']+=' '+ed.getParam('skin')+'Skin'+v.substring(0,1).toUpperCase()+v.substring(1);id=t.prefix+id;c=t.controls[id]=new tinymce.ui.DropMenu(id,s);c.onAddItem.add(function(c,o){var s=o.settings;s.title=ed.getLang(s.title,s.title);if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,s.value);};}});ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){var s=ed.selection,n=s.getNode();if(n.nodeName=='IMG')bm=s.getBookmark();else bm=0;});c.onHideMenu.add(function(){if(bm)ed.selection.moveToBookmark(bm);});}return t.add(c);},createListBox:function(id,s){var t=this,ed=t.editor,cmd,c;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;if(ed.settings.use_native_selects)c=new tinymce.ui.NativeListBox(id,s);else c=new tinymce.ui.ListBox(id,s);t.controls[id]=c;if(tinymce.isWebKit){c.onPostRender.add(function(c,n){Event.add(n,'mousedown',function(){ed.bookmark=ed.selection.getBookmark('simple');});Event.add(n,'focus',function(){ed.selection.moveToBookmark(ed.bookmark);ed.bookmark=null;});});}if(c.hideMenu)ed.onMouseDown.add(c.hideMenu,c);return t.add(c);},createButton:function(id,s){var t=this,ed=t.editor,o,c;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick&&!s.menu_button){s.onclick=function(){ed.execCommand(s.cmd,s.ui||false,s.value);};}s=extend({title:s.title,'class':'mce_'+id,unavailable_prefix:ed.getLang('unavailable',''),scope:s.scope,control_manager:t},s);id=t.prefix+id;if(s.menu_button){c=new tinymce.ui.MenuButton(id,s);ed.onMouseDown.add(c.hideMenu,c);}else c=new tinymce.ui.Button(id,s);return t.add(c);},createMenuButton:function(id,s){s=s||{};s.menu_button=1;return this.createButton(id,s);},createSplitButton:function(id,s){var t=this,ed=t.editor,cmd,c;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;c=t.add(new tinymce.ui.SplitButton(id,s));ed.onMouseDown.add(c.hideMenu,c);return c;},createColorSplitButton:function(id,s){var t=this,ed=t.editor,cmd,c;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,'menu_class':ed.getParam('skin')+'Skin',scope:s.scope,more_colors_title:ed.getLang('more_colors')},s);id=t.prefix+id;c=new tinymce.ui.ColorSplitButton(id,s);ed.onMouseDown.add(c.hideMenu,c);ed.onRemove.add(function(){c.destroy();});return t.add(c);},createToolbar:function(id,s){var c,t=this;id=t.prefix+id;c=new tinymce.ui.Toolbar(id,s);if(t.get(id))return null;return t.add(c);},createSeparator:function(){return new tinymce.ui.Separator();}});})();(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each,isIE=tinymce.isIE,isOpera=tinymce.isOpera;tinymce.create('tinymce.WindowManager',{WindowManager:function(ed){var t=this;t.editor=ed;t.onOpen=new Dispatcher(t);t.onClose=new Dispatcher(t);t.params={};t.features={};},open:function(s,p){var t=this,f='',x,y,mo=t.editor.settings.dialog_type=='modal',w,sw,sh,vp=tinymce.DOM.getViewPort(),u;s=s||{};p=p||{};sw=isOpera?vp.w:screen.width;sh=isOpera?vp.h:screen.height;s.name=s.name||'mc_'+new Date().getTime();s.width=parseInt(s.width||320);s.height=parseInt(s.height||240);s.resizable=true;s.left=s.left||parseInt(sw/ 2.0) - (s.width /2.0);s.top=s.top||parseInt(sh/ 2.0) - (s.height /2.0);p.inline=false;p.mce_width=s.width;p.mce_height=s.height;p.mce_auto_focus=s.auto_focus;if(mo){if(isIE){s.center=true;s.help=false;s.dialogWidth=s.width+'px';s.dialogHeight=s.height+'px';s.scroll=s.scrollbars||false;}else s.modal=s.alwaysRaised=s.dialog=s.centerscreen=s.dependent=true;}each(s,function(v,k){if(tinymce.is(v,'boolean'))v=v?'yes':'no';if(!/^(name|url)$/.test(k)){if(isIE&&mo)f+=(f?';':'')+k+':'+v;else f+=(f?',':'')+k+'='+v;}});t.features=s;t.params=p;t.onOpen.dispatch(t,s,p);u=s.url||s.file;if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&')+'mce_rdomain='+tinymce.relaxedDomain;try{if(isIE&&mo){w=1;window.showModalDialog(s.url||s.file,window,f);}else w=window.open(u,s.name,f);}catch(ex){}if(!w)alert(t.editor.getLang('popup_blocked'));},close:function(w){w.close();this.onClose.dispatch(this);},createInstance:function(cl,a,b,c,d,e){var f=tinymce.resolve(cl);return new f(a,b,c,d,e);},confirm:function(t,cb,s){cb.call(s||this,confirm(this._decode(this.editor.getLang(t,t))));},alert:function(t,cb,s){alert(this._decode(t));if(cb)cb.call(s||this);},_decode:function(s){return tinymce.DOM.decode(s).replace(/\\n/g,'\n');}});}());
\ No newline at end of file
--- /dev/null
+// Some global instances\r
+var tinymce = null, tinyMCEPopup, tinyMCE;\r
+\r
+tinyMCEPopup = {\r
+ init : function() {\r
+ var t = this, w, ti, li, q, i, it;\r
+\r
+ li = ('' + document.location.search).replace(/^\?/, '').split('&');\r
+ q = {};\r
+ for (i=0; i<li.length; i++) {\r
+ it = li[i].split('=');\r
+ q[unescape(it[0])] = unescape(it[1]);\r
+ }\r
+\r
+ if (q.mce_rdomain)\r
+ document.domain = q.mce_rdomain;\r
+\r
+ // Find window & API\r
+ w = t.getWin();\r
+ tinymce = w.tinymce;\r
+ tinyMCE = w.tinyMCE;\r
+ t.editor = tinymce.EditorManager.activeEditor;\r
+ t.params = t.editor.windowManager.params;\r
+\r
+ // Setup local DOM\r
+ t.dom = t.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document);\r
+ t.dom.loadCSS(t.editor.settings.popup_css);\r
+\r
+ // Setup on init listeners\r
+ t.listeners = [];\r
+ t.onInit = {\r
+ add : function(f, s) {\r
+ t.listeners.push({func : f, scope : s});\r
+ }\r
+ };\r
+\r
+ t.isWindow = !t.getWindowArg('mce_inline');\r
+ t.id = t.getWindowArg('mce_window_id');\r
+ t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window);\r
+ },\r
+\r
+ getWin : function() {\r
+ return window.dialogArguments || opener || parent || top;\r
+ },\r
+\r
+ getWindowArg : function(n, dv) {\r
+ var v = this.params[n];\r
+\r
+ return tinymce.is(v) ? v : dv;\r
+ },\r
+\r
+ getParam : function(n, dv) {\r
+ return this.editor.getParam(n, dv);\r
+ },\r
+\r
+ getLang : function(n, dv) {\r
+ return this.editor.getLang(n, dv);\r
+ },\r
+\r
+ execCommand : function(cmd, ui, val, a) {\r
+ a = a || {};\r
+ a.skip_focus = 1;\r
+\r
+ this.restoreSelection();\r
+ return this.editor.execCommand(cmd, ui, val, a);\r
+ },\r
+\r
+ resizeToInnerSize : function() {\r
+ var t = this, n, b = document.body, vp = t.dom.getViewPort(window), dw, dh;\r
+\r
+ dw = t.getWindowArg('mce_width') - vp.w;\r
+ dh = t.getWindowArg('mce_height') - vp.h;\r
+\r
+ if (t.isWindow)\r
+ window.resizeBy(dw, dh);\r
+ else\r
+ t.editor.windowManager.resizeBy(dw, dh, t.id);\r
+ },\r
+\r
+ executeOnLoad : function(s) {\r
+ this.onInit.add(function() {\r
+ eval(s);\r
+ });\r
+ },\r
+\r
+ storeSelection : function() {\r
+ this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark('simple');\r
+ },\r
+\r
+ restoreSelection : function() {\r
+ var t = tinyMCEPopup;\r
+\r
+ if (!t.isWindow && tinymce.isIE)\r
+ t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);\r
+ },\r
+\r
+ requireLangPack : function() {\r
+ var u = this.getWindowArg('plugin_url') || this.getWindowArg('theme_url');\r
+\r
+ if (u && this.editor.settings.language) {\r
+ u += '/langs/' + this.editor.settings.language + '_dlg.js';\r
+\r
+ if (!tinymce.ScriptLoader.isDone(u)) {\r
+ document.write('<script type="text/javascript" src="' + u + '"></script>');\r
+ tinymce.ScriptLoader.markDone(u);\r
+ }\r
+ }\r
+ },\r
+\r
+ pickColor : function(e, element_id) {\r
+ this.execCommand('mceColorPicker', true, {\r
+ color : document.getElementById(element_id).value,\r
+ func : function(c) {\r
+ document.getElementById(element_id).value = c;\r
+\r
+ try {\r
+ document.getElementById(element_id).onchange();\r
+ } catch (ex) {\r
+ // Try fire event, ignore errors\r
+ }\r
+ }\r
+ });\r
+ },\r
+\r
+ openBrowser : function(element_id, type, option) {\r
+ tinyMCEPopup.restoreSelection();\r
+ this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window);\r
+ },\r
+\r
+ close : function() {\r
+ var t = this;\r
+\r
+ // To avoid domain relaxing issue in Opera\r
+ function close() {\r
+ t.editor.windowManager.close(window, t.id);\r
+ tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup\r
+ };\r
+\r
+ if (tinymce.isOpera)\r
+ t.getWin().setTimeout(close, 0);\r
+ else\r
+ close();\r
+ },\r
+\r
+ // Internal functions \r
+\r
+ _restoreSelection : function() {\r
+ var e = window.event.srcElement;\r
+\r
+ if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button'))\r
+ tinyMCEPopup.restoreSelection();\r
+ },\r
+\r
+/* _restoreSelection : function() {\r
+ var e = window.event.srcElement;\r
+\r
+ // If user focus a non text input or textarea\r
+ if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text')\r
+ tinyMCEPopup.restoreSelection();\r
+ },*/\r
+\r
+ _onDOMLoaded : function() {\r
+ var t = this, ti = document.title, bm, h;\r
+\r
+ // Translate page\r
+ h = document.body.innerHTML;\r
+\r
+ // Replace a=x with a="x" in IE\r
+ if (tinymce.isIE)\r
+ h = h.replace(/ (value|title|alt)=([^"][^\s>]+)/gi, ' $1="$2"')\r
+\r
+ document.body.innerHTML = t.editor.translate(h);\r
+ document.title = ti = t.editor.translate(ti);\r
+ document.body.style.display = '';\r
+\r
+ // Restore selection in IE when focus is placed on a non textarea or input element of the type text\r
+ if (tinymce.isIE)\r
+ document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection);\r
+\r
+ t.restoreSelection();\r
+ t.resizeToInnerSize();\r
+\r
+ // Set inline title\r
+ if (!t.isWindow)\r
+ t.editor.windowManager.setTitle(ti, t.id);\r
+ else\r
+ window.focus();\r
+\r
+ if (!tinymce.isIE && !t.isWindow) {\r
+ tinymce.dom.Event._add(document, 'focus', function() {\r
+ t.editor.windowManager.focus(t.id)\r
+ });\r
+ }\r
+\r
+ // Patch for accessibility\r
+ tinymce.each(t.dom.select('select'), function(e) {\r
+ e.onkeydown = tinyMCEPopup._accessHandler;\r
+ });\r
+\r
+ // Call onInit\r
+ // Init must be called before focus so the selection won't get lost by the focus call\r
+ tinymce.each(t.listeners, function(o) {\r
+ o.func.call(o.scope, t.editor);\r
+ });\r
+\r
+ // Move focus to window\r
+ if (t.getWindowArg('mce_auto_focus', true)) {\r
+ window.focus();\r
+\r
+ // Focus element with mceFocus class\r
+ tinymce.each(document.forms, function(f) {\r
+ tinymce.each(f.elements, function(e) {\r
+ if (t.dom.hasClass(e, 'mceFocus')) {\r
+ e.focus();\r
+ return false; // Break loop\r
+ }\r
+ });\r
+ });\r
+ }\r
+\r
+ document.onkeydown = tinyMCEPopup._closeWinKeyHandler;\r
+ },\r
+\r
+ _accessHandler : function(e) {\r
+ e = e || window.event;\r
+\r
+ if (e.keyCode == 13 || e.keyCode == 32) {\r
+ e = e.target || e.srcElement;\r
+\r
+ if (e.onchange)\r
+ e.onchange();\r
+\r
+ return tinymce.dom.Event.cancel(e);\r
+ }\r
+ },\r
+\r
+ _closeWinKeyHandler : function(e) {\r
+ e = e || window.event;\r
+\r
+ if (e.keyCode == 27)\r
+ tinyMCEPopup.close();\r
+ },\r
+\r
+ _wait : function() {\r
+ var t = this, ti;\r
+\r
+ if (tinymce.isIE && document.location.protocol != 'https:') {\r
+ // Fake DOMContentLoaded on IE\r
+ document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');\r
+ document.getElementById("__ie_onload").onreadystatechange = function() {\r
+ if (this.readyState == "complete") {\r
+ t._onDOMLoaded();\r
+ document.getElementById("__ie_onload").onreadystatechange = null; // Prevent leak\r
+ }\r
+ };\r
+ } else {\r
+ if (tinymce.isIE || tinymce.isWebKit) {\r
+ ti = setInterval(function() {\r
+ if (/loaded|complete/.test(document.readyState)) {\r
+ clearInterval(ti);\r
+ t._onDOMLoaded();\r
+ }\r
+ }, 10);\r
+ } else {\r
+ window.addEventListener('DOMContentLoaded', function() {\r
+ t._onDOMLoaded();\r
+ }, false);\r
+ }\r
+ }\r
+ }\r
+};\r
+\r
+tinyMCEPopup.init();\r
+tinyMCEPopup._wait(); // Wait for DOM Content Loaded\r
--- /dev/null
+\r
+/* file:jscripts/tiny_mce/classes/tinymce.js */\r
+\r
+var tinymce = {\r
+ majorVersion : '3',\r
+ minorVersion : '0.5',\r
+ releaseDate : '2008-03-12',\r
+\r
+ _init : function() {\r
+ var t = this, ua = navigator.userAgent, i, nl, n, base;\r
+\r
+ // Browser checks\r
+ t.isOpera = window.opera && opera.buildNumber;\r
+ t.isWebKit = /WebKit/.test(ua);\r
+ t.isOldWebKit = t.isWebKit && !window.getSelection().getRangeAt;\r
+ t.isIE = !t.isWebKit && !t.isOpera && (/MSIE/gi).test(ua) && (/Explorer/gi).test(navigator.appName);\r
+ t.isIE6 = t.isIE && /MSIE [56]/.test(ua);\r
+ t.isGecko = !t.isWebKit && /Gecko/.test(ua);\r
+ t.isMac = ua.indexOf('Mac') != -1;\r
+\r
+ // TinyMCE .NET webcontrol might be setting the values for TinyMCE\r
+ if (window.tinyMCEPreInit) {\r
+ t.suffix = tinyMCEPreInit.suffix;\r
+ t.baseURL = tinyMCEPreInit.base;\r
+ return;\r
+ }\r
+\r
+ // Get suffix and base\r
+ t.suffix = '';\r
+\r
+ // If base element found, add that infront of baseURL\r
+ nl = document.getElementsByTagName('base');\r
+ for (i=0; i<nl.length; i++) {\r
+ if (nl[i].href)\r
+ base = nl[i].href;\r
+ }\r
+\r
+ function getBase(n) {\r
+ if (n.src && /tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)) {\r
+ if (/_(src|dev)\.js/g.test(n.src))\r
+ t.suffix = '_src';\r
+\r
+ t.baseURL = n.src.substring(0, n.src.lastIndexOf('/'));\r
+\r
+ // If path to script is relative and a base href was found add that one infront\r
+ if (base && t.baseURL.indexOf('://') == -1)\r
+ t.baseURL = base + t.baseURL;\r
+\r
+ return t.baseURL;\r
+ }\r
+\r
+ return null;\r
+ };\r
+\r
+ // Check document\r
+ nl = document.getElementsByTagName('script');\r
+ for (i=0; i<nl.length; i++) {\r
+ if (getBase(nl[i]))\r
+ return;\r
+ }\r
+\r
+ // Check head\r
+ n = document.getElementsByTagName('head')[0];\r
+ if (n) {\r
+ nl = n.getElementsByTagName('script');\r
+ for (i=0; i<nl.length; i++) {\r
+ if (getBase(nl[i]))\r
+ return;\r
+ }\r
+ }\r
+\r
+ return;\r
+ },\r
+\r
+ is : function(o, t) {\r
+ var n = typeof(o);\r
+\r
+ if (!t)\r
+ return n != 'undefined';\r
+\r
+ if (t == 'array' && (o instanceof Array))\r
+ return true;\r
+\r
+ return n == t;\r
+ },\r
+\r
+ // #if !jquery\r
+\r
+ each : function(o, cb, s) {\r
+ var n, l;\r
+\r
+ if (!o)\r
+ return 0;\r
+\r
+ s = s || o;\r
+\r
+ if (typeof(o.length) != 'undefined') {\r
+ // Indexed arrays, needed for Safari\r
+ for (n=0, l = o.length; n<l; n++) {\r
+ if (cb.call(s, o[n], n, o) === false)\r
+ return 0;\r
+ }\r
+ } else {\r
+ // Hashtables\r
+ for (n in o) {\r
+ if (o.hasOwnProperty(n)) {\r
+ if (cb.call(s, o[n], n, o) === false)\r
+ return 0;\r
+ }\r
+ }\r
+ }\r
+\r
+ return 1;\r
+ },\r
+\r
+ map : function(a, f) {\r
+ var o = [];\r
+\r
+ tinymce.each(a, function(v) {\r
+ o.push(f(v));\r
+ });\r
+\r
+ return o;\r
+ },\r
+\r
+ grep : function(a, f) {\r
+ var o = [];\r
+\r
+ tinymce.each(a, function(v) {\r
+ if (!f || f(v))\r
+ o.push(v);\r
+ });\r
+\r
+ return o;\r
+ },\r
+\r
+ inArray : function(a, v) {\r
+ var i, l;\r
+\r
+ if (a) {\r
+ for (i = 0, l = a.length; i < l; i++) {\r
+ if (a[i] === v)\r
+ return i;\r
+ }\r
+ }\r
+\r
+ return -1;\r
+ },\r
+\r
+ extend : function(o, e) {\r
+ var i, a = arguments;\r
+\r
+ for (i=1; i<a.length; i++) {\r
+ e = a[i];\r
+\r
+ tinymce.each(e, function(v, n) {\r
+ if (typeof(v) !== 'undefined')\r
+ o[n] = v;\r
+ });\r
+ }\r
+\r
+ return o;\r
+ },\r
+\r
+ trim : function(s) {\r
+ return (s ? '' + s : '').replace(/^\s*|\s*$/g, '');\r
+ },\r
+\r
+ // #endif\r
+\r
+ create : function(s, p) {\r
+ var t = this, sp, ns, cn, scn, c, de = 0;\r
+\r
+ // Parse : <prefix> <class>:<super class>\r
+ s = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);\r
+ cn = s[3].match(/(^|\.)(\w+)$/i)[2]; // Class name\r
+\r
+ // Create namespace for new class\r
+ ns = t.createNS(s[3].replace(/\.\w+$/, ''));\r
+\r
+ // Class already exists\r
+ if (ns[cn])\r
+ return;\r
+\r
+ // Make pure static class\r
+ if (s[2] == 'static') {\r
+ ns[cn] = p;\r
+\r
+ if (this.onCreate)\r
+ this.onCreate(s[2], s[3], ns[cn]);\r
+\r
+ return;\r
+ }\r
+\r
+ // Create default constructor\r
+ if (!p[cn]) {\r
+ p[cn] = function() {};\r
+ de = 1;\r
+ }\r
+\r
+ // Add constructor and methods\r
+ ns[cn] = p[cn];\r
+ t.extend(ns[cn].prototype, p);\r
+\r
+ // Extend\r
+ if (s[5]) {\r
+ sp = t.resolve(s[5]).prototype;\r
+ scn = s[5].match(/\.(\w+)$/i)[1]; // Class name\r
+\r
+ // Extend constructor\r
+ c = ns[cn];\r
+ if (de) {\r
+ // Add passthrough constructor\r
+ ns[cn] = function() {\r
+ return sp[scn].apply(this, arguments);\r
+ };\r
+ } else {\r
+ // Add inherit constructor\r
+ ns[cn] = function() {\r
+ this.parent = sp[scn];\r
+ return c.apply(this, arguments);\r
+ };\r
+ }\r
+ ns[cn].prototype[cn] = ns[cn];\r
+\r
+ // Add super methods\r
+ t.each(sp, function(f, n) {\r
+ ns[cn].prototype[n] = sp[n];\r
+ });\r
+\r
+ // Add overridden methods\r
+ t.each(p, function(f, n) {\r
+ // Extend methods if needed\r
+ if (sp[n]) {\r
+ ns[cn].prototype[n] = function() {\r
+ this.parent = sp[n];\r
+ return f.apply(this, arguments);\r
+ };\r
+ } else {\r
+ if (n != cn)\r
+ ns[cn].prototype[n] = f;\r
+ }\r
+ });\r
+ }\r
+\r
+ // Add static methods\r
+ t.each(p['static'], function(f, n) {\r
+ ns[cn][n] = f;\r
+ });\r
+\r
+ if (this.onCreate)\r
+ this.onCreate(s[2], s[3], ns[cn].prototype);\r
+ },\r
+\r
+ walk : function(o, f, n, s) {\r
+ s = s || this;\r
+\r
+ if (o) {\r
+ if (n)\r
+ o = o[n];\r
+\r
+ tinymce.each(o, function(o, i) {\r
+ if (f.call(s, o, i, n) === false)\r
+ return false;\r
+\r
+ tinymce.walk(o, f, n, s);\r
+ });\r
+ }\r
+ },\r
+\r
+ createNS : function(n, o) {\r
+ var i, v;\r
+\r
+ o = o || window;\r
+\r
+ n = n.split('.');\r
+ for (i=0; i<n.length; i++) {\r
+ v = n[i];\r
+\r
+ if (!o[v])\r
+ o[v] = {};\r
+\r
+ o = o[v];\r
+ }\r
+\r
+ return o;\r
+ },\r
+\r
+ resolve : function(n, o) {\r
+ var i, l;\r
+\r
+ o = o || window;\r
+\r
+ n = n.split('.');\r
+ for (i=0, l = n.length; i<l; i++) {\r
+ o = o[n[i]];\r
+\r
+ if (!o)\r
+ break;\r
+ }\r
+\r
+ return o;\r
+ },\r
+\r
+ addUnload : function(f, s) {\r
+ var t = this, w = window, unload;\r
+\r
+ f = {func : f, scope : s || this};\r
+\r
+ if (!t.unloads) {\r
+ unload = function() {\r
+ var li = t.unloads, o, n;\r
+\r
+ // Call unload handlers\r
+ for (n in li) {\r
+ o = li[n];\r
+\r
+ if (o && o.func)\r
+ o.func.call(o.scope);\r
+ }\r
+\r
+ // Detach unload function\r
+ if (w.detachEvent)\r
+ w.detachEvent('onunload', unload);\r
+ else if (w.removeEventListener)\r
+ w.removeEventListener('unload', unload, false);\r
+\r
+ // Destroy references\r
+ o = li = w = unload = null;\r
+\r
+ // Run garbarge collector on IE\r
+ if (window.CollectGarbage)\r
+ window.CollectGarbage();\r
+ };\r
+\r
+ // Attach unload handler\r
+ if (w.attachEvent)\r
+ w.attachEvent('onunload', unload);\r
+ else if (w.addEventListener)\r
+ w.addEventListener('unload', unload, false);\r
+\r
+ // Setup initial unload handler array\r
+ t.unloads = [f];\r
+ } else\r
+ t.unloads.push(f);\r
+\r
+ return f;\r
+ },\r
+\r
+ removeUnload : function(f) {\r
+ var u = this.unloads, r = null;\r
+\r
+ tinymce.each(u, function(o, i) {\r
+ if (o && o.func == f) {\r
+ u.splice(i, 1);\r
+ r = f;\r
+ return false;\r
+ }\r
+ });\r
+\r
+ return r;\r
+ },\r
+\r
+ explode : function(s, d) {\r
+ return tinymce.map(s.split(d || ','), tinymce.trim);\r
+ }\r
+\r
+ };\r
+\r
+// Required for GZip AJAX loading\r
+window.tinymce = tinymce;\r
+\r
+// Initialize the API\r
+tinymce._init();\r
+\r
+/* file:jscripts/tiny_mce/classes/adapter/jquery/adapter.js */\r
+\r
+\r
+/* file:jscripts/tiny_mce/classes/adapter/prototype/adapter.js */\r
+\r
+\r
+/* file:jscripts/tiny_mce/classes/util/Dispatcher.js */\r
+\r
+tinymce.create('tinymce.util.Dispatcher', {\r
+ scope : null,\r
+ listeners : null,\r
+\r
+ Dispatcher : function(s) {\r
+ this.scope = s || this;\r
+ this.listeners = [];\r
+ },\r
+\r
+ add : function(cb, s) {\r
+ this.listeners.push({cb : cb, scope : s || this.scope});\r
+\r
+ return cb;\r
+ },\r
+\r
+ addToTop : function(cb, s) {\r
+ this.listeners.unshift({cb : cb, scope : s || this.scope});\r
+\r
+ return cb;\r
+ },\r
+\r
+ remove : function(cb) {\r
+ var l = this.listeners, o = null;\r
+\r
+ tinymce.each(l, function(c, i) {\r
+ if (cb == c.cb) {\r
+ o = cb;\r
+ l.splice(i, 1);\r
+ return false;\r
+ }\r
+ });\r
+\r
+ return o;\r
+ },\r
+\r
+ dispatch : function() {\r
+ var s, a = arguments;\r
+\r
+ tinymce.each(this.listeners, function(c) {\r
+ return s = c.cb.apply(c.scope, a);\r
+ });\r
+\r
+ return s;\r
+ }\r
+\r
+ });\r
+\r
+/* file:jscripts/tiny_mce/classes/util/URI.js */\r
+\r
+(function() {\r
+ var each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.util.URI', {\r
+ URI : function(u, s) {\r
+ var t = this, o, a, b;\r
+\r
+ // Default settings\r
+ s = t.settings = s || {};\r
+\r
+ // Strange app protocol or local anchor\r
+ if (/^(mailto|news|javascript|about):/i.test(u) || /^\s*#/.test(u)) {\r
+ t.source = u;\r
+ return;\r
+ }\r
+\r
+ // Absolute path with no host, fake host and protocol\r
+ if (u.indexOf('/') === 0 && u.indexOf('//') !== 0)\r
+ u = (s.base_uri ? s.base_uri.protocol || 'http' : 'http') + '://mce_host' + u;\r
+\r
+ // Relative path\r
+ if (u.indexOf('://') === -1 && u.indexOf('//') !== 0)\r
+ u = (s.base_uri.protocol || 'http') + '://mce_host' + t.toAbsPath(s.base_uri.path, u);\r
+\r
+ // Parse URL (Credits goes to Steave, http://blog.stevenlevithan.com/archives/parseuri)\r
+ u = u.replace(/@@/g, '(mce_at)'); // Zope 3 workaround, they use @@something\r
+ u = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(u);\r
+ each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], function(v, i) {\r
+ var s = u[i];\r
+\r
+ // Zope 3 workaround, they use @@something\r
+ if (s)\r
+ s = s.replace(/\(mce_at\)/g, '@@');\r
+\r
+ t[v] = s;\r
+ });\r
+\r
+ if (b = s.base_uri) {\r
+ if (!t.protocol)\r
+ t.protocol = b.protocol;\r
+\r
+ if (!t.userInfo)\r
+ t.userInfo = b.userInfo;\r
+\r
+ if (!t.port && t.host == 'mce_host')\r
+ t.port = b.port;\r
+\r
+ if (!t.host || t.host == 'mce_host')\r
+ t.host = b.host;\r
+\r
+ t.source = '';\r
+ }\r
+\r
+ //t.path = t.path || '/';\r
+ },\r
+\r
+ setPath : function(p) {\r
+ var t = this;\r
+\r
+ p = /^(.*?)\/?(\w+)?$/.exec(p);\r
+\r
+ // Update path parts\r
+ t.path = p[0];\r
+ t.directory = p[1];\r
+ t.file = p[2];\r
+\r
+ // Rebuild source\r
+ t.source = '';\r
+ t.getURI();\r
+ },\r
+\r
+ toRelative : function(u) {\r
+ var t = this, o;\r
+\r
+ u = new tinymce.util.URI(u, {base_uri : t});\r
+\r
+ // Not on same domain/port or protocol\r
+ if ((u.host != 'mce_host' && t.host != u.host && u.host) || t.port != u.port || t.protocol != u.protocol)\r
+ return u.getURI();\r
+\r
+ o = t.toRelPath(t.path, u.path);\r
+\r
+ // Add query\r
+ if (u.query)\r
+ o += '?' + u.query;\r
+\r
+ // Add anchor\r
+ if (u.anchor)\r
+ o += '#' + u.anchor;\r
+\r
+ return o;\r
+ },\r
+ \r
+ toAbsolute : function(u, nh) {\r
+ var u = new tinymce.util.URI(u, {base_uri : this});\r
+\r
+ return u.getURI(this.host == u.host ? nh : 0);\r
+ },\r
+\r
+ toRelPath : function(base, path) {\r
+ var items, bp = 0, out = '', i;\r
+\r
+ // Split the paths\r
+ base = base.substring(0, base.lastIndexOf('/'));\r
+ base = base.split('/');\r
+ items = path.split('/');\r
+\r
+ if (base.length >= items.length) {\r
+ for (i = 0; i < base.length; i++) {\r
+ if (i >= items.length || base[i] != items[i]) {\r
+ bp = i + 1;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+\r
+ if (base.length < items.length) {\r
+ for (i = 0; i < items.length; i++) {\r
+ if (i >= base.length || base[i] != items[i]) {\r
+ bp = i + 1;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+\r
+ if (bp == 1)\r
+ return path;\r
+\r
+ for (i = 0; i < base.length - (bp - 1); i++)\r
+ out += "../";\r
+\r
+ for (i = bp - 1; i < items.length; i++) {\r
+ if (i != bp - 1)\r
+ out += "/" + items[i];\r
+ else\r
+ out += items[i];\r
+ }\r
+\r
+ return out;\r
+ },\r
+\r
+ toAbsPath : function(base, path) {\r
+ var i, nb = 0, o = [];\r
+\r
+ // Split paths\r
+ base = base.split('/');\r
+ path = path.split('/');\r
+\r
+ // Remove empty chunks\r
+ each(base, function(k) {\r
+ if (k)\r
+ o.push(k);\r
+ });\r
+\r
+ base = o;\r
+\r
+ // Merge relURLParts chunks\r
+ for (i = path.length - 1, o = []; i >= 0; i--) {\r
+ // Ignore empty or .\r
+ if (path[i].length == 0 || path[i] == ".")\r
+ continue;\r
+\r
+ // Is parent\r
+ if (path[i] == '..') {\r
+ nb++;\r
+ continue;\r
+ }\r
+\r
+ // Move up\r
+ if (nb > 0) {\r
+ nb--;\r
+ continue;\r
+ }\r
+\r
+ o.push(path[i]);\r
+ }\r
+\r
+ i = base.length - nb;\r
+\r
+ // If /a/b/c or /\r
+ if (i <= 0)\r
+ return '/' + o.reverse().join('/');\r
+\r
+ return '/' + base.slice(0, i).join('/') + '/' + o.reverse().join('/');\r
+ },\r
+\r
+ getURI : function(nh) {\r
+ var s, t = this;\r
+\r
+ // Rebuild source\r
+ if (!t.source || nh) {\r
+ s = '';\r
+\r
+ if (!nh) {\r
+ if (t.protocol)\r
+ s += t.protocol + '://';\r
+\r
+ if (t.userInfo)\r
+ s += t.userInfo + '@';\r
+\r
+ if (t.host)\r
+ s += t.host;\r
+\r
+ if (t.port)\r
+ s += ':' + t.port;\r
+ }\r
+\r
+ if (t.path)\r
+ s += t.path;\r
+\r
+ if (t.query)\r
+ s += '?' + t.query;\r
+\r
+ if (t.anchor)\r
+ s += '#' + t.anchor;\r
+\r
+ t.source = s;\r
+ }\r
+\r
+ return t.source;\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/util/Cookie.js */\r
+\r
+(function() {\r
+ var each = tinymce.each;\r
+\r
+ tinymce.create('static tinymce.util.Cookie', {\r
+ getHash : function(n) {\r
+ var v = this.get(n), h;\r
+\r
+ if (v) {\r
+ each(v.split('&'), function(v) {\r
+ v = v.split('=');\r
+ h = h || {};\r
+ h[unescape(v[0])] = unescape(v[1]);\r
+ });\r
+ }\r
+\r
+ return h;\r
+ },\r
+\r
+ setHash : function(n, v, e, p, d, s) {\r
+ var o = '';\r
+\r
+ each(v, function(v, k) {\r
+ o += (!o ? '' : '&') + escape(k) + '=' + escape(v);\r
+ });\r
+\r
+ this.set(n, o, e, p, d, s);\r
+ },\r
+\r
+ get : function(n) {\r
+ var c = document.cookie, e, p = n + "=", b;\r
+\r
+ // Strict mode\r
+ if (!c)\r
+ return;\r
+\r
+ b = c.indexOf("; " + p);\r
+\r
+ if (b == -1) {\r
+ b = c.indexOf(p);\r
+\r
+ if (b != 0)\r
+ return null;\r
+ } else\r
+ b += 2;\r
+\r
+ e = c.indexOf(";", b);\r
+\r
+ if (e == -1)\r
+ e = c.length;\r
+\r
+ return unescape(c.substring(b + p.length, e));\r
+ },\r
+\r
+ set : function(n, v, e, p, d, s) {\r
+ document.cookie = n + "=" + escape(v) +\r
+ ((e) ? "; expires=" + e.toGMTString() : "") +\r
+ ((p) ? "; path=" + escape(p) : "") +\r
+ ((d) ? "; domain=" + d : "") +\r
+ ((s) ? "; secure" : "");\r
+ },\r
+\r
+ remove : function(n, p) {\r
+ var d = new Date();\r
+\r
+ d.setTime(d.getTime() - 1000);\r
+\r
+ this.set(n, '', d, p, d);\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/util/JSON.js */\r
+\r
+tinymce.create('static tinymce.util.JSON', {\r
+ serialize : function(o) {\r
+ var i, v, s = tinymce.util.JSON.serialize, t;\r
+\r
+ if (o == null)\r
+ return 'null';\r
+\r
+ t = typeof o;\r
+\r
+ if (t == 'string') {\r
+ v = '\bb\tt\nn\ff\rr\""\'\'\\\\';\r
+\r
+ return '"' + o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'])/g, function(a, b) {\r
+ i = v.indexOf(b);\r
+\r
+ if (i + 1)\r
+ return '\\' + v.charAt(i + 1);\r
+\r
+ a = b.charCodeAt().toString(16);\r
+\r
+ return '\\u' + '0000'.substring(a.length) + a;\r
+ }) + '"';\r
+ }\r
+\r
+ if (t == 'object') {\r
+ if (o instanceof Array) {\r
+ for (i=0, v = '['; i<o.length; i++)\r
+ v += (i > 0 ? ',' : '') + s(o[i]);\r
+\r
+ return v + ']';\r
+ }\r
+\r
+ v = '{';\r
+\r
+ for (i in o)\r
+ v += typeof o[i] != 'function' ? (v.length > 1 ? ',"' : '"') + i + '":' + s(o[i]) : '';\r
+\r
+ return v + '}';\r
+ }\r
+\r
+ return '' + o;\r
+ },\r
+\r
+ parse : function(s) {\r
+ try {\r
+ return eval('(' + s + ')');\r
+ } catch (ex) {\r
+ // Ignore\r
+ }\r
+ }\r
+\r
+ });\r
+\r
+/* file:jscripts/tiny_mce/classes/util/XHR.js */\r
+\r
+tinymce.create('static tinymce.util.XHR', {\r
+ send : function(o) {\r
+ var x, t, w = window, c = 0;\r
+\r
+ // Default settings\r
+ o.scope = o.scope || this;\r
+ o.success_scope = o.success_scope || o.scope;\r
+ o.error_scope = o.error_scope || o.scope;\r
+ o.async = o.async === false ? false : true;\r
+ o.data = o.data || '';\r
+\r
+ function get(s) {\r
+ x = 0;\r
+\r
+ try {\r
+ x = new ActiveXObject(s);\r
+ } catch (ex) {\r
+ }\r
+\r
+ return x;\r
+ };\r
+\r
+ x = w.XMLHttpRequest ? new XMLHttpRequest() : get('Microsoft.XMLHTTP') || get('Msxml2.XMLHTTP');\r
+\r
+ if (x) {\r
+ if (x.overrideMimeType)\r
+ x.overrideMimeType(o.content_type);\r
+\r
+ x.open(o.type || (o.data ? 'POST' : 'GET'), o.url, o.async);\r
+\r
+ if (o.content_type)\r
+ x.setRequestHeader('Content-Type', o.content_type);\r
+\r
+ x.send(o.data);\r
+\r
+ // Wait for response, onReadyStateChange can not be used since it leaks memory in IE\r
+ t = w.setInterval(function() {\r
+ if (x.readyState == 4 || c++ > 10000) {\r
+ w.clearInterval(t);\r
+\r
+ if (o.success && c < 10000 && x.status == 200)\r
+ o.success.call(o.success_scope, '' + x.responseText, x, o);\r
+ else if (o.error)\r
+ o.error.call(o.error_scope, c > 10000 ? 'TIMED_OUT' : 'GENERAL', x, o);\r
+\r
+ x = null;\r
+ }\r
+ }, 10);\r
+ }\r
+\r
+ }\r
+});\r
+\r
+/* file:jscripts/tiny_mce/classes/util/JSONRequest.js */\r
+\r
+(function() {\r
+ var extend = tinymce.extend, JSON = tinymce.util.JSON, XHR = tinymce.util.XHR;\r
+\r
+ tinymce.create('tinymce.util.JSONRequest', {\r
+ JSONRequest : function(s) {\r
+ this.settings = extend({\r
+ }, s);\r
+ this.count = 0;\r
+ },\r
+\r
+ send : function(o) {\r
+ var ecb = o.error, scb = o.success;\r
+\r
+ o = extend(this.settings, o);\r
+\r
+ o.success = function(c, x) {\r
+ c = JSON.parse(c);\r
+\r
+ if (typeof(c) == 'undefined') {\r
+ c = {\r
+ error : 'JSON Parse error.'\r
+ };\r
+ }\r
+\r
+ if (c.error)\r
+ ecb.call(o.error_scope || o.scope, c.error, x);\r
+ else\r
+ scb.call(o.success_scope || o.scope, c.result);\r
+ };\r
+\r
+ o.error = function(ty, x) {\r
+ ecb.call(o.error_scope || o.scope, ty, x);\r
+ };\r
+\r
+ o.data = JSON.serialize({\r
+ id : o.id || 'c' + (this.count++),\r
+ method : o.method,\r
+ params : o.params\r
+ });\r
+\r
+ // JSON content type for Ruby on rails. Bug: #1883287\r
+ o.content_type = 'application/json';\r
+\r
+ XHR.send(o);\r
+ },\r
+\r
+ 'static' : {\r
+ sendRPC : function(o) {\r
+ return new tinymce.util.JSONRequest().send(o);\r
+ }\r
+ }\r
+\r
+ });\r
+}());\r
+/* file:jscripts/tiny_mce/classes/dom/DOMUtils.js */\r
+\r
+(function() {\r
+ // Shorten names\r
+ var each = tinymce.each, is = tinymce.is;\r
+ var isWebKit = tinymce.isWebKit, isIE = tinymce.isIE;\r
+\r
+ tinymce.create('tinymce.dom.DOMUtils', {\r
+ doc : null,\r
+ root : null,\r
+ files : null,\r
+ listeners : {},\r
+ pixelStyles : /^(top|left|bottom|right|width|height|borderWidth)$/,\r
+ cache : {},\r
+ idPattern : /^#[\w]+$/,\r
+ elmPattern : /^[\w_*]+$/,\r
+ elmClassPattern : /^([\w_]*)\.([\w_]+)$/,\r
+\r
+ DOMUtils : function(d, s) {\r
+ var t = this;\r
+\r
+ t.doc = d;\r
+ t.files = {};\r
+ t.cssFlicker = false;\r
+ t.counter = 0;\r
+ t.boxModel = !tinymce.isIE || d.compatMode == "CSS1Compat"; \r
+ t.stdMode = d.documentMode === 8;\r
+\r
+ this.settings = s = tinymce.extend({\r
+ keep_values : false,\r
+ hex_colors : 1,\r
+ process_html : 1\r
+ }, s);\r
+\r
+ // Fix IE6SP2 flicker and check it failed for pre SP2\r
+ if (tinymce.isIE6) {\r
+ try {\r
+ d.execCommand('BackgroundImageCache', false, true);\r
+ } catch (e) {\r
+ t.cssFlicker = true;\r
+ }\r
+ }\r
+\r
+ tinymce.addUnload(function() {\r
+ t.doc = t.root = null;\r
+ });\r
+ },\r
+\r
+ getRoot : function() {\r
+ var t = this, s = t.settings;\r
+\r
+ return (s && t.get(s.root_element)) || t.doc.body;\r
+ },\r
+\r
+ getViewPort : function(w) {\r
+ var d, b;\r
+\r
+ w = !w ? window : w;\r
+ d = w.document;\r
+ b = this.boxModel ? d.documentElement : d.body;\r
+\r
+ // Returns viewport size excluding scrollbars\r
+ return {\r
+ x : w.pageXOffset || b.scrollLeft,\r
+ y : w.pageYOffset || b.scrollTop,\r
+ w : w.innerWidth || b.clientWidth,\r
+ h : w.innerHeight || b.clientHeight\r
+ };\r
+ },\r
+\r
+ getRect : function(e) {\r
+ var p, t = this, w, h;\r
+\r
+ e = t.get(e);\r
+ p = t.getPos(e);\r
+ w = t.getStyle(e, 'width');\r
+ h = t.getStyle(e, 'height');\r
+\r
+ // Non pixel value, then force offset/clientWidth\r
+ if (w.indexOf('px') === -1)\r
+ w = 0;\r
+\r
+ // Non pixel value, then force offset/clientWidth\r
+ if (h.indexOf('px') === -1)\r
+ h = 0;\r
+\r
+ return {\r
+ x : p.x,\r
+ y : p.y,\r
+ w : parseInt(w) || e.offsetWidth || e.clientWidth,\r
+ h : parseInt(h) || e.offsetHeight || e.clientHeight\r
+ };\r
+ },\r
+\r
+ getParent : function(n, f, r) {\r
+ var na, se = this.settings;\r
+\r
+ n = this.get(n);\r
+\r
+ if (se.strict_root)\r
+ r = r || this.getRoot();\r
+\r
+ // Wrap node name as func\r
+ if (is(f, 'string')) {\r
+ na = f.toUpperCase();\r
+\r
+ f = function(n) {\r
+ var s = false;\r
+\r
+ // Any element\r
+ if (n.nodeType == 1 && na === '*') {\r
+ s = true;\r
+ return false;\r
+ }\r
+\r
+ each(na.split(','), function(v) {\r
+ if (n.nodeType == 1 && ((se.strict && n.nodeName.toUpperCase() == v) || n.nodeName == v)) {\r
+ s = true;\r
+ return false; // Break loop\r
+ }\r
+ });\r
+\r
+ return s;\r
+ };\r
+ }\r
+\r
+ while (n) {\r
+ if (n == r)\r
+ return null;\r
+\r
+ if (f(n))\r
+ return n;\r
+\r
+ n = n.parentNode;\r
+ }\r
+\r
+ return null;\r
+ },\r
+\r
+ get : function(e) {\r
+ var n;\r
+\r
+ if (typeof(e) == 'string') {\r
+ n = e;\r
+ e = this.doc.getElementById(e);\r
+\r
+ // IE and Opera returns meta elements when they match the specified input ID, but getElementsByName seems to do the trick\r
+ if (e && e.id !== n)\r
+ return this.doc.getElementsByName(n)[1];\r
+ }\r
+\r
+ return e;\r
+ },\r
+\r
+ // #if !jquery\r
+\r
+ select : function(pa, s) {\r
+ var t = this, cs, c, pl, o = [], x, i, l, n;\r
+\r
+ s = t.get(s) || t.doc;\r
+\r
+ // Look for native support and use that if it's found\r
+ if (s.querySelectorAll) {\r
+ // Element scope then use temp id\r
+ // We need to do this to be compatible with other implementations\r
+ // See bug report: http://bugs.webkit.org/show_bug.cgi?id=17461\r
+ if (s != t.doc) {\r
+ i = s.id;\r
+ s.id = '_mc_tmp';\r
+ pa = '#_mc_tmp ' + pa;\r
+ }\r
+\r
+ // Select elements\r
+ l = tinymce.grep(s.querySelectorAll(pa));\r
+\r
+ // Restore old id\r
+ if (i)\r
+ s.id = i;\r
+\r
+ return l;\r
+ }\r
+\r
+ if (t.settings.strict) {\r
+ function get(s, n) {\r
+ return s.getElementsByTagName(n.toLowerCase());\r
+ };\r
+ } else {\r
+ function get(s, n) {\r
+ return s.getElementsByTagName(n);\r
+ };\r
+ }\r
+\r
+ // Simple element pattern. For example: "p" or "*"\r
+ if (t.elmPattern.test(pa)) {\r
+ x = get(s, pa);\r
+\r
+ for (i = 0, l = x.length; i<l; i++)\r
+ o.push(x[i]);\r
+\r
+ return o;\r
+ }\r
+\r
+ // Simple class pattern. For example: "p.class" or ".class"\r
+ if (t.elmClassPattern.test(pa)) {\r
+ pl = t.elmClassPattern.exec(pa);\r
+ x = get(s, pl[1] || '*');\r
+ c = ' ' + pl[2] + ' ';\r
+\r
+ for (i = 0, l = x.length; i<l; i++) {\r
+ n = x[i];\r
+\r
+ if (n.className && (' ' + n.className + ' ').indexOf(c) !== -1)\r
+ o.push(n);\r
+ }\r
+\r
+ return o;\r
+ }\r
+\r
+ function collect(n) {\r
+ if (!n.mce_save) {\r
+ n.mce_save = 1;\r
+ o.push(n);\r
+ }\r
+ };\r
+\r
+ function collectIE(n) {\r
+ if (!n.getAttribute('mce_save')) {\r
+ n.setAttribute('mce_save', '1');\r
+ o.push(n);\r
+ }\r
+ };\r
+\r
+ function find(n, f, r) {\r
+ var i, l, nl = get(r, n);\r
+\r
+ for (i = 0, l = nl.length; i < l; i++)\r
+ f(nl[i]);\r
+ };\r
+\r
+ each(pa.split(','), function(v, i) {\r
+ v = tinymce.trim(v);\r
+\r
+ // Simple element pattern, most common in TinyMCE\r
+ if (t.elmPattern.test(v)) {\r
+ each(get(s, v), function(n) {\r
+ collect(n);\r
+ });\r
+\r
+ return;\r
+ }\r
+\r
+ // Simple element pattern with class, fairly common in TinyMCE\r
+ if (t.elmClassPattern.test(v)) {\r
+ x = t.elmClassPattern.exec(v);\r
+\r
+ each(get(s, x[1]), function(n) {\r
+ if (t.hasClass(n, x[2]))\r
+ collect(n);\r
+ });\r
+\r
+ return;\r
+ }\r
+\r
+ if (!(cs = t.cache[pa])) {\r
+ cs = 'x=(function(cf, s) {';\r
+ pl = v.split(' ');\r
+\r
+ each(pl, function(v) {\r
+ var p = /^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i.exec(v);\r
+\r
+ // Find elements\r
+ p[1] = p[1] || '*';\r
+ cs += 'find("' + p[1] + '", function(n) {';\r
+\r
+ // Check id\r
+ if (p[2])\r
+ cs += 'if (n.id !== "' + p[2] + '") return;';\r
+\r
+ // Check classes\r
+ if (p[3]) {\r
+ cs += 'var c = " " + n.className + " ";';\r
+ cs += 'if (';\r
+ c = '';\r
+ each(p[3].split('.'), function(v) {\r
+ if (v)\r
+ c += (c ? '||' : '') + 'c.indexOf(" ' + v + ' ") === -1';\r
+ });\r
+ cs += c + ') return;';\r
+ }\r
+ });\r
+\r
+ cs += 'cf(n);';\r
+\r
+ for (i = pl.length - 1; i >= 0; i--)\r
+ cs += '}, ' + (i ? 'n' : 's') + ');';\r
+\r
+ cs += '})';\r
+\r
+ // Compile CSS pattern function\r
+ t.cache[pa] = cs = eval(cs);\r
+ }\r
+\r
+ // Run selector function\r
+ cs(isIE ? collectIE : collect, s);\r
+ });\r
+\r
+ // Cleanup\r
+ each(o, function(n) {\r
+ if (isIE)\r
+ n.removeAttribute('mce_save');\r
+ else\r
+ delete n.mce_save;\r
+ });\r
+\r
+ return o;\r
+ },\r
+\r
+ // #endif\r
+\r
+ add : function(p, n, a, h, c) {\r
+ var t = this;\r
+\r
+ return this.run(p, function(p) {\r
+ var e, k;\r
+\r
+ e = is(n, 'string') ? t.doc.createElement(n) : n;\r
+\r
+ if (a) {\r
+ for (k in a) {\r
+ if (a.hasOwnProperty(k) && !is(a[k], 'object'))\r
+ t.setAttrib(e, k, '' + a[k]);\r
+ }\r
+\r
+ if (a.style && !is(a.style, 'string')) {\r
+ each(a.style, function(v, n) {\r
+ t.setStyle(e, n, v);\r
+ });\r
+ }\r
+ }\r
+\r
+ if (h) {\r
+ if (h.nodeType)\r
+ e.appendChild(h);\r
+ else\r
+ t.setHTML(e, h);\r
+ }\r
+\r
+ return !c ? p.appendChild(e) : e;\r
+ });\r
+ },\r
+\r
+ create : function(n, a, h) {\r
+ return this.add(this.doc.createElement(n), n, a, h, 1);\r
+ },\r
+\r
+ createHTML : function(n, a, h) {\r
+ var o = '', t = this, k;\r
+\r
+ o += '<' + n;\r
+\r
+ for (k in a) {\r
+ if (a.hasOwnProperty(k))\r
+ o += ' ' + k + '="' + t.encode(a[k]) + '"';\r
+ }\r
+\r
+ if (tinymce.is(h))\r
+ return o + '>' + h + '</' + n + '>';\r
+\r
+ return o + ' />';\r
+ },\r
+\r
+ remove : function(n, k) {\r
+ return this.run(n, function(n) {\r
+ var p;\r
+\r
+ p = n.parentNode;\r
+\r
+ if (!p)\r
+ return null;\r
+\r
+ if (k) {\r
+ each (n.childNodes, function(c) {\r
+ p.insertBefore(c.cloneNode(true), n);\r
+ });\r
+ }\r
+\r
+ return p.removeChild(n);\r
+ });\r
+ },\r
+\r
+ // #if !jquery\r
+\r
+ setStyle : function(n, na, v) {\r
+ var t = this;\r
+\r
+ return t.run(n, function(e) {\r
+ var s, i;\r
+\r
+ s = e.style;\r
+\r
+ // Camelcase it, if needed\r
+ na = na.replace(/-(\D)/g, function(a, b){\r
+ return b.toUpperCase();\r
+ });\r
+\r
+ // Default px suffix on these\r
+ if (t.pixelStyles.test(na) && (tinymce.is(v, 'number') || /^[\-0-9\.]+$/.test(v)))\r
+ v += 'px';\r
+\r
+ switch (na) {\r
+ case 'opacity':\r
+ // IE specific opacity\r
+ if (isIE) {\r
+ s.filter = v === '' ? '' : "alpha(opacity=" + (v * 100) + ")";\r
+\r
+ if (!n.currentStyle || !n.currentStyle.hasLayout)\r
+ s.display = 'inline-block';\r
+ }\r
+\r
+ // Fix for older browsers\r
+ s[na] = s['-moz-opacity'] = s['-khtml-opacity'] = v || '';\r
+ break;\r
+\r
+ case 'float':\r
+ isIE ? s.styleFloat = v : s.cssFloat = v;\r
+ break;\r
+ \r
+ default:\r
+ s[na] = v || '';\r
+ }\r
+\r
+ // Force update of the style data\r
+ if (t.settings.update_styles)\r
+ t.setAttrib(e, 'mce_style');\r
+ });\r
+ },\r
+\r
+ getStyle : function(n, na, c) {\r
+ n = this.get(n);\r
+\r
+ if (!n)\r
+ return false;\r
+\r
+ // Gecko\r
+ if (this.doc.defaultView && c) {\r
+ // Remove camelcase\r
+ na = na.replace(/[A-Z]/g, function(a){\r
+ return '-' + a;\r
+ });\r
+\r
+ try {\r
+ return this.doc.defaultView.getComputedStyle(n, null).getPropertyValue(na);\r
+ } catch (ex) {\r
+ // Old safari might fail\r
+ return null;\r
+ }\r
+ }\r
+\r
+ // Camelcase it, if needed\r
+ na = na.replace(/-(\D)/g, function(a, b){\r
+ return b.toUpperCase();\r
+ });\r
+\r
+ if (na == 'float')\r
+ na = isIE ? 'styleFloat' : 'cssFloat';\r
+\r
+ // IE & Opera\r
+ if (n.currentStyle && c)\r
+ return n.currentStyle[na];\r
+\r
+ return n.style[na];\r
+ },\r
+\r
+ setStyles : function(e, o) {\r
+ var t = this, s = t.settings, ol;\r
+\r
+ ol = s.update_styles;\r
+ s.update_styles = 0;\r
+\r
+ each(o, function(v, n) {\r
+ t.setStyle(e, n, v);\r
+ });\r
+\r
+ // Update style info\r
+ s.update_styles = ol;\r
+ if (s.update_styles)\r
+ t.setAttrib(e, s.cssText);\r
+ },\r
+\r
+ setAttrib : function(e, n, v) {\r
+ var t = this;\r
+\r
+ // Strict XML mode\r
+ if (t.settings.strict)\r
+ n = n.toLowerCase();\r
+\r
+ return this.run(e, function(e) {\r
+ var s = t.settings;\r
+\r
+ switch (n) {\r
+ case "style":\r
+ if (s.keep_values) {\r
+ if (v)\r
+ e.setAttribute('mce_style', v, 2);\r
+ else\r
+ e.removeAttribute('mce_style', 2);\r
+ }\r
+\r
+ e.style.cssText = v;\r
+ break;\r
+\r
+ case "class":\r
+ e.className = v || ''; // Fix IE null bug\r
+ break;\r
+\r
+ case "src":\r
+ case "href":\r
+ if (s.keep_values) {\r
+ if (s.url_converter)\r
+ v = s.url_converter.call(s.url_converter_scope || t, v, n, e);\r
+\r
+ t.setAttrib(e, 'mce_' + n, v, 2);\r
+ }\r
+\r
+ break;\r
+ }\r
+\r
+ if (is(v) && v !== null && v.length !== 0)\r
+ e.setAttribute(n, '' + v, 2);\r
+ else\r
+ e.removeAttribute(n, 2);\r
+ });\r
+ },\r
+\r
+ setAttribs : function(e, o) {\r
+ var t = this;\r
+\r
+ return this.run(e, function(e) {\r
+ each(o, function(v, n) {\r
+ t.setAttrib(e, n, v);\r
+ });\r
+ });\r
+ },\r
+\r
+ // #endif\r
+\r
+ getAttrib : function(e, n, dv) {\r
+ var v, t = this;\r
+\r
+ e = t.get(e);\r
+\r
+ if (!e)\r
+ return false;\r
+\r
+ if (!is(dv))\r
+ dv = "";\r
+\r
+ // Try the mce variant for these\r
+ if (/^(src|href|style|coords)$/.test(n)) {\r
+ v = e.getAttribute("mce_" + n);\r
+\r
+ if (v)\r
+ return v;\r
+ }\r
+\r
+ v = e.getAttribute(n, 2);\r
+\r
+ if (!v) {\r
+ switch (n) {\r
+ case 'class':\r
+ v = e.className;\r
+ break;\r
+\r
+ default:\r
+ // Fix for IE crash Bug: #1884376 probably due to invalid DOM structure\r
+ if (isIE && n === 'name' && e.nodeName === 'A') {\r
+ v = e.name;\r
+ break;\r
+ }\r
+\r
+ v = e.attributes[n];\r
+ v = v && is(v.nodeValue) ? v.nodeValue : v;\r
+ }\r
+ }\r
+\r
+ switch (n) {\r
+ case 'style':\r
+ v = v || e.style.cssText;\r
+\r
+ if (v) {\r
+ v = t.serializeStyle(t.parseStyle(v));\r
+\r
+ if (t.settings.keep_values)\r
+ e.setAttribute('mce_style', v);\r
+ }\r
+\r
+ break;\r
+ }\r
+\r
+ // Remove Apple and WebKit stuff\r
+ if (isWebKit && n === "class" && v)\r
+ v = v.replace(/(apple|webkit)\-[a-z\-]+/gi, '');\r
+\r
+ // Handle IE issues\r
+ if (isIE) {\r
+ switch (n) {\r
+ case 'rowspan':\r
+ case 'colspan':\r
+ // IE returns 1 as default value\r
+ if (v === 1)\r
+ v = '';\r
+\r
+ break;\r
+\r
+ case 'size':\r
+ // IE returns +0 as default value for size\r
+ if (v === '+0')\r
+ v = '';\r
+\r
+ break;\r
+\r
+ case 'hspace':\r
+ // IE returns -1 as default value\r
+ if (v === -1)\r
+ v = '';\r
+\r
+ break;\r
+\r
+ case 'tabindex':\r
+ // IE returns 32768 as default value\r
+ if (v === 32768)\r
+ v = '';\r
+\r
+ break;\r
+\r
+ case 'shape':\r
+ v = v.toLowerCase();\r
+ break;\r
+\r
+ default:\r
+ // IE has odd anonymous function for event attributes\r
+ if (n.indexOf('on') === 0 && v)\r
+ v = ('' + v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/, '$1');\r
+ }\r
+ }\r
+\r
+ return (v && v != '') ? '' + v : dv;\r
+ },\r
+\r
+ getPos : function(n) {\r
+ var t = this, x = 0, y = 0, e, d = t.doc, r;\r
+\r
+ n = t.get(n);\r
+\r
+ // Use getBoundingClientRect on IE, Opera has it but it's not perfect\r
+ if (n && isIE) {\r
+ n = n.getBoundingClientRect();\r
+ e = t.boxModel ? d.documentElement : d.body;\r
+ x = t.getStyle(t.select('html')[0], 'borderWidth'); // Remove border\r
+ x = (x == 'medium' || t.boxModel && !t.isIE6) && 2 || x;\r
+ n.top += window.self != window.top ? 2 : 0; // IE adds some strange extra cord if used in a frameset\r
+\r
+ return {x : n.left + e.scrollLeft - x, y : n.top + e.scrollTop - x};\r
+ }\r
+\r
+ r = n;\r
+ while (r) {\r
+ x += r.offsetLeft || 0;\r
+ y += r.offsetTop || 0;\r
+ r = r.offsetParent;\r
+ }\r
+\r
+ r = n;\r
+ while (r) {\r
+ // Opera 9.25 bug fix, fixed in 9.50\r
+ if (!/^table-row|inline.*/i.test(t.getStyle(r, "display", 1))) {\r
+ x -= r.scrollLeft || 0;\r
+ y -= r.scrollTop || 0;\r
+ }\r
+\r
+ r = r.parentNode;\r
+\r
+ if (r == d.body)\r
+ break;\r
+ }\r
+\r
+ return {x : x, y : y};\r
+ },\r
+\r
+ parseStyle : function(st) {\r
+ var t = this, s = t.settings, o = {};\r
+\r
+ if (!st)\r
+ return o;\r
+\r
+ function compress(p, s, ot) {\r
+ var t, r, b, l;\r
+\r
+ // Get values and check it it needs compressing\r
+ t = o[p + '-top' + s];\r
+ if (!t)\r
+ return;\r
+\r
+ r = o[p + '-right' + s];\r
+ if (t != r)\r
+ return;\r
+\r
+ b = o[p + '-bottom' + s];\r
+ if (r != b)\r
+ return;\r
+\r
+ l = o[p + '-left' + s];\r
+ if (b != l)\r
+ return;\r
+\r
+ // Compress\r
+ o[ot] = l;\r
+ delete o[p + '-top' + s];\r
+ delete o[p + '-right' + s];\r
+ delete o[p + '-bottom' + s];\r
+ delete o[p + '-left' + s];\r
+ };\r
+\r
+ function compress2(ta, a, b, c) {\r
+ var t;\r
+\r
+ t = o[a];\r
+ if (!t)\r
+ return;\r
+\r
+ t = o[b];\r
+ if (!t)\r
+ return;\r
+\r
+ t = o[c];\r
+ if (!t)\r
+ return;\r
+\r
+ // Compress\r
+ o[ta] = o[a] + ' ' + o[b] + ' ' + o[c];\r
+ delete o[a];\r
+ delete o[b];\r
+ delete o[c];\r
+ };\r
+\r
+ each(st.split(';'), function(v) {\r
+ var sv, ur = [];\r
+\r
+ if (v) {\r
+ v = v.replace(/url\([^\)]+\)/g, function(v) {ur.push(v);return 'url(' + ur.length + ')';});\r
+ v = v.split(':');\r
+ sv = tinymce.trim(v[1]);\r
+ sv = sv.replace(/url\(([^\)]+)\)/g, function(a, b) {return ur[parseInt(b) - 1];});\r
+\r
+ sv = sv.replace(/rgb\([^\)]+\)/g, function(v) {\r
+ return t.toHex(v);\r
+ });\r
+\r
+ if (s.url_converter) {\r
+ sv = sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g, function(x, c) {\r
+ return 'url(' + t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(c), 'style', null)) + ')';\r
+ });\r
+ }\r
+\r
+ o[tinymce.trim(v[0]).toLowerCase()] = sv;\r
+ }\r
+ });\r
+\r
+ compress("border", "", "border");\r
+ compress("border", "-width", "border-width");\r
+ compress("border", "-color", "border-color");\r
+ compress("border", "-style", "border-style");\r
+ compress("padding", "", "padding");\r
+ compress("margin", "", "margin");\r
+ compress2('border', 'border-width', 'border-style', 'border-color');\r
+\r
+ if (isIE) {\r
+ // Remove pointless border\r
+ if (o.border == 'medium none')\r
+ o.border = '';\r
+ }\r
+\r
+ return o;\r
+ },\r
+\r
+ serializeStyle : function(o) {\r
+ var s = '';\r
+\r
+ each(o, function(v, k) {\r
+ if (k && v) {\r
+ switch (k) {\r
+ case 'color':\r
+ case 'background-color':\r
+ v = v.toLowerCase();\r
+ break;\r
+ }\r
+\r
+ s += (s ? ' ' : '') + k + ': ' + v + ';';\r
+ }\r
+ });\r
+\r
+ return s;\r
+ },\r
+\r
+ loadCSS : function(u) {\r
+ var t = this, d = this.doc;\r
+\r
+ if (!u)\r
+ u = '';\r
+\r
+ each(u.split(','), function(u) {\r
+ if (t.files[u])\r
+ return;\r
+\r
+ t.files[u] = true;\r
+ t.add(t.select('head')[0], 'link', {rel : 'stylesheet', href : u});\r
+ });\r
+ },\r
+\r
+ // #if !jquery\r
+\r
+ addClass : function(e, c) {\r
+ return this.run(e, function(e) {\r
+ var o;\r
+\r
+ if (!c)\r
+ return 0;\r
+\r
+ if (this.hasClass(e, c))\r
+ return e.className;\r
+\r
+ o = this.removeClass(e, c);\r
+\r
+ return e.className = (o != '' ? (o + ' ') : '') + c;\r
+ });\r
+ },\r
+\r
+ removeClass : function(e, c) {\r
+ var t = this, re;\r
+\r
+ return t.run(e, function(e) {\r
+ var v;\r
+\r
+ if (t.hasClass(e, c)) {\r
+ if (!re)\r
+ re = new RegExp("(^|\\s+)" + c + "(\\s+|$)", "g");\r
+\r
+ v = e.className.replace(re, ' ');\r
+\r
+ return e.className = tinymce.trim(v != ' ' ? v : '');\r
+ }\r
+\r
+ return e.className;\r
+ });\r
+ },\r
+\r
+ hasClass : function(n, c) {\r
+ n = this.get(n);\r
+\r
+ if (!n || !c)\r
+ return false;\r
+\r
+ return (' ' + n.className + ' ').indexOf(' ' + c + ' ') !== -1;\r
+ },\r
+\r
+ show : function(e) {\r
+ return this.setStyle(e, 'display', 'block');\r
+ },\r
+\r
+ hide : function(e) {\r
+ return this.setStyle(e, 'display', 'none');\r
+ },\r
+\r
+ isHidden : function(e) {\r
+ e = this.get(e);\r
+\r
+ return e.style.display == 'none' || this.getStyle(e, 'display') == 'none';\r
+ },\r
+\r
+ // #endif\r
+\r
+ uniqueId : function(p) {\r
+ return (!p ? 'mce_' : p) + (this.counter++);\r
+ },\r
+\r
+ setHTML : function(e, h) {\r
+ var t = this;\r
+\r
+ return this.run(e, function(e) {\r
+ var x, i, nl, n, p, x;\r
+\r
+ h = t.processHTML(h);\r
+\r
+ if (isIE) {\r
+ function set() {\r
+ try {\r
+ // IE will remove comments from the beginning\r
+ // unless you padd the contents with something\r
+ e.innerHTML = '<br />' + h;\r
+ e.removeChild(e.firstChild);\r
+ } catch (ex) {\r
+ // IE sometimes produces an unknown runtime error on innerHTML if it's an block element within a block element for example a div inside a p\r
+ // This seems to fix this problem\r
+\r
+ // Remove all child nodes\r
+ while (e.firstChild)\r
+ e.firstChild.removeNode();\r
+\r
+ // Create new div with HTML contents and a BR infront to keep comments\r
+ x = t.create('div');\r
+ x.innerHTML = '<br />' + h;\r
+\r
+ // Add all children from div to target\r
+ each (x.childNodes, function(n, i) {\r
+ // Skip br element\r
+ if (i)\r
+ e.appendChild(n);\r
+ });\r
+ }\r
+ };\r
+\r
+ // IE has a serious bug when it comes to paragraphs it can produce an invalid\r
+ // DOM tree if contents like this <p><ul><li>Item 1</li></ul></p> is inserted\r
+ // It seems to be that IE doesn't like a root block element placed inside another root block element\r
+ if (t.settings.fix_ie_paragraphs)\r
+ h = h.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi, '<p$1 mce_keep="true"> </p>');\r
+\r
+ set();\r
+\r
+ if (t.settings.fix_ie_paragraphs) {\r
+ // Check for odd paragraphs this is a sign of a broken DOM\r
+ nl = e.getElementsByTagName("p");\r
+ for (i = nl.length - 1, x = 0; i >= 0; i--) {\r
+ n = nl[i];\r
+\r
+ if (!n.hasChildNodes()) {\r
+ if (!n.mce_keep) {\r
+ x = 1; // Is broken\r
+ break;\r
+ }\r
+\r
+ n.removeAttribute('mce_keep');\r
+ }\r
+ }\r
+ }\r
+\r
+ // Time to fix the madness IE left us\r
+ if (x) {\r
+ // So if we replace the p elements with divs and mark them and then replace them back to paragraphs\r
+ // after we use innerHTML we can fix the DOM tree\r
+ h = h.replace(/<p([^>]+)>|<p>/g, '<div$1 mce_tmp="1">');\r
+ h = h.replace(/<\/p>/g, '</div>');\r
+\r
+ // Set the new HTML with DIVs\r
+ set();\r
+\r
+ // Replace all DIV elements with he mce_tmp attibute back to paragraphs\r
+ // This is needed since IE has a annoying bug see above for details\r
+ // This is a slow process but it has to be done. :(\r
+ if (t.settings.fix_ie_paragraphs) {\r
+ nl = e.getElementsByTagName("DIV");\r
+ for (i = nl.length - 1; i >= 0; i--) {\r
+ n = nl[i];\r
+\r
+ // Is it a temp div\r
+ if (n.mce_tmp) {\r
+ // Create new paragraph\r
+ p = t.doc.createElement('p');\r
+\r
+ // Copy all attributes\r
+ n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi, function(a, b) {\r
+ var v;\r
+\r
+ if (b !== 'mce_tmp') {\r
+ v = n.getAttribute(b);\r
+\r
+ if (!v && b === 'class')\r
+ v = n.className;\r
+\r
+ p.setAttribute(b, v);\r
+ }\r
+ });\r
+\r
+ // Append all children to new paragraph\r
+ for (x = 0; x<n.childNodes.length; x++)\r
+ p.appendChild(n.childNodes[x].cloneNode(true));\r
+\r
+ // Replace div with new paragraph\r
+ n.swapNode(p);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ } else\r
+ e.innerHTML = h;\r
+\r
+ return h;\r
+ });\r
+ },\r
+\r
+ processHTML : function(h) {\r
+ var t = this, s = t.settings;\r
+\r
+ if (!s.process_html)\r
+ return h;\r
+\r
+ // Convert strong and em to b and i in FF since it can't handle them\r
+ if (tinymce.isGecko) {\r
+ h = h.replace(/<(\/?)strong>|<strong( [^>]+)>/gi, '<$1b$2>');\r
+ h = h.replace(/<(\/?)em>|<em( [^>]+)>/gi, '<$1i$2>');\r
+ }\r
+\r
+ // Fix some issues\r
+ h = h.replace(/<a( )([^>]+)\/>|<a\/>/gi, '<a$1$2></a>'); // Force open\r
+\r
+ // Store away src and href in mce_src and mce_href since browsers mess them up\r
+ if (s.keep_values) {\r
+ // Wrap scripts in comments for serialization purposes\r
+ if (h.indexOf('<script') !== -1) {\r
+ h = h.replace(/<script>/g, '<script type="text/javascript">');\r
+ h = h.replace(/<script(|[^>]+)>(\s*<!--|\/\/\s*<\[CDATA\[)?[\r\n]*/g, '<mce:script$1><!--\n');\r
+ h = h.replace(/\s*(\/\/\s*-->|\/\/\s*]]>)?<\/script>/g, '\n// --></mce:script>');\r
+ h = h.replace(/<mce:script(|[^>]+)><!--\n\/\/ --><\/mce:script>/g, '<mce:script$1></mce:script>');\r
+ }\r
+\r
+ // Process all tags with src, href or style\r
+ h = h.replace(/<([\w:]+) [^>]*(src|href|style|coords)[^>]*>/gi, function(a, n) {\r
+ function handle(m, b, c) {\r
+ var u = c;\r
+\r
+ // Tag already got a mce_ version\r
+ if (a.indexOf('mce_' + b) != -1)\r
+ return m;\r
+\r
+ if (b == 'style') {\r
+ // Why did I need this one?\r
+ //if (isIE)\r
+ // u = t.serializeStyle(t.parseStyle(u));\r
+\r
+ if (s.hex_colors) {\r
+ u = u.replace(/rgb\([^\)]+\)/g, function(v) {\r
+ return t.toHex(v);\r
+ });\r
+ }\r
+\r
+ if (s.url_converter) {\r
+ u = u.replace(/url\([\'\"]?([^\)\'\"]+)\)/g, function(x, c) {\r
+ return 'url(' + t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(c), b, n)) + ')';\r
+ });\r
+ }\r
+ } else if (b != 'coords') {\r
+ if (s.url_converter)\r
+ u = t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(c), b, n));\r
+ }\r
+\r
+ return ' ' + b + '="' + c + '" mce_' + b + '="' + u + '"';\r
+ };\r
+\r
+ a = a.replace(/ (src|href|style|coords)=[\"]([^\"]+)[\"]/gi, handle); // W3C\r
+ a = a.replace(/ (src|href|style|coords)=[\']([^\']+)[\']/gi, handle); // W3C\r
+\r
+ return a.replace(/ (src|href|style|coords)=([^\s\"\'>]+)/gi, handle); // IE\r
+ });\r
+ }\r
+\r
+ return h;\r
+ },\r
+\r
+ getOuterHTML : function(e) {\r
+ var d;\r
+\r
+ e = this.get(e);\r
+\r
+ if (!e)\r
+ return null;\r
+\r
+ if (isIE)\r
+ return e.outerHTML;\r
+\r
+ d = (e.ownerDocument || this.doc).createElement("body");\r
+ d.appendChild(e.cloneNode(true));\r
+\r
+ return d.innerHTML;\r
+ },\r
+\r
+ setOuterHTML : function(e, h, d) {\r
+ var t = this;\r
+\r
+ return this.run(e, function(e) {\r
+ var n, tp;\r
+\r
+ e = t.get(e);\r
+ d = d || e.ownerDocument || t.doc;\r
+\r
+ if (isIE && e.nodeType == 1)\r
+ e.outerHTML = h;\r
+ else {\r
+ tp = d.createElement("body");\r
+ tp.innerHTML = h;\r
+\r
+ n = tp.lastChild;\r
+ while (n) {\r
+ t.insertAfter(n.cloneNode(true), e);\r
+ n = n.previousSibling;\r
+ }\r
+\r
+ t.remove(e);\r
+ }\r
+ });\r
+ },\r
+\r
+ decode : function(s) {\r
+ var e;\r
+\r
+ // Look for entities to decode\r
+ if (/&[^;]+;/.test(s)) {\r
+ // Decode the entities using a div element not super efficient but less code\r
+ e = this.doc.createElement("div");\r
+ e.innerHTML = s;\r
+\r
+ return !e.firstChild ? s : e.firstChild.nodeValue;\r
+ }\r
+\r
+ return s;\r
+ },\r
+\r
+ encode : function(s) {\r
+ return s ? ('' + s).replace(/[<>&\"]/g, function (c, b) {\r
+ switch (c) {\r
+ case '&':\r
+ return '&';\r
+\r
+ case '"':\r
+ return '"';\r
+\r
+ case '<':\r
+ return '<';\r
+\r
+ case '>':\r
+ return '>';\r
+ }\r
+\r
+ return c;\r
+ }) : s;\r
+ },\r
+\r
+ // #if !jquery\r
+\r
+ insertAfter : function(n, r) {\r
+ var t = this;\r
+\r
+ r = t.get(r);\r
+\r
+ return this.run(n, function(n) {\r
+ var p, ns;\r
+\r
+ p = r.parentNode;\r
+ ns = r.nextSibling;\r
+\r
+ if (ns)\r
+ p.insertBefore(n, ns);\r
+ else\r
+ p.appendChild(n);\r
+\r
+ return n;\r
+ });\r
+ },\r
+\r
+ // #endif\r
+\r
+ isBlock : function(n) {\r
+ if (n.nodeType && n.nodeType !== 1)\r
+ return false;\r
+\r
+ n = n.nodeName || n;\r
+\r
+ return /^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);\r
+ },\r
+\r
+ // #if !jquery\r
+\r
+ replace : function(n, o, k) {\r
+ if (is(o, 'array'))\r
+ n = n.cloneNode(true);\r
+\r
+ return this.run(o, function(o) {\r
+ if (k) {\r
+ each(o.childNodes, function(c) {\r
+ n.appendChild(c.cloneNode(true));\r
+ });\r
+ }\r
+\r
+ return o.parentNode.replaceChild(n, o);\r
+ });\r
+ },\r
+\r
+ // #endif\r
+\r
+ toHex : function(s) {\r
+ var c = /^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);\r
+\r
+ function hex(s) {\r
+ s = parseInt(s).toString(16);\r
+\r
+ return s.length > 1 ? s : '0' + s; // 0 -> 00\r
+ };\r
+\r
+ if (c) {\r
+ s = '#' + hex(c[1]) + hex(c[2]) + hex(c[3]);\r
+\r
+ return s;\r
+ }\r
+\r
+ return s;\r
+ },\r
+\r
+ getClasses : function() {\r
+ var t = this, cl = [], i, lo = {}, f = t.settings.class_filter, ov;\r
+\r
+ if (t.classes)\r
+ return t.classes;\r
+\r
+ function addClasses(s) {\r
+ // IE style imports\r
+ each(s.imports, function(r) {\r
+ addClasses(r);\r
+ });\r
+\r
+ each(s.cssRules || s.rules, function(r) {\r
+ // Real type or fake it on IE\r
+ switch (r.type || 1) {\r
+ // Rule\r
+ case 1:\r
+ if (r.selectorText) {\r
+ each(r.selectorText.split(','), function(v) {\r
+ v = v.replace(/^\s*|\s*$|^\s\./g, "");\r
+\r
+ // Is internal or it doesn't contain a class\r
+ if (/\.mce/.test(v) || !/\.[\w\-]+$/.test(v))\r
+ return;\r
+\r
+ // Remove everything but class name\r
+ ov = v;\r
+ v = v.replace(/.*\.([a-z0-9_\-]+).*/i, '$1');\r
+\r
+ // Filter classes\r
+ if (f && !(v = f(v, ov)))\r
+ return;\r
+\r
+ if (!lo[v]) {\r
+ cl.push({'class' : v});\r
+ lo[v] = 1;\r
+ }\r
+ });\r
+ }\r
+ break;\r
+\r
+ // Import\r
+ case 3:\r
+ addClasses(r.styleSheet);\r
+ break;\r
+ }\r
+ });\r
+ };\r
+\r
+ try {\r
+ each(t.doc.styleSheets, addClasses);\r
+ } catch (ex) {\r
+ // Ignore\r
+ }\r
+\r
+ if (cl.length > 0)\r
+ t.classes = cl;\r
+\r
+ return cl;\r
+ },\r
+\r
+ run : function(e, f, s) {\r
+ var t = this, o;\r
+\r
+ if (typeof(e) === 'string')\r
+ e = t.doc.getElementById(e);\r
+\r
+ if (!e)\r
+ return false;\r
+\r
+ s = s || this;\r
+ if (!e.nodeType && (e.length || e.length === 0)) {\r
+ o = [];\r
+\r
+ each(e, function(e, i) {\r
+ if (e) {\r
+ if (typeof(e) == 'string')\r
+ e = t.doc.getElementById(e);\r
+\r
+ o.push(f.call(s, e, i));\r
+ }\r
+ });\r
+\r
+ return o;\r
+ }\r
+\r
+ return f.call(s, e);\r
+ }\r
+\r
+ /*\r
+ walk : function(n, f, s) {\r
+ var d = this.doc, w;\r
+\r
+ if (d.createTreeWalker) {\r
+ w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);\r
+\r
+ while ((n = w.nextNode()) != null)\r
+ f.call(s || this, n);\r
+ } else\r
+ tinymce.walk(n, f, 'childNodes', s);\r
+ }\r
+ */\r
+\r
+ /*\r
+ toRGB : function(s) {\r
+ var c = /^\s*?#([0-9A-F]{2})([0-9A-F]{1,2})([0-9A-F]{2})?\s*?$/.exec(s);\r
+\r
+ if (c) {\r
+ // #FFF -> #FFFFFF\r
+ if (!is(c[3]))\r
+ c[3] = c[2] = c[1];\r
+\r
+ return "rgb(" + parseInt(c[1], 16) + "," + parseInt(c[2], 16) + "," + parseInt(c[3], 16) + ")";\r
+ }\r
+\r
+ return s;\r
+ }\r
+ */\r
+\r
+ });\r
+\r
+ // Setup page DOM\r
+ tinymce.DOM = new tinymce.dom.DOMUtils(document, {process_html : 0});\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/dom/Event.js */\r
+\r
+(function() {\r
+ // Shorten names\r
+ var each = tinymce.each, DOM = tinymce.DOM, isIE = tinymce.isIE, isWebKit = tinymce.isWebKit, Event;\r
+\r
+ tinymce.create('static tinymce.dom.Event', {\r
+ inits : [],\r
+ events : [],\r
+\r
+ // #if !jquery\r
+\r
+ add : function(o, n, f, s) {\r
+ var cb, t = this, el = t.events, r;\r
+\r
+ // Handle array\r
+ if (o && o instanceof Array) {\r
+ r = [];\r
+\r
+ each(o, function(o) {\r
+ o = DOM.get(o);\r
+ r.push(t.add(o, n, f, s));\r
+ });\r
+\r
+ return r;\r
+ }\r
+\r
+ o = DOM.get(o);\r
+\r
+ if (!o)\r
+ return;\r
+\r
+ // Setup event callback\r
+ cb = function(e) {\r
+ e = e || window.event;\r
+\r
+ // Patch in target in IE it's W3C valid\r
+ if (e && !e.target && isIE)\r
+ e.target = e.srcElement;\r
+\r
+ if (!s)\r
+ return f(e);\r
+\r
+ return f.call(s, e);\r
+ };\r
+\r
+ if (n == 'unload') {\r
+ tinymce.unloads.unshift({func : cb});\r
+ return cb;\r
+ }\r
+\r
+ if (n == 'init') {\r
+ if (t.domLoaded)\r
+ cb();\r
+ else\r
+ t.inits.push(cb);\r
+\r
+ return cb;\r
+ }\r
+\r
+ // Store away listener reference\r
+ el.push({\r
+ obj : o,\r
+ name : n,\r
+ func : f,\r
+ cfunc : cb,\r
+ scope : s\r
+ });\r
+\r
+ t._add(o, n, cb);\r
+\r
+ return f;\r
+ },\r
+\r
+ remove : function(o, n, f) {\r
+ var t = this, a = t.events, s = false, r;\r
+\r
+ // Handle array\r
+ if (o && o instanceof Array) {\r
+ r = [];\r
+\r
+ each(o, function(o) {\r
+ o = DOM.get(o);\r
+ r.push(t.remove(o, n, f));\r
+ });\r
+\r
+ return r;\r
+ }\r
+\r
+ o = DOM.get(o);\r
+\r
+ each(a, function(e, i) {\r
+ if (e.obj == o && e.name == n && (!f || (e.func == f || e.cfunc == f))) {\r
+ a.splice(i, 1);\r
+ t._remove(o, n, e.cfunc);\r
+ s = true;\r
+ return false;\r
+ }\r
+ });\r
+\r
+ return s;\r
+ },\r
+\r
+ // #endif\r
+\r
+ cancel : function(e) {\r
+ if (!e)\r
+ return false;\r
+\r
+ this.stop(e);\r
+ return this.prevent(e);\r
+ },\r
+\r
+ stop : function(e) {\r
+ if (e.stopPropagation)\r
+ e.stopPropagation();\r
+ else\r
+ e.cancelBubble = true;\r
+\r
+ return false;\r
+ },\r
+\r
+ prevent : function(e) {\r
+ if (e.preventDefault)\r
+ e.preventDefault();\r
+ else\r
+ e.returnValue = false;\r
+\r
+ return false;\r
+ },\r
+\r
+ _unload : function() {\r
+ var t = Event;\r
+\r
+ each(t.events, function(e, i) {\r
+ t._remove(e.obj, e.name, e.cfunc);\r
+ e.obj = e.cfunc = null;\r
+ });\r
+\r
+ t.events = [];\r
+ t = null;\r
+ },\r
+\r
+ _add : function(o, n, f) {\r
+ if (o.attachEvent)\r
+ o.attachEvent('on' + n, f);\r
+ else if (o.addEventListener)\r
+ o.addEventListener(n, f, false);\r
+ else\r
+ o['on' + n] = f;\r
+ },\r
+\r
+ _remove : function(o, n, f) {\r
+ if (o.detachEvent)\r
+ o.detachEvent('on' + n, f);\r
+ else if (o.removeEventListener)\r
+ o.removeEventListener(n, f, false);\r
+ else\r
+ o['on' + n] = null;\r
+ },\r
+\r
+ _pageInit : function() {\r
+ var e = Event;\r
+\r
+ e._remove(window, 'DOMContentLoaded', e._pageInit);\r
+ e.domLoaded = true;\r
+\r
+ each(e.inits, function(c) {\r
+ c();\r
+ });\r
+\r
+ e.inits = [];\r
+ },\r
+\r
+ _wait : function() {\r
+ var t;\r
+\r
+ // No need since the document is already loaded\r
+ if (window.tinyMCE_GZ && tinyMCE_GZ.loaded)\r
+ return;\r
+\r
+ if (isIE && document.location.protocol != 'https:') {\r
+ // Fake DOMContentLoaded on IE\r
+ document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');\r
+ DOM.get("__ie_onload").onreadystatechange = function() {\r
+ if (this.readyState == "complete") {\r
+ Event._pageInit();\r
+ DOM.get("__ie_onload").onreadystatechange = null; // Prevent leak\r
+ }\r
+ };\r
+ } else {\r
+ Event._add(window, 'DOMContentLoaded', Event._pageInit, Event);\r
+\r
+ if (isIE || isWebKit) {\r
+ t = setInterval(function() {\r
+ if (/loaded|complete/.test(document.readyState)) {\r
+ clearInterval(t);\r
+ Event._pageInit();\r
+ }\r
+ }, 10);\r
+ }\r
+ }\r
+ }\r
+\r
+ });\r
+\r
+ // Shorten name\r
+ Event = tinymce.dom.Event;\r
+\r
+ // Dispatch DOM content loaded event for IE and Safari\r
+ Event._wait();\r
+ tinymce.addUnload(Event._unload);\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/dom/Element.js */\r
+\r
+(function() {\r
+ var each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.dom.Element', {\r
+ Element : function(id, s) {\r
+ var t = this, dom, el;\r
+\r
+ s = s || {};\r
+ t.id = id;\r
+ t.dom = dom = s.dom || tinymce.DOM;\r
+ t.settings = s;\r
+\r
+ // Only IE leaks DOM references, this is a lot faster\r
+ if (!tinymce.isIE)\r
+ el = t.dom.get(t.id);\r
+\r
+ each([\r
+ 'getPos',\r
+ 'getRect',\r
+ 'getParent',\r
+ 'add',\r
+ 'setStyle',\r
+ 'getStyle',\r
+ 'setStyles',\r
+ 'setAttrib',\r
+ 'setAttribs',\r
+ 'getAttrib',\r
+ 'addClass',\r
+ 'removeClass',\r
+ 'hasClass',\r
+ 'getOuterHTML',\r
+ 'setOuterHTML',\r
+ 'remove',\r
+ 'show',\r
+ 'hide',\r
+ 'isHidden',\r
+ 'setHTML',\r
+ 'get'\r
+ ], function(k) {\r
+ t[k] = function() {\r
+ var a = arguments, o;\r
+\r
+ // Opera fails\r
+ if (tinymce.isOpera) {\r
+ a = [id];\r
+\r
+ each(arguments, function(v) {\r
+ a.push(v);\r
+ });\r
+ } else\r
+ Array.prototype.unshift.call(a, el || id);\r
+\r
+ o = dom[k].apply(dom, a);\r
+ t.update(k);\r
+\r
+ return o;\r
+ };\r
+ });\r
+ },\r
+\r
+ on : function(n, f, s) {\r
+ return tinymce.dom.Event.add(this.id, n, f, s);\r
+ },\r
+\r
+ getXY : function() {\r
+ return {\r
+ x : parseInt(this.getStyle('left')),\r
+ y : parseInt(this.getStyle('top'))\r
+ };\r
+ },\r
+\r
+ getSize : function() {\r
+ var n = this.dom.get(this.id);\r
+\r
+ return {\r
+ w : parseInt(this.getStyle('width') || n.clientWidth),\r
+ h : parseInt(this.getStyle('height') || n.clientHeight)\r
+ };\r
+ },\r
+\r
+ moveTo : function(x, y) {\r
+ this.setStyles({left : x, top : y});\r
+ },\r
+\r
+ moveBy : function(x, y) {\r
+ var p = this.getXY();\r
+\r
+ this.moveTo(p.x + x, p.y + y);\r
+ },\r
+\r
+ resizeTo : function(w, h) {\r
+ this.setStyles({width : w, height : h});\r
+ },\r
+\r
+ resizeBy : function(w, h) {\r
+ var s = this.getSize();\r
+\r
+ this.resizeTo(s.w + w, s.h + h);\r
+ },\r
+\r
+ update : function(k) {\r
+ var t = this, b, dom = t.dom;\r
+\r
+ if (tinymce.isIE6 && t.settings.blocker) {\r
+ k = k || '';\r
+\r
+ // Ignore getters\r
+ if (k.indexOf('get') === 0 || k.indexOf('has') === 0 || k.indexOf('is') === 0)\r
+ return;\r
+\r
+ // Remove blocker on remove\r
+ if (k == 'remove') {\r
+ dom.remove(t.blocker);\r
+ return;\r
+ }\r
+\r
+ if (!t.blocker) {\r
+ t.blocker = dom.uniqueId();\r
+ b = dom.add(t.settings.container || dom.getRoot(), 'iframe', {id : t.blocker, style : 'position:absolute;', frameBorder : 0, src : 'javascript:""'});\r
+ dom.setStyle(b, 'opacity', 0);\r
+ } else\r
+ b = dom.get(t.blocker);\r
+\r
+ dom.setStyle(b, 'left', t.getStyle('left', 1));\r
+ dom.setStyle(b, 'top', t.getStyle('top', 1));\r
+ dom.setStyle(b, 'width', t.getStyle('width', 1));\r
+ dom.setStyle(b, 'height', t.getStyle('height', 1));\r
+ dom.setStyle(b, 'display', t.getStyle('display', 1));\r
+ dom.setStyle(b, 'zIndex', parseInt(t.getStyle('zIndex', 1) || 0) - 1);\r
+ }\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/dom/Selection.js */\r
+\r
+(function() {\r
+ // Shorten names\r
+ var is = tinymce.is, isIE = tinymce.isIE, each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.dom.Selection', {\r
+ Selection : function(dom, win, serializer) {\r
+ var t = this;\r
+\r
+ t.dom = dom;\r
+ t.win = win;\r
+ t.serializer = serializer;\r
+\r
+ // Prevent leaks\r
+ tinymce.addUnload(function() {\r
+ t.win = null;\r
+ });\r
+ },\r
+\r
+ getContent : function(s) {\r
+ var t = this, r = t.getRng(), e = t.dom.create("body"), se = t.getSel(), wb, wa, n;\r
+\r
+ s = s || {};\r
+ wb = wa = '';\r
+ s.get = true;\r
+ s.format = s.format || 'html';\r
+\r
+ if (s.format == 'text')\r
+ return t.isCollapsed() ? '' : (r.text || (se.toString ? se.toString() : ''));\r
+\r
+ if (r.cloneContents) {\r
+ n = r.cloneContents();\r
+\r
+ if (n)\r
+ e.appendChild(n);\r
+ } else if (is(r.item) || is(r.htmlText))\r
+ e.innerHTML = r.item ? r.item(0).outerHTML : r.htmlText;\r
+ else\r
+ e.innerHTML = r.toString();\r
+\r
+ // Keep whitespace before and after\r
+ if (/^\s/.test(e.innerHTML))\r
+ wb = ' ';\r
+\r
+ if (/\s+$/.test(e.innerHTML))\r
+ wa = ' ';\r
+\r
+ s.getInner = true;\r
+\r
+ return t.isCollapsed() ? '' : wb + t.serializer.serialize(e, s) + wa;\r
+ },\r
+\r
+ setContent : function(h, s) {\r
+ var t = this, r = t.getRng(), d;\r
+\r
+ s = s || {format : 'html'};\r
+ s.set = true;\r
+ h = t.dom.processHTML(h);\r
+\r
+ if (r.insertNode) {\r
+ d = t.win.document;\r
+\r
+ // Gecko has a bug where if you insert using InsertHTML it will insert a space instead\r
+ // So we simply check if the input is HTML or text and then insert text using the insertNode method\r
+ if (tinymce.isGecko && h.indexOf('<') == -1) {\r
+ r.deleteContents();\r
+ r.insertNode(t.getRng().createContextualFragment(h + '<span id="__caret">_</span>'));\r
+ t.select(t.dom.get('__caret'));\r
+ t.getRng().deleteContents();\r
+ return;\r
+ }\r
+\r
+ // Use insert HTML if it exists (places cursor after content)\r
+ try {\r
+ // This might fail with an exception see bug #1893736\r
+ if (d.queryCommandEnabled('InsertHTML'))\r
+ return d.execCommand('InsertHTML', false, h);\r
+ } catch (ex) {\r
+ // Use old school method\r
+ r.deleteContents();\r
+ r.insertNode(t.getRng().createContextualFragment(h));\r
+ }\r
+ } else {\r
+ if (r.item)\r
+ r.item(0).outerHTML = h;\r
+ else\r
+ r.pasteHTML(h);\r
+ }\r
+ },\r
+\r
+ getStart : function() {\r
+ var t = this, r = t.getRng(), e;\r
+\r
+ if (isIE) {\r
+ if (r.item)\r
+ return r.item(0);\r
+\r
+ r = r.duplicate();\r
+ r.collapse(1);\r
+ e = r.parentElement();\r
+\r
+ if (e.nodeName == 'BODY')\r
+ return e.firstChild;\r
+\r
+ return e;\r
+ } else {\r
+ e = r.startContainer;\r
+\r
+ if (e.nodeName == 'BODY')\r
+ return e.firstChild;\r
+\r
+ return t.dom.getParent(e, function(n) {return n.nodeType == 1;});\r
+ }\r
+ },\r
+\r
+ getEnd : function() {\r
+ var t = this, r = t.getRng(), e;\r
+\r
+ if (isIE) {\r
+ if (r.item)\r
+ return r.item(0);\r
+\r
+ r = r.duplicate();\r
+ r.collapse(0);\r
+ e = r.parentElement();\r
+\r
+ if (e.nodeName == 'BODY')\r
+ return e.lastChild;\r
+\r
+ return e;\r
+ } else {\r
+ e = r.endContainer;\r
+\r
+ if (e.nodeName == 'BODY')\r
+ return e.lastChild;\r
+\r
+ return t.dom.getParent(e, function(n) {return n.nodeType == 1;});\r
+ }\r
+ },\r
+\r
+ getBookmark : function(si) {\r
+ var t = this, r = t.getRng(), tr, sx, sy, vp = t.dom.getViewPort(t.win), e, sp, bp, le, c = -0xFFFFFF, s, ro = t.dom.getRoot(), wb = 0, wa = 0, nv;\r
+ sx = vp.x;\r
+ sy = vp.y;\r
+\r
+ // Simple bookmark fast but not as persistent\r
+ if (si == 'simple')\r
+ return {rng : r, scrollX : sx, scrollY : sy};\r
+\r
+ // Handle IE\r
+ if (isIE) {\r
+ // Control selection\r
+ if (r.item) {\r
+ e = r.item(0);\r
+\r
+ each(t.dom.select(e.nodeName), function(n, i) {\r
+ if (e == n) {\r
+ sp = i;\r
+ return false;\r
+ }\r
+ });\r
+\r
+ return {\r
+ tag : e.nodeName,\r
+ index : sp,\r
+ scrollX : sx,\r
+ scrollY : sy\r
+ };\r
+ }\r
+\r
+ // Text selection\r
+ tr = t.dom.doc.body.createTextRange();\r
+ tr.moveToElementText(ro);\r
+ tr.collapse(true);\r
+ bp = Math.abs(tr.move('character', c));\r
+\r
+ tr = r.duplicate();\r
+ tr.collapse(true);\r
+ sp = Math.abs(tr.move('character', c));\r
+\r
+ tr = r.duplicate();\r
+ tr.collapse(false);\r
+ le = Math.abs(tr.move('character', c)) - sp;\r
+\r
+ return {\r
+ start : sp - bp,\r
+ length : le,\r
+ scrollX : sx,\r
+ scrollY : sy\r
+ };\r
+ }\r
+\r
+ // Handle W3C\r
+ e = t.getNode();\r
+ s = t.getSel();\r
+\r
+ if (!s)\r
+ return null;\r
+\r
+ // Image selection\r
+ if (e && e.nodeName == 'IMG') {\r
+ return {\r
+ scrollX : sx,\r
+ scrollY : sy\r
+ };\r
+ }\r
+\r
+ // Text selection\r
+\r
+ function getPos(r, sn, en) {\r
+ var w = t.dom.doc.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, false), n, p = 0, d = {};\r
+\r
+ while ((n = w.nextNode()) != null) {\r
+ if (n == sn)\r
+ d.start = p;\r
+\r
+ if (n == en) {\r
+ d.end = p;\r
+ return d;\r
+ }\r
+\r
+ p += tinymce.trim(n.nodeValue || '').length;\r
+ }\r
+\r
+ return null;\r
+ };\r
+\r
+ // Caret or selection\r
+ if (s.anchorNode == s.focusNode && s.anchorOffset == s.focusOffset) {\r
+ e = getPos(ro, s.anchorNode, s.focusNode);\r
+\r
+ if (!e)\r
+ return {scrollX : sx, scrollY : sy};\r
+\r
+ // Count whitespace before\r
+ (s.anchorNode.nodeValue || '').replace(/^\s+/, function(a) {wb = a.length;});\r
+\r
+ return {\r
+ start : Math.max(e.start + s.anchorOffset - wb, 0),\r
+ end : Math.max(e.end + s.focusOffset - wb, 0),\r
+ scrollX : sx,\r
+ scrollY : sy,\r
+ beg : s.anchorOffset - wb == 0\r
+ };\r
+ } else {\r
+ e = getPos(ro, r.startContainer, r.endContainer);\r
+\r
+ // Count whitespace before start and end container\r
+ (r.startContainer.nodeValue || '').replace(/^\s+/, function(a) {wb = a.length;});\r
+ (r.endContainer.nodeValue || '').replace(/^\s+/, function(a) {wa = a.length;});\r
+\r
+ if (!e)\r
+ return {scrollX : sx, scrollY : sy};\r
+\r
+ return {\r
+ start : Math.max(e.start + r.startOffset - wb, 0),\r
+ end : Math.max(e.end + r.endOffset - wa, 0),\r
+ scrollX : sx,\r
+ scrollY : sy,\r
+ beg : r.startOffset - wb == 0\r
+ };\r
+ }\r
+ },\r
+\r
+ moveToBookmark : function(b) {\r
+ var t = this, r = t.getRng(), s = t.getSel(), ro = t.dom.getRoot(), sd, nvl, nv;\r
+\r
+ function getPos(r, sp, ep) {\r
+ var w = t.dom.doc.createTreeWalker(r, NodeFilter.SHOW_TEXT, null, false), n, p = 0, d = {}, o, v, wa, wb;\r
+\r
+ while ((n = w.nextNode()) != null) {\r
+ wa = wb = 0;\r
+\r
+ nv = n.nodeValue || '';\r
+ nv.replace(/^\s+[^\s]/, function(a) {wb = a.length - 1;});\r
+ nv.replace(/[^\s]\s+$/, function(a) {wa = a.length - 1;});\r
+\r
+ nvl = tinymce.trim(nv).length;\r
+ p += nvl;\r
+\r
+ if (p >= sp && !d.startNode) {\r
+ o = sp - (p - nvl);\r
+\r
+ // Fix for odd quirk in FF\r
+ if (b.beg && o >= nvl)\r
+ continue;\r
+\r
+ d.startNode = n;\r
+ d.startOffset = o + wb;\r
+ }\r
+\r
+ if (p >= ep) {\r
+ d.endNode = n;\r
+ d.endOffset = ep - (p - nvl) + wb;\r
+ return d;\r
+ }\r
+ }\r
+\r
+ return null;\r
+ };\r
+\r
+ if (!b)\r
+ return false;\r
+\r
+ t.win.scrollTo(b.scrollX, b.scrollY);\r
+\r
+ // Handle explorer\r
+ if (isIE) {\r
+ // Handle simple\r
+ if (r = b.rng) {\r
+ try {\r
+ r.select();\r
+ } catch (ex) {\r
+ // Ignore\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ t.win.focus();\r
+\r
+ // Handle control bookmark\r
+ if (b.tag) {\r
+ r = ro.createControlRange();\r
+\r
+ each(t.dom.select(b.tag), function(n, i) {\r
+ if (i == b.index)\r
+ r.addElement(n);\r
+ });\r
+ } else {\r
+ // Try/catch needed since this operation breaks when TinyMCE is placed in hidden divs/tabs\r
+ try {\r
+ // Incorrect bookmark\r
+ if (b.start < 0)\r
+ return true;\r
+\r
+ r = s.createRange();\r
+ r.moveToElementText(ro);\r
+ r.collapse(true);\r
+ r.moveStart('character', b.start);\r
+ r.moveEnd('character', b.length);\r
+ } catch (ex2) {\r
+ return true;\r
+ }\r
+ }\r
+\r
+ try {\r
+ r.select();\r
+ } catch (ex) {\r
+ // Needed for some odd IE bug #1843306\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ // Handle W3C\r
+ if (!s)\r
+ return false;\r
+\r
+ // Handle simple\r
+ if (b.rng) {\r
+ s.removeAllRanges();\r
+ s.addRange(b.rng);\r
+ } else {\r
+ if (is(b.start) && is(b.end)) {\r
+ try {\r
+ sd = getPos(ro, b.start, b.end);\r
+\r
+ if (sd) {\r
+ r = t.dom.doc.createRange();\r
+ r.setStart(sd.startNode, sd.startOffset);\r
+ r.setEnd(sd.endNode, sd.endOffset);\r
+ s.removeAllRanges();\r
+ s.addRange(r);\r
+ }\r
+\r
+ if (!tinymce.isOpera)\r
+ t.win.focus();\r
+ } catch (ex) {\r
+ // Ignore\r
+ }\r
+ }\r
+ }\r
+ },\r
+\r
+ select : function(n, c) {\r
+ var t = this, r = t.getRng(), s = t.getSel(), b, fn, ln, d = t.win.document;\r
+\r
+ function first(n) {\r
+ return n ? d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false).nextNode() : null;\r
+ };\r
+\r
+ function last(n) {\r
+ var c, o, w;\r
+\r
+ if (!n)\r
+ return null;\r
+\r
+ w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);\r
+ while (c = w.nextNode())\r
+ o = c;\r
+\r
+ return o;\r
+ };\r
+\r
+ if (isIE) {\r
+ try {\r
+ b = d.body;\r
+\r
+ if (/^(IMG|TABLE)$/.test(n.nodeName)) {\r
+ r = b.createControlRange();\r
+ r.addElement(n);\r
+ } else {\r
+ r = b.createTextRange();\r
+ r.moveToElementText(n);\r
+ }\r
+\r
+ r.select();\r
+ } catch (ex) {\r
+ // Throws illigal agrument in IE some times\r
+ }\r
+ } else {\r
+ if (c) {\r
+ fn = first(n);\r
+ ln = last(n);\r
+\r
+ if (fn && ln) {\r
+ //console.debug(fn, ln);\r
+ r = d.createRange();\r
+ r.setStart(fn, 0);\r
+ r.setEnd(ln, ln.nodeValue.length);\r
+ } else\r
+ r.selectNode(n);\r
+ } else\r
+ r.selectNode(n);\r
+\r
+ t.setRng(r);\r
+ }\r
+\r
+ return n;\r
+ },\r
+\r
+ isCollapsed : function() {\r
+ var t = this, r = t.getRng(), s = t.getSel();\r
+\r
+ if (!r || r.item)\r
+ return false;\r
+\r
+ return !s || r.boundingWidth == 0 || s.isCollapsed;\r
+ },\r
+\r
+ collapse : function(b) {\r
+ var t = this, r = t.getRng(), n;\r
+\r
+ // Control range on IE\r
+ if (r.item) {\r
+ n = r.item(0);\r
+ r = this.win.document.body.createTextRange();\r
+ r.moveToElementText(n);\r
+ }\r
+\r
+ r.collapse(!!b);\r
+ t.setRng(r);\r
+ },\r
+\r
+ getSel : function() {\r
+ var t = this, w = this.win;\r
+\r
+ return w.getSelection ? w.getSelection() : w.document.selection;\r
+ },\r
+\r
+ getRng : function() {\r
+ var t = this, s = t.getSel(), r;\r
+\r
+ try {\r
+ if (s)\r
+ r = s.rangeCount > 0 ? s.getRangeAt(0) : (s.createRange ? s.createRange() : t.win.document.createRange());\r
+ } catch (ex) {\r
+ // IE throws unspecified error here if TinyMCE is placed in a frame/iframe\r
+ }\r
+\r
+ // No range found then create an empty one\r
+ // This can occur when the editor is placed in a hidden container element on Gecko\r
+ // Or on IE when there was an exception\r
+ if (!r)\r
+ r = isIE ? t.win.document.body.createTextRange() : t.win.document.createRange();\r
+\r
+ return r;\r
+ },\r
+\r
+ setRng : function(r) {\r
+ var s;\r
+\r
+ if (!isIE) {\r
+ s = this.getSel();\r
+\r
+ if (s) {\r
+ s.removeAllRanges();\r
+ s.addRange(r);\r
+ }\r
+ } else {\r
+ try {\r
+ r.select();\r
+ } catch (ex) {\r
+ // Needed for some odd IE bug #1843306\r
+ }\r
+ }\r
+ },\r
+\r
+ setNode : function(n) {\r
+ var t = this;\r
+\r
+ t.setContent(t.dom.getOuterHTML(n));\r
+\r
+ return n;\r
+ },\r
+\r
+ getNode : function() {\r
+ var t = this, r = t.getRng(), s = t.getSel(), e;\r
+\r
+ if (!isIE) {\r
+ // Range maybe lost after the editor is made visible again\r
+ if (!r)\r
+ return t.dom.getRoot();\r
+\r
+ e = r.commonAncestorContainer;\r
+\r
+ // Handle selection a image or other control like element such as anchors\r
+ if (!r.collapsed) {\r
+ if (r.startContainer == r.endContainer || (tinymce.isWebKit && r.startContainer == r.endContainer.parentNode)) {\r
+ if (r.startOffset - r.endOffset < 2 || tinymce.isWebKit) {\r
+ if (r.startContainer.hasChildNodes())\r
+ e = r.startContainer.childNodes[r.startOffset];\r
+ }\r
+ }\r
+ }\r
+\r
+ return t.dom.getParent(e, function(n) {\r
+ return n.nodeType == 1;\r
+ });\r
+ }\r
+\r
+ return r.item ? r.item(0) : r.parentElement();\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/dom/XMLWriter.js */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.dom.XMLWriter', {\r
+ node : null,\r
+\r
+ XMLWriter : function(s) {\r
+ // Get XML document\r
+ function getXML() {\r
+ var i = document.implementation;\r
+\r
+ if (!i || !i.createDocument) {\r
+ // Try IE objects\r
+ try {return new ActiveXObject('MSXML2.DOMDocument');} catch (ex) {}\r
+ try {return new ActiveXObject('Microsoft.XmlDom');} catch (ex) {}\r
+ } else\r
+ return i.createDocument('', '', null);\r
+ };\r
+\r
+ this.doc = getXML();\r
+ \r
+ // Since Opera and WebKit doesn't escape > into > we need to do it our self to normalize the output for all browsers\r
+ this.valid = tinymce.isOpera || tinymce.isWebKit;\r
+\r
+ this.reset();\r
+ },\r
+\r
+ reset : function() {\r
+ var t = this, d = t.doc;\r
+\r
+ if (d.firstChild)\r
+ d.removeChild(d.firstChild);\r
+\r
+ t.node = d.appendChild(d.createElement("html"));\r
+ },\r
+\r
+ writeStartElement : function(n) {\r
+ var t = this;\r
+\r
+ t.node = t.node.appendChild(t.doc.createElement(n));\r
+ },\r
+\r
+ writeAttribute : function(n, v) {\r
+ if (this.valid)\r
+ v = v.replace(/>/g, '%MCGT%');\r
+\r
+ this.node.setAttribute(n, v);\r
+ },\r
+\r
+ writeEndElement : function() {\r
+ this.node = this.node.parentNode;\r
+ },\r
+\r
+ writeFullEndElement : function() {\r
+ var t = this, n = t.node;\r
+\r
+ n.appendChild(t.doc.createTextNode(""));\r
+ t.node = n.parentNode;\r
+ },\r
+\r
+ writeText : function(v) {\r
+ if (this.valid)\r
+ v = v.replace(/>/g, '%MCGT%');\r
+\r
+ this.node.appendChild(this.doc.createTextNode(v));\r
+ },\r
+\r
+ writeCDATA : function(v) {\r
+ this.node.appendChild(this.doc.createCDATA(v));\r
+ },\r
+\r
+ writeComment : function(v) {\r
+ this.node.appendChild(this.doc.createComment(v));\r
+ },\r
+\r
+ getContent : function() {\r
+ var h;\r
+\r
+ h = this.doc.xml || new XMLSerializer().serializeToString(this.doc);\r
+ h = h.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g, '');\r
+ h = h.replace(/ ?\/>/g, ' />');\r
+\r
+ if (this.valid)\r
+ h = h.replace(/\%MCGT%/g, '>');\r
+\r
+ return h;\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/dom/StringWriter.js */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.dom.StringWriter', {\r
+ str : null,\r
+ tags : null,\r
+ count : 0,\r
+ settings : null,\r
+ indent : null,\r
+\r
+ StringWriter : function(s) {\r
+ this.settings = tinymce.extend({\r
+ indent_char : ' ',\r
+ indentation : 1\r
+ }, s);\r
+\r
+ this.reset();\r
+ },\r
+\r
+ reset : function() {\r
+ this.indent = '';\r
+ this.str = "";\r
+ this.tags = [];\r
+ this.count = 0;\r
+ },\r
+\r
+ writeStartElement : function(n) {\r
+ this._writeAttributesEnd();\r
+ this.writeRaw('<' + n);\r
+ this.tags.push(n);\r
+ this.inAttr = true;\r
+ this.count++;\r
+ this.elementCount = this.count;\r
+ },\r
+\r
+ writeAttribute : function(n, v) {\r
+ var t = this;\r
+\r
+ t.writeRaw(" " + t.encode(n) + '="' + t.encode(v) + '"');\r
+ },\r
+\r
+ writeEndElement : function() {\r
+ var n;\r
+\r
+ if (this.tags.length > 0) {\r
+ n = this.tags.pop();\r
+\r
+ if (this._writeAttributesEnd(1))\r
+ this.writeRaw('</' + n + '>');\r
+\r
+ if (this.settings.indentation > 0)\r
+ this.writeRaw('\n');\r
+ }\r
+ },\r
+\r
+ writeFullEndElement : function() {\r
+ if (this.tags.length > 0) {\r
+ this._writeAttributesEnd();\r
+ this.writeRaw('</' + this.tags.pop() + '>');\r
+\r
+ if (this.settings.indentation > 0)\r
+ this.writeRaw('\n');\r
+ }\r
+ },\r
+\r
+ writeText : function(v) {\r
+ this._writeAttributesEnd();\r
+ this.writeRaw(this.encode(v));\r
+ this.count++;\r
+ },\r
+\r
+ writeCDATA : function(v) {\r
+ this._writeAttributesEnd();\r
+ this.writeRaw('<![CDATA[' + v + ']]>');\r
+ this.count++;\r
+ },\r
+\r
+ writeComment : function(v) {\r
+ this._writeAttributesEnd();\r
+ this.writeRaw('<!-- ' + v + '-->');\r
+ this.count++;\r
+ },\r
+\r
+ writeRaw : function(v) {\r
+ this.str += v;\r
+ },\r
+\r
+ encode : function(s) {\r
+ return s.replace(/[<>&"]/g, function(v) {\r
+ switch (v) {\r
+ case '<':\r
+ return '<';\r
+\r
+ case '>':\r
+ return '>';\r
+\r
+ case '&':\r
+ return '&';\r
+\r
+ case '"':\r
+ return '"';\r
+ }\r
+\r
+ return v;\r
+ });\r
+ },\r
+\r
+ getContent : function() {\r
+ return this.str;\r
+ },\r
+\r
+ _writeAttributesEnd : function(s) {\r
+ if (!this.inAttr)\r
+ return;\r
+\r
+ this.inAttr = false;\r
+\r
+ if (s && this.elementCount == this.count) {\r
+ this.writeRaw(' />');\r
+ return false;\r
+ }\r
+\r
+ this.writeRaw('>');\r
+\r
+ return true;\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/dom/Serializer.js */\r
+\r
+(function() {\r
+ // Shorten names\r
+ var extend = tinymce.extend, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher, isIE = tinymce.isIE;\r
+\r
+ // Returns only attribites that have values not all attributes in IE\r
+ function getIEAtts(n) {\r
+ var o = [];\r
+\r
+ // Object will throw exception in IE\r
+ if (n.nodeName == 'OBJECT')\r
+ return n.attributes;\r
+\r
+ n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi, function(a, b) {\r
+ o.push({specified : 1, nodeName : b});\r
+ });\r
+\r
+ return o;\r
+ };\r
+\r
+ function wildcardToRE(s) {\r
+ return s.replace(/([?+*])/g, '.$1');\r
+ };\r
+\r
+ tinymce.create('tinymce.dom.Serializer', {\r
+ Serializer : function(s) {\r
+ var t = this;\r
+\r
+ t.key = 0;\r
+ t.onPreProcess = new Dispatcher(t);\r
+ t.onPostProcess = new Dispatcher(t);\r
+\r
+ if (tinymce.relaxedDomain && tinymce.isGecko) {\r
+ // Gecko has a bug where we can't create a new XML document if domain relaxing is used\r
+ t.writer = new tinymce.dom.StringWriter();\r
+ } else {\r
+ try {\r
+ t.writer = new tinymce.dom.XMLWriter();\r
+ } catch (ex) {\r
+ // IE might throw exception if ActiveX is disabled so we then switch to the slightly slower StringWriter\r
+ t.writer = new tinymce.dom.StringWriter();\r
+ }\r
+ }\r
+\r
+ // Default settings\r
+ t.settings = s = extend({\r
+ dom : tinymce.DOM,\r
+ valid_nodes : 0,\r
+ node_filter : 0,\r
+ attr_filter : 0,\r
+ invalid_attrs : /^(mce_|_moz_)/,\r
+ closed : /(br|hr|input|meta|img|link|param)/,\r
+ entity_encoding : 'named',\r
+ entities : '160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro',\r
+ valid_elements : '*[*]',\r
+ extended_valid_elements : 0,\r
+ valid_child_elements : 0,\r
+ invalid_elements : 0,\r
+ fix_table_elements : 0,\r
+ fix_list_elements : true,\r
+ fix_content_duplication : true,\r
+ convert_fonts_to_spans : false,\r
+ font_size_classes : 0,\r
+ font_size_style_values : 0,\r
+ apply_source_formatting : 0,\r
+ indent_mode : 'simple',\r
+ indent_char : '\t',\r
+ indent_levels : 1,\r
+ remove_linebreaks : 1\r
+ }, s);\r
+\r
+ t.dom = s.dom;\r
+\r
+ if (s.fix_list_elements) {\r
+ t.onPreProcess.add(function(se, o) {\r
+ var nl, x, a = ['ol', 'ul'], i, n, p, r = /^(OL|UL)$/, np;\r
+\r
+ function prevNode(e, n) {\r
+ var a = n.split(','), i;\r
+\r
+ while ((e = e.previousSibling) != null) {\r
+ for (i=0; i<a.length; i++) {\r
+ if (e.nodeName == a[i])\r
+ return e;\r
+ }\r
+ }\r
+\r
+ return null;\r
+ };\r
+\r
+ for (x=0; x<a.length; x++) {\r
+ nl = t.dom.select(a[x], o.node);\r
+\r
+ for (i=0; i<nl.length; i++) {\r
+ n = nl[i];\r
+ p = n.parentNode;\r
+\r
+ if (r.test(p.nodeName)) {\r
+ np = prevNode(n, 'LI');\r
+\r
+ if (!np) {\r
+ np = t.dom.create('li');\r
+ np.innerHTML = ' ';\r
+ np.appendChild(n);\r
+ p.insertBefore(np, p.firstChild);\r
+ } else\r
+ np.appendChild(n);\r
+ }\r
+ }\r
+ }\r
+ });\r
+ }\r
+\r
+ if (s.fix_table_elements) {\r
+ t.onPreProcess.add(function(se, o) {\r
+ each(t.dom.select('table', o.node), function(e) {\r
+ var pa = t.dom.getParent(e, 'H1,H2,H3,H4,H5,H6,P'), pa2, n, tm, pl = [], i, ns;\r
+\r
+ if (pa) {\r
+ pa2 = pa.cloneNode(false);\r
+\r
+ pl.push(e);\r
+ for (n = e; n = n.parentNode;) {\r
+ pl.push(n);\r
+\r
+ if (n == pa)\r
+ break;\r
+ }\r
+\r
+ tm = pa2;\r
+ for (i = pl.length - 1; i >= 0; i--) {\r
+ if (i == pl.length - 1) {\r
+ while (ns = pl[i - 1].nextSibling)\r
+ tm.appendChild(ns.parentNode.removeChild(ns));\r
+ } else {\r
+ n = pl[i].cloneNode(false);\r
+\r
+ if (i != 0) {\r
+ while (ns = pl[i - 1].nextSibling)\r
+ n.appendChild(ns.parentNode.removeChild(ns));\r
+ }\r
+\r
+ tm = tm.appendChild(n);\r
+ }\r
+ }\r
+\r
+ e = t.dom.insertAfter(e.parentNode.removeChild(e), pa);\r
+ t.dom.insertAfter(e, pa);\r
+ t.dom.insertAfter(pa2, e);\r
+ }\r
+ });\r
+ });\r
+ }\r
+ },\r
+\r
+ setEntities : function(s) {\r
+ var t = this, a, i, l = {}, re = '', v;\r
+\r
+ // No need to setup more than once\r
+ if (t.entityLookup)\r
+ return;\r
+\r
+ // Build regex and lookup array\r
+ a = s.split(',');\r
+ for (i = 0; i < a.length; i += 2) {\r
+ v = a[i];\r
+\r
+ // Don't add default & " etc.\r
+ if (v == 34 || v == 38 || v == 60 || v == 62)\r
+ continue;\r
+\r
+ l[String.fromCharCode(a[i])] = a[i + 1];\r
+\r
+ v = parseInt(a[i]).toString(16);\r
+ re += '\\u' + '0000'.substring(v.length) + v;\r
+ }\r
+\r
+ if (!re) {\r
+ t.settings.entity_encoding = 'raw';\r
+ return;\r
+ }\r
+\r
+ t.entitiesRE = new RegExp('[' + re + ']', 'g');\r
+ t.entityLookup = l;\r
+ },\r
+\r
+ setValidChildRules : function(s) {\r
+ this.childRules = null;\r
+ this.addValidChildRules(s);\r
+ },\r
+\r
+ addValidChildRules : function(s) {\r
+ var t = this, inst, intr, bloc;\r
+\r
+ if (!s)\r
+ return;\r
+\r
+ inst = 'A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';\r
+ intr = 'A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';\r
+ bloc = 'H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';\r
+\r
+ each(s.split(','), function(s) {\r
+ var p = s.split(/\[|\]/), re;\r
+\r
+ s = '';\r
+ each(p[1].split('|'), function(v) {\r
+ if (s)\r
+ s += '|';\r
+\r
+ switch (v) {\r
+ case '%itrans':\r
+ v = intr;\r
+ break;\r
+\r
+ case '%itrans_na':\r
+ v = intr.substring(2);\r
+ break;\r
+\r
+ case '%istrict':\r
+ v = inst;\r
+ break;\r
+\r
+ case '%istrict_na':\r
+ v = inst.substring(2);\r
+ break;\r
+\r
+ case '%btrans':\r
+ v = bloc;\r
+ break;\r
+\r
+ case '%bstrict':\r
+ v = bloc;\r
+ break;\r
+ }\r
+\r
+ s += v;\r
+ });\r
+ re = new RegExp('^(' + s.toLowerCase() + ')$', 'i');\r
+\r
+ each(p[0].split('/'), function(s) {\r
+ t.childRules = t.childRules || {};\r
+ t.childRules[s] = re;\r
+ });\r
+ });\r
+\r
+ // Build regex\r
+ s = '';\r
+ each(t.childRules, function(v, k) {\r
+ if (s)\r
+ s += '|';\r
+\r
+ s += k;\r
+ });\r
+\r
+ t.parentElementsRE = new RegExp('^(' + s.toLowerCase() + ')$', 'i');\r
+\r
+ /*console.debug(t.parentElementsRE.toString());\r
+ each(t.childRules, function(v) {\r
+ console.debug(v.toString());\r
+ });*/\r
+ },\r
+\r
+ setRules : function(s) {\r
+ var t = this;\r
+\r
+ t._setup();\r
+ t.rules = {};\r
+ t.wildRules = [];\r
+ t.validElements = {};\r
+\r
+ return t.addRules(s);\r
+ },\r
+\r
+ addRules : function(s) {\r
+ var t = this, dr;\r
+\r
+ if (!s)\r
+ return;\r
+\r
+ t._setup();\r
+\r
+ each(s.split(','), function(s) {\r
+ var p = s.split(/\[|\]/), tn = p[0].split('/'), ra, at, wat, va = [];\r
+\r
+ // Extend with default rules\r
+ if (dr)\r
+ at = tinymce.extend([], dr.attribs);\r
+\r
+ // Parse attributes\r
+ if (p.length > 1) {\r
+ each(p[1].split('|'), function(s) {\r
+ var ar = {}, i;\r
+\r
+ at = at || [];\r
+\r
+ // Parse attribute rule\r
+ s = s.replace(/::/g, '~');\r
+ s = /^([!\-])?([\w*.?~]+|)([=:<])?(.+)?$/.exec(s);\r
+ s[2] = s[2].replace(/~/g, ':');\r
+\r
+ // Add required attributes\r
+ if (s[1] == '!') {\r
+ ra = ra || [];\r
+ ra.push(s[2]);\r
+ }\r
+\r
+ // Remove inherited attributes\r
+ if (s[1] == '-') {\r
+ for (i = 0; i <at.length; i++) {\r
+ if (at[i].name == s[2]) {\r
+ at.splice(i, 1);\r
+ return;\r
+ }\r
+ }\r
+ }\r
+\r
+ switch (s[3]) {\r
+ // Add default attrib values\r
+ case '=':\r
+ ar.defaultVal = s[4] || '';\r
+ break;\r
+\r
+ // Add forced attrib values\r
+ case ':':\r
+ ar.forcedVal = s[4];\r
+ break;\r
+\r
+ // Add validation values\r
+ case '<':\r
+ ar.validVals = s[4].split('?');\r
+ break;\r
+ }\r
+\r
+ if (/[*.?]/.test(s[2])) {\r
+ wat = wat || [];\r
+ ar.nameRE = new RegExp('^' + wildcardToRE(s[2]) + '$');\r
+ wat.push(ar);\r
+ } else {\r
+ ar.name = s[2];\r
+ at.push(ar);\r
+ }\r
+\r
+ va.push(s[2]);\r
+ });\r
+ }\r
+\r
+ // Handle element names\r
+ each(tn, function(s, i) {\r
+ var pr = s.charAt(0), x = 1, ru = {};\r
+\r
+ // Extend with default rule data\r
+ if (dr) {\r
+ if (dr.noEmpty)\r
+ ru.noEmpty = dr.noEmpty;\r
+\r
+ if (dr.fullEnd)\r
+ ru.fullEnd = dr.fullEnd;\r
+\r
+ if (dr.padd)\r
+ ru.padd = dr.padd;\r
+ }\r
+\r
+ // Handle prefixes\r
+ switch (pr) {\r
+ case '-':\r
+ ru.noEmpty = true;\r
+ break;\r
+\r
+ case '+':\r
+ ru.fullEnd = true;\r
+ break;\r
+\r
+ case '#':\r
+ ru.padd = true;\r
+ break;\r
+\r
+ default:\r
+ x = 0;\r
+ }\r
+\r
+ tn[i] = s = s.substring(x);\r
+ t.validElements[s] = 1;\r
+\r
+ // Add element name or element regex\r
+ if (/[*.?]/.test(tn[0])) {\r
+ ru.nameRE = new RegExp('^' + wildcardToRE(tn[0]) + '$');\r
+ t.wildRules = t.wildRules || {};\r
+ t.wildRules.push(ru);\r
+ } else {\r
+ ru.name = tn[0];\r
+\r
+ // Store away default rule\r
+ if (tn[0] == '@')\r
+ dr = ru;\r
+\r
+ t.rules[s] = ru;\r
+ }\r
+\r
+ ru.attribs = at;\r
+\r
+ if (ra)\r
+ ru.requiredAttribs = ra;\r
+\r
+ if (wat) {\r
+ // Build valid attributes regexp\r
+ s = '';\r
+ each(va, function(v) {\r
+ if (s)\r
+ s += '|';\r
+\r
+ s += '(' + wildcardToRE(v) + ')';\r
+ });\r
+ ru.validAttribsRE = new RegExp('^' + s.toLowerCase() + '$');\r
+ ru.wildAttribs = wat;\r
+ }\r
+ });\r
+ });\r
+\r
+ // Build valid elements regexp\r
+ s = '';\r
+ each(t.validElements, function(v, k) {\r
+ if (s)\r
+ s += '|';\r
+\r
+ if (k != '@')\r
+ s += k;\r
+ });\r
+ t.validElementsRE = new RegExp('^(' + wildcardToRE(s.toLowerCase()) + ')$');\r
+\r
+ //console.debug(t.validElementsRE.toString());\r
+ //console.dir(t.rules);\r
+ //console.dir(t.wildRules);\r
+ },\r
+\r
+ findRule : function(n) {\r
+ var t = this, rl = t.rules, i, r;\r
+\r
+ t._setup();\r
+\r
+ // Exact match\r
+ r = rl[n];\r
+ if (r)\r
+ return r;\r
+\r
+ // Try wildcards\r
+ rl = t.wildRules;\r
+ for (i = 0; i < rl.length; i++) {\r
+ if (rl[i].nameRE.test(n))\r
+ return rl[i];\r
+ }\r
+\r
+ return null;\r
+ },\r
+\r
+ findAttribRule : function(ru, n) {\r
+ var i, wa = ru.wildAttribs;\r
+\r
+ for (i = 0; i < wa.length; i++) {\r
+ if (wa[i].nameRE.test(n))\r
+ return wa[i];\r
+ }\r
+\r
+ return null;\r
+ },\r
+\r
+ serialize : function(n, o) {\r
+ var h, t = this;\r
+\r
+ t._setup();\r
+ o = o || {};\r
+ o.format = o.format || 'html';\r
+ t.processObj = o;\r
+ n = n.cloneNode(true);\r
+ t.key = '' + (parseInt(t.key) + 1);\r
+\r
+ // Pre process\r
+ if (!o.no_events) {\r
+ o.node = n;\r
+ t.onPreProcess.dispatch(t, o);\r
+ }\r
+\r
+ // Serialize HTML DOM into a string\r
+ t.writer.reset();\r
+ t._serializeNode(n, o.getInner);\r
+\r
+ // Post process\r
+ o.content = t.writer.getContent();\r
+\r
+ if (!o.no_events)\r
+ t.onPostProcess.dispatch(t, o);\r
+\r
+ t._postProcess(o);\r
+ o.node = null;\r
+\r
+ return tinymce.trim(o.content);\r
+ },\r
+\r
+ // Internal functions\r
+\r
+ _postProcess : function(o) {\r
+ var t = this, s = t.settings, h = o.content, sc = [], p, l;\r
+\r
+ if (o.format == 'html') {\r
+ // Protect some elements\r
+ p = t._protect({\r
+ content : h,\r
+ patterns : [\r
+ /(<script[^>]*>)(.*?)(<\/script>)/g,\r
+ /(<style[^>]*>)(.*?)(<\/style>)/g,\r
+ /(<pre[^>]*>)(.*?)(<\/pre>)/g\r
+ ]\r
+ });\r
+\r
+ h = p.content;\r
+\r
+ // Entity encode\r
+ if (s.entity_encoding !== 'raw') {\r
+ if (s.entity_encoding.indexOf('named') != -1) {\r
+ t.setEntities(s.entities);\r
+ l = t.entityLookup;\r
+\r
+ h = h.replace(t.entitiesRE, function(a) {\r
+ var v;\r
+\r
+ if (v = l[a])\r
+ a = '&' + v + ';';\r
+\r
+ return a;\r
+ });\r
+ }\r
+\r
+ if (s.entity_encoding.indexOf('numeric') != -1) {\r
+ h = h.replace(/[\u007E-\uFFFF]/g, function(a) {\r
+ return '&#' + a.charCodeAt(0) + ';';\r
+ });\r
+ }\r
+ }\r
+\r
+ // Use BR instead of padded P elements inside editor and use <p> </p> outside editor\r
+ if (o.set)\r
+ h = h.replace(/<p>\s+( | |\u00a0|<br \/>)\s+<\/p>/g, '<p><br /></p>');\r
+ else\r
+ h = h.replace(/<p>\s+( | |\u00a0|<br \/>)\s+<\/p>/g, '<p>$1</p>');\r
+\r
+ // Since Gecko and Safari keeps whitespace in the DOM we need to\r
+ // remove it inorder to match other browsers. But I think Gecko and Safari is right.\r
+ // This process is only done when getting contents out from the editor.\r
+ if (!o.set) {\r
+ if (s.remove_linebreaks) {\r
+ h = h.replace(/(<[^>]+>)\s+/g, '$1 ');\r
+ h = h.replace(/\s+(<\/[^>]+>)/g, ' $1');\r
+ h = h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g, '<$1 $2>'); // Trim block start\r
+ h = h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g, '<$1>'); // Trim block start\r
+ h = h.replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g, '</$1>'); // Trim block end\r
+ }\r
+\r
+ // Simple indentation\r
+ if (s.apply_source_formatting && s.indent_mode == 'simple') {\r
+ // Add line breaks before and after block elements\r
+ h = h.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g, '\n<$1$2$3>\n');\r
+ h = h.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g, '\n<$1$2>');\r
+ h = h.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g, '</$1>\n');\r
+ h = h.replace(/\n\n/g, '\n');\r
+ }\r
+ }\r
+\r
+ h = t._unprotect(h, p);\r
+ }\r
+\r
+ o.content = h;\r
+ },\r
+\r
+ _serializeNode : function(n, inn) {\r
+ var t = this, s = t.settings, w = t.writer, hc, el, cn, i, l, a, at, no, v, nn, ru, ar, iv;\r
+\r
+ if (!s.node_filter || s.node_filter(n)) {\r
+ switch (n.nodeType) {\r
+ case 1: // Element\r
+ if (n.hasAttribute ? n.hasAttribute('mce_bogus') : n.getAttribute('mce_bogus'))\r
+ return;\r
+\r
+ iv = false;\r
+ hc = n.hasChildNodes();\r
+ nn = n.getAttribute('mce_name') || n.nodeName.toLowerCase();\r
+\r
+ // Add correct prefix on IE\r
+ if (isIE) {\r
+ if (n.scopeName !== 'HTML' && n.scopeName !== 'html')\r
+ nn = n.scopeName + ':' + nn;\r
+ }\r
+\r
+ // Remove mce prefix on IE needed for the abbr element\r
+ if (nn.indexOf('mce:') === 0)\r
+ nn = nn.substring(4);\r
+\r
+ // Check if valid\r
+ if (!t.validElementsRE.test(nn) || (t.invalidElementsRE && t.invalidElementsRE.test(nn)) || inn) {\r
+ iv = true;\r
+ break;\r
+ }\r
+\r
+ if (isIE) {\r
+ // Fix IE content duplication (DOM can have multiple copies of the same node)\r
+ if (s.fix_content_duplication) {\r
+ if (n.mce_serialized == t.key)\r
+ return;\r
+\r
+ n.mce_serialized = t.key;\r
+ }\r
+\r
+ // IE sometimes adds a / infront of the node name\r
+ if (nn.charAt(0) == '/')\r
+ nn = nn.substring(1);\r
+ }\r
+\r
+ // Check if valid child\r
+ if (t.childRules) {\r
+ if (t.parentElementsRE.test(t.elementName)) {\r
+ if (!t.childRules[t.elementName].test(nn)) {\r
+ iv = true;\r
+ break;\r
+ }\r
+ }\r
+\r
+ t.elementName = nn;\r
+ }\r
+\r
+ ru = t.findRule(nn);\r
+ nn = ru.name || nn;\r
+\r
+ // Skip empty nodes or empty node name in IE\r
+ if ((!hc && ru.noEmpty) || (isIE && !nn)) {\r
+ iv = true;\r
+ break;\r
+ }\r
+\r
+ // Check required\r
+ if (ru.requiredAttribs) {\r
+ a = ru.requiredAttribs;\r
+\r
+ for (i = a.length - 1; i >= 0; i--) {\r
+ if (this.dom.getAttrib(n, a[i]) !== '')\r
+ break;\r
+ }\r
+\r
+ // None of the required was there\r
+ if (i == -1) {\r
+ iv = true;\r
+ break;\r
+ }\r
+ }\r
+\r
+ w.writeStartElement(nn);\r
+\r
+ // Add ordered attributes\r
+ if (ru.attribs) {\r
+ for (i=0, at = ru.attribs, l = at.length; i<l; i++) {\r
+ a = at[i];\r
+ v = t._getAttrib(n, a);\r
+\r
+ if (v !== null)\r
+ w.writeAttribute(a.name, v);\r
+ }\r
+ }\r
+\r
+ // Add wild attributes\r
+ if (ru.validAttribsRE) {\r
+ at = isIE ? getIEAtts(n) : n.attributes;\r
+ for (i=at.length-1; i>-1; i--) {\r
+ no = at[i];\r
+\r
+ if (no.specified) {\r
+ a = no.nodeName.toLowerCase();\r
+\r
+ if (s.invalid_attrs.test(a) || !ru.validAttribsRE.test(a))\r
+ continue;\r
+\r
+ ar = t.findAttribRule(ru, a);\r
+ v = t._getAttrib(n, ar, a);\r
+\r
+ if (v !== null)\r
+ w.writeAttribute(a, v);\r
+ }\r
+ }\r
+ }\r
+\r
+ // Padd empty nodes with a \r
+ if (!hc && ru.padd)\r
+ w.writeText('\u00a0');\r
+\r
+ break;\r
+\r
+ case 3: // Text\r
+ // Check if valid child\r
+ if (t.childRules && t.parentElementsRE.test(t.elementName)) {\r
+ if (!t.childRules[t.elementName].test(n.nodeName))\r
+ return;\r
+ }\r
+\r
+ return w.writeText(n.nodeValue);\r
+\r
+ case 4: // CDATA\r
+ return w.writeCDATA(n.nodeValue);\r
+\r
+ case 8: // Comment\r
+ return w.writeComment(n.nodeValue);\r
+ }\r
+ } else if (n.nodeType == 1)\r
+ hc = n.hasChildNodes();\r
+\r
+ if (hc) {\r
+ cn = n.firstChild;\r
+\r
+ while (cn) {\r
+ t._serializeNode(cn);\r
+ t.elementName = nn;\r
+ cn = cn.nextSibling;\r
+ }\r
+ }\r
+\r
+ // Write element end\r
+ if (!iv) {\r
+ if (hc || !s.closed.test(nn))\r
+ w.writeFullEndElement();\r
+ else\r
+ w.writeEndElement();\r
+ }\r
+ },\r
+\r
+ _protect : function(o) {\r
+ o.items = o.items || [];\r
+\r
+ function enc(s) {\r
+ return s.replace(/[\r\n\\]/g, function(c) {\r
+ if (c === '\n')\r
+ return '\\n';\r
+ else if (c === '\\')\r
+ return '\\\\';\r
+\r
+ return '\\r';\r
+ });\r
+ };\r
+\r
+ function dec(s) {\r
+ return s.replace(/\\[\\rn]/g, function(c) {\r
+ if (c === '\\n')\r
+ return '\n';\r
+ else if (c === '\\\\')\r
+ return '\\';\r
+\r
+ return '\r';\r
+ });\r
+ };\r
+\r
+ each(o.patterns, function(p) {\r
+ o.content = dec(enc(o.content).replace(p, function(x, a, b, c) {\r
+ o.items.push(dec(b));\r
+ return a + '<!--mce:' + (o.items.length - 1) + '-->' + c;\r
+ }));\r
+ });\r
+\r
+ return o;\r
+ },\r
+\r
+ _unprotect : function(h, o) {\r
+ h = h.replace(/\<!--mce:([0-9]+)--\>/g, function(a, b) {\r
+ return o.items[parseInt(b)];\r
+ });\r
+\r
+ o.items = [];\r
+\r
+ return h;\r
+ },\r
+\r
+ _setup : function() {\r
+ var t = this, s = this.settings;\r
+\r
+ if (t.done)\r
+ return;\r
+\r
+ t.done = 1;\r
+\r
+ t.setRules(s.valid_elements);\r
+ t.addRules(s.extended_valid_elements);\r
+ t.addValidChildRules(s.valid_child_elements);\r
+\r
+ if (s.invalid_elements)\r
+ t.invalidElementsRE = new RegExp('^(' + wildcardToRE(s.invalid_elements.replace(',', '|').toLowerCase()) + ')$');\r
+\r
+ if (s.attrib_value_filter)\r
+ t.attribValueFilter = s.attribValueFilter;\r
+ },\r
+\r
+ _getAttrib : function(n, a, na) {\r
+ var i, v;\r
+\r
+ na = na || a.name;\r
+\r
+ if (a.forcedVal && (v = a.forcedVal)) {\r
+ if (v === '{$uid}')\r
+ return this.dom.uniqueId();\r
+\r
+ return v;\r
+ }\r
+\r
+ v = this.dom.getAttrib(n, na);\r
+\r
+ switch (na) {\r
+ case 'rowspan':\r
+ case 'colspan':\r
+ // Whats the point? Remove usless attribute value\r
+ if (v == '1')\r
+ v = '';\r
+\r
+ break;\r
+ }\r
+\r
+ if (this.attribValueFilter)\r
+ v = this.attribValueFilter(na, v, n);\r
+\r
+ if (a.validVals) {\r
+ for (i = a.validVals.length - 1; i >= 0; i--) {\r
+ if (v == a.validVals[i])\r
+ break;\r
+ }\r
+\r
+ if (i == -1)\r
+ return null;\r
+ }\r
+\r
+ if (v === '' && typeof(a.defaultVal) != 'undefined') {\r
+ v = a.defaultVal;\r
+\r
+ if (v === '{$uid}')\r
+ return this.dom.uniqueId();\r
+\r
+ return v;\r
+ } else {\r
+ // Remove internal mceItemXX classes when content is extracted from editor\r
+ if (na == 'class' && this.processObj.get)\r
+ v = v.replace(/\s?mceItem\w+\s?/g, '');\r
+ }\r
+\r
+ if (v === '')\r
+ return null;\r
+\r
+\r
+ return v;\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/dom/ScriptLoader.js */\r
+\r
+(function() {\r
+ var each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.dom.ScriptLoader', {\r
+ ScriptLoader : function(s) {\r
+ this.settings = s || {};\r
+ this.queue = [];\r
+ this.lookup = {};\r
+ },\r
+\r
+ isDone : function(u) {\r
+ return this.lookup[u] ? this.lookup[u].state == 2 : 0;\r
+ },\r
+\r
+ markDone : function(u) {\r
+ this.lookup[u] = {state : 2, url : u};\r
+ },\r
+\r
+ add : function(u, cb, s, pr) {\r
+ var t = this, lo = t.lookup, o;\r
+\r
+ if (o = lo[u]) {\r
+ // Is loaded fire callback\r
+ if (cb && o.state == 2)\r
+ cb.call(s || this);\r
+\r
+ return o;\r
+ }\r
+\r
+ o = {state : 0, url : u, func : cb, scope : s || this};\r
+\r
+ if (pr)\r
+ t.queue.unshift(o);\r
+ else\r
+ t.queue.push(o);\r
+\r
+ lo[u] = o;\r
+\r
+ return o;\r
+ },\r
+\r
+ load : function(u, cb, s) {\r
+ var t = this, o;\r
+\r
+ function loadScript(u) {\r
+ if (tinymce.dom.Event.domLoaded || t.settings.strict_mode) {\r
+ tinymce.util.XHR.send({\r
+ url : u,\r
+ error : t.settings.error,\r
+ async : false,\r
+ success : function(co) {\r
+ t.eval(co);\r
+ }\r
+ });\r
+ } else\r
+ document.write('<script type="text/javascript" src="' + u + '"></script>');\r
+ };\r
+\r
+ if (!tinymce.is(u, 'string')) {\r
+ each(u, function(u) {\r
+ loadScript(u);\r
+ });\r
+\r
+ if (cb)\r
+ cb.call(s || t);\r
+ } else {\r
+ loadScript(u);\r
+\r
+ if (cb)\r
+ cb.call(s || t);\r
+ }\r
+ },\r
+\r
+ loadQueue : function(cb, s) {\r
+ var t = this;\r
+\r
+ if (!t.queueLoading) {\r
+ t.queueLoading = 1;\r
+ t.queueCallbacks = [];\r
+\r
+ t.loadScripts(t.queue, function() {\r
+ t.queueLoading = 0;\r
+\r
+ if (cb)\r
+ cb.call(s || t);\r
+\r
+ each(t.queueCallbacks, function(o) {\r
+ o.func.call(o.scope);\r
+ });\r
+ });\r
+ } else if (cb)\r
+ t.queueCallbacks.push({func : cb, scope : s || t});\r
+ },\r
+\r
+ eval : function(co) {\r
+ var w = window;\r
+\r
+ // Evaluate script\r
+ if (!w.execScript) {\r
+ try {\r
+ eval.call(w, co);\r
+ } catch (ex) {\r
+ eval(co, w); // Firefox 3.0a8\r
+ }\r
+ } else\r
+ w.execScript(co); // IE\r
+ },\r
+\r
+ loadScripts : function(sc, cb, s) {\r
+ var t = this, lo = t.lookup;\r
+\r
+ function done(o) {\r
+ o.state = 2; // Has been loaded\r
+\r
+ // Run callback\r
+ if (o.func)\r
+ o.func.call(o.scope || t);\r
+ };\r
+\r
+ function allDone() {\r
+ var l;\r
+\r
+ // Check if all files are loaded\r
+ l = sc.length;\r
+ each(sc, function(o) {\r
+ o = lo[o.url];\r
+\r
+ if (o.state === 2) {// It has finished loading\r
+ done(o);\r
+ l--;\r
+ } else\r
+ load(o);\r
+ });\r
+\r
+ // They are all loaded\r
+ if (l === 0 && cb) {\r
+ cb.call(s || t);\r
+ cb = 0;\r
+ }\r
+ };\r
+\r
+ function load(o) {\r
+ if (o.state > 0)\r
+ return;\r
+\r
+ o.state = 1; // Is loading\r
+\r
+ tinymce.util.XHR.send({\r
+ url : o.url,\r
+ error : t.settings.error,\r
+ success : function(co) {\r
+ t.eval(co);\r
+ done(o);\r
+ allDone();\r
+ }\r
+ });\r
+ };\r
+\r
+ each(sc, function(o) {\r
+ var u = o.url;\r
+\r
+ // Add to queue if needed\r
+ if (!lo[u]) {\r
+ lo[u] = o;\r
+ t.queue.push(o);\r
+ } else\r
+ o = lo[u];\r
+\r
+ // Is already loading or has been loaded\r
+ if (o.state > 0)\r
+ return;\r
+\r
+ if (!tinymce.dom.Event.domLoaded && !t.settings.strict_mode) {\r
+ var ix, ol = '';\r
+\r
+ // Add onload events\r
+ if (cb || o.func) {\r
+ o.state = 1; // Is loading\r
+\r
+ ix = tinymce.dom.ScriptLoader._addOnLoad(function() {\r
+ done(o);\r
+ allDone();\r
+ });\r
+\r
+ if (tinymce.isIE)\r
+ ol = ' onreadystatechange="';\r
+ else\r
+ ol = ' onload="';\r
+\r
+ ol += 'tinymce.dom.ScriptLoader._onLoad(this,\'' + u + '\',' + ix + ');"';\r
+ }\r
+\r
+ document.write('<script type="text/javascript" src="' + u + '"' + ol + '></script>');\r
+\r
+ if (!o.func)\r
+ done(o);\r
+ } else\r
+ load(o);\r
+ });\r
+\r
+ allDone();\r
+ },\r
+\r
+ // Static methods\r
+ 'static' : {\r
+ _addOnLoad : function(f) {\r
+ var t = this;\r
+\r
+ t._funcs = t._funcs || [];\r
+ t._funcs.push(f);\r
+\r
+ return t._funcs.length - 1;\r
+ },\r
+\r
+ _onLoad : function(e, u, ix) {\r
+ if (!tinymce.isIE || e.readyState == 'complete')\r
+ this._funcs[ix].call(this);\r
+ }\r
+ }\r
+\r
+ });\r
+\r
+ // Global script loader\r
+ tinymce.ScriptLoader = new tinymce.dom.ScriptLoader();\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/ui/Control.js */\r
+\r
+(function() {\r
+ // Shorten class names\r
+ var DOM = tinymce.DOM, is = tinymce.is;\r
+\r
+ tinymce.create('tinymce.ui.Control', {\r
+ Control : function(id, s) {\r
+ this.id = id;\r
+ this.settings = s = s || {};\r
+ this.rendered = false;\r
+ this.onRender = new tinymce.util.Dispatcher(this);\r
+ this.classPrefix = '';\r
+ this.scope = s.scope || this;\r
+ this.disabled = 0;\r
+ this.active = 0;\r
+ },\r
+\r
+ setDisabled : function(s) {\r
+ var e;\r
+\r
+ if (s != this.disabled) {\r
+ e = DOM.get(this.id);\r
+\r
+ // Add accessibility title for unavailable actions\r
+ if (e && this.settings.unavailable_prefix) {\r
+ if (s) {\r
+ this.prevTitle = e.title;\r
+ e.title = this.settings.unavailable_prefix + ": " + e.title;\r
+ } else\r
+ e.title = this.prevTitle;\r
+ }\r
+\r
+ this.setState('Disabled', s);\r
+ this.setState('Enabled', !s);\r
+ this.disabled = s;\r
+ }\r
+ },\r
+\r
+ isDisabled : function() {\r
+ return this.disabled;\r
+ },\r
+\r
+ setActive : function(s) {\r
+ if (s != this.active) {\r
+ this.setState('Active', s);\r
+ this.active = s;\r
+ }\r
+ },\r
+\r
+ isActive : function() {\r
+ return this.active;\r
+ },\r
+\r
+ setState : function(c, s) {\r
+ var n = DOM.get(this.id);\r
+\r
+ c = this.classPrefix + c;\r
+\r
+ if (s)\r
+ DOM.addClass(n, c);\r
+ else\r
+ DOM.removeClass(n, c);\r
+ },\r
+\r
+ isRendered : function() {\r
+ return this.rendered;\r
+ },\r
+\r
+ renderHTML : function() {\r
+ },\r
+\r
+ renderTo : function(n) {\r
+ DOM.setHTML(n, this.renderHTML());\r
+ },\r
+\r
+ postRender : function() {\r
+ var t = this, b;\r
+\r
+ // Set pending states\r
+ if (is(t.disabled)) {\r
+ b = t.disabled;\r
+ t.disabled = -1;\r
+ t.setDisabled(b);\r
+ }\r
+\r
+ if (is(t.active)) {\r
+ b = t.active;\r
+ t.active = -1;\r
+ t.setActive(b);\r
+ }\r
+ },\r
+\r
+ destroy : function() {\r
+ DOM.remove(this.id);\r
+ }\r
+\r
+ });\r
+})();\r
+/* file:jscripts/tiny_mce/classes/ui/Container.js */\r
+\r
+tinymce.create('tinymce.ui.Container:tinymce.ui.Control', {\r
+ Container : function(id, s) {\r
+ this.parent(id, s);\r
+ this.controls = [];\r
+ this.lookup = {};\r
+ },\r
+\r
+ add : function(c) {\r
+ this.lookup[c.id] = c;\r
+ this.controls.push(c);\r
+\r
+ return c;\r
+ },\r
+\r
+ get : function(n) {\r
+ return this.lookup[n];\r
+ }\r
+\r
+ });\r
+\r
+\r
+/* file:jscripts/tiny_mce/classes/ui/Separator.js */\r
+\r
+tinymce.create('tinymce.ui.Separator:tinymce.ui.Control', {\r
+ renderHTML : function() {\r
+ return tinymce.DOM.createHTML('span', {'class' : 'mceSeparator'});\r
+ }\r
+\r
+ });\r
+\r
+/* file:jscripts/tiny_mce/classes/ui/MenuItem.js */\r
+\r
+(function() {\r
+ var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, walk = tinymce.walk;\r
+\r
+ tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control', {\r
+ MenuItem : function(id, s) {\r
+ this.parent(id, s);\r
+ this.classPrefix = 'mceMenuItem';\r
+ },\r
+\r
+ setSelected : function(s) {\r
+ this.setState('Selected', s);\r
+ this.selected = s;\r
+ },\r
+\r
+ isSelected : function() {\r
+ return this.selected;\r
+ },\r
+\r
+ postRender : function() {\r
+ var t = this;\r
+ \r
+ t.parent();\r
+\r
+ // Set pending state\r
+ if (is(t.selected))\r
+ t.setSelected(t.selected);\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/ui/Menu.js */\r
+\r
+(function() {\r
+ var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, walk = tinymce.walk;\r
+\r
+ tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem', {\r
+ Menu : function(id, s) {\r
+ var t = this;\r
+\r
+ t.parent(id, s);\r
+ t.items = {};\r
+ t.collapsed = false;\r
+ t.menuCount = 0;\r
+ t.onAddItem = new tinymce.util.Dispatcher(this);\r
+ },\r
+\r
+ expand : function(d) {\r
+ var t = this;\r
+\r
+ if (d) {\r
+ walk(t, function(o) {\r
+ if (o.expand)\r
+ o.expand();\r
+ }, 'items', t);\r
+ }\r
+\r
+ t.collapsed = false;\r
+ },\r
+\r
+ collapse : function(d) {\r
+ var t = this;\r
+\r
+ if (d) {\r
+ walk(t, function(o) {\r
+ if (o.collapse)\r
+ o.collapse();\r
+ }, 'items', t);\r
+ }\r
+\r
+ t.collapsed = true;\r
+ },\r
+\r
+ isCollapsed : function() {\r
+ return this.collapsed;\r
+ },\r
+\r
+ add : function(o) {\r
+ if (!o.settings)\r
+ o = new tinymce.ui.MenuItem(o.id || DOM.uniqueId(), o);\r
+\r
+ this.onAddItem.dispatch(this, o);\r
+\r
+ return this.items[o.id] = o;\r
+ },\r
+\r
+ addSeparator : function() {\r
+ return this.add({separator : true});\r
+ },\r
+\r
+ addMenu : function(o) {\r
+ if (!o.collapse)\r
+ o = this.createMenu(o);\r
+\r
+ this.menuCount++;\r
+\r
+ return this.add(o);\r
+ },\r
+\r
+ hasMenus : function() {\r
+ return this.menuCount !== 0;\r
+ },\r
+\r
+ remove : function(o) {\r
+ delete this.items[o.id];\r
+ },\r
+\r
+ removeAll : function() {\r
+ var t = this;\r
+\r
+ walk(t, function(o) {\r
+ if (o.removeAll)\r
+ o.removeAll();\r
+\r
+ o.destroy();\r
+ }, 'items', t);\r
+\r
+ t.items = {};\r
+ },\r
+\r
+ createMenu : function(o) {\r
+ var m = new tinymce.ui.Menu(o.id || DOM.uniqueId(), o);\r
+\r
+ m.onAddItem.add(this.onAddItem.dispatch, this.onAddItem);\r
+\r
+ return m;\r
+ }\r
+\r
+ });\r
+})();\r
+/* file:jscripts/tiny_mce/classes/ui/DropMenu.js */\r
+\r
+(function() {\r
+ var is = tinymce.is, DOM = tinymce.DOM, each = tinymce.each, Event = tinymce.dom.Event, Element = tinymce.dom.Element;\r
+\r
+ tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu', {\r
+ DropMenu : function(id, s) {\r
+ s = s || {};\r
+ s.container = s.container || document.body;\r
+ s.offset_x = s.offset_x || 0;\r
+ s.offset_y = s.offset_y || 0;\r
+ s.vp_offset_x = s.vp_offset_x || 0;\r
+ s.vp_offset_y = s.vp_offset_y || 0;\r
+\r
+ if (is(s.icons) && !s.icons)\r
+ s['class'] += ' mceNoIcons';\r
+\r
+ this.parent(id, s);\r
+ this.onShowMenu = new tinymce.util.Dispatcher(this);\r
+ this.onHideMenu = new tinymce.util.Dispatcher(this);\r
+ this.classPrefix = 'mceMenu';\r
+\r
+ // Fix for odd IE bug: #1903622\r
+ this.fixIE = tinymce.isIE && window.top != window;\r
+ },\r
+\r
+ createMenu : function(s) {\r
+ var t = this, cs = t.settings, m;\r
+\r
+ s.container = s.container || cs.container;\r
+ s.parent = t;\r
+ s.constrain = s.constrain || cs.constrain;\r
+ s['class'] = s['class'] || cs['class'];\r
+ s.vp_offset_x = s.vp_offset_x || cs.vp_offset_x;\r
+ s.vp_offset_y = s.vp_offset_y || cs.vp_offset_y;\r
+ m = new tinymce.ui.DropMenu(s.id || DOM.uniqueId(), s);\r
+\r
+ m.onAddItem.add(t.onAddItem.dispatch, t.onAddItem);\r
+\r
+ return m;\r
+ },\r
+\r
+ update : function() {\r
+ var t = this, s = t.settings, tb = DOM.get('menu_' + t.id + '_tbl'), co = DOM.get('menu_' + t.id + '_co'), tw, th;\r
+\r
+ tw = s.max_width ? Math.min(tb.clientWidth, s.max_width) : tb.clientWidth;\r
+ th = s.max_height ? Math.min(tb.clientHeight, s.max_height) : tb.clientHeight;\r
+\r
+ if (!DOM.boxModel)\r
+ t.element.setStyles({width : tw + 2, height : th + 2});\r
+ else\r
+ t.element.setStyles({width : tw, height : th});\r
+\r
+ if (s.max_width)\r
+ DOM.setStyle(co, 'width', tw);\r
+\r
+ if (s.max_height) {\r
+ DOM.setStyle(co, 'height', th);\r
+\r
+ if (tb.clientHeight < s.max_height)\r
+ DOM.setStyle(co, 'overflow', 'hidden');\r
+ }\r
+ },\r
+\r
+ showMenu : function(x, y, px) {\r
+ var t = this, s = t.settings, co, vp = DOM.getViewPort(), w, h, mx, my, ot = 2, dm, tb;\r
+\r
+ t.collapse(1);\r
+\r
+ if (t.isMenuVisible)\r
+ return;\r
+\r
+ if (!t.rendered) {\r
+ co = DOM.add(t.settings.container, t.renderNode());\r
+\r
+ each(t.items, function(o) {\r
+ o.postRender();\r
+ });\r
+\r
+ t.element = new Element('menu_' + t.id, {blocker : 1, container : s.container});\r
+ } else\r
+ co = DOM.get('menu_' + t.id);\r
+\r
+ // Move layer out of sight unless it's Opera since it scrolls to top of page due to an bug\r
+ if (!tinymce.isOpera)\r
+ DOM.setStyles(co, {left : -0xFFFF , top : -0xFFFF});\r
+\r
+ DOM.show(co);\r
+ t.update();\r
+\r
+ x += s.offset_x || 0;\r
+ y += s.offset_y || 0;\r
+ vp.w -= 4;\r
+ vp.h -= 4;\r
+\r
+ // Move inside viewport if not submenu\r
+ if (s.constrain) {\r
+ w = co.clientWidth - ot;\r
+ h = co.clientHeight - ot;\r
+ mx = vp.x + vp.w;\r
+ my = vp.y + vp.h;\r
+\r
+ if ((x + s.vp_offset_x + w) > mx)\r
+ x = px ? px - w : Math.max(0, (mx - s.vp_offset_x) - w);\r
+\r
+ if ((y + s.vp_offset_y + h) > my)\r
+ y = Math.max(0, (my - s.vp_offset_y) - h);\r
+ }\r
+\r
+ DOM.setStyles(co, {left : x , top : y});\r
+ t.element.update();\r
+\r
+ t.isMenuVisible = 1;\r
+ t.mouseClickFunc = Event.add(co, t.fixIE ? 'mousedown' : 'click', function(e) {\r
+ var m;\r
+\r
+ e = e.target;\r
+\r
+ if (e && (e = DOM.getParent(e, 'TR')) && !DOM.hasClass(e, 'mceMenuItemSub')) {\r
+ m = t.items[e.id];\r
+\r
+ if (m.isDisabled())\r
+ return;\r
+\r
+ dm = t;\r
+\r
+ while (dm) {\r
+ if (dm.hideMenu)\r
+ dm.hideMenu();\r
+\r
+ dm = dm.settings.parent;\r
+ }\r
+\r
+ if (m.settings.onclick)\r
+ m.settings.onclick(e);\r
+\r
+ return Event.cancel(e); // Cancel to fix onbeforeunload problem\r
+ }\r
+ });\r
+\r
+ if (t.hasMenus()) {\r
+ t.mouseOverFunc = Event.add(co, 'mouseover', function(e) {\r
+ var m, r, mi;\r
+\r
+ e = e.target;\r
+ if (e && (e = DOM.getParent(e, 'TR'))) {\r
+ m = t.items[e.id];\r
+\r
+ if (t.lastMenu)\r
+ t.lastMenu.collapse(1);\r
+\r
+ if (m.isDisabled())\r
+ return;\r
+\r
+ if (e && DOM.hasClass(e, 'mceMenuItemSub')) {\r
+ //p = DOM.getPos(s.container);\r
+ r = DOM.getRect(e);\r
+ m.showMenu((r.x + r.w - ot), r.y - ot, r.x);\r
+ t.lastMenu = m;\r
+ DOM.addClass(DOM.get(m.id).firstChild, 'mceMenuItemActive');\r
+ }\r
+ }\r
+ });\r
+ }\r
+\r
+ t.onShowMenu.dispatch(t);\r
+ },\r
+\r
+ hideMenu : function(c) {\r
+ var t = this, co = DOM.get('menu_' + t.id), e;\r
+\r
+ if (!t.isMenuVisible)\r
+ return;\r
+\r
+ Event.remove(co, 'mouseover', t.mouseOverFunc);\r
+ Event.remove(co, t.fixIE ? 'mousedown' : 'click', t.mouseClickFunc);\r
+ DOM.hide(co);\r
+ t.isMenuVisible = 0;\r
+\r
+ if (!c)\r
+ t.collapse(1);\r
+\r
+ if (t.element)\r
+ t.element.hide();\r
+\r
+ if (e = DOM.get(t.id))\r
+ DOM.removeClass(e.firstChild, 'mceMenuItemActive');\r
+\r
+ t.onHideMenu.dispatch(t);\r
+ },\r
+\r
+ add : function(o) {\r
+ var t = this, co;\r
+\r
+ o = t.parent(o);\r
+\r
+ if (t.isRendered && (co = DOM.get('menu_' + t.id)))\r
+ t._add(DOM.select('tbody', co)[0], o);\r
+\r
+ return o;\r
+ },\r
+\r
+ collapse : function(d) {\r
+ this.parent(d);\r
+ this.hideMenu(1);\r
+ },\r
+\r
+ remove : function(o) {\r
+ DOM.remove(o.id);\r
+\r
+ return this.parent(o);\r
+ },\r
+\r
+ destroy : function() {\r
+ var t = this, co = DOM.get('menu_' + t.id);\r
+\r
+ Event.remove(co, 'mouseover', t.mouseOverFunc);\r
+ Event.remove(co, 'click', t.mouseClickFunc);\r
+\r
+ if (t.element)\r
+ t.element.remove();\r
+\r
+ DOM.remove(co);\r
+ },\r
+\r
+ renderNode : function() {\r
+ var t = this, s = t.settings, n, tb, co, w;\r
+\r
+ w = DOM.create('div', {id : 'menu_' + t.id, dir : 'ltr', 'class' : s['class'], 'style' : 'position:absolute;left:0;top:0;z-index:150'});\r
+ co = DOM.add(w, 'div', {id : 'menu_' + t.id + '_co', 'class' : 'mceMenu' + (s['class'] ? ' ' + s['class'] : '')});\r
+ t.element = new Element('menu_' + t.id, {blocker : 1, container : s.container});\r
+\r
+ if (s.menu_line)\r
+ DOM.add(co, 'span', {'class' : 'mceMenuLine'});\r
+\r
+// n = DOM.add(co, 'div', {id : 'menu_' + t.id + '_co', 'class' : 'mceMenuContainer'});\r
+ n = DOM.add(co, 'table', {id : 'menu_' + t.id + '_tbl', border : 0, cellPadding : 0, cellSpacing : 0});\r
+ tb = DOM.add(n, 'tbody');\r
+\r
+ each(t.items, function(o) {\r
+ t._add(tb, o);\r
+ });\r
+\r
+ t.rendered = true;\r
+\r
+ return w;\r
+ },\r
+\r
+ // Internal functions\r
+\r
+ _add : function(tb, o) {\r
+ var n, s = o.settings, a, ro, it;\r
+\r
+ if (s.separator) {\r
+ ro = DOM.add(tb, 'tr', {id : o.id, 'class' : 'mceMenuItemSeparator'});\r
+ DOM.add(ro, 'td', {'class' : 'mceMenuItemSeparator'});\r
+\r
+ if (n = ro.previousSibling)\r
+ DOM.addClass(n, 'mceLast');\r
+\r
+ return;\r
+ }\r
+\r
+ n = ro = DOM.add(tb, 'tr', {id : o.id, 'class' : 'mceMenuItem mceMenuItemEnabled'});\r
+ n = it = DOM.add(n, 'td');\r
+ n = a = DOM.add(n, 'a', {href : 'javascript:;', onclick : "return false;", onmousedown : 'return false;'});\r
+\r
+ DOM.addClass(it, s['class']);\r
+// n = DOM.add(n, 'span', {'class' : 'item'});\r
+ DOM.add(n, 'span', {'class' : 'mceIcon' + (s.icon ? ' mce_' + s.icon : '')});\r
+ n = DOM.add(n, s.element || 'span', {'class' : 'mceText', title : o.settings.title}, o.settings.title);\r
+\r
+ if (o.settings.style)\r
+ DOM.setAttrib(n, 'style', o.settings.style);\r
+\r
+ if (tb.childNodes.length == 1)\r
+ DOM.addClass(ro, 'mceFirst');\r
+\r
+ if ((n = ro.previousSibling) && DOM.hasClass(n, 'mceMenuItemSeparator'))\r
+ DOM.addClass(ro, 'mceFirst');\r
+\r
+ if (o.collapse)\r
+ DOM.addClass(ro, 'mceMenuItemSub');\r
+\r
+ if (n = ro.previousSibling)\r
+ DOM.removeClass(n, 'mceLast');\r
+\r
+ DOM.addClass(ro, 'mceLast');\r
+ }\r
+\r
+ });\r
+})();\r
+/* file:jscripts/tiny_mce/classes/ui/Button.js */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM;\r
+\r
+ tinymce.create('tinymce.ui.Button:tinymce.ui.Control', {\r
+ Button : function(id, s) {\r
+ this.parent(id, s);\r
+ this.classPrefix = 'mceButton';\r
+ },\r
+\r
+ renderHTML : function() {\r
+ var s = this.settings, h = '<a id="' + this.id + '" href="javascript:;" class="mceButton mceButtonEnabled ' + s['class'] + '" onmousedown="return false;" onclick="return false;" title="' + DOM.encode(s.title) + '">';\r
+\r
+ if (s.image)\r
+ h += '<img class="mceIcon" src="' + s.image + '" /></a>';\r
+ else\r
+ h += '<span class="mceIcon ' + s['class'] + '"></span></a>';\r
+\r
+ return h;\r
+ },\r
+\r
+ postRender : function() {\r
+ var t = this, s = t.settings;\r
+\r
+ tinymce.dom.Event.add(t.id, 'click', function(e) {\r
+ if (!t.isDisabled())\r
+ return s.onclick.call(s.scope, e);\r
+ });\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/ui/ListBox.js */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher;\r
+\r
+ tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control', {\r
+ ListBox : function(id, s) {\r
+ var t = this;\r
+\r
+ t.parent(id, s);\r
+ t.items = [];\r
+ t.onChange = new Dispatcher(t);\r
+ t.onPostRender = new Dispatcher(t);\r
+ t.onAdd = new Dispatcher(t);\r
+ t.onRenderMenu = new tinymce.util.Dispatcher(this);\r
+ t.classPrefix = 'mceListBox';\r
+ },\r
+\r
+ select : function(v) {\r
+ var t = this, e, fv;\r
+\r
+ // Do we need to do something?\r
+ if (v != t.selectedValue) {\r
+ e = DOM.get(t.id + '_text');\r
+ t.selectedValue = v;\r
+\r
+ // Find item\r
+ each(t.items, function(o) {\r
+ if (o.value == v) {\r
+ DOM.setHTML(e, DOM.encode(o.title));\r
+ fv = 1;\r
+ return false;\r
+ }\r
+ });\r
+\r
+ // If no item was found then present title\r
+ if (!fv) {\r
+ DOM.setHTML(e, DOM.encode(t.settings.title));\r
+ DOM.addClass(e, 'mceTitle');\r
+ e = 0;\r
+ return;\r
+ } else\r
+ DOM.removeClass(e, 'mceTitle');\r
+ }\r
+\r
+ e = 0;\r
+ },\r
+\r
+ add : function(n, v, o) {\r
+ var t = this;\r
+\r
+ o = o || {};\r
+ o = tinymce.extend(o, {\r
+ title : n,\r
+ value : v\r
+ });\r
+\r
+ t.items.push(o);\r
+ t.onAdd.dispatch(t, o);\r
+ },\r
+\r
+ getLength : function() {\r
+ return this.items.length;\r
+ },\r
+\r
+ renderHTML : function() {\r
+ var h = '', t = this, s = t.settings;\r
+\r
+ h = '<table id="' + t.id + '" cellpadding="0" cellspacing="0" class="mceListBox mceListBoxEnabled' + (s['class'] ? (' ' + s['class']) : '') + '"><tbody><tr>';\r
+ h += '<td>' + DOM.createHTML('a', {id : t.id + '_text', href : 'javascript:;', 'class' : 'mceText', onclick : "return false;", onmousedown : 'return false;'}, DOM.encode(t.settings.title)) + '</td>';\r
+ h += '<td>' + DOM.createHTML('a', {id : t.id + '_open', href : 'javascript:;', 'class' : 'mceOpen', onclick : "return false;", onmousedown : 'return false;'}, '<span></span>') + '</td>';\r
+ h += '</tr></tbody></table>';\r
+\r
+ return h;\r
+ },\r
+\r
+ showMenu : function() {\r
+ var t = this, p1, p2, e = DOM.get(this.id), m;\r
+\r
+ if (t.isDisabled() || t.items.length == 0)\r
+ return;\r
+\r
+ if (!t.isMenuRendered) {\r
+ t.renderMenu();\r
+ t.isMenuRendered = true;\r
+ }\r
+\r
+ p1 = DOM.getPos(this.settings.menu_container);\r
+ p2 = DOM.getPos(e);\r
+\r
+ m = t.menu;\r
+ m.settings.offset_x = p2.x;\r
+ m.settings.offset_y = p2.y;\r
+\r
+ // Select in menu\r
+ if (t.oldID)\r
+ m.items[t.oldID].setSelected(0);\r
+\r
+ each(t.items, function(o) {\r
+ if (o.value === t.selectedValue) {\r
+ m.items[o.id].setSelected(1);\r
+ t.oldID = o.id;\r
+ }\r
+ });\r
+\r
+ m.showMenu(0, e.clientHeight);\r
+\r
+ Event.add(document, 'mousedown', t.hideMenu, t);\r
+ DOM.addClass(t.id, 'mceListBoxSelected');\r
+ },\r
+\r
+ hideMenu : function(e) {\r
+ var t = this;\r
+\r
+ if (!e || !DOM.getParent(e.target, function(n) {return DOM.hasClass(n, 'mceMenu');})) {\r
+ DOM.removeClass(t.id, 'mceListBoxSelected');\r
+ Event.remove(document, 'mousedown', t.hideMenu, t);\r
+\r
+ if (t.menu)\r
+ t.menu.hideMenu();\r
+ }\r
+ },\r
+\r
+ renderMenu : function() {\r
+ var t = this, m;\r
+\r
+ m = t.settings.control_manager.createDropMenu(t.id + '_menu', {\r
+ menu_line : 1,\r
+ 'class' : 'mceListBoxMenu mceNoIcons',\r
+ max_width : 150,\r
+ max_height : 150\r
+ });\r
+\r
+ m.onHideMenu.add(t.hideMenu, t);\r
+\r
+ m.add({\r
+ title : t.settings.title,\r
+ 'class' : 'mceMenuItemTitle'\r
+ }).setDisabled(1);\r
+\r
+ each(t.items, function(o) {\r
+ o.id = DOM.uniqueId();\r
+ o.onclick = function() {\r
+ if (t.settings.onselect(o.value) !== false)\r
+ t.select(o.value); // Must be runned after\r
+ };\r
+\r
+ m.add(o);\r
+ });\r
+\r
+ t.onRenderMenu.dispatch(t, m);\r
+ t.menu = m;\r
+ },\r
+\r
+ postRender : function() {\r
+ var t = this;\r
+\r
+ Event.add(t.id, 'click', t.showMenu, t);\r
+\r
+ // Old IE doesn't have hover on all elements\r
+ if (tinymce.isIE6 || !DOM.boxModel) {\r
+ Event.add(t.id, 'mouseover', function() {\r
+ if (!DOM.hasClass(t.id, 'mceListBoxDisabled'))\r
+ DOM.addClass(t.id, 'mceListBoxHover');\r
+ });\r
+\r
+ Event.add(t.id, 'mouseout', function() {\r
+ if (!DOM.hasClass(t.id, 'mceListBoxDisabled'))\r
+ DOM.removeClass(t.id, 'mceListBoxHover');\r
+ });\r
+ }\r
+\r
+ t.onPostRender.dispatch(t, DOM.get(t.id));\r
+ }\r
+\r
+ });\r
+})();\r
+/* file:jscripts/tiny_mce/classes/ui/NativeListBox.js */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, Dispatcher = tinymce.util.Dispatcher;\r
+\r
+ tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox', {\r
+ NativeListBox : function(id, s) {\r
+ this.parent(id, s);\r
+ this.classPrefix = 'mceNativeListBox';\r
+ },\r
+\r
+ setDisabled : function(s) {\r
+ DOM.get(this.id).disabled = s;\r
+ },\r
+\r
+ isDisabled : function() {\r
+ return DOM.get(this.id).disabled;\r
+ },\r
+\r
+ select : function(v) {\r
+ var e = DOM.get(this.id), ol = e.options;\r
+\r
+ v = '' + (v || '');\r
+\r
+ e.selectedIndex = 0;\r
+ each(ol, function(o, i) {\r
+ if (o.value == v) {\r
+ e.selectedIndex = i;\r
+ return false;\r
+ }\r
+ });\r
+ },\r
+\r
+ add : function(n, v, a) {\r
+ var o, t = this;\r
+\r
+ a = a || {};\r
+ a.value = v;\r
+\r
+ if (t.isRendered())\r
+ DOM.add(DOM.get(this.id), 'option', a, n);\r
+\r
+ o = {\r
+ title : n,\r
+ value : v,\r
+ attribs : a\r
+ };\r
+\r
+ t.items.push(o);\r
+ t.onAdd.dispatch(t, o);\r
+ },\r
+\r
+ getLength : function() {\r
+ return DOM.get(this.id).options.length - 1;\r
+ },\r
+\r
+ renderHTML : function() {\r
+ var h, t = this;\r
+\r
+ h = DOM.createHTML('option', {value : ''}, '-- ' + t.settings.title + ' --');\r
+\r
+ each(t.items, function(it) {\r
+ h += DOM.createHTML('option', {value : it.value}, it.title);\r
+ });\r
+\r
+ h = DOM.createHTML('select', {id : t.id, 'class' : 'mceNativeListBox'}, h);\r
+\r
+ return h;\r
+ },\r
+\r
+ postRender : function() {\r
+ var t = this, ch;\r
+\r
+ t.rendered = true;\r
+\r
+ function onChange(e) {\r
+ var v = e.target.options[e.target.selectedIndex].value;\r
+\r
+ t.onChange.dispatch(t, v);\r
+\r
+ if (t.settings.onselect)\r
+ t.settings.onselect(v);\r
+ };\r
+\r
+ Event.add(t.id, 'change', onChange);\r
+\r
+ // Accessibility keyhandler\r
+ Event.add(t.id, 'keydown', function(e) {\r
+ var bf;\r
+\r
+ Event.remove(t.id, 'change', ch);\r
+\r
+ bf = Event.add(t.id, 'blur', function() {\r
+ Event.add(t.id, 'change', onChange);\r
+ Event.remove(t.id, 'blur', bf);\r
+ });\r
+\r
+ if (e.keyCode == 13 || e.keyCode == 32) {\r
+ onChange(e);\r
+ return Event.cancel(e);\r
+ }\r
+ });\r
+\r
+ t.onPostRender.dispatch(t, DOM.get(t.id));\r
+ }\r
+\r
+ });\r
+})();\r
+/* file:jscripts/tiny_mce/classes/ui/MenuButton.js */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button', {\r
+ MenuButton : function(id, s) {\r
+ this.parent(id, s);\r
+ this.onRenderMenu = new tinymce.util.Dispatcher(this);\r
+ s.menu_container = s.menu_container || document.body;\r
+ },\r
+\r
+ showMenu : function() {\r
+ var t = this, p1, p2, e = DOM.get(t.id), m;\r
+\r
+ if (t.isDisabled())\r
+ return;\r
+\r
+ if (!t.isMenuRendered) {\r
+ t.renderMenu();\r
+ t.isMenuRendered = true;\r
+ }\r
+\r
+ p1 = DOM.getPos(t.settings.menu_container);\r
+ p2 = DOM.getPos(e);\r
+\r
+ m = t.menu;\r
+ m.settings.offset_x = p2.x;\r
+ m.settings.offset_y = p2.y;\r
+ m.settings.vp_offset_x = p2.x;\r
+ m.settings.vp_offset_y = p2.y;\r
+ m.showMenu(0, e.clientHeight);\r
+\r
+ Event.add(document, 'mousedown', t.hideMenu, t);\r
+ t.setState('Selected', 1);\r
+ },\r
+\r
+ renderMenu : function() {\r
+ var t = this, m;\r
+\r
+ m = t.settings.control_manager.createDropMenu(t.id + '_menu', {\r
+ menu_line : 1,\r
+ 'class' : this.classPrefix + 'Menu',\r
+ icons : t.settings.icons\r
+ });\r
+\r
+ m.onHideMenu.add(t.hideMenu, t);\r
+\r
+ t.onRenderMenu.dispatch(t, m);\r
+ t.menu = m;\r
+ },\r
+\r
+ hideMenu : function(e) {\r
+ var t = this;\r
+\r
+ if (!e || !DOM.getParent(e.target, function(n) {return DOM.hasClass(n, 'mceMenu');})) {\r
+ t.setState('Selected', 0);\r
+ Event.remove(document, 'mousedown', t.hideMenu, t);\r
+ if (t.menu)\r
+ t.menu.hideMenu();\r
+ }\r
+ },\r
+\r
+ postRender : function() {\r
+ var t = this, s = t.settings;\r
+\r
+ Event.add(t.id, 'click', function() {\r
+ if (!t.isDisabled()) {\r
+ if (s.onclick)\r
+ s.onclick(t.value);\r
+\r
+ t.showMenu();\r
+ }\r
+ });\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/ui/SplitButton.js */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton', {\r
+ SplitButton : function(id, s) {\r
+ this.parent(id, s);\r
+ this.classPrefix = 'mceSplitButton';\r
+ },\r
+\r
+ renderHTML : function() {\r
+ var h, t = this, s = t.settings, h1;\r
+\r
+ h = '<tbody><tr>';\r
+\r
+ if (s.image)\r
+ h1 = DOM.createHTML('img ', {src : s.image, 'class' : 'mceAction ' + s['class']});\r
+ else\r
+ h1 = DOM.createHTML('span', {'class' : 'mceAction ' + s['class']});\r
+\r
+ h += '<td>' + DOM.createHTML('a', {id : t.id + '_action', href : 'javascript:;', 'class' : 'mceAction ' + s['class'], onclick : "return false;", onmousedown : 'return false;', title : s.title}, h1) + '</td>';\r
+ \r
+ h1 = DOM.createHTML('span', {'class' : 'mceOpen ' + s['class']});\r
+ h += '<td>' + DOM.createHTML('a', {id : t.id + '_open', href : 'javascript:;', 'class' : 'mceOpen ' + s['class'], onclick : "return false;", onmousedown : 'return false;', title : s.title}, h1) + '</td>';\r
+\r
+ h += '</tr></tbody>';\r
+\r
+ return DOM.createHTML('table', {id : t.id, 'class' : 'mceSplitButton mceSplitButtonEnabled ' + s['class'], cellpadding : '0', cellspacing : '0', onmousedown : 'return false;', title : s.title}, h);\r
+ },\r
+\r
+ postRender : function() {\r
+ var t = this, s = t.settings;\r
+\r
+ if (s.onclick) {\r
+ Event.add(t.id + '_action', 'click', function() {\r
+ if (!t.isDisabled())\r
+ s.onclick(t.value);\r
+ });\r
+ }\r
+\r
+ Event.add(t.id + '_open', 'click', t.showMenu, t);\r
+\r
+ // Old IE doesn't have hover on all elements\r
+ if (tinymce.isIE6 || !DOM.boxModel) {\r
+ Event.add(t.id, 'mouseover', function() {\r
+ if (!DOM.hasClass(t.id, 'mceSplitButtonDisabled'))\r
+ DOM.addClass(t.id, 'mceSplitButtonHover');\r
+ });\r
+\r
+ Event.add(t.id, 'mouseout', function() {\r
+ if (!DOM.hasClass(t.id, 'mceSplitButtonDisabled'))\r
+ DOM.removeClass(t.id, 'mceSplitButtonHover');\r
+ });\r
+ }\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/ui/ColorSplitButton.js */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, is = tinymce.is, each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton', {\r
+ ColorSplitButton : function(id, s) {\r
+ var t = this;\r
+\r
+ t.parent(id, s);\r
+\r
+ t.settings = s = tinymce.extend({\r
+ colors : '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF',\r
+ grid_width : 8,\r
+ default_color : '#888888'\r
+ }, t.settings);\r
+\r
+ t.value = s.default_color;\r
+ },\r
+\r
+ showMenu : function() {\r
+ var t = this, r, p, e;\r
+\r
+ if (t.isDisabled())\r
+ return;\r
+\r
+ if (!t.isMenuRendered) {\r
+ t.renderMenu();\r
+ t.isMenuRendered = true;\r
+ }\r
+\r
+ e = DOM.get(t.id);\r
+ DOM.show(t.id + '_menu');\r
+ DOM.addClass(e, 'mceSplitButtonSelected');\r
+ p2 = DOM.getPos(e);\r
+ DOM.setStyles(t.id + '_menu', {\r
+ left : p2.x,\r
+ top : p2.y + e.clientHeight,\r
+ zIndex : 150\r
+ });\r
+ e = 0;\r
+\r
+ Event.add(document, 'mousedown', t.hideMenu, t);\r
+ },\r
+\r
+ hideMenu : function(e) {\r
+ var t = this;\r
+\r
+ if (!e || !DOM.getParent(e.target, function(n) {return DOM.hasClass(n, 'mceSplitButtonMenu');})) {\r
+ DOM.removeClass(t.id, 'mceSplitButtonSelected');\r
+ Event.remove(document, 'mousedown', t.hideMenu, t);\r
+ DOM.hide(t.id + '_menu');\r
+ }\r
+ },\r
+\r
+ renderMenu : function() {\r
+ var t = this, m, i = 0, s = t.settings, n, tb, tr, w;\r
+\r
+ w = DOM.add(s.menu_container, 'div', {id : t.id + '_menu', dir : 'ltr', 'class' : s['menu_class'] + ' ' + s['class'], style : 'position:absolute;left:0;top:-1000px;'});\r
+ m = DOM.add(w, 'div', {'class' : s['class'] + ' mceSplitButtonMenu'});\r
+ DOM.add(m, 'span', {'class' : 'mceMenuLine'});\r
+\r
+ n = DOM.add(m, 'table', {'class' : 'mceColorSplitMenu'});\r
+ tb = DOM.add(n, 'tbody');\r
+\r
+ // Generate color grid\r
+ i = 0;\r
+ each(is(s.colors, 'array') ? s.colors : s.colors.split(','), function(c) {\r
+ c = c.replace(/^#/, '');\r
+\r
+ if (!i--) {\r
+ tr = DOM.add(tb, 'tr');\r
+ i = s.grid_width - 1;\r
+ }\r
+\r
+ n = DOM.add(tr, 'td');\r
+\r
+ n = DOM.add(n, 'a', {\r
+ href : 'javascript:;',\r
+ style : {\r
+ backgroundColor : '#' + c\r
+ }\r
+ });\r
+\r
+ Event.add(n, 'mousedown', function() {\r
+ t.setColor('#' + c);\r
+ });\r
+ });\r
+\r
+ if (s.more_colors_func) {\r
+ n = DOM.add(tb, 'tr');\r
+ n = DOM.add(n, 'td', {colspan : s.grid_width, 'class' : 'mceMoreColors'});\r
+ n = DOM.add(n, 'a', {href : 'javascript:;', onclick : 'return false;', 'class' : 'mceMoreColors'}, s.more_colors_title);\r
+\r
+ Event.add(n, 'click', function(e) {\r
+ s.more_colors_func.call(s.more_colors_scope || this);\r
+ return Event.cancel(e); // Cancel to fix onbeforeunload problem\r
+ });\r
+ }\r
+\r
+ DOM.addClass(m, 'mceColorSplitMenu');\r
+\r
+ return w;\r
+ },\r
+\r
+ setColor : function(c) {\r
+ var t = this, p, s = this.settings, co = s.menu_container, po, cp, id = t.id + '_preview';\r
+\r
+ if (!(p = DOM.get(id))) {\r
+ DOM.setStyle(t.id + '_action', 'position', 'relative');\r
+ p = DOM.add(t.id + '_action', 'div', {id : id, 'class' : 'mceColorPreview'});\r
+ }\r
+\r
+ p.style.backgroundColor = c;\r
+\r
+ t.value = c;\r
+ t.hideMenu();\r
+ s.onselect(c);\r
+ },\r
+\r
+ destroy : function() {\r
+ this.parent();\r
+ DOM.remove(this.id + '_menu');\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/ui/Toolbar.js */\r
+\r
+tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {\r
+ renderHTML : function() {\r
+ var t = this, h = '', c, co, dom = tinymce.DOM, s = t.settings, i, pr, nx, cl;\r
+\r
+ cl = t.controls;\r
+ for (i=0; i<cl.length; i++) {\r
+ // Get current control, prev control, next control and if the control is a list box or not\r
+ co = cl[i];\r
+ pr = cl[i - 1];\r
+ nx = cl[i + 1];\r
+\r
+ // Add toolbar start\r
+ if (i === 0) {\r
+ c = 'mceToolbarStart';\r
+\r
+ if (co.Button)\r
+ c += ' mceToolbarStartButton';\r
+ else if (co.SplitButton)\r
+ c += ' mceToolbarStartSplitButton';\r
+ else if (co.ListBox)\r
+ c += ' mceToolbarStartListBox';\r
+\r
+ h += dom.createHTML('td', {'class' : c}, dom.createHTML('span', null, '<!-- IE -->'));\r
+ }\r
+\r
+ // Add toolbar end before list box and after the previous button\r
+ // This is to fix the o2k7 editor skins\r
+ if (pr && co.ListBox) {\r
+ if (pr.Button || pr.SplitButton)\r
+ h += dom.createHTML('td', {'class' : 'mceToolbarEnd'}, dom.createHTML('span', null, '<!-- IE -->'));\r
+ }\r
+\r
+ // Render control HTML\r
+\r
+ // IE 8 quick fix, needed to propertly generate a hit area for anchors\r
+ if (dom.stdMode)\r
+ h += '<td style="position: relative">' + co.renderHTML() + '</td>';\r
+ else\r
+ h += '<td>' + co.renderHTML() + '</td>';\r
+\r
+ // Add toolbar start after list box and before the next button\r
+ // This is to fix the o2k7 editor skins\r
+ if (nx && co.ListBox) {\r
+ if (nx.Button || nx.SplitButton)\r
+ h += dom.createHTML('td', {'class' : 'mceToolbarStart'}, dom.createHTML('span', null, '<!-- IE -->'));\r
+ }\r
+ }\r
+\r
+ c = 'mceToolbarEnd';\r
+\r
+ if (co.Button)\r
+ c += ' mceToolbarEndButton';\r
+ else if (co.SplitButton)\r
+ c += ' mceToolbarEndSplitButton';\r
+ else if (co.ListBox)\r
+ c += ' mceToolbarEndListBox';\r
+\r
+ h += dom.createHTML('td', {'class' : c}, dom.createHTML('span', null, '<!-- IE -->'));\r
+\r
+ return dom.createHTML('table', {id : t.id, 'class' : 'mceToolbar' + (s['class'] ? ' ' + s['class'] : ''), cellpadding : '0', cellspacing : '0', align : t.settings.align || ''}, '<tbody><tr>' + h + '</tr></tbody>');\r
+ }\r
+\r
+ });\r
+\r
+/* file:jscripts/tiny_mce/classes/AddOnManager.js */\r
+\r
+(function() {\r
+ var Dispatcher = tinymce.util.Dispatcher, each = tinymce.each;\r
+\r
+ tinymce.create('tinymce.AddOnManager', {\r
+ items : [],\r
+ urls : {},\r
+ lookup : {},\r
+ onAdd : new Dispatcher(this),\r
+\r
+ get : function(n) {\r
+ return this.lookup[n];\r
+ },\r
+\r
+ requireLangPack : function(n) {\r
+ var u, s;\r
+\r
+ if (tinymce.EditorManager.settings) {\r
+ u = this.urls[n] + '/langs/' + tinymce.EditorManager.settings.language + '.js';\r
+ s = tinymce.EditorManager.settings;\r
+\r
+ if (s) {\r
+ if (!tinymce.dom.Event.domLoaded && !s.strict_mode)\r
+ tinymce.ScriptLoader.load(u);\r
+ else\r
+ tinymce.ScriptLoader.add(u);\r
+ }\r
+ }\r
+ },\r
+\r
+ add : function(id, o) {\r
+ this.items.push(o);\r
+ this.lookup[id] = o;\r
+ this.onAdd.dispatch(this, id, o);\r
+\r
+ return o;\r
+ },\r
+\r
+ load : function(n, u, cb, s) {\r
+ if (u.indexOf('/') != 0 && u.indexOf('://') == -1)\r
+ u = tinymce.baseURL + '/' + u;\r
+\r
+ this.urls[n] = u.substring(0, u.lastIndexOf('/'));\r
+ tinymce.ScriptLoader.add(u, cb, s);\r
+ }\r
+\r
+ });\r
+\r
+ // Create plugin and theme managers\r
+ tinymce.PluginManager = new tinymce.AddOnManager();\r
+ tinymce.ThemeManager = new tinymce.AddOnManager();\r
+}());\r
+/* file:jscripts/tiny_mce/classes/EditorManager.js */\r
+\r
+(function() {\r
+ // Shorten names\r
+ var each = tinymce.each, extend = tinymce.extend, DOM = tinymce.DOM, Event = tinymce.dom.Event, ThemeManager = tinymce.ThemeManager, PluginManager = tinymce.PluginManager, explode = tinymce.explode;\r
+\r
+ tinymce.create('static tinymce.EditorManager', {\r
+ editors : {},\r
+ i18n : {},\r
+ activeEditor : null,\r
+\r
+ init : function(s) {\r
+ var t = this, pl, sl = tinymce.ScriptLoader, c;\r
+\r
+ function execCallback(se, n, s) {\r
+ var f = se[n];\r
+\r
+ if (!f)\r
+ return;\r
+\r
+ if (tinymce.is(f, 'string')) {\r
+ s = f.replace(/\.\w+$/, '');\r
+ s = s ? tinymce.resolve(s) : 0;\r
+ f = tinymce.resolve(f);\r
+ }\r
+\r
+ return f.apply(s || this, Array.prototype.slice.call(arguments, 2));\r
+ };\r
+\r
+ s = extend({\r
+ theme : "simple",\r
+ language : "en",\r
+ strict_loading_mode : document.contentType == 'application/xhtml+xml'\r
+ }, s);\r
+\r
+ t.settings = s;\r
+\r
+ // If page not loaded and strict mode isn't enabled then load them\r
+ if (!Event.domLoaded && !s.strict_loading_mode) {\r
+ // Load language\r
+ if (s.language)\r
+ sl.add(tinymce.baseURL + '/langs/' + s.language + '.js');\r
+\r
+ // Load theme\r
+ if (s.theme && s.theme.charAt(0) != '-' && !ThemeManager.urls[s.theme])\r
+ ThemeManager.load(s.theme, 'themes/' + s.theme + '/editor_template' + tinymce.suffix + '.js');\r
+\r
+ // Load plugins\r
+ if (s.plugins) {\r
+ pl = explode(s.plugins);\r
+\r
+ // Load compat2x first\r
+ if (tinymce.inArray(pl, 'compat2x') != -1)\r
+ PluginManager.load('compat2x', 'plugins/compat2x/editor_plugin' + tinymce.suffix + '.js');\r
+\r
+ // Load rest if plugins\r
+ each(pl, function(v) {\r
+ if (v && v.charAt(0) != '-' && !PluginManager.urls[v]) {\r
+ // Skip safari plugin for other browsers\r
+ if (!tinymce.isWebKit && v == 'safari')\r
+ return;\r
+\r
+ PluginManager.load(v, 'plugins/' + v + '/editor_plugin' + tinymce.suffix + '.js');\r
+ }\r
+ });\r
+ }\r
+\r
+ sl.loadQueue();\r
+ }\r
+\r
+ // Legacy call\r
+ Event.add(document, 'init', function() {\r
+ var l, co;\r
+\r
+ execCallback(s, 'onpageload');\r
+\r
+ // Verify that it's a valid browser\r
+ if (s.browsers) {\r
+ l = false;\r
+\r
+ each(explode(s.browsers), function(v) {\r
+ switch (v) {\r
+ case 'ie':\r
+ case 'msie':\r
+ if (tinymce.isIE)\r
+ l = true;\r
+ break;\r
+\r
+ case 'gecko':\r
+ if (tinymce.isGecko)\r
+ l = true;\r
+ break;\r
+\r
+ case 'safari':\r
+ case 'webkit':\r
+ if (tinymce.isWebKit)\r
+ l = true;\r
+ break;\r
+\r
+ case 'opera':\r
+ if (tinymce.isOpera)\r
+ l = true;\r
+\r
+ break;\r
+ }\r
+ });\r
+\r
+ // Not a valid one\r
+ if (!l)\r
+ return;\r
+ }\r
+\r
+ switch (s.mode) {\r
+ case "exact":\r
+ l = s.elements || '';\r
+\r
+ if(l.length > 0) {\r
+ each(explode(l), function(v) {\r
+ if (DOM.get(v))\r
+ new tinymce.Editor(v, s).render(1);\r
+ else {\r
+ c = 0;\r
+\r
+ each(document.forms, function(f) {\r
+ each(f.elements, function(e) {\r
+ if (e.name === v) {\r
+ v = 'mce_editor_' + c;\r
+ DOM.setAttrib(e, 'id', v);\r
+ new tinymce.Editor(v, s).render(1);\r
+ }\r
+ });\r
+ });\r
+ }\r
+ });\r
+ }\r
+ break;\r
+\r
+ case "textareas":\r
+ case "specific_textareas":\r
+ function hasClass(n, c) {\r
+ return new RegExp('\\b' + c + '\\b', 'g').test(n.className);\r
+ };\r
+\r
+ each(DOM.select('textarea'), function(v) {\r
+ if (s.editor_deselector && hasClass(v, s.editor_deselector))\r
+ return;\r
+\r
+ if (!s.editor_selector || hasClass(v, s.editor_selector))\r
+ new tinymce.Editor(v.id = (v.id || v.name || (v.id = DOM.uniqueId())), s).render(1);\r
+ });\r
+ break;\r
+ }\r
+\r
+ // Call onInit when all editors are initialized\r
+ if (s.oninit) {\r
+ l = co = 0;\r
+\r
+ each (t.editors, function(ed) {\r
+ co++;\r
+\r
+ if (!ed.initialized) {\r
+ // Wait for it\r
+ ed.onInit.add(function() {\r
+ l++;\r
+\r
+ // All done\r
+ if (l == co)\r
+ execCallback(s, 'oninit');\r
+ });\r
+ } else\r
+ l++;\r
+\r
+ // All done\r
+ if (l == co)\r
+ execCallback(s, 'oninit'); \r
+ });\r
+ }\r
+ });\r
+ },\r
+\r
+ get : function(id) {\r
+ return this.editors[id];\r
+ },\r
+\r
+ getInstanceById : function(id) {\r
+ return this.get(id);\r
+ },\r
+\r
+ add : function(e) {\r
+ this.editors[e.id] = e;\r
+ this._setActive(e);\r
+\r
+ return e;\r
+ },\r
+\r
+ remove : function(e) {\r
+ var t = this;\r
+\r
+ // Not in the collection\r
+ if (!t.editors[e.id])\r
+ return null;\r
+\r
+ delete t.editors[e.id];\r
+\r
+ // Select another editor since the active one was removed\r
+ if (t.activeEditor == e) {\r
+ each(t.editors, function(e) {\r
+ t._setActive(e);\r
+ return false; // Break\r
+ });\r
+ }\r
+\r
+ e._destroy();\r
+\r
+ return e;\r
+ },\r
+\r
+ execCommand : function(c, u, v) {\r
+ var t = this, ed = t.get(v);\r
+\r
+ // Manager commands\r
+ switch (c) {\r
+ case "mceFocus":\r
+ ed.focus();\r
+ return true;\r
+\r
+ case "mceAddEditor":\r
+ case "mceAddControl":\r
+ new tinymce.Editor(v, t.settings).render();\r
+ return true;\r
+\r
+ case "mceAddFrameControl":\r
+ // TODO: Implement this\r
+ return true;\r
+\r
+ case "mceRemoveEditor":\r
+ case "mceRemoveControl":\r
+ ed.remove();\r
+ return true;\r
+\r
+ case 'mceToggleEditor':\r
+ if (!ed) {\r
+ t.execCommand('mceAddControl', 0, v);\r
+ return true;\r
+ }\r
+\r
+ if (ed.isHidden())\r
+ ed.show();\r
+ else\r
+ ed.hide();\r
+\r
+ return true;\r
+ }\r
+\r
+ // Run command on active editor\r
+ if (t.activeEditor)\r
+ return t.activeEditor.execCommand(c, u, v);\r
+\r
+ return false;\r
+ },\r
+\r
+ execInstanceCommand : function(id, c, u, v) {\r
+ var ed = this.get(id);\r
+\r
+ if (ed)\r
+ return ed.execCommand(c, u, v);\r
+\r
+ return false;\r
+ },\r
+\r
+ triggerSave : function() {\r
+ each(this.editors, function(e) {\r
+ e.save();\r
+ });\r
+ },\r
+\r
+ addI18n : function(p, o) {\r
+ var lo, i18n = this.i18n;\r
+\r
+ if (!tinymce.is(p, 'string')) {\r
+ each(p, function(o, lc) {\r
+ each(o, function(o, g) {\r
+ each(o, function(o, k) {\r
+ if (g === 'common')\r
+ i18n[lc + '.' + k] = o;\r
+ else\r
+ i18n[lc + '.' + g + '.' + k] = o;\r
+ });\r
+ });\r
+ });\r
+ } else {\r
+ each(o, function(o, k) {\r
+ i18n[p + '.' + k] = o;\r
+ });\r
+ }\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _setActive : function(e) {\r
+ this.selectedInstance = this.activeEditor = e;\r
+ }\r
+\r
+ });\r
+\r
+ // Setup some URLs where the editor API is located and where the document is\r
+ tinymce.documentBaseURL = window.location.href.replace(/[\?#].*$/, '').replace(/[\/\\][^\/]+$/, '');\r
+ if (!/[\/\\]$/.test(tinymce.documentBaseURL))\r
+ tinymce.documentBaseURL += '/';\r
+\r
+ tinymce.baseURL = new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);\r
+ tinymce.EditorManager.baseURI = new tinymce.util.URI(tinymce.baseURL);\r
+\r
+ if (tinymce.EditorManager.baseURI.host != window.location.hostname && window.location.hostname)\r
+ document.domain = tinymce.relaxedDomain = window.location.hostname.replace(/.*\.(.+\..+)$/, '$1');\r
+})();\r
+\r
+// Short for editor manager window.tinyMCE is needed when TinyMCE gets loaded though a XHR call\r
+var tinyMCE = window.tinyMCE = tinymce.EditorManager;\r
+\r
+/* file:jscripts/tiny_mce/classes/Editor.js */\r
+\r
+(function() {\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, Dispatcher = tinymce.util.Dispatcher;\r
+ var each = tinymce.each, isGecko = tinymce.isGecko, isIE = tinymce.isIE, isWebKit = tinymce.isWebKit;\r
+ var is = tinymce.is, ThemeManager = tinymce.ThemeManager, PluginManager = tinymce.PluginManager, EditorManager = tinymce.EditorManager;\r
+ var inArray = tinymce.inArray, grep = tinymce.grep, explode = tinymce.explode;\r
+\r
+ tinymce.create('tinymce.Editor', {\r
+ Editor : function(id, s) {\r
+ var t = this;\r
+\r
+ t.id = t.editorId = id;\r
+ t.execCommands = {};\r
+ t.queryStateCommands = {};\r
+ t.queryValueCommands = {};\r
+ t.plugins = {};\r
+\r
+ // Add events to the editor\r
+ each([\r
+ 'onPreInit',\r
+ 'onBeforeRenderUI',\r
+ 'onPostRender',\r
+ 'onInit',\r
+ 'onRemove',\r
+ 'onActivate',\r
+ 'onDeactivate',\r
+ 'onClick',\r
+ 'onEvent',\r
+ 'onMouseUp',\r
+ 'onMouseDown',\r
+ 'onDblClick',\r
+ 'onKeyDown',\r
+ 'onKeyUp',\r
+ 'onKeyPress',\r
+ 'onContextMenu',\r
+ 'onSubmit',\r
+ 'onReset',\r
+ 'onPaste',\r
+ 'onPreProcess',\r
+ 'onPostProcess',\r
+ 'onBeforeSetContent',\r
+ 'onBeforeGetContent',\r
+ 'onSetContent',\r
+ 'onGetContent',\r
+ 'onLoadContent',\r
+ 'onSaveContent',\r
+ 'onNodeChange',\r
+ 'onChange',\r
+ 'onBeforeExecCommand',\r
+ 'onExecCommand',\r
+ 'onUndo',\r
+ 'onRedo',\r
+ 'onVisualAid',\r
+ 'onSetProgressState'\r
+ ], function(e) {\r
+ t[e] = new Dispatcher(t);\r
+ });\r
+\r
+ // Default editor config\r
+ t.settings = s = extend({\r
+ id : id,\r
+ language : 'en',\r
+ docs_language : 'en',\r
+ theme : 'simple',\r
+ skin : 'default',\r
+ delta_width : 0,\r
+ delta_height : 0,\r
+ popup_css : '',\r
+ plugins : '',\r
+ document_base_url : tinymce.documentBaseURL,\r
+ add_form_submit_trigger : 1,\r
+ submit_patch : 1,\r
+ add_unload_trigger : 1,\r
+ convert_urls : 1,\r
+ relative_urls : 1,\r
+ remove_script_host : 1,\r
+ table_inline_editing : 0,\r
+ object_resizing : 1,\r
+ cleanup : 1,\r
+ accessibility_focus : 1,\r
+ custom_shortcuts : 1,\r
+ custom_undo_redo_keyboard_shortcuts : 1,\r
+ custom_undo_redo_restore_selection : 1,\r
+ custom_undo_redo : 1,\r
+ doctype : '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',\r
+ visual_table_class : 'mceItemTable',\r
+ visual : 1,\r
+ inline_styles : true,\r
+ convert_fonts_to_spans : true,\r
+ font_size_style_values : 'xx-small,x-small,small,medium,large,x-large,xx-large',\r
+ apply_source_formatting : 1,\r
+ directionality : 'ltr',\r
+ forced_root_block : 'p',\r
+ 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,-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,-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|_value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target]',\r
+ hidden_input : 1,\r
+ padd_empty_editor : 1,\r
+ render_ui : 1,\r
+ init_theme : 1,\r
+ force_p_newlines : 1,\r
+ indentation : '30px'\r
+ }, s);\r
+\r
+ // Setup URIs\r
+ t.documentBaseURI = new tinymce.util.URI(s.document_base_url || tinymce.documentBaseURL, {\r
+ base_uri : tinyMCE.baseURI\r
+ });\r
+ t.baseURI = EditorManager.baseURI;\r
+\r
+ // Call setup\r
+ t.execCallback('setup', t);\r
+ },\r
+\r
+ render : function(nst) {\r
+ var t = this, s = t.settings, id = t.id, sl = tinymce.ScriptLoader;\r
+\r
+ // Page is not loaded yet, wait for it\r
+ if (!Event.domLoaded) {\r
+ Event.add(document, 'init', function() {\r
+ t.render();\r
+ });\r
+ return;\r
+ }\r
+\r
+ // Force strict loading mode if render us called by user and not internally\r
+ if (!nst) {\r
+ s.strict_loading_mode = 1;\r
+ tinyMCE.settings = s;\r
+ }\r
+\r
+ // Element not found, then skip initialization\r
+ if (!t.getElement())\r
+ return;\r
+\r
+ if (s.strict_loading_mode) {\r
+ sl.settings.strict_mode = s.strict_loading_mode;\r
+ tinymce.DOM.settings.strict = 1;\r
+ }\r
+\r
+ // Add hidden input for non input elements inside form elements\r
+ if (!/TEXTAREA|INPUT/i.test(t.getElement().nodeName) && s.hidden_input && DOM.getParent(id, 'form'))\r
+ DOM.insertAfter(DOM.create('input', {type : 'hidden', name : id}), id);\r
+\r
+ t.windowManager = new tinymce.WindowManager(t);\r
+\r
+ if (s.encoding == 'xml') {\r
+ t.onGetContent.add(function(ed, o) {\r
+ if (o.get)\r
+ o.content = DOM.encode(o.content);\r
+ });\r
+ }\r
+\r
+ if (s.add_form_submit_trigger) {\r
+ t.onSubmit.addToTop(function() {\r
+ if (t.initialized) {\r
+ t.save();\r
+ t.isNotDirty = 1;\r
+ }\r
+ });\r
+ }\r
+\r
+ if (s.add_unload_trigger) {\r
+ Event.add(document, 'beforeunload', function() {\r
+ if (t.initialized && !t.destroyed)\r
+ t.save({format : 'raw', no_events : true});\r
+ });\r
+ }\r
+\r
+ tinymce.addUnload(t._destroy, t);\r
+\r
+ if (s.submit_patch) {\r
+ t.onBeforeRenderUI.add(function() {\r
+ var n = t.getElement().form;\r
+\r
+ if (!n)\r
+ return;\r
+\r
+ // Already patched\r
+ if (n._mceOldSubmit)\r
+ return;\r
+\r
+ // Check page uses id="submit" or name="submit" for it's submit button\r
+ if (!n.submit.nodeType && !n.submit.length) {\r
+ t.formElement = n;\r
+ n._mceOldSubmit = n.submit;\r
+ n.submit = function() {\r
+ // Save all instances\r
+ EditorManager.triggerSave();\r
+ t.isNotDirty = 1;\r
+\r
+ return this._mceOldSubmit(this);\r
+ };\r
+ }\r
+\r
+ n = null;\r
+ });\r
+ }\r
+\r
+ // Load scripts\r
+ function loadScripts() {\r
+ if (s.language)\r
+ sl.add(tinymce.baseURL + '/langs/' + s.language + '.js');\r
+\r
+ if (s.theme.charAt(0) != '-' && !ThemeManager.urls[s.theme])\r
+ ThemeManager.load(s.theme, 'themes/' + s.theme + '/editor_template' + tinymce.suffix + '.js');\r
+\r
+ each(explode(s.plugins), function(p) {\r
+ if (p && p.charAt(0) != '-' && !PluginManager.urls[p]) {\r
+ // Skip safari plugin for other browsers\r
+ if (!isWebKit && p == 'safari')\r
+ return;\r
+\r
+ PluginManager.load(p, 'plugins/' + p + '/editor_plugin' + tinymce.suffix + '.js');\r
+ }\r
+ });\r
+\r
+ // Init when que is loaded\r
+ sl.loadQueue(function() {\r
+ if (s.ask) {\r
+ function ask() {\r
+ t.windowManager.confirm(t.getLang('edit_confirm'), function(s) {\r
+ if (s)\r
+ t.init();\r
+ else\r
+ Event.remove(t.id, 'focus', ask);\r
+ });\r
+ };\r
+\r
+ Event.add(t.id, 'focus', ask);\r
+ return;\r
+ }\r
+\r
+ if (!t.removed)\r
+ t.init();\r
+ });\r
+ };\r
+\r
+ // Load compat2x first\r
+ if (s.plugins.indexOf('compat2x') != -1) {\r
+ PluginManager.load('compat2x', 'plugins/compat2x/editor_plugin' + tinymce.suffix + '.js');\r
+ sl.loadQueue(loadScripts);\r
+ } else\r
+ loadScripts();\r
+ },\r
+\r
+ init : function() {\r
+ var n, t = this, s = t.settings, w, h, e = t.getElement(), o, ti, u, bi, bc, re;\r
+\r
+ EditorManager.add(t);\r
+\r
+ // Create theme\r
+ s.theme = s.theme.replace(/-/, '');\r
+ o = ThemeManager.get(s.theme);\r
+ t.theme = new o();\r
+\r
+ if (t.theme.init && s.init_theme)\r
+ t.theme.init(t, ThemeManager.urls[s.theme] || tinymce.documentBaseURL.replace(/\/$/, ''));\r
+\r
+ // Create all plugins\r
+ each(explode(s.plugins.replace(/\-/g, '')), function(p) {\r
+ var c = PluginManager.get(p), u = PluginManager.urls[p] || tinymce.documentBaseURL.replace(/\/$/, ''), po;\r
+\r
+ if (c) {\r
+ po = new c(t, u);\r
+\r
+ t.plugins[p] = po;\r
+\r
+ if (po.init)\r
+ po.init(t, u);\r
+ }\r
+ });\r
+\r
+ // Setup popup CSS path(s)\r
+ if (s.popup_css)\r
+ s.popup_css = t.documentBaseURI.toAbsolute(s.popup_css);\r
+ else\r
+ s.popup_css = t.baseURI.toAbsolute("themes/" + s.theme + "/skins/" + s.skin + "/dialog.css");\r
+\r
+ if (s.popup_css_add)\r
+ s.popup_css += ',' + t.documentBaseURI.toAbsolute(s.popup_css_add);\r
+\r
+ // Setup control factory\r
+ t.controlManager = new tinymce.ControlManager(t);\r
+ t.undoManager = new tinymce.UndoManager(t);\r
+\r
+ // Pass through\r
+ t.undoManager.onAdd.add(function(um, l) {\r
+ return t.onChange.dispatch(t, l, um);\r
+ });\r
+\r
+ t.undoManager.onUndo.add(function(um, l) {\r
+ return t.onUndo.dispatch(t, l, um);\r
+ });\r
+\r
+ t.undoManager.onRedo.add(function(um, l) {\r
+ return t.onRedo.dispatch(t, l, um);\r
+ });\r
+\r
+ if (s.custom_undo_redo) {\r
+ t.onExecCommand.add(function(ed, cmd, ui, val, a) {\r
+ if (cmd != 'Undo' && cmd != 'Redo' && cmd != 'mceRepaint' && (!a || !a.skip_undo))\r
+ t.undoManager.add();\r
+ });\r
+ }\r
+\r
+ t.onExecCommand.add(function(ed, c) {\r
+ // Don't refresh the select lists until caret move\r
+ if (!/^(FontName|FontSize)$/.test(c))\r
+ t.nodeChanged();\r
+ });\r
+\r
+ // Remove ghost selections on images and tables in Gecko\r
+ if (isGecko) {\r
+ function repaint(a, o) {\r
+ if (!o || !o.initial)\r
+ t.execCommand('mceRepaint');\r
+ };\r
+\r
+ t.onUndo.add(repaint);\r
+ t.onRedo.add(repaint);\r
+ t.onSetContent.add(repaint);\r
+ }\r
+\r
+ // Enables users to override the control factory\r
+ t.onBeforeRenderUI.dispatch(t, t.controlManager);\r
+\r
+ // Measure box\r
+ if (s.render_ui) {\r
+ w = s.width || e.style.width || e.clientWidth;\r
+ h = s.height || e.style.height || e.clientHeight;\r
+ t.orgDisplay = e.style.display;\r
+ re = /^[0-9\.]+(|px)$/i;\r
+\r
+ if (re.test('' + w))\r
+ w = Math.max(parseInt(w) + (o.deltaWidth || 0), 100);\r
+\r
+ if (re.test('' + h))\r
+ h = Math.max(parseInt(h) + (o.deltaHeight || 0), 100);\r
+\r
+ // Render UI\r
+ o = t.theme.renderUI({\r
+ targetNode : e,\r
+ width : w,\r
+ height : h,\r
+ deltaWidth : s.delta_width,\r
+ deltaHeight : s.delta_height\r
+ });\r
+\r
+ t.editorContainer = o.editorContainer;\r
+ }\r
+\r
+ \r
+ // Resize editor\r
+ DOM.setStyles(o.sizeContainer || o.editorContainer, {\r
+ width : w,\r
+ height : h\r
+ });\r
+\r
+ h = (o.iframeHeight || h) + ((h + '').indexOf('%') == -1 ? (o.deltaHeight || 0) : '');\r
+ if (h < 100)\r
+ h = 100;\r
+\r
+ t.iframeHTML = s.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="' + t.documentBaseURI.getURI() + '"></base>';\r
+ t.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';\r
+\r
+ if (tinymce.relaxedDomain)\r
+ t.iframeHTML += '<script type="text/javascript">document.domain = "' + tinymce.relaxedDomain + '";</script>';\r
+\r
+ bi = s.body_id || 'tinymce';\r
+ if (bi.indexOf('=') != -1) {\r
+ bi = t.getParam('body_id', '', 'hash');\r
+ bi = bi[t.id] || bi;\r
+ }\r
+\r
+ bc = s.body_class || '';\r
+ if (bc.indexOf('=') != -1) {\r
+ bc = t.getParam('body_class', '', 'hash');\r
+ bc = bc[t.id] || '';\r
+ }\r
+\r
+ t.iframeHTML += '</head><body id="' + bi + '" class="mceContentBody ' + bc + '"></body></html>';\r
+\r
+ // Domain relaxing enabled, then set document domain\r
+ if (tinymce.relaxedDomain) {\r
+ // We need to write the contents here in IE since multiple writes messes up refresh button and back button\r
+ if (isIE)\r
+ u = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.tinyMCE.get("' + t.id + '");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';\r
+ else if (tinymce.isOpera)\r
+ u = 'javascript:(function(){document.open();document.domain="' + document.domain + '";document.close();ed.setupIframe();})()'; \r
+ }\r
+\r
+ // Create iframe\r
+ n = DOM.add(o.iframeContainer, 'iframe', {\r
+ id : t.id + "_ifr",\r
+ src : u || 'javascript:""', // Workaround for HTTPS warning in IE6/7\r
+ frameBorder : '0',\r
+ style : {\r
+ width : '100%',\r
+ height : h\r
+ }\r
+ });\r
+\r
+ t.contentAreaContainer = o.iframeContainer;\r
+ DOM.get(o.editorContainer).style.display = t.orgDisplay;\r
+ DOM.get(t.id).style.display = 'none';\r
+\r
+ // Safari 2.x requires us to wait for the load event and load a real HTML doc\r
+ if (tinymce.isOldWebKit) {\r
+ Event.add(n, 'load', t.setupIframe, t);\r
+ n.src = tinymce.baseURL + '/plugins/safari/blank.htm';\r
+ } else {\r
+ if (!isIE || !tinymce.relaxedDomain)\r
+ t.setupIframe();\r
+\r
+ e = n = o = null; // Cleanup\r
+ }\r
+ },\r
+\r
+ setupIframe : function() {\r
+ var t = this, s = t.settings, e = DOM.get(t.id), d = t.getDoc(), h;\r
+\r
+ // Setup iframe body\r
+ if (!isIE || !tinymce.relaxedDomain) {\r
+ d.open();\r
+ d.write(t.iframeHTML);\r
+ d.close();\r
+ }\r
+\r
+ // Design mode needs to be added here Ctrl+A will fail otherwise\r
+ if (!isIE) {\r
+ try {\r
+ d.designMode = 'On';\r
+ } catch (ex) {\r
+ // Will fail on Gecko if the editor is placed in an hidden container element\r
+ // The design mode will be set ones the editor is focused\r
+ }\r
+ }\r
+\r
+ // IE needs to use contentEditable or it will display non secure items for HTTPS\r
+ if (isIE)\r
+ t.getBody().contentEditable = true;\r
+\r
+ // Setup objects\r
+ t.dom = new tinymce.DOM.DOMUtils(t.getDoc(), {\r
+ keep_values : true,\r
+ url_converter : t.convertURL,\r
+ url_converter_scope : t,\r
+ hex_colors : s.force_hex_style_colors,\r
+ class_filter : s.class_filter,\r
+ update_styles : 1,\r
+ fix_ie_paragraphs : 1\r
+ });\r
+\r
+ t.serializer = new tinymce.dom.Serializer({\r
+ entity_encoding : s.entity_encoding,\r
+ entities : s.entities,\r
+ valid_elements : s.verify_html === false ? '*[*]' : s.valid_elements,\r
+ extended_valid_elements : s.extended_valid_elements,\r
+ valid_child_elements : s.valid_child_elements,\r
+ invalid_elements : s.invalid_elements,\r
+ fix_table_elements : s.fix_table_elements,\r
+ fix_list_elements : s.fix_list_elements,\r
+ fix_content_duplication : s.fix_content_duplication,\r
+ convert_fonts_to_spans : s.convert_fonts_to_spans,\r
+ font_size_classes : s.font_size_classes,\r
+ font_size_style_values : s.font_size_style_values,\r
+ apply_source_formatting : s.apply_source_formatting,\r
+ remove_linebreaks : s.remove_linebreaks,\r
+ dom : t.dom\r
+ });\r
+\r
+ t.selection = new tinymce.dom.Selection(t.dom, t.getWin(), t.serializer);\r
+ t.forceBlocks = new tinymce.ForceBlocks(t, {\r
+ forced_root_block : s.forced_root_block\r
+ });\r
+ t.editorCommands = new tinymce.EditorCommands(t);\r
+\r
+ // Pass through\r
+ t.serializer.onPreProcess.add(function(se, o) {\r
+ return t.onPreProcess.dispatch(t, o, se);\r
+ });\r
+\r
+ t.serializer.onPostProcess.add(function(se, o) {\r
+ return t.onPostProcess.dispatch(t, o, se);\r
+ });\r
+\r
+ t.onPreInit.dispatch(t);\r
+\r
+ if (!s.gecko_spellcheck)\r
+ t.getBody().spellcheck = 0;\r
+\r
+ t._addEvents();\r
+\r
+ t.controlManager.onPostRender.dispatch(t, t.controlManager);\r
+ t.onPostRender.dispatch(t);\r
+\r
+ if (s.directionality)\r
+ t.getBody().dir = s.directionality;\r
+\r
+ if (s.nowrap)\r
+ t.getBody().style.whiteSpace = "nowrap";\r
+\r
+ if (s.auto_resize)\r
+ t.onNodeChange.add(t.resizeToContent, t);\r
+\r
+ if (s.custom_elements) {\r
+ function handleCustom(ed, o) {\r
+ each(explode(s.custom_elements), function(v) {\r
+ var n;\r
+\r
+ if (v.indexOf('~') === 0) {\r
+ v = v.substring(1);\r
+ n = 'span';\r
+ } else\r
+ n = 'div';\r
+\r
+ o.content = o.content.replace(new RegExp('<(' + v + ')([^>]*)>', 'g'), '<' + n + ' mce_name="$1"$2>');\r
+ o.content = o.content.replace(new RegExp('</(' + v + ')>', 'g'), '</' + n + '>');\r
+ });\r
+ };\r
+\r
+ t.onBeforeSetContent.add(handleCustom);\r
+ t.onPostProcess.add(function(ed, o) {\r
+ if (o.set)\r
+ handleCustom(ed, o)\r
+ });\r
+ }\r
+\r
+ if (s.handle_node_change_callback) {\r
+ t.onNodeChange.add(function(ed, cm, n) {\r
+ t.execCallback('handle_node_change_callback', t.id, n, -1, -1, true, t.selection.isCollapsed());\r
+ });\r
+ }\r
+\r
+ if (s.save_callback) {\r
+ t.onSaveContent.add(function(ed, o) {\r
+ var h = t.execCallback('save_callback', t.id, o.content, t.getBody());\r
+\r
+ if (h)\r
+ o.content = h;\r
+ });\r
+ }\r
+\r
+ if (s.onchange_callback) {\r
+ t.onChange.add(function(ed, l) {\r
+ t.execCallback('onchange_callback', t, l);\r
+ });\r
+ }\r
+\r
+ if (s.convert_newlines_to_brs) {\r
+ t.onBeforeSetContent.add(function(ed, o) {\r
+ if (o.initial)\r
+ o.content = o.content.replace(/\r?\n/g, '<br />');\r
+ });\r
+ }\r
+\r
+ if (s.fix_nesting && isIE) {\r
+ t.onBeforeSetContent.add(function(ed, o) {\r
+ o.content = t._fixNesting(o.content);\r
+ });\r
+ }\r
+\r
+ if (s.preformatted) {\r
+ t.onPostProcess.add(function(ed, o) {\r
+ o.content = o.content.replace(/^\s*<pre.*?>/, '');\r
+ o.content = o.content.replace(/<\/pre>\s*$/, '');\r
+\r
+ if (o.set)\r
+ o.content = '<pre class="mceItemHidden">' + o.content + '</pre>';\r
+ });\r
+ }\r
+\r
+ if (s.verify_css_classes) {\r
+ t.serializer.attribValueFilter = function(n, v) {\r
+ var s, cl;\r
+\r
+ if (n == 'class') {\r
+ // Build regexp for classes\r
+ if (!t.classesRE) {\r
+ cl = t.dom.getClasses();\r
+\r
+ if (cl.length > 0) {\r
+ s = '';\r
+\r
+ each (cl, function(o) {\r
+ s += (s ? '|' : '') + o['class'];\r
+ });\r
+\r
+ t.classesRE = new RegExp('(' + s + ')', 'gi');\r
+ }\r
+ }\r
+\r
+ return !t.classesRE || /(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v) || t.classesRE.test(v) ? v : '';\r
+ }\r
+\r
+ return v;\r
+ };\r
+ }\r
+\r
+ if (s.convert_fonts_to_spans)\r
+ t._convertFonts();\r
+\r
+ if (s.inline_styles)\r
+ t._convertInlineElements();\r
+\r
+ if (s.cleanup_callback) {\r
+ t.onBeforeSetContent.add(function(ed, o) {\r
+ o.content = t.execCallback('cleanup_callback', 'insert_to_editor', o.content, o);\r
+ });\r
+\r
+ t.onPreProcess.add(function(ed, o) {\r
+ if (o.set)\r
+ t.execCallback('cleanup_callback', 'insert_to_editor_dom', o.node, o);\r
+\r
+ if (o.get)\r
+ t.execCallback('cleanup_callback', 'get_from_editor_dom', o.node, o);\r
+ });\r
+\r
+ t.onPostProcess.add(function(ed, o) {\r
+ if (o.set)\r
+ o.content = t.execCallback('cleanup_callback', 'insert_to_editor', o.content, o);\r
+\r
+ if (o.get) \r
+ o.content = t.execCallback('cleanup_callback', 'get_from_editor', o.content, o);\r
+ });\r
+ }\r
+\r
+ if (s.save_callback) {\r
+ t.onGetContent.add(function(ed, o) {\r
+ if (o.save)\r
+ o.content = t.execCallback('save_callback', t.id, o.content, t.getBody());\r
+ });\r
+ }\r
+\r
+ if (s.handle_event_callback) {\r
+ t.onEvent.add(function(ed, e, o) {\r
+ if (t.execCallback('handle_event_callback', e, ed, o) === false)\r
+ Event.cancel(e);\r
+ });\r
+ }\r
+\r
+ t.onSetContent.add(function() {\r
+ // Safari needs some time, it will crash the browser when a link is created otherwise\r
+ // I think this crash issue is resolved in the latest 3.0.4\r
+ //window.setTimeout(function() {\r
+ t.addVisual(t.getBody());\r
+ //}, 1);\r
+ });\r
+\r
+ // Remove empty contents\r
+ if (s.padd_empty_editor) {\r
+ t.onPostProcess.add(function(ed, o) {\r
+ o.content = o.content.replace(/^<p>( |#160;|\s)<\/p>$/, '');\r
+ });\r
+ }\r
+\r
+ if (isGecko) {\r
+ try {\r
+ // Design mode must be set here once again to fix a bug where\r
+ // Ctrl+A/Delete/Backspace didn't work if the editor was added using mceAddControl then removed then added again\r
+ d.designMode = 'Off';\r
+ d.designMode = 'On';\r
+ } catch (ex) {\r
+ // Will fail on Gecko if the editor is placed in an hidden container element\r
+ // The design mode will be set ones the editor is focused\r
+ }\r
+ }\r
+\r
+ // A small timeout was needed since firefox will remove. Bug: #1838304\r
+ setTimeout(function () {\r
+ if (t.removed)\r
+ return;\r
+\r
+ t.load({initial : true, format : (s.cleanup_on_startup ? 'html' : 'raw')});\r
+ t.startContent = t.getContent({format : 'raw'});\r
+ t.undoManager.add({initial : true});\r
+ t.initialized = true;\r
+\r
+ t.onInit.dispatch(t);\r
+ t.execCallback('setupcontent_callback', t.id, t.getBody(), t.getDoc());\r
+ t.execCallback('init_instance_callback', t);\r
+ t.focus(true);\r
+ t.nodeChanged({initial : 1});\r
+\r
+ // Load specified content CSS last\r
+ if (s.content_css) {\r
+ tinymce.each(explode(s.content_css), function(u) {\r
+ t.dom.loadCSS(t.documentBaseURI.toAbsolute(u));\r
+ });\r
+ }\r
+\r
+ // Handle auto focus\r
+ if (s.auto_focus) {\r
+ setTimeout(function () {\r
+ var ed = EditorManager.get(s.auto_focus);\r
+\r
+ ed.selection.select(ed.getBody(), 1);\r
+ ed.selection.collapse(1);\r
+ ed.getWin().focus();\r
+ }, 100);\r
+ }\r
+ }, 1);\r
+ \r
+ e = null;\r
+ },\r
+\r
+ \r
+ focus : function(sf) {\r
+ var oed, t = this;\r
+\r
+ if (!sf) {\r
+ t.getWin().focus();\r
+\r
+ }\r
+\r
+ if (EditorManager.activeEditor != t) {\r
+ if ((oed = EditorManager.activeEditor) != null)\r
+ oed.onDeactivate.dispatch(oed, t);\r
+\r
+ t.onActivate.dispatch(t, oed);\r
+ }\r
+\r
+ EditorManager._setActive(t);\r
+ },\r
+\r
+ execCallback : function(n) {\r
+ var t = this, f = t.settings[n], s;\r
+\r
+ if (!f)\r
+ return;\r
+\r
+ // Look through lookup\r
+ if (t.callbackLookup && (s = t.callbackLookup[n])) {\r
+ f = s.func;\r
+ s = s.scope;\r
+ }\r
+\r
+ if (is(f, 'string')) {\r
+ s = f.replace(/\.\w+$/, '');\r
+ s = s ? tinymce.resolve(s) : 0;\r
+ f = tinymce.resolve(f);\r
+ t.callbackLookup = t.callbackLookup || {};\r
+ t.callbackLookup[n] = {func : f, scope : s};\r
+ }\r
+\r
+ return f.apply(s || t, Array.prototype.slice.call(arguments, 1));\r
+ },\r
+\r
+ translate : function(s) {\r
+ var c = this.settings.language, i18n = EditorManager.i18n;\r
+\r
+ if (!s)\r
+ return '';\r
+\r
+ return i18n[c + '.' + s] || s.replace(/{\#([^}]+)\}/g, function(a, b) {\r
+ return i18n[c + '.' + b] || '{#' + b + '}';\r
+ });\r
+ },\r
+\r
+ getLang : function(n, dv) {\r
+ return EditorManager.i18n[this.settings.language + '.' + n] || (is(dv) ? dv : '{#' + n + '}');\r
+ },\r
+\r
+ getParam : function(n, dv, ty) {\r
+ var tr = tinymce.trim, v = is(this.settings[n]) ? this.settings[n] : dv, o;\r
+\r
+ if (ty === 'hash') {\r
+ o = {};\r
+\r
+ if (is(v, 'string')) {\r
+ each(v.split(/[;,]/), function(v) {\r
+ v = v.split('=');\r
+\r
+ if (v.length > 1)\r
+ o[tr(v[0])] = tr(v[1]);\r
+ else\r
+ o[tr(v[0])] = tr(v);\r
+ });\r
+ } else\r
+ o = v;\r
+\r
+ return o;\r
+ }\r
+\r
+ return v;\r
+ },\r
+\r
+ nodeChanged : function(o) {\r
+ var t = this, s = t.selection, n = s.getNode() || t.getBody();\r
+\r
+ // Fix for bug #1896577 it seems that this can not be fired while the editor is loading\r
+ if (t.initialized) {\r
+ t.onNodeChange.dispatch(\r
+ t,\r
+ o ? o.controlManager || t.controlManager : t.controlManager,\r
+ isIE && n.ownerDocument != t.getDoc() ? t.getBody() : n, // Fix for IE initial state\r
+ s.isCollapsed(),\r
+ o\r
+ );\r
+ }\r
+ },\r
+\r
+ addButton : function(n, s) {\r
+ var t = this;\r
+\r
+ t.buttons = t.buttons || {};\r
+ t.buttons[n] = s;\r
+ },\r
+\r
+ addCommand : function(n, f, s) {\r
+ this.execCommands[n] = {func : f, scope : s || this};\r
+ },\r
+\r
+ addQueryStateHandler : function(n, f, s) {\r
+ this.queryStateCommands[n] = {func : f, scope : s || this};\r
+ },\r
+\r
+ addQueryValueHandler : function(n, f, s) {\r
+ this.queryValueCommands[n] = {func : f, scope : s || this};\r
+ },\r
+\r
+ addShortcut : function(pa, desc, cmd_func, sc) {\r
+ var t = this, c;\r
+\r
+ if (!t.settings.custom_shortcuts)\r
+ return false;\r
+\r
+ t.shortcuts = t.shortcuts || {};\r
+\r
+ if (is(cmd_func, 'string')) {\r
+ c = cmd_func;\r
+\r
+ cmd_func = function() {\r
+ t.execCommand(c, false, null);\r
+ };\r
+ }\r
+\r
+ if (is(cmd_func, 'object')) {\r
+ c = cmd_func;\r
+\r
+ cmd_func = function() {\r
+ t.execCommand(c[0], c[1], c[2]);\r
+ };\r
+ }\r
+\r
+ each(explode(pa), function(pa) {\r
+ var o = {\r
+ func : cmd_func,\r
+ scope : sc || this,\r
+ desc : desc,\r
+ alt : false,\r
+ ctrl : false,\r
+ shift : false\r
+ };\r
+\r
+ each(explode(pa, '+'), function(v) {\r
+ switch (v) {\r
+ case 'alt':\r
+ case 'ctrl':\r
+ case 'shift':\r
+ o[v] = true;\r
+ break;\r
+\r
+ default:\r
+ o.charCode = v.charCodeAt(0);\r
+ o.keyCode = v.toUpperCase().charCodeAt(0);\r
+ }\r
+ });\r
+\r
+ t.shortcuts[(o.ctrl ? 'ctrl' : '') + ',' + (o.alt ? 'alt' : '') + ',' + (o.shift ? 'shift' : '') + ',' + o.keyCode] = o;\r
+ });\r
+\r
+ return true;\r
+ },\r
+\r
+ execCommand : function(cmd, ui, val, a) {\r
+ var t = this, s = 0, o;\r
+\r
+ if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd) && (!a || !a.skip_focus))\r
+ t.focus();\r
+\r
+ o = {};\r
+ t.onBeforeExecCommand.dispatch(t, cmd, ui, val, o);\r
+ if (o.terminate)\r
+ return false;\r
+\r
+ // Comamnd callback\r
+ if (t.execCallback('execcommand_callback', t.id, t.selection.getNode(), cmd, ui, val)) {\r
+ t.onExecCommand.dispatch(t, cmd, ui, val, a);\r
+ return true;\r
+ }\r
+\r
+ // Registred commands\r
+ if (o = t.execCommands[cmd]) {\r
+ s = o.func.call(o.scope, ui, val);\r
+ t.onExecCommand.dispatch(t, cmd, ui, val, a);\r
+ return s;\r
+ }\r
+\r
+ // Plugin commands\r
+ each(t.plugins, function(p) {\r
+ if (p.execCommand && p.execCommand(cmd, ui, val)) {\r
+ t.onExecCommand.dispatch(t, cmd, ui, val, a);\r
+ s = 1;\r
+ return false;\r
+ }\r
+ });\r
+\r
+ if (s)\r
+ return true;\r
+\r
+ // Theme commands\r
+ if (t.theme.execCommand && t.theme.execCommand(cmd, ui, val)) {\r
+ t.onExecCommand.dispatch(t, cmd, ui, val, a);\r
+ return true;\r
+ }\r
+\r
+ // Editor commands\r
+ if (t.editorCommands.execCommand(cmd, ui, val)) {\r
+ t.onExecCommand.dispatch(t, cmd, ui, val, a);\r
+ return true;\r
+ }\r
+\r
+ // Browser commands\r
+ t.getDoc().execCommand(cmd, ui, val);\r
+ t.onExecCommand.dispatch(t, cmd, ui, val, a);\r
+ },\r
+\r
+ queryCommandState : function(c) {\r
+ var t = this, o;\r
+\r
+ // Is hidden then return undefined\r
+ if (t._isHidden())\r
+ return;\r
+\r
+ // Registred commands\r
+ if (o = t.queryStateCommands[c])\r
+ return o.func.call(o.scope);\r
+\r
+ // Registred commands\r
+ o = t.editorCommands.queryCommandState(c);\r
+ if (o !== -1)\r
+ return o;\r
+\r
+ // Browser commands\r
+ try {\r
+ return this.getDoc().queryCommandState(c);\r
+ } catch (ex) {\r
+ // Fails sometimes see bug: 1896577\r
+ }\r
+ },\r
+\r
+ queryCommandValue : function(c) {\r
+ var t = this, o;\r
+\r
+ // Is hidden then return undefined\r
+ if (t._isHidden())\r
+ return;\r
+\r
+ // Registred commands\r
+ if (o = t.queryValueCommands[c])\r
+ return o.func.call(o.scope);\r
+\r
+ // Registred commands\r
+ o = t.editorCommands.queryCommandValue(c);\r
+ if (is(o))\r
+ return o;\r
+\r
+ // Browser commands\r
+ try {\r
+ return this.getDoc().queryCommandValue(c);\r
+ } catch (ex) {\r
+ // Fails sometimes see bug: 1896577\r
+ }\r
+ },\r
+\r
+ show : function() {\r
+ var t = this;\r
+\r
+ DOM.show(t.getContainer());\r
+ DOM.hide(t.id);\r
+ t.load();\r
+ },\r
+\r
+ hide : function() {\r
+ var t = this, d = t.getDoc();\r
+\r
+ // Fixed bug where IE has a blinking cursor left from the editor\r
+ if (isIE && d)\r
+ d.execCommand('SelectAll');\r
+\r
+ // We must save before we hide so Safari doesn't crash\r
+ t.save();\r
+ DOM.hide(t.getContainer());\r
+ DOM.setStyle(t.id, 'display', t.orgDisplay);\r
+ },\r
+\r
+ isHidden : function() {\r
+ return !DOM.isHidden(this.id);\r
+ },\r
+\r
+ setProgressState : function(b, ti, o) {\r
+ this.onSetProgressState.dispatch(this, b, ti, o);\r
+\r
+ return b;\r
+ },\r
+\r
+ remove : function() {\r
+ var t = this;\r
+\r
+ t.removed = 1; // Cancels post remove event execution\r
+ t.hide();\r
+ DOM.remove(t.getContainer());\r
+\r
+ t.execCallback('remove_instance_callback', t);\r
+ t.onRemove.dispatch(t);\r
+\r
+ // Clear all execCommand listeners this is required to avoid errors if the editor was removed inside another command\r
+ t.onExecCommand.listeners = [];\r
+\r
+ EditorManager.remove(t);\r
+ },\r
+\r
+ resizeToContent : function() {\r
+ var t = this;\r
+\r
+ DOM.setStyle(t.id + "_ifr", 'height', t.getBody().scrollHeight);\r
+ },\r
+\r
+ load : function(o) {\r
+ var t = this, e = t.getElement(), h;\r
+\r
+ o = o || {};\r
+ o.load = true;\r
+\r
+ h = t.setContent(is(e.value) ? e.value : e.innerHTML, o);\r
+ o.element = e;\r
+\r
+ if (!o.no_events)\r
+ t.onLoadContent.dispatch(t, o);\r
+\r
+ o.element = e = null;\r
+\r
+ return h;\r
+ },\r
+\r
+ save : function(o) {\r
+ var t = this, e = t.getElement(), h, f;\r
+\r
+ if (!t.initialized)\r
+ return;\r
+\r
+ o = o || {};\r
+ o.save = true;\r
+\r
+ o.element = e;\r
+ h = o.content = t.getContent(o);\r
+\r
+ if (!o.no_events)\r
+ t.onSaveContent.dispatch(t, o);\r
+\r
+ h = o.content;\r
+\r
+ if (!/TEXTAREA|INPUT/i.test(e.nodeName)) {\r
+ e.innerHTML = h;\r
+\r
+ // Update hidden form element\r
+ if (f = DOM.getParent(t.id, 'form')) {\r
+ each(f.elements, function(e) {\r
+ if (e.name == t.id) {\r
+ e.value = h;\r
+ return false;\r
+ }\r
+ });\r
+ }\r
+ } else\r
+ e.value = h;\r
+\r
+ o.element = e = null;\r
+\r
+ return h;\r
+ },\r
+\r
+ setContent : function(h, o) {\r
+ var t = this;\r
+\r
+ o = o || {};\r
+ o.format = o.format || 'html';\r
+ o.set = true;\r
+ o.content = h;\r
+\r
+ if (!o.no_events)\r
+ t.onBeforeSetContent.dispatch(t, o);\r
+\r
+ // Padd empty content in Gecko and Safari. Commands will otherwise fail on the content\r
+ // It will also be impossible to place the caret in the editor unless there is a BR element present\r
+ if (!tinymce.isIE && (h.length === 0 || /^\s+$/.test(h))) {\r
+ o.content = t.dom.setHTML(t.getBody(), '<br mce_bogus="1" />', 1);\r
+ o.format = 'raw';\r
+ }\r
+\r
+ o.content = t.dom.setHTML(t.getBody(), tinymce.trim(o.content));\r
+\r
+ if (o.format != 'raw' && t.settings.cleanup) {\r
+ o.getInner = true;\r
+ o.content = t.dom.setHTML(t.getBody(), t.serializer.serialize(t.getBody(), o));\r
+ }\r
+\r
+ if (!o.no_events)\r
+ t.onSetContent.dispatch(t, o);\r
+\r
+ return o.content;\r
+ },\r
+\r
+ getContent : function(o) {\r
+ var t = this, h;\r
+\r
+ o = o || {};\r
+ o.format = o.format || 'html';\r
+ o.get = true;\r
+\r
+ if (!o.no_events)\r
+ t.onBeforeGetContent.dispatch(t, o);\r
+\r
+ if (o.format != 'raw' && t.settings.cleanup) {\r
+ o.getInner = true;\r
+ h = t.serializer.serialize(t.getBody(), o);\r
+ } else\r
+ h = t.getBody().innerHTML;\r
+\r
+ h = h.replace(/^\s*|\s*$/g, '');\r
+ o = {content : h};\r
+ t.onGetContent.dispatch(t, o);\r
+\r
+ return o.content;\r
+ },\r
+\r
+ isDirty : function() {\r
+ var t = this;\r
+\r
+ return tinymce.trim(t.startContent) != tinymce.trim(t.getContent({format : 'raw', no_events : 1})) && !t.isNotDirty;\r
+ },\r
+\r
+ getContainer : function() {\r
+ var t = this;\r
+\r
+ if (!t.container)\r
+ t.container = DOM.get(t.editorContainer || t.id + '_parent');\r
+\r
+ return t.container;\r
+ },\r
+\r
+ getContentAreaContainer : function() {\r
+ return this.contentAreaContainer;\r
+ },\r
+\r
+ getElement : function() {\r
+ return DOM.get(this.settings.content_element || this.id);\r
+ },\r
+\r
+ getWin : function() {\r
+ var t = this, e;\r
+\r
+ if (!t.contentWindow) {\r
+ e = DOM.get(t.id + "_ifr");\r
+\r
+ if (e)\r
+ t.contentWindow = e.contentWindow;\r
+ }\r
+\r
+ return t.contentWindow;\r
+ },\r
+\r
+ getDoc : function() {\r
+ var t = this, w;\r
+\r
+ if (!t.contentDocument) {\r
+ w = t.getWin();\r
+\r
+ if (w)\r
+ t.contentDocument = w.document;\r
+ }\r
+\r
+ return t.contentDocument;\r
+ },\r
+\r
+ getBody : function() {\r
+ return this.bodyElement || this.getDoc().body;\r
+ },\r
+\r
+ convertURL : function(u, n, e) {\r
+ var t = this, s = t.settings;\r
+\r
+ // Use callback instead\r
+ if (s.urlconverter_callback)\r
+ return t.execCallback('urlconverter_callback', u, e, true, n);\r
+\r
+ // Don't convert link href since thats the CSS files that gets loaded into the editor also skip local file URLs\r
+ if (!s.convert_urls || (e && e.nodeName == 'LINK') || u.indexOf('file:') === 0)\r
+ return u;\r
+\r
+ // Convert to relative\r
+ if (s.relative_urls)\r
+ return t.documentBaseURI.toRelative(u);\r
+\r
+ // Convert to absolute\r
+ u = t.documentBaseURI.toAbsolute(u, s.remove_script_host);\r
+\r
+ return u;\r
+ },\r
+\r
+ addVisual : function(e) {\r
+ var t = this, s = t.settings;\r
+\r
+ e = e || t.getBody();\r
+\r
+ if (!is(t.hasVisual))\r
+ t.hasVisual = s.visual;\r
+\r
+ each(t.dom.select('table,a', e), function(e) {\r
+ var v;\r
+\r
+ switch (e.nodeName) {\r
+ case 'TABLE':\r
+ v = t.dom.getAttrib(e, 'border');\r
+\r
+ if (!v || v == '0') {\r
+ if (t.hasVisual)\r
+ t.dom.addClass(e, s.visual_table_class);\r
+ else\r
+ t.dom.removeClass(e, s.visual_table_class);\r
+ }\r
+\r
+ return;\r
+\r
+ case 'A':\r
+ v = t.dom.getAttrib(e, 'name');\r
+\r
+ if (v) {\r
+ if (t.hasVisual)\r
+ t.dom.addClass(e, 'mceItemAnchor');\r
+ else\r
+ t.dom.removeClass(e, 'mceItemAnchor');\r
+ }\r
+\r
+ return;\r
+ }\r
+ });\r
+\r
+ t.onVisualAid.dispatch(t, e, t.hasVisual);\r
+ },\r
+\r
+ // Internal functions\r
+\r
+ _addEvents : function() {\r
+ // 'focus', 'blur', 'dblclick', 'beforedeactivate', submit, reset\r
+ var t = this, i, s = t.settings, lo = {\r
+ mouseup : 'onMouseUp',\r
+ mousedown : 'onMouseDown',\r
+ click : 'onClick',\r
+ keyup : 'onKeyUp',\r
+ keydown : 'onKeyDown',\r
+ keypress : 'onKeyPress',\r
+ submit : 'onSubmit',\r
+ reset : 'onReset',\r
+ contextmenu : 'onContextMenu',\r
+ dblclick : 'onDblClick',\r
+ paste : 'onPaste' // Doesn't work in all browsers yet\r
+ };\r
+\r
+ function eventHandler(e, o) {\r
+ var ty = e.type;\r
+\r
+ // Don't fire events when it's removed\r
+ if (t.removed)\r
+ return;\r
+\r
+ // Generic event handler\r
+ if (t.onEvent.dispatch(t, e, o) !== false) {\r
+ // Specific event handler\r
+ t[lo[e.fakeType || e.type]].dispatch(t, e, o);\r
+ }\r
+ };\r
+\r
+ // Add DOM events\r
+ each(lo, function(v, k) {\r
+ switch (k) {\r
+ case 'contextmenu':\r
+ if (tinymce.isOpera) {\r
+ // Fake contextmenu on Opera\r
+ Event.add(t.getDoc(), 'mousedown', function(e) {\r
+ if (e.ctrlKey) {\r
+ e.fakeType = 'contextmenu';\r
+ eventHandler(e);\r
+ }\r
+ });\r
+ } else\r
+ Event.add(t.getDoc(), k, eventHandler);\r
+ break;\r
+\r
+ case 'paste':\r
+ Event.add(t.getBody(), k, function(e) {\r
+ var tx, h, el, r;\r
+\r
+ // Get plain text data\r
+ if (e.clipboardData)\r
+ tx = e.clipboardData.getData('text/plain');\r
+ else if (tinymce.isIE)\r
+ tx = t.getWin().clipboardData.getData('Text');\r
+\r
+ // Get HTML data\r
+ /*if (tinymce.isIE) {\r
+ el = DOM.add(document.body, 'div', {style : 'visibility:hidden;overflow:hidden;position:absolute;width:1px;height:1px'});\r
+ r = document.body.createTextRange();\r
+ r.moveToElementText(el);\r
+ r.execCommand('Paste');\r
+ h = el.innerHTML;\r
+ DOM.remove(el);\r
+ }*/\r
+\r
+ eventHandler(e, {text : tx, html : h});\r
+ });\r
+ break;\r
+\r
+ case 'submit':\r
+ case 'reset':\r
+ Event.add(t.getElement().form || DOM.getParent(t.id, 'form'), k, eventHandler);\r
+ break;\r
+\r
+ default:\r
+ Event.add(s.content_editable ? t.getBody() : t.getDoc(), k, eventHandler);\r
+ }\r
+ });\r
+\r
+ Event.add(s.content_editable ? t.getBody() : (isGecko ? t.getDoc() : t.getWin()), 'focus', function(e) {\r
+ t.focus(true);\r
+ });\r
+\r
+ \r
+ // Fixes bug where a specified document_base_uri could result in broken images\r
+ // This will also fix drag drop of images in Gecko\r
+ if (tinymce.isGecko) {\r
+ // Convert all images to absolute URLs\r
+/* t.onSetContent.add(function(ed, o) {\r
+ each(ed.dom.select('img'), function(e) {\r
+ var v;\r
+\r
+ if (v = e.getAttribute('mce_src'))\r
+ e.src = t.documentBaseURI.toAbsolute(v);\r
+ })\r
+ });*/\r
+\r
+ Event.add(t.getDoc(), 'DOMNodeInserted', function(e) {\r
+ var v;\r
+\r
+ e = e.target;\r
+\r
+ if (e.nodeType === 1 && e.nodeName === 'IMG' && (v = e.getAttribute('mce_src')))\r
+ e.src = t.documentBaseURI.toAbsolute(v);\r
+ });\r
+ }\r
+\r
+ // Set various midas options in Gecko\r
+ if (isGecko) {\r
+ function setOpts() {\r
+ var t = this, d = t.getDoc(), s = t.settings;\r
+\r
+ if (isGecko) {\r
+ if (t._isHidden()) {\r
+ try {\r
+ if (!s.content_editable)\r
+ d.designMode = 'On';\r
+ } catch (ex) {\r
+ // Fails if it's hidden\r
+ }\r
+ }\r
+\r
+ try {\r
+ // Try new Gecko method\r
+ d.execCommand("styleWithCSS", 0, false);\r
+ } catch (ex) {\r
+ // Use old method\r
+ if (!t._isHidden())\r
+ d.execCommand("useCSS", 0, true);\r
+ }\r
+\r
+ if (!s.table_inline_editing)\r
+ try {d.execCommand('enableInlineTableEditing', false, false);} catch (ex) {}\r
+\r
+ if (!s.object_resizing)\r
+ try {d.execCommand('enableObjectResizing', false, false);} catch (ex) {}\r
+ }\r
+ };\r
+\r
+ t.onBeforeExecCommand.add(setOpts);\r
+ t.onMouseDown.add(setOpts);\r
+ }\r
+\r
+ // Add node change handlers\r
+ t.onMouseUp.add(t.nodeChanged);\r
+ t.onClick.add(t.nodeChanged);\r
+ t.onKeyUp.add(function(ed, e) {\r
+ if ((e.keyCode >= 33 && e.keyCode <= 36) || (e.keyCode >= 37 && e.keyCode <= 40) || e.keyCode == 13 || e.keyCode == 45 || e.keyCode == 46 || e.keyCode == 8 || e.ctrlKey)\r
+ t.nodeChanged();\r
+ });\r
+\r
+ // Add reset handler\r
+ t.onReset.add(function() {\r
+ t.setContent(t.startContent, {format : 'raw'});\r
+ });\r
+\r
+ if (t.getParam('tab_focus')) {\r
+ function tabCancel(ed, e) {\r
+ if (e.keyCode === 9)\r
+ return Event.cancel(e);\r
+ };\r
+\r
+ function tabHandler(ed, e) {\r
+ var x, i, f, el, v;\r
+\r
+ function find(d) {\r
+ f = DOM.getParent(ed.id, 'form');\r
+ el = f.elements;\r
+\r
+ if (f) {\r
+ each(el, function(e, i) {\r
+ if (e.id == ed.id) {\r
+ x = i;\r
+ return false;\r
+ }\r
+ });\r
+\r
+ if (d > 0) {\r
+ for (i = x + 1; i < el.length; i++) {\r
+ if (el[i].type != 'hidden')\r
+ return el[i];\r
+ }\r
+ } else {\r
+ for (i = x - 1; i >= 0; i--) {\r
+ if (el[i].type != 'hidden')\r
+ return el[i];\r
+ }\r
+ }\r
+ }\r
+\r
+ return null;\r
+ };\r
+\r
+ if (e.keyCode === 9) {\r
+ v = explode(ed.getParam('tab_focus'));\r
+\r
+ if (v.length == 1) {\r
+ v[1] = v[0];\r
+ v[0] = ':prev';\r
+ }\r
+\r
+ // Find element to focus\r
+ if (e.shiftKey) {\r
+ if (v[0] == ':prev')\r
+ el = find(-1);\r
+ else\r
+ el = DOM.get(v[0]);\r
+ } else {\r
+ if (v[1] == ':next')\r
+ el = find(1);\r
+ else\r
+ el = DOM.get(v[1]);\r
+ }\r
+\r
+ if (el) {\r
+ if (ed = EditorManager.get(el.id || el.name))\r
+ ed.focus();\r
+ else\r
+ window.setTimeout(function() {window.focus();el.focus();}, 10);\r
+\r
+ return Event.cancel(e);\r
+ }\r
+ }\r
+ };\r
+\r
+ t.onKeyUp.add(tabCancel);\r
+\r
+ if (isGecko) {\r
+ t.onKeyPress.add(tabHandler);\r
+ t.onKeyDown.add(tabCancel);\r
+ } else\r
+ t.onKeyDown.add(tabHandler);\r
+ }\r
+\r
+ // Add shortcuts\r
+ if (s.custom_shortcuts) {\r
+ if (s.custom_undo_redo_keyboard_shortcuts) {\r
+ t.addShortcut('ctrl+z', t.getLang('undo_desc'), 'Undo');\r
+ t.addShortcut('ctrl+y', t.getLang('redo_desc'), 'Redo');\r
+ }\r
+\r
+ // Add default shortcuts for gecko\r
+ if (isGecko) {\r
+ t.addShortcut('ctrl+b', t.getLang('bold_desc'), 'Bold');\r
+ t.addShortcut('ctrl+i', t.getLang('italic_desc'), 'Italic');\r
+ t.addShortcut('ctrl+u', t.getLang('underline_desc'), 'Underline');\r
+ }\r
+\r
+ // BlockFormat shortcuts keys\r
+ for (i=1; i<=6; i++)\r
+ t.addShortcut('ctrl+' + i, '', ['FormatBlock', false, '<h' + i + '>']);\r
+\r
+ t.addShortcut('ctrl+7', '', ['FormatBlock', false, '<p>']);\r
+ t.addShortcut('ctrl+8', '', ['FormatBlock', false, '<div>']);\r
+ t.addShortcut('ctrl+9', '', ['FormatBlock', false, '<address>']);\r
+\r
+ function find(e) {\r
+ var v = null;\r
+\r
+ if (!e.altKey && !e.ctrlKey && !e.metaKey)\r
+ return v;\r
+\r
+ each(t.shortcuts, function(o) {\r
+ if (o.ctrl != e.ctrlKey && (!tinymce.isMac || o.ctrl == e.metaKey))\r
+ return;\r
+\r
+ if (o.alt != e.altKey)\r
+ return;\r
+\r
+ if (o.shift != e.shiftKey)\r
+ return;\r
+\r
+ if (e.keyCode == o.keyCode || (e.charCode && e.charCode == o.charCode)) {\r
+ v = o;\r
+ return false;\r
+ }\r
+ });\r
+\r
+ return v;\r
+ };\r
+\r
+ t.onKeyUp.add(function(ed, e) {\r
+ var o = find(e);\r
+\r
+ if (o)\r
+ return Event.cancel(e);\r
+ });\r
+\r
+ t.onKeyPress.add(function(ed, e) {\r
+ var o = find(e);\r
+\r
+ if (o)\r
+ return Event.cancel(e);\r
+ });\r
+\r
+ t.onKeyDown.add(function(ed, e) {\r
+ var o = find(e);\r
+\r
+ if (o) {\r
+ o.func.call(o.scope);\r
+ return Event.cancel(e);\r
+ }\r
+ });\r
+ }\r
+\r
+ if (tinymce.isIE) {\r
+ // Fix so resize will only update the width and height attributes not the styles of an image\r
+ // It will also block mceItemNoResize items\r
+ Event.add(t.getDoc(), 'controlselect', function(e) {\r
+ var re = t.resizeInfo, cb;\r
+\r
+ e = e.target;\r
+\r
+ if (re)\r
+ Event.remove(re.node, re.ev, re.cb);\r
+\r
+ if (!t.dom.hasClass(e, 'mceItemNoResize')) {\r
+ ev = 'resizeend';\r
+ cb = Event.add(e, ev, function(e) {\r
+ var v;\r
+\r
+ e = e.target;\r
+\r
+ if (v = t.dom.getStyle(e, 'width')) {\r
+ t.dom.setAttrib(e, 'width', v.replace(/[^0-9%]+/g, ''));\r
+ t.dom.setStyle(e, 'width', '');\r
+ }\r
+\r
+ if (v = t.dom.getStyle(e, 'height')) {\r
+ t.dom.setAttrib(e, 'height', v.replace(/[^0-9%]+/g, ''));\r
+ t.dom.setStyle(e, 'height', '');\r
+ }\r
+ });\r
+ } else {\r
+ ev = 'resizestart';\r
+ cb = Event.add(e, 'resizestart', Event.cancel, Event);\r
+ }\r
+\r
+ re = t.resizeInfo = {\r
+ node : e,\r
+ ev : ev,\r
+ cb : cb\r
+ };\r
+ });\r
+\r
+ t.onKeyDown.add(function(ed, e) {\r
+ switch (e.keyCode) {\r
+ case 8:\r
+ // Fix IE control + backspace browser bug\r
+ if (t.selection.getRng().item) {\r
+ t.selection.getRng().item(0).removeNode();\r
+ return Event.cancel(e);\r
+ }\r
+ }\r
+ });\r
+ }\r
+\r
+ if (tinymce.isOpera) {\r
+ t.onClick.add(function(ed, e) {\r
+ Event.prevent(e);\r
+ });\r
+ }\r
+\r
+ // Add custom undo/redo handlers\r
+ if (s.custom_undo_redo) {\r
+ function addUndo() {\r
+ t.undoManager.typing = 0;\r
+ t.undoManager.add();\r
+ };\r
+\r
+ // Add undo level on editor blur\r
+ if (tinymce.isIE) {\r
+ Event.add(t.getWin(), 'blur', function(e) {\r
+ var n;\r
+\r
+ // Check added for fullscreen bug\r
+ if (t.selection) {\r
+ n = t.selection.getNode();\r
+\r
+ // Add undo level is selection was lost to another document\r
+ if (!t.removed && n.ownerDocument && n.ownerDocument != t.getDoc())\r
+ addUndo();\r
+ }\r
+ });\r
+ } else {\r
+ Event.add(t.getDoc(), 'blur', function() {\r
+ if (t.selection && !t.removed)\r
+ addUndo();\r
+ });\r
+ }\r
+\r
+ t.onMouseDown.add(addUndo);\r
+\r
+ t.onKeyUp.add(function(ed, e) {\r
+ if ((e.keyCode >= 33 && e.keyCode <= 36) || (e.keyCode >= 37 && e.keyCode <= 40) || e.keyCode == 13 || e.keyCode == 45 || e.ctrlKey) {\r
+ t.undoManager.typing = 0;\r
+ t.undoManager.add();\r
+ }\r
+ });\r
+\r
+ t.onKeyDown.add(function(ed, e) {\r
+ // Is caracter positon keys\r
+ if ((e.keyCode >= 33 && e.keyCode <= 36) || (e.keyCode >= 37 && e.keyCode <= 40) || e.keyCode == 13 || e.keyCode == 45) {\r
+ if (t.undoManager.typing) {\r
+ t.undoManager.add();\r
+ t.undoManager.typing = 0;\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ if (!t.undoManager.typing) {\r
+ t.undoManager.add();\r
+ t.undoManager.typing = 1;\r
+ }\r
+ });\r
+ }\r
+ },\r
+\r
+ _destroy : function() {\r
+ var t = this;\r
+\r
+ if (t.formElement) {\r
+ t.formElement.submit = t.formElement._mceOldSubmit;\r
+ t.formElement._mceOldSubmit = null;\r
+ }\r
+\r
+ t.contentAreaContainer = t.formElement = t.container = t.settings.content_element = t.bodyElement = t.contentDocument = t.contentWindow = null;\r
+\r
+ if (t.selection)\r
+ t.selection = t.selection.win = t.selection.dom = t.selection.dom.doc = null;\r
+\r
+ t.destroyed = 1;\r
+ },\r
+\r
+ _convertInlineElements : function() {\r
+ var t = this, s = t.settings, dom = t.dom, v, e, na, st, sp;\r
+\r
+ function convert(ed, o) {\r
+ if (!s.inline_styles)\r
+ return;\r
+\r
+ if (o.get) {\r
+ each(t.dom.select('table,u,strike', o.node), function(n) {\r
+ switch (n.nodeName) {\r
+ case 'TABLE':\r
+ if (v = dom.getAttrib(n, 'height')) {\r
+ dom.setStyle(n, 'height', v);\r
+ dom.setAttrib(n, 'height', '');\r
+ }\r
+ break;\r
+\r
+ case 'U':\r
+ case 'STRIKE':\r
+ sp = dom.create('span', {style : dom.getAttrib(n, 'style')});\r
+ sp.style.textDecoration = n.nodeName == 'U' ? 'underline' : 'line-through';\r
+ dom.setAttrib(sp, 'mce_style', '');\r
+ dom.replace(sp, n, 1);\r
+ break;\r
+ }\r
+ });\r
+ } else if (o.set) {\r
+ each(t.dom.select('table,span', o.node), function(n) {\r
+ if (n.nodeName == 'TABLE') {\r
+ if (v = dom.getStyle(n, 'height'))\r
+ dom.setAttrib(n, 'height', v.replace(/[^0-9%]+/g, ''));\r
+ } else {\r
+ // Convert spans to elements\r
+ if (n.style.textDecoration == 'underline')\r
+ na = 'u';\r
+ else if (n.style.textDecoration == 'line-through')\r
+ na = 'strike';\r
+ else\r
+ na = '';\r
+\r
+ if (na) {\r
+ n.style.textDecoration = '';\r
+ dom.setAttrib(n, 'mce_style', '');\r
+\r
+ e = dom.create(na, {\r
+ style : dom.getAttrib(n, 'style')\r
+ });\r
+\r
+ dom.replace(e, n, 1);\r
+ }\r
+ }\r
+ });\r
+ }\r
+ };\r
+\r
+ t.onPreProcess.add(convert);\r
+\r
+ if (!s.cleanup_on_startup) {\r
+ t.onInit.add(function() {\r
+ convert(t, {node : t.getBody(), set : 1});\r
+ });\r
+ }\r
+ },\r
+\r
+ _convertFonts : function() {\r
+ var t = this, s = t.settings, dom = t.dom, sl, cl, fz, fzn, v, i, st, x, nl, sp, f, n;\r
+\r
+ // No need\r
+ if (!s.inline_styles)\r
+ return;\r
+\r
+ // Font pt values and font size names\r
+ fz = [8, 10, 12, 14, 18, 24, 36];\r
+ fzn = ['xx-small', 'x-small','small','medium','large','x-large', 'xx-large'];\r
+\r
+ if (sl = s.font_size_style_values)\r
+ sl = explode(sl);\r
+\r
+ if (cl = s.font_size_classes)\r
+ cl = explode(cl);\r
+\r
+ function convertToFonts(no) {\r
+ // Convert spans to fonts on non WebKit browsers\r
+ if (tinymce.isWebKit || !s.inline_styles)\r
+ return;\r
+\r
+ nl = t.dom.select('span', no);\r
+ for (x = nl.length - 1; x >= 0; x--) {\r
+ n = nl[x];\r
+\r
+ f = dom.create('font', {\r
+ color : dom.toHex(dom.getStyle(n, 'color')),\r
+ face : dom.getStyle(n, 'fontFamily'),\r
+ style : dom.getAttrib(n, 'style')\r
+ });\r
+\r
+ // Clear color and font family\r
+ st = f.style;\r
+ if (st.color || st.fontFamily) {\r
+ st.color = st.fontFamily = '';\r
+ dom.setAttrib(f, 'mce_style', ''); // Remove cached style data\r
+ }\r
+\r
+ if (sl) {\r
+ i = inArray(sl, dom.getStyle(n, 'fontSize'));\r
+\r
+ if (i != -1) {\r
+ dom.setAttrib(f, 'size', '' + (i + 1 || 1));\r
+ f.style.fontSize = '';\r
+ }\r
+ } else if (cl) {\r
+ i = inArray(cl, dom.getAttrib(n, 'class'));\r
+ v = dom.getStyle(n, 'fontSize');\r
+\r
+ if (i == -1 && v.indexOf('pt') > 0)\r
+ i = inArray(fz, parseInt(v));\r
+\r
+ if (i == -1)\r
+ i = inArray(fzn, v);\r
+\r
+ if (i != -1) {\r
+ dom.setAttrib(f, 'size', '' + (i + 1 || 1));\r
+ f.style.fontSize = '';\r
+ }\r
+ }\r
+\r
+ if (f.color || f.face || f.size) {\r
+ f.style.fontFamily = '';\r
+ dom.setAttrib(f, 'mce_style', '');\r
+ dom.replace(f, n, 1);\r
+ }\r
+ }\r
+ };\r
+\r
+ // Run on setup\r
+ t.onSetContent.add(function(ed, o) {\r
+ convertToFonts(ed.getBody());\r
+ });\r
+\r
+ // Run on cleanup\r
+ t.onPreProcess.add(function(ed, o) {\r
+ // Keep unit tests happy\r
+ if (!s.inline_styles)\r
+ return;\r
+\r
+ if (o.get) {\r
+ nl = t.dom.select('font', o.node);\r
+ for (x = nl.length - 1; x >= 0; x--) {\r
+ n = nl[x];\r
+\r
+ sp = dom.create('span', {\r
+ style : dom.getAttrib(n, 'style')\r
+ });\r
+\r
+ dom.setStyles(sp, {\r
+ fontFamily : dom.getAttrib(n, 'face'),\r
+ color : dom.getAttrib(n, 'color'),\r
+ backgroundColor : n.style.backgroundColor\r
+ });\r
+\r
+ if (n.size) {\r
+ if (sl)\r
+ dom.setStyle(sp, 'fontSize', sl[parseInt(n.size) - 1]);\r
+ else\r
+ dom.setAttrib(sp, 'class', cl[parseInt(n.size) - 1]);\r
+ }\r
+\r
+ dom.setAttrib(sp, 'mce_style', '');\r
+ dom.replace(sp, n, 1);\r
+ }\r
+ }\r
+ });\r
+ },\r
+\r
+ _isHidden : function() {\r
+ var s;\r
+\r
+ if (!isGecko)\r
+ return 0;\r
+\r
+ // Weird, wheres that cursor selection?\r
+ s = this.selection.getSel();\r
+ return (!s || !s.rangeCount || s.rangeCount == 0);\r
+ },\r
+\r
+ // Fix for bug #1867292\r
+ _fixNesting : function(s) {\r
+ var d = [], i;\r
+\r
+ s = s.replace(/<(\/)?([^\s>]+)[^>]*?>/g, function(a, b, c) {\r
+ var e;\r
+\r
+ // Handle end element\r
+ if (b === '/') {\r
+ if (!d.length)\r
+ return '';\r
+\r
+ if (c !== d[d.length - 1].tag) {\r
+ for (i=d.length - 1; i>=0; i--) {\r
+ if (d[i].tag === c) {\r
+ d[i].close = 1;\r
+ break;\r
+ }\r
+ }\r
+\r
+ return '';\r
+ } else {\r
+ d.pop();\r
+\r
+ if (d.length && d[d.length - 1].close) {\r
+ a = a + '</' + d[d.length - 1].tag + '>';\r
+ d.pop();\r
+ }\r
+ }\r
+ } else {\r
+ // Ignore these\r
+ if (/^(br|hr|input|meta|img|link|param)$/i.test(c))\r
+ return a;\r
+\r
+ // Ignore closed ones\r
+ if (/\/>$/.test(a))\r
+ return a;\r
+\r
+ d.push({tag : c}); // Push start element\r
+ }\r
+\r
+ return a;\r
+ });\r
+\r
+ // End all open tags\r
+ for (i=d.length - 1; i>=0; i--)\r
+ s += '</' + d[i].tag + '>';\r
+\r
+ return s;\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/EditorCommands.js */\r
+\r
+(function() {\r
+ var each = tinymce.each, isIE = tinymce.isIE, isGecko = tinymce.isGecko, isOpera = tinymce.isOpera, isWebKit = tinymce.isWebKit;\r
+\r
+ tinymce.create('tinymce.EditorCommands', {\r
+ EditorCommands : function(ed) {\r
+ this.editor = ed;\r
+ },\r
+\r
+ execCommand : function(cmd, ui, val) {\r
+ var t = this, ed = t.editor, f;\r
+\r
+ switch (cmd) {\r
+ case 'Cut':\r
+ case 'Copy':\r
+ case 'Paste':\r
+ try {\r
+ ed.getDoc().execCommand(cmd, ui, val);\r
+ } catch (ex) {\r
+ if (isGecko) {\r
+ ed.windowManager.confirm(ed.getLang('clipboard_msg'), function(s) {\r
+ if (s)\r
+ window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html', 'mceExternal');\r
+ });\r
+ } else\r
+ ed.windowManager.alert(ed.getLang('clipboard_no_support'));\r
+ }\r
+\r
+ return true;\r
+\r
+ // Ignore these\r
+ case 'mceResetDesignMode':\r
+ case 'mceBeginUndoLevel':\r
+ return true;\r
+\r
+ // Ignore these\r
+ case 'unlink':\r
+ t.UnLink();\r
+ return true;\r
+\r
+ // Bundle these together\r
+ case 'JustifyLeft':\r
+ case 'JustifyCenter':\r
+ case 'JustifyRight':\r
+ case 'JustifyFull':\r
+ t.mceJustify(cmd, cmd.substring(7).toLowerCase());\r
+ return true;\r
+\r
+ case 'mceEndUndoLevel':\r
+ case 'mceAddUndoLevel':\r
+ ed.undoManager.add();\r
+ return true;\r
+\r
+ default:\r
+ f = this[cmd];\r
+\r
+ if (f) {\r
+ f.call(this, ui, val);\r
+ return true;\r
+ }\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ Indent : function() {\r
+ var ed = this.editor, d = ed.dom, s = ed.selection, e, iv, iu;\r
+\r
+ // Setup indent level\r
+ iv = ed.settings.indentation;\r
+ iu = /[a-z%]+$/i.exec(iv);\r
+ iv = parseInt(iv);\r
+\r
+ if (ed.settings.inline_styles && (!this.queryStateInsertUnorderedList() && !this.queryStateInsertOrderedList())) {\r
+ each(this._getSelectedBlocks(), function(e) {\r
+ d.setStyle(e, 'paddingLeft', (parseInt(e.style.paddingLeft || 0) + iv) + iu);\r
+ });\r
+\r
+ return;\r
+ }\r
+\r
+ ed.getDoc().execCommand('Indent', false, null);\r
+\r
+ if (isIE) {\r
+ d.getParent(s.getNode(), function(n) {\r
+ if (n.nodeName == 'BLOCKQUOTE') {\r
+ n.dir = n.style.cssText = '';\r
+ }\r
+ });\r
+ }\r
+ },\r
+\r
+ Outdent : function() {\r
+ var ed = this.editor, d = ed.dom, s = ed.selection, e, v, iv, iu;\r
+\r
+ // Setup indent level\r
+ iv = ed.settings.indentation;\r
+ iu = /[a-z%]+$/i.exec(iv);\r
+ iv = parseInt(iv);\r
+\r
+ if (ed.settings.inline_styles && (!this.queryStateInsertUnorderedList() && !this.queryStateInsertOrderedList())) {\r
+ each(this._getSelectedBlocks(), function(e) {\r
+ v = Math.max(0, parseInt(e.style.paddingLeft || 0) - iv);\r
+ d.setStyle(e, 'paddingLeft', v ? v + iu : '');\r
+ });\r
+\r
+ return;\r
+ }\r
+\r
+ ed.getDoc().execCommand('Outdent', false, null);\r
+ },\r
+\r
+ mceSetAttribute : function(u, v) {\r
+ var ed = this.editor, d = ed.dom, e;\r
+\r
+ if (e = d.getParent(ed.selection.getNode(), d.isBlock))\r
+ d.setAttrib(e, v.name, v.value);\r
+ },\r
+\r
+ mceSetContent : function(u, v) {\r
+ this.editor.setContent(v);\r
+ },\r
+\r
+ mceToggleVisualAid : function() {\r
+ var ed = this.editor;\r
+\r
+ ed.hasVisual = !ed.hasVisual;\r
+ ed.addVisual();\r
+ },\r
+\r
+ mceReplaceContent : function(u, v) {\r
+ var s = this.editor.selection;\r
+\r
+ s.setContent(v.replace(/\{\$selection\}/g, s.getContent({format : 'text'})));\r
+ },\r
+\r
+ mceInsertLink : function(u, v) {\r
+ var ed = this.editor, e = ed.dom.getParent(ed.selection.getNode(), 'A');\r
+\r
+ if (tinymce.is(v, 'string'))\r
+ v = {href : v};\r
+\r
+ function set(e) {\r
+ each(v, function(v, k) {\r
+ ed.dom.setAttrib(e, k, v);\r
+ });\r
+ };\r
+\r
+ if (!e) {\r
+ ed.execCommand('CreateLink', false, 'javascript:mctmp(0);');\r
+ each(ed.dom.select('a'), function(e) {\r
+ if (e.href == 'javascript:mctmp(0);')\r
+ set(e);\r
+ });\r
+ } else {\r
+ if (v.href)\r
+ set(e);\r
+ else\r
+ ed.dom.remove(e, 1);\r
+ }\r
+ },\r
+\r
+ UnLink : function() {\r
+ var ed = this.editor, s = ed.selection;\r
+\r
+ if (s.isCollapsed())\r
+ s.select(s.getNode());\r
+\r
+ ed.getDoc().execCommand('unlink', false, null);\r
+ s.collapse(0);\r
+ },\r
+\r
+ FontName : function(u, v) {\r
+ var t = this, ed = t.editor, s = ed.selection, e;\r
+\r
+ if (!v) {\r
+ if (s.isCollapsed())\r
+ s.select(s.getNode());\r
+\r
+ t.RemoveFormat();\r
+ } else\r
+ ed.getDoc().execCommand('FontName', false, v);\r
+ },\r
+\r
+ queryCommandValue : function(c) {\r
+ var f = this['queryValue' + c];\r
+\r
+ if (f)\r
+ return f.call(this, c);\r
+\r
+ return false;\r
+ },\r
+\r
+ queryCommandState : function(cmd) {\r
+ var f;\r
+\r
+ switch (cmd) {\r
+ // Bundle these together\r
+ case 'JustifyLeft':\r
+ case 'JustifyCenter':\r
+ case 'JustifyRight':\r
+ case 'JustifyFull':\r
+ return this.queryStateJustify(cmd, cmd.substring(7).toLowerCase());\r
+\r
+ default:\r
+ if (f = this['queryState' + cmd])\r
+ return f.call(this, cmd);\r
+ }\r
+\r
+ return -1;\r
+ },\r
+\r
+ queryValueFontSize : function() {\r
+ var ed = this.editor, v = 0, p;\r
+\r
+ if (isOpera || isWebKit) {\r
+ if (p = ed.dom.getParent(ed.selection.getNode(), 'FONT'))\r
+ v = p.size;\r
+\r
+ return v;\r
+ }\r
+\r
+ return ed.getDoc().queryCommandValue('FontSize');\r
+ },\r
+\r
+ queryValueFontName : function() {\r
+ var ed = this.editor, v = 0, p;\r
+\r
+ if (p = ed.dom.getParent(ed.selection.getNode(), 'FONT'))\r
+ v = p.face;\r
+\r
+ if (!v)\r
+ v = ed.getDoc().queryCommandValue('FontName');\r
+\r
+ return v;\r
+ },\r
+\r
+ mceJustify : function(c, v) {\r
+ var ed = this.editor, se = ed.selection, n = se.getNode(), nn = n.nodeName, bl, nb, dom = ed.dom, rm;\r
+\r
+ if (ed.settings.inline_styles && this.queryStateJustify(c, v))\r
+ rm = 1;\r
+\r
+ bl = dom.getParent(n, ed.dom.isBlock);\r
+\r
+ if (nn == 'IMG') {\r
+ if (v == 'full')\r
+ return;\r
+\r
+ if (rm) {\r
+ if (v == 'center')\r
+ dom.setStyle(n.parentNode, 'textAlign', '');\r
+\r
+ dom.setStyle(n, 'float', '');\r
+ this.mceRepaint();\r
+ return;\r
+ }\r
+\r
+ if (v == 'center') {\r
+ // Do not change table elements\r
+ if (/^(TD|TH)$/.test(bl.nodeName))\r
+ bl = 0;\r
+\r
+ if (!bl || bl.childNodes.length > 1) {\r
+ nb = dom.create('p');\r
+ nb.appendChild(n.cloneNode(false));\r
+\r
+ if (bl)\r
+ dom.insertAfter(nb, bl);\r
+ else\r
+ dom.insertAfter(nb, n);\r
+\r
+ dom.remove(n);\r
+ n = nb.firstChild;\r
+ bl = nb;\r
+ }\r
+\r
+ dom.setStyle(bl, 'textAlign', v);\r
+ dom.setStyle(n, 'float', '');\r
+ } else {\r
+ dom.setStyle(n, 'float', v);\r
+ dom.setStyle(n.parentNode, 'textAlign', '');\r
+ }\r
+\r
+ this.mceRepaint();\r
+ return;\r
+ }\r
+\r
+ // Handle the alignment outselfs, less quirks in all browsers\r
+ if (ed.settings.inline_styles && ed.settings.forced_root_block) {\r
+ if (rm)\r
+ v = '';\r
+\r
+ each(this._getSelectedBlocks(dom.getParent(se.getStart(), dom.isBlock), dom.getParent(se.getEnd(), dom.isBlock)), function(e) {\r
+ dom.setAttrib(e, 'align', '');\r
+ dom.setStyle(e, 'textAlign', v == 'full' ? 'justify' : v);\r
+ });\r
+\r
+ return;\r
+ } else if (!rm)\r
+ ed.getDoc().execCommand(c, false, null);\r
+\r
+ if (ed.settings.inline_styles) {\r
+ if (rm) {\r
+ dom.getParent(ed.selection.getNode(), function(n) {\r
+ if (n.style && n.style.textAlign)\r
+ dom.setStyle(n, 'textAlign', '');\r
+ });\r
+\r
+ return;\r
+ }\r
+\r
+ each(dom.select('*'), function(n) {\r
+ var v = n.align;\r
+\r
+ if (v) {\r
+ if (v == 'full')\r
+ v = 'justify';\r
+\r
+ dom.setStyle(n, 'textAlign', v);\r
+ dom.setAttrib(n, 'align', '');\r
+ }\r
+ });\r
+ }\r
+ },\r
+\r
+ mceSetCSSClass : function(u, v) {\r
+ this.mceSetStyleInfo(0, {command : 'setattrib', name : 'class', value : v});\r
+ },\r
+\r
+ getSelectedElement : function() {\r
+ var t = this, ed = t.editor, dom = ed.dom, se = ed.selection, r = se.getRng(), r1, r2, sc, ec, so, eo, e, sp, ep, re;\r
+\r
+ if (se.isCollapsed() || r.item)\r
+ return se.getNode();\r
+\r
+ // Setup regexp\r
+ re = ed.settings.merge_styles_invalid_parents;\r
+ if (tinymce.is(re, 'string'))\r
+ re = new RegExp(re, 'i');\r
+\r
+ if (isIE) {\r
+ r1 = r.duplicate();\r
+ r1.collapse(true);\r
+ sc = r1.parentElement();\r
+\r
+ r2 = r.duplicate();\r
+ r2.collapse(false);\r
+ ec = r2.parentElement();\r
+\r
+ if (sc != ec) {\r
+ r1.move('character', 1);\r
+ sc = r1.parentElement();\r
+ }\r
+\r
+ if (sc == ec) {\r
+ r1 = r.duplicate();\r
+ r1.moveToElementText(sc);\r
+\r
+ if (r1.compareEndPoints('StartToStart', r) == 0 && r1.compareEndPoints('EndToEnd', r) == 0)\r
+ return re && re.test(sc.nodeName) ? null : sc;\r
+ }\r
+ } else {\r
+ function getParent(n) {\r
+ return dom.getParent(n, function(n) {return n.nodeType == 1;});\r
+ };\r
+\r
+ sc = r.startContainer;\r
+ ec = r.endContainer;\r
+ so = r.startOffset;\r
+ eo = r.endOffset;\r
+\r
+ if (!r.collapsed) {\r
+ if (sc == ec) {\r
+ if (so - eo < 2) {\r
+ if (sc.hasChildNodes()) {\r
+ sp = sc.childNodes[so];\r
+ return re && re.test(sp.nodeName) ? null : sp;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ if (sc.nodeType != 3 || ec.nodeType != 3)\r
+ return null;\r
+\r
+ if (so == 0) {\r
+ sp = getParent(sc);\r
+\r
+ if (sp && sp.firstChild != sc)\r
+ sp = null;\r
+ }\r
+\r
+ if (so == sc.nodeValue.length) {\r
+ e = sc.nextSibling;\r
+\r
+ if (e && e.nodeType == 1)\r
+ sp = sc.nextSibling;\r
+ }\r
+\r
+ if (eo == 0) {\r
+ e = ec.previousSibling;\r
+\r
+ if (e && e.nodeType == 1)\r
+ ep = e;\r
+ }\r
+\r
+ if (eo == ec.nodeValue.length) {\r
+ ep = getParent(ec);\r
+\r
+ if (ep && ep.lastChild != ec)\r
+ ep = null;\r
+ }\r
+\r
+ // Same element\r
+ if (sp == ep)\r
+ return re && sp && re.test(sp.nodeName) ? null : sp;\r
+ }\r
+\r
+ return null;\r
+ },\r
+\r
+ InsertHorizontalRule : function() {\r
+ // Fix for Gecko <hr size="1" /> issue and IE bug rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");\r
+ if (isGecko || isIE)\r
+ this.editor.selection.setContent('<hr />');\r
+ else\r
+ this.editor.getDoc().execCommand('InsertHorizontalRule', false, '');\r
+ },\r
+\r
+ RemoveFormat : function() {\r
+ var t = this, ed = t.editor, s = ed.selection, b;\r
+\r
+ // Safari breaks tables\r
+ if (isWebKit)\r
+ s.setContent(s.getContent({format : 'raw'}).replace(/(<(span|b|i|strong|em|strike) [^>]+>|<(span|b|i|strong|em|strike)>|<\/(span|b|i|strong|em|strike)>|)/g, ''), {format : 'raw'});\r
+ else\r
+ ed.getDoc().execCommand('RemoveFormat', false, null);\r
+\r
+ t.mceSetStyleInfo(0, {command : 'removeformat'});\r
+ ed.addVisual();\r
+ },\r
+\r
+ mceSetStyleInfo : function(u, v) {\r
+ var t = this, ed = t.editor, d = ed.getDoc(), dom = ed.dom, e, b, s = ed.selection, nn = v.wrapper || 'span', b = s.getBookmark(), re;\r
+\r
+ function set(n, e) {\r
+ if (n.nodeType == 1) {\r
+ switch (v.command) {\r
+ case 'setattrib':\r
+ return dom.setAttrib(n, v.name, v.value);\r
+\r
+ case 'setstyle':\r
+ return dom.setStyle(n, v.name, v.value);\r
+\r
+ case 'removeformat':\r
+ return dom.setAttrib(n, 'class', '');\r
+ }\r
+ }\r
+ };\r
+\r
+ // Setup regexp\r
+ re = ed.settings.merge_styles_invalid_parents;\r
+ if (tinymce.is(re, 'string'))\r
+ re = new RegExp(re, 'i');\r
+\r
+ // Set style info on selected element\r
+ if (e = t.getSelectedElement())\r
+ set(e, 1);\r
+ else {\r
+ // Generate wrappers and set styles on them\r
+ d.execCommand('FontName', false, '__');\r
+ each(isWebKit ? dom.select('span') : dom.select('font'), function(n) {\r
+ var sp, e;\r
+\r
+ if (dom.getAttrib(n, 'face') == '__' || n.style.fontFamily === '__') {\r
+ sp = dom.create(nn, {mce_new : '1'});\r
+\r
+ set(sp);\r
+\r
+ each (n.childNodes, function(n) {\r
+ sp.appendChild(n.cloneNode(true));\r
+ });\r
+\r
+ dom.replace(sp, n);\r
+ }\r
+ });\r
+ }\r
+\r
+ // Remove wrappers inside new ones\r
+ each(dom.select(nn).reverse(), function(n) {\r
+ var p = n.parentNode;\r
+\r
+ dom.setAttrib(n, 'mce_new', '');\r
+\r
+ // Check if it's an old span in a new wrapper\r
+ if (!dom.getAttrib(n, 'mce_new')) {\r
+ // Find new wrapper\r
+ p = dom.getParent(n, function(n) {\r
+ return n.nodeType == 1 && dom.getAttrib(n, 'mce_new');\r
+ });\r
+\r
+ if (p)\r
+ dom.remove(n, 1);\r
+ }\r
+ });\r
+\r
+ // Merge wrappers with parent wrappers\r
+ each(dom.select(nn).reverse(), function(n) {\r
+ var p = n.parentNode;\r
+\r
+ if (!p)\r
+ return;\r
+\r
+ // Has parent of the same type and only child\r
+ if (p.nodeName == nn.toUpperCase() && p.childNodes.length == 1)\r
+ return dom.remove(p, 1);\r
+\r
+ // Has parent that is more suitable to have the class and only child\r
+ if (n.nodeType == 1 && (!re || !re.test(p.nodeName)) && p.childNodes.length == 1) {\r
+ set(p); // Set style info on parent instead\r
+ dom.setAttrib(n, 'class', '');\r
+ }\r
+ });\r
+\r
+ // Remove empty wrappers\r
+ each(dom.select(nn).reverse(), function(n) {\r
+ if (!dom.getAttrib(n, 'class') && !dom.getAttrib(n, 'style'))\r
+ return dom.remove(n, 1);\r
+ });\r
+\r
+ s.moveToBookmark(b);\r
+ },\r
+\r
+ queryStateJustify : function(c, v) {\r
+ var ed = this.editor, n = ed.selection.getNode(), dom = ed.dom;\r
+\r
+ if (n && n.nodeName == 'IMG') {\r
+ if (dom.getStyle(n, 'float') == v)\r
+ return 1;\r
+\r
+ return n.parentNode.style.textAlign == v;\r
+ }\r
+\r
+ n = dom.getParent(ed.selection.getStart(), function(n) {\r
+ return n.nodeType == 1 && n.style.textAlign;\r
+ });\r
+\r
+ if (v == 'full')\r
+ v = 'justify';\r
+\r
+ if (ed.settings.inline_styles)\r
+ return (n && n.style.textAlign == v);\r
+\r
+ return ed.getDoc().queryCommandState(c);\r
+ },\r
+\r
+ HiliteColor : function(ui, val) {\r
+ var t = this, ed = t.editor, d = ed.getDoc();\r
+\r
+ function set(s) {\r
+ if (!isGecko)\r
+ return;\r
+\r
+ try {\r
+ // Try new Gecko method\r
+ d.execCommand("styleWithCSS", 0, s);\r
+ } catch (ex) {\r
+ // Use old\r
+ d.execCommand("useCSS", 0, !s);\r
+ }\r
+ };\r
+\r
+ if (isGecko || isOpera) {\r
+ set(true);\r
+ d.execCommand('hilitecolor', false, val);\r
+ set(false);\r
+ } else\r
+ d.execCommand('BackColor', false, val);\r
+ },\r
+\r
+ Undo : function() {\r
+ var ed = this.editor;\r
+\r
+ if (ed.settings.custom_undo_redo) {\r
+ ed.undoManager.undo();\r
+ ed.nodeChanged();\r
+ } else\r
+ ed.getDoc().execCommand('Undo', false, null);\r
+ },\r
+\r
+ Redo : function() {\r
+ var ed = this.editor;\r
+\r
+ if (ed.settings.custom_undo_redo) {\r
+ ed.undoManager.redo();\r
+ ed.nodeChanged();\r
+ } else\r
+ ed.getDoc().execCommand('Redo', false, null);\r
+ },\r
+\r
+ FormatBlock : function(ui, val) {\r
+ var t = this, ed = t.editor;\r
+\r
+ val = ed.settings.forced_root_block ? (val || '<p>') : val;\r
+\r
+ if (/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(ed.selection.getNode().nodeName))\r
+ t.mceRemoveNode();\r
+\r
+ if (val.indexOf('<') == -1)\r
+ val = '<' + val + '>';\r
+\r
+ if (tinymce.isGecko)\r
+ val = val.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi, '$1');\r
+\r
+ ed.getDoc().execCommand('FormatBlock', false, val);\r
+ },\r
+\r
+ mceCleanup : function() {\r
+ var ed = this.editor, s = ed.selection, b = s.getBookmark();\r
+ ed.setContent(ed.getContent());\r
+ s.moveToBookmark(b);\r
+ },\r
+\r
+ mceRemoveNode : function(ui, val) {\r
+ var ed = this.editor, s = ed.selection, b, n = val || s.getNode();\r
+\r
+ // Make sure that the body node isn't removed\r
+ if (n == ed.getBody())\r
+ return;\r
+\r
+ b = s.getBookmark();\r
+ ed.dom.remove(n, 1);\r
+ s.moveToBookmark(b);\r
+ ed.nodeChanged();\r
+ },\r
+\r
+ mceSelectNodeDepth : function(ui, val) {\r
+ var ed = this.editor, s = ed.selection, c = 0;\r
+\r
+ ed.dom.getParent(s.getNode(), function(n) {\r
+ if (n.nodeType == 1 && c++ == val) {\r
+ s.select(n);\r
+ ed.nodeChanged();\r
+ return false;\r
+ }\r
+ }, ed.getBody());\r
+ },\r
+\r
+ mceSelectNode : function(u, v) {\r
+ this.editor.selection.select(v);\r
+ },\r
+\r
+ mceInsertContent : function(ui, val) {\r
+ this.editor.selection.setContent(val);\r
+ },\r
+\r
+ mceInsertRawHTML : function(ui, val) {\r
+ var ed = this.editor;\r
+\r
+ ed.selection.setContent('tiny_mce_marker');\r
+ ed.setContent(ed.getContent().replace(/tiny_mce_marker/g, val));\r
+ },\r
+\r
+ mceRepaint : function() {\r
+ var s, b, e = this.editor;\r
+\r
+ if (tinymce.isGecko) {\r
+ try {\r
+ s = e.selection;\r
+ b = s.getBookmark(true);\r
+\r
+ if (s.getSel())\r
+ s.getSel().selectAllChildren(e.getBody());\r
+\r
+ s.collapse(true);\r
+ s.moveToBookmark(b);\r
+ } catch (ex) {\r
+ // Ignore\r
+ }\r
+ }\r
+ },\r
+\r
+ queryStateUnderline : function() {\r
+ var ed = this.editor, n;\r
+\r
+ if (n && n.nodeName == 'A')\r
+ return false;\r
+\r
+ return ed.getDoc().queryCommandState('Underline');\r
+ },\r
+\r
+ queryStateOutdent : function() {\r
+ var ed = this.editor, n;\r
+\r
+ if (ed.settings.inline_styles) {\r
+ if ((n = ed.dom.getParent(ed.selection.getStart(), ed.dom.isBlock)) && parseInt(n.style.paddingLeft) > 0)\r
+ return true;\r
+\r
+ if ((n = ed.dom.getParent(ed.selection.getEnd(), ed.dom.isBlock)) && parseInt(n.style.paddingLeft) > 0)\r
+ return true;\r
+ } else\r
+ return !!ed.dom.getParent(ed.selection.getNode(), 'BLOCKQUOTE');\r
+\r
+ return this.queryStateInsertUnorderedList() || this.queryStateInsertOrderedList();\r
+ },\r
+\r
+ queryStateInsertUnorderedList : function() {\r
+ return this.editor.dom.getParent(this.editor.selection.getNode(), 'UL');\r
+ },\r
+\r
+ queryStateInsertOrderedList : function() {\r
+ return this.editor.dom.getParent(this.editor.selection.getNode(), 'OL');\r
+ },\r
+\r
+ queryStatemceBlockQuote : function() {\r
+ return !!this.editor.dom.getParent(this.editor.selection.getStart(), function(n) {return n.nodeName === 'BLOCKQUOTE';});\r
+ },\r
+\r
+ mceBlockQuote : function() {\r
+ var t = this, ed = t.editor, s = ed.selection, dom = ed.dom, sb, eb, n, bm, bq, r, bq2, i, nl;\r
+\r
+ function getBQ(e) {\r
+ return dom.getParent(e, function(n) {return n.nodeName === 'BLOCKQUOTE';});\r
+ };\r
+\r
+ // Get start/end block\r
+ sb = dom.getParent(s.getStart(), dom.isBlock);\r
+ eb = dom.getParent(s.getEnd(), dom.isBlock);\r
+\r
+ // Remove blockquote(s)\r
+ if (bq = getBQ(sb)) {\r
+ if (sb != eb || sb.childNodes.length > 1 || (sb.childNodes.length == 1 && sb.firstChild.nodeName != 'BR'))\r
+ bm = s.getBookmark();\r
+\r
+ // Move all elements after the end block into new bq\r
+ if (getBQ(eb)) {\r
+ bq2 = bq.cloneNode(false);\r
+\r
+ while (n = eb.nextSibling)\r
+ bq2.appendChild(n.parentNode.removeChild(n));\r
+ }\r
+\r
+ // Add new bq after\r
+ if (bq2)\r
+ dom.insertAfter(bq2, bq);\r
+\r
+ // Move all selected blocks after the current bq\r
+ nl = t._getSelectedBlocks(sb, eb);\r
+ for (i = nl.length - 1; i >= 0; i--) {\r
+ dom.insertAfter(nl[i], bq);\r
+ }\r
+\r
+ // Empty bq, then remove it\r
+ if (/^\s*$/.test(bq.innerHTML))\r
+ dom.remove(bq, 1); // Keep children so boomark restoration works correctly\r
+\r
+ // Empty bq, then remote it\r
+ if (bq2 && /^\s*$/.test(bq2.innerHTML))\r
+ dom.remove(bq2, 1); // Keep children so boomark restoration works correctly\r
+\r
+ if (!bm) {\r
+ // Move caret inside empty block element\r
+ if (!isIE) {\r
+ r = ed.getDoc().createRange();\r
+ r.setStart(sb, 0);\r
+ r.setEnd(sb, 0);\r
+ s.setRng(r);\r
+ } else {\r
+ s.select(sb);\r
+ s.collapse(0);\r
+\r
+ // IE misses the empty block some times element so we must move back the caret\r
+ if (dom.getParent(s.getStart(), dom.isBlock) != sb) {\r
+ r = s.getRng();\r
+ r.move('character', -1);\r
+ r.select();\r
+ }\r
+ }\r
+ } else\r
+ t.editor.selection.moveToBookmark(bm);\r
+\r
+ return;\r
+ }\r
+\r
+ // Since IE can start with a totally empty document we need to add the first bq and paragraph\r
+ if (isIE && !sb && !eb) {\r
+ t.editor.getDoc().execCommand('Indent');\r
+ n = getBQ(s.getNode());\r
+ n.style.margin = n.dir = ''; // IE adds margin and dir to bq\r
+ return;\r
+ }\r
+\r
+ if (!sb || !eb)\r
+ return;\r
+\r
+ // If empty paragraph node then do not use bookmark\r
+ if (sb != eb || sb.childNodes.length > 1 || (sb.childNodes.length == 1 && sb.firstChild.nodeName != 'BR'))\r
+ bm = s.getBookmark();\r
+\r
+ // Move selected block elements into a bq\r
+ each(t._getSelectedBlocks(getBQ(s.getStart()), getBQ(s.getEnd())), function(e) {\r
+ // Found existing BQ add to this one\r
+ if (e.nodeName == 'BLOCKQUOTE' && !bq) {\r
+ bq = e;\r
+ return;\r
+ }\r
+\r
+ // No BQ found, create one\r
+ if (!bq) {\r
+ bq = dom.create('blockquote');\r
+ e.parentNode.insertBefore(bq, e);\r
+ }\r
+\r
+ // Add children from existing BQ\r
+ if (e.nodeName == 'BLOCKQUOTE' && bq) {\r
+ n = e.firstChild;\r
+\r
+ while (n) {\r
+ bq.appendChild(n.cloneNode(true));\r
+ n = n.nextSibling;\r
+ }\r
+\r
+ dom.remove(e);\r
+ return;\r
+ }\r
+\r
+ // Add non BQ element to BQ\r
+ bq.appendChild(dom.remove(e));\r
+ });\r
+\r
+ if (!bm) {\r
+ // Move caret inside empty block element\r
+ if (!isIE) {\r
+ r = ed.getDoc().createRange();\r
+ r.setStart(sb, 0);\r
+ r.setEnd(sb, 0);\r
+ s.setRng(r);\r
+ } else {\r
+ s.select(sb);\r
+ s.collapse(1);\r
+ }\r
+ } else\r
+ s.moveToBookmark(bm);\r
+ },\r
+/*\r
+ _mceBlockQuote : function() {\r
+ var t = this, s = t.editor.selection, b = s.getBookmark(), bq, dom = t.editor.dom;\r
+\r
+ function findBQ(e) {\r
+ return dom.getParent(e, function(n) {return n.nodeName === 'BLOCKQUOTE';});\r
+ };\r
+\r
+ // Remove blockquote(s)\r
+ if (findBQ(s.getStart())) {\r
+ each(t._getSelectedBlocks(findBQ(s.getStart()), findBQ(s.getEnd())), function(e) {\r
+ // Found BQ lets remove it\r
+ if (e.nodeName == 'BLOCKQUOTE')\r
+ dom.remove(e, 1);\r
+ });\r
+\r
+ t.editor.selection.moveToBookmark(b);\r
+ return;\r
+ }\r
+\r
+ each(t._getSelectedBlocks(findBQ(s.getStart()), findBQ(s.getEnd())), function(e) {\r
+ var n;\r
+\r
+ // Found existing BQ add to this one\r
+ if (e.nodeName == 'BLOCKQUOTE' && !bq) {\r
+ bq = e;\r
+ return;\r
+ }\r
+\r
+ // No BQ found, create one\r
+ if (!bq) {\r
+ bq = dom.create('blockquote');\r
+ e.parentNode.insertBefore(bq, e);\r
+ }\r
+\r
+ // Add children from existing BQ\r
+ if (e.nodeName == 'BLOCKQUOTE' && bq) {\r
+ n = e.firstChild;\r
+\r
+ while (n) {\r
+ bq.appendChild(n.cloneNode(true));\r
+ n = n.nextSibling;\r
+ }\r
+\r
+ dom.remove(e);\r
+\r
+ return;\r
+ }\r
+\r
+ // Add non BQ element to BQ\r
+ bq.appendChild(dom.remove(e));\r
+ });\r
+\r
+ t.editor.selection.moveToBookmark(b);\r
+ },\r
+*/\r
+ _getSelectedBlocks : function(st, en) {\r
+ var ed = this.editor, dom = ed.dom, s = ed.selection, sb, eb, n, bl = [];\r
+\r
+ sb = dom.getParent(st || s.getStart(), dom.isBlock);\r
+ eb = dom.getParent(en || s.getEnd(), dom.isBlock);\r
+\r
+ if (sb)\r
+ bl.push(sb);\r
+\r
+ if (sb && eb && sb != eb) {\r
+ n = sb;\r
+\r
+ while ((n = n.nextSibling) && n != eb) {\r
+ if (dom.isBlock(n))\r
+ bl.push(n);\r
+ }\r
+ }\r
+\r
+ if (eb && sb != eb)\r
+ bl.push(eb);\r
+\r
+ return bl;\r
+ }\r
+ });\r
+})();\r
+\r
+\r
+/* file:jscripts/tiny_mce/classes/UndoManager.js */\r
+\r
+tinymce.create('tinymce.UndoManager', {\r
+ index : 0,\r
+ data : null,\r
+ typing : 0,\r
+\r
+ UndoManager : function(ed) {\r
+ var t = this, Dispatcher = tinymce.util.Dispatcher;\r
+\r
+ t.editor = ed;\r
+ t.data = [];\r
+ t.onAdd = new Dispatcher(this);\r
+ t.onUndo = new Dispatcher(this);\r
+ t.onRedo = new Dispatcher(this);\r
+ },\r
+\r
+ add : function(l) {\r
+ var t = this, i, ed = t.editor, b, s = ed.settings, la;\r
+\r
+ l = l || {};\r
+ l.content = l.content || ed.getContent({format : 'raw', no_events : 1});\r
+\r
+ // Add undo level if needed\r
+ l.content = l.content.replace(/^\s*|\s*$/g, '');\r
+ la = t.data[t.index > 0 ? t.index - 1 : 0];\r
+ if (!l.initial && la && l.content == la.content)\r
+ return null;\r
+\r
+ // Time to compress\r
+ if (s.custom_undo_redo_levels) {\r
+ if (t.data.length > s.custom_undo_redo_levels) {\r
+ for (i = 0; i < t.data.length - 1; i++)\r
+ t.data[i] = t.data[i + 1];\r
+\r
+ t.data.length--;\r
+ t.index = t.data.length;\r
+ }\r
+ }\r
+\r
+ if (s.custom_undo_redo_restore_selection && !l.initial)\r
+ l.bookmark = b = l.bookmark || ed.selection.getBookmark();\r
+\r
+ if (t.index < t.data.length && t.data[t.index].initial)\r
+ t.index++;\r
+\r
+ // Add level\r
+ t.data.length = t.index + 1;\r
+ t.data[t.index++] = l;\r
+\r
+ if (l.initial)\r
+ t.index = 0;\r
+\r
+ // Set initial bookmark use first real undo level\r
+ if (t.data.length == 2 && t.data[0].initial)\r
+ t.data[0].bookmark = b;\r
+\r
+ t.onAdd.dispatch(t, l);\r
+ ed.isNotDirty = 0;\r
+\r
+ //console.dir(t.data);\r
+\r
+ return l;\r
+ },\r
+\r
+ undo : function() {\r
+ var t = this, ed = t.editor, l = l, i;\r
+\r
+ if (t.typing) {\r
+ t.add();\r
+ t.typing = 0;\r
+ }\r
+\r
+ if (t.index > 0) {\r
+ // If undo on last index then take snapshot\r
+ if (t.index == t.data.length && t.index > 1) {\r
+ i = t.index;\r
+ t.typing = 0;\r
+\r
+ if (!t.add())\r
+ t.index = i;\r
+\r
+ --t.index;\r
+ }\r
+\r
+ l = t.data[--t.index];\r
+ ed.setContent(l.content, {format : 'raw'});\r
+ ed.selection.moveToBookmark(l.bookmark);\r
+\r
+ t.onUndo.dispatch(t, l);\r
+ }\r
+\r
+ return l;\r
+ },\r
+\r
+ redo : function() {\r
+ var t = this, ed = t.editor, l = null;\r
+\r
+ if (t.index < t.data.length - 1) {\r
+ l = t.data[++t.index];\r
+ ed.setContent(l.content, {format : 'raw'});\r
+ ed.selection.moveToBookmark(l.bookmark);\r
+\r
+ t.onRedo.dispatch(t, l);\r
+ }\r
+\r
+ return l;\r
+ },\r
+\r
+ clear : function() {\r
+ var t = this;\r
+\r
+ t.data = [];\r
+ t.index = 0;\r
+ t.typing = 0;\r
+ t.add({initial : true});\r
+ },\r
+\r
+ hasUndo : function() {\r
+ return this.index != 0 || this.typing;\r
+ },\r
+\r
+ hasRedo : function() {\r
+ return this.index < this.data.length - 1;\r
+ }\r
+\r
+ });\r
+/* file:jscripts/tiny_mce/classes/ForceBlocks.js */\r
+\r
+(function() {\r
+ // Shorten names\r
+ var Event, isIE, isGecko, isOpera, each, extend;\r
+\r
+ Event = tinymce.dom.Event;\r
+ isIE = tinymce.isIE;\r
+ isGecko = tinymce.isGecko;\r
+ isOpera = tinymce.isOpera;\r
+ each = tinymce.each;\r
+ extend = tinymce.extend;\r
+\r
+ tinymce.create('tinymce.ForceBlocks', {\r
+ ForceBlocks : function(ed) {\r
+ var t = this, s = ed.settings, elm;\r
+\r
+ t.editor = ed;\r
+ t.dom = ed.dom;\r
+ elm = (s.forced_root_block || 'p').toLowerCase();\r
+ s.element = elm.toUpperCase();\r
+\r
+ ed.onPreInit.add(t.setup, t);\r
+\r
+ t.reOpera = new RegExp('(\u00a0| | )<\/' + elm + '>', 'gi');\r
+ t.rePadd = new RegExp('<p( )([^>]+)><\/p>|<p( )([^>]+)\/>|<p( )([^>]+)>\s+<\/p>|<p><\/p>|<p\/>|<p>\s+<\/p>'.replace(/p/g, elm), 'gi');\r
+ t.reNbsp2BR = new RegExp('<p( )([^>]+)>[\s\u00a0]+<\/p>|<p>[\s\u00a0]+<\/p>'.replace(/p/g, elm), 'gi');\r
+ t.reBR2Nbsp = new RegExp('<p( )([^>]+)>\s*<br \/>\s*<\/p>|<p>\s*<br \/>\s*<\/p>'.replace(/p/g, elm), 'gi');\r
+ t.reTrailBr = new RegExp('\s*<br \/>\s*<\/p>'.replace(/p/g, elm), 'gi');\r
+\r
+ function padd(ed, o) {\r
+ if (isOpera)\r
+ o.content = o.content.replace(t.reOpera, '</' + elm + '>');\r
+\r
+ o.content = o.content.replace(t.rePadd, '<' + elm + '$1$2$3$4$5$6>\u00a0</' + elm + '>');\r
+\r
+ if (!isIE && o.set) {\r
+ // Use instead of BR in padded paragraphs\r
+ o.content = o.content.replace(t.reNbsp2BR, '<' + elm + '$1$2><br /></' + elm + '>');\r
+ } else {\r
+ o.content = o.content.replace(t.reBR2Nbsp, '<' + elm + '$1$2>\u00a0</' + elm + '>');\r
+ o.content = o.content.replace(t.reTrailBr, '</' + elm + '>');\r
+ }\r
+ };\r
+\r
+ ed.onBeforeSetContent.add(padd);\r
+ ed.onPostProcess.add(padd);\r
+\r
+ if (s.forced_root_block) {\r
+ ed.onInit.add(t.forceRoots, t);\r
+ ed.onSetContent.add(t.forceRoots, t);\r
+ ed.onBeforeGetContent.add(t.forceRoots, t);\r
+ }\r
+ },\r
+\r
+ setup : function() {\r
+ var t = this, ed = t.editor, s = ed.settings;\r
+\r
+ // Force root blocks when typing and when getting output\r
+ if (s.forced_root_block) {\r
+ ed.onKeyUp.add(t.forceRoots, t);\r
+ ed.onPreProcess.add(t.forceRoots, t);\r
+ }\r
+\r
+ if (s.force_br_newlines) {\r
+ // Force IE to produce BRs on enter\r
+ if (isIE) {\r
+ ed.onKeyPress.add(function(ed, e) {\r
+ var n, s = ed.selection;\r
+\r
+ if (e.keyCode == 13 && s.getNode().nodeName != 'LI') {\r
+ s.setContent('<br id="__" /> ', {format : 'raw'});\r
+ n = ed.dom.get('__');\r
+ n.removeAttribute('id');\r
+ s.select(n);\r
+ s.collapse();\r
+ return Event.cancel(e);\r
+ }\r
+ });\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ if (!isIE && s.force_p_newlines) {\r
+/* ed.onPreProcess.add(function(ed, o) {\r
+ each(ed.dom.select('br', o.node), function(n) {\r
+ var p = n.parentNode;\r
+\r
+ // Replace <p><br /></p> with <p> </p>\r
+ if (p && p.nodeName == 'p' && (p.childNodes.length == 1 || p.lastChild == n)) {\r
+ p.replaceChild(ed.getDoc().createTextNode('\u00a0'), n);\r
+ }\r
+ });\r
+ });*/\r
+\r
+ ed.onKeyPress.add(function(ed, e) {\r
+ if (e.keyCode == 13 && !e.shiftKey) {\r
+ if (!t.insertPara(e))\r
+ Event.cancel(e);\r
+ }\r
+ });\r
+\r
+ if (isGecko) {\r
+ ed.onKeyDown.add(function(ed, e) {\r
+ if ((e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey)\r
+ t.backspaceDelete(e, e.keyCode == 8);\r
+ });\r
+ }\r
+ }\r
+\r
+ function ren(rn, na) {\r
+ var ne = ed.dom.create(na);\r
+\r
+ each(rn.attributes, function(a) {\r
+ if (a.specified && a.nodeValue)\r
+ ne.setAttribute(a.nodeName.toLowerCase(), a.nodeValue);\r
+ });\r
+\r
+ each(rn.childNodes, function(n) {\r
+ ne.appendChild(n.cloneNode(true));\r
+ });\r
+\r
+ rn.parentNode.replaceChild(ne, rn);\r
+\r
+ return ne;\r
+ };\r
+\r
+ // Replaces IE:s auto generated paragraphs with the specified element name\r
+ if (isIE && s.element != 'P') {\r
+ ed.onKeyPress.add(function(ed, e) {\r
+ t.lastElm = ed.selection.getNode().nodeName;\r
+ });\r
+\r
+ ed.onKeyUp.add(function(ed, e) {\r
+ var bl, sel = ed.selection, n = sel.getNode(), b = ed.getBody();\r
+\r
+ if (b.childNodes.length === 1 && n.nodeName == 'P') {\r
+ n = ren(n, s.element);\r
+ sel.select(n);\r
+ sel.collapse();\r
+ ed.nodeChanged();\r
+ } else if (e.keyCode == 13 && !e.shiftKey && t.lastElm != 'P') {\r
+ bl = ed.dom.getParent(n, 'P');\r
+\r
+ if (bl) {\r
+ ren(bl, s.element);\r
+ ed.nodeChanged();\r
+ }\r
+ }\r
+ });\r
+ }\r
+ },\r
+\r
+ find : function(n, t, s) {\r
+ var ed = this.editor, w = ed.getDoc().createTreeWalker(n, 4, null, false), c = -1;\r
+\r
+ while (n = w.nextNode()) {\r
+ c++;\r
+\r
+ // Index by node\r
+ if (t == 0 && n == s)\r
+ return c;\r
+\r
+ // Node by index\r
+ if (t == 1 && c == s)\r
+ return n;\r
+ }\r
+\r
+ return -1;\r
+ },\r
+\r
+ forceRoots : function(ed, e) {\r
+ var t = this, ed = t.editor, b = ed.getBody(), d = ed.getDoc(), se = ed.selection, s = se.getSel(), r = se.getRng(), si = -2, ei, so, eo, tr, c = -0xFFFFFF;\r
+ var nx, bl, bp, sp, le, nl = b.childNodes, i;\r
+\r
+ // Fix for bug #1863847\r
+ if (e && e.keyCode == 13)\r
+ return true;\r
+\r
+ // Wrap non blocks into blocks\r
+ for (i = nl.length - 1; i >= 0; i--) {\r
+ nx = nl[i];\r
+\r
+ // Is text or non block element\r
+ if (nx.nodeType == 3 || !t.dom.isBlock(nx)) {\r
+ if (!bl) {\r
+ // Create new block but ignore whitespace\r
+ if (nx.nodeType != 3 || /[^\s]/g.test(nx.nodeValue)) {\r
+ // Store selection\r
+ if (si == -2 && r) {\r
+ if (!isIE) {\r
+ so = r.startOffset;\r
+ eo = r.endOffset;\r
+ si = t.find(b, 0, r.startContainer);\r
+ ei = t.find(b, 0, r.endContainer);\r
+ } else {\r
+ tr = d.body.createTextRange();\r
+ tr.moveToElementText(b);\r
+ tr.collapse(1);\r
+ bp = tr.move('character', c) * -1;\r
+\r
+ tr = r.duplicate();\r
+ tr.collapse(1);\r
+ sp = tr.move('character', c) * -1;\r
+\r
+ tr = r.duplicate();\r
+ tr.collapse(0);\r
+ le = (tr.move('character', c) * -1) - sp;\r
+\r
+ si = sp - bp;\r
+ ei = le;\r
+ }\r
+ }\r
+\r
+ bl = ed.dom.create(ed.settings.forced_root_block);\r
+ bl.appendChild(nx.cloneNode(1));\r
+ nx.parentNode.replaceChild(bl, nx);\r
+ }\r
+ } else {\r
+ if (bl.hasChildNodes())\r
+ bl.insertBefore(nx, bl.firstChild);\r
+ else\r
+ bl.appendChild(nx);\r
+ }\r
+ } else\r
+ bl = null; // Time to create new block\r
+ }\r
+\r
+ // Restore selection\r
+ if (si != -2) {\r
+ if (!isIE) {\r
+ bl = d.getElementsByTagName(ed.settings.element)[0];\r
+ r = d.createRange();\r
+\r
+ // Select last location or generated block\r
+ if (si != -1)\r
+ r.setStart(t.find(b, 1, si), so);\r
+ else\r
+ r.setStart(bl, 0);\r
+\r
+ // Select last location or generated block\r
+ if (ei != -1)\r
+ r.setEnd(t.find(b, 1, ei), eo);\r
+ else\r
+ r.setEnd(bl, 0);\r
+\r
+ if (s) {\r
+ s.removeAllRanges();\r
+ s.addRange(r);\r
+ }\r
+ } else {\r
+ try {\r
+ r = s.createRange();\r
+ r.moveToElementText(b);\r
+ r.collapse(1);\r
+ r.moveStart('character', si);\r
+ r.moveEnd('character', ei);\r
+ r.select();\r
+ } catch (ex) {\r
+ // Ignore\r
+ }\r
+ }\r
+ }\r
+ },\r
+\r
+ getParentBlock : function(n) {\r
+ var d = this.dom;\r
+\r
+ return d.getParent(n, d.isBlock);\r
+ },\r
+\r
+ insertPara : function(e) {\r
+ var t = this, ed = t.editor, d = ed.getDoc(), se = ed.settings, s = ed.selection.getSel(), r = s.getRangeAt(0), b = d.body;\r
+ var rb, ra, dir, sn, so, en, eo, sb, eb, bn, bef, aft, sc, ec, n;\r
+\r
+ function isEmpty(n) {\r
+ n = n.innerHTML;\r
+ n = n.replace(/<(img|hr|table)/gi, '-'); // Keep these convert them to - chars\r
+ n = n.replace(/<[^>]+>/g, ''); // Remove all tags\r
+\r
+ return n.replace(/[ \t\r\n]+/g, '') == '';\r
+ };\r
+\r
+ // If root blocks are forced then use Operas default behavior since it's really good\r
+// Removed due to bug: #1853816\r
+// if (se.forced_root_block && isOpera)\r
+// return true;\r
+\r
+ // Setup before range\r
+ rb = d.createRange();\r
+\r
+ // If is before the first block element and in body, then move it into first block element\r
+ rb.setStart(s.anchorNode, s.anchorOffset);\r
+ rb.collapse(true);\r
+\r
+ // Setup after range\r
+ ra = d.createRange();\r
+\r
+ // If is before the first block element and in body, then move it into first block element\r
+ ra.setStart(s.focusNode, s.focusOffset);\r
+ ra.collapse(true);\r
+\r
+ // Setup start/end points\r
+ dir = rb.compareBoundaryPoints(rb.START_TO_END, ra) < 0;\r
+ sn = dir ? s.anchorNode : s.focusNode;\r
+ so = dir ? s.anchorOffset : s.focusOffset;\r
+ en = dir ? s.focusNode : s.anchorNode;\r
+ eo = dir ? s.focusOffset : s.anchorOffset;\r
+\r
+ // If the caret is in an invalid location in FF we need to move it into the first block\r
+ if (sn == b && en == b && b.firstChild && ed.dom.isBlock(b.firstChild)) {\r
+ sn = en = sn.firstChild;\r
+ so = eo = 0;\r
+ rb = d.createRange();\r
+ rb.setStart(sn, 0);\r
+ ra = d.createRange();\r
+ ra.setStart(en, 0);\r
+ }\r
+\r
+ // Never use body as start or end node\r
+ sn = sn.nodeName == "HTML" ? d.body : sn; // Fix for Opera bug: https://bugs.opera.com/show_bug.cgi?id=273224&comments=yes\r
+ sn = sn.nodeName == "BODY" ? sn.firstChild : sn;\r
+ en = en.nodeName == "HTML" ? d.body : en; // Fix for Opera bug: https://bugs.opera.com/show_bug.cgi?id=273224&comments=yes\r
+ en = en.nodeName == "BODY" ? en.firstChild : en;\r
+\r
+ // Get start and end blocks\r
+ sb = t.getParentBlock(sn);\r
+ eb = t.getParentBlock(en);\r
+ bn = sb ? sb.nodeName : se.element; // Get block name to create\r
+\r
+ // Return inside list use default browser behavior\r
+ if (t.dom.getParent(sb, function(n) { return /OL|UL|PRE/.test(n.nodeName); }))\r
+ return true;\r
+\r
+ // If caption or absolute layers then always generate new blocks within\r
+ if (sb && (sb.nodeName == 'CAPTION' || /absolute|relative|static/gi.test(sb.style.position))) {\r
+ bn = se.element;\r
+ sb = null;\r
+ }\r
+\r
+ // If caption or absolute layers then always generate new blocks within\r
+ if (eb && (eb.nodeName == 'CAPTION' || /absolute|relative|static/gi.test(eb.style.position))) {\r
+ bn = se.element;\r
+ eb = null;\r
+ }\r
+\r
+ // Use P instead\r
+ if (/(TD|TABLE|TH|CAPTION)/.test(bn) || (sb && bn == "DIV" && /left|right/gi.test(sb.style.cssFloat))) {\r
+ bn = se.element;\r
+ sb = eb = null;\r
+ }\r
+\r
+ // Setup new before and after blocks\r
+ bef = (sb && sb.nodeName == bn) ? sb.cloneNode(0) : ed.dom.create(bn);\r
+ aft = (eb && eb.nodeName == bn) ? eb.cloneNode(0) : ed.dom.create(bn);\r
+\r
+ // Remove id from after clone\r
+ aft.removeAttribute('id');\r
+\r
+ // Is header and cursor is at the end, then force paragraph under\r
+ if (/^(H[1-6])$/.test(bn) && sn.nodeValue && so == sn.nodeValue.length)\r
+ aft = ed.dom.create(se.element);\r
+\r
+ // Find start chop node\r
+ n = sc = sn;\r
+ do {\r
+ if (n == b || n.nodeType == 9 || t.dom.isBlock(n) || /(TD|TABLE|TH|CAPTION)/.test(n.nodeName))\r
+ break;\r
+\r
+ sc = n;\r
+ } while ((n = n.previousSibling ? n.previousSibling : n.parentNode));\r
+\r
+ // Find end chop node\r
+ n = ec = en;\r
+ do {\r
+ if (n == b || n.nodeType == 9 || t.dom.isBlock(n) || /(TD|TABLE|TH|CAPTION)/.test(n.nodeName))\r
+ break;\r
+\r
+ ec = n;\r
+ } while ((n = n.nextSibling ? n.nextSibling : n.parentNode));\r
+\r
+ // Place first chop part into before block element\r
+ if (sc.nodeName == bn)\r
+ rb.setStart(sc, 0);\r
+ else\r
+ rb.setStartBefore(sc);\r
+\r
+ rb.setEnd(sn, so);\r
+ bef.appendChild(rb.cloneContents() || d.createTextNode('')); // Empty text node needed for Safari\r
+\r
+ // Place secnd chop part within new block element\r
+ try {\r
+ ra.setEndAfter(ec);\r
+ } catch(ex) {\r
+ //console.debug(s.focusNode, s.focusOffset);\r
+ }\r
+\r
+ ra.setStart(en, eo);\r
+ aft.appendChild(ra.cloneContents() || d.createTextNode('')); // Empty text node needed for Safari\r
+\r
+ // Create range around everything\r
+ r = d.createRange();\r
+ if (!sc.previousSibling && sc.parentNode.nodeName == bn) {\r
+ r.setStartBefore(sc.parentNode);\r
+ } else {\r
+ if (rb.startContainer.nodeName == bn && rb.startOffset == 0)\r
+ r.setStartBefore(rb.startContainer);\r
+ else\r
+ r.setStart(rb.startContainer, rb.startOffset);\r
+ }\r
+\r
+ if (!ec.nextSibling && ec.parentNode.nodeName == bn)\r
+ r.setEndAfter(ec.parentNode);\r
+ else\r
+ r.setEnd(ra.endContainer, ra.endOffset);\r
+\r
+ // Delete and replace it with new block elements\r
+ r.deleteContents();\r
+\r
+ // Never wrap blocks in blocks\r
+ if (bef.firstChild && bef.firstChild.nodeName == bn)\r
+ bef.innerHTML = bef.firstChild.innerHTML;\r
+\r
+ if (aft.firstChild && aft.firstChild.nodeName == bn)\r
+ aft.innerHTML = aft.firstChild.innerHTML;\r
+\r
+ // Padd empty blocks\r
+ if (isEmpty(bef))\r
+ bef.innerHTML = '<br />';\r
+\r
+ if (isEmpty(aft))\r
+ aft.innerHTML = isOpera ? ' ' : '<br />'; // Extra space for Opera so that the caret can move there\r
+\r
+ // Opera needs this one backwards\r
+ if (isOpera) {\r
+ r.insertNode(bef);\r
+ r.insertNode(aft);\r
+ } else {\r
+ r.insertNode(aft);\r
+ r.insertNode(bef);\r
+ }\r
+\r
+ // Normalize\r
+ aft.normalize();\r
+ bef.normalize();\r
+\r
+ // Move cursor and scroll into view\r
+ r = d.createRange();\r
+ r.selectNodeContents(aft);\r
+ r.collapse(1);\r
+ s.removeAllRanges();\r
+ s.addRange(r);\r
+\r
+ // Safari bug fix, http://bugs.webkit.org/show_bug.cgi?id=16117\r
+ if (tinymce.isWebKit)\r
+ ed.getWin().scrollTo(0, ed.dom.getPos(aft).y);\r
+ else\r
+ aft.scrollIntoView(0);\r
+\r
+ return false;\r
+ },\r
+\r
+ backspaceDelete : function(e, bs) {\r
+ var t = this, ed = t.editor, b = ed.getBody(), n, se = ed.selection, r = se.getRng(), sc = r.startContainer, n;\r
+\r
+ // The caret sometimes gets stuck in Gecko if you delete empty paragraphs\r
+ // This workaround removes the element by hand and moves the caret to the previous element\r
+ if (sc && ed.dom.isBlock(sc) && bs) {\r
+ if (sc.childNodes.length == 1 && sc.firstChild.nodeName == 'BR') {\r
+ n = sc.previousSibling;\r
+ if (n) {\r
+ ed.dom.remove(sc);\r
+ se.select(n.firstChild);\r
+ se.collapse(0);\r
+ return Event.cancel(e);\r
+ }\r
+ }\r
+ }\r
+\r
+ // Gecko generates BR elements here and there, we don't like those so lets remove them\r
+ function handler(e) {\r
+ e = e.target;\r
+\r
+ // A new BR was created in a block element, remove it\r
+ if (e && e.parentNode && e.nodeName == 'BR' && t.getParentBlock(e)) {\r
+ ed.dom.remove(e);\r
+ Event.remove(b, 'DOMNodeInserted', handler);\r
+ }\r
+ };\r
+\r
+ // Listen for new nodes\r
+ Event._add(b, 'DOMNodeInserted', handler);\r
+\r
+ // Remove listener\r
+ window.setTimeout(function() {\r
+ Event._remove(b, 'DOMNodeInserted', handler);\r
+ }, 1);\r
+ }\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/ControlManager.js */\r
+\r
+(function() {\r
+ // Shorten names\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, extend = tinymce.extend;\r
+\r
+ tinymce.create('tinymce.ControlManager', {\r
+ ControlManager : function(ed, s) {\r
+ var t = this, i;\r
+\r
+ s = s || {};\r
+ t.editor = ed;\r
+ t.controls = {};\r
+ t.onAdd = new tinymce.util.Dispatcher(t);\r
+ t.onPostRender = new tinymce.util.Dispatcher(t);\r
+ t.prefix = s.prefix || ed.id + '_';\r
+\r
+ t.onPostRender.add(function() {\r
+ each(t.controls, function(c) {\r
+ c.postRender();\r
+ });\r
+ });\r
+ },\r
+\r
+ get : function(id) {\r
+ return this.controls[this.prefix + id] || this.controls[id];\r
+ },\r
+\r
+ setActive : function(id, s) {\r
+ var c = null;\r
+\r
+ if (c = this.get(id))\r
+ c.setActive(s);\r
+\r
+ return c;\r
+ },\r
+\r
+ setDisabled : function(id, s) {\r
+ var c = null;\r
+\r
+ if (c = this.get(id))\r
+ c.setDisabled(s);\r
+\r
+ return c;\r
+ },\r
+\r
+ add : function(c) {\r
+ var t = this;\r
+\r
+ if (c) {\r
+ t.controls[c.id] = c;\r
+ t.onAdd.dispatch(c, t);\r
+ }\r
+\r
+ return c;\r
+ },\r
+\r
+ createControl : function(n) {\r
+ var c, t = this, ed = t.editor;\r
+\r
+ each(ed.plugins, function(p) {\r
+ if (p.createControl) {\r
+ c = p.createControl(n, t);\r
+\r
+ if (c)\r
+ return false;\r
+ }\r
+ });\r
+\r
+ switch (n) {\r
+ case "|":\r
+ case "separator":\r
+ return t.createSeparator();\r
+ }\r
+\r
+ if (!c && ed.buttons && (c = ed.buttons[n]))\r
+ return t.createButton(n, c);\r
+\r
+ return t.add(c);\r
+ },\r
+\r
+ createDropMenu : function(id, s) {\r
+ var t = this, ed = t.editor, c, bm, v;\r
+\r
+ s = extend({\r
+ 'class' : 'mceDropDown',\r
+ constrain : ed.settings.constrain_menus\r
+ }, s);\r
+\r
+ s['class'] = s['class'] + ' ' + ed.getParam('skin') + 'Skin';\r
+ if (v = ed.getParam('skin_variant'))\r
+ s['class'] += ' ' + ed.getParam('skin') + 'Skin' + v.substring(0, 1).toUpperCase() + v.substring(1);\r
+\r
+ id = t.prefix + id;\r
+ c = t.controls[id] = new tinymce.ui.DropMenu(id, s);\r
+ c.onAddItem.add(function(c, o) {\r
+ var s = o.settings;\r
+\r
+ s.title = ed.getLang(s.title, s.title);\r
+\r
+ if (!s.onclick) {\r
+ s.onclick = function(v) {\r
+ ed.execCommand(s.cmd, s.ui || false, s.value);\r
+ };\r
+ }\r
+ });\r
+\r
+ ed.onRemove.add(function() {\r
+ c.destroy();\r
+ });\r
+\r
+ // Fix for bug #1897785, #1898007\r
+ if (tinymce.isIE) {\r
+ c.onShowMenu.add(function() {\r
+ var s = ed.selection, n = s.getNode();\r
+\r
+ if (n.nodeName == 'IMG')\r
+ bm = s.getBookmark();\r
+ else\r
+ bm = 0;\r
+ });\r
+\r
+ c.onHideMenu.add(function() {\r
+ if (bm)\r
+ ed.selection.moveToBookmark(bm);\r
+ });\r
+ }\r
+\r
+ return t.add(c);\r
+ },\r
+\r
+ createListBox : function(id, s) {\r
+ var t = this, ed = t.editor, cmd, c;\r
+\r
+ if (t.get(id))\r
+ return null;\r
+\r
+ s.title = ed.translate(s.title);\r
+ s.scope = s.scope || ed;\r
+\r
+ if (!s.onselect) {\r
+ s.onselect = function(v) {\r
+ ed.execCommand(s.cmd, s.ui || false, v || s.value);\r
+ };\r
+ }\r
+\r
+ s = extend({\r
+ title : s.title,\r
+ 'class' : 'mce_' + id,\r
+ scope : s.scope,\r
+ control_manager : t\r
+ }, s);\r
+\r
+ id = t.prefix + id;\r
+\r
+ if (ed.settings.use_native_selects)\r
+ c = new tinymce.ui.NativeListBox(id, s);\r
+ else\r
+ c = new tinymce.ui.ListBox(id, s);\r
+\r
+ t.controls[id] = c;\r
+\r
+ // Fix focus problem in Safari\r
+ if (tinymce.isWebKit) {\r
+ c.onPostRender.add(function(c, n) {\r
+ // Store bookmark on mousedown\r
+ Event.add(n, 'mousedown', function() {\r
+ ed.bookmark = ed.selection.getBookmark('simple');\r
+ });\r
+\r
+ // Restore on focus, since it might be lost\r
+ Event.add(n, 'focus', function() {\r
+ ed.selection.moveToBookmark(ed.bookmark);\r
+ ed.bookmark = null;\r
+ });\r
+ });\r
+ }\r
+\r
+ if (c.hideMenu)\r
+ ed.onMouseDown.add(c.hideMenu, c);\r
+\r
+ return t.add(c);\r
+ },\r
+\r
+ createButton : function(id, s) {\r
+ var t = this, ed = t.editor, o, c;\r
+\r
+ if (t.get(id))\r
+ return null;\r
+\r
+ s.title = ed.translate(s.title);\r
+ s.scope = s.scope || ed;\r
+\r
+ if (!s.onclick && !s.menu_button) {\r
+ s.onclick = function() {\r
+ ed.execCommand(s.cmd, s.ui || false, s.value);\r
+ };\r
+ }\r
+\r
+ s = extend({\r
+ title : s.title,\r
+ 'class' : 'mce_' + id,\r
+ unavailable_prefix : ed.getLang('unavailable', ''),\r
+ scope : s.scope,\r
+ control_manager : t\r
+ }, s);\r
+\r
+ id = t.prefix + id;\r
+\r
+ if (s.menu_button) {\r
+ c = new tinymce.ui.MenuButton(id, s);\r
+ ed.onMouseDown.add(c.hideMenu, c);\r
+ } else\r
+ c = new tinymce.ui.Button(id, s);\r
+\r
+ return t.add(c);\r
+ },\r
+\r
+ createMenuButton : function(id, s) {\r
+ s = s || {};\r
+ s.menu_button = 1;\r
+\r
+ return this.createButton(id, s);\r
+ },\r
+\r
+ createSplitButton : function(id, s) {\r
+ var t = this, ed = t.editor, cmd, c;\r
+\r
+ if (t.get(id))\r
+ return null;\r
+\r
+ s.title = ed.translate(s.title);\r
+ s.scope = s.scope || ed;\r
+\r
+ if (!s.onclick) {\r
+ s.onclick = function(v) {\r
+ ed.execCommand(s.cmd, s.ui || false, v || s.value);\r
+ };\r
+ }\r
+\r
+ if (!s.onselect) {\r
+ s.onselect = function(v) {\r
+ ed.execCommand(s.cmd, s.ui || false, v || s.value);\r
+ };\r
+ }\r
+\r
+ s = extend({\r
+ title : s.title,\r
+ 'class' : 'mce_' + id,\r
+ scope : s.scope,\r
+ control_manager : t\r
+ }, s);\r
+\r
+ id = t.prefix + id;\r
+ c = t.add(new tinymce.ui.SplitButton(id, s));\r
+ ed.onMouseDown.add(c.hideMenu, c);\r
+\r
+ return c;\r
+ },\r
+\r
+ createColorSplitButton : function(id, s) {\r
+ var t = this, ed = t.editor, cmd, c;\r
+\r
+ if (t.get(id))\r
+ return null;\r
+\r
+ s.title = ed.translate(s.title);\r
+ s.scope = s.scope || ed;\r
+\r
+ if (!s.onclick) {\r
+ s.onclick = function(v) {\r
+ ed.execCommand(s.cmd, s.ui || false, v || s.value);\r
+ };\r
+ }\r
+\r
+ if (!s.onselect) {\r
+ s.onselect = function(v) {\r
+ ed.execCommand(s.cmd, s.ui || false, v || s.value);\r
+ };\r
+ }\r
+\r
+ s = extend({\r
+ title : s.title,\r
+ 'class' : 'mce_' + id,\r
+ 'menu_class' : ed.getParam('skin') + 'Skin',\r
+ scope : s.scope,\r
+ more_colors_title : ed.getLang('more_colors')\r
+ }, s);\r
+\r
+ id = t.prefix + id;\r
+ c = new tinymce.ui.ColorSplitButton(id, s);\r
+ ed.onMouseDown.add(c.hideMenu, c);\r
+\r
+ // Remove the menu element when the editor is removed\r
+ ed.onRemove.add(function() {\r
+ c.destroy();\r
+ });\r
+\r
+ return t.add(c);\r
+ },\r
+\r
+ createToolbar : function(id, s) {\r
+ var c, t = this;\r
+\r
+ id = t.prefix + id;\r
+ c = new tinymce.ui.Toolbar(id, s);\r
+\r
+ if (t.get(id))\r
+ return null;\r
+\r
+ return t.add(c);\r
+ },\r
+\r
+ createSeparator : function() {\r
+ return new tinymce.ui.Separator();\r
+ }\r
+\r
+ });\r
+})();\r
+\r
+/* file:jscripts/tiny_mce/classes/WindowManager.js */\r
+\r
+(function() {\r
+ var Dispatcher = tinymce.util.Dispatcher, each = tinymce.each, isIE = tinymce.isIE, isOpera = tinymce.isOpera;\r
+\r
+ tinymce.create('tinymce.WindowManager', {\r
+ WindowManager : function(ed) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+ t.onOpen = new Dispatcher(t);\r
+ t.onClose = new Dispatcher(t);\r
+ t.params = {};\r
+ t.features = {};\r
+ },\r
+\r
+ open : function(s, p) {\r
+ var t = this, f = '', x, y, mo = t.editor.settings.dialog_type == 'modal', w, sw, sh, vp = tinymce.DOM.getViewPort(), u;\r
+\r
+ // Default some options\r
+ s = s || {};\r
+ p = p || {};\r
+ sw = isOpera ? vp.w : screen.width; // Opera uses windows inside the Opera window\r
+ sh = isOpera ? vp.h : screen.height;\r
+ s.name = s.name || 'mc_' + new Date().getTime();\r
+ s.width = parseInt(s.width || 320);\r
+ s.height = parseInt(s.height || 240);\r
+ s.resizable = true;\r
+ s.left = s.left || parseInt(sw / 2.0) - (s.width / 2.0);\r
+ s.top = s.top || parseInt(sh / 2.0) - (s.height / 2.0);\r
+ p.inline = false;\r
+ p.mce_width = s.width;\r
+ p.mce_height = s.height;\r
+ p.mce_auto_focus = s.auto_focus;\r
+\r
+ if (mo) {\r
+ if (isIE) {\r
+ s.center = true;\r
+ s.help = false;\r
+ s.dialogWidth = s.width + 'px';\r
+ s.dialogHeight = s.height + 'px';\r
+ s.scroll = s.scrollbars || false;\r
+ } else\r
+ s.modal = s.alwaysRaised = s.dialog = s.centerscreen = s.dependent = true;\r
+ }\r
+\r
+ // Build features string\r
+ each(s, function(v, k) {\r
+ if (tinymce.is(v, 'boolean'))\r
+ v = v ? 'yes' : 'no';\r
+\r
+ if (!/^(name|url)$/.test(k)) {\r
+ if (isIE && mo)\r
+ f += (f ? ';' : '') + k + ':' + v;\r
+ else\r
+ f += (f ? ',' : '') + k + '=' + v;\r
+ }\r
+ });\r
+\r
+ t.features = s;\r
+ t.params = p;\r
+ t.onOpen.dispatch(t, s, p);\r
+\r
+ u = s.url || s.file;\r
+ if (tinymce.relaxedDomain)\r
+ u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain;\r
+\r
+ try {\r
+ if (isIE && mo) {\r
+ w = 1;\r
+ window.showModalDialog(s.url || s.file, window, f);\r
+ } else\r
+ w = window.open(u, s.name, f);\r
+ } catch (ex) {\r
+ // Ignore\r
+ }\r
+\r
+ if (!w)\r
+ alert(t.editor.getLang('popup_blocked'));\r
+ },\r
+\r
+ close : function(w) {\r
+ w.close();\r
+ this.onClose.dispatch(this);\r
+ },\r
+\r
+ createInstance : function(cl, a, b, c, d, e) {\r
+ var f = tinymce.resolve(cl);\r
+\r
+ return new f(a, b, c, d, e);\r
+ },\r
+\r
+ confirm : function(t, cb, s) {\r
+ cb.call(s || this, confirm(this._decode(this.editor.getLang(t, t))));\r
+ },\r
+\r
+ alert : function(t, cb, s) {\r
+ alert(this._decode(t));\r
+\r
+ if (cb)\r
+ cb.call(s || this);\r
+ },\r
+\r
+ // Internal functions\r
+\r
+ _decode : function(s) {\r
+ return tinymce.DOM.decode(s).replace(/\\n/g, '\n');\r
+ }\r
+\r
+ });\r
+}());
\ No newline at end of file
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * Makes select boxes editable.\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+var TinyMCE_EditableSelects = {\r
+ editSelectElm : null,\r
+\r
+ init : function() {\r
+ var nl = document.getElementsByTagName("select"), i, d = document, o;\r
+\r
+ for (i=0; i<nl.length; i++) {\r
+ if (nl[i].className.indexOf('mceEditableSelect') != -1) {\r
+ o = new Option('(value)', '__mce_add_custom__');\r
+\r
+ o.className = 'mceAddSelectValue';\r
+\r
+ nl[i].options[nl[i].options.length] = o;\r
+ nl[i].onchange = TinyMCE_EditableSelects.onChangeEditableSelect;\r
+ }\r
+ }\r
+ },\r
+\r
+ onChangeEditableSelect : function(e) {\r
+ var d = document, ne, se = window.event ? window.event.srcElement : e.target;\r
+\r
+ if (se.options[se.selectedIndex].value == '__mce_add_custom__') {\r
+ ne = d.createElement("input");\r
+ ne.id = se.id + "_custom";\r
+ ne.name = se.name + "_custom";\r
+ ne.type = "text";\r
+\r
+ ne.style.width = se.offsetWidth + 'px';\r
+ se.parentNode.insertBefore(ne, se);\r
+ se.style.display = 'none';\r
+ ne.focus();\r
+ ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;\r
+ TinyMCE_EditableSelects.editSelectElm = se;\r
+ }\r
+ },\r
+\r
+ onBlurEditableSelectInput : function() {\r
+ var se = TinyMCE_EditableSelects.editSelectElm;\r
+\r
+ if (se) {\r
+ if (se.previousSibling.value != '') {\r
+ addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value);\r
+ selectByValue(document.forms[0], se.id, se.previousSibling.value);\r
+ } else\r
+ selectByValue(document.forms[0], se.id, '');\r
+\r
+ se.style.display = 'inline';\r
+ se.parentNode.removeChild(se.previousSibling);\r
+ TinyMCE_EditableSelects.editSelectElm = null;\r
+ }\r
+ }\r
+};\r
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * Various form utilitiy functions.\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+var themeBaseURL = tinyMCEPopup.editor.baseURI.toAbsolute('themes/' + tinyMCEPopup.getParam("theme"));\r
+\r
+function getColorPickerHTML(id, target_form_element) {\r
+ var h = "";\r
+\r
+ h += '<a id="' + id + '_link" href="javascript:;" onclick="tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;" class="pickcolor">';\r
+ h += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"></span></a>';\r
+\r
+ return h;\r
+}\r
+\r
+function updateColor(img_id, form_element_id) {\r
+ document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value;\r
+}\r
+\r
+function setBrowserDisabled(id, state) {\r
+ var img = document.getElementById(id);\r
+ var lnk = document.getElementById(id + "_link");\r
+\r
+ if (lnk) {\r
+ if (state) {\r
+ lnk.setAttribute("realhref", lnk.getAttribute("href"));\r
+ lnk.removeAttribute("href");\r
+ tinyMCEPopup.dom.addClass(img, 'disabled');\r
+ } else {\r
+ if (lnk.getAttribute("realhref"))\r
+ lnk.setAttribute("href", lnk.getAttribute("realhref"));\r
+\r
+ tinyMCEPopup.dom.removeClass(img, 'disabled');\r
+ }\r
+ }\r
+}\r
+\r
+function getBrowserHTML(id, target_form_element, type, prefix) {\r
+ var option = prefix + "_" + type + "_browser_callback", cb, html;\r
+\r
+ cb = tinyMCEPopup.getParam(option, tinyMCEPopup.getParam("file_browser_callback"));\r
+\r
+ if (!cb)\r
+ return "";\r
+\r
+ html = "";\r
+ html += '<a id="' + id + '_link" href="javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;" class="browse">';\r
+ html += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"></span></a>';\r
+\r
+ return html;\r
+}\r
+\r
+function openBrowser(img_id, target_form_element, type, option) {\r
+ var img = document.getElementById(img_id);\r
+\r
+ if (img.className != "mceButtonDisabled")\r
+ tinyMCEPopup.openBrowser(target_form_element, type, option);\r
+}\r
+\r
+function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {\r
+ if (!form_obj || !form_obj.elements[field_name])\r
+ return;\r
+\r
+ var sel = form_obj.elements[field_name];\r
+\r
+ var found = false;\r
+ for (var i=0; i<sel.options.length; i++) {\r
+ var option = sel.options[i];\r
+\r
+ if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {\r
+ option.selected = true;\r
+ found = true;\r
+ } else\r
+ option.selected = false;\r
+ }\r
+\r
+ if (!found && add_custom && value != '') {\r
+ var option = new Option(value, value);\r
+ option.selected = true;\r
+ sel.options[sel.options.length] = option;\r
+ sel.selectedIndex = sel.options.length - 1;\r
+ }\r
+\r
+ return found;\r
+}\r
+\r
+function getSelectValue(form_obj, field_name) {\r
+ var elm = form_obj.elements[field_name];\r
+\r
+ if (elm == null || elm.options == null)\r
+ return "";\r
+\r
+ return elm.options[elm.selectedIndex].value;\r
+}\r
+\r
+function addSelectValue(form_obj, field_name, name, value) {\r
+ var s = form_obj.elements[field_name];\r
+ var o = new Option(name, value);\r
+ s.options[s.options.length] = o;\r
+}\r
+\r
+function addClassesToList(list_id, specific_option) {\r
+ // Setup class droplist\r
+ var styleSelectElm = document.getElementById(list_id);\r
+ var styles = tinyMCEPopup.getParam('theme_advanced_styles', false);\r
+ styles = tinyMCEPopup.getParam(specific_option, styles);\r
+\r
+ if (styles) {\r
+ var stylesAr = styles.split(';');\r
+\r
+ for (var i=0; i<stylesAr.length; i++) {\r
+ if (stylesAr != "") {\r
+ var key, value;\r
+\r
+ key = stylesAr[i].split('=')[0];\r
+ value = stylesAr[i].split('=')[1];\r
+\r
+ styleSelectElm.options[styleSelectElm.length] = new Option(key, value);\r
+ }\r
+ }\r
+ } else {\r
+ tinymce.each(tinyMCEPopup.editor.dom.getClasses(), function(o) {\r
+ styleSelectElm.options[styleSelectElm.length] = new Option(o.title || o['class'], o['class']);\r
+ });\r
+ }\r
+}\r
+\r
+function isVisible(element_id) {\r
+ var elm = document.getElementById(element_id);\r
+\r
+ return elm && elm.style.display != "none";\r
+}\r
+\r
+function convertRGBToHex(col) {\r
+ var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");\r
+\r
+ var rgb = col.replace(re, "$1,$2,$3").split(',');\r
+ if (rgb.length == 3) {\r
+ r = parseInt(rgb[0]).toString(16);\r
+ g = parseInt(rgb[1]).toString(16);\r
+ b = parseInt(rgb[2]).toString(16);\r
+\r
+ r = r.length == 1 ? '0' + r : r;\r
+ g = g.length == 1 ? '0' + g : g;\r
+ b = b.length == 1 ? '0' + b : b;\r
+\r
+ return "#" + r + g + b;\r
+ }\r
+\r
+ return col;\r
+}\r
+\r
+function convertHexToRGB(col) {\r
+ if (col.indexOf('#') != -1) {\r
+ col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');\r
+\r
+ r = parseInt(col.substring(0, 2), 16);\r
+ g = parseInt(col.substring(2, 4), 16);\r
+ b = parseInt(col.substring(4, 6), 16);\r
+\r
+ return "rgb(" + r + "," + g + "," + b + ")";\r
+ }\r
+\r
+ return col;\r
+}\r
+\r
+function trimSize(size) {\r
+ return size.replace(/([0-9\.]+)px|(%|in|cm|mm|em|ex|pt|pc)/, '$1$2');\r
+}\r
+\r
+function getCSSSize(size) {\r
+ size = trimSize(size);\r
+\r
+ if (size == "")\r
+ return "";\r
+\r
+ // Add px\r
+ if (/^[0-9]+$/.test(size))\r
+ size += 'px';\r
+\r
+ return size;\r
+}\r
+\r
+function getStyle(elm, attrib, style) {\r
+ var val = tinyMCEPopup.dom.getAttrib(elm, attrib);\r
+\r
+ if (val != '')\r
+ return '' + val;\r
+\r
+ if (typeof(style) == 'undefined')\r
+ style = attrib;\r
+\r
+ return tinyMCEPopup.dom.getStyle(elm, style);\r
+}\r
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * Moxiecode floating layer script.\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+function MCLayer(id) {\r
+ this.id = id;\r
+ this.settings = new Array();\r
+ this.blockerElement = null;\r
+ this.isMSIE = navigator.appName == "Microsoft Internet Explorer";\r
+ this.events = false;\r
+ this.autoHideCallback = null;\r
+}\r
+\r
+MCLayer.prototype = {\r
+ moveRelativeTo : function(re, p, a) {\r
+ var rep = this.getAbsPosition(re);\r
+ var w = parseInt(re.offsetWidth);\r
+ var h = parseInt(re.offsetHeight);\r
+ var x, y;\r
+\r
+ switch (p) {\r
+ case "tl":\r
+ break;\r
+\r
+ case "tr":\r
+ x = rep.absLeft + w;\r
+ y = rep.absTop;\r
+ break;\r
+\r
+ case "bl":\r
+ break;\r
+\r
+ case "br":\r
+ break;\r
+ }\r
+\r
+ this.moveTo(x, y);\r
+ },\r
+\r
+ moveBy : function(dx, dy) {\r
+ var e = this.getElement();\r
+ var x = parseInt(e.style.left);\r
+ var y = parseInt(e.style.top);\r
+\r
+ e.style.left = (x + dx) + "px";\r
+ e.style.top = (y + dy) + "px";\r
+\r
+ this.updateBlocker();\r
+ },\r
+\r
+ moveTo : function(x, y) {\r
+ var e = this.getElement();\r
+\r
+ e.style.left = x + "px";\r
+ e.style.top = y + "px";\r
+\r
+ this.updateBlocker();\r
+ },\r
+\r
+ show : function() {\r
+ MCLayer.visibleLayer = this;\r
+\r
+ this.getElement().style.display = 'block';\r
+ this.updateBlocker();\r
+ },\r
+\r
+ hide : function() {\r
+ this.getElement().style.display = 'none';\r
+ this.updateBlocker();\r
+ },\r
+\r
+ setAutoHide : function(s, cb) {\r
+ this.autoHideCallback = cb;\r
+ this.registerEventHandlers();\r
+ },\r
+\r
+ getElement : function() {\r
+ return document.getElementById(this.id);\r
+ },\r
+\r
+ updateBlocker : function() {\r
+ if (!this.isMSIE)\r
+ return;\r
+\r
+ var e = this.getElement();\r
+ var b = this.getBlocker();\r
+ var x = this.parseInt(e.style.left);\r
+ var y = this.parseInt(e.style.top);\r
+ var w = this.parseInt(e.offsetWidth);\r
+ var h = this.parseInt(e.offsetHeight);\r
+\r
+ b.style.left = x + 'px';\r
+ b.style.top = y + 'px';\r
+ b.style.width = w + 'px';\r
+ b.style.height = h + 'px';\r
+ b.style.display = e.style.display;\r
+ },\r
+\r
+ getBlocker : function() {\r
+ if (!this.blockerElement) {\r
+ var d = document, b = d.createElement("iframe");\r
+\r
+ b.style.cssText = 'display: none; left: 0px; position: absolute; top: 0';\r
+ b.src = 'javascript:false;';\r
+ b.frameBorder = '0';\r
+ b.scrolling = 'no';\r
+\r
+ d.body.appendChild(b);\r
+ this.blockerElement = b;\r
+ }\r
+\r
+ return this.blockerElement;\r
+ },\r
+\r
+ getAbsPosition : function(n) {\r
+ var p = {absLeft : 0, absTop : 0};\r
+\r
+ while (n) {\r
+ p.absLeft += n.offsetLeft;\r
+ p.absTop += n.offsetTop;\r
+ n = n.offsetParent;\r
+ }\r
+\r
+ return p;\r
+ },\r
+\r
+ registerEventHandlers : function() {\r
+ if (!this.events) {\r
+ var d = document;\r
+\r
+ this.addEvent(d, 'mousedown', MCLayer.prototype.onMouseDown);\r
+\r
+ this.events = true;\r
+ }\r
+ },\r
+\r
+ addEvent : function(o, n, h) {\r
+ if (o.attachEvent)\r
+ o.attachEvent("on" + n, h);\r
+ else\r
+ o.addEventListener(n, h, false);\r
+ },\r
+\r
+ onMouseDown : function(e) {\r
+ e = typeof(e) == "undefined" ? window.event : e;\r
+ var b = document.body;\r
+ var l = MCLayer.visibleLayer;\r
+\r
+ if (l) {\r
+ var mx = l.isMSIE ? e.clientX + b.scrollLeft : e.pageX;\r
+ var my = l.isMSIE ? e.clientY + b.scrollTop : e.pageY;\r
+ var el = l.getElement();\r
+ var x = parseInt(el.style.left);\r
+ var y = parseInt(el.style.top);\r
+ var w = parseInt(el.offsetWidth);\r
+ var h = parseInt(el.offsetHeight);\r
+\r
+ if (!(mx > x && mx < x + w && my > y && my < y + h)) {\r
+ MCLayer.visibleLayer = null;\r
+\r
+ if (l.autoHideCallback && l.autoHideCallback(l, e, mx, my))\r
+ return true;\r
+\r
+ l.hide();\r
+ }\r
+ }\r
+ },\r
+\r
+ addCSSClass : function(e, c) {\r
+ this.removeCSSClass(e, c);\r
+ var a = this.explode(' ', e.className);\r
+ a[a.length] = c;\r
+ e.className = a.join(' ');\r
+ },\r
+\r
+ removeCSSClass : function(e, c) {\r
+ var a = this.explode(' ', e.className), i;\r
+\r
+ for (i=0; i<a.length; i++) {\r
+ if (a[i] == c)\r
+ a[i] = '';\r
+ }\r
+\r
+ e.className = a.join(' ');\r
+ },\r
+\r
+ explode : function(d, s) {\r
+ var ar = s.split(d);\r
+ var oar = new Array();\r
+\r
+ for (var i = 0; i<ar.length; i++) {\r
+ if (ar[i] != "")\r
+ oar[oar.length] = ar[i];\r
+ }\r
+\r
+ return oar;\r
+ },\r
+\r
+ parseInt : function(s) {\r
+ if (s == null || s == '')\r
+ return 0;\r
+\r
+ return parseInt(s);\r
+ }\r
+}\r
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * Moxiecode DHTML Tabs script.\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+function MCTabs() {\r
+ this.settings = new Array();\r
+};\r
+\r
+MCTabs.prototype.init = function(settings) {\r
+ this.settings = settings;\r
+};\r
+\r
+MCTabs.prototype.getParam = function(name, default_value) {\r
+ var value = null;\r
+\r
+ value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];\r
+\r
+ // Fix bool values\r
+ if (value == "true" || value == "false")\r
+ return (value == "true");\r
+\r
+ return value;\r
+};\r
+\r
+MCTabs.prototype.displayTab = function(tab_id, panel_id) {\r
+ var panelElm = document.getElementById(panel_id);\r
+ var panelContainerElm = panelElm ? panelElm.parentNode : null;\r
+ var tabElm = document.getElementById(tab_id);\r
+ var tabContainerElm = tabElm ? tabElm.parentNode : null;\r
+ var selectionClass = this.getParam('selection_class', 'current');\r
+\r
+ if (tabElm && tabContainerElm) {\r
+ var nodes = tabContainerElm.childNodes;\r
+\r
+ // Hide all other tabs\r
+ for (var i=0; i<nodes.length; i++) {\r
+ if (nodes[i].nodeName == "LI")\r
+ nodes[i].className = '';\r
+ }\r
+\r
+ // Show selected tab\r
+ tabElm.className = 'current';\r
+ }\r
+\r
+ if (panelElm && panelContainerElm) {\r
+ var nodes = panelContainerElm.childNodes;\r
+\r
+ // Hide all other panels\r
+ for (var i=0; i<nodes.length; i++) {\r
+ if (nodes[i].nodeName == "DIV")\r
+ nodes[i].className = 'panel';\r
+ }\r
+\r
+ // Show selected panel\r
+ panelElm.className = 'current';\r
+ }\r
+};\r
+\r
+MCTabs.prototype.getAnchor = function() {\r
+ var pos, url = document.location.href;\r
+\r
+ if ((pos = url.lastIndexOf('#')) != -1)\r
+ return url.substring(pos + 1);\r
+\r
+ return "";\r
+};\r
+\r
+// Global instance\r
+var mcTabs = new MCTabs();\r
--- /dev/null
+/**\r
+ * $Id$\r
+ *\r
+ * Various form validation methods.\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+/**\r
+ // String validation:\r
+\r
+ if (!Validator.isEmail('myemail'))\r
+ alert('Invalid email.');\r
+\r
+ // Form validation:\r
+\r
+ var f = document.forms['myform'];\r
+\r
+ if (!Validator.isEmail(f.myemail))\r
+ alert('Invalid email.');\r
+*/\r
+\r
+var Validator = {\r
+ isEmail : function(s) {\r
+ return this.test(s, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');\r
+ },\r
+\r
+ isAbsUrl : function(s) {\r
+ return this.test(s, '^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+\\/?.*$');\r
+ },\r
+\r
+ isSize : function(s) {\r
+ return this.test(s, '^[0-9]+(%|in|cm|mm|em|ex|pt|pc|px)?$');\r
+ },\r
+\r
+ isId : function(s) {\r
+ return this.test(s, '^[A-Za-z_]([A-Za-z0-9_])*$');\r
+ },\r
+\r
+ isEmpty : function(s) {\r
+ var nl, i;\r
+\r
+ if (s.nodeName == 'SELECT' && s.selectedIndex < 1)\r
+ return true;\r
+\r
+ if (s.type == 'checkbox' && !s.checked)\r
+ return true;\r
+\r
+ if (s.type == 'radio') {\r
+ for (i=0, nl = s.form.elements; i<nl.length; i++) {\r
+ if (nl[i].type == "radio" && nl[i].name == s.name && nl[i].checked)\r
+ return false;\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ return new RegExp('^\\s*$').test(s.nodeType == 1 ? s.value : s);\r
+ },\r
+\r
+ isNumber : function(s, d) {\r
+ return !isNaN(s.nodeType == 1 ? s.value : s) && (!d || !this.test(s, '^-?[0-9]*\\.[0-9]*$'));\r
+ },\r
+\r
+ test : function(s, p) {\r
+ s = s.nodeType == 1 ? s.value : s;\r
+\r
+ return s == '' || new RegExp(p).test(s);\r
+ }\r
+};\r
+\r
+var AutoValidator = {\r
+ settings : {\r
+ id_cls : 'id',\r
+ int_cls : 'int',\r
+ url_cls : 'url',\r
+ number_cls : 'number',\r
+ email_cls : 'email',\r
+ size_cls : 'size',\r
+ required_cls : 'required',\r
+ invalid_cls : 'invalid',\r
+ min_cls : 'min',\r
+ max_cls : 'max'\r
+ },\r
+\r
+ init : function(s) {\r
+ var n;\r
+\r
+ for (n in s)\r
+ this.settings[n] = s[n];\r
+ },\r
+\r
+ validate : function(f) {\r
+ var i, nl, s = this.settings, c = 0;\r
+\r
+ nl = this.tags(f, 'label');\r
+ for (i=0; i<nl.length; i++)\r
+ this.removeClass(nl[i], s.invalid_cls);\r
+\r
+ c += this.validateElms(f, 'input');\r
+ c += this.validateElms(f, 'select');\r
+ c += this.validateElms(f, 'textarea');\r
+\r
+ return c == 3;\r
+ },\r
+\r
+ invalidate : function(n) {\r
+ this.mark(n.form, n);\r
+ },\r
+\r
+ reset : function(e) {\r
+ var t = new Array('label', 'input', 'select', 'textarea');\r
+ var i, j, nl, s = this.settings;\r
+\r
+ if (e == null)\r
+ return;\r
+\r
+ for (i=0; i<t.length; i++) {\r
+ nl = this.tags(e.form ? e.form : e, t[i]);\r
+ for (j=0; j<nl.length; j++)\r
+ this.removeClass(nl[j], s.invalid_cls);\r
+ }\r
+ },\r
+\r
+ validateElms : function(f, e) {\r
+ var nl, i, n, s = this.settings, st = true, va = Validator, v;\r
+\r
+ nl = this.tags(f, e);\r
+ for (i=0; i<nl.length; i++) {\r
+ n = nl[i];\r
+\r
+ this.removeClass(n, s.invalid_cls);\r
+\r
+ if (this.hasClass(n, s.required_cls) && va.isEmpty(n))\r
+ st = this.mark(f, n);\r
+\r
+ if (this.hasClass(n, s.number_cls) && !va.isNumber(n))\r
+ st = this.mark(f, n);\r
+\r
+ if (this.hasClass(n, s.int_cls) && !va.isNumber(n, true))\r
+ st = this.mark(f, n);\r
+\r
+ if (this.hasClass(n, s.url_cls) && !va.isAbsUrl(n))\r
+ st = this.mark(f, n);\r
+\r
+ if (this.hasClass(n, s.email_cls) && !va.isEmail(n))\r
+ st = this.mark(f, n);\r
+\r
+ if (this.hasClass(n, s.size_cls) && !va.isSize(n))\r
+ st = this.mark(f, n);\r
+\r
+ if (this.hasClass(n, s.id_cls) && !va.isId(n))\r
+ st = this.mark(f, n);\r
+\r
+ if (this.hasClass(n, s.min_cls, true)) {\r
+ v = this.getNum(n, s.min_cls);\r
+\r
+ if (isNaN(v) || parseInt(n.value) < parseInt(v))\r
+ st = this.mark(f, n);\r
+ }\r
+\r
+ if (this.hasClass(n, s.max_cls, true)) {\r
+ v = this.getNum(n, s.max_cls);\r
+\r
+ if (isNaN(v) || parseInt(n.value) > parseInt(v))\r
+ st = this.mark(f, n);\r
+ }\r
+ }\r
+\r
+ return st;\r
+ },\r
+\r
+ hasClass : function(n, c, d) {\r
+ return new RegExp('\\b' + c + (d ? '[0-9]+' : '') + '\\b', 'g').test(n.className);\r
+ },\r
+\r
+ getNum : function(n, c) {\r
+ c = n.className.match(new RegExp('\\b' + c + '([0-9]+)\\b', 'g'))[0];\r
+ c = c.replace(/[^0-9]/g, '');\r
+\r
+ return c;\r
+ },\r
+\r
+ addClass : function(n, c, b) {\r
+ var o = this.removeClass(n, c);\r
+ n.className = b ? c + (o != '' ? (' ' + o) : '') : (o != '' ? (o + ' ') : '') + c;\r
+ },\r
+\r
+ removeClass : function(n, c) {\r
+ c = n.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' ');\r
+ return n.className = c != ' ' ? c : '';\r
+ },\r
+\r
+ tags : function(f, s) {\r
+ return f.getElementsByTagName(s);\r
+ },\r
+\r
+ mark : function(f, n) {\r
+ var s = this.settings;\r
+\r
+ this.addClass(n, s.invalid_cls);\r
+ this.markLabels(f, n, s.invalid_cls);\r
+\r
+ return false;\r
+ },\r
+\r
+ markLabels : function(f, n, ic) {\r
+ var nl, i;\r
+\r
+ nl = this.tags(f, "label");\r
+ for (i=0; i<nl.length; i++) {\r
+ if (nl[i].getAttribute("for") == n.id || nl[i].htmlFor == n.id)\r
+ this.addClass(nl[i], ic);\r
+ }\r
+\r
+ return null;\r
+ }\r
+};\r