diff --git a/sites/all/modules/wysiwyg/CHANGELOG.txt b/sites/all/modules/wysiwyg/CHANGELOG.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ce8b5471a5fa8a94d4ddad6210f47442a798aff2
--- /dev/null
+++ b/sites/all/modules/wysiwyg/CHANGELOG.txt
@@ -0,0 +1,249 @@
+// $Id: CHANGELOG.txt,v 1.194 2010/04/07 21:18:20 sun Exp $
+
+Wysiwyg x.x-x.x, xxxx-xx-xx
+---------------------------
+
+
+Wysiwyg 7.x-3.x, xxxx-xx-xx
+---------------------------
+#752516 by nquocbao, sun: Fixed openwysiwyg version callback.
+#739558 by sun, TwoD: Updated for new #type text_format.
+#612954 by TwoD: Fixed broken editor settings.
+#585932 by sun: Ported to Drupal 7.
+
+
+Wysiwyg 6.x-3.x, xxxx-xx-xx
+---------------------------
+#753536 by TwoD: Fixed version detection for Whizzywig.
+#752516 by nquocbao, sun: Fixed file stream warnings in version callbacks.
+#628110 by quicksketch, sun, markus_petrux: Added editor settings alter hook.
+#689218 by wwalc, TwoD, sun: Improved support for CKEditor.
+#695398 by TwoD: Updated support for TinyMCE 3.3.
+#696040 by Dave Reid: Fixed missing Cancel link on profile form.
+#594322 by TwoD: Added insert method for NicEdit.
+#659200 by TwoD: Fixed YUI Editor content lost in IE.
+#594928 by ericbellot, TwoD, sun: Fixed 'attribs' button missing in TinyMCE.
+#557090 by TwoD: Fixed Whizzywig 56 instance not removed on detach().
+#667848 by TwoD, kaakuu: Fixed FCKeditor is not properly detached in IE.
+#695768 by sun: Fixed #resizable removed when no editor profiles are loaded.
+#631494 by TwoD: Fixed multi-site libraries directory failure for WYMeditor.
+#660080 by TwoD: Fixed Notice: Undefined offset.
+#613922 by TwoD, sun: Fixed PHP warning when saving profiles.
+#582298 by dereine: Added auto-paste from Word detection for FCKeditor.
+#597852 by sun: Fixed missing Turkish in language list.
+#620176 by sun: Fixed missing Ukrainian in language list.
+#613480 by TwoD, Dave Reid: Fixed PHP 5.3 compatibility.
+#462146 by TwoD: Cleaned up CKEditor implementation.
+#380586 by SimonEast: Updated YUI editor: Version detection not working.
+#610132 by TwoD: Updated CKEditor 3.0.1, stylesheets and version check.
+#620858 by quicksketch: Fixed focus event not firing for CKeditor.
+#462146 by TwoD, et al: Added support for CKeditor.
+#489156 by sun: Removed orphan global 'showToggle' JS setting.
+#462146 by sun, Niels Hackius: Fixed version detection for CKeditor.
+#545210 by sun: Fixed default value for editor toggle link.
+#372826 by Roi Danton, sun: Added Wysiwyg API developer documentation.
+#80170 by sun: Changed dialog/plugin API for Inline API compatibility.
+by sun: Fixed PHP notice.
+#514912 by Likeless, sun: Added plugin/button handling for WYMeditor.
+#538996 by darktygur: Fixed 404 errors for non-existing theme CSS files.
+#509570 by Rob Loach, sun: Added forced detaching of editor upon form submit.
+#526644 by Darren Oh: Fixed broken editor theme validation.
+#490914 by sun: Fixed JS/CSS not updated after update with caching enabled.
+#522440 by authentictech, sun: UX: Fixed user interface for Wysiwyg profiles.
+#507608 by jfh: Added WYMeditor instance API methods.
+by sun: Fixed form_build_id not removed from serialized profile settings.
+#496744 by TwoD: Fixed FCKeditor: "Apply source formatting" not working.
+#462146 by sun: Added CKeditor support.
+#490270 by sun: Fixed openWYSIWYG displays no buttons by default.
+#490266 by sun: Fixed JS error when wysiwyg profile contains no buttons.
+#400482 by sun: Fixed editor.instance.prepareContent() breaks editor's native
+  markup handling. Drupal plugin authors should add the CSS class
+  'drupal-content' to prevent the editor selection to activate internal editor
+  buttons.
+#394068 by kswan: Fixed missing button icons in markItUp.
+
+
+Wysiwyg 6.x-2.0, 2009-06-10
+---------------------------
+#474908 by TwoD: Fixed Teaser break causing error in IE8.
+by sun: Major code clean-up.
+#331089 by wwalc: Fixed FCKeditor toolbar buttons do not wrap.
+#407014 by sun: Fixed/removed migration from other editor integration modules.
+#485264 by sun: Changed installation instructions to be more concise.
+#479514 by sun: Fixed native plugin loading for TinyMCE (follow-up).
+#434590 by sun: Fixed path admin/settings/wysiwyg not found.
+#479514 by TwoD, sun: Added native plugin support for FCKeditor.
+#341054 by sun: Fixed toggle link configuration setting not working.
+by sun: Fixed markItUp button icons are not displayed.
+by sun: Added openWYSIWYG editor support.
+#362137 by jfh, sun: Fixed WYMeditor broken when JS/CSS aggregation is enabled.
+#328252 by sun: Added TinyMCE plugin BBCode for 3.x.
+#429926 by TwoD, sun: Fixed TinyMCE broken due to renamed Flash/Media plugin.
+#342864 by davexoxide, sun: Added YUI editor support.
+#332139 by sun: Fixed editor must not be changed when profile is configured.
+#362137 by jfh: Added WYMeditor support.
+#470928 by jfh, sun: Fixed Drupal.wysiwyg.clone turns arrays into objects.
+#445826 by TwoD: Fixed FCKeditor: Drupal.wysiwyg.activeId not updated.
+#478324 by jeffschuler: Fixed typo in profile configuration form.
+#373542 by sun: Fixed encoding of HTML entities for certain languages.
+#320562 by sun: Changed location for external editor libraries.
+#449134 by sun: Fixed stylesheets of theme missing in node form previews.
+
+
+Wysiwyg 6.x-2.0-ALPHA1, 2009-05-17
+----------------------------------
+#403728 by jfduchesneau: Fixed none.js breaks if textarea.js is not loaded.
+#454992 by sun: Fixed drupal_get_js() query string 'q' breaks plugin loading.
+#419696 by sun: Fixed native plugins plugins are not loaded for all profiles.
+#414768 by sun: Fixed Wysiwyg API not working in Konqueror.
+#293803 by sun: Fixed "Show summary in full view" checkbox not displayed.
+#416742 by sun: Fixed type casting of $profile in profile configuration form.
+#404532 by TwoD: Fixed Teaser break comment stripped in IE.
+#380698 by TwoD: Added Drupal plugin support for FCKeditor.
+#380698 by TwoD, sun: Added Drupal plugin support for FCKeditor (part I).
+#398848 by sun: Added support for TinyMCE 3.1.
+#394068 by StephaneC: markItUp: Fixed icons not displayed due to #385736.
+#385974 by sun: Fixed form element description for CSS path (for Define CSS).
+#390460 by sun: Fixed broken plugin loading due to #359626.
+#385736 by sun: Fixed markItUp: Wrong editor library location.
+#308912 by sun: Fixed TinyMCE: Buttons do not wrap in IE/Chrome.
+#380586 by sun, hass: YUI editor: Fixed version detection.
+#390224 by hass: Fixed JS error YAHOO.widget.Editor is not a constructor.
+#359626 by sun: Fixed external/Drupal plugins are not loaded for all profiles.
+#369115 by sun: Fixed TinyMCE's URL conversion magic breaks some input filters.
+#376400 by TwoD: Fixed bad grammar in help text on profile overview page.
+#367632 by sun: Fixed $this and i JavaScript variables defined in global scope.
+#319363 by sun: Fixed missing spacer.gif for Teaser break plugin.
+#373672 by chawl: Added (native) xhtmlextras plugin for TinyMCE 3.
+#287025 by sun: Fixed native editor plugin options for TinyMCE and FCKeditor.
+#373542 by sun: Fixed TinyMCE: entity_encoding 'raw' removes HTML entities.
+#372806 by sun: Fixed block format configuration form element description.
+#370277 by sun: Fixed "Uncaught SyntaxError: Unexpected token" in IE/Chrome.
+#367632 by sun: Fixed "Unexpected identifier, string or number" error in IE.
+#367632 by sun: Fixed invalid JavaScript syntax.
+#319363 by sun: Follow-up: Synced 1.x with 2.x where possible.
+#319363 by sun, quicksketch: Rewrote editor plugin API.  The new plugin API
+  allows Drupal modules to expose editor plugins for ANY editor without
+  implementing editor-specific code.  Major milestone for better content-editing
+  in Drupal.
+#364782 by sun: Fixed theme stylesheets not properly loaded.
+#352938 by sun: Fixed JS error (blank page) in IE when plugins are loaded.
+#331089 by wwalc, sun: Added custom toolbar configuration support for FCKeditor.
+#331089 by sun: Fixed PHP notice for 'user_choose'; FCKeditor clean-up.
+#344230 by wwalc: Fixed wrong editor base path setting for FCKeditor.
+#361289 by sun: Fixed CSS files do not need to use media 'screen'.
+#360696 by sun: Fixed IE does not trigger onChange event when selecting an input
+  format.
+#342376 by sun: Extended API to allow "preprocess" JavaScript option for some
+  editors.
+#352295 by sun: Added markItUp editor support.
+#352703 by sun: Fixed wrong default configuration options for TinyMCE 3.2.1+.
+#348317 by sun: Fixed TinyMCE's extended_valid_elements for advlink/advimage
+  plugin.
+#348986 by sun: Added CSS class for toggle link container.
+#342864 by davexoxide, sun: Added YUI editor support.
+#343217 by sun: Fixed improperly capitalized library script name for nicEdit.
+#341267 by sun: Fixed improper test for internal editor plugins.
+#341996 by sun: Fixed editor cannot be re-enabled with one input format only.
+#341267 by sun: Added support for extensions that do not need to be loaded.
+
+
+Wysiwyg 6.x-0.5, 2008-12-01
+---------------------------
+#340758 by sun: Changed installation instructions to be displayed permanently.
+#322657 by sun: Fixed "Enabled by default" option does not work when disabled.
+#328052 by sun: Fixed switching input formats leads to wrong editor/state.
+#337569 by sun: Fixed different profiles for same editor are not respected.
+#340195 by sun: Fixed #after_build function not invoked on all forms.
+#333521 by sun: Fixed TinyMCE version detection to look at the actual script.
+#329657 by svendecabooter, sun: Added Whizzywig support.
+#333521 by sun: Fixed TinyMCE version detection docs.
+#327100 by sun: Changed access permission for settings page to 'administer
+  filters' to prevent incomplete updates.
+#322731 by sun: Fixed improper use of t() in module install file.
+#329410 by sun: Fixed editor not loaded if there is only one input format.
+#324366 by sun: Fixed "Illegal offset type" error on custom content-types.
+#328948 by sun: Fixed PHP notices when editors are assigned, but not configured.
+#327710 by sun: Fixed nicEdit version could not be detected.
+#328116 by sun: Added Safari plugin for TinyMCE 3.
+#327710 by sun: Added nicEdit support.
+#323855 by sun: Increased supported version of jWYSIWYG to 0.5.
+#323671 by sun: Fixed TinyMCE editor not resized when browser is resized.
+#327152 by sun: Fixed breadcrumbs for profile configuration pages.
+#323855 by Rob Loach, sun: Added jWYSIWYG support.
+#327100 by sun: Associate editors/profiles with input formats. Major milestone.
+#325980 by markus_petrux: Added Spanish/Catalan translation for Break plugin.
+#323795 by sun: Removed obsolete Wysiwyg Editor module files.
+#308912 by sun: Fixed alignment of editor buttons in TinyMCE 3.
+#316507 by sun: Fixed TinyMCE 3 not detached properly from AJAX contents.
+#320559 by markus_petrux, sun: Added confirmation form to delete profiles.
+
+
+Wysiwyg 6.x-0.4, 2008-10-14
+---------------------------
+#321216 by sun: Replaced Wysiwyg Editor module with Wysiwyg module.
+#321086 by sun: Fixed (old-style) Teaser break plugin breaks TinyMCE 3.
+#316507 by sun: Code clean-up; editor settings should be cloned for init, too.
+#282717 by sun: Fixed FCKeditor default settings while FCKeditor maintainers get
+  up and running.
+#319363 by sun: Changed JS settings namespace 'wysiwygEditor' to 'wysiwyg'.
+#319363 by sun: Code clean-up; fixed missing namespace change in tinymce-3.js.
+#273408 by quicksketch: Added blockquote button for TinyMCE 3.
+#319363 by sun: Changed JavaScript namespaces and centralized namespace
+  initialization.
+#270780 by sun: Fixed TinyMCE 3 support for external plugins.
+#309832 by sun: Fixed README.txt.
+#253600 by sun: Changed editor integration so that client-side editors attach to
+  input formats instead of textareas and are invoked for input format enabled
+  textareas only.
+#282717 by sun: Added (basic) FCKeditor support.
+#316507 by sun: Added Drupal.wysiwyg function stacks to execute editor library
+  specific actions upon initializing, attaching, detaching, and toggling an
+  editor. Editor specific JavaScript resides in separate files now, as specified
+  and returned by implementations of hook_editor().
+  Wysiwyg is a real API finally, supporting multiple editors and editor versions.
+#316507 by sun: Rewrote Wysiwyg API's internal architecture to support multiple
+  editors.
+
+
+Wysiwyg 6.x-0.3, 2008-09-12
+---------------------------
+#125267 by sun: Removed Safari browser warning configuration option.
+#304243 by sun: Fixed profile configuration improperly passed to JavaScript.
+#304243 by sun: Code clean-up for wysiwyg_editor_profile_overview().
+#289218 by gustav: Fixed E^ALL notice if node has no body field.
+#304243 by sun: Code clean-up for wysiwyg_editor_user_status().
+#299108 by toniw: Added setting for TinyMCE's auto-cleanup paste feature.
+#293916 by sun: Clarified TinyMCE compatibility in README.txt.
+#293425 by sun: Fixed foreach warning during upgrade from TinyMCE module.
+#292517 by sun: Fixed SQL error during upgrade from TinyMCE module.
+#286470 by chayner, sun: Fixed wrong editorBasePath in editor configuration.
+#227687 by sun: Fixed improperly capitalized package name.
+#288028 by Matthew Davidson: Fixed outdated check for PHP input filter.
+#280727 by sun: Removed gzip compressor from installation instructions.
+by sun: Fixed JavaScript errors when JS aggregation/compression is enabled.
+#268562 by sun: Code clean-up; changed format for custom defined CSS classes
+  and removed error-prone auto-layout of buttons in favor of aligning them in
+  one row with a stylesheet; may break existing profiles.
+#270730 by hass, sun: Added German translation for Teaser break plugin.
+#268838 by sun: Fixed PHP warning if no buttons are enabled for a profile.
+#268838 by sun: Ported to Drupal 6.x.
+#152046 by sun: Added hook_wysiwyg_plugin().
+#268562 by sun: Code clean-up.
+#60667 by sun: Fixed wrong editor profile is loaded when user is granted access
+  to more than one profile.
+#264739 by sun: Fixed missing t() around some profile settings options.
+
+
+Wysiwyg 5.x-0.1, 2008-06-07
+---------------------------
+#264739 by sun: Improved output strings.
+#264739 by hass, sun: Fixed potx error due to wrong t() string.
+#264411 by sun: Cleaned coding-style using coder_format script.
+#264411 by sun: Moved admin functions into separate include file.
+#264411 by sun: Added TinyMCE data import upon installation.
+#264411 by sun: Renamed module to Wysiwyg Editor.
+#118747 by nedjo, sun: Upgraded code for jQuery.
+Initial fork of TinyMCE module (2008-05-30).
+
+
diff --git a/sites/all/modules/wysiwyg/LICENSE.txt b/sites/all/modules/wysiwyg/LICENSE.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2c095c8d3f42488e8168f9710a4ffbfc4125a159
--- /dev/null
+++ b/sites/all/modules/wysiwyg/LICENSE.txt
@@ -0,0 +1,274 @@
+GNU GENERAL PUBLIC LICENSE
+
+              Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
+Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
+verbatim copies of this license document, but changing it is not allowed.
+
+                  Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users. This General Public License
+applies to most of the Free Software Foundation's software and to any other
+program whose authors commit to using it. (Some other Free Software
+Foundation software is covered by the GNU Library General Public License
+instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show
+them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients
+to know that what they have is not the original, so that any problems
+introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+           GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+               MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter, translation
+is included without limitation in the term "modification".) Each licensee is
+addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made
+by running the Program). Whether that is true depends on what the Program
+does.
+
+1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in whole or in
+part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.
+
+c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this License.
+(Exception: if the Program itself is interactive but does not normally print such
+an announcement, your work based on the Program is not required to print
+an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you distribute
+them as separate works. But when you distribute the same sections as part
+of a whole which is a work based on the Program, the distribution of the
+whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to
+work written entirely by you; rather, the intent is to exercise the right to
+control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of a
+storage or distribution medium does not bring the other work under the scope
+of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above
+on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three years, to give
+any third party, for a charge no more than your cost of physically performing
+source distribution, a complete machine-readable copy of the corresponding
+source code, to be distributed under the terms of Sections 1 and 2 above on
+a medium customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer to distribute
+corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object
+code or executable form with such an offer, in accord with Subsection b
+above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source code
+means all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance
+of this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose
+that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that
+version or of any later version published by the Free Software Foundation. If
+the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+               NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
+PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
+AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
+ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE
+PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
+OR DATA BEING RENDERED INACCURATE OR LOSSES
+SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
+IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.
+
+          END OF TERMS AND CONDITIONS
diff --git a/sites/all/modules/wysiwyg/README.txt b/sites/all/modules/wysiwyg/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8cdca4e06d4ef9ca3afb4798ae9d76f7983c02e7
--- /dev/null
+++ b/sites/all/modules/wysiwyg/README.txt
@@ -0,0 +1,55 @@
+/* $Id: README.txt,v 1.8 2009/09/26 05:37:56 sun Exp $ */
+
+-- SUMMARY --
+
+Wysiwyg API allows to users of your site to use WYSIWYG/rich-text, and other
+client-side editors for editing contents.  This module depends on third-party
+editor libraries, most often based on JavaScript.
+
+For a full description visit the project page:
+  http://drupal.org/project/wysiwyg
+Bug reports, feature suggestions and latest developments:
+  http://drupal.org/project/issues/wysiwyg
+
+
+-- REQUIREMENTS --
+
+* None.
+
+
+-- INSTALLATION --
+
+* Install as usual, see http://drupal.org/node/70151 for further information.
+
+* Go to Administer > Configuration and modules > Content authoring > Wysiwyg,
+  and follow the displayed installation instructions to download and install one
+  of the supported editors.
+
+
+-- CONFIGURATION --
+
+* Go to Administer > Configuration and modules > Content authoring > Text
+  formats and
+
+  - either configure the Full HTML format, assign it to trusted roles, and
+    disable "HTML filter", "Line break converter", and (optionally) "URL filter".
+
+  - or add a new text format, assign it to trusted roles, and ensure that above
+    mentioned input filters are disabled.
+
+* Setup editor profiles in Administer > Configuration and modules > Content
+  authoring > Wysiwyg.
+
+
+-- CONTACT --
+
+Current maintainers:
+* Daniel F. Kudwien (sun) - http://drupal.org/user/54136
+* Henrik Danielsson (TwoD) - http://drupal.org/user/244227
+
+This project has been sponsored by:
+* UNLEASHED MIND
+  Specialized in consulting and planning of Drupal powered sites, UNLEASHED
+  MIND offers installation, development, theming, customization, and hosting
+  to get you started. Visit http://www.unleashedmind.com for more information.
+
diff --git a/sites/all/modules/wysiwyg/editors/ckeditor.inc b/sites/all/modules/wysiwyg/editors/ckeditor.inc
new file mode 100644
index 0000000000000000000000000000000000000000..db13e18e361ebadee5f1261c950851f85f456655
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/ckeditor.inc
@@ -0,0 +1,328 @@
+<?php
+// $Id: ckeditor.inc,v 1.7 2010/04/02 14:05:36 sun Exp $
+
+/**
+ * @file
+ * Editor integration functions for CKEditor.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_ckeditor_editor() {
+  $editor['ckeditor'] = array(
+    'title' => 'CKEditor',
+    'vendor url' => 'http://ckeditor.com',
+    'download url' => 'http://ckeditor.com/download',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Default',
+        'files' => array(
+          'ckeditor.js' => array('preprocess' => FALSE),
+        ),
+      ),
+      'src' => array(
+        'title' => 'Source',
+        'files' => array(
+          'ckeditor_source.js' => array('preprocess' => FALSE),
+        ),
+      ),
+    ),
+    'version callback' => 'wysiwyg_ckeditor_version',
+    'themes callback' => 'wysiwyg_ckeditor_themes',
+    'settings callback' => 'wysiwyg_ckeditor_settings',
+    'plugin callback' => 'wysiwyg_ckeditor_plugins',
+    'plugin settings callback' => 'wysiwyg_ckeditor_plugin_settings',
+    'proxy plugin' => array(
+      'drupal' => array(
+        'load' => TRUE,
+        'proxy' => TRUE,
+      ),
+    ),
+    'proxy plugin settings callback' => 'wysiwyg_ckeditor_proxy_plugin_settings',
+    'versions' => array(
+      '3.0.0.3665' => array(
+        'js files' => array('ckeditor-3.0.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_ckeditor_version($editor) {
+  $library = $editor['library path'] . '/ckeditor.js';
+  if (!file_exists($library)) {
+    return;
+  }
+  $library = fopen($library, 'r');
+  $max_lines = 8;
+  while ($max_lines && $line = fgets($library, 140)) {
+    // version:'CKEditor 3.0 SVN',revision:'3665'
+    // version:'3.0 RC',revision:'3753'
+    // version:'3.0.1',revision:'4391'
+    if (preg_match('@version:\'(?:CKEditor )?([\d\.]+)(?:.+revision:\'([\d]+))?@', $line, $version)) {
+      fclose($library);
+      // Version numbers need to have three parts since 3.0.1.
+      $version[1] = preg_replace('/^(\d+)\.(\d+)$/', '${1}.${2}.0', $version[1]);
+      return $version[1] . '.' . $version[2];
+    }
+    $max_lines--;
+  }
+  fclose($library);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_ckeditor_themes($editor, $profile) {
+  // @todo Skins are not themes but this will do for now.
+  $path = $editor['library path'] . '/skins/';
+  if (file_exists($path) && ($dir_handle = opendir($path))) {
+    $themes = array();
+    while ($file = readdir($dir_handle)) {
+      if (is_dir($path . $file) && substr($file, 0, 1) != '.' && $file != 'CVS') {
+        $themes[] = $file;
+      }
+    }
+    closedir($dir_handle);
+    return !empty($themes) ? $themes : array('default');
+  }
+  else {
+    return array('default');
+  }
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_ckeditor_settings($editor, $config, $theme) {
+  $settings = array(
+    'baseHref' => $GLOBALS['base_url'] . '/',
+    'width' => '100%',
+    // For better compatibility with smaller textareas.
+    'resize_minWidth' => 450,
+    'height' => 420,
+    // @todo Do not use skins as themes and add separate skin handling.
+    'theme' => 'default',
+    'skin' => !empty($theme) ? $theme : 'kama',
+    // By default, CKEditor converts most characters into HTML entities. Since
+    // it does not support a custom definition, but Drupal supports Unicode, we
+    // disable at least the additional character sets. CKEditor always converts
+    // XML default characters '&', '<', '>'.
+    // @todo Check whether completely disabling ProcessHTMLEntities is an option.
+    'entities_latin' => FALSE,
+    'entities_greek' => FALSE,
+  );
+
+  // Add HTML block format settings; common block formats are already predefined
+  // by CKEditor.
+  if (isset($config['block_formats'])) {
+    $block_formats = explode(',', drupal_strtolower($config['block_formats']));
+    $predefined_formats = array('h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'pre', 'address', 'div');
+    foreach (array_diff($block_formats, $predefined_formats) as $tag) {
+      $tag = trim($tag);
+      $settings["format_$tag"] = array('element' => $tag);
+    }
+    $settings['format_tags'] = implode(';', $block_formats);
+  }
+
+  if (isset($config['apply_source_formatting'])) {
+    $settings['apply_source_formatting'] = $config['apply_source_formatting'];
+  }
+
+  if (isset($config['css_setting'])) {
+    // Versions below 3.0.1 could only handle one stylesheet.
+    if (version_compare($editor['installed version'], '3.0.1.4391', '<')) {
+      if ($config['css_setting'] == 'theme') {
+        $settings['contentsCss'] = reset(wysiwyg_get_css());
+      }
+      elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+        $settings['contentsCss'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+      }
+    }
+    else {
+      if ($config['css_setting'] == 'theme') {
+        $settings['contentsCss'] = wysiwyg_get_css();
+      }
+      elseif ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+        $settings['contentsCss'] = explode(',', strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme())));
+      }
+    }
+  }
+
+  if (isset($config['language'])) {
+    $settings['language'] = $config['language'];
+  }
+  if (isset($config['resizing'])) {
+    $settings['resize_enabled'] = $config['resizing'];
+  }
+  if (isset($config['toolbar_loc'])) {
+    $settings['toolbarLocation'] = $config['toolbar_loc'];
+  }
+
+  if (!empty($config['buttons'])) {
+    $extra_plugins = array();
+    $settings['toolbar'] = array();
+    $plugins = wysiwyg_get_plugins($editor['name']);
+    foreach ($config['buttons'] as $plugin => $buttons) {
+      foreach ($buttons as $button => $enabled) {
+        // Iterate separately over buttons and extensions properties.
+        foreach (array('buttons', 'extensions') as $type) {
+          // Skip unavailable plugins.
+          if (!isset($plugins[$plugin][$type][$button])) {
+            continue;
+          }
+          // Add buttons.
+          if ($type == 'buttons') {
+            $settings['toolbar'][] = $button;
+          }
+          // Add external Drupal plugins to the list of extensions.
+          if ($type == 'buttons' && !empty($plugins[$plugin]['proxy'])) {
+            $extra_plugins[] = $button;
+          }
+          // Add external plugins to the list of extensions.
+          elseif ($type == 'buttons' && empty($plugins[$plugin]['internal'])) {
+            $extra_plugins[] = $plugin;
+          }
+          // Add internal buttons that also need to be loaded as extension.
+          elseif ($type == 'buttons' && !empty($plugins[$plugin]['load'])) {
+            $extra_plugins[] = $plugin;
+          }
+          // Add plain extensions.
+          elseif ($type == 'extensions' && !empty($plugins[$plugin]['load'])) {
+            $extra_plugins[] = $plugin;
+          }
+          // Allow plugins to add or override global configuration settings.
+          if (!empty($plugins[$plugin]['options'])) {
+            $settings = array_merge($settings, $plugins[$plugin]['options']);
+          }
+        }
+      }
+    }
+    if (!empty($extra_plugins)) {
+      $settings['extraPlugins'] = implode(',', $extra_plugins);
+    }
+    // For now, all buttons are placed into one row.
+    if (!empty($settings['toolbar'])) {
+      $settings['toolbar'] = array($settings['toolbar']);
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Build a JS settings array of native external plugins that need to be loaded separately.
+ */
+function wysiwyg_ckeditor_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    // Register all plugins that need to be loaded.
+    if (!empty($plugin['load'])) {
+      $settings[$name] = array();
+      // Add path for native external plugins.
+      if (empty($plugin['internal']) && isset($plugin['path'])) {
+        $settings[$name]['path'] = base_path() . $plugin['path'];
+      }
+      // Force native internal plugins to use the standard path.
+      else {
+        $settings[$name]['path'] = base_path() . $editor['library path'] . '/plugins/' . $name . '/';
+      }
+      if (!empty($plugin['filename'])) {
+        $settings[$name]['fileName'] = $plugin['filename'];
+      }
+    }
+  }
+  return $settings;
+}
+
+/**
+ * Build a JS settings array for Drupal plugins loaded via the proxy plugin.
+ */
+function wysiwyg_ckeditor_proxy_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    // Populate required plugin settings.
+    $settings[$name] = $plugin['dialog settings'] + array(
+      'title' => $plugin['title'],
+      'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'],
+      'iconTitle' => $plugin['icon title'],
+      // @todo These should only be set if the plugin defined them.
+      'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'],
+    );
+  }
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_ckeditor_plugins($editor) {
+  $plugins = array(
+    'default' => array(
+      'buttons' => array(
+        'Bold' => t('Bold'), 'Italic' => t('Italic'), 'Underline' => t('Underline'),
+        'Strike' => t('Strike-through'),
+        'JustifyLeft' => t('Align left'), 'JustifyCenter' => t('Align center'), 'JustifyRight' => t('Align right'), 'JustifyBlock' => t('Justify'),
+        'BulletedList' => t('Bullet list'), 'NumberedList' => t('Numbered list'),
+        'Outdent' => t('Outdent'), 'Indent' => t('Indent'),
+        'Undo' => t('Undo'), 'Redo' => t('Redo'),
+        'Link' => t('Link'), 'Unlink' => t('Unlink'), 'Anchor' => t('Anchor'),
+        'Image' => t('Image'),
+        'TextColor' => t('Forecolor'), 'BGColor' => t('Backcolor'),
+        'Superscript' => t('Superscript'), 'Subscript' => t('Subscript'),
+        'Blockquote' => t('Blockquote'), 'Source' => t('Source code'),
+        'HorizontalRule' => t('Horizontal rule'),
+        'Cut' => t('Cut'), 'Copy' => t('Copy'), 'Paste' => t('Paste'),
+        'PasteText' => t('Paste Text'), 'PasteFromWord' => t('Paste from Word'),
+        'ShowBlocks' => t('Show blocks'),
+        'RemoveFormat' => t('Remove format'),
+        'SpecialChar' => t('Character map'),
+        'Format' => t('HTML block format'), 'Font' => t('Font'), 'FontSize' => t('Font size'), 'Styles' => t('Font style'),
+        'Table' => t('Table'),
+        'SelectAll' => t('Select all'), 'Find' => t('Search'), 'Replace' => t('Replace'),
+        'Flash' => t('Flash'), 'Smiley' => t('Smiley'),
+        'CreateDiv' => t('Div container'),
+        'Maximize' => t('Maximize'),
+        'SpellChecker' => t('Check spelling'), 'Scayt' => t('Check spelling as you type'),
+        'About' => t('About'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+
+  if (version_compare($editor['installed version'], '3.1.0.4885', '<')) {
+    unset($plugins['default']['buttons']['CreateDiv']);
+  }
+  return $plugins;
+}
+
diff --git a/sites/all/modules/wysiwyg/editors/css/openwysiwyg.css b/sites/all/modules/wysiwyg/editors/css/openwysiwyg.css
new file mode 100644
index 0000000000000000000000000000000000000000..7744aaab593ecca205dd9b7bdb190fa5024542ed
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/css/openwysiwyg.css
@@ -0,0 +1,12 @@
+/* $Id: openwysiwyg.css,v 1.1 2009/06/06 05:20:09 sun Exp $ */
+
+/**
+ * openWYSIWYG.
+ */
+table.tableTextareaEditor, table.tableTextareaEditor table {
+  margin: 0;
+  border-collapse: separate;
+}
+table.tableTextareaEditor td {
+  padding: 0;
+}
diff --git a/sites/all/modules/wysiwyg/editors/css/tinymce-2.css b/sites/all/modules/wysiwyg/editors/css/tinymce-2.css
new file mode 100644
index 0000000000000000000000000000000000000000..c990419c67c5b164cd549ceccc965c5adc627337
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/css/tinymce-2.css
@@ -0,0 +1,28 @@
+/* $Id: tinymce-2.css,v 1.2 2008/10/29 00:35:11 sun Exp $ */
+
+/**
+ * TinyMCE 2.x
+ */
+table.mceEditor {
+  clear: left;
+}
+
+/**
+ * Align all buttons and separators in a single row, so they wrap into multiple
+ * rows if required.
+ */
+.mceToolbarTop a, .mceToolbarBottom a {
+  float: left;
+}
+.mceSeparatorLine {
+  float: left;
+  margin-top: 3px;
+}
+.mceSelectList {
+  float: left;
+  margin-bottom: 1px;
+}
+/* Place table plugin buttons into new row */
+#mce_editor_0_table, #mce_editor_1_table {
+  clear: left;
+}
diff --git a/sites/all/modules/wysiwyg/editors/css/tinymce-3.css b/sites/all/modules/wysiwyg/editors/css/tinymce-3.css
new file mode 100644
index 0000000000000000000000000000000000000000..04de8b7195f6c65119e225d80e3363f1fec435a3
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/css/tinymce-3.css
@@ -0,0 +1,25 @@
+/* $Id: tinymce-3.css,v 1.3 2008/10/29 00:35:11 sun Exp $ */
+
+/**
+ * TinyMCE 3.x
+ */
+table.mceLayout {
+  clear: left;
+}
+
+/**
+ * Align all buttons and separators in a single row, so they wrap into multiple
+ * rows if required.
+ */
+.mceToolbar td {
+  display: inline;
+}
+.mceToolbar a,
+.mceSeparator {
+  float: left;
+}
+.mceListBox,
+.mceSplitButton {
+  float: left;
+  margin-bottom: 1px;
+}
diff --git a/sites/all/modules/wysiwyg/editors/fckeditor.inc b/sites/all/modules/wysiwyg/editors/fckeditor.inc
new file mode 100644
index 0000000000000000000000000000000000000000..76ed7600a745be5b5b795d155f1fbde213458068
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/fckeditor.inc
@@ -0,0 +1,294 @@
+<?php
+// $Id: fckeditor.inc,v 1.20 2010/04/02 14:05:36 sun Exp $
+
+/**
+ * @file
+ * Editor integration functions for FCKeditor.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_fckeditor_editor() {
+  $editor['fckeditor'] = array(
+    'title' => 'FCKeditor',
+    'vendor url' => 'http://www.fckeditor.net',
+    'download url' => 'http://www.fckeditor.net/download',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Default',
+        'files' => array('fckeditor.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_fckeditor_version',
+    'themes callback' => 'wysiwyg_fckeditor_themes',
+    'settings callback' => 'wysiwyg_fckeditor_settings',
+    'plugin callback' => 'wysiwyg_fckeditor_plugins',
+    'plugin settings callback' => 'wysiwyg_fckeditor_plugin_settings',
+    'proxy plugin' => array(
+      'drupal' => array(
+        'load' => TRUE,
+        'proxy' => TRUE,
+      ),
+    ),
+    'proxy plugin settings callback' => 'wysiwyg_fckeditor_proxy_plugin_settings',
+    'versions' => array(
+      '2.6' => array(
+        'js files' => array('fckeditor-2.6.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_fckeditor_version($editor) {
+  $library = $editor['library path'] . '/fckeditor.js';
+  if (!file_exists($library)) {
+    return;
+  }
+  $library = fopen($library, 'r');
+  $max_lines = 100;
+  while ($max_lines && $line = fgets($library, 60)) {
+    if (preg_match('@^FCKeditor.prototype.Version\s*= \'([\d\.]+)@', $line, $version)) {
+      fclose($library);
+      return $version[1];
+    }
+    $max_lines--;
+  }
+  fclose($library);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_fckeditor_themes($editor, $profile) {
+  return array('default', 'office2003', 'silver');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_fckeditor_settings($editor, $config, $theme) {
+  $settings = array(
+    'EditorPath' => base_path() . $editor['library path'] . '/',
+    'SkinPath' => base_path() . $editor['library path'] . '/editor/skins/' . $theme . '/',
+    'CustomConfigurationsPath' => base_path() . drupal_get_path('module', 'wysiwyg') . '/editors/js/fckeditor.config.js',
+    'Width' => '100%',
+    'Height' => 420,
+    'LinkBrowser' => FALSE,
+    'LinkUpload' => FALSE,
+    'ImageBrowser' => FALSE,
+    'ImageUpload' => FALSE,
+    'FlashBrowser' => FALSE,
+    'FlashUpload' => FALSE,
+    // By default, FCKeditor converts most characters into HTML entities. Since
+    // it does not support a custom definition, but Drupal supports Unicode, we
+    // disable at least the additional character sets. FCKeditor always converts
+    // XML default characters '&', '<', '>'.
+    // @todo Check whether completely disabling ProcessHTMLEntities is an option.
+    'IncludeLatinEntities' => FALSE,
+    'IncludeGreekEntities' => FALSE,
+  );
+  if (isset($config['block_formats'])) {
+    $settings['FontFormats'] = strtr($config['block_formats'], array(',' => ';'));
+  }
+  if (isset($config['apply_source_formatting'])) {
+    $settings['FormatOutput'] = $settings['FormatSource'] = $config['apply_source_formatting'];
+  }
+  if (isset($config['paste_auto_cleanup_on_paste'])) {
+    $settings['AutoDetectPasteFromWord'] = $config['paste_auto_cleanup_on_paste'];
+  }
+
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $settings['EditorAreaCSS'] = implode(',', wysiwyg_get_css());
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['EditorAreaCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  if (!empty($config['buttons'])) {
+    // Use our custom toolbar set.
+    $settings['ToolbarSet'] = 'Wysiwyg';
+    // Populate our custom toolbar set for fckeditor.config.js.
+    $settings['buttons'] = array();
+    $plugins = wysiwyg_get_plugins($editor['name']);
+    foreach ($config['buttons'] as $plugin => $buttons) {
+      foreach ($buttons as $button => $enabled) {
+        // Iterate separately over buttons and extensions properties.
+        foreach (array('buttons', 'extensions') as $type) {
+          // Skip unavailable plugins.
+          if (!isset($plugins[$plugin][$type][$button])) {
+            continue;
+          }
+          // Add buttons.
+          if ($type == 'buttons') {
+            $settings['buttons'][] = $button;
+          }
+          // Allow plugins to add or override global configuration settings.
+          if (!empty($plugins[$plugin]['options'])) {
+            $settings = array_merge($settings, $plugins[$plugin]['options']);
+          }
+        }
+      }
+    }
+    // For now, all buttons are placed into one row.
+    if (!empty($settings['buttons'])) {
+      $settings['buttons'] = array($settings['buttons']);
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Build a JS settings array of native external plugins that need to be loaded separately.
+ */
+function wysiwyg_fckeditor_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    // Register all plugins that need to be loaded.
+    if (!empty($plugin['load'])) {
+      $settings[$name] = array();
+      // Add path for native external plugins; internal ones do not need a path.
+      if (empty($plugin['internal']) && isset($plugin['path'])) {
+        $settings[$name]['path'] = base_path() . $plugin['path'];
+      }
+      if (!empty($plugin['languages'])) {
+        $settings[$name]['languages'] = $plugin['languages'];
+      }
+    }
+  }
+  return $settings;
+}
+
+/**
+ * Build a JS settings array for Drupal plugins loaded via the proxy plugin.
+ */
+function wysiwyg_fckeditor_proxy_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    // Populate required plugin settings.
+    $settings[$name] = $plugin['dialog settings'] + array(
+      'title' => $plugin['title'],
+      'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'],
+      'iconTitle' => $plugin['icon title'],
+      // @todo These should only be set if the plugin defined them.
+      'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'],
+    );
+  }
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_fckeditor_plugins($editor) {
+  $plugins = array(
+    'default' => array(
+      'buttons' => array(
+        'Bold' => t('Bold'), 'Italic' => t('Italic'), 'Underline' => t('Underline'),
+        'StrikeThrough' => t('Strike-through'),
+        'JustifyLeft' => t('Align left'), 'JustifyCenter' => t('Align center'), 'JustifyRight' => t('Align right'), 'JustifyFull' => t('Justify'),
+        'UnorderedList' => t('Bullet list'), 'OrderedList' => t('Numbered list'),
+        'Outdent' => t('Outdent'), 'Indent' => t('Indent'),
+        'Undo' => t('Undo'), 'Redo' => t('Redo'),
+        'Link' => t('Link'), 'Unlink' => t('Unlink'), 'Anchor' => t('Anchor'),
+        'Image' => t('Image'),
+        'TextColor' => t('Forecolor'), 'BGColor' => t('Backcolor'),
+        'Superscript' => t('Superscript'), 'Subscript' => t('Subscript'),
+        'Blockquote' => t('Blockquote'), 'Source' => t('Source code'),
+        'Rule' => t('Horizontal rule'),
+        'Cut' => t('Cut'), 'Copy' => t('Copy'), 'Paste' => t('Paste'),
+        'PasteText' => t('Paste Text'), 'PasteWord' => t('Paste from Word'),
+        'ShowBlocks' => t('Show blocks'),
+        'RemoveFormat' => t('Remove format'),
+        'SpecialChar' => t('Character map'),
+        'About' => t('About'),
+        'FontFormat' => t('HTML block format'), 'FontName' => t('Font'), 'FontSize' => t('Font size'), 'Style' => t('Font style'),
+        'Table' => t('Table'),
+        'Find' => t('Search'), 'Replace' => t('Replace'), 'SelectAll' => t('Select all'),
+        'CreateDiv' => t('Create DIV container'),
+        'Flash' => t('Flash'), 'Smiley' => t('Smiley'),
+        'FitWindow' => t('FitWindow'),
+        'SpellCheck' => t('Check spelling'),
+      ),
+      'internal' => TRUE,
+    ),
+    'autogrow' => array(
+      'path' => $editor['library path'] . '/editor/plugins',
+      'extensions' => array(
+        'autogrow' => t('Autogrow'),
+      ),
+      'options' => array(
+        'AutoGrowMax' => 800,
+      ),
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'bbcode' => array(
+      'path' => $editor['library path'] . '/editor/plugins',
+      'extensions' => array(
+        'bbcode' => t('BBCode'),
+      ),
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'dragresizetable' => array(
+      'path' => $editor['library path'] . '/editor/plugins',
+      'extensions' => array(
+        'dragresizetable' => t('Table drag/resize'),
+      ),
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'tablecommands' => array(
+      'path' => $editor['library path'] . '/editor/plugins',
+      'buttons' => array(
+        'TableCellProp' => t('Table: Cell properties'),
+        'TableInsertRowAfter' => t('Table: Insert row after'),
+        'TableInsertColumnAfter' => t('Table: Insert column after'),
+        'TableInsertCellAfter' => t('Table: Insert cell after'),
+        'TableDeleteRows' => t('Table: Delete rows'),
+        'TableDeleteColumns' => t('Table: Delete columns'),
+        'TableDeleteCells' => t('Table: Delete cells'),
+        'TableMergeCells' => t('Table: Merge cells'),
+        'TableHorizontalSplitCell' => t('Table: Horizontal split cell'),
+      ),
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+  );
+  return $plugins;
+}
+
diff --git a/sites/all/modules/wysiwyg/editors/js/ckeditor-3.0.js b/sites/all/modules/wysiwyg/editors/js/ckeditor-3.0.js
new file mode 100644
index 0000000000000000000000000000000000000000..1139c564d16954bdb970e587eac5e63564cc1cf4
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/ckeditor-3.0.js
@@ -0,0 +1,183 @@
+// $Id: ckeditor-3.0.js,v 1.6 2009/11/17 15:32:09 twod Exp $
+(function($) {
+
+Drupal.wysiwyg.editor.init.ckeditor = function(settings) {
+  // Plugins must only be loaded once. Only the settings from the first format
+  // will be used but they're identical anyway.
+  var registeredPlugins = {};
+  for (var format in settings) {
+    if (Drupal.settings.wysiwyg.plugins[format]) {
+      // Register native external plugins.
+      // Array syntax required; 'native' is a predefined token in JavaScript.
+      for (var pluginName in Drupal.settings.wysiwyg.plugins[format]['native']) {
+        if (!registeredPlugins[pluginName]) {
+          var plugin = Drupal.settings.wysiwyg.plugins[format]['native'][pluginName];
+          CKEDITOR.plugins.addExternal(pluginName, plugin.path, plugin.fileName);
+          registeredPlugins[pluginName] = true;
+        }
+      }
+      // Register Drupal plugins.
+      for (var pluginName in Drupal.settings.wysiwyg.plugins[format].drupal) {
+        if (!registeredPlugins[pluginName]) {
+          Drupal.wysiwyg.editor.instance.ckeditor.addPlugin(pluginName, Drupal.settings.wysiwyg.plugins[format].drupal[pluginName], Drupal.settings.wysiwyg.plugins.drupal[pluginName]);
+          registeredPlugins[pluginName] = true;
+        }
+      }
+    }
+  }
+};
+
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.ckeditor = function(context, params, settings) {
+  // Apply editor instance settings.
+  CKEDITOR.config.customConfig = '';
+
+  settings.on = {
+    instanceReady: function(ev) {
+      var editor = ev.editor;
+      // Get a list of block, list and table tags from CKEditor's XHTML DTD.
+      // @see http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Output_Formatting.
+      var dtd = CKEDITOR.dtd;
+      var tags = CKEDITOR.tools.extend({}, dtd.$block, dtd.$listItem, dtd.$tableContent);
+      // Set source formatting rules for each listed tag except <pre>.
+      // Linebreaks can be inserted before or after opening and closing tags.
+      if (settings.apply_source_formatting) {
+        // Mimic FCKeditor output, by breaking lines between tags.
+        for (var tag in tags) {
+          if (tag == 'pre') {
+            continue;
+          }
+          this.dataProcessor.writer.setRules(tag, {
+            indent: true,
+            breakBeforeOpen: true,
+            breakAfterOpen: false,
+            breakBeforeClose: false,
+            breakAfterClose: true
+          });
+        }
+      }
+      else {
+        // No indents or linebreaks;
+        for (var tag in tags) {
+          if (tag == 'pre') {
+            continue;
+          }
+          this.dataProcessor.writer.setRules(tag, {
+            indent: false,
+            breakBeforeOpen: false,
+            breakAfterOpen: false,
+            breakBeforeClose: false,
+            breakAfterClose: false
+          });
+        }
+      }
+    },
+
+    pluginsLoaded: function(ev) {
+      // Override the conversion methods to let Drupal plugins modify the data.
+      var editor = ev.editor;
+      if (editor.dataProcessor && Drupal.settings.wysiwyg.plugins[params.format]) {
+        editor.dataProcessor.toHtml = CKEDITOR.tools.override(editor.dataProcessor.toHtml, function(originalToHtml) {
+          // Convert raw data for display in WYSIWYG mode.
+          return function(data, fixForBody) {
+            for (var plugin in Drupal.settings.wysiwyg.plugins[params.format].drupal) {
+              if (typeof Drupal.wysiwyg.plugins[plugin].attach == 'function') {
+                data = Drupal.wysiwyg.plugins[plugin].attach(data, Drupal.settings.wysiwyg.plugins.drupal[plugin], editor.name);
+                data = Drupal.wysiwyg.instances[params.field].prepareContent(data);
+              }
+            }
+            return originalToHtml.call(this, data, fixForBody);
+          };
+        });
+        editor.dataProcessor.toDataFormat = CKEDITOR.tools.override(editor.dataProcessor.toDataFormat, function(originalToDataFormat) {
+          // Convert WYSIWYG mode content to raw data.
+          return function(data, fixForBody) {
+            data = originalToDataFormat.call(this, data, fixForBody);
+            for (var plugin in Drupal.settings.wysiwyg.plugins[params.format].drupal) {
+              if (typeof Drupal.wysiwyg.plugins[plugin].detach == 'function') {
+                data = Drupal.wysiwyg.plugins[plugin].detach(data, Drupal.settings.wysiwyg.plugins.drupal[plugin], editor.name);
+              }
+            }
+            return data;
+          };
+        });
+      }
+    },
+    focus: function(ev) {
+      Drupal.wysiwyg.activeId = ev.editor.name;
+    }
+  };
+
+  // Attach editor.
+  CKEDITOR.replace(params.field, settings);
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * @todo 3.x: editor.prototype.getInstances() should always return an array
+ *   containing all instances or the passed in params.field instance, but
+ *   always return an array to simplify all detach functions.
+ */
+Drupal.wysiwyg.editor.detach.ckeditor = function(context, params) {
+  if (typeof params != 'undefined') {
+    var instance = CKEDITOR.instances[params.field];
+    if (instance) {
+      instance.destroy();
+    }
+  }
+  else {
+    for (var instanceName in CKEDITOR.instances) {
+      CKEDITOR.instances[instanceName].destroy();
+    }
+  }
+};
+
+Drupal.wysiwyg.editor.instance.ckeditor = {
+  addPlugin: function(pluginName, settings, pluginSettings) {
+    CKEDITOR.plugins.add(pluginName, {
+      // Wrap Drupal plugin in a proxy pluygin.
+      init: function(editor) {
+        if (settings.css) {
+          editor.on('mode', function(ev) {
+            if (ev.editor.mode == 'wysiwyg') {
+              // Inject CSS files directly into the editing area head tag.
+              $('head', $('#cke_contents_' + ev.editor.name + ' iframe').eq(0).contents()).append('<link rel="stylesheet" href="' + settings.css + '" type="text/css" >');
+            }
+          });
+        }
+        if (typeof Drupal.wysiwyg.plugins[pluginName].invoke == 'function') {
+          var pluginCommand = {
+            exec: function(editor) {
+              var data = { format: 'html', node: editor.getSelection().getSelectedElement() };
+              // @todo This is NOT the same as data.node.
+              data.content = data.node ? data.node.innerHTML : '';
+              Drupal.wysiwyg.plugins[pluginName].invoke(data, pluginSettings, editor.name);
+            }
+          };
+          editor.addCommand(pluginName, pluginCommand);
+        }
+        editor.ui.addButton(pluginName, {
+          label: settings.iconTitle,
+          command: pluginName,
+          icon: settings.icon
+        });
+
+        // @todo Add button state handling.
+      }
+    });
+  },
+  prepareContent: function(content) {
+    // @todo Don't know if we need this yet.
+    return content;
+  },
+  insert: function(content) {
+    content = this.prepareContent(content);
+    CKEDITOR.instances[this.field].insertHtml(content);
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/fckeditor-2.6.js b/sites/all/modules/wysiwyg/editors/js/fckeditor-2.6.js
new file mode 100644
index 0000000000000000000000000000000000000000..1dac6fda50a283150b5cab83ff1f6eb02a9d58be
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/fckeditor-2.6.js
@@ -0,0 +1,170 @@
+// $Id: fckeditor-2.6.js,v 1.20 2010/02/06 15:27:32 sun Exp $
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.fckeditor = function(context, params, settings) {
+  var FCKinstance = new FCKeditor(params.field, settings.Width, settings.Height, settings.ToolbarSet);
+  // Apply editor instance settings.
+  FCKinstance.BasePath = settings.EditorPath;
+  FCKinstance.Config.wysiwygFormat = params.format;
+  FCKinstance.Config.CustomConfigurationsPath = settings.CustomConfigurationsPath;
+
+  // Load Drupal plugins and apply format specific settings.
+  // @see fckeditor.config.js
+  // @see Drupal.wysiwyg.editor.instance.fckeditor.init()
+
+  // Attach editor.
+  FCKinstance.ReplaceTextarea();
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.fckeditor = function(context, params) {
+  var instances = [];
+  if (typeof params != 'undefined' && typeof FCKeditorAPI != 'undefined') {
+    var instance = FCKeditorAPI.GetInstance(params.field);
+    if (instance) {
+      instances[params.field] = instance;
+    }
+  }
+  else {
+    instances = FCKeditorAPI.__Instances;
+  }
+
+  for (var instanceName in instances) {
+    var instance = instances[instanceName];
+    instance.UpdateLinkedField();
+    // Since we already detach the editor and update the textarea, the submit
+    // event handler needs to be removed to prevent data loss (in IE).
+    // FCKeditor uses 2 nested iFrames; instance.EditingArea.Window is the
+    // deepest. Its parent is the iFrame containing the editor.
+    var instanceScope = instance.EditingArea.Window.parent;
+    instanceScope.FCKTools.RemoveEventListener(instance.GetParentForm(), 'submit', instance.UpdateLinkedField); 
+    // Remove the editor instance.
+    $('#' + instanceName + '___Config').remove();
+    $('#' + instanceName + '___Frame').remove();
+    $('#' + instanceName).show();
+    delete instance;
+  }
+};
+
+Drupal.wysiwyg.editor.instance.fckeditor = {
+  init: function(instance) {
+    // Track which editor instance is active.
+    instance.FCK.Events.AttachEvent('OnFocus', function(editorInstance) {
+      Drupal.wysiwyg.activeId = editorInstance.Name;
+    });
+
+    // Create a custom data processor to wrap the default one and allow Drupal
+    // plugins modify the editor contents.
+    var wysiwygDataProcessor = function() {};
+    wysiwygDataProcessor.prototype = new instance.FCKDataProcessor();
+    // Attach: Convert text into HTML.
+    wysiwygDataProcessor.prototype.ConvertToHtml = function(data) {
+      // Called from SetData() with stripped comments/scripts, revert those
+      // manipulations and attach Drupal plugins.
+      var data = instance.FCKConfig.ProtectedSource.Revert(data);
+      if (Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat] && Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal) {
+        for (var plugin in Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].attach == 'function') {
+            data = Drupal.wysiwyg.plugins[plugin].attach(data, Drupal.settings.wysiwyg.plugins.drupal[plugin], instance.FCK.Name);
+            data = Drupal.wysiwyg.editor.instance.fckeditor.prepareContent(data);
+          }
+        }
+      }
+      // Re-protect the source and use the original data processor to convert it
+      // into XHTML.
+      data = instance.FCKConfig.ProtectedSource.Protect(data);
+      return instance.FCKDataProcessor.prototype.ConvertToHtml.call(this, data);
+    };
+    // Detach: Convert HTML into text.
+    wysiwygDataProcessor.prototype.ConvertToDataFormat = function(rootNode, excludeRoot, ignoreIfEmptyParagraph, format) {
+      // Called from GetData(), convert the content's DOM into a XHTML string
+      // using the original data processor and detach Drupal plugins.
+      var data = instance.FCKDataProcessor.prototype.ConvertToDataFormat.call(this, rootNode, excludeRoot, ignoreIfEmptyParagraph, format);
+      if (Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat] && Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal) {
+        for (var plugin in Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].detach == 'function') {
+            data = Drupal.wysiwyg.plugins[plugin].detach(data, Drupal.settings.wysiwyg.plugins.drupal[plugin], instance.FCK.Name);
+          }
+        }
+      }
+      return data;
+    };
+    instance.FCK.DataProcessor = new wysiwygDataProcessor();
+  },
+
+  addPlugin: function(plugin, settings, pluginSettings, instance) {
+    if (typeof Drupal.wysiwyg.plugins[plugin] != 'object') {
+      return;
+    }
+
+    if (Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal[plugin].css) {
+      instance.FCKConfig.EditorAreaCSS += ',' + Drupal.settings.wysiwyg.plugins[instance.wysiwygFormat].drupal[plugin].css;
+    }
+
+    // @see fckcommands.js, fck_othercommands.js, fckpastewordcommand.js
+    instance.FCKCommands.RegisterCommand(plugin, {
+      // Invoke the plugin's button.
+      Execute: function () {
+        if (typeof Drupal.wysiwyg.plugins[plugin].invoke == 'function') {
+          var data = { format: 'html', node: instance.FCKSelection.GetParentElement() };
+          // @todo This is NOT the same as data.node.
+          data.content = data.node.innerHTML;
+          Drupal.wysiwyg.plugins[plugin].invoke(data, pluginSettings, instance.FCK.Name);
+        }
+      },
+
+      // isNode: Return whether the plugin button should be enabled for the
+      // current selection.
+      // @see FCKUnlinkCommand.prototype.GetState()
+      GetState: function () {
+        // Always disabled if not in WYSIWYG mode.
+        if (instance.FCK.EditMode != FCK_EDITMODE_WYSIWYG) {
+          return FCK_TRISTATE_DISABLED;
+        }
+        var state = instance.FCK.GetNamedCommandState(this.Name);
+        if (state == FCK_TRISTATE_OFF && instance.FCK.EditMode == FCK_EDITMODE_WYSIWYG) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].isNode == 'function') {
+            var node = instance.FCKSelection.GetSelectedElement();
+            state = Drupal.wysiwyg.plugins[plugin].isNode(node) ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF;
+          }
+        }
+        return state;
+      },
+
+      /**
+       * Return information about the plugin as a name/value array.
+       */
+      Name: plugin
+    });
+
+    // Register the plugin button.
+    // Arguments: commandName, label, tooltip, style, sourceView, contextSensitive, icon.
+    instance.FCKToolbarItems.RegisterItem(plugin, new instance.FCKToolbarButton(plugin, settings.iconTitle, settings.iconTitle, null, false, true, settings.icon));
+  },
+
+  openDialog: function(dialog, params) {
+    // @todo Implement open dialog.
+  },
+
+  closeDialog: function(dialog) {
+    // @todo Implement close dialog.
+  },
+
+  prepareContent: function(content) {
+    // @todo Not needed for FCKeditor?
+    return content;
+  },
+
+  insert: function(content) {
+    var instance = FCKeditorAPI.GetInstance(this.field);
+    // @see FCK.InsertHtml(), FCK.InsertElement()
+    instance.InsertHtml(content);
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/fckeditor.config.js b/sites/all/modules/wysiwyg/editors/js/fckeditor.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..1b4e8c211c0cad97036d1078cfa77f277e99039b
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/fckeditor.config.js
@@ -0,0 +1,74 @@
+// $Id: fckeditor.config.js,v 1.7 2009/09/29 01:48:23 sun Exp $
+
+Drupal = window.parent.Drupal;
+
+/**
+ * Fetch and provide original editor settings as local variable.
+ *
+ * FCKeditor does not support to pass complex variable types to the editor.
+ * Instance settings passed to FCKinstance.Config are temporarily stored in
+ * FCKConfig.PageConfig.
+ */
+var wysiwygFormat = FCKConfig.PageConfig.wysiwygFormat;
+var wysiwygSettings = Drupal.settings.wysiwyg.configs.fckeditor[wysiwygFormat];
+var pluginSettings = (Drupal.settings.wysiwyg.plugins[wysiwygFormat] ? Drupal.settings.wysiwyg.plugins[wysiwygFormat] : { 'native': {}, 'drupal': {} });
+
+/**
+ * Apply format-specific settings.
+ */
+for (var setting in wysiwygSettings) {
+  if (setting == 'buttons') {
+    // Apply custom Wysiwyg toolbar for this format.
+    // FCKConfig.ToolbarSets['Wysiwyg'] = wysiwygSettings.buttons;
+
+    // Temporarily stack buttons into multiple button groups and remove
+    // separators until #277954 is solved.
+    FCKConfig.ToolbarSets['Wysiwyg'] = [];
+    for (var i = 0; i < wysiwygSettings.buttons[0].length; i++) {
+      FCKConfig.ToolbarSets['Wysiwyg'].push([wysiwygSettings.buttons[0][i]]);
+    }
+    FCKTools.AppendStyleSheet(document, '#xToolbar .TB_Start { display:none; }');
+    // Set valid height of select element in silver and office2003 skins.
+    if (FCKConfig.SkinPath.match(/\/office2003\/$/)) {
+      FCKTools.AppendStyleSheet(document, '#xToolbar .SC_FieldCaption { height: 24px; } #xToolbar .TB_End { display: none; }');
+    }
+    else if (FCKConfig.SkinPath.match(/\/silver\/$/)) {
+      FCKTools.AppendStyleSheet(document, '#xToolbar .SC_FieldCaption { height: 27px; }');
+    }
+  }
+  else {
+    FCKConfig[setting] = wysiwygSettings[setting];
+  }
+}
+
+/**
+ * Initialize this editor instance.
+ */
+Drupal.wysiwyg.editor.instance.fckeditor.init(window);
+
+/**
+ * Register native plugins for this input format.
+ *
+ * Parameters to Plugins.Add are:
+ * - Plugin name.
+ * - Languages the plugin is available in.
+ * - Location of the plugin folder; <plugin_name>/fckplugin.js is appended.
+ */
+for (var plugin in pluginSettings['native']) {
+  // Languages and path may be undefined for internal plugins.
+  FCKConfig.Plugins.Add(plugin, pluginSettings['native'][plugin].languages, pluginSettings['native'][plugin].path);
+}
+
+/**
+ * Register Drupal plugins for this input format.
+ *
+ * Parameters to addPlugin() are:
+ * - Plugin name.
+ * - Format specific plugin settings.
+ * - General plugin settings.
+ * - A reference to this window so the plugin setup can access FCKConfig.
+ */
+for (var plugin in pluginSettings.drupal) {
+  Drupal.wysiwyg.editor.instance.fckeditor.addPlugin(plugin, pluginSettings.drupal[plugin], Drupal.settings.wysiwyg.plugins.drupal[plugin], window);
+}
+
diff --git a/sites/all/modules/wysiwyg/editors/js/jwysiwyg.js b/sites/all/modules/wysiwyg/editors/js/jwysiwyg.js
new file mode 100644
index 0000000000000000000000000000000000000000..2fa5aadbf4beccbdb66a6c9f8b31ca3715e5e2b0
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/jwysiwyg.js
@@ -0,0 +1,26 @@
+// $Id: jwysiwyg.js,v 1.4 2009/09/26 05:37:57 sun Exp $
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.jwysiwyg = function(context, params, settings) {
+  // Attach editor.
+  $('#' + params.field).wysiwyg();
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.jwysiwyg = function(context, params) {
+  var $field = $('#' + params.field);
+  var editor = $field.data('wysiwyg');
+  if (typeof editor != 'undefined') {
+    editor.saveContent();
+    editor.element.remove();
+  }
+  $field.removeData('wysiwyg');
+  $field.show();
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/markitup.js b/sites/all/modules/wysiwyg/editors/js/markitup.js
new file mode 100644
index 0000000000000000000000000000000000000000..b0d3324336376f7aed469bea60c5a1c0b72acf16
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/markitup.js
@@ -0,0 +1,30 @@
+// $Id: markitup.js,v 1.3 2009/09/26 05:37:57 sun Exp $
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.markitup = function(context, params, settings) {
+  $('#' + params.field, context).markItUp(settings);
+
+  // Adjust CSS for editor buttons.
+  $.each(settings.markupSet, function (button) {
+    $('.' + settings.nameSpace + ' .' + this.className + ' a')
+      .css({ backgroundImage: 'url(' + settings.root + 'sets/default/images/' + button + '.png' + ')' })
+      .parents('li').css({ backgroundImage: 'none' });
+  });
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.markitup = function(context, params) {
+  if (typeof params != 'undefined') {
+    $('#' + params.field, context).markItUpRemove();
+  }
+  else {
+    $('.markItUpEditor', context).markItUpRemove();
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/nicedit.js b/sites/all/modules/wysiwyg/editors/js/nicedit.js
new file mode 100644
index 0000000000000000000000000000000000000000..245c73a4e368ee123af5ed227a427e47b3717319
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/nicedit.js
@@ -0,0 +1,83 @@
+// $Id: nicedit.js,v 1.5 2010/02/07 14:36:00 sun Exp $
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.nicedit = function(context, params, settings) {
+  // Attach editor.
+  var editor = new nicEditor(settings);
+  editor.panelInstance(params.field);
+  editor.addEvent('focus', function () {
+    Drupal.wysiwyg.activeId = params.field;
+  });
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * See Drupal.wysiwyg.editor.detach.none() for a full description of this hook.
+ */
+Drupal.wysiwyg.editor.detach.nicedit = function(context, params) {
+  if (typeof params != 'undefined') {
+    var instance = nicEditors.findEditor(params.field);
+    if (instance) {
+      instance.ne.removeInstance(params.field);
+      instance.ne.removePanel();
+    }
+  }
+  else {
+    for (var e in nicEditors.editors) {
+      // Save contents of all editors back into textareas.
+      var instances = nicEditors.editors[e].nicInstances;
+      for (var i = 0; i < instances.length; i++) {
+        instances[i].remove();
+      }
+      // Remove all editor instances.
+      nicEditors.editors[e].nicInstances = [];
+    }
+  }
+};
+
+/**
+ * Instance methods for nicEdit.
+ */
+Drupal.wysiwyg.editor.instance.nicedit = {
+  insert: function (content) {
+    var instance = nicEditors.findEditor(this.field);
+    var editingArea = instance.getElm();
+    var sel = instance.getSel();
+    // IE.
+    if (document.selection) {
+      editingArea.focus();
+      sel.createRange().text = content;
+    }
+    else {
+      // Convert selection to a range.
+      var range;
+      // W3C compatible.
+      if (sel.getRangeAt) {
+        range = sel.getRangeAt(0);
+      }
+      // Safari.
+      else {
+        range = editingArea.ownerDocument.createRange();
+        range.setStart(sel.anchorNode, sel.anchorOffset);
+        range.setEnd(sel.focusNode, userSeletion.focusOffset);
+      }
+      // The code below doesn't work in IE, but it never gets here.
+      var fragment = editingArea.ownerDocument.createDocumentFragment();
+      // Fragments don't support innerHTML.
+      var wrapper = editingArea.ownerDocument.createElement('div');
+      wrapper.innerHTML = content;
+      while (wrapper.firstChild) {
+        fragment.appendChild(wrapper.firstChild);
+      }
+      range.deleteContents();
+      // Only fragment children are inserted.
+      range.insertNode(fragment);
+    }
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/none.js b/sites/all/modules/wysiwyg/editors/js/none.js
new file mode 100644
index 0000000000000000000000000000000000000000..0a3bbf92b274de8dd009698db54c9d6f8fd31953
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/none.js
@@ -0,0 +1,72 @@
+// $Id: none.js,v 1.8 2010/03/20 14:54:29 sun Exp $
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ * @param params
+ *   An object containing input format parameters. Default parameters are:
+ *   - editor: The internal editor name.
+ *   - theme: The name/key of the editor theme/profile to use.
+ *   - field: The CSS id of the target element.
+ * @param settings
+ *   An object containing editor settings for all enabled editor themes.
+ */
+Drupal.wysiwyg.editor.attach.none = function(context, params, settings) {
+  if (params.resizable) {
+    var $wrapper = $('#' + params.field).parents('.form-textarea-wrapper:first');
+    $wrapper.addClass('resizable');
+    if (Drupal.behaviors.textarea.attach) {
+      Drupal.behaviors.textarea.attach();
+    }
+  }
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ * @param params
+ *   (optional) An object containing input format parameters. If defined,
+ *   only the editor instance in params.field should be detached. Otherwise,
+ *   all editors should be detached and saved, so they can be submitted in
+ *   AJAX/AHAH applications.
+ */
+Drupal.wysiwyg.editor.detach.none = function(context, params) {
+  if (typeof params != 'undefined') {
+    var $wrapper = $('#' + params.field).parents('.form-textarea-wrapper:first');
+    $wrapper.removeOnce('textarea').removeClass('.resizable-textarea')
+      .find('.grippie').remove();
+  }
+};
+
+/**
+ * Instance methods for plain text areas.
+ */
+Drupal.wysiwyg.editor.instance.none = {
+  insert: function(content) {
+    var editor = document.getElementById(this.field);
+
+    // IE support.
+    if (document.selection) {
+      editor.focus();
+      var sel = document.selection.createRange();
+      sel.text = content;
+    }
+    // Mozilla/Firefox/Netscape 7+ support.
+    else if (editor.selectionStart || editor.selectionStart == '0') {
+      var startPos = editor.selectionStart;
+      var endPos = editor.selectionEnd;
+      editor.value = editor.value.substring(0, startPos) + content + editor.value.substring(endPos, editor.value.length);
+    }
+    // Fallback, just add to the end of the content.
+    else {
+      editor.value += content;
+    }
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/openwysiwyg.js b/sites/all/modules/wysiwyg/editors/js/openwysiwyg.js
new file mode 100644
index 0000000000000000000000000000000000000000..0428c9492fd6e22ed44d4ac860e0d57900f29121
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/openwysiwyg.js
@@ -0,0 +1,100 @@
+// $Id: openwysiwyg.js,v 1.2 2009/09/26 05:37:57 sun Exp $
+
+// Reset $() to jQuery.  Yuck!
+$ = jQuery;
+
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.openwysiwyg = function(context, params, settings) {
+  jQuery.noConflict();
+  $ = Drupal.wysiwyg._openwysiwyg;
+
+  // Initialize settings.
+  settings.ImagesDir = settings.path + 'images/';
+  settings.PopupsDir = settings.path + 'popups/';
+  settings.CSSFile = settings.path + 'styles/wysiwyg.css';
+  //settings.DropDowns = [];
+  var config = new WYSIWYG.Settings();
+  for (var setting in settings) {
+    config[setting] = settings[setting];
+  }
+  // Attach editor.
+  WYSIWYG.setSettings(params.field, config);
+  WYSIWYG_Core.includeCSS(WYSIWYG.config[params.field].CSSFile);
+  WYSIWYG._generate(params.field, config);
+
+  $ = jQuery;
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.openwysiwyg = function(context, params) {
+  jQuery.noConflict();
+  $ = Drupal.wysiwyg._openwysiwyg;
+
+  if (typeof params != 'undefined') {
+    var instance = WYSIWYG.config[params.field];
+    if (typeof instance != 'undefined') {
+      WYSIWYG.updateTextArea(params.field);
+      jQuery('#wysiwyg_div_' + params.field).remove();
+      delete instance;
+    }
+    jQuery('#' + params.field).show();
+  }
+  else {
+    jQuery.each(WYSIWYG.config, function(field) {
+      WYSIWYG.updateTextArea(field);
+      jQuery('#wysiwyg_div_' + field).remove();
+      delete this;
+      jQuery('#' + field).show();
+    });
+  }
+
+  $ = jQuery;
+};
+
+/**
+ * Custom implementation of $() for openwysiwyg.
+ */
+Drupal.wysiwyg._openwysiwyg = function (id) {
+	return document.getElementById(id);
+};
+
+// Override editor functions.
+WYSIWYG.getEditor = function (n) {
+  return Drupal.wysiwyg._openwysiwyg("wysiwyg" + n);
+};
+WYSIWYG._closeDropDowns = WYSIWYG.closeDropDowns;
+WYSIWYG.closeDropDowns = function (n, id) {
+  jQuery.noConflict();
+  $ = Drupal.wysiwyg._openwysiwyg;
+  WYSIWYG._closeDropDowns(n, id);
+  $ = jQuery;
+};
+WYSIWYG._openDropDown = WYSIWYG.openDropDown;
+WYSIWYG.openDropDown = function (n, id) {
+  jQuery.noConflict();
+  $ = Drupal.wysiwyg._openwysiwyg;
+  WYSIWYG._openDropDown(n, id);
+  $ = jQuery;
+};
+WYSIWYG._viewSource = WYSIWYG.viewSource;
+WYSIWYG.viewSource = function (n, id) {
+  jQuery.noConflict();
+  $ = Drupal.wysiwyg._openwysiwyg;
+  WYSIWYG._viewSource(n, id);
+  $ = jQuery;
+};
+WYSIWYG._viewText = WYSIWYG.viewText;
+WYSIWYG.viewText = function (n, id) {
+  jQuery.noConflict();
+  $ = Drupal.wysiwyg._openwysiwyg;
+  WYSIWYG._viewText(n, id);
+  $ = jQuery;
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/tinymce-2.js b/sites/all/modules/wysiwyg/editors/js/tinymce-2.js
new file mode 100644
index 0000000000000000000000000000000000000000..43902cabb633baa873af8d9f9651bf90f597b7ec
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/tinymce-2.js
@@ -0,0 +1,203 @@
+// $Id: tinymce-2.js,v 1.12 2010/02/10 21:18:10 twod Exp $
+(function($) {
+
+/**
+ * Initialize editor instances.
+ *
+ * This function needs to be called before the page is fully loaded, as
+ * calling tinyMCE.init() after the page is loaded breaks IE6.
+ *
+ * @param editorSettings
+ *   An object containing editor settings for each input format.
+ */
+Drupal.wysiwyg.editor.init.tinymce = function(settings) {
+  // If JS compression is enabled, TinyMCE is unable to autodetect its global
+  // settinge, hence we need to define them manually.
+  // @todo Move global library settings somewhere else.
+  tinyMCE.baseURL = settings.global.editorBasePath;
+  tinyMCE.srcMode = (settings.global.execMode == 'src' ? '_src' : '');
+  tinyMCE.gzipMode = (settings.global.execMode == 'gzip');
+
+  // Initialize editor configurations.
+  for (var format in settings) {
+    if (format == 'global') {
+      continue;
+    }
+    tinyMCE.init(settings[format]);
+    if (Drupal.settings.wysiwyg.plugins[format]) {
+      // Load native external plugins.
+      // Array syntax required; 'native' is a predefined token in JavaScript.
+      for (var plugin in Drupal.settings.wysiwyg.plugins[format]['native']) {
+        tinyMCE.loadPlugin(plugin, Drupal.settings.wysiwyg.plugins[format]['native'][plugin]);
+      }
+      // Load Drupal plugins.
+      for (var plugin in Drupal.settings.wysiwyg.plugins[format].drupal) {
+        Drupal.wysiwyg.editor.instance.tinymce.addPlugin(plugin, Drupal.settings.wysiwyg.plugins[format].drupal[plugin], Drupal.settings.wysiwyg.plugins.drupal[plugin]);
+      }
+    }
+  }
+};
+
+/**
+ * Attach this editor to a target element.
+ *
+ * See Drupal.wysiwyg.editor.attach.none() for a full desciption of this hook.
+ */
+Drupal.wysiwyg.editor.attach.tinymce = function(context, params, settings) {
+  // Configure editor settings for this input format.
+  for (var setting in settings) {
+    tinyMCE.settings[setting] = settings[setting];
+  }
+  // Attach editor.
+  tinyMCE.execCommand('mceAddControl', true, params.field);
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * See Drupal.wysiwyg.editor.detach.none() for a full desciption of this hook.
+ */
+Drupal.wysiwyg.editor.detach.tinymce = function(context, params) {
+  if (typeof params != 'undefined') {
+    tinyMCE.removeMCEControl(tinyMCE.getEditorId(params.field));
+    $('#' + params.field).removeAttr('style');
+  }
+//  else if (tinyMCE.activeEditor) {
+//    tinyMCE.triggerSave();
+//    tinyMCE.activeEditor.remove();
+//  }
+};
+
+Drupal.wysiwyg.editor.instance.tinymce = {
+  addPlugin: function(plugin, settings, pluginSettings) {
+    if (typeof Drupal.wysiwyg.plugins[plugin] != 'object') {
+      return;
+    }
+    tinyMCE.addPlugin(plugin, {
+
+      // Register an editor command for this plugin, invoked by the plugin's button.
+      execCommand: function(editor_id, element, command, user_interface, value) {
+        switch (command) {
+          case plugin:
+            if (typeof Drupal.wysiwyg.plugins[plugin].invoke == 'function') {
+              var ed = tinyMCE.getInstanceById(editor_id);
+              var data = { format: 'html', node: ed.getFocusElement(), content: ed.getFocusElement() };
+              Drupal.wysiwyg.plugins[plugin].invoke(data, pluginSettings, ed.formTargetElementId);
+              return true;
+            }
+        }
+        // Pass to next handler in chain.
+        return false;
+      },
+
+      // Register the plugin button.
+      getControlHTML: function(control_name) {
+        switch (control_name) {
+          case plugin:
+            return tinyMCE.getButtonHTML(control_name, settings.iconTitle, settings.icon, plugin);
+        }
+        return '';
+      },
+
+      // Load custom CSS for editor contents on startup.
+      initInstance: function(ed) {
+        if (settings.css) {
+          tinyMCE.importCSS(ed.getDoc(), settings.css);
+        }
+      },
+
+      cleanup: function(type, content) {
+        switch (type) {
+          case 'insert_to_editor':
+            // Attach: Replace plain text with HTML representations.
+            if (typeof Drupal.wysiwyg.plugins[plugin].attach == 'function') {
+              content = Drupal.wysiwyg.plugins[plugin].attach(content, pluginSettings, tinyMCE.selectedInstance.editorId);
+              content = Drupal.wysiwyg.editor.instance.tinymce.prepareContent(content);
+            }
+            break;
+
+          case 'get_from_editor':
+            // Detach: Replace HTML representations with plain text.
+            if (typeof Drupal.wysiwyg.plugins[plugin].detach == 'function') {
+              content = Drupal.wysiwyg.plugins[plugin].detach(content, pluginSettings, tinyMCE.selectedInstance.editorId);
+            }
+            break;
+        }
+        // Pass through to next handler in chain
+        return content;
+      },
+
+      // isNode: Return whether the plugin button should be enabled for the
+      // current selection.
+      handleNodeChange: function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+        if (node === null) {
+          return;
+        }
+        if (typeof Drupal.wysiwyg.plugins[plugin].isNode == 'function') {
+          if (Drupal.wysiwyg.plugins[plugin].isNode(node)) {
+            tinyMCE.switchClass(editor_id + '_' + plugin, 'mceButtonSelected');
+            return true;
+          }
+        }
+        tinyMCE.switchClass(editor_id + '_' + plugin, 'mceButtonNormal');
+        return true;
+      },
+
+      /**
+       * Return information about the plugin as a name/value array.
+       */
+      getInfo: function() {
+        return {
+          longname: settings.title
+        };
+      }
+    });
+  },
+
+  openDialog: function(dialog, params) {
+    var editor = tinyMCE.getInstanceById(this.field);
+    tinyMCE.openWindow({
+      file: dialog.url + '/' + this.field,
+      width: dialog.width,
+      height: dialog.height,
+      inline: 1
+    }, params);
+  },
+
+  closeDialog: function(dialog) {
+    var editor = tinyMCE.getInstanceById(this.field);
+    tinyMCEPopup.close();
+  },
+
+  prepareContent: function(content) {
+    // Certain content elements need to have additional DOM properties applied
+    // to prevent this editor from highlighting an internal button in addition
+    // to the button of a Drupal plugin.
+    var specialProperties = {
+      img: { 'name': 'mce_drupal' }
+    };
+    var $content = $('<div>' + content + '</div>'); // No .outerHTML() in jQuery :(
+    jQuery.each(specialProperties, function(element, properties) {
+      $content.find(element).each(function() {
+        for (var property in properties) {
+          if (property == 'class') {
+            $(this).addClass(properties[property]);
+          }
+          else {
+            $(this).attr(property, properties[property]);
+          }
+        }
+      });
+    });
+    return $content.html();
+  },
+
+  insert: function(content) {
+    content = this.prepareContent(content);
+    var editor = tinyMCE.getInstanceById(this.field);
+    editor.execCommand('mceInsertContent', false, content);
+    editor.repaint();
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/tinymce-3.js b/sites/all/modules/wysiwyg/editors/js/tinymce-3.js
new file mode 100644
index 0000000000000000000000000000000000000000..b1d528a22debb40c209aa32804b72c6bef6b9dfb
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/tinymce-3.js
@@ -0,0 +1,215 @@
+// $Id: tinymce-3.js,v 1.19 2010/02/10 21:18:10 twod Exp $
+(function($) {
+
+/**
+ * Initialize editor instances.
+ *
+ * @todo Is the following note still valid for 3.x?
+ * This function needs to be called before the page is fully loaded, as
+ * calling tinyMCE.init() after the page is loaded breaks IE6.
+ *
+ * @param editorSettings
+ *   An object containing editor settings for each input format.
+ */
+Drupal.wysiwyg.editor.init.tinymce = function(settings) {
+  // If JS compression is enabled, TinyMCE is unable to autodetect its global
+  // settinge, hence we need to define them manually.
+  // @todo Move global library settings somewhere else.
+  tinyMCE.baseURL = settings.global.editorBasePath;
+  tinyMCE.srcMode = (settings.global.execMode == 'src' ? '_src' : '');
+  tinyMCE.gzipMode = (settings.global.execMode == 'gzip');
+
+  // Initialize editor configurations.
+  for (var format in settings) {
+    if (format == 'global') {
+      continue;
+    };
+    tinyMCE.init(settings[format]);
+    if (Drupal.settings.wysiwyg.plugins[format]) {
+      // Load native external plugins.
+      // Array syntax required; 'native' is a predefined token in JavaScript.
+      for (var plugin in Drupal.settings.wysiwyg.plugins[format]['native']) {
+        tinymce.PluginManager.load(plugin, Drupal.settings.wysiwyg.plugins[format]['native'][plugin]);
+      }
+      // Load Drupal plugins.
+      for (var plugin in Drupal.settings.wysiwyg.plugins[format].drupal) {
+        Drupal.wysiwyg.editor.instance.tinymce.addPlugin(plugin, Drupal.settings.wysiwyg.plugins[format].drupal[plugin], Drupal.settings.wysiwyg.plugins.drupal[plugin]);
+      }
+    }
+  }
+};
+
+/**
+ * Attach this editor to a target element.
+ *
+ * See Drupal.wysiwyg.editor.attach.none() for a full desciption of this hook.
+ */
+Drupal.wysiwyg.editor.attach.tinymce = function(context, params, settings) {
+  // Configure editor settings for this input format.
+  var ed = new tinymce.Editor(params.field, settings);
+  // Reset active instance id on any event.
+  ed.onEvent.add(function(ed, e) {
+    Drupal.wysiwyg.activeId = ed.id;
+  });
+  // Make toolbar buttons wrappable (required for IE).
+  ed.onPostRender.add(function (ed) {
+    var $toolbar = $('<div class="wysiwygToolbar"></div>');
+    $('#' + ed.editorContainer + ' table.mceToolbar > tbody > tr > td').each(function () {
+      $('<div></div>').addClass(this.className).append($(this).children()).appendTo($toolbar);
+    });
+    $('#' + ed.editorContainer + ' table.mceLayout td.mceToolbar').append($toolbar);
+    $('#' + ed.editorContainer + ' table.mceToolbar').remove();
+  });
+  // Attach editor.
+  ed.render();
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * See Drupal.wysiwyg.editor.detach.none() for a full desciption of this hook.
+ */
+Drupal.wysiwyg.editor.detach.tinymce = function(context, params) {
+  if (typeof params != 'undefined') {
+    var instance = tinyMCE.get(params.field);
+    if (instance) {
+      instance.save();
+      instance.remove();
+    }
+  }
+  else {
+    // Save contents of all editors back into textareas.
+    tinyMCE.triggerSave();
+    // Remove all editor instances.
+    for (var instance in tinyMCE.editors) {
+      tinyMCE.editors[instance].remove();
+    }
+  }
+};
+
+Drupal.wysiwyg.editor.instance.tinymce = {
+  addPlugin: function(plugin, settings, pluginSettings) {
+    if (typeof Drupal.wysiwyg.plugins[plugin] != 'object') {
+      return;
+    }
+    tinymce.create('tinymce.plugins.' + plugin, {
+      /**
+       * Initialize the plugin, executed after the plugin has been created.
+       *
+       * @param ed
+       *   The tinymce.Editor instance the plugin is initialized in.
+       * @param url
+       *   The absolute URL of the plugin location.
+       */
+      init: function(ed, url) {
+        // Register an editor command for this plugin, invoked by the plugin's button.
+        ed.addCommand(plugin, function() {
+          if (typeof Drupal.wysiwyg.plugins[plugin].invoke == 'function') {
+            var data = { format: 'html', node: ed.selection.getNode(), content: ed.selection.getContent() };
+            Drupal.wysiwyg.plugins[plugin].invoke(data, pluginSettings, ed.id);
+          }
+        });
+
+        // Register the plugin button.
+        ed.addButton(plugin, {
+          title : settings.iconTitle,
+          cmd : plugin,
+          image : settings.icon
+        });
+
+        // Load custom CSS for editor contents on startup.
+        ed.onInit.add(function() {
+          if (settings.css) {
+            ed.dom.loadCSS(settings.css);
+          }
+        });
+
+        // Attach: Replace plain text with HTML representations.
+        ed.onBeforeSetContent.add(function(ed, data) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].attach == 'function') {
+            data.content = Drupal.wysiwyg.plugins[plugin].attach(data.content, pluginSettings, ed.id);
+            data.content = Drupal.wysiwyg.editor.instance.tinymce.prepareContent(data.content);
+          }
+        });
+
+        // Detach: Replace HTML representations with plain text.
+        ed.onGetContent.add(function(ed, data) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].detach == 'function') {
+            data.content = Drupal.wysiwyg.plugins[plugin].detach(data.content, pluginSettings, ed.id);
+          }
+        });
+
+        // isNode: Return whether the plugin button should be enabled for the
+        // current selection.
+        ed.onNodeChange.add(function(ed, command, node) {
+          if (typeof Drupal.wysiwyg.plugins[plugin].isNode == 'function') {
+            command.setActive(plugin, Drupal.wysiwyg.plugins[plugin].isNode(node));
+          }
+        });
+      },
+
+      /**
+       * Return information about the plugin as a name/value array.
+       */
+      getInfo: function() {
+        return {
+          longname: settings.title
+        };
+      }
+    });
+
+    // Register plugin.
+    tinymce.PluginManager.add(plugin, tinymce.plugins[plugin]);
+  },
+
+  openDialog: function(dialog, params) {
+    var editor = tinyMCE.get(this.field);
+    editor.windowManager.open({
+      file: dialog.url + '/' + this.field,
+      width: dialog.width,
+      height: dialog.height,
+      inline: 1
+    }, params);
+  },
+
+  closeDialog: function(dialog) {
+    var editor = tinyMCE.get(this.field);
+    editor.windowManager.close(dialog);
+  },
+
+  prepareContent: function(content) {
+    // Certain content elements need to have additional DOM properties applied
+    // to prevent this editor from highlighting an internal button in addition
+    // to the button of a Drupal plugin.
+    var specialProperties = {
+      img: { 'class': 'mceItem' }
+    };
+    var $content = $('<div>' + content + '</div>'); // No .outerHTML() in jQuery :(
+    // Find all placeholder/replacement content of Drupal plugins.
+    $content.find('.drupal-content').each(function() {
+      // Recursively process DOM elements below this element to apply special
+      // properties.
+      var $drupalContent = $(this);
+      $.each(specialProperties, function(element, properties) {
+        $drupalContent.find(element).andSelf().each(function() {
+          for (var property in properties) {
+            if (property == 'class') {
+              $(this).addClass(properties[property]);
+            }
+            else {
+              $(this).attr(property, properties[property]);
+            }
+          }
+        });
+      });
+    });
+    return $content.html();
+  },
+
+  insert: function(content) {
+    content = this.prepareContent(content);
+    tinyMCE.execInstanceCommand(this.field, 'mceInsertContent', false, content);
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/whizzywig-56.js b/sites/all/modules/wysiwyg/editors/js/whizzywig-56.js
new file mode 100644
index 0000000000000000000000000000000000000000..2b462060ec9359593f9bfb4f24f94fb10a7e3e0b
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/whizzywig-56.js
@@ -0,0 +1,117 @@
+// $Id: whizzywig-56.js,v 1.1 2010/02/06 17:33:34 sun Exp $
+
+var wysiwygWhizzywig = { currentField: null, fields: {} };
+var buttonPath = null;
+
+/**
+ * Override Whizzywig's document.write() function.
+ *
+ * Whizzywig uses document.write() by default, which leads to a blank page when
+ * invoked in jQuery.ready().  Luckily, Whizzywig developers implemented a
+ * shorthand w() substitute function that we can override to redirect the output
+ * into the global wysiwygWhizzywig variable.
+ *
+ * @see o()
+ */
+var w = function (string) {
+  if (string) {
+    wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] += string;
+  }
+  return wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField];
+};
+
+/**
+ * Override Whizzywig's document.getElementById() function.
+ *
+ * Since we redirect the output of w() into a temporary string upon attaching
+ * an editor, we also have to override the o() shorthand substitute function
+ * for document.getElementById() to search in the document or our container.
+ * This override function also inserts the editor instance when Whizzywig
+ * tries to access its IFRAME, so it has access to the full/regular window
+ * object.
+ *
+ * @see w()
+ */
+var o = function (id) {
+  // Upon first access to "whizzy" + id, Whizzywig tries to access its IFRAME,
+  // so we need to insert the editor into the DOM.
+  if (id == 'whizzy' + wysiwygWhizzywig.currentField && wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField]) {
+    jQuery('#' + wysiwygWhizzywig.currentField).after('<div id="' + wysiwygWhizzywig.currentField + '-whizzywig">' + w() + '</div>');
+    // Prevent subsequent invocations from inserting the editor multiple times.
+    wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] = '';
+  }
+  // If id exists in the regular window.document, return it.
+  if (jQuery('#' + id).size()) {
+    return jQuery('#' + id).get(0);
+  }
+  // Otherwise return id from our container.
+  return jQuery('#' + id, w()).get(0);
+};
+
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.whizzywig = function(context, params, settings) {
+  // Previous versions used per-button images found in this location,
+  // now it is only used for custom buttons.
+  if (settings.buttonPath) {
+    window.buttonPath = settings.buttonPath;
+  }
+  // Assign the toolbar image path used for native buttons, if available.
+  if (settings.toolbarImagePath) {
+    btn._f = settings.toolbarImagePath;
+  }
+  // Fall back to text labels for all buttons.
+  else {
+    window.buttonPath = 'textbuttons';
+  }
+  // Create Whizzywig container.
+  wysiwygWhizzywig.currentField = params.field;
+  wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] = '';
+  // Attach editor.
+  makeWhizzyWig(params.field, (settings.buttons ? settings.buttons : 'all'));
+  // Whizzywig fails to detect and set initial textarea contents.
+  var instance = $('#whizzy' + params.field).get(0);
+  if (instance) {
+    instance.contentWindow.document.body.innerHTML = $('#' + params.field).val();
+  }
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.whizzywig = function(context, params) {
+  var detach = function (id) {
+    var instance = $('#whizzy' + whizzies[id]).get(0);
+    if (!instance) {
+      return;
+    }
+    var body = instance.contentWindow.document.body;
+    var $field = $('#' + whizzies[id]);
+    body.innerHTML = tidyH(instance.contentWindow.document);
+
+    // Save contents of editor back into textarea.
+    $field.val(window.get_xhtml ? get_xhtml(body) : body.innerHTML);
+    $field.val($field.val().replace(location.href + '#', '#'));
+    // Remove editor instance.
+    $('#' + whizzies[id] + '-whizzywig').remove();
+    whizzies.splice(id, 1);
+  };
+
+  if (typeof params != 'undefined') {
+    for (var id in whizzies) {
+      if (whizzies[id] == params.field) {
+        detach(id);
+      }
+    }
+  }
+  else {
+    for (var id in whizzies) {
+      detach(id);
+    }
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/whizzywig.js b/sites/all/modules/wysiwyg/editors/js/whizzywig.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3bf7c6d2131c9e7702e26c760c3d68d004fbee3
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/whizzywig.js
@@ -0,0 +1,108 @@
+// $Id: whizzywig.js,v 1.6 2009/09/29 01:48:23 sun Exp $
+
+var wysiwygWhizzywig = { currentField: null, fields: {} };
+var buttonPath = null;
+
+/**
+ * Override Whizzywig's document.write() function.
+ *
+ * Whizzywig uses document.write() by default, which leads to a blank page when
+ * invoked in jQuery.ready().  Luckily, Whizzywig developers implemented a
+ * shorthand w() substitute function that we can override to redirect the output
+ * into the global wysiwygWhizzywig variable.
+ *
+ * @see o()
+ */
+var w = function (string) {
+  if (string) {
+    wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] += string;
+  }
+  return wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField];
+};
+
+/**
+ * Override Whizzywig's document.getElementById() function.
+ *
+ * Since we redirect the output of w() into a temporary string upon attaching
+ * an editor, we also have to override the o() shorthand substitute function
+ * for document.getElementById() to search in the document or our container.
+ * This override function also inserts the editor instance when Whizzywig
+ * tries to access its IFRAME, so it has access to the full/regular window
+ * object.
+ *
+ * @see w()
+ */
+var o = function (id) {
+  // Upon first access to "whizzy" + id, Whizzywig tries to access its IFRAME,
+  // so we need to insert the editor into the DOM.
+  if (id == 'whizzy' + wysiwygWhizzywig.currentField && wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField]) {
+    jQuery('#' + wysiwygWhizzywig.currentField).after('<div id="' + wysiwygWhizzywig.currentField + '-whizzywig">' + w() + '</div>');
+    // Prevent subsequent invocations from inserting the editor multiple times.
+    wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] = '';
+  }
+  // If id exists in the regular window.document, return it.
+  if (jQuery('#' + id).size()) {
+    return jQuery('#' + id).get(0);
+  }
+  // Otherwise return id from our container.
+  return jQuery('#' + id, w()).get(0);
+};
+
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.whizzywig = function(context, params, settings) {
+  // Assign button images path, if available.
+  if (settings.buttonPath) {
+    window.buttonPath = settings.buttonPath;
+  }
+  // Create Whizzywig container.
+  wysiwygWhizzywig.currentField = params.field;
+  wysiwygWhizzywig.fields[wysiwygWhizzywig.currentField] = '';
+  // Attach editor.
+  makeWhizzyWig(params.field, (settings.buttons ? settings.buttons : 'all'));
+  // Whizzywig fails to detect and set initial textarea contents.
+  var instance = $('#whizzy' + params.field).get(0);
+  if (instance) {
+    instance.contentWindow.document.body.innerHTML = $('#' + params.field).val();
+  }
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.whizzywig = function(context, params) {
+  var detach = function (id) {
+    var instance = $('#whizzy' + whizzies[id]).get(0);
+    if (!instance) {
+      return;
+    }
+    var body = instance.contentWindow.document.body;
+    var $field = $('#' + whizzies[id]);
+    body.innerHTML = tidyH(body.innerHTML);
+
+    // Save contents of editor back into textarea.
+    $field.val(window.get_xhtml ? get_xhtml(body) : body.innerHTML);
+    $field.val($field.val().replace(location.href + '#', '#'));
+    // Remove editor instance.
+    $('#' + whizzies[id] + '-whizzywig').remove();
+    whizzies.splice(id, 1);
+  };
+
+  if (typeof params != 'undefined') {
+    for (var id in whizzies) {
+      if (whizzies[id] == params.field) {
+        detach(id);
+      }
+    }
+  }
+  else {
+    for (var id in whizzies) {
+      detach(id);
+    }
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/wymeditor.js b/sites/all/modules/wysiwyg/editors/js/wymeditor.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee6bd4326fcc9394dce6cb3d3e0c24f440f80cc8
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/wymeditor.js
@@ -0,0 +1,57 @@
+// $Id: wymeditor.js,v 1.4 2009/09/26 05:37:57 sun Exp $
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.wymeditor = function (context, params, settings) {
+  // Prepend basePath to wymPath.
+  settings.wymPath = settings.basePath + settings.wymPath;
+  // Update activeId on focus.
+  settings.postInit = function (instance) {
+    $(instance._doc).focus(function () {
+      Drupal.wysiwyg.activeId = params.field;
+    });
+  };
+  // Attach editor.
+  $('#' + params.field).wymeditor(settings);
+};
+
+/**
+ * Detach a single or all editors.
+ */
+Drupal.wysiwyg.editor.detach.wymeditor = function (context, params) {
+  if (typeof params != 'undefined') {
+    var $field = $('#' + params.field);
+    var index = $field.data(WYMeditor.WYM_INDEX);
+    if (typeof index != 'undefined') {
+      var instance = WYMeditor.INSTANCES[index];
+      instance.update();
+      $(instance._box).remove();
+      $(instance._element).show();
+      delete instance;
+    }
+    $field.show();
+  }
+  else {
+    jQuery.each(WYMeditor.INSTANCES, function () {
+      this.update();
+      $(this._box).remove();
+      $(this._element).show();
+      delete this;
+    });
+  }
+};
+
+Drupal.wysiwyg.editor.instance.wymeditor = {
+  insert: function (content) {
+    var $field = $('#' + this.field);
+    var index = $field.data(WYMeditor.WYM_INDEX);
+    if (typeof index != 'undefined') {
+      var instance = WYMeditor.INSTANCES[index];
+      instance.insert(content);
+    }
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/js/yui.js b/sites/all/modules/wysiwyg/editors/js/yui.js
new file mode 100644
index 0000000000000000000000000000000000000000..7f5257c7d5bfba9d1ff79d5208bc22581609b1f4
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/js/yui.js
@@ -0,0 +1,36 @@
+// $Id: yui.js,v 1.3 2010/02/06 22:34:16 sun Exp $
+(function($) {
+
+/**
+ * Attach this editor to a target element.
+ */
+Drupal.wysiwyg.editor.attach.yui = function(context, params, settings) {
+  // Apply theme.
+  $('#' + params.field).parent().addClass('yui-skin-' + settings.theme);
+  // Attach editor.
+  var editor = new YAHOO.widget.Editor(params.field, settings);
+  editor.render();
+};
+
+/**
+ * Detach a single or all editors.
+ *
+ * See Drupal.wysiwyg.editor.detach.none() for a full desciption of this hook.
+ */
+Drupal.wysiwyg.editor.detach.yui = function(context, params) {
+  if (typeof params != 'undefined') {
+    var instance = YAHOO.widget.EditorInfo.getEditorById(params.field);
+    if (instance) {
+      instance.destroy();
+    }
+  }
+  else {
+    for (var e in YAHOO.widget.EditorInfo._instances) {
+      // Save contents of all editors back into textareas.
+      var instance = YAHOO.widget.EditorInfo._instances[e];
+      instance.destroy();
+    }
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/editors/jwysiwyg.inc b/sites/all/modules/wysiwyg/editors/jwysiwyg.inc
new file mode 100644
index 0000000000000000000000000000000000000000..a40b0f89f0c18172100b3231d5ead905d7b09e2a
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/jwysiwyg.inc
@@ -0,0 +1,63 @@
+<?php
+// $Id: jwysiwyg.inc,v 1.5 2010/04/02 14:05:36 sun Exp $
+
+/**
+ * @file
+ * Editor integration functions for jWYSIWYG.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_jwysiwyg_editor() {
+  $editor['jwysiwyg'] = array(
+    'title' => 'jWYSIWYG',
+    'vendor url' => 'http://code.google.com/p/jwysiwyg/',
+    'download url' => 'http://code.google.com/p/jwysiwyg/downloads/list',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Source',
+        'files' => array('jquery.wysiwyg.js'),
+      ),
+      'pack' => array(
+        'title' => 'Packed',
+        'files' => array('jquery.wysiwyg.pack.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_jwysiwyg_version',
+    // @todo Wrong property; add separate properties for editor requisites.
+    'css path' => wysiwyg_get_path('jwysiwyg'),
+    'versions' => array(
+      '0.5' => array(
+        'js files' => array('jwysiwyg.js'),
+        'css files' => array('jquery.wysiwyg.css'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_jwysiwyg_version($editor) {
+  $script = $editor['library path'] . '/jquery.wysiwyg.js';
+  if (!file_exists($script)) {
+    return;
+  }
+  $script = fopen($script, 'r');
+  fgets($script);
+  $line = fgets($script);
+  if (preg_match('@([0-9\.]+)$@', $line, $version)) {
+    fclose($script);
+    return $version[1];
+  }
+  fclose($script);
+}
+
diff --git a/sites/all/modules/wysiwyg/editors/markitup.inc b/sites/all/modules/wysiwyg/editors/markitup.inc
new file mode 100644
index 0000000000000000000000000000000000000000..dfb63580cd75e862a9bb94d40cc05c407d5ccef5
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/markitup.inc
@@ -0,0 +1,184 @@
+<?php
+// $Id: markitup.inc,v 1.9 2010/04/02 14:05:36 sun Exp $
+
+/**
+ * @file
+ * Editor integration functions for markItUp.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_markitup_editor() {
+  $editor['markitup'] = array(
+    'title' => 'markItUp',
+    'vendor url' => 'http://markitup.jaysalvat.com',
+    'download url' => 'http://markitup.jaysalvat.com/downloads',
+    'library path' => wysiwyg_get_path('markitup') . '/markitup',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Source',
+        'files' => array('jquery.markitup.js'),
+      ),
+      'pack' => array(
+        'title' => 'Packed',
+        'files' => array('jquery.markitup.pack.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_markitup_version',
+    'themes callback' => 'wysiwyg_markitup_themes',
+    'settings callback' => 'wysiwyg_markitup_settings',
+    'plugin callback' => 'wysiwyg_markitup_plugins',
+    'versions' => array(
+      '1.1.5' => array(
+        'js files' => array('markitup.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_markitup_version($editor) {
+  $changelog = $editor['library path'] . '/readme.txt';
+  if (!file_exists($changelog)) {
+    return;
+  }
+  $changelog = fopen($changelog, 'r');
+  $line = fgets($changelog);
+  if (preg_match('@([0-9\.]+)@', $line, $version)) {
+    fclose($changelog);
+    return $version[1];
+  }
+  fclose($changelog);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_markitup_themes($editor, $profile) {
+  return array('simple', 'markitup');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_markitup_settings($editor, $config, $theme) {
+  // Whoever is guilty for adding this horrible CSS-file-without-filepath
+  // override "feature" to Drupal core... stand in the corner!
+  drupal_add_css($editor['library path'] . '/skins/' . $theme . '/style.css', 'theme');
+
+  $settings = array(
+    'root' => base_path() . $editor['library path'] . '/',
+    'nameSpace' => $theme,
+    'markupSet' => array(),
+  );
+
+  // Add configured buttons or all available.
+  $default_buttons = array(
+    'bold' => array(
+      'name' => t('Bold'),
+      'className' => 'markitup-bold',
+      'key' => 'B',
+      'openWith' => '(!(<strong>|!|<b>)!)',
+      'closeWith' => '(!(</strong>|!|</b>)!)',
+    ),
+    'italic' => array(
+      'name' => t('Italic'),
+      'className' => 'markitup-italic',
+      'key' => 'I',
+      'openWith' => '(!(<em>|!|<i>)!)',
+      'closeWith' => '(!(</em>|!|</i>)!)',
+    ),
+    'stroke' => array(
+      'name' => t('Strike-through'),
+      'className' => 'markitup-stroke',
+      'key' => 'S',
+      'openWith' => '<del>',
+      'closeWith' => '</del>',
+    ),
+    'image' => array(
+      'name' => t('Image'),
+      'className' => 'markitup-image',
+      'key' => 'P',
+      'replaceWith' => '<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />',
+    ),
+    'link' => array(
+      'name' => t('Link'),
+      'className' => 'markitup-link',
+      'key' => 'K',
+      'openWith' => '<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>',
+      'closeWith' => '</a>',
+      'placeHolder' => 'Your text to link...',
+    ),
+    // @todo
+    // 'cleanup' => array('name' => t('Clean-up'), 'className' => 'markitup-cleanup', 'replaceWith' => 'function(markitup) { return markitup.selection.replace(/<(.*?)>/g, "") }'),
+    'preview' => array(
+      'name' => t('Preview'),
+      'className' => 'markitup-preview',
+      'call' => 'preview',
+    ),
+  );
+  if (!empty($config['buttons'])) {
+    foreach ($config['buttons'] as $plugin) {
+      foreach ($plugin as $button => $enabled) {
+        if (isset($default_buttons[$button])) {
+          $settings['markupSet'][$button] = $default_buttons[$button];
+        }
+      }
+    }
+  }
+  else {
+    $settings['markupSet'] = $default_buttons;
+  }
+
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_markitup_plugins($editor) {
+  return array(
+    'default' => array(
+      'buttons' => array(
+        'bold' => t('Bold'), 'italic' => t('Italic'),
+        'stroke' => t('Strike-through'),
+        'link' => t('Link'),
+        'image' => t('Image'),
+        // 'cleanup' => t('Clean-up'),
+        'preview' => t('Preview'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+}
+
diff --git a/sites/all/modules/wysiwyg/editors/nicedit.inc b/sites/all/modules/wysiwyg/editors/nicedit.inc
new file mode 100644
index 0000000000000000000000000000000000000000..737e0913dfac3b8a9206a01b8164dd97d7ba2fc9
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/nicedit.inc
@@ -0,0 +1,122 @@
+<?php
+// $Id: nicedit.inc,v 1.7 2009/08/03 22:37:12 sun Exp $
+
+/**
+ * @file
+ * Editor integration functions for NicEdit.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_nicedit_editor() {
+  $editor['nicedit'] = array(
+    'title' => 'NicEdit',
+    'vendor url' => 'http://nicedit.com',
+    'download url' => 'http://nicedit.com/download.php',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Source',
+        'files' => array('nicEdit.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_nicedit_version',
+    'settings callback' => 'wysiwyg_nicedit_settings',
+    'plugin callback' => 'wysiwyg_nicedit_plugins',
+    'versions' => array(
+      '0.9' => array(
+        'js files' => array('nicedit.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_nicedit_version($editor) {
+  // @see http://nicedit.com/forums/viewtopic.php?t=425
+  return '0.9';
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_nicedit_settings($editor, $config, $theme) {
+  $settings = array(
+    'iconsPath' => base_path() . $editor['library path'] . '/nicEditorIcons.gif',
+  );
+
+  // Add configured buttons or all available.
+  if (!empty($config['buttons'])) {
+    $buttons = array();
+    foreach ($config['buttons'] as $plugin) {
+      $buttons = array_merge($buttons, $plugin);
+    }
+    $settings['buttonList'] = array_keys($buttons);
+  }
+  else {
+    $settings['fullPanel'] = TRUE;
+  }
+
+  // Add editor content stylesheet.
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $css = path_to_theme() . '/style.css';
+      if (file_exists($css)) {
+        $settings['externalCSS'] = base_path() . $css;
+      }
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['externalCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_nicedit_plugins($editor) {
+  return array(
+    'default' => array(
+      'buttons' => array(
+        'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'),
+        'strikethrough' => t('Strike-through'),
+        'left' => t('Align left'), 'center' => t('Align center'), 'right' => t('Align right'),
+        'ul' => t('Bullet list'), 'ol' => t('Numbered list'),
+        'outdent' => t('Outdent'), 'indent' => t('Indent'),
+        'image' => t('Image'),
+        'forecolor' => t('Forecolor'), 'bgcolor' => t('Backcolor'),
+        'superscript' => t('Superscript'), 'subscript' => t('Subscript'),
+        'hr' => t('Horizontal rule'),
+        // @todo New challenge: Optional internal plugins packaged into editor
+        //   library.
+        'link' => t('Link'), 'unlink' => t('Unlink'),
+        'fontFormat' => t('HTML block format'), 'fontFamily' => t('Font'), 'fontSize' => t('Font size'),
+        'xhtml' => t('Source code'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+}
+
diff --git a/sites/all/modules/wysiwyg/editors/openwysiwyg.inc b/sites/all/modules/wysiwyg/editors/openwysiwyg.inc
new file mode 100644
index 0000000000000000000000000000000000000000..0f3e594bbe3d7f11519769c43ec9e0cd5ac0f35e
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/openwysiwyg.inc
@@ -0,0 +1,173 @@
+<?php
+// $Id: openwysiwyg.inc,v 1.6 2010/04/07 21:18:20 sun Exp $
+
+/**
+ * @file
+ * Editor integration functions for openWYSIWYG.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_openwysiwyg_editor() {
+  $editor['openwysiwyg'] = array(
+    'title' => 'openWYSIWYG',
+    'vendor url' => 'http://www.openwebware.com',
+    'download url' => 'http://www.openwebware.com/download.shtml',
+    'library path' => wysiwyg_get_path('openwysiwyg') . '/scripts',
+    'libraries' => array(
+      'src' => array(
+        'title' => 'Source',
+        'files' => array('wysiwyg.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_openwysiwyg_version',
+    'themes callback' => 'wysiwyg_openwysiwyg_themes',
+    'settings callback' => 'wysiwyg_openwysiwyg_settings',
+    'plugin callback' => 'wysiwyg_openwysiwyg_plugins',
+    'versions' => array(
+      '1.4.7' => array(
+        'js files' => array('openwysiwyg.js'),
+        'css files' => array('openwysiwyg.css'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_openwysiwyg_version($editor) {
+  // 'library path' has '/scripts' appended already.
+  $changelog = $editor['editor path'] . '/changelog';
+  if (!file_exists($changelog)) {
+    return;
+  }
+  $changelog = fopen($changelog, 'r');
+  $line = fgets($changelog, 20);
+  if (preg_match('@v([\d\.]+)@', $line, $version)) {
+    fclose($changelog);
+    return $version[1];
+  }
+  fclose($changelog);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_openwysiwyg_themes($editor, $profile) {
+  return array('default');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_openwysiwyg_settings($editor, $config, $theme) {
+  $settings = array(
+    'path' => base_path() . $editor['editor path'] . '/',
+    'Width' => '100%',
+  );
+
+  if (isset($config['path_loc']) && $config['path_loc'] == 'none') {
+    $settings['StatusBarEnabled'] = FALSE;
+  }
+
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $settings['CSSFile'] = reset(wysiwyg_get_css());
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['CSSFile'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  if (!empty($config['buttons'])) {
+    $plugins = wysiwyg_get_plugins($editor['name']);
+    foreach ($config['buttons'] as $plugin => $buttons) {
+      foreach ($buttons as $button => $enabled) {
+        foreach (array('buttons', 'extensions') as $type) {
+          // Skip unavailable plugins.
+          if (!isset($plugins[$plugin][$type][$button])) {
+            continue;
+          }
+          // Add buttons.
+          if ($type == 'buttons') {
+            $settings['Toolbar'][0][] = $button;
+          }
+        }
+      }
+    }
+  }
+
+  // @todo 
+//  if (isset($config['block_formats'])) {
+//    $settings['DropDowns']['headings']['elements'] = explode(',', $config['block_formats']);
+//  }
+
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_openwysiwyg_plugins($editor) {
+  $plugins = array(
+    'default' => array(
+      'buttons' => array(
+        'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'),
+        'strikethrough' => t('Strike-through'),
+        'justifyleft' => t('Align left'), 'justifycenter' => t('Align center'), 'justifyright' => t('Align right'), 'justifyfull' => t('Justify'),
+        'unorderedlist' => t('Bullet list'), 'orderedlist' => t('Numbered list'),
+        'outdent' => t('Outdent'), 'indent' => t('Indent'),
+        'undo' => t('Undo'), 'redo' => t('Redo'),
+        'createlink' => t('Link'),
+        'insertimage' => t('Image'),
+        'cleanup' => t('Clean-up'),
+        'forecolor' => t('Forecolor'), 'backcolor' => t('Backcolor'),
+        'superscript' => t('Sup'), 'subscript' => t('Sub'),
+        'blockquote' => t('Blockquote'), 'viewSource' => t('Source code'),
+        'hr' => t('Horizontal rule'),
+        'cut' => t('Cut'), 'copy' => t('Copy'), 'paste' => t('Paste'),
+        'visualaid' => t('Visual aid'),
+        'removeformat' => t('Remove format'),
+        'charmap' => t('Character map'),
+        'headings' => t('HTML block format'), 'font' => t('Font'), 'fontsize' => t('Font size'),
+        'maximize' => t('Fullscreen'),
+        'preview' => t('Preview'),
+        'print' => t('Print'),
+        'inserttable' => t('Table'),
+        'help' => t('Help'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+  return $plugins;
+}
+
diff --git a/sites/all/modules/wysiwyg/editors/tinymce.inc b/sites/all/modules/wysiwyg/editors/tinymce.inc
new file mode 100644
index 0000000000000000000000000000000000000000..17fdc77d918cd2fc12f73d6fd152e92277a9c389
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/tinymce.inc
@@ -0,0 +1,594 @@
+<?php
+// $Id: tinymce.inc,v 1.39 2010/04/02 14:05:36 sun Exp $
+
+/**
+ * @file
+ * Editor integration functions for TinyMCE.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ *
+ * @todo wysiwyg_<editor>_alter() to add/inject optional libraries like gzip.
+ */
+function wysiwyg_tinymce_editor() {
+  $editor['tinymce'] = array(
+    'title' => 'TinyMCE',
+    'vendor url' => 'http://tinymce.moxiecode.com',
+    'download url' => 'http://tinymce.moxiecode.com/download.php',
+    'library path' => wysiwyg_get_path('tinymce') . '/jscripts/tiny_mce',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Minified',
+        'files' => array('tiny_mce.js'),
+      ),
+      'src' => array(
+        'title' => 'Source',
+        'files' => array('tiny_mce_src.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_tinymce_version',
+    'themes callback' => 'wysiwyg_tinymce_themes',
+    'settings callback' => 'wysiwyg_tinymce_settings',
+    'plugin callback' => 'wysiwyg_tinymce_plugins',
+    'plugin settings callback' => 'wysiwyg_tinymce_plugin_settings',
+    'proxy plugin' => array(
+      'drupal' => array(
+        'load' => TRUE,
+        'proxy' => TRUE,
+      ),
+    ),
+    'proxy plugin settings callback' => 'wysiwyg_tinymce_proxy_plugin_settings',
+    'versions' => array(
+      '2.1' => array(
+        'js files' => array('tinymce-2.js'),
+        'css files' => array('tinymce-2.css'),
+        'download url' => 'http://sourceforge.net/project/showfiles.php?group_id=103281&package_id=111430&release_id=557383',
+      ),
+      // @todo Starting from 3.3, tiny_mce.js may support JS aggregation.
+      '3.1' => array(
+        'js files' => array('tinymce-3.js'),
+        'css files' => array('tinymce-3.css'),
+        'libraries' => array(
+          '' => array(
+            'title' => 'Minified',
+            'files' => array(
+              'tiny_mce.js' => array('preprocess' => FALSE),
+            ),
+          ),
+          'jquery' => array(
+            'title' => 'jQuery',
+            'files' => array('tiny_mce_jquery.js'),
+          ),
+          'src' => array(
+            'title' => 'Source',
+            'files' => array('tiny_mce_src.js'),
+          ),
+        ),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_tinymce_version($editor) {
+  $script = $editor['library path'] . '/tiny_mce.js';
+  if (!file_exists($script)) {
+    return;
+  }
+  $script = fopen($script, 'r');
+  // Version is contained in the first 100 chars.
+  $line = fgets($script, 100);
+  // 2.x: this.majorVersion="2";this.minorVersion="1.3"
+  // 3.x: majorVersion:'3',minorVersion:'2.0.1'
+  if (preg_match('@majorVersion[=:]["\'](\d).+?minorVersion[=:]["\']([\d\.]+)@', $line, $version)) {
+    fclose($script);
+    return $version[1] . '.' . $version[2];
+  }
+  fclose($script);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_tinymce_themes($editor, $profile) {
+  /*
+  $themes = array();
+  $dir = $editor['library path'] . '/themes/';
+  if (is_dir($dir) && $dh = opendir($dir)) {
+    while (($file = readdir($dh)) !== FALSE) {
+      if (!in_array($file, array('.', '..', 'CVS', '.svn')) && is_dir($dir . $file)) {
+        $themes[$file] = $file;
+      }
+    }
+    closedir($dh);
+    asort($themes);
+  }
+  return $themes;
+  */
+  return array('advanced', 'simple');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_tinymce_settings($editor, $config, $theme) {
+  $settings = array(
+    'button_tile_map' => TRUE, // @todo Add a setting for this.
+    'document_base_url' => base_path(),
+    'mode' => 'none',
+    'plugins' => array(),
+    'theme' => $theme,
+    'width' => '100%',
+    // Strict loading mode must be enabled; otherwise TinyMCE would use
+    // document.write() in IE and Chrome.
+    'strict_loading_mode' => TRUE,
+    // TinyMCE's URL conversion magic breaks Drupal modules that use a special
+    // syntax for paths. This makes 'relative_urls' obsolete.
+    'convert_urls' => FALSE,
+    // The default entity_encoding ('named') converts too many characters in
+    // languages (like Greek). Since Drupal supports Unicode, we only convert
+    // HTML control characters and invisible characters. TinyMCE always converts
+    // XML default characters '&', '<', '>'.
+    'entities' => '160,nbsp,173,shy,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm',
+  );
+  if (isset($config['apply_source_formatting'])) {
+    $settings['apply_source_formatting'] = $config['apply_source_formatting'];
+  }
+  if (isset($config['convert_fonts_to_spans'])) {
+    $settings['convert_fonts_to_spans'] = $config['convert_fonts_to_spans'];
+  }
+  if (isset($config['language'])) {
+    $settings['language'] = $config['language'];
+  }
+  if (isset($config['paste_auto_cleanup_on_paste'])) {
+    $settings['paste_auto_cleanup_on_paste'] = $config['paste_auto_cleanup_on_paste'];
+  }
+  if (isset($config['preformatted'])) {
+    $settings['preformatted'] = $config['preformatted'];
+  }
+  if (isset($config['remove_linebreaks'])) {
+    $settings['remove_linebreaks'] = $config['remove_linebreaks'];
+  }
+  if (isset($config['verify_html'])) {
+    $settings['verify_html'] = $config['verify_html'];
+  }
+
+  if (!empty($config['css_classes'])) {
+    $settings['theme_advanced_styles'] = implode(';', array_filter(explode("\n", str_replace("\r", '', $config['css_classes']))));
+  }
+
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $settings['content_css'] = implode(',', wysiwyg_get_css());
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['content_css'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  // Find the enabled buttons and the button row they belong on.
+  // Also map the plugin metadata for each button.
+  // @todo What follows is a pain; needs a rewrite.
+  if (!empty($config['buttons']) && is_array($config['buttons'])) {
+    // $settings['buttons'] are stacked into
+    // $settings['theme_advanced_buttons1'] later.
+    // @todo Add a toolbar designer based on jQuery UI.
+    $settings['buttons'] = array();
+    // Only array keys in $settings['extensions'] matter; added to
+    // $settings['plugins'] later.
+    $settings['extensions'] = array();
+    // $settings['extended_valid_elements'] are just stacked, unique'd later,
+    // and transformed into a comma-separated string in
+    // wysiwyg_add_editor_settings().
+    // @todo Needs a complete plugin API redesign using arrays for
+    //   tag => attributes definitions and array_merge_recursive().
+    $settings['extended_valid_elements'] = array();
+
+    $plugins = wysiwyg_get_plugins($editor['name']);
+    foreach ($config['buttons'] as $plugin => $buttons) {
+      foreach ($buttons as $button => $enabled) {
+        // Iterate separately over buttons and extensions properties.
+        foreach (array('buttons', 'extensions') as $type) {
+          // Skip unavailable plugins.
+          if (!isset($plugins[$plugin][$type][$button])) {
+            continue;
+          }
+          // Add buttons.
+          if ($type == 'buttons') {
+            $settings['buttons'][] = $button;
+          }
+          // Add external Drupal plugins to the list of extensions.
+          if ($type == 'buttons' && !empty($plugins[$plugin]['proxy'])) {
+            $settings['extensions'][_wysiwyg_tinymce_plugin_name('add', $button)] = 1;
+          }
+          // Add external plugins to the list of extensions.
+          else if ($type == 'buttons' && empty($plugins[$plugin]['internal'])) {
+            $settings['extensions'][_wysiwyg_tinymce_plugin_name('add', $plugin)] = 1;
+          }
+          // Add internal buttons that also need to be loaded as extension.
+          else if ($type == 'buttons' && !empty($plugins[$plugin]['load'])) {
+            $settings['extensions'][$plugin] = 1;
+          }
+          // Add plain extensions.
+          else if ($type == 'extensions' && !empty($plugins[$plugin]['load'])) {
+            $settings['extensions'][$plugin] = 1;
+          }
+          // Allow plugins to add valid HTML elements.
+          if (!empty($plugins[$plugin]['extended_valid_elements'])) {
+            $settings['extended_valid_elements'] = array_merge($settings['extended_valid_elements'], $plugins[$plugin]['extended_valid_elements']);
+          }
+          // Allow plugins to add or override global configuration settings.
+          if (!empty($plugins[$plugin]['options'])) {
+            $settings = array_merge($settings, $plugins[$plugin]['options']);
+          }
+        }
+      }
+    }
+    // Clean-up.
+    $settings['extended_valid_elements'] = array_unique($settings['extended_valid_elements']);
+    if ($settings['extensions']) {
+      $settings['plugins'] = array_keys($settings['extensions']);
+    }
+    unset($settings['extensions']);
+  }
+
+  // Add theme-specific settings.
+  switch ($theme) {
+    case 'advanced':
+      $settings += array(
+        'theme_advanced_resize_horizontal' => FALSE,
+        'theme_advanced_resizing_use_cookie' => FALSE,
+        'theme_advanced_path_location' => isset($config['path_loc']) ? $config['path_loc'] : 'bottom',
+        'theme_advanced_resizing' => isset($config['resizing']) ? $config['resizing'] : 1,
+        'theme_advanced_toolbar_location' => isset($config['toolbar_loc']) ? $config['toolbar_loc'] : 'top',
+        'theme_advanced_toolbar_align' => isset($config['toolbar_align']) ? $config['toolbar_align'] : 'left',
+      );
+      if (isset($config['block_formats'])) {
+        $settings['theme_advanced_blockformats'] = $config['block_formats'];
+      }
+      if (isset($settings['buttons'])) {
+        // These rows explicitly need to be set to be empty, otherwise TinyMCE
+        // loads its default buttons of the advanced theme for each row.
+        $settings += array(
+          'theme_advanced_buttons1' => array(),
+          'theme_advanced_buttons2' => array(),
+          'theme_advanced_buttons3' => array(),
+        );
+        // @todo Allow to sort/arrange editor buttons.
+        for ($i = 0; $i < count($settings['buttons']); $i++) {
+          $settings['theme_advanced_buttons1'][] = $settings['buttons'][$i];
+        }
+      }
+      break;
+  }
+  unset($settings['buttons']);
+
+  // Convert the config values into the form expected by TinyMCE.
+  foreach ($settings as $key => $value) {
+    if (is_bool($value)) {
+      continue;
+    }
+    if (is_array($value)) {
+      $settings[$key] = implode(',', $settings[$key]);
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Build a JS settings array of native external plugins that need to be loaded separately.
+ *
+ * TinyMCE requires that external plugins (i.e. not residing in the editor's
+ * directory) are loaded (once) upon initializing the editor.
+ */
+function wysiwyg_tinymce_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    if (!empty($plugin['load'])) {
+      // Add path for native external plugins; internal ones are loaded
+      // automatically.
+      if (empty($plugin['internal']) && isset($plugin['path'])) {
+        $settings[$name] = base_path() . $plugin['path'];
+      }
+    }
+  }
+  return $settings;
+}
+
+/**
+ * Build a JS settings array for Drupal plugins loaded via the proxy plugin.
+ */
+function wysiwyg_tinymce_proxy_plugin_settings($editor, $profile, $plugins) {
+  $settings = array();
+  foreach ($plugins as $name => $plugin) {
+    // Populate required plugin settings.
+    $settings[$name] = $plugin['dialog settings'] + array(
+      'title' => $plugin['title'],
+      'icon' => base_path() . $plugin['icon path'] . '/' . $plugin['icon file'],
+      'iconTitle' => $plugin['icon title'],
+      // @todo These should only be set if the plugin defined them.
+      'css' => base_path() . $plugin['css path'] . '/' . $plugin['css file'],
+    );
+  }
+  return $settings;
+}
+
+/**
+ * Add or remove leading hiven to/of external plugin names.
+ *
+ * TinyMCE requires that external plugins, which should not be loaded from
+ * its own plugin repository are prefixed with a hiven in the name.
+ *
+ * @param string $op
+ *   Operation to perform, 'add' or 'remove' (hiven).
+ * @param string $name
+ *   A plugin name.
+ */
+function _wysiwyg_tinymce_plugin_name($op, $name) {
+  if ($op == 'add') {
+    if (strpos($name, '-') !== 0) {
+      return '-' . $name;
+    }
+    return $name;
+  }
+  else if ($op == 'remove') {
+    if (strpos($name, '-') === 0) {
+      return substr($name, 1);
+    }
+    return $name;
+  }
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_tinymce_plugins($editor) {
+  $plugins = array(
+    'default' => array(
+      'path' => $editor['library path'] . '/themes/advanced',
+      'buttons' => array(
+        'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'),
+        'strikethrough' => t('Strike-through'),
+        'justifyleft' => t('Align left'), 'justifycenter' => t('Align center'), 'justifyright' => t('Align right'), 'justifyfull' => t('Justify'),
+        'bullist' => t('Bullet list'), 'numlist' => t('Numbered list'),
+        'outdent' => t('Outdent'), 'indent' => t('Indent'),
+        'undo' => t('Undo'), 'redo' => t('Redo'),
+        'link' => t('Link'), 'unlink' => t('Unlink'), 'anchor' => t('Anchor'),
+        'image' => t('Image'),
+        'cleanup' => t('Clean-up'),
+        'forecolor' => t('Forecolor'), 'backcolor' => t('Backcolor'),
+        'sup' => t('Superscript'), 'sub' => t('Subscript'),
+        'blockquote' => t('Blockquote'), 'code' => t('Source code'),
+        'hr' => t('Horizontal rule'),
+        'cut' => t('Cut'), 'copy' => t('Copy'), 'paste' => t('Paste'),
+        'visualaid' => t('Visual aid'),
+        'removeformat' => t('Remove format'),
+        'charmap' => t('Character map'),
+        'help' => t('Help'),
+      ),
+      'internal' => TRUE,
+    ),
+    'advhr' => array(
+      'path' => $editor['library path'] . '/plugins/advhr',
+      'buttons' => array('advhr' => t('Advanced horizontal rule')),
+      'extended_valid_elements' => array('hr[class|width|size|noshade]'),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'advimage' => array(
+      'path' => $editor['library path'] . '/plugins/advimage',
+      'extensions' => array('advimage' => t('Advanced image')),
+      'extended_valid_elements' => array('img[src|alt|title|align|width|height|hspace|vspace|border|style|class|onmouseover|onmouseout|id|name]'),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'advlink' => array(
+      'path' => $editor['library path'] . '/plugins/advlink',
+      'extensions' => array('advlink' => t('Advanced link')),
+      'extended_valid_elements' => array('a[name|href|target|title|class|onfocus|onblur|onclick|ondlbclick|onmousedown|onmouseup|onmouseover|onmouseout|onkeypress|onkeydown|onkeyup|id|style|rel]'),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'autosave' => array(
+      'path' => $editor['library path'] . '/plugins/autosave',
+      'extensions' => array('autosave' => t('Auto save')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'contextmenu' => array(
+      'path' => $editor['library path'] . '/plugins/contextmenu',
+      'extensions' => array('contextmenu' => t('Context menu')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'directionality' => array(
+      'path' => $editor['library path'] . '/plugins/directionality',
+      'buttons' => array('ltr' => t('Left-to-right'), 'rtl' => t('Right-to-left')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'emotions' => array(
+      'path' => $editor['library path'] . '/plugins/emotions',
+      'buttons' => array('emotions' => t('Emotions')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'font' => array(
+      'path' => $editor['library path'] . '/plugins/font',
+      'buttons' => array('formatselect' => t('HTML block format'), 'fontselect' => t('Font'), 'fontsizeselect' => t('Font size'), 'styleselect' => t('Font style')),
+      'extended_valid_elements' => array('font[face|size|color|style],span[class|align|style]'),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/font',
+      'internal' => TRUE,
+    ),
+    'fullscreen' => array(
+      'path' => $editor['library path'] . '/plugins/fullscreen',
+      'buttons' => array('fullscreen' => t('Fullscreen')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'inlinepopups' => array(
+      'path' => $editor['library path'] . '/plugins/inlinepopups',
+      'extensions' => array('inlinepopups' => t('Inline popups')),
+      'options' => array(
+        'dialog_type' => array('modal'),
+      ),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'insertdatetime' => array(
+      'path' => $editor['library path'] . '/plugins/insertdatetime',
+      'buttons' => array('insertdate' => t('Insert date'), 'inserttime' => t('Insert time')),
+      'options' => array(
+        'plugin_insertdate_dateFormat' => array('%Y-%m-%d'),
+        'plugin_insertdate_timeFormat' => array('%H:%M:%S'),
+      ),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'layer' => array(
+      'path' => $editor['library path'] . '/plugins/layer',
+      'buttons' => array('insertlayer' => t('Insert layer'), 'moveforward' => t('Move forward'), 'movebackward' => t('Move backward'), 'absolute' => t('Absolute')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'paste' => array(
+      'path' => $editor['library path'] . '/plugins/paste',
+      'buttons' => array('pastetext' => t('Paste text'), 'pasteword' => t('Paste from Word'), 'selectall' => t('Select all')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'preview' => array(
+      'path' => $editor['library path'] . '/plugins/preview',
+      'buttons' => array('preview' => t('Preview')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'print' => array(
+      'path' => $editor['library path'] . '/plugins/print',
+      'buttons' => array('print' => t('Print')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'searchreplace' => array(
+      'path' => $editor['library path'] . '/plugins/searchreplace',
+      'buttons' => array('search' => t('Search'), 'replace' => t('Replace')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'style' => array(
+      'path' => $editor['library path'] . '/plugins/style',
+      'buttons' => array('styleprops' => t('Style properties')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+    'table' => array(
+      'path' => $editor['library path'] . '/plugins/table',
+      'buttons' => array('tablecontrols' => t('Table')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',
+      'internal' => TRUE,
+      'load' => TRUE,
+    ),
+  );
+  if (version_compare($editor['installed version'], '3', '<')) {
+    $plugins['flash'] = array(
+      'path' => $editor['library path'] . '/plugins/flash',
+      'buttons' => array('flash' => t('Flash')),
+      'extended_valid_elements' => array('img[class|src|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|obj|param|embed]'),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/flash',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+  }
+  if (version_compare($editor['installed version'], '2.0.6', '>')) {
+    $plugins['media'] = array(
+      'path' => $editor['library path'] . '/plugins/media',
+      'buttons' => array('media' => t('Media')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+    $plugins['xhtmlxtras'] = array(
+      'path' => $editor['library path'] . '/plugins/xhtmlxtras',
+      'buttons' => array('cite' => t('Citation'), 'del' => t('Deleted'), 'abbr' => t('Abbreviation'), 'acronym' => t('Acronym'), 'ins' => t('Inserted'), 'attribs' => t('HTML attributes')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+  }
+  if (version_compare($editor['installed version'], '3', '>')) {
+    $plugins['bbcode'] = array(
+      'path' => $editor['library path'] . '/plugins/bbcode',
+      'extensions' => array('bbcode' => t('BBCode')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+    if (version_compare($editor['installed version'], '3.3', '<')) {
+      $plugins['safari'] = array(
+        'path' => $editor['library path'] . '/plugins/safari',
+        'extensions' => array('safari' => t('Safari compatibility')),
+        'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',
+        'internal' => TRUE,
+        'load' => TRUE,
+      );
+    }
+  }
+  if (version_compare($editor['installed version'], '3.3', '>=')) {
+    $plugins['advlist'] = array(
+      'path' => $editor['library path'] . '/plugins/advlist',
+      'extensions' => array('advlist' => t('Advanced list')),
+      'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlist',
+      'internal' => TRUE,
+      'load' => TRUE,
+    );
+  }
+  return $plugins;
+}
+
diff --git a/sites/all/modules/wysiwyg/editors/whizzywig.inc b/sites/all/modules/wysiwyg/editors/whizzywig.inc
new file mode 100644
index 0000000000000000000000000000000000000000..5782f6c70016f525f5e8e898d65c025f599ee354
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/whizzywig.inc
@@ -0,0 +1,147 @@
+<?php
+// $Id: whizzywig.inc,v 1.6 2010/04/02 14:24:44 sun Exp $
+
+/**
+ * @file
+ * Editor integration functions for Whizzywig.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_whizzywig_editor() {
+  $editor['whizzywig'] = array(
+    'title' => 'Whizzywig',
+    'vendor url' => 'http://www.unverse.net',
+    'download url' => 'http://www.unverse.net/whizzywig-download.html',
+    'libraries' => array(
+      '' => array(
+        'title' => 'Default',
+        'files' => array('whizzywig.js', 'xhtml.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_whizzywig_version',
+    'settings callback' => 'wysiwyg_whizzywig_settings',
+    'plugin callback' => 'wysiwyg_whizzywig_plugins',
+    'versions' => array(
+      '55' => array(
+        'js files' => array('whizzywig.js'),
+      ),
+      '56' => array(
+        'js files' => array('whizzywig-56.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_whizzywig_version($editor) {
+  $script = $editor['library path'] . '/whizzywig.js';
+  if (!file_exists($script)) {
+    return;
+  }
+  $script = fopen($script, 'r');
+  $line = fgets($script, 43);
+  // 55: Whizzywig v55i
+  // 60: Whizzywig 60
+  if (preg_match('@Whizzywig v?([0-9]+)@', $line, $version)) {
+    fclose($script);
+    return $version[1];
+  }
+  fclose($script);
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_whizzywig_settings($editor, $config, $theme) {
+  $settings = array();
+
+  // Add path to button images, if available.
+  if (is_dir($editor['library path'] . '/btn')) {
+    $settings['buttonPath'] = base_path() . $editor['library path'] . '/btn/';
+  }
+  if (file_exists($editor['library path'] . '/WhizzywigToolbar.png')) {
+    $settings['toolbarImagePath'] = base_path() . $editor['library path'] . '/WhizzywigToolbar.png';
+  }
+  // Filename changed in version 60.
+  elseif (file_exists($editor['library path'] . '/icons.png')) {
+    $settings['toolbarImagePath'] = base_path() . $editor['library path'] . '/icons.png';
+  }
+
+  // Add configured buttons or all available.
+  if (!empty($config['buttons'])) {
+    $buttons = array();
+    foreach ($config['buttons'] as $plugin) {
+      $buttons = array_merge($buttons, $plugin);
+    }
+    $settings['buttons'] = implode(' ', array_keys($buttons));
+  }
+  else {
+    $settings['buttons'] = 'all';
+  }
+
+  // Add editor content stylesheet.
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $css = path_to_theme() . '/style.css';
+      if (file_exists($css)) {
+        $settings['externalCSS'] = base_path() . $css;
+      }
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['externalCSS'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_whizzywig_plugins($editor) {
+  return array(
+    'default' => array(
+      'buttons' => array(
+        'formatblock' => t('HTML block format'), 'fontname' => t('Font'), 'fontsize' => t('Font size'),
+        'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'),
+        'left' => t('Align left'), 'center' => t('Align center'), 'right' => t('Align right'),
+        'bullet' => t('Bullet list'), 'number' => t('Numbered list'),
+        'outdent' => t('Outdent'), 'indent' => t('Indent'),
+        'undo' => t('Undo'), 'redo' => t('Redo'),
+        'image' => t('Image'),
+        'color' => t('Forecolor'), 'hilite' => t('Backcolor'),
+        'rule' => t('Horizontal rule'),
+        'link' => t('Link'),
+        'image' => t('Image'),
+        'table' => t('Table'),
+        'clean' => t('Clean-up'),
+        'html' => t('Source code'),
+        'spellcheck' => t('Spell check'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+}
+
diff --git a/sites/all/modules/wysiwyg/editors/wymeditor.inc b/sites/all/modules/wysiwyg/editors/wymeditor.inc
new file mode 100644
index 0000000000000000000000000000000000000000..3baa67c9f554cf4f0f311123a0f5a6fba1c4c908
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/wymeditor.inc
@@ -0,0 +1,234 @@
+<?php
+// $Id: wymeditor.inc,v 1.8 2010/04/02 14:05:36 sun Exp $
+
+/**
+ * @file
+ * Editor integration functions for WYMeditor.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_wymeditor_editor() {
+  $editor['wymeditor'] = array(
+    'title' => 'WYMeditor',
+    'vendor url' => 'http://www.wymeditor.org/',
+    'download url' => 'http://www.wymeditor.org/download/',
+    'library path' => wysiwyg_get_path('wymeditor') . '/wymeditor',
+    'libraries' => array(
+      'min' => array(
+        'title' => 'Minified',
+        'files' => array('jquery.wymeditor.min.js'),
+      ),
+      'pack' => array(
+        'title' => 'Packed',
+        'files' => array('jquery.wymeditor.pack.js'),
+      ),
+      'src' => array(
+        'title' => 'Source',
+        'files' => array('jquery.wymeditor.js'),
+      ),
+    ),
+    'version callback' => 'wysiwyg_wymeditor_version',
+    'themes callback' => 'wysiwyg_wymeditor_themes',
+    'settings callback' => 'wysiwyg_wymeditor_settings',
+    'plugin callback' => 'wysiwyg_wymeditor_plugins',
+    'versions' => array(
+      '0.5-rc1' => array(
+        'js files' => array('wymeditor.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_wymeditor_version($editor) {
+  $script = $editor['library path'] . '/jquery.wymeditor.js';
+  if (!file_exists($script)) {
+    return;
+  }
+  $script = fopen($script, 'r');
+  fgets($script);
+  $line = fgets($script);
+  if (preg_match('@version\s+([0-9a-z\.-]+)@', $line, $version)) {
+    fclose($script);
+    return $version[1];
+  }
+  fclose($script);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_wymeditor_themes($editor, $profile) {
+  return array('compact', 'default', 'minimal', 'silver', 'twopanels');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_wymeditor_settings($editor, $config, $theme) {
+  // @todo Setup $library in wysiwyg_load_editor() already.
+  $library = (isset($editor['library']) ? $editor['library'] : key($editor['libraries']));
+  $settings = array(
+    'basePath' => base_path() . $editor['library path'] . '/',
+    'wymPath' => $editor['libraries'][$library]['files'][0],
+    // @todo Does not work in Drupal; jQuery can live anywhere.
+    'jQueryPath' => base_path() . 'misc/jquery.js',
+    'updateSelector' => '.form-submit',
+    'skin' => $theme,
+  );
+
+  if (isset($config['language'])) {
+    $settings['lang'] = $config['language'];
+  }
+
+  // Add configured buttons.
+  if (!empty($config['buttons'])) {
+    $buttoninfo = _wysiwyg_wymeditor_button_info();
+    $plugins = wysiwyg_get_plugins($editor['name']);
+    $settings['toolsItems'] = array();
+    foreach ($config['buttons'] as $plugin => $buttons) {
+      foreach ($buttons as $button => $enabled) {
+        // Iterate separately over buttons and extensions properties.
+        foreach (array('buttons', 'extensions') as $type) {
+          // Skip unavailable plugins.
+          if (!isset($plugins[$plugin][$type][$button])) {
+            continue;
+          }
+          // Add buttons.
+          if ($type == 'buttons') {
+            // Merge meta-data for internal default buttons.
+            if (isset($buttoninfo[$button])) {
+              $buttoninfo[$button] += array('name' => $button);
+              $settings['toolsItems'][] = $buttoninfo[$button];
+            }
+            // For custom buttons, try to provide a valid button definition.
+            else {
+              $settings['toolsItems'][] = array(
+                'name' => $button,
+                'title' => $plugins[$plugin][$type][$button],
+                'css' => 'wym_tools_' . $button,
+              );
+            }
+          }
+        }
+      }
+    }
+  }
+
+  if (!empty($config['block_formats'])) {
+    $containers = array(
+      'p' => 'Paragraph',
+      'h1' => 'Heading_1',
+      'h2' => 'Heading_2',
+      'h3' => 'Heading_3',
+      'h4' => 'Heading_4',
+      'h5' => 'Heading_5',
+      'h6' => 'Heading_6',
+      'pre' => 'Preformatted',
+      'blockquote' => 'Blockquote',
+      'th' => 'Table_Header',
+    );
+    foreach (explode(',', $config['block_formats']) as $tag) {
+      if (isset($containers[$tag])) {
+        $settings['containersItems'][] = array(
+          'name' => strtoupper($tag),
+          'title' => $containers[$tag],
+          'css' => 'wym_containers_' . $tag,
+        );
+      }
+    }
+  }
+
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      // WYMeditor only supports one CSS file currently.
+      $settings['stylesheet'] = reset(wysiwyg_get_css());
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['stylesheet'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_wymeditor_plugins($editor) {
+  $plugins = array(
+    'default' => array(
+      'buttons' => array(
+        'Bold' => t('Bold'), 'Italic' => t('Italic'),
+        'InsertOrderedList' => t('Bullet list'), 'InsertUnorderedList' => t('Numbered list'),
+        'Outdent' => t('Outdent'), 'Indent' => t('Indent'),
+        'Undo' => t('Undo'), 'Redo' => t('Redo'),
+        'CreateLink' => t('Link'), 'Unlink' => t('Unlink'),
+        'InsertImage' => t('Image'),
+        'Superscript' => t('Superscript'), 'Subscript' => t('Subscript'),
+        'ToggleHtml' => t('Source code'),
+        'Paste' => t('Paste'),
+        'InsertTable' => t('Table'),
+        'Preview' => t('Preview'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+  return $plugins;
+}
+
+/**
+ * Helper function to provide additional meta-data for internal default buttons.
+ */
+function _wysiwyg_wymeditor_button_info() {
+  return array(
+    'Bold' => array('title'=> 'Strong', 'css'=> 'wym_tools_strong'),
+    'Italic' => array('title'=> 'Emphasis', 'css'=> 'wym_tools_emphasis'),
+    'Superscript' => array('title'=> 'Superscript', 'css'=> 'wym_tools_superscript'),
+    'Subscript' => array('title'=> 'Subscript', 'css'=> 'wym_tools_subscript'),
+    'InsertOrderedList' => array('title'=> 'Ordered_List', 'css'=> 'wym_tools_ordered_list'),
+    'InsertUnorderedList' => array('title'=> 'Unordered_List', 'css'=> 'wym_tools_unordered_list'),
+    'Indent' => array('title'=> 'Indent', 'css'=> 'wym_tools_indent'),
+    'Outdent' => array('title'=> 'Outdent', 'css'=> 'wym_tools_outdent'),
+    'Undo' => array('title'=> 'Undo', 'css'=> 'wym_tools_undo'),
+    'Redo' => array('title'=> 'Redo', 'css'=> 'wym_tools_redo'),
+    'CreateLink' => array('title'=> 'Link', 'css'=> 'wym_tools_link'),
+    'Unlink' => array('title'=> 'Unlink', 'css'=> 'wym_tools_unlink'),
+    'InsertImage' => array('title'=> 'Image', 'css'=> 'wym_tools_image'),
+    'InsertTable' => array('title'=> 'Table', 'css'=> 'wym_tools_table'),
+    'Paste' => array('title'=> 'Paste_From_Word', 'css'=> 'wym_tools_paste'),
+    'ToggleHtml' => array('title'=> 'HTML', 'css'=> 'wym_tools_html'),
+    'Preview' => array('title'=> 'Preview', 'css'=> 'wym_tools_preview'),
+  );
+}
diff --git a/sites/all/modules/wysiwyg/editors/yui.inc b/sites/all/modules/wysiwyg/editors/yui.inc
new file mode 100644
index 0000000000000000000000000000000000000000..d4bae1bf024ff0c1dc717f85818212f13a5a85f4
--- /dev/null
+++ b/sites/all/modules/wysiwyg/editors/yui.inc
@@ -0,0 +1,297 @@
+<?php
+// $Id: yui.inc,v 1.10 2010/04/02 14:05:36 sun Exp $
+
+/**
+ * @file
+ * Editor integration functions for YUI editor.
+ */
+
+/**
+ * Plugin implementation of hook_editor().
+ */
+function wysiwyg_yui_editor() {
+  $editor['yui'] = array(
+    'title' => 'YUI editor',
+    'vendor url' => 'http://developer.yahoo.com/yui/editor/',
+    'download url' => 'http://developer.yahoo.com/yui/download/',
+    'library path' => wysiwyg_get_path('yui') . '/build',
+    'libraries' => array(
+      'min' => array(
+        'title' => 'Minified',
+        'files' => array(
+          'yahoo-dom-event/yahoo-dom-event.js',
+          'animation/animation-min.js',
+          'element/element-min.js',
+          'container/container-min.js',
+          'menu/menu-min.js',
+          'button/button-min.js',
+          'editor/editor-min.js',
+        ),
+      ),
+      'src' => array(
+        'title' => 'Source',
+        'files' => array(
+          'yahoo-dom-event/yahoo-dom-event.js',
+          'animation/animation.js',
+          'element/element.js',
+          'container/container.js',
+          'menu/menu.js',
+          'button/button.js',
+          'editor/editor.js',
+        ),
+      ),
+    ),
+    'version callback' => 'wysiwyg_yui_version',
+    'themes callback' => 'wysiwyg_yui_themes',
+    'load callback' => 'wysiwyg_yui_load',
+    'settings callback' => 'wysiwyg_yui_settings',
+    'plugin callback' => 'wysiwyg_yui_plugins',
+    'versions' => array(
+      '2.7.0' => array(
+        'js files' => array('yui.js'),
+      ),
+    ),
+  );
+  return $editor;
+}
+
+/**
+ * Detect editor version.
+ *
+ * @param $editor
+ *   An array containing editor properties as returned from hook_editor().
+ *
+ * @return
+ *   The installed editor version.
+ */
+function wysiwyg_yui_version($editor) {
+  $library = $editor['library path'] . '/editor/editor.js';
+  if (!file_exists($library)) {
+    return;
+  }
+  $library = fopen($library, 'r');
+  $max_lines = 10;
+  while ($max_lines && $line = fgets($library, 60)) {
+    if (preg_match('@version:\s([0-9\.]+)@', $line, $version)) {
+      fclose($library);
+      return $version[1];
+    }
+    $max_lines--;
+  }
+  fclose($library);
+}
+
+/**
+ * Determine available editor themes or check/reset a given one.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   An array of theme names. The first returned name should be the default
+ *   theme name.
+ */
+function wysiwyg_yui_themes($editor, $profile) {
+  return array('sam');
+}
+
+/**
+ * Perform additional actions upon loading this editor.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $library
+ *   The internal library name (array key) to use.
+ */
+function wysiwyg_yui_load($editor, $library) {
+  drupal_add_css($editor['library path'] . '/menu/assets/skins/sam/menu.css');
+  drupal_add_css($editor['library path'] . '/button/assets/skins/sam/button.css');
+  drupal_add_css($editor['library path'] . '/fonts/fonts-min.css');
+  drupal_add_css($editor['library path'] . '/container/assets/skins/sam/container.css');
+  drupal_add_css($editor['library path'] . '/editor/assets/skins/sam/editor.css');
+}
+
+/**
+ * Return runtime editor settings for a given wysiwyg profile.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $config
+ *   An array containing wysiwyg editor profile settings.
+ * @param $theme
+ *   The name of a theme/GUI/skin to use.
+ *
+ * @return
+ *   A settings array to be populated in
+ *   Drupal.settings.wysiwyg.configs.{editor}
+ */
+function wysiwyg_yui_settings($editor, $config, $theme) {
+  $settings = array(
+    'theme' => $theme,
+    'animate' => TRUE,
+    'handleSubmit' => TRUE,
+    'markup' => 'xhtml',
+    'ptags' => TRUE,
+  );
+
+  if (isset($config['path_loc']) && $config['path_loc'] != 'none') {
+    $settings['dompath'] = $config['path_loc'];
+  }
+  // Enable auto-height feature when editor should be resizable.
+  if (!empty($config['resizing'])) {
+    $settings['autoHeight'] = TRUE;
+  }
+
+  if (!empty($config['buttons'])) {
+    $settings += array(
+      'toolbar' => array(
+        'collapse' => FALSE,
+        'draggable' => TRUE,
+        'buttonType' => 'advanced',
+      ),
+    );
+    $buttons = array();
+    foreach ($config['buttons'] as $plugin => $enabled_buttons) {
+      foreach ($enabled_buttons as $button => $enabled) {
+        $extra = array();
+        if ($button == 'heading') {
+          $extra = array('menu' => array(
+            array('text' => 'Normal', 'value' => 'none', 'checked' => TRUE),
+          ));
+          if (!empty($config['block_formats'])) {
+            $headings = array(
+              'p' => array('text' => 'Paragraph', 'value' => 'p'),
+              'h1' => array('text' => 'Heading 1', 'value' => 'h1'),
+              'h2' => array('text' => 'Heading 2', 'value' => 'h2'),
+              'h3' => array('text' => 'Heading 3', 'value' => 'h3'),
+              'h4' => array('text' => 'Heading 4', 'value' => 'h4'),
+              'h5' => array('text' => 'Heading 5', 'value' => 'h5'),
+              'h6' => array('text' => 'Heading 6', 'value' => 'h6'),
+            );
+            foreach (explode(',', $config['block_formats']) as $tag) {
+              if (isset($headings[$tag])) {
+                $extra['menu'][] = $headings[$tag];
+              }
+            }
+          }
+        }
+        else if ($button == 'fontname') {
+          $extra = array('menu' => array(
+            array('text' => 'Arial', 'checked' => TRUE),
+            array('text' => 'Arial Black'),
+            array('text' => 'Comic Sans MS'),
+            array('text' => 'Courier New'),
+            array('text' => 'Lucida Console'),
+            array('text' => 'Tahoma'),
+            array('text' => 'Times New Roman'),
+            array('text' => 'Trebuchet MS'),
+            array('text' => 'Verdana'),
+          ));
+        }
+        $buttons[] = wysiwyg_yui_button_setting($editor, $plugin, $button, $extra);
+      }
+    }
+    // Group buttons in a dummy group.
+    $buttons = array('group' => 'default', 'label' => '', 'buttons' => $buttons);
+    $settings['toolbar']['buttons'] = array($buttons);
+  }
+
+  if (isset($config['css_setting'])) {
+    if ($config['css_setting'] == 'theme') {
+      $settings['extracss'] = wysiwyg_get_css();
+    }
+    else if ($config['css_setting'] == 'self' && isset($config['css_path'])) {
+      $settings['extracss'] = strtr($config['css_path'], array('%b' => base_path(), '%t' => path_to_theme()));
+      $settings['extracss'] = explode(',', $settings['extracss']);
+    }
+    // YUI only supports inline CSS, so we need to use @import directives.
+    // Syntax: '@import "/base/path/to/theme/style.css"; '
+    if (!empty($settings['extracss'])) {
+      $settings['extracss'] = '@import "' . implode('"; @import "', $settings['extracss']) . '";';
+    }
+  }
+
+  return $settings;
+}
+
+/**
+ * Create the JavaScript structure for a YUI button.
+ *
+ * @param $editor
+ *   A processed hook_editor() array of editor properties.
+ * @param $plugin
+ *   The internal name of a plugin.
+ * @param $button
+ *   The internal name of a button, defined by $plugin.
+ * @param $extra
+ *   (optional) An array containing arbitrary other elements to add to the
+ *   resulting button.
+ */
+function wysiwyg_yui_button_setting($editor, $plugin, $button, $extra = array()) {
+  static $plugins;
+
+  if (!isset($plugins)) {
+    // @todo Invoke all enabled plugins, not just internals.
+    $plugins = wysiwyg_yui_plugins($editor);
+  }
+
+  // Return a simple separator.
+  if ($button === 'separator') {
+    return array('type' => 'separator');
+  }
+  // Setup defaults.
+  $type = 'push';
+  $label = $plugins[$plugin]['buttons'][$button];
+
+  // Special handling for certain buttons.
+  if (in_array($button, array('heading', 'fontname'))) {
+    $type = 'select';
+    $label = $extra['menu'][0]['text'];
+  }
+  elseif (in_array($button, array('fontsize'))) {
+    $type = 'spin';
+  }
+  elseif (in_array($button, array('forecolor', 'backcolor'))) {
+    $type = 'color';
+  }
+
+  $button = array(
+    'type' => $type,
+    'label' => $label,
+    'value' => $button,
+  );
+  // Add arbitrary other elements, if defined.
+  if (!empty($extra)) {
+    $button = array_merge($button, $extra);
+  }
+  return $button;
+}
+
+/**
+ * Return internal plugins for this editor; semi-implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_yui_plugins($editor) {
+  return array(
+    'default' => array(
+      'buttons' => array(
+        'bold' => t('Bold'), 'italic' => t('Italic'), 'underline' => t('Underline'),
+        'strikethrough' => t('Strike-through'),
+        'justifyleft' => t('Align left'), 'justifycenter' => t('Align center'), 'justifyright' => t('Align right'), 'justifyfull' => t('Justify'),
+        'insertunorderedlist' => t('Bullet list'), 'insertorderedlist' => t('Numbered list'),
+        'outdent' => t('Outdent'), 'indent' => t('Indent'),
+        'undo' => t('Undo'), 'redo' => t('Redo'),
+        'createlink' => t('Link'),
+        'insertimage' => t('Image'),
+        'forecolor' => t('Font Color'), 'backcolor' => t('Background Color'),
+        'superscript' => t('Sup'), 'subscript' => t('Sub'),
+        'hiddenelements' => t('Show/hide hidden elements'),
+        'removeformat' => t('Remove format'),
+        'heading' => t('HTML block format'), 'fontname' => t('Font'), 'fontsize' => t('Font size'),
+      ),
+      'internal' => TRUE,
+    ),
+  );
+}
+
diff --git a/sites/all/modules/wysiwyg/plugins/break.inc b/sites/all/modules/wysiwyg/plugins/break.inc
new file mode 100644
index 0000000000000000000000000000000000000000..4bda6f27debd2bfab392ab6a12ecee8452074ccd
--- /dev/null
+++ b/sites/all/modules/wysiwyg/plugins/break.inc
@@ -0,0 +1,22 @@
+<?php
+// $Id: break.inc,v 1.4 2009/06/09 00:18:12 sun Exp $
+
+/**
+ * @file
+ * Wysiwyg API integration on behalf of Node module.
+ */
+
+/**
+ * Implementation of hook_wysiwyg_plugin().
+ */
+function wysiwyg_break_plugin() {
+  $plugins['break'] = array(
+    'title' => t('Teaser break'),
+    'vendor url' => 'http://drupal.org/project/wysiwyg',
+    'icon file' => 'break.gif',
+    'icon title' => t('Separate the teaser and body of this content'),
+    'settings' => array(),
+  );
+  return $plugins;
+}
+
diff --git a/sites/all/modules/wysiwyg/plugins/break/break.css b/sites/all/modules/wysiwyg/plugins/break/break.css
new file mode 100644
index 0000000000000000000000000000000000000000..afff4dbb08360ee8326789dc2dfcc6c353a0a3ad
--- /dev/null
+++ b/sites/all/modules/wysiwyg/plugins/break/break.css
@@ -0,0 +1,11 @@
+/* $Id: break.css,v 1.2 2008/06/11 04:29:01 sun Exp $ */
+
+.wysiwyg-break {
+  display: block;
+  border: 0;
+  border-top: 1px dotted #ccc;
+  margin-top: 1em;
+  width: 100%;
+  height: 12px;
+  background: transparent url(images/breaktext.gif) no-repeat center top;
+}
diff --git a/sites/all/modules/wysiwyg/plugins/break/break.js b/sites/all/modules/wysiwyg/plugins/break/break.js
new file mode 100644
index 0000000000000000000000000000000000000000..b2eede4684d246ee1f6b0948329d0ddcfc67d9f2
--- /dev/null
+++ b/sites/all/modules/wysiwyg/plugins/break/break.js
@@ -0,0 +1,69 @@
+// $Id: break.js,v 1.8 2010/02/13 23:57:52 sun Exp $
+(function ($) {
+
+// @todo Array syntax required; 'break' is a predefined token in JavaScript.
+Drupal.wysiwyg.plugins['break'] = {
+
+  /**
+   * Return whether the passed node belongs to this plugin.
+   */
+  isNode: function(node) {
+    return ($(node).is('img.wysiwyg-break'));
+  },
+
+  /**
+   * Execute the button.
+   */
+  invoke: function(data, settings, instanceId) {
+    if (data.format == 'html') {
+      // Prevent duplicating a teaser break.
+      if ($(data.node).is('img.wysiwyg-break')) {
+        return;
+      }
+      var content = this._getPlaceholder(settings);
+    }
+    else {
+      // Prevent duplicating a teaser break.
+      // @todo data.content is the selection only; needs access to complete content.
+      if (data.content.match(/<!--break-->/)) {
+        return;
+      }
+      var content = '<!--break-->';
+    }
+    if (typeof content != 'undefined') {
+      Drupal.wysiwyg.instances[instanceId].insert(content);
+    }
+  },
+
+  /**
+   * Replace all <!--break--> tags with images.
+   */
+  attach: function(content, settings, instanceId) {
+    content = content.replace(/<!--break-->/g, this._getPlaceholder(settings));
+    return content;
+  },
+
+  /**
+   * Replace images with <!--break--> tags in content upon detaching editor.
+   */
+  detach: function(content, settings, instanceId) {
+    var $content = $('<div>' + content + '</div>'); // No .outerHTML() in jQuery :(
+    // #404532: document.createComment() required or IE will strip the comment.
+    // #474908: IE 8 breaks when using jQuery methods to replace the elements.
+    // @todo Add a generic implementation for all Drupal plugins for this.
+    $.each($('img.wysiwyg-break', $content), function (i, elem) {
+      elem.parentNode.insertBefore(document.createComment('break'), elem);
+      elem.parentNode.removeChild(elem);
+    });
+    return $content.html();
+  },
+
+  /**
+   * Helper function to return a HTML placeholder.
+   */
+  _getPlaceholder: function (settings) {
+    return '<img src="' + settings.path + '/images/spacer.gif" alt="&lt;--break-&gt;" title="&lt;--break--&gt;" class="wysiwyg-break drupal-content" />';
+  }
+};
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/plugins/break/images/break.gif b/sites/all/modules/wysiwyg/plugins/break/images/break.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4ff564d5896823d5a6d9378781ddfb5e1b1d6f65
Binary files /dev/null and b/sites/all/modules/wysiwyg/plugins/break/images/break.gif differ
diff --git a/sites/all/modules/wysiwyg/plugins/break/images/breaktext.gif b/sites/all/modules/wysiwyg/plugins/break/images/breaktext.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6197873523ebdc28e729864a872497fd709dbcd9
Binary files /dev/null and b/sites/all/modules/wysiwyg/plugins/break/images/breaktext.gif differ
diff --git a/sites/all/modules/wysiwyg/plugins/break/images/spacer.gif b/sites/all/modules/wysiwyg/plugins/break/images/spacer.gif
new file mode 100644
index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a
Binary files /dev/null and b/sites/all/modules/wysiwyg/plugins/break/images/spacer.gif differ
diff --git a/sites/all/modules/wysiwyg/plugins/break/langs/ca.js b/sites/all/modules/wysiwyg/plugins/break/langs/ca.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e1b5ef45020ae7e8115570509a3d3d950b59b23
--- /dev/null
+++ b/sites/all/modules/wysiwyg/plugins/break/langs/ca.js
@@ -0,0 +1,7 @@
+// $Id: ca.js,v 1.1 2008/10/25 13:35:51 sun Exp $
+
+tinyMCE.addToLang('break', {
+  title: 'Inserir marcador de document retallat',
+  desc: 'Generar el punt de separació entre la versió retallada del document i la resta del contingut'
+});
+
diff --git a/sites/all/modules/wysiwyg/plugins/break/langs/de.js b/sites/all/modules/wysiwyg/plugins/break/langs/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..9cba218b596d6b26fbb0f73220248d9ee8b60037
--- /dev/null
+++ b/sites/all/modules/wysiwyg/plugins/break/langs/de.js
@@ -0,0 +1,7 @@
+// $Id: de.js,v 1.1 2008/06/15 17:28:15 sun Exp $
+
+tinyMCE.addToLang('break', {
+  title: 'Anrisstext trennen',
+  desc: 'Separiert den Anrisstext und Textkörper des Inhalts an dieser Stelle'
+});
+
diff --git a/sites/all/modules/wysiwyg/plugins/break/langs/en.js b/sites/all/modules/wysiwyg/plugins/break/langs/en.js
new file mode 100644
index 0000000000000000000000000000000000000000..0817f68ab6e56884c310058ec85caeb53e622593
--- /dev/null
+++ b/sites/all/modules/wysiwyg/plugins/break/langs/en.js
@@ -0,0 +1,7 @@
+// $Id: en.js,v 1.1 2008/06/10 18:20:14 sun Exp $
+
+tinyMCE.addToLang('break', {
+  title: 'Insert teaser break',
+  desc: 'Separate teaser and body of this content'
+});
+
diff --git a/sites/all/modules/wysiwyg/plugins/break/langs/es.js b/sites/all/modules/wysiwyg/plugins/break/langs/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..08b6bfb000e78359af83fc222927316f3656ae3b
--- /dev/null
+++ b/sites/all/modules/wysiwyg/plugins/break/langs/es.js
@@ -0,0 +1,7 @@
+// $Id: es.js,v 1.1 2008/10/25 13:35:51 sun Exp $
+
+tinyMCE.addToLang('break', {
+  title: 'Insertar marcador de documento recortado',
+  desc: 'Generar el punto de separación entre la versión recortada del documento y el resto del contenido'
+});
+
diff --git a/sites/all/modules/wysiwyg/translations/da.po b/sites/all/modules/wysiwyg/translations/da.po
new file mode 100644
index 0000000000000000000000000000000000000000..49838bcab4adec173f0569e6ff39f54dd496b0df
--- /dev/null
+++ b/sites/all/modules/wysiwyg/translations/da.po
@@ -0,0 +1,436 @@
+# Danish translation of Drupal (wysiwyg_editor.module)
+# Copyright 2006 netbjarne <netbjarne@gmail.com>
+# Copyright 2007 Morten Wulff <wulff@ratatosk.net>
+msgid ""
+msgstr ""
+"Project-Id-Version: Danish translation of Drupal (wysiwyg_editor.module) $Id: da.po,v 1.2 2008/05/30 02:19:15 sun Exp $\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2007-12-16 19:47+0100\n"
+"Last-Translator: Morten Wulff <wulff@ratatosk.net>\n"
+"Language-Team: Danish <l10n@drupaldanmark.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+
+#: wysiwyg_editor.module:17
+#: wysiwyg_editor.info:0
+msgid "TinyMCE"
+msgstr "TinyMCE"
+
+#: wysiwyg_editor.module:19
+msgid "Configure the rich editor."
+msgstr "Konfigurer editoren."
+
+#: wysiwyg_editor.module:116
+msgid "enable rich-text"
+msgstr "aktiver avanceret redigering"
+
+#: wysiwyg_editor.module:117
+msgid "disable rich-text"
+msgstr "deaktiver avanceret redigering"
+
+#: wysiwyg_editor.module:169
+msgid "Your current web browser does not support WYSIWYG editing."
+msgstr "Din browser understøtter ikke WYSIWYG redigering."
+
+#: wysiwyg_editor.module:250
+msgid "TinyMCE rich-text settings"
+msgstr "TinyMCE "
+
+#: wysiwyg_editor.module:258
+#: ;701
+msgid "Default state"
+msgstr "Standardtilstand"
+
+#: wysiwyg_editor.module:260
+#: ;703
+msgid "disabled"
+msgstr "deaktiveret"
+
+#: wysiwyg_editor.module:260
+#: ;703
+msgid "enabled"
+msgstr "aktiveret"
+
+#: wysiwyg_editor.module:261
+msgid "Should rich-text editing be enabled or disabled by default in textarea fields?"
+msgstr "Skal avanceret redigering være aktiveret for tekstfelter?"
+
+#: wysiwyg_editor.module:443
+msgid "administer"
+msgstr "administrer"
+
+#: wysiwyg_editor.module:444
+#: ;47;0
+msgid "wysiwyg_editor"
+msgstr "TinyMCE"
+
+#: wysiwyg_editor.module:445
+msgid "Add new TinyMCE profile"
+msgstr "Tilføj TinyMCE profil"
+
+#: wysiwyg_editor.module:451
+msgid "Edit wysiwyg_editor profile"
+msgstr "Rediger TinyMCE profil"
+
+#: wysiwyg_editor.module:457
+msgid "Deleted profile"
+msgstr "Profil slettet"
+
+#: wysiwyg_editor.module:461
+#: ;666
+msgid "Create profile"
+msgstr "Opret Profil"
+
+#: wysiwyg_editor.module:462
+#: ;670
+msgid "Update profile"
+msgstr "Opdater profil"
+
+#: wysiwyg_editor.module:465
+msgid "Your TinyMCE profile has been updated."
+msgstr "TinyMCE profil opdateret."
+
+#: wysiwyg_editor.module:465
+msgid "Your TinyMCE profile has been created."
+msgstr "TinyMCE profil oprettet."
+
+#: wysiwyg_editor.module:474
+msgid "TinyMCE settings"
+msgstr "TinyMCE indstillinger"
+
+#: wysiwyg_editor.module:478
+msgid "Could not find the TinyMCE engine installed at <strong>!wysiwyg_editor-directory</strong>. Please <a href=\"http://wysiwyg_editor.moxiecode.com/\">download TinyMCE</a>, uncompress it and copy the folder into !wysiwyg_editor-path."
+msgstr "Kan ikke finde TinyMCE i kataloget <strong>!wysiwyg_editor-directory</strong>. <a href=\"http://wysiwyg_editor.moxiecode.com/\">Hent TinyMCE</a>, udpak den og kopier kataloget til !wysiwyg_editor-path."
+
+#: wysiwyg_editor.module:658
+msgid "You must <a href=\"!access-control-url\">assign</a> at least one role with the 'access wysiwyg_editor' permission before creating a profile."
+msgstr "Du skal <a href=\"!access-control-url\">give</a> mindst én rolle tilladelsen 'brug TinyMCE' før du kan oprette en profil."
+
+#: wysiwyg_editor.module:661
+msgid "You will not be allowed to create a new profile since all user roles have already been assigned profiles. Either remove an existing wysiwyg_editor profile from at least one role or assign another role the 'access wysiwyg_editor' permission."
+msgstr "Du kan ikke oprette en ny profil, da alle roller allerede har fået tildelt profiler. Fjern en eksisterende TinyMCE profil fra en rolle, eller giv endnu en rolle tilladelsen 'brug TinyMCE'."
+
+#: wysiwyg_editor.module:664
+msgid "Not all user roles are shown since they already have wysiwyg_editor profiles. You must first unassign profiles in order to add them to a new one."
+msgstr "Ikke alle roller vises, da de allerede er tildelt TinyMCE profiler. Fratag en rolles profil, for at tildele en anden rolle profilen."
+
+#: wysiwyg_editor.module:675
+msgid "Basic setup"
+msgstr "Grundlæggende indstillinger"
+
+#: wysiwyg_editor.module:682
+msgid "Profile name"
+msgstr "Profilnavn"
+
+#: wysiwyg_editor.module:686
+msgid "Enter a name for this profile. This name is only visible within the wysiwyg_editor administration page."
+msgstr "Indtast et profilnavn. Navnet er kun synligt på TinyMCE administrationssiden."
+
+#: wysiwyg_editor.module:692
+msgid "Roles allowed to use this profile"
+msgstr "Roller der kan benytte denne profil"
+
+#: wysiwyg_editor.module:695
+msgid "Check at least one role. Only roles with 'access wysiwyg_editor' permission will be shown here."
+msgstr "Vælg mindst én rolle. Kun roller med tilladelsen 'brug TinyMCE' vises her."
+
+#: wysiwyg_editor.module:704
+msgid "Default editor state for users in this profile. Users will be able to override this state if the next option is enabled."
+msgstr "Standard TinyMCE tilstand for brugere med denne profil. Brugere har mulighed for at ændre denne tilstand, hvis næste valgmulighed er slået til."
+
+#: wysiwyg_editor.module:709
+msgid "Allow users to choose default"
+msgstr "Tillad bruger at vælge standardtilstand"
+
+#: wysiwyg_editor.module:711
+#: ;719;743;877;901;909;917
+msgid "false"
+msgstr "falsk"
+
+#: wysiwyg_editor.module:711
+#: ;719;743;877;901;909;917
+msgid "true"
+msgstr "sand"
+
+#: wysiwyg_editor.module:712
+msgid "If allowed, users will be able to choose their own TinyMCE default state by visiting their profile page."
+msgstr "Hvis tilladt, kan brugere selv vælge TinyMCE's standardtilstand på deres profilside."
+
+#: wysiwyg_editor.module:717
+msgid "Show disable/enable rich text editor toggle"
+msgstr "Vis omskifter for avanceret redigering"
+
+#: wysiwyg_editor.module:720
+msgid "Whether or not to show the disable/enable rich text editor toggle below the textarea. If false, editor defaults to the global default or user default (see above)."
+msgstr "Hvorvidt omskifteren for avanceret redigering skal vises under tekstfelter. Hvis slået fra, vil TinyMCE benytte sig af global eller brugervalgt indstilling (se ovenfor)."
+
+#: wysiwyg_editor.module:733
+msgid "Language"
+msgstr "Sprog"
+
+#: wysiwyg_editor.module:736
+msgid "The language for the TinyMCE interface. Language codes based on the <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> format."
+msgstr "Sproget der anvendes i TinyMCE's brugerflade. Sprogkoder er baseret på <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> format."
+
+#: wysiwyg_editor.module:741
+msgid "Safari browser warning"
+msgstr "Safari browser advarsel."
+
+#: wysiwyg_editor.module:744
+msgid "TinyMCE support for the Safari web browser is experimental and a warning message is displayed when that browser is detected. You can disable this message here."
+msgstr "TinyMCE's understøttelse af Safari browseren er eksperimentel, og der vises en advarsel hvis Safari browseren benyttes. Du kan deaktivere denne advarsel her."
+
+#: wysiwyg_editor.module:749
+msgid "Visibility"
+msgstr "Synlighed"
+
+#: wysiwyg_editor.module:769
+msgid "Show on every page except the listed pages."
+msgstr "Vis på alle sider undtaget de angivne."
+
+#: wysiwyg_editor.module:769
+msgid "Show on only the listed pages."
+msgstr "Vis kun på de angivne sider."
+
+#: wysiwyg_editor.module:770
+msgid "Enter one page per line as Drupal paths. The '*' character is a wildcard. Example paths are '!blog' for the blog page and !blog-wildcard for every personal blog. !front is the front page."
+msgstr "Indtast én side pr. linje som Drupal-stier. Brug '*'-tegnet som joker. Indtast f.eks. '!blog' for blogsiden og !blog-wildcard for alle personlige blogs. !front er forsiden."
+
+#: wysiwyg_editor.module:773
+msgid "Show if the following PHP code returns <code>TRUE</code> (PHP-mode, experts only)."
+msgstr "Vis hvis følgende PHP kode returnerer <code>SAND</code> (PHP tilstand, kun for eksperter)."
+
+#: wysiwyg_editor.module:774
+msgid "If the PHP-mode is chosen, enter PHP code between !php. Note that executing incorrect PHP-code can break your Drupal site."
+msgstr "Hvis PHP tilstanden er valgt, kan du indtaste PHP kode mellem !php. Bemærk at ugyldig PHP kode kan få dit Drupal-netsted til at holde op med at virke."
+
+#: wysiwyg_editor.module:778
+msgid "Show wysiwyg_editor on specific pages"
+msgstr "Vis TinyMCE på specifikke sider"
+
+#: wysiwyg_editor.module:784
+msgid "Pages"
+msgstr "Sider"
+
+#: wysiwyg_editor.module:792
+msgid "Buttons and plugins"
+msgstr "Knapper og udvidelsesmoduler"
+
+#: wysiwyg_editor.module:844
+msgid "Editor appearance"
+msgstr "TinyMCE's fremtoning"
+
+#: wysiwyg_editor.module:851
+msgid "Toolbar location"
+msgstr "Værktøjslinjens placering"
+
+#: wysiwyg_editor.module:853
+#: ;869
+msgid "bottom"
+msgstr "bund"
+
+#: wysiwyg_editor.module:853
+#: ;869
+msgid "top"
+msgstr "top"
+
+#: wysiwyg_editor.module:854
+msgid "Show toolbar at the top or bottom of the editor area?"
+msgstr "Vis værktøjslinjen over eller under tekstområdet?"
+
+#: wysiwyg_editor.module:859
+msgid "Toolbar alignment"
+msgstr "Værktøjslinjens justering"
+
+#: wysiwyg_editor.module:861
+msgid "center"
+msgstr "centreret"
+
+#: wysiwyg_editor.module:861
+msgid "left"
+msgstr "venstre"
+
+#: wysiwyg_editor.module:861
+msgid "right"
+msgstr "højre"
+
+#: wysiwyg_editor.module:862
+msgid "Align tool icons left, center, or right within the toolbar."
+msgstr "Placer knapper til venstre, i midten eller til højre i værktøjslinjen."
+
+#: wysiwyg_editor.module:867
+msgid "Path location"
+msgstr "Placering af sti"
+
+#: wysiwyg_editor.module:869
+msgid "none"
+msgstr "ingen"
+
+#: wysiwyg_editor.module:870
+msgid "Path to html elements (i.e. \"body>table>tr>td\"). Show at top, bottom, or not at all."
+msgstr "Sti til HTML elementer (f.eks. \"body>table>tr>td\"). Vis for oven, for neden, eller slet ikke."
+
+#: wysiwyg_editor.module:875
+msgid "Enable resizing button"
+msgstr "Aktiver knap til ændring af størrelse"
+
+#: wysiwyg_editor.module:878
+msgid " This option gives you the ability to enable/disable the resizing button. If enabled the <strong>Path location toolbar</strong> must be set to \"top\" or \"bottom\" in order to display the resize icon."
+msgstr "Mulighed for at aktivere knap til ændring af størrelse. Hvis aktiveret, skal <strong>Placering af sti</strong> være  \"for oven\" eller \"for neden\"."
+
+#: wysiwyg_editor.module:883
+msgid "Block formats"
+msgstr "Blokformater"
+
+#: wysiwyg_editor.module:887
+msgid "Comma separated list of HTML block formats. You can only remove elements, not add."
+msgstr "Komma separeret liste af HTML blokformater. Du kan kun fjerne elementer, ikke tilføje."
+
+#: wysiwyg_editor.module:892
+msgid "Cleanup and output"
+msgstr "Oprydning og uddata"
+
+#: wysiwyg_editor.module:899
+msgid "Verify HTML"
+msgstr "Kontroller HTML"
+
+#: wysiwyg_editor.module:902
+msgid "Should the HTML contents be verified or not? Verifying will strip &lt;head&gt tags, so choose false if you will be editing full page HTML."
+msgstr "Kontrol af HTML fjerner &lt;head&gt mærker, så deaktiver HTML kontrol, hvis du redigerer hele HTML sider."
+
+#: wysiwyg_editor.module:907
+msgid "Preformatted"
+msgstr "Preformatteret"
+
+#: wysiwyg_editor.module:910
+msgid "If this option is set to true, the editor will insert TAB characters on tab and preserve other whitespace characters just like a PRE HTML element does."
+msgstr "Hvis aktiveret, vil TinyMCE indsætte tabulator tegn og bevare andre mellemrum, som PRE HTML element gør det."
+
+#: wysiwyg_editor.module:915
+msgid "Convert &lt;font&gt; tags to styles"
+msgstr "Konverter &lt;font&gt; mærker til typografier"
+
+#: wysiwyg_editor.module:918
+msgid "If you set this option to true, font size, font family, font color and font background color will be replaced by inline styles."
+msgstr "Hvis aktiveret, vil font size, font family, font color og font background color blive erstattet med indlejrede typografier."
+
+#: wysiwyg_editor.module:923
+msgid "Remove linebreaks"
+msgstr "Fjern linjeskift"
+
+#: wysiwyg_editor.module:926
+msgid "Set this option to false to prevent TinyMCE from removing linebreaks from existing nodes.  True avoids conflicts with some filters."
+msgstr "Sæt denne til falsk for at forhindre TinyMCE i at fjerne linjeskift fra eksisterende indholdselementer. Vælges sand undgås konflikt med visse filtre."
+
+#: wysiwyg_editor.module:931
+msgid "Apply source formatting"
+msgstr "Anvend kilde-formattering"
+
+#: wysiwyg_editor.module:934
+msgid "This option makes TinyMCE apply source formatting.  Set this to true for a cleaner HTML source.  Choose false to avoid conflicts with some filters."
+msgstr "Anvend kilde-formatering. Vælg sand for at få renere HTML. Vælg falsk for at undgå konflikt med visse filtre."
+
+#: wysiwyg_editor.module:939
+msgid "CSS"
+msgstr "CSS"
+
+#: wysiwyg_editor.module:946
+msgid "Editor CSS"
+msgstr "TinyMCE CSS"
+
+#: wysiwyg_editor.module:948
+msgid "use theme css"
+msgstr "brug tema CSS"
+
+#: wysiwyg_editor.module:948
+msgid "define css"
+msgstr "definer CSS"
+
+#: wysiwyg_editor.module:948
+msgid "tinyMCE default"
+msgstr "TinyMCE standard"
+
+#: wysiwyg_editor.module:949
+msgid "Defines the CSS to be used in the editor area.<br />use theme css - load style.css from current site theme.<br/>define css - enter path for css file below.<br />tinyMCE default - uses default CSS from editor."
+msgstr "Afgør hvilken CSS der benyttes i TinyMCE.<br />Brug tema CSS - hent style.css fra det nuværende tema.<br/>Definer CSS - indtast stien til css filen herunder.<br />TinyMCE standard - bruger standard CSS fra editoren."
+
+#: wysiwyg_editor.module:954
+msgid "CSS path"
+msgstr "CSS sti"
+
+#: wysiwyg_editor.module:958
+msgid "Enter path to CSS file (<em>example: \"css/editor.css\"</em>) or a list of css files seperated by a comma (<em>example: /themes/garland/style.css,http://domain.com/customMCE.css</em>).<br />Macros: %h (host name: http://www.example.com/), %t (path to theme: theme/yourtheme/)<br />Be sure to select \"define css\" above."
+msgstr "Indtast stien til CSS filen (f.eks. \"css/editor.css\") eller en liste af css filer adskilt af komma (f.eks. \"/themes/garland/style.css,http://domain.com/customMCE.css\").<br />Makroer: %h (værtsnavn: http://www.example.com/), %t (sti til tema: theme/yourtheme/)<br />Husk at vælge \"definer css\" herover."
+
+#: wysiwyg_editor.module:963
+msgid "CSS classes"
+msgstr "CSS klasser"
+
+#: wysiwyg_editor.module:967
+msgid "Adds CSS classes to the \"styles\" droplist. Format is: &lt;title&gt;=&lt;class&gt;;<br/> Example: Header 1=header1;Header 2=header2;Header 3=header3 (note: no trailing ';')<br />Leave blank to automatically import list of CSS classes from style sheet."
+msgstr "Tilføj CSS klasser til \"typografi\" rullelisten. Formatet er: &lt;navn&gt;=&lt;klasse&gt;;<br/>F.eks. Overskrift 1=overskrift1;Overskrift 2=overskrift2;Overskrift 3=overskrift3 (bemærk: intet afsluttende ';')<br />Lad feltet være tomt for automatisk at importerer CSS klasserne fra stilarket."
+
+#: wysiwyg_editor.module:1049
+msgid "Profile"
+msgstr "Profil"
+
+#: wysiwyg_editor.module:1049
+msgid "Roles"
+msgstr "Roller"
+
+#: wysiwyg_editor.module:1049
+msgid "Operations"
+msgstr "Handlinger"
+
+#: wysiwyg_editor.module:1051
+msgid "edit"
+msgstr "rediger"
+
+#: wysiwyg_editor.module:1051
+msgid "delete"
+msgstr "slet"
+
+#: wysiwyg_editor.module:1054
+msgid "<p><a href=\"!create-profile-url\">Create new profile</a></p>"
+msgstr "<p><a href=\"!create-profile-url\">Opret profil</a></p>"
+
+#: wysiwyg_editor.module:1057
+msgid "No profiles found. Click here to <a href=\"!create-profile-url\">create a new profile</a>."
+msgstr "Ingen profiler fundet. <a href=\"!create-profile-url\">Opret profil</a>."
+
+#: wysiwyg_editor.module:1088
+msgid "You must give a profile name."
+msgstr "Du skal angive et profilnavn."
+
+#: wysiwyg_editor.module:1092
+msgid "You must select at least one role."
+msgstr "Du skal vælge mindst én rolle."
+
+#: wysiwyg_editor.module:46
+msgid "administer wysiwyg_editor"
+msgstr "administrer TinyMCE"
+
+#: wysiwyg_editor.module:46
+msgid "access wysiwyg_editor"
+msgstr "tilgå TinyMCE"
+
+#: wysiwyg_editor.module:47
+msgid "module"
+msgstr "modul"
+
+#: wysiwyg_editor.module:49
+msgid "/wysiwyg_editor/jscripts/tiny_mce/plugins/imagemanager/"
+msgstr "/wysiwyg_editor/jscripts/tiny_mce/plugins/imagemanager/"
+
+#: wysiwyg_editor.module:50
+msgid "access wysiwyg_editor imagemanager"
+msgstr "tilgå wysiwyg_editor billedhåndtering"
+
+#: wysiwyg_editor.info:0
+msgid "The most popular WYSIWYG editor for advanced content editing."
+msgstr "Den mest populære WYSIWYG-editor til avanceret redigering af indhold."
+
diff --git a/sites/all/modules/wysiwyg/translations/de.po b/sites/all/modules/wysiwyg/translations/de.po
new file mode 100644
index 0000000000000000000000000000000000000000..478c100f1c8baf0728fc1c8df0b8990400beb84b
--- /dev/null
+++ b/sites/all/modules/wysiwyg/translations/de.po
@@ -0,0 +1,938 @@
+# $Id: de.po,v 1.8 2009/06/17 21:22:23 hass Exp $
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL@ADDRESS>
+# Generated from file: wysiwyg_editor.module,v 1.90.4.23 2007/05/06 01:41:35 m3avrck
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: German translation of WYSIWYG editor\n"
+"POT-Creation-Date: 2009-06-17 21:00+0200\n"
+"PO-Revision-Date: 2009-06-17 23:21+0100\n"
+"Last-Translator: Alexander Haß\n"
+"Language-Team: Alexander Hass\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-Country: GERMANY\n"
+
+#: wysiwyg.api.php:51;52
+msgid "My plugin title"
+msgstr "Mein Plugin-Titel"
+
+#: wysiwyg.api.php:61
+msgid "Button title (optional)"
+msgstr "Schaltknopftitel (optional)"
+
+#: wysiwyg.admin.inc:51
+msgid "%editor profile for %format"
+msgstr "%editor-Profil für %format"
+
+#: wysiwyg.admin.inc:60
+msgid "Basic setup"
+msgstr "Basis-Setup"
+
+#: wysiwyg.admin.inc:67
+msgid "Enabled by default"
+msgstr "Standardmäßig aktiviert"
+
+#: wysiwyg.admin.inc:70
+msgid "The default editor state for users having access to this profile. Users are able to override this state if the next option is enabled."
+msgstr "Der standardmäßige Status des Editors für Benutzer mit Zugriff auf dieses Profil. Benutzer können diese Einstellung übersteuern, wenn die nachfolgende Option aktiviert ist."
+
+#: wysiwyg.admin.inc:75
+msgid "Allow users to choose default"
+msgstr "Benutzer können Standardeinstellung auswählen"
+
+#: wysiwyg.admin.inc:78
+msgid "If allowed, users will be able to choose their own editor default state in their user account settings."
+msgstr "Sobald aktiviert, können Benutzer auf ihrer Profilseite ihren eigenen standardmäßigen Status des Editors auswählen."
+
+#: wysiwyg.admin.inc:83
+msgid "Show <em>enable/disable rich text</em> toggle link"
+msgstr "<em>Ein-/Auschalter</em> für Rich-Text anzeigen"
+
+#: wysiwyg.admin.inc:86
+msgid "Whether or not to show the <em>enable/disable rich text</em> toggle link below a textarea. If disabled, the user setting or global default is used (see above)."
+msgstr "Ob der <em>Rich-Text aktivieren/deaktivieren</em>-Link unterhalb eines Textfeldes angezeigt werden soll oder nicht. Sollte diese Einstellung deaktiviert sein, werden die Benutzereinstellungen oder globalen Standardwerte verwendet (siehe oberhalb)."
+
+#: wysiwyg.admin.inc:96
+msgid "Language"
+msgstr "Sprache"
+
+#: wysiwyg.admin.inc:99
+msgid "The language to use for the editor interface. Language codes are based on the <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> format."
+msgstr "Die für die Eingabeoberfläche der Editors zu verwendende Sprache. Die Sprachcodes basieren auf dem <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a>-Format."
+
+#: wysiwyg.admin.inc:104
+msgid "Buttons and plugins"
+msgstr "Schaltflächen und Plugins"
+
+#: wysiwyg.admin.inc:149
+msgid "Editor appearance"
+msgstr "Erscheinungsbild des Editors"
+
+#: wysiwyg.admin.inc:156
+msgid "Toolbar location"
+msgstr "Position der Werkzeugleiste"
+
+#: wysiwyg.admin.inc:158;174
+msgid "Bottom"
+msgstr "Unten"
+
+#: wysiwyg.admin.inc:158;174
+msgid "Top"
+msgstr "Oben"
+
+#: wysiwyg.admin.inc:159
+msgid "This option controls whether the editor toolbar is displayed above or below the editing area."
+msgstr "Diese Option kontrolliert, ob die Editor-Werkzeugleiste über oder unter dem Bearbeitungsfeld angezeigt wird."
+
+#: wysiwyg.admin.inc:164
+msgid "Button alignment"
+msgstr "Ausrichtung der Schaltknöpfe"
+
+# context senstive issues
+#: wysiwyg.admin.inc:166
+#, fuzzy
+msgid "Center"
+msgstr "Mitte"
+
+#: wysiwyg.admin.inc:166
+msgid "Left"
+msgstr "Links"
+
+#: wysiwyg.admin.inc:166
+msgid "Right"
+msgstr "Rechts"
+
+#: wysiwyg.admin.inc:167
+msgid "This option controls the alignment of icons in the editor toolbar."
+msgstr "Diese Option kontrolliert die Anordnung der Symbole in der Editor-Werkzeugleiste."
+
+#: wysiwyg.admin.inc:172
+msgid "Path location"
+msgstr "Position der Pfad-Leiste"
+
+#: wysiwyg.admin.inc:174
+msgid "Hide"
+msgstr "Ausblenden"
+
+#: wysiwyg.admin.inc:175
+msgid "Where to display the path to HTML elements (i.e. <code>body > table > tr > td</code>)."
+msgstr "Wo der Pfad zu den HTML-Elementen angezeigt werden soll (d.h. <code>body > table > tr > td</code>)."
+
+#: wysiwyg.admin.inc:180
+msgid "Enable resizing button"
+msgstr "Schaltfläche zur Größenanpassung aktivieren"
+
+# "Path location toolbar" not literally
+#: wysiwyg.admin.inc:183
+msgid "This option gives you the ability to enable/disable the resizing button. If enabled, the Path location toolbar must be set to \"Top\" or \"Bottom\" in order to display the resize icon."
+msgstr "Diese Option ermöglicht die Schaltfläche zur Größenanpassung zu aktivieren/deaktivieren. Sobald aktiviert, muss die Pfad-Leiste auf „Oben“ oder „Unten“ eingestellt werden, damit das Symbol zur Größenanpassung angezeigt wird."
+
+#: wysiwyg.admin.inc:188
+msgid "Cleanup and output"
+msgstr "Bereinigung und Ausgabe"
+
+#: wysiwyg.admin.inc:195
+msgid "Verify HTML"
+msgstr "HTML prüfen"
+
+#: wysiwyg.admin.inc:198
+msgid "If enabled, potentially malicious code like <code>&lt;HEAD&gt;</code> tags will be removed from HTML contents."
+msgstr "Sobald aktiviert, wird potentiell bösartiger Code wie <code>&lt;HEAD&gt;</code>-Tags aus den HTML-Inhalten entfernt."
+
+#: wysiwyg.admin.inc:203
+msgid "Preformatted"
+msgstr "Vorformattiert"
+
+#: wysiwyg.admin.inc:206
+msgid "If enabled, the editor will insert TAB characters on tab and preserve other whitespace characters just like a PRE element in HTML does."
+msgstr "Sobald aktiviert, wird der Editor für Tabulatoren ein „TAB“-Zeichen einfügen und andere Leerzeichen beibehalten, wie dies mit einem „PRE“-HTML-Element der Fall wäre."
+
+#: wysiwyg.admin.inc:211
+msgid "Convert &lt;font&gt; tags to styles"
+msgstr "&lt;font&gt;-Tags zu Styles konvertieren"
+
+#: wysiwyg.admin.inc:214
+msgid "If enabled, HTML tags declaring the font size, font family, font color and font background color will be replaced by inline CSS styles."
+msgstr "Sobald aktiviert, werden HTML-Tags mit Schriftgröße, Schriftfamilie, Schriftfarbe und Schrifthintergrundfarbe durch Inline-Styles ersetzt."
+
+#: wysiwyg.admin.inc:219
+msgid "Remove linebreaks"
+msgstr "Zeilenumbrüche entfernen"
+
+#: wysiwyg.admin.inc:222
+msgid "If enabled, the editor will remove most linebreaks from contents. Disabling this option could avoid conflicts with other input filters."
+msgstr "Sobald aktiviert, wird der Editor die meisten Zeilenumbrüche aus dem Inhalt entfernen. Die Deaktivierung dieser Option kann Konflikte mit anderen Eingabefiltern verhindern."
+
+#: wysiwyg.admin.inc:227
+msgid "Apply source formatting"
+msgstr "Quellcodeformatierung anwenden"
+
+#: wysiwyg.admin.inc:230
+msgid "If enabled, the editor will re-format the HTML source code. Disabling this option could avoid conflicts with other input filters."
+msgstr "Sobald aktiviert, wird der Editor den HTML-Quelltext neu formatieren. Die Deaktivierung dieser Option kann Konflikte mit anderen Eingabefiltern verhindern."
+
+#: wysiwyg.admin.inc:235
+msgid "Force cleanup on standard paste"
+msgstr "Bereinigung beim standardmäßigen Einfügen erzwingen"
+
+#: wysiwyg.admin.inc:238
+msgid "If enabled, the default paste function (CTRL-V or SHIFT-INS) behaves like the \"paste from word\" plugin function."
+msgstr "Sobald aktiviert, verhält sich die standardmäßige Einfügen-Funktion (STRG+V oder STRG-Einf) wie die „aus MS-Word einfügen“-Funktion."
+
+#: wysiwyg.admin.inc:243
+msgid "CSS"
+msgstr "CSS"
+
+#: wysiwyg.admin.inc:250
+msgid "Block formats"
+msgstr "Blockformate"
+
+#: wysiwyg.admin.inc:254
+msgid "Comma separated list of HTML block formats. Possible values: <code>@format-list</code>."
+msgstr "Eine kommagetrennte Liste von HTML-Blockformaten. Mögliche Werte: <code>@format-list</code>."
+
+#: wysiwyg.admin.inc:259
+msgid "Editor CSS"
+msgstr "Editor-CSS"
+
+#: wysiwyg.admin.inc:261
+msgid "Use theme CSS"
+msgstr "CSS-Anweisungen des Themes verwenden"
+
+#: wysiwyg.admin.inc:261
+msgid "Define CSS"
+msgstr "CSS festlegen"
+
+#: wysiwyg.admin.inc:261
+msgid "Editor default CSS"
+msgstr "Standardmäßiges Editor-CSS"
+
+#: wysiwyg.admin.inc:262
+msgid "Defines the CSS to be used in the editor area.<br />Use theme CSS - loads stylesheets from current site theme.<br/>Define CSS - enter path for stylesheet files below.<br />Editor default CSS - uses default stylesheets from editor."
+msgstr "Legt das im Textfeld des Editors zu verwendende CSS fest.<br />CSS des Themes verwenden - läd Stylesheets aus dem aktuellen Website-Theme.<br/>CSS festlegen - Nachfolgend einen Pfad zu den Stylesheet-Dateien eingeben.<br />Standardmäßiges CSS des Editors - verwendet das standardmäßige CSS des Editors."
+
+#: wysiwyg.admin.inc:267
+msgid "CSS path"
+msgstr "CSS-Verzeichnis"
+
+#: wysiwyg.admin.inc:271
+msgid "If \"Define CSS\" was selected above, enter path to a CSS file or a list of CSS files separated by a comma."
+msgstr ""
+
+#: wysiwyg.admin.inc:271
+msgid "Available tokens: <code>%b</code> (base path, eg: <code>/</code>), <code>%t</code> (path to theme, eg: <code>themes/garland</code>)"
+msgstr "Verfügbare Platzhalter: <code>%b</code> (Basispfad, z.B.: <code>/</code>), <code>%t</code> (Pfad zum Theme, z.B.: <code>themes/garland</code>)"
+
+#: wysiwyg.admin.inc:271
+msgid "Example:"
+msgstr "Beispiel:"
+
+#: wysiwyg.admin.inc:276
+msgid "CSS classes"
+msgstr "CSS-Klassen"
+
+#: wysiwyg.admin.inc:278
+msgid "Optionally define CSS classes for the \"Font style\" dropdown list.<br />Enter one class on each line in the format: !format. Example: !example<br />If left blank, CSS classes are automatically imported from all loaded stylesheet(s)."
+msgstr ""
+
+#: wysiwyg.admin.inc:283;438
+msgid "Save"
+msgstr "Speichern"
+
+#: wysiwyg.admin.inc:317
+msgid "Wysiwyg profile for %format has been saved."
+msgstr "Das Wysiwyg-Profil für %format wurde gespeichert."
+
+#: wysiwyg.admin.inc:366
+msgid "No editor"
+msgstr "Kein Editor"
+
+#: wysiwyg.admin.inc:371
+msgid "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Download</a>)"
+msgstr "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Herunterladen</a>)"
+
+#: wysiwyg.admin.inc:372
+msgid "Not installed."
+msgstr "Nicht installiert."
+
+#: wysiwyg.admin.inc:386
+msgid "Extract the archive and copy its contents into a new folder in the following location:<br /><code>@editor-path</code>"
+msgstr "Das Archiv extrahieren und dessen Inhalt in ein neues Verzeichnis an der folgenden Stelle kopieren:<br /><code>@editor-path</code>"
+
+# not literally
+#: wysiwyg.admin.inc:387
+msgid "So the actual library can be found at:<br /><code>@library-filepath</code>"
+msgstr "Damit lässt sich die aktuelle Bibliothek hier finden:<br /><code>@library-filepath</code>"
+
+#: wysiwyg.admin.inc:402
+msgid "Installation instructions"
+msgstr "Installationsanweisungen"
+
+#: wysiwyg.admin.inc:405
+msgid "There are no editor libraries installed currently. The following list contains a list of currently supported editors:"
+msgstr "Derzeit sind keine Editor-Bibliotheken installiert. Die folgende Liste enthält eine Liste der derzeit unterstützten Editoren:"
+
+#: wysiwyg.admin.inc:430
+#: wysiwyg.module:26
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: wysiwyg.admin.inc:433;489
+#: wysiwyg.module:36
+msgid "Remove"
+msgstr "Entfernen"
+
+#: wysiwyg.admin.inc:450
+msgid "Input format"
+msgstr "Eingabeformat"
+
+#: wysiwyg.admin.inc:450
+msgid "Editor"
+msgstr "Editor"
+
+#: wysiwyg.admin.inc:450
+msgid "Operations"
+msgstr "Operationen"
+
+#: wysiwyg.admin.inc:487
+msgid "Are you sure you want to remove the profile for %name?"
+msgstr "Soll das Profil für %name wirklich gelöscht werden?"
+
+#: wysiwyg.admin.inc:489
+msgid "This action cannot be undone."
+msgstr "Diese Aktion kann nicht rückgängig gemacht werden."
+
+#: wysiwyg.admin.inc:489
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: wysiwyg.admin.inc:501
+msgid "Wysiwyg profile for %name has been deleted."
+msgstr "Das Wysiwyg-Profil für %name wurde gelöscht."
+
+#: wysiwyg.module:80
+msgid "A Wysiwyg profile can be associated to an input format. A Wysiwyg profile defines which client-side editor is loaded, what buttons or themes are enabled for the editor, how the editor is displayed, and a few other editor-specific functions."
+msgstr ""
+
+#: wysiwyg.module:306
+msgid "Disable rich-text"
+msgstr "Rich-Text deaktivieren"
+
+#: wysiwyg.module:307
+msgid "Enable rich-text"
+msgstr "Rich-Text aktivieren"
+
+#: wysiwyg.module:608
+msgid "Wysiwyg Editor settings"
+msgstr "Einstellungen für Wysiwyg-Editor"
+
+#: wysiwyg.module:615
+msgid "Enable editor by default"
+msgstr "Editor standardmäßig aktivieren"
+
+#: wysiwyg.module:618
+msgid "If enabled, rich-text editing is enabled by default in textarea fields."
+msgstr "Sobald aktiviert, wird die Rich-Text-Bearbeitung in Textfeldern standardmässig aktiviert."
+
+#: wysiwyg.module:702
+msgid "The version of %editor could not be detected."
+msgstr "Die Version von %editor konnte nicht erkannt werden."
+
+#: wysiwyg.module:715
+msgid "The installed version %version of %editor is not supported."
+msgstr "Die installierte Version %version von %editor ist nicht unterstützt."
+
+#: wysiwyg.module:14
+#: wysiwyg.info:0
+msgid "Wysiwyg"
+msgstr "Wysiwyg"
+
+#: wysiwyg.module:17
+msgid "Configure client-side editors."
+msgstr "Client-seitige Editor-Profile konfigurieren."
+
+#: wysiwyg.module:22
+msgid "Profiles"
+msgstr "Profile"
+
+#: wysiwyg.module:0
+msgid "wysiwyg"
+msgstr "wysiwyg"
+
+#: wysiwyg.install:10
+msgid "Stores Wysiwyg profiles."
+msgstr ""
+
+#: wysiwyg.info:0
+msgid "Allows users to edit contents with client-side editors."
+msgstr "Ermöglicht Benutzern die Bearbeitung von Inhalten mit clientseitigen Editoren."
+
+#: wysiwyg.info:0
+msgid "User interface"
+msgstr "Benutzeroberfläche"
+
+#: editors/fckeditor.inc:217
+#: editors/markitup.inc:105;170
+#: editors/nicedit.inc:103
+#: editors/openwysiwyg.inc:140
+#: editors/tinymce.inc:377
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:276
+msgid "Bold"
+msgstr "Fett"
+
+#: editors/fckeditor.inc:217
+#: editors/markitup.inc:112;170
+#: editors/nicedit.inc:103
+#: editors/openwysiwyg.inc:140
+#: editors/tinymce.inc:377
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:276
+msgid "Italic"
+msgstr "Kursiv"
+
+#: editors/fckeditor.inc:217
+#: editors/nicedit.inc:103
+#: editors/openwysiwyg.inc:140
+#: editors/tinymce.inc:377
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:276
+msgid "Underline"
+msgstr "Unterstrichen"
+
+#: editors/fckeditor.inc:218
+#: editors/markitup.inc:119;171
+#: editors/nicedit.inc:104
+#: editors/openwysiwyg.inc:141
+#: editors/tinymce.inc:378
+#: editors/yui.inc:277
+msgid "Strike-through"
+msgstr "Durchgestrichen"
+
+#: editors/fckeditor.inc:219
+#: editors/nicedit.inc:105
+#: editors/openwysiwyg.inc:142
+#: editors/tinymce.inc:379
+#: editors/whizzywig.inc:114
+#: editors/yui.inc:278
+msgid "Align left"
+msgstr "Linksbündig"
+
+#: editors/fckeditor.inc:219
+#: editors/nicedit.inc:105
+#: editors/openwysiwyg.inc:142
+#: editors/tinymce.inc:379
+#: editors/whizzywig.inc:114
+#: editors/yui.inc:278
+msgid "Align center"
+msgstr "Zentriert"
+
+#: editors/fckeditor.inc:219
+#: editors/nicedit.inc:105
+#: editors/openwysiwyg.inc:142
+#: editors/tinymce.inc:379
+#: editors/whizzywig.inc:114
+#: editors/yui.inc:278
+msgid "Align right"
+msgstr "Rechtsbündig"
+
+#: editors/fckeditor.inc:219
+#: editors/openwysiwyg.inc:142
+#: editors/tinymce.inc:379
+#: editors/yui.inc:278
+msgid "Justify"
+msgstr "Blocksatz"
+
+#: editors/fckeditor.inc:220
+#: editors/nicedit.inc:106
+#: editors/openwysiwyg.inc:143
+#: editors/tinymce.inc:380
+#: editors/whizzywig.inc:115
+#: editors/yui.inc:279
+msgid "Bullet list"
+msgstr "Aufzählungszeichen"
+
+#: editors/fckeditor.inc:220
+#: editors/nicedit.inc:106
+#: editors/openwysiwyg.inc:143
+#: editors/tinymce.inc:380
+#: editors/whizzywig.inc:115
+#: editors/yui.inc:279
+msgid "Numbered list"
+msgstr "Nummerierte Liste"
+
+#: editors/fckeditor.inc:221
+#: editors/nicedit.inc:107
+#: editors/openwysiwyg.inc:144
+#: editors/tinymce.inc:381
+#: editors/whizzywig.inc:116
+#: editors/yui.inc:280
+msgid "Outdent"
+msgstr "Einzug verkleinern"
+
+#: editors/fckeditor.inc:221
+#: editors/nicedit.inc:107
+#: editors/openwysiwyg.inc:144
+#: editors/tinymce.inc:381
+#: editors/whizzywig.inc:116
+#: editors/yui.inc:280
+msgid "Indent"
+msgstr "Einzug vergrößern"
+
+#: editors/fckeditor.inc:222
+#: editors/openwysiwyg.inc:145
+#: editors/tinymce.inc:382
+#: editors/whizzywig.inc:117
+#: editors/yui.inc:281
+msgid "Undo"
+msgstr "Rückgängig"
+
+#: editors/fckeditor.inc:222
+#: editors/openwysiwyg.inc:145
+#: editors/tinymce.inc:382
+#: editors/whizzywig.inc:117
+#: editors/yui.inc:281
+msgid "Redo"
+msgstr "Wiederholen"
+
+# not literally and not context senstive issue, should be "Link einfügen/bearbeiten"
+#: editors/fckeditor.inc:223
+#: editors/markitup.inc:132;173
+#: editors/nicedit.inc:114
+#: editors/openwysiwyg.inc:146
+#: editors/tinymce.inc:383
+#: editors/whizzywig.inc:121
+#: editors/yui.inc:282
+#, fuzzy
+msgid "Link"
+msgstr "Link"
+
+#: editors/fckeditor.inc:223
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:383
+msgid "Unlink"
+msgstr "Link entfernen"
+
+#: editors/fckeditor.inc:223
+#: editors/tinymce.inc:383
+msgid "Anchor"
+msgstr "Anker"
+
+#: editors/fckeditor.inc:224
+#: editors/markitup.inc:126;172
+#: editors/nicedit.inc:108
+#: editors/openwysiwyg.inc:147
+#: editors/tinymce.inc:384
+#: editors/whizzywig.inc:118;122
+#: editors/yui.inc:283
+msgid "Image"
+msgstr "Bild"
+
+#: editors/fckeditor.inc:225
+#: editors/nicedit.inc:109
+#: editors/openwysiwyg.inc:149
+#: editors/tinymce.inc:386
+#: editors/whizzywig.inc:119
+msgid "Forecolor"
+msgstr "Vordergrundfarbe"
+
+#: editors/fckeditor.inc:225
+#: editors/nicedit.inc:109
+#: editors/openwysiwyg.inc:149
+#: editors/tinymce.inc:386
+#: editors/whizzywig.inc:119
+msgid "Backcolor"
+msgstr "Hintergrundfarbe"
+
+#: editors/fckeditor.inc:226
+msgid "Superscript"
+msgstr "Hochgestellt"
+
+#: editors/fckeditor.inc:226
+msgid "Subscript"
+msgstr "Tiefgestellt"
+
+#: editors/fckeditor.inc:227
+#: editors/openwysiwyg.inc:151
+#: editors/tinymce.inc:388
+msgid "Blockquote"
+msgstr "Zitatblock"
+
+#: editors/fckeditor.inc:227
+#: editors/nicedit.inc:116
+#: editors/openwysiwyg.inc:151
+#: editors/tinymce.inc:388
+#: editors/whizzywig.inc:125
+msgid "Source code"
+msgstr "Quellcode"
+
+#: editors/fckeditor.inc:228
+#: editors/nicedit.inc:111
+#: editors/openwysiwyg.inc:152
+#: editors/tinymce.inc:389
+#: editors/whizzywig.inc:120
+msgid "Horizontal rule"
+msgstr "Horizontale Linie"
+
+#: editors/fckeditor.inc:229
+#: editors/openwysiwyg.inc:153
+#: editors/tinymce.inc:390
+msgid "Cut"
+msgstr "Ausschneiden"
+
+#: editors/fckeditor.inc:229
+#: editors/openwysiwyg.inc:153
+#: editors/tinymce.inc:390
+msgid "Copy"
+msgstr "Kopieren"
+
+#: editors/fckeditor.inc:229
+#: editors/openwysiwyg.inc:153
+#: editors/tinymce.inc:390
+msgid "Paste"
+msgstr "Einfügen"
+
+#: editors/fckeditor.inc:230
+msgid "Paste Text"
+msgstr "Text einfügen"
+
+#: editors/fckeditor.inc:230
+#: editors/tinymce.inc:494
+msgid "Paste from Word"
+msgstr "Aus MS-Word einfügen"
+
+#: editors/fckeditor.inc:231
+msgid "Show blocks"
+msgstr "Blöcke anzeigen"
+
+#: editors/fckeditor.inc:232
+#: editors/openwysiwyg.inc:155
+#: editors/tinymce.inc:392
+#: editors/yui.inc:287
+msgid "Remove format"
+msgstr "Formatierungen entfernen"
+
+#: editors/fckeditor.inc:233
+#: editors/openwysiwyg.inc:156
+#: editors/tinymce.inc:393
+msgid "Character map"
+msgstr "Sonderzeichen"
+
+#: editors/fckeditor.inc:234
+msgid "About"
+msgstr "Über"
+
+#: editors/fckeditor.inc:235
+#: editors/nicedit.inc:115
+#: editors/openwysiwyg.inc:157
+#: editors/tinymce.inc:452
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:288
+msgid "HTML block format"
+msgstr "HTML-Blockformat"
+
+#: editors/fckeditor.inc:235
+#: editors/nicedit.inc:115
+#: editors/openwysiwyg.inc:157
+#: editors/tinymce.inc:452
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:288
+msgid "Font"
+msgstr "Schriftart"
+
+#: editors/fckeditor.inc:235
+#: editors/nicedit.inc:115
+#: editors/openwysiwyg.inc:157
+#: editors/tinymce.inc:452
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:288
+msgid "Font size"
+msgstr "Schriftgröße"
+
+# ???
+#: editors/fckeditor.inc:235
+#: editors/tinymce.inc:452
+#, fuzzy
+msgid "Font style"
+msgstr "Formatstil"
+
+#: editors/fckeditor.inc:236
+#: editors/openwysiwyg.inc:161
+#: editors/tinymce.inc:529
+#: editors/whizzywig.inc:123
+msgid "Table"
+msgstr "Tabelle"
+
+#: editors/fckeditor.inc:237
+#: editors/tinymce.inc:515
+msgid "Search"
+msgstr "Suchen"
+
+#: editors/fckeditor.inc:237
+#: editors/tinymce.inc:515
+msgid "Replace"
+msgstr "Ersetzen"
+
+#: editors/fckeditor.inc:237
+#: editors/tinymce.inc:494
+msgid "Select all"
+msgstr "Alles markieren"
+
+#: editors/fckeditor.inc:238
+msgid "Create DIV container"
+msgstr "DIV-Block erstellen"
+
+#: editors/fckeditor.inc:239
+#: editors/tinymce.inc:538
+msgid "Flash"
+msgstr "Flash"
+
+#: editors/fckeditor.inc:239
+msgid "Smiley"
+msgstr "Smiley"
+
+#: editors/fckeditor.inc:240
+#, fuzzy
+msgid "FitWindow"
+msgstr "Fenster anpassen"
+
+#: editors/fckeditor.inc:241
+msgid "Check spelling"
+msgstr "Rechtschreibung überprüfen"
+
+#: editors/fckeditor.inc:248
+#, fuzzy
+msgid "Autogrow"
+msgstr "Automatische Größenanpassung"
+
+#: editors/fckeditor.inc:259
+#: editors/tinymce.inc:564
+msgid "BBCode"
+msgstr "BBCode"
+
+#: editors/fckeditor.inc:267
+#, fuzzy
+msgid "Table drag/resize"
+msgstr "Tabelle verschieben/skalieren"
+
+#: editors/fckeditor.inc:275
+msgid "Table: Cell properties"
+msgstr "Tabelle: Zellen-Eigenschaften"
+
+#: editors/fckeditor.inc:276
+msgid "Table: Insert row after"
+msgstr "Tabelle: Zeile unterhalb einfügen"
+
+#: editors/fckeditor.inc:277
+msgid "Table: Insert column after"
+msgstr "Tabelle: Spalte rechts danach einfügen"
+
+#: editors/fckeditor.inc:278
+msgid "Table: Insert cell after"
+msgstr "Tabelle: Zelle danach einfügen"
+
+#: editors/fckeditor.inc:279
+msgid "Table: Delete rows"
+msgstr "Tabelle: Zeilen entfernen"
+
+#: editors/fckeditor.inc:280
+msgid "Table: Delete columns"
+msgstr "Tabelle: Spalten löschen"
+
+#: editors/fckeditor.inc:281
+msgid "Table: Delete cells"
+msgstr "Tabelle: Zellen löschen"
+
+#: editors/fckeditor.inc:282
+msgid "Table: Merge cells"
+msgstr "Tabelle: Zellen verbinden"
+
+#: editors/fckeditor.inc:283
+msgid "Table: Horizontal split cell"
+msgstr "Tabelle: Zelle horizontal teilen"
+
+#: editors/markitup.inc:142;175
+#: editors/openwysiwyg.inc:159
+#: editors/tinymce.inc:501
+msgid "Preview"
+msgstr "Vorschau"
+
+#: editors/nicedit.inc:110
+#: editors/openwysiwyg.inc:150
+#: editors/tinymce.inc:387
+#: editors/yui.inc:285
+#, fuzzy
+msgid "Sup"
+msgstr "Hochgestellt"
+
+#: editors/nicedit.inc:110
+#: editors/openwysiwyg.inc:150
+#: editors/tinymce.inc:387
+#: editors/yui.inc:285
+#, fuzzy
+msgid "Sub"
+msgstr "Tiefgestellt"
+
+#: editors/openwysiwyg.inc:148
+#: editors/tinymce.inc:385
+#: editors/whizzywig.inc:124
+msgid "Clean-up"
+msgstr "Bereinigen"
+
+#: editors/openwysiwyg.inc:154
+#: editors/tinymce.inc:391
+msgid "Visual aid"
+msgstr "Optische Hilfe"
+
+#: editors/openwysiwyg.inc:158
+#: editors/tinymce.inc:459
+msgid "Fullscreen"
+msgstr "Vollbild"
+
+#: editors/openwysiwyg.inc:160
+#: editors/tinymce.inc:508
+msgid "Print"
+msgstr "Drucken"
+
+#: editors/openwysiwyg.inc:162
+#: editors/tinymce.inc:394
+msgid "Help"
+msgstr "Hilfe"
+
+#: editors/tinymce.inc:400
+msgid "Advanced horizontal rule"
+msgstr "Erweiterte horizontale Linie"
+
+#: editors/tinymce.inc:408
+#, fuzzy
+msgid "Advanced image"
+msgstr "Erweitertes Bild"
+
+#: editors/tinymce.inc:416
+#, fuzzy
+msgid "Advanced link"
+msgstr "Erweiterter Link"
+
+#: editors/tinymce.inc:424
+msgid "Auto save"
+msgstr "Hintergrundspeicherung"
+
+#: editors/tinymce.inc:431
+msgid "Context menu"
+msgstr "Kontextmenü"
+
+#: editors/tinymce.inc:438
+msgid "Left-to-right"
+msgstr "Links nach rechts"
+
+#: editors/tinymce.inc:438
+msgid "Right-to-left"
+msgstr "Rechts nach links"
+
+#: editors/tinymce.inc:445
+msgid "Emotions"
+msgstr "Emotionen"
+
+#: editors/tinymce.inc:466
+#, fuzzy
+msgid "Inline popups"
+msgstr "Inline-Popups"
+
+#: editors/tinymce.inc:476
+msgid "Insert date"
+msgstr "Datum einfügen"
+
+#: editors/tinymce.inc:476
+msgid "Insert time"
+msgstr "Zeit einfügen"
+
+#: editors/tinymce.inc:487
+msgid "Insert layer"
+msgstr "Ebene einfügen"
+
+# oder "In den Vordergrund"?
+#: editors/tinymce.inc:487
+#, fuzzy
+msgid "Move forward"
+msgstr "Eine Ebene nach vorne"
+
+# oder "In den Hintergrund"?
+#: editors/tinymce.inc:487
+#, fuzzy
+msgid "Move backward"
+msgstr "Eine Ebene nach hinten"
+
+#: editors/tinymce.inc:487
+msgid "Absolute"
+msgstr "Absolut"
+
+#: editors/tinymce.inc:494
+msgid "Paste text"
+msgstr "Text einfügen"
+
+#: editors/tinymce.inc:522
+msgid "Style properties"
+msgstr "Design-Einstellungen"
+
+#: editors/tinymce.inc:548
+#, fuzzy
+msgid "Media"
+msgstr "Medien"
+
+#: editors/tinymce.inc:555
+msgid "Citation"
+msgstr "Zitat"
+
+#: editors/tinymce.inc:555
+msgid "Deleted"
+msgstr "Gelöscht"
+
+#: editors/tinymce.inc:555
+msgid "Abbreviation"
+msgstr "Abkürzung"
+
+#: editors/tinymce.inc:555
+msgid "Acronym"
+msgstr "Akronym"
+
+# NICHT Eingefügt
+#: editors/tinymce.inc:555
+#, fuzzy
+msgid "Inserted"
+msgstr "Eingefügt"
+
+#: editors/tinymce.inc:571
+msgid "Safari compatibility"
+msgstr "Safari-Kompatibilität"
+
+#: editors/whizzywig.inc:126
+msgid "Spell check"
+msgstr "Rechtschreibprüfung"
+
+#: editors/yui.inc:284
+msgid "Font Color"
+msgstr "Schriftfarbe"
+
+#: editors/yui.inc:284
+msgid "Background Color"
+msgstr "Hintergrundfarbe"
+
+#: editors/yui.inc:286
+msgid "Show/hide hidden elements"
+msgstr "Ein-/Ausblenden versteckter Elemente"
+
+#: plugins/break.inc:14
+#, fuzzy
+msgid "Teaser break"
+msgstr "Anrisstext trennen"
+
+#: plugins/break.inc:17
+msgid "Separate the teaser and body of this content"
+msgstr "Separiert den Anrisstext und Textkörper des Inhalts an dieser Stelle"
+
diff --git a/sites/all/modules/wysiwyg/translations/el.po b/sites/all/modules/wysiwyg/translations/el.po
new file mode 100644
index 0000000000000000000000000000000000000000..0741d81cfc5a34ed3523c91fac78c566ba794674
--- /dev/null
+++ b/sites/all/modules/wysiwyg/translations/el.po
@@ -0,0 +1,434 @@
+# translation of el.po to Greek
+# Greek translation of Drupal (wysiwyg_editor.module)
+# $Id: el.po,v 1.2 2008/05/30 02:19:15 sun Exp $
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL@ADDRESS>
+# Generated from file: wysiwyg_editor.module,v 1.91 2007/02/22 22:41:06 nedjo
+#
+# Vasileios Lourdas <lourdas_v@yahoo.gr>, 2007.
+# Vasileios Lourdas <vasilis@lourdas.name>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: el\n"
+"POT-Creation-Date: 2008-04-13 16:27+0300\n"
+"PO-Revision-Date: 2008-04-13 16:40+0300\n"
+"Last-Translator: Vasileios Lourdas <vasilis@lourdas.name>\n"
+"Language-Team: Greek <el@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: wysiwyg_editor.module:17 wysiwyg_editor.info:0
+msgid "TinyMCE"
+msgstr "TinyMCE"
+
+#: wysiwyg_editor.module:19
+msgid "Configure the rich editor."
+msgstr "Παραμετροποίηση του πλήρους συντάκτη κειμένου."
+
+#: wysiwyg_editor.module:34
+msgid "<p style=\"font-size:x-small\">$Revision: 1.2 $ $Date: 2008/05/30 02:19:15 $</p><p>TinyMCE adds what-you-see-is-what-you-get (WYSIWYG) html editing to textareas. This editor can be enabled/disabled without reloading the page by clicking a link below each textarea.</p><p>Profiles can be defined based on user roles. A TinyMCE profile can define which pages receive this TinyMCE capability, what buttons or themes are enabled for the editor, how the editor is displayed, and a few other editor functions.</p><p>Lastly, only users with the <code>access wysiwyg_editor</code> <a href=\"!url\">permission</a> will be able to use TinyMCE.</p>"
+msgstr "<p style=\"font-size:x-small\">$Revision: 1.2 $ $Date: 2008/05/30 02:19:15 $</p><p>Το TinyMCE προσθέτει δυνατότητα επεξεργασίας HTML τύπου what-you-see-is-what-you-get (WYSIWYG) στις περιοχές κειμένου. Ο επεξεργαστής μπορεί να ενεργοποιηθεί/απενεργοποιηθεί χωρίς την επαναφόρτωση της σελίδας κάνοντας κλικ σε ένα σύνδεσμο κάτω από κάθε περιοχή κειμένου.</p><p>Τα προφίλ ορίζονται βάσει των ρόλων των χρηστών. Ένα προφίλ TinyMCE μπορεί να ορίσει σε ποιες σελίδες θα υπάρχει η δυνατότητα TinyMCE, ποια κουμπιά ή θεματικές παραλλαγές θα είναι ενεργοποιημένες στον επεξεργαστή, πως θα εμφανίζεται ο επεξεργαστής και ορισμένες άλλες λειτουργίες.</p><p>Τέλος, μόνο χρήστες με την <a href=\"!url\">άδεια</a> <code>πρόσβαση στο wysiwyg_editor</code> θα μπορούν να χρησιμοποιούν το TinyMCE.</p>"
+
+#: wysiwyg_editor.module:113
+msgid "enable rich-text"
+msgstr "ενεργοποίηση του πλήρους κειμένου"
+
+#: wysiwyg_editor.module:114
+msgid "disable rich-text"
+msgstr "απενεργοποίηση του πλήρους κειμένου"
+
+#: wysiwyg_editor.module:166
+msgid "Your current web browser does not support WYSIWYG editing."
+msgstr "Ο φυλλομετρητής σας δεν υποστηρίζει επεξεργασία WYSIWYG."
+
+#: wysiwyg_editor.module:247
+msgid "TinyMCE rich-text settings"
+msgstr "Ρυθμίσεις πλήρους-κειμένου TinyMCE"
+
+#: wysiwyg_editor.module:255;698
+msgid "Default state"
+msgstr "Εξ' ορισμού κατάσταση"
+
+#: wysiwyg_editor.module:257;700
+msgid "disabled"
+msgstr "απενεργοποιημένο"
+
+#: wysiwyg_editor.module:257;700
+msgid "enabled"
+msgstr "ενεργοποιημένο"
+
+#: wysiwyg_editor.module:258
+msgid "Should rich-text editing be enabled or disabled by default in textarea fields?"
+msgstr "Το πλήρες κείμενο στα πεδία περιοχής κειμένου θα πρέπει να είναι ενεργοποιημένο ή απενεργοποιημένο εξ' ορισμού;"
+
+#: wysiwyg_editor.module:440
+msgid "administer"
+msgstr "διαχείριση"
+
+#: wysiwyg_editor.module:441;44;0
+msgid "wysiwyg_editor"
+msgstr "wysiwyg_editor"
+
+#: wysiwyg_editor.module:442
+msgid "Add new TinyMCE profile"
+msgstr "Προσθήκη νέου προφίλ TinyMCE"
+
+#: wysiwyg_editor.module:448
+msgid "Edit wysiwyg_editor profile"
+msgstr "Επεξεργασία προφίλ wysiwyg_editor"
+
+#: wysiwyg_editor.module:454
+msgid "Deleted profile"
+msgstr "Το προφίλ διαγράφηκε"
+
+#: wysiwyg_editor.module:458;663
+msgid "Create profile"
+msgstr "Δημιουργία προφίλ"
+
+#: wysiwyg_editor.module:459;667
+msgid "Update profile"
+msgstr "Ενημέρωση προφίλ"
+
+#: wysiwyg_editor.module:462
+msgid "Your TinyMCE profile has been updated."
+msgstr "Το TinyMCE προφίλ σας έχει ενημερωθεί"
+
+#: wysiwyg_editor.module:462
+msgid "Your TinyMCE profile has been created."
+msgstr "Το TinyMCE προφίλ σας έχει δημιουργηθεί."
+
+#: wysiwyg_editor.module:471
+msgid "TinyMCE settings"
+msgstr "Ρυθμίσεις TinyMCE"
+
+#: wysiwyg_editor.module:475
+msgid "Could not find the TinyMCE engine installed at <strong>!wysiwyg_editor-directory</strong>. Please <a href=\"http://wysiwyg_editor.moxiecode.com/\">download TinyMCE</a>, uncompress it and copy the folder into !wysiwyg_editor-path."
+msgstr "Δε βρέθηκε εγκατεστημένη η μηχανή TinyMCE στον κατάλογο <strong>!wysiwyg_editor-directory</strong>. Παρακαλώ <a href=\"http://wysiwyg_editor.moxiecode.com/\">κατεβάστε το TinyMCE</a>, αποσυμπιέστε το και αντιγράψτε τον κατάλογό του στο !wysiwyg_editor-path."
+
+#: wysiwyg_editor.module:655
+msgid "You must <a href=\"!access-control-url\">assign</a> at least one role with the 'access wysiwyg_editor' permission before creating a profile."
+msgstr "Θα πρέπει να <a href=\"!access-control-url\">αποδώσετε</a> τουλάχιστον ένα ρόλο με το δικαίωμα 'πρόσβαση στο wysiwyg_editor' προτού δημιουργήσετε προφίλ."
+
+#: wysiwyg_editor.module:658
+msgid "You will not be allowed to create a new profile since all user roles have already been assigned profiles. Either remove an existing wysiwyg_editor profile from at least one role or assign another role the 'access wysiwyg_editor' permission."
+msgstr "Δεν μπορείτε να δημιουργήσετε νέο προφίλ, εφόσον σε όλους τους ρόλους χρηστών έχουν αποδωθεί προφίλ. Αφαιρέστε ένα υπάρχον προφίλ wysiwyg_editor από ένα τουλάχιστον ρόλο ή αποδώστε το δικαίωμα 'πρόσβαση στο wysiwyg_editor' σε άλλο ρόλο."
+
+#: wysiwyg_editor.module:661
+msgid "Not all user roles are shown since they already have wysiwyg_editor profiles. You must first unassign profiles in order to add them to a new one."
+msgstr "Δεν εμφανίζονται όλοι οι ρόλοι χρηστών εφόσον τους έχει αποδοθεί ήδη προφίλ wysiwyg_editor. Θα πρέπει πρώτα να αφαιρέσετε προφίλ προκειμένου να τους προσθέσετε ένα ακόμη."
+
+#: wysiwyg_editor.module:672
+msgid "Basic setup"
+msgstr "Βασική διαμόρφωση"
+
+#: wysiwyg_editor.module:679
+msgid "Profile name"
+msgstr "Όνομα προφίλ"
+
+#: wysiwyg_editor.module:683
+msgid "Enter a name for this profile. This name is only visible within the wysiwyg_editor administration page."
+msgstr "Εισάγετε ένα όνομα για το προφίλ αυτό. Το όνομα αυτό θα εμφανίζεται μόνο στις σελίδες διαχείρισης του wysiwyg_editor."
+
+#: wysiwyg_editor.module:689
+msgid "Roles allowed to use this profile"
+msgstr "Ρόλοι που τους επιτρέπεται να χρησιμοποιούν αυτό το προφίλ"
+
+#: wysiwyg_editor.module:692
+msgid "Check at least one role. Only roles with 'access wysiwyg_editor' permission will be shown here."
+msgstr "Επιλέξτε τουλάχιστον ένα ρόλο. Εδώ εμφανίζονται μόνο οι ρόλοι με το δικαίωμα 'πρόσβαση στο wysiwyg_editor'."
+
+#: wysiwyg_editor.module:701
+msgid "Default editor state for users in this profile. Users will be able to override this state if the next option is enabled."
+msgstr "Εξ' ορισμού κατάσταση του συντάκτη για τους χρήστες σε αυτό το προφίλ. Οι χρήστες θα μπορούν να αλλάξουν την κατάσταση αυτή αν η επόμενη επιλογή είναι ενεργοποιημένη."
+
+#: wysiwyg_editor.module:706
+msgid "Allow users to choose default"
+msgstr "Να επιτρέπεται στους χρήστες να επιλέγουν το εξ' ορισμού"
+
+#: wysiwyg_editor.module:708;716;740;874;898;906;914
+msgid "false"
+msgstr "ψευδές"
+
+#: wysiwyg_editor.module:708;716;740;874;898;906;914
+msgid "true"
+msgstr "αληθές"
+
+#: wysiwyg_editor.module:709
+msgid "If allowed, users will be able to choose their own TinyMCE default state by visiting their profile page."
+msgstr "Αν επιτρέπεται, οι χρήστες θα μπορούν να επιλέξουν την εξ' ορισμού κατάσταση για το TinyMCE τους επισκεπτόμενοι τη σελίδα του προφίλ τους."
+
+#: wysiwyg_editor.module:714
+msgid "Show disable/enable rich text editor toggle"
+msgstr "Εμφάνιση του διακόπτη απενεργοποίηση/ενεργοποίηση του συντάκτη πλήρους κειμένου"
+
+#: wysiwyg_editor.module:717
+msgid "Whether or not to show the disable/enable rich text editor toggle below the textarea. If false, editor defaults to the global default or user default (see above)."
+msgstr "Εμφάνιση ή όχι του διακόπτη για την απενεργοποίηση/ενεργοποίηση του συντάκτη πλήρους κειμένου κάτω από την περιοχή κειμένου. Αν όχι, ο συντάκτης θα είναι με βάση την εξ' ορισμού καθολική ή από το χρήστη κατάσταση (δείτε παραπάνω)"
+
+#: wysiwyg_editor.module:730
+msgid "Language"
+msgstr "Γλώσσα"
+
+#: wysiwyg_editor.module:733
+msgid "The language for the TinyMCE interface. Language codes based on the <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> format."
+msgstr "Η γλώσσα για τη διεπαφή του TinyMCE. Οι κωδικοί των γλωσσών βασίζονται στη μορφή <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a>."
+
+#: wysiwyg_editor.module:738
+msgid "Safari browser warning"
+msgstr "Προειδοποίηση για το φυλλομετρητή Safari"
+
+#: wysiwyg_editor.module:741
+msgid "TinyMCE support for the Safari web browser is experimental and a warning message is displayed when that browser is detected. You can disable this message here."
+msgstr "Η υποστήριξη του φυλλομετρητή Safari από το TinyMCE είναι σε πειραματικό στάδιο και όταν εντοπίζεται ο φυλλομετρητής αυτός θα εμφανίζεται μια προειδοποίηση. Μπορείτε εδώ να απενεργοποιήσετε το μήνυμα αυτό."
+
+#: wysiwyg_editor.module:746
+msgid "Visibility"
+msgstr "Ορατότητα"
+
+#: wysiwyg_editor.module:766
+msgid "Show on every page except the listed pages."
+msgstr "Εμφάνιση σε όλες τις σελίδες εκτός από τις παρακάτω."
+
+#: wysiwyg_editor.module:766
+msgid "Show on only the listed pages."
+msgstr "Εμφάνιση μόνο στις παρακάτω σελίδες."
+
+#: wysiwyg_editor.module:767
+msgid "Enter one page per line as Drupal paths. The '*' character is a wildcard. Example paths are '!blog' for the blog page and !blog-wildcard for every personal blog. !front is the front page."
+msgstr "Εισάγετε μια σελίδα ανά γραμμή ως διαδρομές του Drupal. Ο χαρακτήρας '*' είναι χαρακτήρας μπαλαντέρ. Παραδείγματα διαδρομών είναι το '!blog' για τις σελίδες ιστολογίου και το !blog-wildcard για κάθε προσωπικό ιστολόγιο. Το !front είναι για την κεντρική σελίδα."
+
+#: wysiwyg_editor.module:770
+msgid "Show if the following PHP code returns <code>TRUE</code> (PHP-mode, experts only)."
+msgstr "Εμφάνιση ανάλογα με το αν ο παρακάτω κώδικας PHP επιστρέψει <code>TRUE</code> (κατάσταση PHP, για τους ειδικούς μόνο)."
+
+#: wysiwyg_editor.module:771
+msgid "If the PHP-mode is chosen, enter PHP code between !php. Note that executing incorrect PHP-code can break your Drupal site."
+msgstr "Αν επιλεχθεί η κατάσταση PHP, εισάγετε τον κώδικα PHP ανάμεσα στα !php. Σημειώστε ότι η εκτέλεση λάθους κώδικα μπορεί να προκαλέσει ζημιά στο Drupal ιστοχώρο σας."
+
+#: wysiwyg_editor.module:775
+msgid "Show wysiwyg_editor on specific pages"
+msgstr "Εμφάνιση του wysiwyg_editor σε συγκεκριμένες σελίδες"
+
+#: wysiwyg_editor.module:781
+msgid "Pages"
+msgstr "Σελίδες"
+
+#: wysiwyg_editor.module:789
+msgid "Buttons and plugins"
+msgstr "Κουμπιά και επιπλέον αρθρώματα"
+
+#: wysiwyg_editor.module:841
+msgid "Editor appearance"
+msgstr "Εμφάνιση συντάκτη κειμένου"
+
+#: wysiwyg_editor.module:848
+msgid "Toolbar location"
+msgstr "Τοποθεσία γραμμής εργαλείων"
+
+#: wysiwyg_editor.module:850;866
+msgid "bottom"
+msgstr "κάτω μέρος"
+
+#: wysiwyg_editor.module:850;866
+msgid "top"
+msgstr "πάνω μέρος"
+
+#: wysiwyg_editor.module:851
+msgid "Show toolbar at the top or bottom of the editor area?"
+msgstr "Να εμφανίζεται η γραμμή εργαλείων στο πάνω ή κάτω μέρος της περιοχής του συντάκτη;"
+
+#: wysiwyg_editor.module:856
+msgid "Toolbar alignment"
+msgstr "Στοίχιση γραμμής εργαλείων"
+
+#: wysiwyg_editor.module:858
+msgid "center"
+msgstr "κέντρο"
+
+#: wysiwyg_editor.module:858
+msgid "left"
+msgstr "αριστερά"
+
+#: wysiwyg_editor.module:858
+msgid "right"
+msgstr "δεξιά"
+
+#: wysiwyg_editor.module:859
+msgid "Align tool icons left, center, or right within the toolbar."
+msgstr "Στοίχιση των εικονιδίων των εργαλείων αριστερά, στο κέντρο ή δεξιά μέσα στη γραμμή εργαλείων."
+
+#: wysiwyg_editor.module:864
+msgid "Path location"
+msgstr "Τοποθεσία διαδρομής"
+
+#: wysiwyg_editor.module:866
+msgid "none"
+msgstr "κανένα"
+
+#: wysiwyg_editor.module:867
+msgid "Path to html elements (i.e. \"body>table>tr>td\"). Show at top, bottom, or not at all."
+msgstr "Η διαδρομή των στοιχείων html (πχ. \"body>table>tr>td\"). Να εμφανίζεται πάνω, κάτω ή καθόλου."
+
+#: wysiwyg_editor.module:872
+msgid "Enable resizing button"
+msgstr "Ενεργοποίηση πλήκτρου αλλαγής μεγέθους"
+
+#: wysiwyg_editor.module:875
+msgid " This option gives you the ability to enable/disable the resizing button. If enabled the <strong>Path location toolbar</strong> must be set to \"top\" or \"bottom\" in order to display the resize icon."
+msgstr "Η επιλογή αυτή δίνει τη δυνατότητα να ενεργοποιείτε/απενεργοποιείτε το πλήκτρο αλλαγής μεγέθους. Αν είναι ενεργοποιημένη, η <strong>γραμμή εργαλείων τοποθεσίας διαδρομής</strong> θα πρέπει να είναι \"πάνω\" ή \"κάτω\" για να εμφανίζεται το εικονίδιο αλλαγής μεγέθους."
+
+#: wysiwyg_editor.module:880
+msgid "Block formats"
+msgstr "Μορφές μπλοκ"
+
+#: wysiwyg_editor.module:884
+msgid "Comma separated list of HTML block formats. You can only remove elements, not add."
+msgstr "Λίστα μπλοκ μορφών HTML χωρισμένη με το κόμμα. Μπορείτε να αφαιρέσετε μόνο στοιχεία, όχι να προσθέσετε."
+
+#: wysiwyg_editor.module:889
+msgid "Cleanup and output"
+msgstr "Εκκαθάριση και έξοδος"
+
+#: wysiwyg_editor.module:896
+msgid "Verify HTML"
+msgstr "Επαλήθευση της HTML"
+
+#: wysiwyg_editor.module:899
+msgid "Should the HTML contents be verified or not? Verifying will strip &lt;head&gt tags, so choose false if you will be editing full page HTML."
+msgstr "Επαλήθευση ή όχι των στοιχείων της HTML; Η επαλήθευση θα αφαιρέσει τις σημάνσεις &lt;head&gt, οπότε επιλέξτε ψευδές αν θέλετε να επεξεργαστείτε πλήρεις σελίδες HTML."
+
+#: wysiwyg_editor.module:904
+msgid "Preformatted"
+msgstr "Προμορφοποιημένο"
+
+#: wysiwyg_editor.module:907
+msgid "If this option is set to true, the editor will insert TAB characters on tab and preserve other whitespace characters just like a PRE HTML element does."
+msgstr "Αν η επιλογή αυτή έχει ως τιμή αληθές, ο συντάκτης κειμένου θα εισάγει χαρακτήρες TAB και θα διατηρεί τους υπόλοιπους λευκούς χαρακτήρες (whitespaces), ακριβώς όπως κάνει και το στοιχείο PRE της HTML."
+
+#: wysiwyg_editor.module:912
+msgid "Convert &lt;font&gt; tags to styles"
+msgstr "Μετατροπή των σημάνσεων  &lt;font&gt; σε στυλ"
+
+#: wysiwyg_editor.module:915
+msgid "If you set this option to true, font size, font family, font color and font background color will be replaced by inline styles."
+msgstr "Αν η επιλογή αυτή έχει ως τιμή αληθές, το μέγεθος, η οικογένεια, το χρώμα των γραμματοσειρών και το χρώμα του υπόβαθρου θα αντικαθίστανται από στυλ μέσα στο κείμενο (inline)."
+
+#: wysiwyg_editor.module:920
+msgid "Remove linebreaks"
+msgstr "Αφαίρεση των αλλαγών γραμμών"
+
+#: wysiwyg_editor.module:923
+msgid "Set this option to false to prevent TinyMCE from removing linebreaks from existing nodes.  True avoids conflicts with some filters."
+msgstr "Θέστε την επιλογή αυτή σε ψευδές για να αποτρέψετε το TinyMCE να αφαιρεί τις αλλαγές γραμμών από τους υπάρχοντες κόμβους. Το αληθές αποφεύγει προβλήματα με ορισμένα φίλτρα."
+
+#: wysiwyg_editor.module:928
+msgid "Apply source formatting"
+msgstr "Εφαρμογή μορφοποίησης κώδικα"
+
+#: wysiwyg_editor.module:931
+msgid "This option makes TinyMCE apply source formatting.  Set this to true for a cleaner HTML source.  Choose false to avoid conflicts with some filters."
+msgstr "Η επιλογή αυτή ορίζει στο TinyMCE να εφαρμόζει μορφοποίηση κώδικα. Θέστε την επιλογή σε αληθές για ένα πιο ευανάγνωστο κώδικα HTML. Θέστε σε ψευδές για την αποφυγή προβλημάτων με ορισμένα φίλτρα."
+
+#: wysiwyg_editor.module:936
+msgid "CSS"
+msgstr "CSS"
+
+#: wysiwyg_editor.module:943
+msgid "Editor CSS"
+msgstr "Συντάκτης CSS"
+
+#: wysiwyg_editor.module:945
+msgid "use theme css"
+msgstr "χρησιμοποίηση css θεματικής παραλλαγής"
+
+#: wysiwyg_editor.module:945
+msgid "define css"
+msgstr "ορισμός css"
+
+#: wysiwyg_editor.module:945
+msgid "tinyMCE default"
+msgstr "προεπιλογή TinyMCE"
+
+#: wysiwyg_editor.module:946
+msgid "Defines the CSS to be used in the editor area.<br />use theme css - load style.css from current site theme.<br/>define css - enter path for css file below.<br />tinyMCE default - uses default CSS from editor."
+msgstr "Καθορίζει το CSS που θα χρησιμοποιηθεί στην περιοχή κειμένου του συντάκτη. <br />χρησιμοποίηση του θέματος css - χρησιμοποιεί το style.css από το τρέχων θέμα του ιστοχώρου. <br/>ορισμός του css - εισάγετε παρακάτω τη διαδρομή για το αρχείο του css<br />εξ' ορισμού του tinyMCE - χρησιμοποιεί το εξ' ορισμού CSS του συντάκτη κειμένου."
+
+#: wysiwyg_editor.module:951
+msgid "CSS path"
+msgstr "Διαδρομή CSS"
+
+#: wysiwyg_editor.module:955
+msgid "Enter path to CSS file (<em>example: \"css/editor.css\"</em>) or a list of css files seperated by a comma (<em>example: /themes/garland/style.css,http://domain.com/customMCE.css</em>).<br />Macros: %h (host name: http://www.example.com/), %t (path to theme: theme/yourtheme/)<br />Be sure to select \"define css\" above."
+msgstr "Εισάγετε τη διαδρομή για το αρχείο CSS (<em>παράδειγμα: \"css/editor.css\"</em>) ή μια λίστα αρχείων css χωρισμένα με το κόμμα (<em>παράδειγμα: /themes/garland/style.css,http://domain.com/customMCE.css</em>). <br />Μακροεντολές: %h (όνομα υπολογιστή: http://www.example.com/), %t (διαδρομή στο θέμα: theme/yourtheme/)<br />Σιγουρευτείτε να επιλέξετε το \"ορισμός του css\" παραπάνω."
+
+#: wysiwyg_editor.module:960
+msgid "CSS classes"
+msgstr "Κλάσεις CSS"
+
+#: wysiwyg_editor.module:964
+msgid "Adds CSS classes to the \"styles\" droplist. Format is: &lt;title&gt;=&lt;class&gt;;<br/> Example: Header 1=header1;Header 2=header2;Header 3=header3 (note: no trailing ';')<br />Leave blank to automatically import list of CSS classes from style sheet."
+msgstr "Προσθέτει κλάσεις css στη λίστα \"στυλ\". Η μορφοποίηση είναι &lt;τίτλος&gt;=&lt;κλάση&gt;;<br/> Παράδειγμα: Επικεφαλίδα 1=header1;Επικεφαλίδα 2=header2;Επικεφαλίδα 3=header3 (σημείωση: χωρίς το ';' στο τέλος)<br />Αφήστε το κενό για να εισαχθεί αυτόματα η λίστα των κλάσεων CSS από το αρχείο των στυλ."
+
+#: wysiwyg_editor.module:1046
+msgid "Profile"
+msgstr "Προφίλ"
+
+#: wysiwyg_editor.module:1046
+msgid "Roles"
+msgstr "Ρόλοι"
+
+#: wysiwyg_editor.module:1046
+msgid "Operations"
+msgstr "Λειτουργίες"
+
+#: wysiwyg_editor.module:1048
+msgid "edit"
+msgstr "επεξεργασία"
+
+#: wysiwyg_editor.module:1048
+msgid "delete"
+msgstr "διαγραφή"
+
+#: wysiwyg_editor.module:1051
+msgid "<p><a href=\"!create-profile-url\">Create new profile</a></p>"
+msgstr "<p><a href=\"!create-profile-url\">Δημιουργία νέου προφίλ</a></p>"
+
+#: wysiwyg_editor.module:1054
+msgid "No profiles found. Click here to <a href=\"!create-profile-url\">create a new profile</a>."
+msgstr "Δε βρέθηκαν προφίλ. Κάντε κλικ εδώ για να <a href=\"!create-profile-url\">δημιουργήσετε ένα νέο προφίλ</a>."
+
+#: wysiwyg_editor.module:1085
+msgid "You must give a profile name."
+msgstr "Πρέπει να εισάγετε ένα όνομα προφίλ."
+
+#: wysiwyg_editor.module:1089
+msgid "You must select at least one role."
+msgstr "Πρέπει να επιλέξετε τουλάχιστον ένα ρόλο."
+
+#: wysiwyg_editor.module:43
+msgid "administer wysiwyg_editor"
+msgstr "διαχείριση του wysiwyg_editor"
+
+#: wysiwyg_editor.module:43
+msgid "access wysiwyg_editor"
+msgstr "πρόσβαση στο wysiwyg_editor"
+
+#: wysiwyg_editor.module:44
+msgid "module"
+msgstr "άρθρωμα"
+
+#: wysiwyg_editor.module:46
+msgid "/wysiwyg_editor/jscripts/tiny_mce/plugins/imagemanager/"
+msgstr "/wysiwyg_editor/jscripts/tiny_mce/plugins/imagemanager/"
+
+#: wysiwyg_editor.module:47
+msgid "access wysiwyg_editor imagemanager"
+msgstr "πρόσβαση στο διαχειριστή εικόνων wysiwyg_editor"
+
+#: wysiwyg_editor.info:0
+msgid "The most popular WYSIWYG editor for advanced content editing."
+msgstr "Ο δημοφιλέστερος WYSIWYG συντάκτης κειμένου για προχωρημένη επεξεργασία περιεχομένου."
+
diff --git a/sites/all/modules/wysiwyg/translations/fi.po b/sites/all/modules/wysiwyg/translations/fi.po
new file mode 100644
index 0000000000000000000000000000000000000000..7eece8cdcde16aba02f419799a9fd68dd1393197
--- /dev/null
+++ b/sites/all/modules/wysiwyg/translations/fi.po
@@ -0,0 +1,920 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: wysiwyg-6.x-2.0\n"
+"POT-Creation-Date: 2009-08-22 09:55+0300\n"
+"PO-Revision-Date: 2009-08-23 11:01+0200\n"
+"Last-Translator: Juhani Pirinen <juhani.pirinen@ontieto.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-Language: Finnish\n"
+"X-Poedit-Country: FINLAND\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,54,-1,-1,-1\n"
+
+#: wysiwyg.api.php:51;52
+msgid "My plugin title"
+msgstr "Oman laajennusosan otsikko"
+
+#: wysiwyg.api.php:61
+msgid "Button title (optional)"
+msgstr "Painikkeen otsikko (vaihtoehtoinen)"
+
+#: wysiwyg.admin.inc:51
+msgid "%editor profile for %format"
+msgstr "%editor profiilili formaatille %format"
+
+#: wysiwyg.admin.inc:60
+msgid "Basic setup"
+msgstr "Perusasetukset"
+
+#: wysiwyg.admin.inc:67
+msgid "Enabled by default"
+msgstr "Käytössä oletusarvoisesti"
+
+#: wysiwyg.admin.inc:70
+msgid "The default editor state for users having access to this profile. Users are able to override this state if the next option is enabled."
+msgstr "Oletuseditoritila käyttäjille, joilla on pääsy tähän profiiliin. Käyttäjät pystyvät ohittamaan tämän tilan, jos seuraava valinta on käytössä."
+
+#: wysiwyg.admin.inc:75
+msgid "Allow users to choose default"
+msgstr "Salli käyttäjien valita oletus"
+
+#: wysiwyg.admin.inc:78
+msgid "If allowed, users will be able to choose their own editor default state in their user account settings."
+msgstr "Jos sallittu, käyttäjät pystyvät valitsemaan oman editorinsa oletustilan käyttäjätilinsä asetuksista."
+
+#: wysiwyg.admin.inc:83
+msgid "Show <em>enable/disable rich text</em> toggle link"
+msgstr "Näytä <em>ota editori käyttöön / poista editori käytöstä</em> kytkinlinkki"
+
+#: wysiwyg.admin.inc:86
+msgid "Whether or not to show the <em>enable/disable rich text</em> toggle link below a textarea. If disabled, the user setting or global default is used (see above)."
+msgstr "Joko näytetään tai ei näytetä <em>ota editori käyttöön / poista editori käytöstä</em> kytkinlinkki tekstialueen alla. Jos ei näytetä, käyttäjän asetus tai yleinen oletus on käytössä (katso yllä)."
+
+#: wysiwyg.admin.inc:96
+msgid "Language"
+msgstr "Kieli"
+
+#: wysiwyg.admin.inc:99
+msgid "The language to use for the editor interface. Language codes are based on the <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> format."
+msgstr "Kieli, jota käytetään editorin käyttöliittymässä. Kielikoodit perustuvat <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> formaattiin."
+
+#: wysiwyg.admin.inc:104
+msgid "Buttons and plugins"
+msgstr "Painikkeet ja laajennusosat"
+
+#: wysiwyg.admin.inc:149
+msgid "Editor appearance"
+msgstr "Editorin ulkoasu"
+
+#: wysiwyg.admin.inc:156
+msgid "Toolbar location"
+msgstr "Työkalupalkin sijainti"
+
+#: wysiwyg.admin.inc:158;174
+msgid "Bottom"
+msgstr "Alhaalla"
+
+#: wysiwyg.admin.inc:158;174
+msgid "Top"
+msgstr "Ylhäällä"
+
+#: wysiwyg.admin.inc:159
+msgid "This option controls whether the editor toolbar is displayed above or below the editing area."
+msgstr "Tämä valinta määrittelee näkyykö editorin työkalupalkki muokkausalueen ylä- vai alapuolella."
+
+#: wysiwyg.admin.inc:164
+msgid "Button alignment"
+msgstr "Painikkeiden tasaus"
+
+#: wysiwyg.admin.inc:166
+msgid "Center"
+msgstr "Keskellä"
+
+#: wysiwyg.admin.inc:166
+msgid "Left"
+msgstr "Vasemmalla"
+
+#: wysiwyg.admin.inc:166
+msgid "Right"
+msgstr "Oikealla"
+
+#: wysiwyg.admin.inc:167
+msgid "This option controls the alignment of icons in the editor toolbar."
+msgstr "Tämä valinta määrittelee kuvakkeiden tasauksen editorin työkalupalkissa."
+
+#: wysiwyg.admin.inc:172
+msgid "Path location"
+msgstr "Polun sijainti"
+
+#: wysiwyg.admin.inc:174
+msgid "Hide"
+msgstr "Piilossa"
+
+#: wysiwyg.admin.inc:175
+msgid "Where to display the path to HTML elements (i.e. <code>body > table > tr > td</code>)."
+msgstr "Missä näytetään polku HTML elementteihin (esim. <code>body > table > tr > td</code>)."
+
+#: wysiwyg.admin.inc:180
+msgid "Enable resizing button"
+msgstr "Ota käyttöön koonmuunnospainike"
+
+#: wysiwyg.admin.inc:183
+msgid "This option gives you the ability to enable/disable the resizing button. If enabled, the Path location toolbar must be set to \"Top\" or \"Bottom\" in order to display the resize icon."
+msgstr "Tämä valinta antaa mahdollisuuden ottaa käyttöön / poistaa käytöstä koonmuunnospainikkeen. Jos käytössä, Polun sijainti -työkalupalkki täytyy asettaa joko \"Ylös\" tai \"Alas\" jotta koonmuunnoskuvake näkyy."
+
+#: wysiwyg.admin.inc:188
+msgid "Cleanup and output"
+msgstr "Siistintä ja ulostulo"
+
+#: wysiwyg.admin.inc:195
+msgid "Verify HTML"
+msgstr "Tarkista HTML"
+
+#: wysiwyg.admin.inc:198
+msgid "If enabled, potentially malicious code like <code>&lt;HEAD&gt;</code> tags will be removed from HTML contents."
+msgstr "Jos käytössä, mahdolliset haitalliset koodit kuten <code>&lt;HEAD&gt;</code> merkkaukset poistetaan HTML sisällöstä."
+
+#: wysiwyg.admin.inc:203
+msgid "Preformatted"
+msgstr "Esimuotoiltu"
+
+#: wysiwyg.admin.inc:206
+msgid "If enabled, the editor will insert TAB characters on tab and preserve other whitespace characters just like a PRE element in HTML does."
+msgstr "Jos käytössä, editori lisää TAB merkkejä tab näppäimestä ja säilyttää muut whitespace merkit aivan kuten PRE elementti tekee HTML koodissa."
+
+#: wysiwyg.admin.inc:211
+msgid "Convert &lt;font&gt; tags to styles"
+msgstr "Muuntaa &lt;font&gt; merkkaukset tyyleiksi"
+
+#: wysiwyg.admin.inc:214
+msgid "If enabled, HTML tags declaring the font size, font family, font color and font background color will be replaced by inline CSS styles."
+msgstr "Jos käytössä, fonttikoon, fonttiperheen, fontin värin ja fontin taustavärin HTML merkkaukset korvataan rivinsisäisillä CSS tyyleillä."
+
+#: wysiwyg.admin.inc:219
+msgid "Remove linebreaks"
+msgstr "Poista rivinvaihdot"
+
+#: wysiwyg.admin.inc:222
+msgid "If enabled, the editor will remove most linebreaks from contents. Disabling this option could avoid conflicts with other input filters."
+msgstr "Jos käytössä, editori poistaa useimmat rivinvaihdot sisällöstä. Poistamalla käytöstä tämä valinta, voidaan välttää ristiriidat toisten syöttömuotojen kanssa."
+
+#: wysiwyg.admin.inc:227
+msgid "Apply source formatting"
+msgstr "Käytä lähdekoodin muotoilua"
+
+#: wysiwyg.admin.inc:230
+msgid "If enabled, the editor will re-format the HTML source code. Disabling this option could avoid conflicts with other input filters."
+msgstr "Jos käytössä, editori muotoilee uudelleen HTML lähdekoodin. Poistamalla käytöstä tämä valinta, voidaan välttää ristiriidat toisten syöttömuotojen kanssa."
+
+#: wysiwyg.admin.inc:235
+msgid "Force cleanup on standard paste"
+msgstr "Pakota siistintä normaalille liitä-toiminnolle"
+
+#: wysiwyg.admin.inc:238
+msgid "If enabled, the default paste function (CTRL-V or SHIFT-INS) behaves like the \"paste from word\" plugin function."
+msgstr "Jos käytössä, oletus liitä-toiminto (CTRL-V tai SHIFT-INS) käyttäytyy kuten \"liitä wordistä\" laajennusosan toiminto."
+
+#: wysiwyg.admin.inc:243
+msgid "CSS"
+msgstr "CSS"
+
+#: wysiwyg.admin.inc:250
+msgid "Block formats"
+msgstr "Kappalemerkkaukset"
+
+#: wysiwyg.admin.inc:254
+msgid "Comma separated list of HTML block formats. Possible values: <code>@format-list</code>."
+msgstr "Pilkulla eroteltu lista HTML kappaleiden merkkauksista.  Mahdolliset arvot: <code>@format-list</code>."
+
+#: wysiwyg.admin.inc:259
+msgid "Editor CSS"
+msgstr "Editorin CSS"
+
+#: wysiwyg.admin.inc:261
+msgid "Use theme CSS"
+msgstr "Käytä teeman CSS:ää"
+
+#: wysiwyg.admin.inc:261
+msgid "Define CSS"
+msgstr "Määrittele CSS"
+
+#: wysiwyg.admin.inc:261
+msgid "Editor default CSS"
+msgstr "Editorin oletus CSS"
+
+#: wysiwyg.admin.inc:262
+msgid "Defines the CSS to be used in the editor area.<br />Use theme CSS - loads stylesheets from current site theme.<br/>Define CSS - enter path for stylesheet files below.<br />Editor default CSS - uses default stylesheets from editor."
+msgstr "Määrittelee CSS:n, jota käytetään editorin alueella.<br>Käytä teeman CSS:ää - lataa tyylipohjat sivuston nykyisestä teemasta.<br>Määrittele CSS - anna polku tyylipohjatiedostoihin alla.<br>Editorin oletus CSS - käyttää editorin oletustyylipohjia."
+
+#: wysiwyg.admin.inc:267
+msgid "CSS path"
+msgstr "CSS polku"
+
+#: wysiwyg.admin.inc:271
+#, fuzzy
+msgid "If \"Define CSS\" was selected above, enter path to a CSS file or a list of CSS files separated by a comma."
+msgstr "Jos \"Määrittele CSS\"on valittu ylhäältä, anna polku CSS-tiedostoon tai CSS tiedostojen listaan, jotka on eroteltu pilkulla."
+
+#: wysiwyg.admin.inc:271
+msgid "Available tokens: <code>%b</code> (base path, eg: <code>/</code>), <code>%t</code> (path to theme, eg: <code>themes/garland</code>)"
+msgstr "Käytettävissä olevat merkit: <code>%b</code> (juuripolku, esim: <code>/</code>), <code>%t</code> (polku teemaan, esim: <code>themes/garland</code>)"
+
+#: wysiwyg.admin.inc:271
+msgid "Example:"
+msgstr "Esimerkki:"
+
+#: wysiwyg.admin.inc:276
+msgid "CSS classes"
+msgstr "CSS luokat"
+
+#: wysiwyg.admin.inc:278
+msgid "Optionally define CSS classes for the \"Font style\" dropdown list.<br />Enter one class on each line in the format: !format. Example: !example<br />If left blank, CSS classes are automatically imported from all loaded stylesheet(s)."
+msgstr "Vaihtoehtoisesti määrittele CSS luokat \"Fonttityyli\" pudotuslistalle.<br />Anna yksi luokka joka rivillä muodossa: !format. Esimerkki: !example<br />Jos jätetty tyhjäksi, CSS luokat tuodaan automaattisesti kaikista ladatuista tyylipohjista."
+
+#: wysiwyg.admin.inc:283;438
+msgid "Save"
+msgstr "Tallenna"
+
+#: wysiwyg.admin.inc:317
+msgid "Wysiwyg profile for %format has been saved."
+msgstr "Wysiwyg profiili %format on tallennettu."
+
+#: wysiwyg.admin.inc:366
+msgid "No editor"
+msgstr "Ei editoria"
+
+#: wysiwyg.admin.inc:371
+msgid "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Download</a>)"
+msgstr "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Lataa</a>)"
+
+#: wysiwyg.admin.inc:372
+msgid "Not installed."
+msgstr "Ei ole asennettu."
+
+#: wysiwyg.admin.inc:386
+msgid "Extract the archive and copy its contents into a new folder in the following location:<br /><code>@editor-path</code>"
+msgstr "Pura paketti ja kopioi sen sisältö uuteen kansioon seuraavaan sijaintiin: <br /><code>@editor-path</code>"
+
+#: wysiwyg.admin.inc:387
+msgid "So the actual library can be found at:<br /><code>@library-filepath</code>"
+msgstr "Jotta varsinainen kirjasto voidaan löytää sijainnista:<br /><code>@library-filepath</code>"
+
+#: wysiwyg.admin.inc:402
+msgid "Installation instructions"
+msgstr "Asennusohjeet"
+
+#: wysiwyg.admin.inc:405
+msgid "There are no editor libraries installed currently. The following list contains a list of currently supported editors:"
+msgstr "Editorin kirjastoja ei ole asennettu. Seuraava listaus sisältää tällä hetkellä tuetut editorit:"
+
+#: wysiwyg.admin.inc:430
+#: wysiwyg.module:26
+msgid "Edit"
+msgstr "Muokkaa"
+
+#: wysiwyg.admin.inc:433;489
+#: wysiwyg.module:36
+msgid "Remove"
+msgstr "Poista"
+
+#: wysiwyg.admin.inc:450
+msgid "Input format"
+msgstr "Syöttömuoto"
+
+#: wysiwyg.admin.inc:450
+msgid "Editor"
+msgstr "Editori"
+
+#: wysiwyg.admin.inc:450
+msgid "Operations"
+msgstr "Toimenpiteet"
+
+#: wysiwyg.admin.inc:487
+msgid "Are you sure you want to remove the profile for %name?"
+msgstr "Haluatko varmasti poistaa profiilin %name?"
+
+#: wysiwyg.admin.inc:489
+msgid "This action cannot be undone."
+msgstr "Tätä toimintoa ei voi perua."
+
+#: wysiwyg.admin.inc:489
+msgid "Cancel"
+msgstr "Peruuta"
+
+#: wysiwyg.admin.inc:501
+msgid "Wysiwyg profile for %name has been deleted."
+msgstr "Wysiwyg profiili %name on poistettu."
+
+#: wysiwyg.module:80
+msgid "A Wysiwyg profile can be associated to an input format. A Wysiwyg profile defines which client-side editor is loaded, what buttons or themes are enabled for the editor, how the editor is displayed, and a few other editor-specific functions."
+msgstr "Wysiwyg profiili voidaan liittää syöttömuotoon. Wysiwyg profiili määrittelee mikä asiakaspuolen editori ladataan, mitkä painikkeet tai teemat ovat käytössä editorissa, kuinka editori näytetään ja muutamia editorin omia toimintoja."
+
+#: wysiwyg.module:306
+msgid "Disable rich-text"
+msgstr "Poista editori käytöstä"
+
+#: wysiwyg.module:307
+msgid "Enable rich-text"
+msgstr "Ota editori käyttöön"
+
+#: wysiwyg.module:608
+msgid "Wysiwyg Editor settings"
+msgstr "Wysiwyg editorin asetukset"
+
+#: wysiwyg.module:615
+msgid "Enable editor by default"
+msgstr "Ota editori käyttöön oletuksena"
+
+#: wysiwyg.module:618
+msgid "If enabled, rich-text editing is enabled by default in textarea fields."
+msgstr "Jos käytössä, wysiwyg-editori on oletuksena käytössä tekstialuekentissä."
+
+#: wysiwyg.module:702
+msgid "The version of %editor could not be detected."
+msgstr "Editorin %editor versiota ei voitu havaita."
+
+#: wysiwyg.module:715
+msgid "The installed version %version of %editor is not supported."
+msgstr "Asennettu versio %version editorista %editor ei ole tuettu."
+
+#: wysiwyg.module:14
+#: wysiwyg.info:0
+msgid "Wysiwyg"
+msgstr "Wysiwyg"
+
+#: wysiwyg.module:17
+msgid "Configure client-side editors."
+msgstr "Määrittele asiakaspuolen editoriprofiilit"
+
+#: wysiwyg.module:22
+msgid "Profiles"
+msgstr "Profiilit"
+
+#: wysiwyg.install:10
+msgid "Stores Wysiwyg profiles."
+msgstr "Säilyttää Wysiwyg profiilit."
+
+#: wysiwyg.info:0
+msgid "Allows users to edit contents with client-side editors."
+msgstr "Sallii käyttäjän muokata sisältöä asiakaspuolen editoreilla."
+
+#: wysiwyg.info:0
+msgid "User interface"
+msgstr "Käyttöliittymä"
+
+#: editors/fckeditor.inc:217
+#: editors/markitup.inc:105;171
+#: editors/nicedit.inc:103
+#: editors/openwysiwyg.inc:141
+#: editors/tinymce.inc:377
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:276
+msgid "Bold"
+msgstr "Lihavoitu"
+
+#: editors/fckeditor.inc:217
+#: editors/markitup.inc:112;171
+#: editors/nicedit.inc:103
+#: editors/openwysiwyg.inc:141
+#: editors/tinymce.inc:377
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:276
+msgid "Italic"
+msgstr "Kursivoitu"
+
+#: editors/fckeditor.inc:217
+#: editors/nicedit.inc:103
+#: editors/openwysiwyg.inc:141
+#: editors/tinymce.inc:377
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:276
+msgid "Underline"
+msgstr "Alleviivattu"
+
+#: editors/fckeditor.inc:218
+#: editors/markitup.inc:119;172
+#: editors/nicedit.inc:104
+#: editors/openwysiwyg.inc:142
+#: editors/tinymce.inc:378
+#: editors/yui.inc:277
+msgid "Strike-through"
+msgstr "Yliviivattu"
+
+#: editors/fckeditor.inc:219
+#: editors/nicedit.inc:105
+#: editors/openwysiwyg.inc:143
+#: editors/tinymce.inc:379
+#: editors/whizzywig.inc:114
+#: editors/yui.inc:278
+msgid "Align left"
+msgstr "Tasaa vasemmat reunat"
+
+#: editors/fckeditor.inc:219
+#: editors/nicedit.inc:105
+#: editors/openwysiwyg.inc:143
+#: editors/tinymce.inc:379
+#: editors/whizzywig.inc:114
+#: editors/yui.inc:278
+msgid "Align center"
+msgstr "Keskitä"
+
+#: editors/fckeditor.inc:219
+#: editors/nicedit.inc:105
+#: editors/openwysiwyg.inc:143
+#: editors/tinymce.inc:379
+#: editors/whizzywig.inc:114
+#: editors/yui.inc:278
+msgid "Align right"
+msgstr "Tasaa oikeat reunat"
+
+#: editors/fckeditor.inc:219
+#: editors/openwysiwyg.inc:143
+#: editors/tinymce.inc:379
+#: editors/yui.inc:278
+msgid "Justify"
+msgstr "Tasaa molemmat reunat"
+
+#: editors/fckeditor.inc:220
+#: editors/nicedit.inc:106
+#: editors/openwysiwyg.inc:144
+#: editors/tinymce.inc:380
+#: editors/whizzywig.inc:115
+#: editors/yui.inc:279
+msgid "Bullet list"
+msgstr "Luettelomerkkilista"
+
+#: editors/fckeditor.inc:220
+#: editors/nicedit.inc:106
+#: editors/openwysiwyg.inc:144
+#: editors/tinymce.inc:380
+#: editors/whizzywig.inc:115
+#: editors/yui.inc:279
+msgid "Numbered list"
+msgstr "Numeroitu lista"
+
+#: editors/fckeditor.inc:221
+#: editors/nicedit.inc:107
+#: editors/openwysiwyg.inc:145
+#: editors/tinymce.inc:381
+#: editors/whizzywig.inc:116
+#: editors/yui.inc:280
+msgid "Outdent"
+msgstr "Pienennä sisennystä"
+
+#: editors/fckeditor.inc:221
+#: editors/nicedit.inc:107
+#: editors/openwysiwyg.inc:145
+#: editors/tinymce.inc:381
+#: editors/whizzywig.inc:116
+#: editors/yui.inc:280
+msgid "Indent"
+msgstr "Suurenna sisennystä"
+
+#: editors/fckeditor.inc:222
+#: editors/openwysiwyg.inc:146
+#: editors/tinymce.inc:382
+#: editors/whizzywig.inc:117
+#: editors/yui.inc:281
+msgid "Undo"
+msgstr "Kumoa"
+
+#: editors/fckeditor.inc:222
+#: editors/openwysiwyg.inc:146
+#: editors/tinymce.inc:382
+#: editors/whizzywig.inc:117
+#: editors/yui.inc:281
+msgid "Redo"
+msgstr "Toista"
+
+#: editors/fckeditor.inc:223
+#: editors/markitup.inc:132;174
+#: editors/nicedit.inc:114
+#: editors/openwysiwyg.inc:147
+#: editors/tinymce.inc:383
+#: editors/whizzywig.inc:121
+#: editors/yui.inc:282
+msgid "Link"
+msgstr "Linkki"
+
+#: editors/fckeditor.inc:223
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:383
+msgid "Unlink"
+msgstr "Poista linkki"
+
+#: editors/fckeditor.inc:223
+#: editors/tinymce.inc:383
+msgid "Anchor"
+msgstr "Ankkuri"
+
+#: editors/fckeditor.inc:224
+#: editors/markitup.inc:126;173
+#: editors/nicedit.inc:108
+#: editors/openwysiwyg.inc:148
+#: editors/tinymce.inc:384
+#: editors/whizzywig.inc:118;122
+#: editors/yui.inc:283
+msgid "Image"
+msgstr "Kuva"
+
+#: editors/fckeditor.inc:225
+#: editors/nicedit.inc:109
+#: editors/openwysiwyg.inc:150
+#: editors/tinymce.inc:386
+#: editors/whizzywig.inc:119
+msgid "Forecolor"
+msgstr "Tekstiväri"
+
+#: editors/fckeditor.inc:225
+#: editors/nicedit.inc:109
+#: editors/openwysiwyg.inc:150
+#: editors/tinymce.inc:386
+#: editors/whizzywig.inc:119
+msgid "Backcolor"
+msgstr "Taustaväri"
+
+#: editors/fckeditor.inc:226
+msgid "Superscript"
+msgstr "Yläindeksi"
+
+#: editors/fckeditor.inc:226
+msgid "Subscript"
+msgstr "Alaindeksi"
+
+#: editors/fckeditor.inc:227
+#: editors/openwysiwyg.inc:152
+#: editors/tinymce.inc:388
+msgid "Blockquote"
+msgstr "Kappalelainaus"
+
+#: editors/fckeditor.inc:227
+#: editors/nicedit.inc:116
+#: editors/openwysiwyg.inc:152
+#: editors/tinymce.inc:388
+#: editors/whizzywig.inc:125
+msgid "Source code"
+msgstr "Lähdekoodi"
+
+#: editors/fckeditor.inc:228
+#: editors/nicedit.inc:111
+#: editors/openwysiwyg.inc:153
+#: editors/tinymce.inc:389
+#: editors/whizzywig.inc:120
+msgid "Horizontal rule"
+msgstr "Vaakaviiva"
+
+#: editors/fckeditor.inc:229
+#: editors/openwysiwyg.inc:154
+#: editors/tinymce.inc:390
+msgid "Cut"
+msgstr "Leikkaa"
+
+#: editors/fckeditor.inc:229
+#: editors/openwysiwyg.inc:154
+#: editors/tinymce.inc:390
+msgid "Copy"
+msgstr "Kopioi"
+
+#: editors/fckeditor.inc:229
+#: editors/openwysiwyg.inc:154
+#: editors/tinymce.inc:390
+msgid "Paste"
+msgstr "Liitä"
+
+#: editors/fckeditor.inc:230
+msgid "Paste Text"
+msgstr "Liitä teksti"
+
+#: editors/fckeditor.inc:230
+#: editors/tinymce.inc:494
+msgid "Paste from Word"
+msgstr "Liitä Wordista"
+
+#: editors/fckeditor.inc:231
+msgid "Show blocks"
+msgstr "Näytä elementit"
+
+#: editors/fckeditor.inc:232
+#: editors/openwysiwyg.inc:156
+#: editors/tinymce.inc:392
+#: editors/yui.inc:287
+msgid "Remove format"
+msgstr "Poista muotoilu"
+
+#: editors/fckeditor.inc:233
+#: editors/openwysiwyg.inc:157
+#: editors/tinymce.inc:393
+msgid "Character map"
+msgstr "Merkkikartta"
+
+#: editors/fckeditor.inc:234
+msgid "About"
+msgstr "Tietoja"
+
+#: editors/fckeditor.inc:235
+#: editors/nicedit.inc:115
+#: editors/openwysiwyg.inc:158
+#: editors/tinymce.inc:452
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:288
+msgid "HTML block format"
+msgstr "HTML kappaleen merkkaus"
+
+#: editors/fckeditor.inc:235
+#: editors/nicedit.inc:115
+#: editors/openwysiwyg.inc:158
+#: editors/tinymce.inc:452
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:288
+msgid "Font"
+msgstr "Fontti"
+
+#: editors/fckeditor.inc:235
+#: editors/nicedit.inc:115
+#: editors/openwysiwyg.inc:158
+#: editors/tinymce.inc:452
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:288
+msgid "Font size"
+msgstr "Fonttikoko"
+
+#: editors/fckeditor.inc:235
+#: editors/tinymce.inc:452
+msgid "Font style"
+msgstr "Fonttityyli"
+
+#: editors/fckeditor.inc:236
+#: editors/openwysiwyg.inc:162
+#: editors/tinymce.inc:529
+#: editors/whizzywig.inc:123
+msgid "Table"
+msgstr "Taulukko"
+
+#: editors/fckeditor.inc:237
+#: editors/tinymce.inc:515
+msgid "Search"
+msgstr "Etsi"
+
+#: editors/fckeditor.inc:237
+#: editors/tinymce.inc:515
+msgid "Replace"
+msgstr "Korvaa"
+
+#: editors/fckeditor.inc:237
+#: editors/tinymce.inc:494
+msgid "Select all"
+msgstr "Valitse kaikki"
+
+#: editors/fckeditor.inc:238
+msgid "Create DIV container"
+msgstr "Luo DIV alue"
+
+#: editors/fckeditor.inc:239
+#: editors/tinymce.inc:538
+msgid "Flash"
+msgstr "Flash"
+
+#: editors/fckeditor.inc:239
+msgid "Smiley"
+msgstr "Hymiö"
+
+#: editors/fckeditor.inc:240
+msgid "FitWindow"
+msgstr "Sovita ikkunaan"
+
+#: editors/fckeditor.inc:241
+msgid "Check spelling"
+msgstr "Tarkista oikeinkirjoitus"
+
+#: editors/fckeditor.inc:248
+msgid "Autogrow"
+msgstr "Kasva automaattisesti"
+
+#: editors/fckeditor.inc:259
+#: editors/tinymce.inc:564
+msgid "BBCode"
+msgstr "BBCode"
+
+#: editors/fckeditor.inc:267
+msgid "Table drag/resize"
+msgstr "Taulukon vetäminen / koon muuttaminen"
+
+#: editors/fckeditor.inc:275
+msgid "Table: Cell properties"
+msgstr "Taulukko: Solun ominaisuudet"
+
+#: editors/fckeditor.inc:276
+msgid "Table: Insert row after"
+msgstr "Taulukko: Lisää rivi perään"
+
+#: editors/fckeditor.inc:277
+msgid "Table: Insert column after"
+msgstr "Taulukko: Lisää sarake perään"
+
+#: editors/fckeditor.inc:278
+msgid "Table: Insert cell after"
+msgstr "Taulukko: Lisää solu perään"
+
+#: editors/fckeditor.inc:279
+msgid "Table: Delete rows"
+msgstr "Taulukko: Poista rivit"
+
+#: editors/fckeditor.inc:280
+msgid "Table: Delete columns"
+msgstr "Taulukko: Poista sarakkeet"
+
+#: editors/fckeditor.inc:281
+msgid "Table: Delete cells"
+msgstr "Taulukko: Poista solut"
+
+#: editors/fckeditor.inc:282
+msgid "Table: Merge cells"
+msgstr "Taulukko: Yhdistä solut"
+
+#: editors/fckeditor.inc:283
+msgid "Table: Horizontal split cell"
+msgstr "Taulukko: Jaa solu vaakasuunnassa"
+
+#: editors/markitup.inc:142;176
+#: editors/openwysiwyg.inc:160
+#: editors/tinymce.inc:501
+msgid "Preview"
+msgstr "Esikatselu"
+
+#: editors/nicedit.inc:110
+#: editors/openwysiwyg.inc:151
+#: editors/tinymce.inc:387
+#: editors/yui.inc:285
+msgid "Sup"
+msgstr "Yläindeksi"
+
+#: editors/nicedit.inc:110
+#: editors/openwysiwyg.inc:151
+#: editors/tinymce.inc:387
+#: editors/yui.inc:285
+msgid "Sub"
+msgstr "Alaindeksi"
+
+#: editors/openwysiwyg.inc:149
+#: editors/tinymce.inc:385
+#: editors/whizzywig.inc:124
+msgid "Clean-up"
+msgstr "Poista muotoilu"
+
+#: editors/openwysiwyg.inc:155
+#: editors/tinymce.inc:391
+msgid "Visual aid"
+msgstr "Visuaalinen apu"
+
+#: editors/openwysiwyg.inc:159
+#: editors/tinymce.inc:459
+msgid "Fullscreen"
+msgstr "Kokoruututila"
+
+#: editors/openwysiwyg.inc:161
+#: editors/tinymce.inc:508
+msgid "Print"
+msgstr "Tulosta"
+
+#: editors/openwysiwyg.inc:163
+#: editors/tinymce.inc:394
+msgid "Help"
+msgstr "Ohje"
+
+#: editors/tinymce.inc:400
+msgid "Advanced horizontal rule"
+msgstr "Edistynyt vaakaviiva"
+
+#: editors/tinymce.inc:408
+msgid "Advanced image"
+msgstr "Edistynyt kuva"
+
+#: editors/tinymce.inc:416
+msgid "Advanced link"
+msgstr "Edistynyt linkki"
+
+#: editors/tinymce.inc:424
+msgid "Auto save"
+msgstr "Automaattinen tallennus"
+
+#: editors/tinymce.inc:431
+msgid "Context menu"
+msgstr "Kohdevalikko"
+
+#: editors/tinymce.inc:438
+msgid "Left-to-right"
+msgstr "Vasemmalta oikealle"
+
+#: editors/tinymce.inc:438
+msgid "Right-to-left"
+msgstr "Oikealta vasemmalle"
+
+#: editors/tinymce.inc:445
+msgid "Emotions"
+msgstr "Hymiöt"
+
+#: editors/tinymce.inc:466
+msgid "Inline popups"
+msgstr "Tekstinsisäiset ponnahdusikkunat"
+
+#: editors/tinymce.inc:476
+msgid "Insert date"
+msgstr "Lisää päiväys"
+
+#: editors/tinymce.inc:476
+msgid "Insert time"
+msgstr "Lisää aika"
+
+#: editors/tinymce.inc:487
+msgid "Insert layer"
+msgstr "Lisää taso"
+
+#: editors/tinymce.inc:487
+msgid "Move forward"
+msgstr "Siirrä eteenpäin"
+
+#: editors/tinymce.inc:487
+msgid "Move backward"
+msgstr "Siirrä taaksepäin"
+
+#: editors/tinymce.inc:487
+msgid "Absolute"
+msgstr "Absoluuttinen"
+
+#: editors/tinymce.inc:494
+msgid "Paste text"
+msgstr "Liitä teksti"
+
+#: editors/tinymce.inc:522
+msgid "Style properties"
+msgstr "Tyyliominaisuudet"
+
+#: editors/tinymce.inc:548
+msgid "Media"
+msgstr "Media"
+
+#: editors/tinymce.inc:555
+msgid "Citation"
+msgstr "Sitaatti"
+
+#: editors/tinymce.inc:555
+msgid "Deleted"
+msgstr "Poistettu"
+
+#: editors/tinymce.inc:555
+msgid "Abbreviation"
+msgstr "Lyhennetty muoto"
+
+#: editors/tinymce.inc:555
+msgid "Acronym"
+msgstr "Lyhenne"
+
+#: editors/tinymce.inc:555
+msgid "Inserted"
+msgstr "Lisätty"
+
+#: editors/tinymce.inc:571
+msgid "Safari compatibility"
+msgstr "Safari yhteensopivuus"
+
+#: editors/whizzywig.inc:126
+msgid "Spell check"
+msgstr "Oikoluku"
+
+#: editors/yui.inc:284
+msgid "Font Color"
+msgstr "Fontin väri"
+
+#: editors/yui.inc:284
+msgid "Background Color"
+msgstr "Taustaväri"
+
+#: editors/yui.inc:286
+msgid "Show/hide hidden elements"
+msgstr "Näytä/piilota piilotetut elementit"
+
+#: plugins/break.inc:14
+msgid "Teaser break"
+msgstr "Tiivistelmän katkaisu"
+
+#: plugins/break.inc:17
+msgid "Separate the teaser and body of this content"
+msgstr "Erota tämän sisällön tiivistelmä ja vartalo"
+
+#~ msgid "Home"
+#~ msgstr "Koti"
+#~ msgid "Administer"
+#~ msgstr "Ylläpitäjä"
+#~ msgid "Site configuration"
+#~ msgstr "Sivustoasetukset"
+#~ msgid "Wysiwyg profiles"
+#~ msgstr "Wysiwyg profiilit"
+#~ msgid "%format Wysiwyg profile"
+#~ msgstr "%format Wysiwyg profiili"
+#~ msgid "wysiwyg"
+#~ msgstr "wysiwyg"
+
diff --git a/sites/all/modules/wysiwyg/translations/fr.po b/sites/all/modules/wysiwyg/translations/fr.po
new file mode 100644
index 0000000000000000000000000000000000000000..5e658f9511687961f071c363068c75a9794bfac7
--- /dev/null
+++ b/sites/all/modules/wysiwyg/translations/fr.po
@@ -0,0 +1,836 @@
+# $Id: fr.po,v 1.2 2009/04/01 16:07:06 slybud Exp $
+#
+# French translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL@ADDRESS>
+# Generated from files:
+#  wysiwyg.api.php,v 1.2 2008/10/29 12:20:20 sun
+#  wysiwyg.admin.inc,v 1.6.2.2 2009/02/12 09:29:42 sun
+#  wysiwyg.plugins.inc,v 1.1 2008/10/14 21:45:07 sun
+#  wysiwyg.module,v 1.17.2.5 2009/02/01 10:05:20 sun
+#  wysiwyg.info,v 1.1 2008/10/14 21:45:07 sun
+#  wysiwyg.install,v 1.3 2008/11/03 23:57:40 sun
+#  fckeditor.inc,v 1.6.2.5 2009/02/13 02:22:29 sun
+#  markitup.inc,v 1.1.2.2 2009/01/06 01:40:37 sun
+#  nicedit.inc,v 1.4 2008/12/05 15:35:23 sun
+#  tinymce.inc,v 1.17.2.10 2009/02/13 03:31:49 sun
+#  whizzywig.inc,v 1.1 2008/11/17 00:06:33 sun
+#  yui.inc,v 1.1 2008/12/08 18:58:10 sun
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: french translation for wysiwyg drupal6 module\n"
+"POT-Creation-Date: 2009-04-01 17:46+0200\n"
+"PO-Revision-Date: 2009-04-01 18:03+0100\n"
+"Last-Translator: Sylvain Moreau <sylvain.moreau@ows.fr>\n"
+"Language-Team: Stéphane Bordage, BREEK/reviewed by Sylvain Moreau, OWS <sbordage@breek.fr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: FRANCE\n"
+
+#: wysiwyg.api.php:50;51
+msgid "My plugin title"
+msgstr "Titre de mon plugin"
+
+#: wysiwyg.api.php:60
+msgid "Button title (optional)"
+msgstr "Titre du bouton (optionnel)"
+
+#: wysiwyg.admin.inc:19
+msgid "Home"
+msgstr "Accueil"
+
+#: wysiwyg.admin.inc:20
+msgid "Administer"
+msgstr "Administrer"
+
+#: wysiwyg.admin.inc:21
+msgid "Site configuration"
+msgstr "Configuration du site"
+
+#: wysiwyg.admin.inc:22
+msgid "Wysiwyg profiles"
+msgstr "Profils wysiwyg "
+
+#: wysiwyg.admin.inc:78
+msgid "%format Wysiwyg profile"
+msgstr "Profil wysiwyg %format"
+
+#: wysiwyg.admin.inc:87
+msgid "Basic setup"
+msgstr "Paramétrage de base"
+
+#: wysiwyg.admin.inc:94
+msgid "Enabled by default"
+msgstr "Activé par défaut"
+
+#: wysiwyg.admin.inc:97
+msgid "The default editor state for users having access to this profile. Users are able to override this state if the next option is enabled."
+msgstr "L'état par défaut de l'éditeur pour les utilisateurs ayant accès à ce profil. Les utilisateurs peuvent surcharger cet état si la prochaine option (ci-dessous) est activée."
+
+#: wysiwyg.admin.inc:102
+msgid "Allow users to choose default"
+msgstr "Autoriser les utilisateurs à choisir un éditeur par défaut"
+
+#: wysiwyg.admin.inc:105
+msgid "If allowed, users will be able to choose their own editor default state in their user account settings."
+msgstr "Si autorisé, les utilisateurs pourront choisir leur éditeur par défaut dans les paramètres de leur compte utilisateur."
+
+#: wysiwyg.admin.inc:110
+msgid "Show <em>enable/disable rich text</em> toggle link"
+msgstr "Montrer un lien de basculement <em>activer / désactiver l'éditeur de texte riche</em>"
+
+#: wysiwyg.admin.inc:113
+msgid "Whether or not to show the <em>enable/disable rich text</em> toggle link below a textarea. If disabled, the user setting or global default is used (see above)."
+msgstr "Choisir de montrer ou non le lien  <em>activer / désactiver l'éditeur de texte riche</em> sous une zone de texte. Si désactivé, le paramétrage de l'utilisateur ou le paramétrage global par défaut est utilisé (voir ci-dessus)."
+
+#: wysiwyg.admin.inc:123
+msgid "Language"
+msgstr "Langue"
+
+#: wysiwyg.admin.inc:126
+msgid "The language to use for the editor interface. Language codes are based on the <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> format."
+msgstr "La langue à utiliser pour l'interface de l'éditeur. Les codes de langue sont basés sur le format <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a>."
+
+#: wysiwyg.admin.inc:131
+msgid "Buttons and plugins"
+msgstr "Boutons et plugins"
+
+#: wysiwyg.admin.inc:176
+msgid "Editor appearance"
+msgstr "Apparence de l'éditeur"
+
+#: wysiwyg.admin.inc:183
+msgid "Toolbar location"
+msgstr "Place de la barre d'outils"
+
+#: wysiwyg.admin.inc:185;201
+msgid "Bottom"
+msgstr "En bas"
+
+#: wysiwyg.admin.inc:185;201
+msgid "Top"
+msgstr "En haut"
+
+#: wysiwyg.admin.inc:186
+msgid "This option controls whether the editor toolbar is displayed above or below the editing area."
+msgstr "Cette option contrôle si la barre d'outils est affichée au-dessus ou en-dessous des zones d'édition."
+
+#: wysiwyg.admin.inc:191
+msgid "Button alignment"
+msgstr "Alignement des boutons"
+
+#: wysiwyg.admin.inc:193
+msgid "Center"
+msgstr "Centrer"
+
+#: wysiwyg.admin.inc:193
+msgid "Left"
+msgstr "Gauche"
+
+#: wysiwyg.admin.inc:193
+msgid "Right"
+msgstr "Droite"
+
+#: wysiwyg.admin.inc:194
+msgid "This option controls the alignment of icons in the editor toolbar."
+msgstr "Cette option contrôle l'alignement des icônes dans la barre d'outils de l'éditeur."
+
+#: wysiwyg.admin.inc:199
+msgid "Path location"
+msgstr "Chemin"
+
+#: wysiwyg.admin.inc:201
+msgid "Hide"
+msgstr "Cacher"
+
+#: wysiwyg.admin.inc:202
+msgid "Where to display the path to HTML elements (i.e. <code>body > table > tr > td</code>)."
+msgstr "Où afficher le chemin des éléments HTML (par exemple <code>body > table > tr > td</code>)."
+
+#: wysiwyg.admin.inc:207
+msgid "Enable resizing button"
+msgstr "Activer le bouton de redimensionnement"
+
+#: wysiwyg.admin.inc:210
+msgid "This option gives you the ability to enable/disable the resizing button. If enabled, the Path location toolbar must be set to \"Top\" or \"Bottom\" in order to display the resize icon."
+msgstr "Cette option vous donne la possibilité d'activer/désactiver le bouton de redimensionnement. Si activé, le chemin de la barre d'outils doit être  \"haut\" ou \"bas\" de manière à pouvoir afficher l'icône."
+
+#: wysiwyg.admin.inc:215
+msgid "Cleanup and output"
+msgstr "Nettoyage et sortie"
+
+#: wysiwyg.admin.inc:222
+msgid "Verify HTML"
+msgstr "Vérifier le HTML"
+
+#: wysiwyg.admin.inc:225
+msgid "If enabled, potentially malicious code like <code>&lt;HEAD&gt;</code> tags will be removed from HTML contents."
+msgstr "Si activé, du code potentiellement dangereux (<code>&lt;HEAD&gt;</code> par exemple) sera supprimer du contenu HTML."
+
+#: wysiwyg.admin.inc:230
+msgid "Preformatted"
+msgstr "Texte préformaté"
+
+#: wysiwyg.admin.inc:233
+msgid "If enabled, the editor will insert TAB characters on tab and preserve other whitespace characters just like a PRE element in HTML does."
+msgstr "Si activé, l'éditeur insérera des carractères TAB et préservera les autres carractères d'espace comme l'élément PRE en HTML."
+
+#: wysiwyg.admin.inc:238
+msgid "Convert &lt;font&gt; tags to styles"
+msgstr "Convertir les balises &lt;font&gt; en styles"
+
+#: wysiwyg.admin.inc:241
+msgid "If enabled, HTML tags declaring the font size, font family, font color and font background color will be replaced by inline CSS styles."
+msgstr "Si activé, les balises HTML déclarant la taille, la famille, la couleur de la police et la couleur du fond seront remplacées par des styles CSS inline."
+
+#: wysiwyg.admin.inc:246
+msgid "Remove linebreaks"
+msgstr "Supprimer les sauts en fin de ligne"
+
+#: wysiwyg.admin.inc:249
+msgid "If enabled, the editor will remove most linebreaks from contents. Disabling this option could avoid conflicts with other input filters."
+msgstr "Si activé, l'éditeur supprimera la plupart des sauts en fin de ligne du contenu. Désactiver cette option peut permettre d'éviter des conflits avec d'autres filtres d'entrée."
+
+#: wysiwyg.admin.inc:254
+msgid "Apply source formatting"
+msgstr "Reformater le code"
+
+#: wysiwyg.admin.inc:257
+msgid "If enabled, the editor will re-format the HTML source code. Disabling this option could avoid conflicts with other input filters."
+msgstr "Si activé, l'éditeur reformatera le code source HTML. Désactiver cette option peut permettre d'éviter des conflits avec d'autres filtres d'entrée."
+
+#: wysiwyg.admin.inc:262
+msgid "Force cleanup on standard paste"
+msgstr "Forcer le nettoyage lors des collages standards"
+
+#: wysiwyg.admin.inc:265
+msgid "If enabled, the default paste function (CTRL-V or SHIFT-INS) behaves like the \"paste from word\" plugin function."
+msgstr "Si activé, la fonction par défaut de collage (CTRL-V ou SHIFT-INS) se comporte comme la fonction \"Copier depuis Word\"."
+
+#: wysiwyg.admin.inc:270
+msgid "CSS"
+msgstr "CSS"
+
+#: wysiwyg.admin.inc:277
+msgid "Block formats"
+msgstr "Formats de bloc"
+
+#: wysiwyg.admin.inc:281
+msgid "Comma separated list of HTML block formats. Possible values: <code>@format-list</code>."
+msgstr "Liste séparée par des virgules de formats de bloc HTML. Valeurs possibles : <code>@format-list</code>."
+
+#: wysiwyg.admin.inc:286
+msgid "Editor CSS"
+msgstr "Editeur CSS"
+
+#: wysiwyg.admin.inc:288
+msgid "Use theme CSS"
+msgstr "Utiliser la CSS du thème"
+
+#: wysiwyg.admin.inc:288
+msgid "Define CSS"
+msgstr "Définir une CSS"
+
+#: wysiwyg.admin.inc:288
+msgid "Editor default CSS"
+msgstr "CSS par défaut de l'Editeur"
+
+#: wysiwyg.admin.inc:289
+msgid "Defines the CSS to be used in the editor area.<br />Use theme CSS - loads stylesheets from current site theme.<br/>Define CSS - enter path for stylesheet files below.<br />Editor default CSS - uses default stylesheets from editor."
+msgstr "Définit la CSS à utiliser dans la zone de l'éditeur.<br />Utiliser la CSS du thème - charge les feuilles de style depuis le thème courant<br/>Définir la CSS - saisissez le chemin des fichiers des feuilles de style ci-desous<br />CSS par défaut de l'éditeur - utilise les feuilles de style par défaut de l'éditeur."
+
+#: wysiwyg.admin.inc:294
+msgid "CSS path"
+msgstr "Chemin de la CSS"
+
+#: wysiwyg.admin.inc:298
+msgid "If \"Define CSS\" has been selected above, enter path to a CSS file or a list of CSS files seperated by a comma."
+msgstr "Si \"Définir une CSS\" a été sélectionné ci-dessus, saisissez le chemin vers la CSS ou une liste de CSS, séparées par des vigules."
+
+#: wysiwyg.admin.inc:298
+msgid "Available tokens: %b (base path, f.e.: /), %t (path to theme, f.e.: themes/garland)"
+msgstr "Jetons (tokens) disponibles : %b (chemin de base, / par exemple), %t (chemin du thème, themes/garland par exemple)"
+
+#: wysiwyg.admin.inc:298
+msgid "Examples:"
+msgstr "Exemples:"
+
+#: wysiwyg.admin.inc:303
+msgid "CSS classes"
+msgstr "Classes CSS"
+
+#: wysiwyg.admin.inc:305
+msgid "Optionally define CSS classes for the \"Font style\" dropdown list.<br />Enter one class on each line in the format: !format. Example: !example<br />If left blank, CSS classes are automatically imported from all loaded stylesheet(s)."
+msgstr "Vous pouvez définir des classes CSS pour la liste déroulante \"Style de police\". Saisissez une classe par ligne dans le format : !example<br />Si vide, les classes CSS sont automatiquement importées depuis toutes les CSS chargées."
+
+#: wysiwyg.admin.inc:310;444
+msgid "Save"
+msgstr "Enregistrer"
+
+#: wysiwyg.admin.inc:343
+msgid "Wysiwyg profile for %format has been saved."
+msgstr "Le profil wysiwyg pour %format a été enregistré."
+
+#: wysiwyg.admin.inc:392
+msgid "No editor"
+msgstr "Aucun éditeur"
+
+#: wysiwyg.admin.inc:396
+msgid "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Download</a>)"
+msgstr "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Télécharger</a>)"
+
+#: wysiwyg.admin.inc:397
+msgid "Not installed."
+msgstr "Non installé."
+
+#: wysiwyg.admin.inc:398
+msgid "Extract the archive and copy its contents into a new folder in the following location:<br /><code>@editor-path</code>"
+msgstr "Extraire l'archive et la copier dans un nouveau répertoire ici : <br /><code>@editor-path</code>"
+
+#: wysiwyg.admin.inc:409
+msgid "Installation instructions"
+msgstr "Instructions d'installation"
+
+#: wysiwyg.admin.inc:412
+msgid "There are no editor libraries installed currently. The following list contains a list of currently supported editors:"
+msgstr "Il n'y a pas de librairie d'éditeur installée pour le moment. La liste suivante contient la liste des éditeurs supportés pour l'instant :"
+
+#: wysiwyg.admin.inc:436
+msgid "Edit"
+msgstr "Éditer"
+
+#: wysiwyg.admin.inc:439;496
+msgid "Remove"
+msgstr "Supprimer"
+
+#: wysiwyg.admin.inc:456
+msgid "Input format"
+msgstr "Format d'entrée"
+
+#: wysiwyg.admin.inc:456
+msgid "Editor"
+msgstr "Editeur"
+
+#: wysiwyg.admin.inc:456
+msgid "Operations"
+msgstr "Opérations"
+
+#: wysiwyg.admin.inc:494
+msgid "Are you sure you want to remove the profile for %name?"
+msgstr "Êtes-vous sur de vouloir supprimer le profil pour %name ?"
+
+#: wysiwyg.admin.inc:496
+msgid "This action cannot be undone."
+msgstr "Cette action est irréversible."
+
+#: wysiwyg.admin.inc:496
+msgid "Cancel"
+msgstr "Annuler"
+
+#: wysiwyg.admin.inc:507
+msgid "Wysiwyg profile for %name has been deleted."
+msgstr "Le profil wysiwyg pour %name  a été supprimé."
+
+#: wysiwyg.plugins.inc:15
+msgid "Teaser break"
+msgstr "Séparation du résumé"
+
+#: wysiwyg.module:41
+msgid "A Wysiwyg profile can be associated to an input format. A Wysiwyg profile defines, which client-side editor is loaded, can define what buttons or themes are enabled for the editor, how the editor is displayed, and a few other editor-specific functions."
+msgstr "Un profil wysiwyg peut être associé à un format d'entrée. Un profil wysiwyg définit quel éditeur est chargé côté client, et peut définir quels boutons ou thèmes sont activés pour l'éditeur, la manière dont l'éditeur est affiché, et quelques autres fonctions spécifiques à l'éditeur."
+
+#: wysiwyg.module:273
+msgid "Disable rich-text"
+msgstr "Désactiver le texte riche"
+
+#: wysiwyg.module:274
+msgid "Enable rich-text"
+msgstr "Activer le texte riche"
+
+#: wysiwyg.module:485
+msgid "Wysiwyg Editor settings"
+msgstr "Paramètres de l'éditeur wysiwyg"
+
+#: wysiwyg.module:492
+msgid "Enable editor by default"
+msgstr "Activer l'éditeur par défaut"
+
+#: wysiwyg.module:495
+msgid "If enabled, rich-text editing is enabled by default in textarea fields."
+msgstr "si activé, l'édition de texte riche est activé par défaut dans les textearea."
+
+#: wysiwyg.module:579
+msgid "The version of %editor could not be detected."
+msgstr "La version de %editor ne peut pas être détectée."
+
+#: wysiwyg.module:592
+msgid "The installed version %version of %editor is not supported."
+msgstr "La version instalée (%version) de %editor n'est pas supportée."
+
+#: wysiwyg.module:15
+#: wysiwyg.info:0
+msgid "Wysiwyg"
+msgstr "Wysiwyg"
+
+#: wysiwyg.module:17
+msgid "Configure client-side editor profiles."
+msgstr "Configurer les profiles d'éditeur côté client."
+
+#: wysiwyg.module:0
+msgid "wysiwyg"
+msgstr "wysiwyg"
+
+#: wysiwyg.install:10
+msgid "Stores Wysiwyg profiles."
+msgstr "Sauvegarde les profile Wysiwyg."
+
+#: wysiwyg.info:0
+msgid "Allows users to edit contents with client-side editors."
+msgstr "Autorise les utilisateurs à éditer des contenus avec des éditeurs de texte riche."
+
+#: wysiwyg.info:0
+msgid "User interface"
+msgstr "Interface utilisateur"
+
+#: editors/fckeditor.inc:166
+#: editors/markitup.inc:91;140
+#: editors/nicedit.inc:102
+#: editors/tinymce.inc:344
+#: editors/whizzywig.inc:110
+#: editors/yui.inc:227
+msgid "Bold"
+msgstr "Gras"
+
+#: editors/fckeditor.inc:166
+#: editors/markitup.inc:92;140
+#: editors/nicedit.inc:102
+#: editors/tinymce.inc:344
+#: editors/whizzywig.inc:110
+#: editors/yui.inc:227
+msgid "Italic"
+msgstr "Italique"
+
+#: editors/fckeditor.inc:166
+#: editors/nicedit.inc:102
+#: editors/tinymce.inc:344
+#: editors/whizzywig.inc:110
+#: editors/yui.inc:227
+msgid "Underline"
+msgstr "Souligné"
+
+#: editors/fckeditor.inc:167
+#: editors/markitup.inc:93;141
+#: editors/nicedit.inc:103
+#: editors/tinymce.inc:345
+#: editors/yui.inc:228
+msgid "Strike-through"
+msgstr "Barré"
+
+#: editors/fckeditor.inc:168
+#: editors/nicedit.inc:104
+#: editors/tinymce.inc:346
+#: editors/whizzywig.inc:111
+#: editors/yui.inc:229
+msgid "Align left"
+msgstr "Aligné à gauche"
+
+#: editors/fckeditor.inc:168
+#: editors/nicedit.inc:104
+#: editors/tinymce.inc:346
+#: editors/whizzywig.inc:111
+#: editors/yui.inc:229
+msgid "Align center"
+msgstr "Centré"
+
+#: editors/fckeditor.inc:168
+#: editors/nicedit.inc:104
+#: editors/tinymce.inc:346
+#: editors/whizzywig.inc:111
+#: editors/yui.inc:229
+msgid "Align right"
+msgstr "Aligné à droite"
+
+#: editors/fckeditor.inc:168
+#: editors/tinymce.inc:346
+msgid "Justify"
+msgstr "Justifier"
+
+#: editors/fckeditor.inc:169
+#: editors/nicedit.inc:105
+#: editors/tinymce.inc:347
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:230
+msgid "Bullet list"
+msgstr "Liste à puces"
+
+#: editors/fckeditor.inc:169
+#: editors/nicedit.inc:105
+#: editors/tinymce.inc:347
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:230
+msgid "Numbered list"
+msgstr "Liste ordonnée"
+
+#: editors/fckeditor.inc:170
+#: editors/nicedit.inc:106
+#: editors/tinymce.inc:348
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:231
+msgid "Outdent"
+msgstr "Retrait positif"
+
+#: editors/fckeditor.inc:170
+#: editors/nicedit.inc:106
+#: editors/tinymce.inc:348
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:231
+msgid "Indent"
+msgstr "Retrait négatif"
+
+#: editors/fckeditor.inc:171
+#: editors/tinymce.inc:349
+#: editors/whizzywig.inc:114
+msgid "Undo"
+msgstr "Annuler"
+
+#: editors/fckeditor.inc:171
+#: editors/tinymce.inc:349
+#: editors/whizzywig.inc:114
+msgid "Redo"
+msgstr "Refaire"
+
+#: editors/fckeditor.inc:172
+#: editors/markitup.inc:95;143
+#: editors/nicedit.inc:113
+#: editors/tinymce.inc:350
+#: editors/whizzywig.inc:118
+#: editors/yui.inc:232
+msgid "Link"
+msgstr "Lien"
+
+#: editors/fckeditor.inc:172
+#: editors/nicedit.inc:113
+#: editors/tinymce.inc:350
+msgid "Unlink"
+msgstr "Supprimer le lien"
+
+#: editors/fckeditor.inc:172
+#: editors/tinymce.inc:350
+msgid "Anchor"
+msgstr "Ancre"
+
+#: editors/fckeditor.inc:173
+#: editors/markitup.inc:94;142
+#: editors/nicedit.inc:107
+#: editors/tinymce.inc:351
+#: editors/whizzywig.inc:115;119
+#: editors/yui.inc:233
+msgid "Image"
+msgstr "Image"
+
+#: editors/fckeditor.inc:174
+#: editors/nicedit.inc:108
+#: editors/tinymce.inc:353
+#: editors/whizzywig.inc:116
+msgid "Forecolor"
+msgstr "Couleur de premier plan"
+
+#: editors/fckeditor.inc:174
+#: editors/nicedit.inc:108
+#: editors/tinymce.inc:353
+#: editors/whizzywig.inc:116
+msgid "Backcolor"
+msgstr "Couleur du fond"
+
+#: editors/fckeditor.inc:175
+msgid "Superscript"
+msgstr "Superscript"
+
+#: editors/fckeditor.inc:175
+msgid "Subscript"
+msgstr "Sous-script"
+
+#: editors/fckeditor.inc:176
+#: editors/tinymce.inc:355
+msgid "Blockquote"
+msgstr "Citation"
+
+#: editors/fckeditor.inc:176
+#: editors/nicedit.inc:115
+#: editors/tinymce.inc:355
+#: editors/whizzywig.inc:122
+msgid "Source code"
+msgstr "Code source"
+
+#: editors/fckeditor.inc:177
+#: editors/nicedit.inc:110
+#: editors/tinymce.inc:356
+#: editors/whizzywig.inc:117
+msgid "Horizontal rule"
+msgstr "Règle horizontale"
+
+#: editors/fckeditor.inc:178
+#: editors/tinymce.inc:357
+msgid "Cut"
+msgstr "Couper"
+
+#: editors/fckeditor.inc:178
+#: editors/tinymce.inc:357
+msgid "Copy"
+msgstr "Copier"
+
+#: editors/fckeditor.inc:178
+#: editors/tinymce.inc:357
+msgid "Paste"
+msgstr "Coller"
+
+#: editors/fckeditor.inc:179
+msgid "Paste Text"
+msgstr "Coller le Texte"
+
+#: editors/fckeditor.inc:179
+#: editors/tinymce.inc:468
+msgid "Paste from Word"
+msgstr "Coller à partir de Word"
+
+#: editors/fckeditor.inc:180
+msgid "Show blocks"
+msgstr "Afficher les blocs"
+
+#: editors/fckeditor.inc:181
+#: editors/tinymce.inc:359
+#: editors/yui.inc:236
+msgid "Remove format"
+msgstr "Supprimer le formatage"
+
+#: editors/fckeditor.inc:182
+#: editors/tinymce.inc:360
+msgid "Character map"
+msgstr "Carte des carractères"
+
+#: editors/fckeditor.inc:183
+msgid "About"
+msgstr "A propos"
+
+#: editors/fckeditor.inc:185
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:426
+#: editors/whizzywig.inc:109
+#: editors/yui.inc:238
+msgid "HTML block format"
+msgstr "Format de bloc HTML"
+
+#: editors/fckeditor.inc:185
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:426
+#: editors/whizzywig.inc:109
+#: editors/yui.inc:238
+msgid "Font"
+msgstr "Police"
+
+#: editors/fckeditor.inc:185
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:426
+#: editors/whizzywig.inc:109
+#: editors/yui.inc:238
+msgid "Font size"
+msgstr "Taille de la police"
+
+#: editors/fckeditor.inc:185
+#: editors/tinymce.inc:426
+#: editors/yui.inc:238
+msgid "Font style"
+msgstr "Style de police"
+
+#: editors/fckeditor.inc:186
+#: editors/tinymce.inc:503
+#: editors/whizzywig.inc:120
+msgid "Table"
+msgstr "Tableau"
+
+#: editors/fckeditor.inc:187
+#: editors/tinymce.inc:489
+msgid "Search"
+msgstr "Recherche"
+
+#: editors/fckeditor.inc:187
+#: editors/tinymce.inc:489
+msgid "Replace"
+msgstr "Remplacer"
+
+#: editors/fckeditor.inc:187
+#: editors/tinymce.inc:468
+msgid "Select all"
+msgstr "Tout sélectionner"
+
+#: editors/fckeditor.inc:188
+msgid "Create DIV container"
+msgstr "Créer un conteneur DIV"
+
+#: editors/fckeditor.inc:189
+#: editors/tinymce.inc:418
+msgid "Flash"
+msgstr "Flash"
+
+#: editors/fckeditor.inc:189
+msgid "Smiley"
+msgstr "Emoticone (Smiley)"
+
+#: editors/fckeditor.inc:190
+#, fuzzy
+msgid "FitWindow"
+msgstr "FitWindow"
+
+#: editors/fckeditor.inc:191
+msgid "Check spelling"
+msgstr "Vérification d'orthographe"
+
+#: editors/markitup.inc:98;145
+#: editors/tinymce.inc:475
+msgid "Preview"
+msgstr "Aperçu"
+
+#: editors/nicedit.inc:109
+#: editors/tinymce.inc:354
+#: editors/yui.inc:235
+msgid "Sup"
+msgstr "Exposant"
+
+#: editors/nicedit.inc:109
+#: editors/tinymce.inc:354
+#: editors/yui.inc:235
+msgid "Sub"
+msgstr "Indice"
+
+#: editors/tinymce.inc:352
+#: editors/whizzywig.inc:121
+msgid "Clean-up"
+msgstr "Nettoyage"
+
+#: editors/tinymce.inc:358
+msgid "Visual aid"
+msgstr "Aide visuelle"
+
+#: editors/tinymce.inc:361
+msgid "Help"
+msgstr "Aide"
+
+#: editors/tinymce.inc:366
+msgid "Advanced horizontal rule"
+msgstr "Règle horizontale avancée"
+
+#: editors/tinymce.inc:374
+msgid "Advanced image"
+msgstr "Image avancée"
+
+#: editors/tinymce.inc:382
+msgid "Advanced link"
+msgstr "Lien avancé"
+
+#: editors/tinymce.inc:390
+msgid "Auto save"
+msgstr "Enregistrement automatique"
+
+#: editors/tinymce.inc:397
+msgid "Context menu"
+msgstr "Menu contextuel"
+
+#: editors/tinymce.inc:404
+msgid "Left-to-right"
+msgstr "De gauche à droite"
+
+#: editors/tinymce.inc:404
+msgid "Right-to-left"
+msgstr "De droite à gauche"
+
+#: editors/tinymce.inc:411
+msgid "Emotions"
+msgstr "Emotions"
+
+#: editors/tinymce.inc:433
+msgid "Fullscreen"
+msgstr "Plein écran"
+
+#: editors/tinymce.inc:440
+msgid "Inline popups"
+msgstr "Popup incluses"
+
+#: editors/tinymce.inc:450
+msgid "Insert date"
+msgstr "Insérer la date"
+
+#: editors/tinymce.inc:450
+msgid "Insert time"
+msgstr "Insérer l'heure"
+
+#: editors/tinymce.inc:461
+msgid "Insert layer"
+msgstr "Insérer un calque"
+
+#: editors/tinymce.inc:461
+msgid "Move forward"
+msgstr "Déplacer en avant"
+
+#: editors/tinymce.inc:461
+msgid "Move backward"
+msgstr "Déplacer en arrière"
+
+#: editors/tinymce.inc:461
+msgid "Absolute"
+msgstr "Absolu"
+
+#: editors/tinymce.inc:468
+msgid "Paste text"
+msgstr "Coller le texte"
+
+#: editors/tinymce.inc:482
+msgid "Print"
+msgstr "Imprimer"
+
+#: editors/tinymce.inc:496
+msgid "Style properties"
+msgstr "Propriétés du style"
+
+#: editors/tinymce.inc:512
+msgid "Citation"
+msgstr "Citation"
+
+#: editors/tinymce.inc:512
+msgid "Deleted"
+msgstr "Supprimé"
+
+#: editors/tinymce.inc:512
+msgid "Abbreviation"
+msgstr "Abrévation"
+
+#: editors/tinymce.inc:512
+msgid "Acronym"
+msgstr "Acronyme"
+
+#: editors/tinymce.inc:512
+msgid "Inserted"
+msgstr "Inséré"
+
+#: editors/tinymce.inc:519
+msgid "Safari compatibility"
+msgstr "Compatibilité avec Safari"
+
+#: editors/whizzywig.inc:123
+msgid "Spell check"
+msgstr "Vérification d'orthographe"
+
+#: editors/yui.inc:234
+msgid "Font Color"
+msgstr "Couleur de Police"
+
+#: editors/yui.inc:234
+msgid "Background Color"
+msgstr "Couleur de Fong"
+
+#: editors/yui.inc:237
+msgid "Show/hide hidden elements"
+msgstr "Afficher/Cacher les élemets cachés"
+
diff --git a/sites/all/modules/wysiwyg/translations/hu.po b/sites/all/modules/wysiwyg/translations/hu.po
new file mode 100644
index 0000000000000000000000000000000000000000..b4b5398e3511733100e7907619f2d9de4b8f706c
--- /dev/null
+++ b/sites/all/modules/wysiwyg/translations/hu.po
@@ -0,0 +1,908 @@
+# Hungarian translation of wysiwyg (6.x-2.0)
+# Copyright (c) 2009 by the Hungarian translation team
+# Generated from files:
+#  wysiwyg.admin.inc,v 1.15 2009/06/09 00:18:11 sun
+#  fckeditor.inc,v 1.17 2009/06/09 00:18:11 sun
+#  tinymce.inc,v 1.35 2009/06/09 00:18:12 sun
+#  wysiwyg.module,v 1.33 2009/06/09 00:18:11 sun
+#  markitup.inc,v 1.5 2009/06/09 00:18:12 sun
+#  openwysiwyg.inc,v 1.2 2009/06/09 00:18:12 sun
+#  whizzywig.inc,v 1.3 2009/06/09 00:18:12 sun
+#  yui.inc,v 1.5 2009/06/09 00:18:12 sun
+#  wysiwyg.info,v 1.1 2008/10/14 21:45:07 sun
+#  nicedit.inc,v 1.6 2009/06/09 00:18:12 sun
+#  wysiwyg.api.php,v 1.3 2009/06/09 00:18:11 sun
+#  break.inc,v 1.4 2009/06/09 00:18:12 sun
+#  wysiwyg.install,v 1.4 2009/06/08 21:57:10 sun
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: wysiwyg (6.x-2.0)\n"
+"POT-Creation-Date: 2009-06-12 19:14+0200\n"
+"PO-Revision-Date: 2009-05-21 20:16+0200\n"
+"Last-Translator: Balogh Zoltán\n"
+"Language-Team: Hungarian http://forditas.mindworks.hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: wysiwyg.admin.inc:450
+msgid "Operations"
+msgstr "Műveletek"
+
+#: wysiwyg.admin.inc:489
+msgid "Cancel"
+msgstr "Mégsem"
+
+#: wysiwyg.admin.inc:96
+msgid "Language"
+msgstr "Nyelv"
+
+#: editors/fckeditor.inc:237; editors/tinymce.inc:515
+msgid "Search"
+msgstr "Keresés"
+
+#: wysiwyg.admin.inc:283,438
+msgid "Save"
+msgstr "Mentés"
+
+#: wysiwyg.admin.inc:489
+msgid "This action cannot be undone."
+msgstr "A művelet nem visszavonható."
+
+#: wysiwyg.admin.inc:433,489; wysiwyg.module:36
+msgid "Remove"
+msgstr "Eltávolítás"
+
+#: editors/markitup.inc:142,176; editors/openwysiwyg.inc:160; editors/tinymce.inc:501
+msgid "Preview"
+msgstr "Előnézet"
+
+#: wysiwyg.admin.inc:203
+msgid "Preformatted"
+msgstr "Előre formázott"
+
+#: editors/tinymce.inc:555
+msgid "Abbreviation"
+msgstr "Rövidítés"
+
+#: editors/tinymce.inc:555
+msgid "Acronym"
+msgstr "Betűszó"
+
+#: editors/fckeditor.inc:236; editors/openwysiwyg.inc:162; editors/tinymce.inc:529; editors/whizzywig.inc:123
+msgid "Table"
+msgstr "Táblázat"
+
+#: editors/tinymce.inc:555
+msgid "Deleted"
+msgstr "Törölt"
+
+#: editors/tinymce.inc:555
+msgid "Inserted"
+msgstr "Beillesztett"
+
+#: wysiwyg.admin.inc:450
+msgid "Input format"
+msgstr "Beviteli forma"
+
+#: wysiwyg.admin.inc:430; wysiwyg.module:26
+msgid "Edit"
+msgstr "Szerkesztés"
+
+#: editors/openwysiwyg.inc:163; editors/tinymce.inc:394
+msgid "Help"
+msgstr "Súgó"
+
+#: editors/fckeditor.inc:222; editors/openwysiwyg.inc:146; editors/tinymce.inc:382; editors/whizzywig.inc:117; editors/yui.inc:281
+msgid "Undo"
+msgstr "Visszavonás"
+
+#: wysiwyg.module:22
+msgid "Profiles"
+msgstr "Profilok"
+
+#: editors/fckeditor.inc:231
+msgid "Show blocks"
+msgstr "Blokkok mutatása"
+
+#: editors/tinymce.inc:548
+msgid "Media"
+msgstr "Média"
+
+#: wysiwyg.info:0
+msgid "User interface"
+msgstr "Felhasználói felület"
+
+#: wysiwyg.admin.inc:174
+msgid "Hide"
+msgstr "Elrejt"
+
+#: editors/fckeditor.inc:223; editors/markitup.inc:132,174; editors/nicedit.inc:114; editors/openwysiwyg.inc:147; editors/tinymce.inc:383; editors/whizzywig.inc:121; editors/yui.inc:282
+msgid "Link"
+msgstr "Hivatkozás"
+
+#: editors/fckeditor.inc:224; editors/markitup.inc:126,173; editors/nicedit.inc:108; editors/openwysiwyg.inc:148; editors/tinymce.inc:384; editors/whizzywig.inc:118,122; editors/yui.inc:283
+msgid "Image"
+msgstr "Kép"
+
+#: editors/fckeditor.inc:237; editors/tinymce.inc:515
+msgid "Replace"
+msgstr "Helyettesít"
+
+#: wysiwyg.admin.inc:60
+msgid "Basic setup"
+msgstr "Alap beállítás"
+
+#: wysiwyg.admin.inc:149
+msgid "Editor appearance"
+msgstr "Szerkesztő megjelenése"
+
+#: wysiwyg.admin.inc:188
+msgid "Cleanup and output"
+msgstr "Tisztítás és kimenet"
+
+#: wysiwyg.admin.inc:227
+msgid "Apply source formatting"
+msgstr "Forrás formázás alkalmazása"
+
+#: wysiwyg.admin.inc:243
+msgid "CSS"
+msgstr "CSS"
+
+#: wysiwyg.admin.inc:259
+msgid "Editor CSS"
+msgstr "Szerkesztő CSS"
+
+#: wysiwyg.admin.inc:267
+msgid "CSS path"
+msgstr "CSS útvonal"
+
+#: wysiwyg.admin.inc:75
+msgid "Allow users to choose default"
+msgstr "Alapértelmezés megváltoztatásának engedélyezése"
+
+#: wysiwyg.admin.inc:104
+msgid "Buttons and plugins"
+msgstr "Nyomógombok és bővítmények"
+
+#: wysiwyg.admin.inc:156
+msgid "Toolbar location"
+msgstr "Eszköztár elhelyezése"
+
+#: wysiwyg.admin.inc:172
+msgid "Path location"
+msgstr "Elérési út"
+
+#: wysiwyg.admin.inc:180
+msgid "Enable resizing button"
+msgstr "Átméretezés gomb engedélyezése"
+
+#: wysiwyg.admin.inc:250
+msgid "Block formats"
+msgstr "Blokk formátumok"
+
+#: wysiwyg.admin.inc:195
+msgid "Verify HTML"
+msgstr "HTML ellenőrzése"
+
+#: wysiwyg.admin.inc:211
+msgid "Convert &lt;font&gt; tags to styles"
+msgstr "&lt;font&gt; tagek átalakítása a stílushoz"
+
+#: wysiwyg.admin.inc:219
+msgid "Remove linebreaks"
+msgstr "Sortörések eltávolítása"
+
+#: wysiwyg.admin.inc:276
+msgid "CSS classes"
+msgstr "CSS osztályok"
+
+#: editors/fckeditor.inc:235; editors/nicedit.inc:115; editors/openwysiwyg.inc:158; editors/tinymce.inc:452; editors/whizzywig.inc:112; editors/yui.inc:288
+msgid "Font"
+msgstr "Betűtípus"
+
+#: editors/fckeditor.inc:235; editors/nicedit.inc:115; editors/openwysiwyg.inc:158; editors/tinymce.inc:452; editors/whizzywig.inc:112; editors/yui.inc:288
+msgid "Font size"
+msgstr "Betűméret"
+
+#: editors/openwysiwyg.inc:161; editors/tinymce.inc:508
+msgid "Print"
+msgstr "Nyomtatás"
+
+#: editors/yui.inc:284
+msgid "Background Color"
+msgstr "Háttérszín"
+
+#: editors/fckeditor.inc:227; editors/openwysiwyg.inc:152; editors/tinymce.inc:388
+msgid "Blockquote"
+msgstr "Idézet"
+
+#: wysiwyg.admin.inc:166
+msgid "Left"
+msgstr "Bal"
+
+#: wysiwyg.admin.inc:164
+msgid "Button alignment"
+msgstr "Nyomógombok igazítása"
+
+#: wysiwyg.admin.inc:166
+msgid "Right"
+msgstr "Jobb"
+
+#: editors/fckeditor.inc:229; editors/openwysiwyg.inc:154; editors/tinymce.inc:390
+msgid "Copy"
+msgstr "Másolás"
+
+#: editors/fckeditor.inc:217; editors/markitup.inc:105,171; editors/nicedit.inc:103; editors/openwysiwyg.inc:141; editors/tinymce.inc:377; editors/whizzywig.inc:113; editors/yui.inc:276
+msgid "Bold"
+msgstr "Vastag"
+
+#: editors/fckeditor.inc:234
+msgid "About"
+msgstr "Névjegy"
+
+#: editors/tinymce.inc:487
+msgid "Absolute"
+msgstr "Abszolút"
+
+#: wysiwyg.api.php:51,52
+msgid "My plugin title"
+msgstr "Bővítmény címe"
+
+#: wysiwyg.api.php:61
+msgid "Button title (optional)"
+msgstr "Nyomógomb neve (választható)"
+
+#: wysiwyg.admin.inc:67
+msgid "Enabled by default"
+msgstr "Alapértelmezés szerint engedélyezett"
+
+#: wysiwyg.admin.inc:70
+msgid ""
+"The default editor state for users having access to this profile. "
+"Users are able to override this state if the next option is enabled."
+msgstr ""
+"Az alapértelmezett szerkesztő állapot lehetővé teszi a "
+"felhasználók hozzáférését ehhez a profilhoz. A felhasználók "
+"felülírhatják ezt az állapotot, ha a következő lehetőség "
+"engedélyezve van."
+
+#: wysiwyg.admin.inc:78
+msgid ""
+"If allowed, users will be able to choose their own editor default "
+"state in their user account settings."
+msgstr ""
+"Ha ez engedélyezett, akkor a felhasználók megváltoztathatják "
+"szerkesztőjük alapértelmezett állapotát a felhasználói "
+"profiljukban."
+
+#: wysiwyg.admin.inc:83
+msgid "Show <em>enable/disable rich text</em> toggle link"
+msgstr ""
+"Mutassa a <em>szövegszerkesztő engedélyezése / tiltása</em> "
+"kapcsoló hivatkozást."
+
+#: wysiwyg.admin.inc:86
+msgid ""
+"Whether or not to show the <em>enable/disable rich text</em> toggle "
+"link below a textarea. If disabled, the user setting or global default "
+"is used (see above)."
+msgstr ""
+"Megjelenjen a <em>szövegszerkesztő engedélyezése / tiltása</em> "
+"hivatkozás a szövegmező alatt, avagy sem. Ha nem engedélyezett, "
+"akkor a felhasználói beállítás vagy a globális alapértelmezés "
+"lesz alkalmazva (lásd fent)."
+
+#: wysiwyg.admin.inc:99
+msgid ""
+"The language to use for the editor interface. Language codes are based "
+"on the <a "
+"href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> "
+"format."
+msgstr ""
+"A szerkesztő felületén használandó nyelv. A nyelvkódok alapja az "
+"<a "
+"href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> "
+"formátum."
+
+#: wysiwyg.admin.inc:158,174
+msgid "Bottom"
+msgstr "Lenn"
+
+#: wysiwyg.admin.inc:158,174
+msgid "Top"
+msgstr "Fenn"
+
+#: wysiwyg.admin.inc:159
+msgid ""
+"This option controls whether the editor toolbar is displayed above or "
+"below the editing area."
+msgstr ""
+"Ez a beállítás határozza meg, hogy az eszköztár a szövegmező "
+"alatt vagy felett jelenjen meg."
+
+#: wysiwyg.admin.inc:166
+msgid "Center"
+msgstr "Középen"
+
+#: wysiwyg.admin.inc:167
+msgid "This option controls the alignment of icons in the editor toolbar."
+msgstr ""
+"Ez a beállítás az ikonok elhelyezkedését szabályozza a "
+"szerkesztő eszköztárán."
+
+#: wysiwyg.admin.inc:175
+msgid ""
+"Where to display the path to HTML elements (i.e. <code>body > table > "
+"tr > td</code>)."
+msgstr ""
+"Hol jelenjen meg a HTML elemek elérési útvonala (pl. <code>body > "
+"table > tr > td</code>)."
+
+#: wysiwyg.admin.inc:183
+msgid ""
+"This option gives you the ability to enable/disable the resizing "
+"button. If enabled, the Path location toolbar must be set to \"Top\" "
+"or \"Bottom\" in order to display the resize icon."
+msgstr ""
+"Ez a beállítás lehetővé teszi az átméretező gomb "
+"engedélyezését / tiltását. Ha engedélyezett, akkor az elérési "
+"út eszköztárat „Fenn”, vagy „Lenn” értékre kell "
+"állítani, hogy az átmérezető ikon megjelenhessen."
+
+#: wysiwyg.admin.inc:198
+msgid ""
+"If enabled, potentially malicious code like <code>&lt;HEAD&gt;</code> "
+"tags will be removed from HTML contents."
+msgstr ""
+"Ha ez engedélyezett, akkor lehetséges a hibás kódok, mint "
+"például a <code>&lt;HEAD&gt;</code> tag eltávolítása a HTML "
+"elemekből."
+
+#: wysiwyg.admin.inc:206
+msgid ""
+"If enabled, the editor will insert TAB characters on tab and preserve "
+"other whitespace characters just like a PRE element in HTML does."
+msgstr ""
+"Ha ez engedélyezett, akkor a szerkesztő TAB karaktereket fog "
+"beszúrni, és megőriz más helyörző karaktereket, mint ahogy a PRE "
+"elem teszi a HTML-ben."
+
+#: wysiwyg.admin.inc:214
+msgid ""
+"If enabled, HTML tags declaring the font size, font family, font color "
+"and font background color will be replaced by inline CSS styles."
+msgstr ""
+"Ha ez engedélyezett, akkor a HTML jelölők határozzák meg a "
+"betűméretet, a betűtipust, a betű-, és háttérszínt a "
+"beágyazott CSS stílus helyett."
+
+#: wysiwyg.admin.inc:222
+msgid ""
+"If enabled, the editor will remove most linebreaks from contents. "
+"Disabling this option could avoid conflicts with other input filters."
+msgstr ""
+"Ha ez engedélyezett, akkor a szerkesztő eltávolítja a felesleges "
+"sortöréseket a szövegből. Letiltásával elkerülhető az "
+"ütközés más beviteli szűrőkkel."
+
+#: wysiwyg.admin.inc:230
+msgid ""
+"If enabled, the editor will re-format the HTML source code. Disabling "
+"this option could avoid conflicts with other input filters."
+msgstr ""
+"Ha ez engedélyezett, akkor a szerkesztő újra fogja formázni a HTML "
+"forráskódot. Letiltásával elkerülhető az ütközés más "
+"beviteli szűrőkkel."
+
+#: wysiwyg.admin.inc:235
+msgid "Force cleanup on standard paste"
+msgstr "Kényszerített tisztítás beszúráskor"
+
+#: wysiwyg.admin.inc:238
+msgid ""
+"If enabled, the default paste function (CTRL-V or SHIFT-INS) behaves "
+"like the \"paste from word\" plugin function."
+msgstr ""
+"Ha ez engedélyezett, akkor az alapértelmezett beszúrás művelet "
+"(CTRL-V vagy SHIFT-INS) viselkedése hasonló lesz a „beszúrás "
+"Wordből” művelethez."
+
+#: wysiwyg.admin.inc:254
+msgid ""
+"Comma separated list of HTML block formats. Possible values: "
+"<code>@format-list</code>."
+msgstr ""
+"HTML blokk formátumok vesszővel elválasztott listája. Lehetséges "
+"értékei: <code>@format-list</code>."
+
+#: wysiwyg.admin.inc:261
+msgid "Use theme CSS"
+msgstr "Smink CSS használata"
+
+#: wysiwyg.admin.inc:261
+msgid "Define CSS"
+msgstr "CSS megadása"
+
+#: wysiwyg.admin.inc:261
+msgid "Editor default CSS"
+msgstr "Szerkesztő alapértelmezett CSS"
+
+#: wysiwyg.admin.inc:262
+msgid ""
+"Defines the CSS to be used in the editor area.<br />Use theme CSS - "
+"loads stylesheets from current site theme.<br/>Define CSS - enter path "
+"for stylesheet files below.<br />Editor default CSS - uses default "
+"stylesheets from editor."
+msgstr ""
+"A szerkesztőben használandó CSS stíluslap meghatározása.<br "
+"/>Smink CSS használata - az oldal jelenlegi stíluslapjának "
+"betöltése.<br />CSS megadása - a kivánt stíluslap elérési "
+"útjának megadása lejjebb.<br />Szerkesztő alapértelmezett CSS - a "
+"szerkesztő alapértelmezett stíluslapjának használata."
+
+#: wysiwyg.admin.inc:271
+msgid ""
+"Available tokens: <code>%b</code> (base path, eg: <code>/</code>), "
+"<code>%t</code> (path to theme, eg: <code>themes/garland</code>)"
+msgstr ""
+"Elérhető vezérjelek: <code>%b</code> (bázis útvonal, pl: "
+"<code>/</code>), <code>%t</code> (útvonal a sminkhez, pl: "
+"<code>themes/garland</code>)"
+
+#: wysiwyg.admin.inc:271
+msgid "Example:"
+msgstr "Példa:"
+
+#: wysiwyg.admin.inc:278
+msgid ""
+"Optionally define CSS classes for the \"Font style\" dropdown list.<br "
+"/>Enter one class on each line in the format: !format. Example: "
+"!example<br />If left blank, CSS classes are automatically imported "
+"from all loaded stylesheet(s)."
+msgstr ""
+"Lehetséges CSS osztályok megadása is a „Betű stílus” "
+"legördülő listához.<br />Soronként egy osztály adható meg ebben "
+"a formátumban: !format. Például: !example<br />Üresen hagyva a CSS "
+"osztályok automatikusan betöltésre kerülnek minden betöltött "
+"stíluslapról."
+
+#: wysiwyg.admin.inc:317
+msgid "Wysiwyg profile for %format has been saved."
+msgstr "%format <em>Wysiwyg</em> profil mentve."
+
+#: wysiwyg.admin.inc:366
+msgid "No editor"
+msgstr "Nincs szerkesztő"
+
+#: wysiwyg.admin.inc:371
+msgid ""
+"<a href=\"!vendor-url\">@editor</a> (<a "
+"href=\"!download-url\">Download</a>)"
+msgstr ""
+"<a href=\"!vendor-url\">@editor</a> (<a "
+"href=\"!download-url\">Letöltés</a>)"
+
+#: wysiwyg.admin.inc:372
+msgid "Not installed."
+msgstr "Nincs telepítve."
+
+#: wysiwyg.admin.inc:386
+msgid ""
+"Extract the archive and copy its contents into a new folder in the "
+"following location:<br /><code>@editor-path</code>"
+msgstr ""
+"Az archívumból kicsomagolt összes fájlt egy új könyvtárba kell "
+"másolni az alábbi helyre:<br /><code>@editor-path</code>"
+
+#: wysiwyg.admin.inc:402
+msgid "Installation instructions"
+msgstr "Telepítési útmutató"
+
+#: wysiwyg.admin.inc:405
+msgid ""
+"There are no editor libraries installed currently. The following list "
+"contains a list of currently supported editors:"
+msgstr ""
+"Jelenleg nincs egy szerkesztő program sem telepítve. A következő "
+"lista tartalmazza a jelenleg támogatott szerkesztőket:"
+
+#: wysiwyg.admin.inc:450
+msgid "Editor"
+msgstr "Szerkesztő"
+
+#: wysiwyg.admin.inc:487
+msgid "Are you sure you want to remove the profile for %name?"
+msgstr "%name profil valóban eltávolítható?"
+
+#: wysiwyg.admin.inc:501
+msgid "Wysiwyg profile for %name has been deleted."
+msgstr "%name <em>Wysiwyg</em> profil törölve."
+
+#: plugins/break.inc:14
+msgid "Teaser break"
+msgstr "Bevezető töréspont"
+
+#: wysiwyg.module:80
+msgid ""
+"A Wysiwyg profile can be associated to an input format. A Wysiwyg "
+"profile defines which client-side editor is loaded, what buttons or "
+"themes are enabled for the editor, how the editor is displayed, and a "
+"few other editor-specific functions."
+msgstr ""
+"Az egyes <em>Wysiwyg</em> profilokat különböző beviteli "
+"formátumokhoz lehet társítani. A <em>Wysiwig</em> profil "
+"meghatározza, hogy milyen ügyfél-oldali szerkesztő legyen "
+"betöltve, milyen nyomógombok és sminkek legyenek elérhetők a "
+"szerkesztőben, hogy jelenjen meg a szerkesztő és néhány egyéb, "
+"szerkesztő-specifikus funkciókat."
+
+#: wysiwyg.module:306
+msgid "Disable rich-text"
+msgstr "Szövegszerkesztő tiltása"
+
+#: wysiwyg.module:307
+msgid "Enable rich-text"
+msgstr "Szövegszerkesztő engedélyezése"
+
+#: wysiwyg.module:608
+msgid "Wysiwyg Editor settings"
+msgstr "<em>Wysiwyg</em> szerkesztő beállítások"
+
+#: wysiwyg.module:615
+msgid "Enable editor by default"
+msgstr "A szerkesztő engedélyezése alapértelmezésben"
+
+#: wysiwyg.module:618
+msgid ""
+"If enabled, rich-text editing is enabled by default in textarea "
+"fields."
+msgstr ""
+"Ha ez engedélyezett, akkor a szövegszerkesztés alapértelmezett "
+"lesz a szövegmezőkben."
+
+#: wysiwyg.module:702
+msgid "The version of %editor could not be detected."
+msgstr "%editor verziószáma nem érzékelhető."
+
+#: wysiwyg.module:715
+msgid "The installed version %version of %editor is not supported."
+msgstr "A telepített %editor %version nem támogatott."
+
+#: wysiwyg.module:14; wysiwyg.info:0
+msgid "Wysiwyg"
+msgstr "Wysiwyg"
+
+#: wysiwyg.module:0
+msgid "wysiwyg"
+msgstr "wysiwyg"
+
+#: wysiwyg.install:10
+msgid "Stores Wysiwyg profiles."
+msgstr "Wysiwyg profilok tárolása."
+
+#: wysiwyg.info:0
+msgid "Allows users to edit contents with client-side editors."
+msgstr ""
+"Lehetővé teszi a felhasználók számára, hogy ügyfél-oldali "
+"szerkesztővel módosítsák tartalmakat."
+
+#: editors/fckeditor.inc:217; editors/markitup.inc:112,171; editors/nicedit.inc:103; editors/openwysiwyg.inc:141; editors/tinymce.inc:377; editors/whizzywig.inc:113; editors/yui.inc:276
+msgid "Italic"
+msgstr "Dőlt"
+
+#: editors/fckeditor.inc:217; editors/nicedit.inc:103; editors/openwysiwyg.inc:141; editors/tinymce.inc:377; editors/whizzywig.inc:113; editors/yui.inc:276
+msgid "Underline"
+msgstr "Aláhúzott"
+
+#: editors/fckeditor.inc:218; editors/markitup.inc:119,172; editors/nicedit.inc:104; editors/openwysiwyg.inc:142; editors/tinymce.inc:378; editors/yui.inc:277
+msgid "Strike-through"
+msgstr "Áthúzott"
+
+#: editors/fckeditor.inc:219; editors/nicedit.inc:105; editors/openwysiwyg.inc:143; editors/tinymce.inc:379; editors/whizzywig.inc:114; editors/yui.inc:278
+msgid "Align left"
+msgstr "Balra zárt"
+
+#: editors/fckeditor.inc:219; editors/nicedit.inc:105; editors/openwysiwyg.inc:143; editors/tinymce.inc:379; editors/whizzywig.inc:114; editors/yui.inc:278
+msgid "Align center"
+msgstr "Középre zárt"
+
+#: editors/fckeditor.inc:219; editors/nicedit.inc:105; editors/openwysiwyg.inc:143; editors/tinymce.inc:379; editors/whizzywig.inc:114; editors/yui.inc:278
+msgid "Align right"
+msgstr "Jobbra zárt"
+
+#: editors/fckeditor.inc:219; editors/openwysiwyg.inc:143; editors/tinymce.inc:379; editors/yui.inc:278
+msgid "Justify"
+msgstr "Sorkizárt"
+
+#: editors/fckeditor.inc:220; editors/nicedit.inc:106; editors/openwysiwyg.inc:144; editors/tinymce.inc:380; editors/whizzywig.inc:115; editors/yui.inc:279
+msgid "Bullet list"
+msgstr "Felsorolás"
+
+#: editors/fckeditor.inc:220; editors/nicedit.inc:106; editors/openwysiwyg.inc:144; editors/tinymce.inc:380; editors/whizzywig.inc:115; editors/yui.inc:279
+msgid "Numbered list"
+msgstr "Számozott lista"
+
+#: editors/fckeditor.inc:221; editors/nicedit.inc:107; editors/openwysiwyg.inc:145; editors/tinymce.inc:381; editors/whizzywig.inc:116; editors/yui.inc:280
+msgid "Outdent"
+msgstr "Kihúzás"
+
+#: editors/fckeditor.inc:221; editors/nicedit.inc:107; editors/openwysiwyg.inc:145; editors/tinymce.inc:381; editors/whizzywig.inc:116; editors/yui.inc:280
+msgid "Indent"
+msgstr "Behúzás"
+
+#: editors/fckeditor.inc:222; editors/openwysiwyg.inc:146; editors/tinymce.inc:382; editors/whizzywig.inc:117; editors/yui.inc:281
+msgid "Redo"
+msgstr "Ismét"
+
+#: editors/fckeditor.inc:223; editors/nicedit.inc:114; editors/tinymce.inc:383
+msgid "Unlink"
+msgstr "Hivatkozás eltávolítása"
+
+#: editors/fckeditor.inc:223; editors/tinymce.inc:383
+msgid "Anchor"
+msgstr "Horgony"
+
+#: editors/fckeditor.inc:225; editors/nicedit.inc:109; editors/openwysiwyg.inc:150; editors/tinymce.inc:386; editors/whizzywig.inc:119
+msgid "Forecolor"
+msgstr "Szövegszín"
+
+#: editors/fckeditor.inc:225; editors/nicedit.inc:109; editors/openwysiwyg.inc:150; editors/tinymce.inc:386; editors/whizzywig.inc:119
+msgid "Backcolor"
+msgstr "Háttérszín"
+
+#: editors/fckeditor.inc:226
+msgid "Superscript"
+msgstr "Felső index"
+
+#: editors/fckeditor.inc:226
+msgid "Subscript"
+msgstr "Alsó index"
+
+#: editors/fckeditor.inc:227; editors/nicedit.inc:116; editors/openwysiwyg.inc:152; editors/tinymce.inc:388; editors/whizzywig.inc:125
+msgid "Source code"
+msgstr "Forráskód"
+
+#: editors/fckeditor.inc:228; editors/nicedit.inc:111; editors/openwysiwyg.inc:153; editors/tinymce.inc:389; editors/whizzywig.inc:120
+msgid "Horizontal rule"
+msgstr "Vízszintes vonal"
+
+#: editors/fckeditor.inc:229; editors/openwysiwyg.inc:154; editors/tinymce.inc:390
+msgid "Cut"
+msgstr "Kivágás"
+
+#: editors/fckeditor.inc:229; editors/openwysiwyg.inc:154; editors/tinymce.inc:390
+msgid "Paste"
+msgstr "Beillesztés"
+
+#: editors/fckeditor.inc:230
+msgid "Paste Text"
+msgstr "Szöveg beillesztés"
+
+#: editors/fckeditor.inc:230; editors/tinymce.inc:494
+msgid "Paste from Word"
+msgstr "Beillesztés Wordből"
+
+#: editors/fckeditor.inc:232; editors/openwysiwyg.inc:156; editors/tinymce.inc:392; editors/yui.inc:287
+msgid "Remove format"
+msgstr "Formázás eltávolítása"
+
+#: editors/fckeditor.inc:233; editors/openwysiwyg.inc:157; editors/tinymce.inc:393
+msgid "Character map"
+msgstr "Karaktertábla"
+
+#: editors/fckeditor.inc:235; editors/nicedit.inc:115; editors/openwysiwyg.inc:158; editors/tinymce.inc:452; editors/whizzywig.inc:112; editors/yui.inc:288
+msgid "HTML block format"
+msgstr "HTML blokk formázása"
+
+#: editors/fckeditor.inc:235; editors/tinymce.inc:452
+msgid "Font style"
+msgstr "Betű stílus"
+
+#: editors/fckeditor.inc:237; editors/tinymce.inc:494
+msgid "Select all"
+msgstr "Mindent kijelöl"
+
+#: editors/fckeditor.inc:238
+msgid "Create DIV container"
+msgstr "DIV konténer létrehozása"
+
+#: editors/fckeditor.inc:239; editors/tinymce.inc:538
+msgid "Flash"
+msgstr "Flash"
+
+#: editors/fckeditor.inc:239
+msgid "Smiley"
+msgstr "Szmájli"
+
+#: editors/fckeditor.inc:240
+msgid "FitWindow"
+msgstr "Ablakhoz igazítás"
+
+#: editors/fckeditor.inc:241
+msgid "Check spelling"
+msgstr "Helyesírás-ellenőrzés"
+
+#: editors/nicedit.inc:110; editors/openwysiwyg.inc:151; editors/tinymce.inc:387; editors/yui.inc:285
+msgid "Sup"
+msgstr "Felső index"
+
+#: editors/nicedit.inc:110; editors/openwysiwyg.inc:151; editors/tinymce.inc:387; editors/yui.inc:285
+msgid "Sub"
+msgstr "Alsó index"
+
+#: editors/openwysiwyg.inc:149; editors/tinymce.inc:385; editors/whizzywig.inc:124
+msgid "Clean-up"
+msgstr "Tisztítás"
+
+#: editors/openwysiwyg.inc:155; editors/tinymce.inc:391
+msgid "Visual aid"
+msgstr "Látható segítség"
+
+#: editors/tinymce.inc:400
+msgid "Advanced horizontal rule"
+msgstr "Haladó vízszintes vonal"
+
+#: editors/tinymce.inc:408
+msgid "Advanced image"
+msgstr "Haladó kép"
+
+#: editors/tinymce.inc:416
+msgid "Advanced link"
+msgstr "Haladó hivatkozás"
+
+#: editors/tinymce.inc:424
+msgid "Auto save"
+msgstr "Automatikus mentés"
+
+#: editors/tinymce.inc:431
+msgid "Context menu"
+msgstr "Helyi menü"
+
+#: editors/tinymce.inc:438
+msgid "Left-to-right"
+msgstr "Balról jobbra"
+
+#: editors/tinymce.inc:438
+msgid "Right-to-left"
+msgstr "Jobbról balra"
+
+#: editors/tinymce.inc:445
+msgid "Emotions"
+msgstr "Érzések"
+
+#: editors/openwysiwyg.inc:159; editors/tinymce.inc:459
+msgid "Fullscreen"
+msgstr "Teljes képernyő"
+
+#: editors/tinymce.inc:466
+msgid "Inline popups"
+msgstr "Beágyazott felugró ablakok"
+
+#: editors/tinymce.inc:476
+msgid "Insert date"
+msgstr "Dátum beszúrás"
+
+#: editors/tinymce.inc:476
+msgid "Insert time"
+msgstr "Idő beszúrás"
+
+#: editors/tinymce.inc:487
+msgid "Insert layer"
+msgstr "Réteg beszúrás"
+
+#: editors/tinymce.inc:487
+msgid "Move forward"
+msgstr "Előre mozgatás"
+
+#: editors/tinymce.inc:487
+msgid "Move backward"
+msgstr "Hátra mozgatás"
+
+#: editors/tinymce.inc:494
+msgid "Paste text"
+msgstr "Szöveg beillesztés"
+
+#: editors/tinymce.inc:522
+msgid "Style properties"
+msgstr "Stílus tulajdonságok"
+
+#: editors/tinymce.inc:555
+msgid "Citation"
+msgstr "Idézet"
+
+#: editors/tinymce.inc:571
+msgid "Safari compatibility"
+msgstr "Safari kompatibilitás"
+
+#: editors/whizzywig.inc:126
+msgid "Spell check"
+msgstr "Helyesírás ellenőrzés"
+
+#: editors/yui.inc:284
+msgid "Font Color"
+msgstr "Betűszín"
+
+#: editors/yui.inc:286
+msgid "Show/hide hidden elements"
+msgstr "Rejtett elemek mutatása/elrejtése"
+
+#: plugins/break.inc:17
+msgid "Separate the teaser and body of this content"
+msgstr "A bevezető és a törzs elválasztása ennél a tartalomnál"
+
+#: wysiwyg.admin.inc:51
+msgid "%editor profile for %format"
+msgstr "%editor profil %format formátumnak"
+
+#: wysiwyg.admin.inc:271
+msgid ""
+"If \"Define CSS\" was selected above, enter path to a CSS file or a "
+"list of CSS files separated by a comma."
+msgstr ""
+"Ha fent a „CSS megadása” van kiválasztva, akkor itt a CSS fájl "
+"elérési útját kell megadni, vagy a CSS fájlok vesszővel "
+"elválasztott felsorolását."
+
+#: wysiwyg.admin.inc:387
+msgid ""
+"So the actual library can be found at:<br "
+"/><code>@library-filepath</code>"
+msgstr ""
+"Tehát az aktuális könyvtár itt található:<br "
+"/><code>@library-filepath</code>"
+
+#: wysiwyg.module:17
+msgid "Configure client-side editors."
+msgstr "Ügyfél-oldali szerkesztők beállítása."
+
+#: editors/fckeditor.inc:248
+msgid "Autogrow"
+msgstr "Automatikus növekedés"
+
+#: editors/fckeditor.inc:259; editors/tinymce.inc:564
+msgid "BBCode"
+msgstr "BBCode"
+
+#: editors/fckeditor.inc:267
+msgid "Table drag/resize"
+msgstr "Táblázat vontatás/átméretezés"
+
+#: editors/fckeditor.inc:275
+msgid "Table: Cell properties"
+msgstr "Táblázat: Cella tulajdonságok"
+
+#: editors/fckeditor.inc:276
+msgid "Table: Insert row after"
+msgstr "Táblázat: Sor beszúrása utána"
+
+#: editors/fckeditor.inc:277
+msgid "Table: Insert column after"
+msgstr "Táblázat: Oszlop beszúrása utána"
+
+#: editors/fckeditor.inc:278
+msgid "Table: Insert cell after"
+msgstr "Táblázat: Cella beszúrása utána"
+
+#: editors/fckeditor.inc:279
+msgid "Table: Delete rows"
+msgstr "Táblázat: Sorok törlése"
+
+#: editors/fckeditor.inc:280
+msgid "Table: Delete columns"
+msgstr "Táblázat: Oszlopok törlése"
+
+#: editors/fckeditor.inc:281
+msgid "Table: Delete cells"
+msgstr "Táblázat: Cellák törlése"
+
+#: editors/fckeditor.inc:282
+msgid "Table: Merge cells"
+msgstr "Táblázat: Cellák összevonása"
+
+#: editors/fckeditor.inc:283
+msgid "Table: Horizontal split cell"
+msgstr "Táblázat: Cellák vízszintes szétválasztása"
+
diff --git a/sites/all/modules/wysiwyg/translations/sv.po b/sites/all/modules/wysiwyg/translations/sv.po
new file mode 100644
index 0000000000000000000000000000000000000000..5ac01617e229e384363b473a58e86d383e08e6d4
--- /dev/null
+++ b/sites/all/modules/wysiwyg/translations/sv.po
@@ -0,0 +1,835 @@
+# $Id: sv.po,v 1.2 2009/04/20 23:39:57 seals Exp $
+#
+# Swedish translation of Drupal (wysiwyg)
+# Generated from files:
+#  wysiwyg.api.php,v 1.2 2008/10/29 12:20:20 sun
+#  wysiwyg.admin.inc,v 1.6.2.2 2009/02/12 09:29:42 sun
+#  wysiwyg.plugins.inc,v 1.1 2008/10/14 21:45:07 sun
+#  wysiwyg.module,v 1.17.2.6 2009/02/22 18:27:46 sun
+#  wysiwyg.info,v 1.1 2008/10/14 21:45:07 sun
+#  wysiwyg.install,v 1.3 2008/11/03 23:57:40 sun
+#  fckeditor.inc,v 1.6.2.5 2009/02/13 02:22:29 sun
+#  markitup.inc,v 1.1.2.2 2009/01/06 01:40:37 sun
+#  nicedit.inc,v 1.4 2008/12/05 15:35:23 sun
+#  tinymce.inc,v 1.17.2.11 2009/02/24 23:21:22 sun
+#  whizzywig.inc,v 1.1 2008/11/17 00:06:33 sun
+#  yui.inc,v 1.1 2008/12/08 18:58:10 sun
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: WYSIWYG 6.x\n"
+"POT-Creation-Date: 2009-03-02 01:23+0100\n"
+"PO-Revision-Date: 2009-04-21 01:36+0100\n"
+"Last-Translator: Magnus Gunnarsson <seals@passagen.se>\n"
+"Language-Team: drupalsverige.se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: wysiwyg.api.php:50;51
+msgid "My plugin title"
+msgstr "Titel för mitt plugin"
+
+#: wysiwyg.api.php:60
+msgid "Button title (optional)"
+msgstr "Titel för knappar (valfritt)"
+
+#: wysiwyg.admin.inc:19
+msgid "Home"
+msgstr "Hem"
+
+#: wysiwyg.admin.inc:20
+msgid "Administer"
+msgstr "Administrera"
+
+#: wysiwyg.admin.inc:21
+msgid "Site configuration"
+msgstr "Inställningar för webbplatsen"
+
+#: wysiwyg.admin.inc:22
+msgid "Wysiwyg profiles"
+msgstr "Profiler för WYSIWYG"
+
+#: wysiwyg.admin.inc:78
+msgid "%format Wysiwyg profile"
+msgstr "Profil för %format åt WYSIWYG"
+
+#: wysiwyg.admin.inc:87
+msgid "Basic setup"
+msgstr "Grundläggande inställning"
+
+#: wysiwyg.admin.inc:94
+msgid "Enabled by default"
+msgstr "Aktiverad som standard"
+
+#: wysiwyg.admin.inc:97
+msgid "The default editor state for users having access to this profile. Users are able to override this state if the next option is enabled."
+msgstr "Förvalt tillstånd på redigeraren för användarna som har åtkomst till denna profil. Användarna kommer att kunna åsidosätta detta läge om nästa alternativ är aktiverat."
+
+#: wysiwyg.admin.inc:102
+msgid "Allow users to choose default"
+msgstr "Låter användarna kunna välja förvalt"
+
+#: wysiwyg.admin.inc:105
+msgid "If allowed, users will be able to choose their own editor default state in their user account settings."
+msgstr "Om tillåten kommer användarna att själva kunna välja eget förvalt läge för redigeraren på deras inställningar för användarkontot."
+
+#: wysiwyg.admin.inc:110
+msgid "Show <em>enable/disable rich text</em> toggle link"
+msgstr "Visa länkknappen <em>aktivera/inaktivera rich text</em>"
+
+#: wysiwyg.admin.inc:113
+msgid "Whether or not to show the <em>enable/disable rich text</em> toggle link below a textarea. If disabled, the user setting or global default is used (see above)."
+msgstr "Huruvida knappen aktivera/avaktivera redigeraren Rich Text skall visas under textområde eller ej. Om inaktiverad används användarens förval eller så används det globala förvalda (se ovan)."
+
+#: wysiwyg.admin.inc:123
+msgid "Language"
+msgstr "Språkanpassning"
+
+#: wysiwyg.admin.inc:126
+msgid "The language to use for the editor interface. Language codes are based on the <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> format."
+msgstr "Språket på gränsnittet för redigeraren. Språkkoderna baseras på formatet <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a>."
+
+#: wysiwyg.admin.inc:131
+msgid "Buttons and plugins"
+msgstr "Knappar och insticksprogram"
+
+#: wysiwyg.admin.inc:176
+msgid "Editor appearance"
+msgstr "Redigerarens utseende"
+
+#: wysiwyg.admin.inc:183
+msgid "Toolbar location"
+msgstr "Verktygslådans placering"
+
+#: wysiwyg.admin.inc:185;201
+msgid "Bottom"
+msgstr "Längst ned"
+
+#: wysiwyg.admin.inc:185;201
+msgid "Top"
+msgstr "Längst upp"
+
+#: wysiwyg.admin.inc:186
+msgid "This option controls whether the editor toolbar is displayed above or below the editing area."
+msgstr "Detta alternativ kontrollera huruvida redigerarens verktygslåda visas ovanför eller nedanför redigeringsområdet."
+
+#: wysiwyg.admin.inc:191
+msgid "Button alignment"
+msgstr "Placering av knapp"
+
+#: wysiwyg.admin.inc:193
+msgid "Center"
+msgstr "Centrerad"
+
+#: wysiwyg.admin.inc:193
+msgid "Left"
+msgstr "Vänster"
+
+#: wysiwyg.admin.inc:193
+msgid "Right"
+msgstr "Höger"
+
+#: wysiwyg.admin.inc:194
+msgid "This option controls the alignment of icons in the editor toolbar."
+msgstr "Detta alternativ kontrollerar justeringen av ikoner i redigerarens verktygslåda."
+
+#: wysiwyg.admin.inc:199
+msgid "Path location"
+msgstr "Plats för sökväg"
+
+#: wysiwyg.admin.inc:201
+msgid "Hide"
+msgstr "Göm"
+
+#: wysiwyg.admin.inc:202
+msgid "Where to display the path to HTML elements (i.e. <code>body > table > tr > td</code>)."
+msgstr "Var sökvägen till HTML-element skall visas (till exempel <code>body > table > tr > td</code>)."
+
+#: wysiwyg.admin.inc:207
+msgid "Enable resizing button"
+msgstr "Aktivera knappen storleksförändring"
+
+#: wysiwyg.admin.inc:210
+msgid "This option gives you the ability to enable/disable the resizing button. If enabled, the Path location toolbar must be set to \"Top\" or \"Bottom\" in order to display the resize icon."
+msgstr "Det här valet ger dig möjlighet att aktivera/invaktivera knappen storleksförändring. Om aktiverad, måste Sökvägen till verktygslokaliseringen vara satt till \"Längst upp\" eller \"Längst ned\" för att kunna visa ikonen för storleksförändring."
+
+#: wysiwyg.admin.inc:215
+msgid "Cleanup and output"
+msgstr "Rensa upp och skicka"
+
+#: wysiwyg.admin.inc:222
+msgid "Verify HTML"
+msgstr "Verifiera HTML"
+
+#: wysiwyg.admin.inc:225
+msgid "If enabled, potentially malicious code like <code>&lt;HEAD&gt;</code> tags will be removed from HTML contents."
+msgstr "Om aktiverad kan potentiellt farlig kod såsom taggar av typen <code>&lt;HEAD&gt;</code> att tas bort från HTML-innehåll."
+
+#: wysiwyg.admin.inc:230
+msgid "Preformatted"
+msgstr "Förformaterat"
+
+#: wysiwyg.admin.inc:233
+msgid "If enabled, the editor will insert TAB characters on tab and preserve other whitespace characters just like a PRE element in HTML does."
+msgstr "Om aktiverad kommer redigeraren att infoga TAB-tecken vid tab och bevara andra tomrumstecken precis som elementet PRE i HTML gör."
+
+#: wysiwyg.admin.inc:238
+msgid "Convert &lt;font&gt; tags to styles"
+msgstr "Konvertera taggar av typen &lt;font&gt; till stilar"
+
+#: wysiwyg.admin.inc:241
+msgid "If enabled, HTML tags declaring the font size, font family, font color and font background color will be replaced by inline CSS styles."
+msgstr "Om aktiverad kommer HTML-taggar som deklarerar fontstorlek, fontfamilj, fontfärg och fontbakgrund att bytas ut mot infogad CSS."
+
+#: wysiwyg.admin.inc:246
+msgid "Remove linebreaks"
+msgstr "Ta bort radbrytningar"
+
+#: wysiwyg.admin.inc:249
+msgid "If enabled, the editor will remove most linebreaks from contents. Disabling this option could avoid conflicts with other input filters."
+msgstr "Om aktiverad kommer redigeraren att ta bort de flesta radbrytningar från innehåll. Inaktiveras detta alternativ kan konflikter undkommas med andra inmatningsfilter."
+
+#: wysiwyg.admin.inc:254
+msgid "Apply source formatting"
+msgstr "Applicera källans formatering"
+
+#: wysiwyg.admin.inc:257
+msgid "If enabled, the editor will re-format the HTML source code. Disabling this option could avoid conflicts with other input filters."
+msgstr "Om aktiverad kommer redigeraren omformatera källkoden för HTML. Inaktiveras detta alternativ så kan konflikter undkommas med andra inmatningsfilter."
+
+#: wysiwyg.admin.inc:262
+msgid "Force cleanup on standard paste"
+msgstr "Tvinga fram upprensning på vanliga inklistringar"
+
+#: wysiwyg.admin.inc:265
+msgid "If enabled, the default paste function (CTRL-V or SHIFT-INS) behaves like the \"paste from word\" plugin function."
+msgstr "Om aktiverad kommer den förvalda inklistringsfunktionen  (CTRL-V eller SHIFT-INS) att uppföra sig såsom funktionen \"klistra in från Word\"."
+
+#: wysiwyg.admin.inc:270
+msgid "CSS"
+msgstr "CSS"
+
+#: wysiwyg.admin.inc:277
+msgid "Block formats"
+msgstr "Blockformat"
+
+#: wysiwyg.admin.inc:281
+msgid "Comma separated list of HTML block formats. Possible values: <code>@format-list</code>."
+msgstr "Kommaseparerad lista av blockformat för HTML. Möjliga värden: <code>@format-list</code>."
+
+#: wysiwyg.admin.inc:286
+msgid "Editor CSS"
+msgstr "Redigerarens CSS"
+
+#: wysiwyg.admin.inc:288
+msgid "Use theme CSS"
+msgstr "Använd temats CSS"
+
+#: wysiwyg.admin.inc:288
+msgid "Define CSS"
+msgstr "Definiera CSS"
+
+#: wysiwyg.admin.inc:288
+msgid "Editor default CSS"
+msgstr "Förvald CSS för redigeraren"
+
+#: wysiwyg.admin.inc:289
+msgid "Defines the CSS to be used in the editor area.<br />Use theme CSS - loads stylesheets from current site theme.<br/>Define CSS - enter path for stylesheet files below.<br />Editor default CSS - uses default stylesheets from editor."
+msgstr "Definiera vilken CSS som skall användas i redigerarens område.<br />Använd temats CSS - laddar stilmall från nuvarande webbplats tema.<br />Definiera CSS - ange sökvägen för stilmallsfilen nedan.<br />Förvalt för redigeraren."
+
+#: wysiwyg.admin.inc:294
+msgid "CSS path"
+msgstr "Sökväg för CSS"
+
+#: wysiwyg.admin.inc:298
+msgid "If \"Define CSS\" has been selected above, enter path to a CSS file or a list of CSS files seperated by a comma."
+msgstr "Om \"Definiera CSS\" har valts ovan, ange sökväg till en CSS-fil eller en lista av CSS-filer separerade av komma."
+
+#: wysiwyg.admin.inc:298
+msgid "Available tokens: %b (base path, f.e.: /), %t (path to theme, f.e.: themes/garland)"
+msgstr "Tillgängliga tecken: %b (bassökväg, till exempel: /), %t (sökväg till tema, till exempel: themes/garland)"
+
+#: wysiwyg.admin.inc:298
+msgid "Examples:"
+msgstr "Exempel:"
+
+#: wysiwyg.admin.inc:303
+msgid "CSS classes"
+msgstr "CSS-klasser"
+
+#: wysiwyg.admin.inc:305
+msgid "Optionally define CSS classes for the \"Font style\" dropdown list.<br />Enter one class on each line in the format: !format. Example: !example<br />If left blank, CSS classes are automatically imported from all loaded stylesheet(s)."
+msgstr "Valfritt kan du definiera CSS-klasser för rullgardinslistan \"Fontstil\".<br />Ange en klass på varje rad i formatet: !format. Exempel: !example<br />Om lämnad blank kommer CSS-klasser automatiskt att importeras från alla laddade stilmallar."
+
+#: wysiwyg.admin.inc:310;444
+msgid "Save"
+msgstr "Spara"
+
+#: wysiwyg.admin.inc:343
+msgid "Wysiwyg profile for %format has been saved."
+msgstr "Profilen för WYSIWYG för %format har sparats."
+
+#: wysiwyg.admin.inc:392
+msgid "No editor"
+msgstr "Ingen redigerare"
+
+#: wysiwyg.admin.inc:396
+msgid "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Download</a>)"
+msgstr "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Ladda ned</a>)"
+
+#: wysiwyg.admin.inc:397
+msgid "Not installed."
+msgstr "Ej installerad."
+
+#: wysiwyg.admin.inc:398
+msgid "Extract the archive and copy its contents into a new folder in the following location:<br /><code>@editor-path</code>"
+msgstr "Packa upp arkivet och kopiera dess innehåll till en ny katalog på följande plats:<br /><code>@editor-path</code>"
+
+#: wysiwyg.admin.inc:409
+msgid "Installation instructions"
+msgstr "Instruktioner för installation"
+
+#: wysiwyg.admin.inc:412
+msgid "There are no editor libraries installed currently. The following list contains a list of currently supported editors:"
+msgstr "Det finns inga bibliotek för redigerare installerade för närvarande. Följande lista innehåller en lista av stödda redigerare för närvarande:"
+
+#: wysiwyg.admin.inc:436
+msgid "Edit"
+msgstr "Redigera"
+
+#: wysiwyg.admin.inc:439;496
+msgid "Remove"
+msgstr "Ta bort"
+
+#: wysiwyg.admin.inc:456
+msgid "Input format"
+msgstr "Inmatningsformat"
+
+#: wysiwyg.admin.inc:456
+msgid "Editor"
+msgstr "Redigerare"
+
+#: wysiwyg.admin.inc:456
+msgid "Operations"
+msgstr "Funktioner"
+
+#: wysiwyg.admin.inc:494
+msgid "Are you sure you want to remove the profile for %name?"
+msgstr "Är du säker på att du vill radera profilen %name?"
+
+#: wysiwyg.admin.inc:496
+msgid "This action cannot be undone."
+msgstr "Denna åtgärd kan inte ångras."
+
+#: wysiwyg.admin.inc:496
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: wysiwyg.admin.inc:507
+msgid "Wysiwyg profile for %name has been deleted."
+msgstr "Profil för WYSIWYG för %namn har raderats."
+
+#: wysiwyg.plugins.inc:15
+msgid "Teaser break"
+msgstr "Brytning för sammanfattning"
+
+#: wysiwyg.module:41
+msgid "A Wysiwyg profile can be associated to an input format. A Wysiwyg profile defines which client-side editor is loaded, what buttons or themes are enabled for the editor, how the editor is displayed, and a few other editor-specific functions."
+msgstr "En profil för WYSIWYG som kan associeras till ett inmatningsformat. En profil för WYSIWYG definierar vilken klientbaserad redigerade som är laddad, vilka knappar eller vilket tema som är aktiverat för redigeraren, hur redigeraren visas och en del andra redigerarspecifika funktioner."
+
+#: wysiwyg.module:273
+msgid "Disable rich-text"
+msgstr "Avaktivera Rich text"
+
+#: wysiwyg.module:274
+msgid "Enable rich-text"
+msgstr "Aktivera Rich text"
+
+#: wysiwyg.module:485
+msgid "Wysiwyg Editor settings"
+msgstr "Inställningar för redigerare av typen WYSIWYG"
+
+#: wysiwyg.module:492
+msgid "Enable editor by default"
+msgstr "Aktivera redigerare som standard"
+
+#: wysiwyg.module:495
+msgid "If enabled, rich-text editing is enabled by default in textarea fields."
+msgstr "Om aktiverad så är redigering av typen rich-text aktiverad som standard i flerradiga textfält"
+
+#: wysiwyg.module:579
+msgid "The version of %editor could not be detected."
+msgstr "Versionen av %editor kunde inte hittas."
+
+#: wysiwyg.module:592
+msgid "The installed version %version of %editor is not supported."
+msgstr "Den installerade versionen %version av %editor stöds inte."
+
+#: wysiwyg.module:15
+#: wysiwyg.info:0
+msgid "Wysiwyg"
+msgstr "WYSIWYG"
+
+#: wysiwyg.module:17
+msgid "Configure client-side editor profiles."
+msgstr "Konfigurera profiler för klientsidans redigerare."
+
+#: wysiwyg.module:0
+msgid "wysiwyg"
+msgstr "wysiwyg"
+
+#: wysiwyg.install:10
+msgid "Stores Wysiwyg profiles."
+msgstr "Lagrar profiler för WYSIWYG."
+
+#: wysiwyg.info:0
+msgid "Allows users to edit contents with client-side editors."
+msgstr "Låter användare redigera innehåll med klientbaserade redigerare."
+
+#: wysiwyg.info:0
+msgid "User interface"
+msgstr "Användargränssnitt"
+
+#: editors/fckeditor.inc:166
+#: editors/markitup.inc:91;140
+#: editors/nicedit.inc:102
+#: editors/tinymce.inc:348
+#: editors/whizzywig.inc:110
+#: editors/yui.inc:227
+msgid "Bold"
+msgstr "Fet"
+
+#: editors/fckeditor.inc:166
+#: editors/markitup.inc:92;140
+#: editors/nicedit.inc:102
+#: editors/tinymce.inc:348
+#: editors/whizzywig.inc:110
+#: editors/yui.inc:227
+msgid "Italic"
+msgstr "Kursiv"
+
+#: editors/fckeditor.inc:166
+#: editors/nicedit.inc:102
+#: editors/tinymce.inc:348
+#: editors/whizzywig.inc:110
+#: editors/yui.inc:227
+msgid "Underline"
+msgstr "Understruken"
+
+#: editors/fckeditor.inc:167
+#: editors/markitup.inc:93;141
+#: editors/nicedit.inc:103
+#: editors/tinymce.inc:349
+#: editors/yui.inc:228
+msgid "Strike-through"
+msgstr "Genomstruken"
+
+#: editors/fckeditor.inc:168
+#: editors/nicedit.inc:104
+#: editors/tinymce.inc:350
+#: editors/whizzywig.inc:111
+#: editors/yui.inc:229
+msgid "Align left"
+msgstr "Vänsterjustera"
+
+#: editors/fckeditor.inc:168
+#: editors/nicedit.inc:104
+#: editors/tinymce.inc:350
+#: editors/whizzywig.inc:111
+#: editors/yui.inc:229
+msgid "Align center"
+msgstr "Centerjustera"
+
+#: editors/fckeditor.inc:168
+#: editors/nicedit.inc:104
+#: editors/tinymce.inc:350
+#: editors/whizzywig.inc:111
+#: editors/yui.inc:229
+msgid "Align right"
+msgstr "Högerjustera"
+
+#: editors/fckeditor.inc:168
+#: editors/tinymce.inc:350
+msgid "Justify"
+msgstr "Justera"
+
+#: editors/fckeditor.inc:169
+#: editors/nicedit.inc:105
+#: editors/tinymce.inc:351
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:230
+msgid "Bullet list"
+msgstr "Punktlista"
+
+#: editors/fckeditor.inc:169
+#: editors/nicedit.inc:105
+#: editors/tinymce.inc:351
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:230
+msgid "Numbered list"
+msgstr "Numrerad lista"
+
+#: editors/fckeditor.inc:170
+#: editors/nicedit.inc:106
+#: editors/tinymce.inc:352
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:231
+msgid "Outdent"
+msgstr "Ta bort indrag"
+
+#: editors/fckeditor.inc:170
+#: editors/nicedit.inc:106
+#: editors/tinymce.inc:352
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:231
+msgid "Indent"
+msgstr "Gör indrag"
+
+#: editors/fckeditor.inc:171
+#: editors/tinymce.inc:353
+#: editors/whizzywig.inc:114
+msgid "Undo"
+msgstr "Ångra"
+
+#: editors/fckeditor.inc:171
+#: editors/tinymce.inc:353
+#: editors/whizzywig.inc:114
+msgid "Redo"
+msgstr "Gör om"
+
+#: editors/fckeditor.inc:172
+#: editors/markitup.inc:95;143
+#: editors/nicedit.inc:113
+#: editors/tinymce.inc:354
+#: editors/whizzywig.inc:118
+#: editors/yui.inc:232
+msgid "Link"
+msgstr "Länka"
+
+#: editors/fckeditor.inc:172
+#: editors/nicedit.inc:113
+#: editors/tinymce.inc:354
+msgid "Unlink"
+msgstr "Ta bort länk"
+
+#: editors/fckeditor.inc:172
+#: editors/tinymce.inc:354
+msgid "Anchor"
+msgstr "Ankare"
+
+#: editors/fckeditor.inc:173
+#: editors/markitup.inc:94;142
+#: editors/nicedit.inc:107
+#: editors/tinymce.inc:355
+#: editors/whizzywig.inc:115;119
+#: editors/yui.inc:233
+msgid "Image"
+msgstr "Bild"
+
+#: editors/fckeditor.inc:174
+#: editors/nicedit.inc:108
+#: editors/tinymce.inc:357
+#: editors/whizzywig.inc:116
+msgid "Forecolor"
+msgstr "Förgrundsfärg"
+
+#: editors/fckeditor.inc:174
+#: editors/nicedit.inc:108
+#: editors/tinymce.inc:357
+#: editors/whizzywig.inc:116
+msgid "Backcolor"
+msgstr "Bakgrundsfärg"
+
+#: editors/fckeditor.inc:175
+msgid "Superscript"
+msgstr "Upphöjd"
+
+#: editors/fckeditor.inc:175
+msgid "Subscript"
+msgstr "Nedsänkt"
+
+#: editors/fckeditor.inc:176
+#: editors/tinymce.inc:359
+msgid "Blockquote"
+msgstr "Blockcitat"
+
+#: editors/fckeditor.inc:176
+#: editors/nicedit.inc:115
+#: editors/tinymce.inc:359
+#: editors/whizzywig.inc:122
+msgid "Source code"
+msgstr "Källkod"
+
+#: editors/fckeditor.inc:177
+#: editors/nicedit.inc:110
+#: editors/tinymce.inc:360
+#: editors/whizzywig.inc:117
+msgid "Horizontal rule"
+msgstr "Horisontell linje"
+
+#: editors/fckeditor.inc:178
+#: editors/tinymce.inc:361
+msgid "Cut"
+msgstr "Klipp ut"
+
+#: editors/fckeditor.inc:178
+#: editors/tinymce.inc:361
+msgid "Copy"
+msgstr "Kopiera"
+
+#: editors/fckeditor.inc:178
+#: editors/tinymce.inc:361
+msgid "Paste"
+msgstr "Klistra in"
+
+#: editors/fckeditor.inc:179
+msgid "Paste Text"
+msgstr "Klistra in text"
+
+#: editors/fckeditor.inc:179
+#: editors/tinymce.inc:472
+msgid "Paste from Word"
+msgstr "Klistra in från Word"
+
+#: editors/fckeditor.inc:180
+msgid "Show blocks"
+msgstr "Visa block"
+
+#: editors/fckeditor.inc:181
+#: editors/tinymce.inc:363
+#: editors/yui.inc:236
+msgid "Remove format"
+msgstr "Ta bort format"
+
+#: editors/fckeditor.inc:182
+#: editors/tinymce.inc:364
+msgid "Character map"
+msgstr "Teckenkarta"
+
+#: editors/fckeditor.inc:183
+msgid "About"
+msgstr "Om"
+
+#: editors/fckeditor.inc:185
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:430
+#: editors/whizzywig.inc:109
+#: editors/yui.inc:238
+msgid "HTML block format"
+msgstr "Format för HTML-block"
+
+#: editors/fckeditor.inc:185
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:430
+#: editors/whizzywig.inc:109
+#: editors/yui.inc:238
+msgid "Font"
+msgstr "Font"
+
+#: editors/fckeditor.inc:185
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:430
+#: editors/whizzywig.inc:109
+#: editors/yui.inc:238
+msgid "Font size"
+msgstr "Fontstorlek"
+
+#: editors/fckeditor.inc:185
+#: editors/tinymce.inc:430
+#: editors/yui.inc:238
+msgid "Font style"
+msgstr "Fontstil"
+
+#: editors/fckeditor.inc:186
+#: editors/tinymce.inc:507
+#: editors/whizzywig.inc:120
+msgid "Table"
+msgstr "Tabell"
+
+#: editors/fckeditor.inc:187
+#: editors/tinymce.inc:493
+msgid "Search"
+msgstr "Sök"
+
+#: editors/fckeditor.inc:187
+#: editors/tinymce.inc:493
+msgid "Replace"
+msgstr "Byt ut"
+
+#: editors/fckeditor.inc:187
+#: editors/tinymce.inc:472
+msgid "Select all"
+msgstr "Välj alla"
+
+#: editors/fckeditor.inc:188
+msgid "Create DIV container"
+msgstr "Skapa DIV-behållare"
+
+#: editors/fckeditor.inc:189
+#: editors/tinymce.inc:422
+msgid "Flash"
+msgstr "Flash"
+
+#: editors/fckeditor.inc:189
+msgid "Smiley"
+msgstr "Smiley"
+
+#: editors/fckeditor.inc:190
+msgid "FitWindow"
+msgstr "Passa fönster"
+
+#: editors/fckeditor.inc:191
+msgid "Check spelling"
+msgstr "Kontrollera stavning"
+
+#: editors/markitup.inc:98;145
+#: editors/tinymce.inc:479
+msgid "Preview"
+msgstr "Förhandsgranska"
+
+#: editors/nicedit.inc:109
+#: editors/tinymce.inc:358
+#: editors/yui.inc:235
+msgid "Sup"
+msgstr "Upphöjd"
+
+#: editors/nicedit.inc:109
+#: editors/tinymce.inc:358
+#: editors/yui.inc:235
+msgid "Sub"
+msgstr "Nedsänkt"
+
+#: editors/tinymce.inc:356
+#: editors/whizzywig.inc:121
+msgid "Clean-up"
+msgstr "Upprensning"
+
+#: editors/tinymce.inc:362
+msgid "Visual aid"
+msgstr "Hjälpmedel"
+
+#: editors/tinymce.inc:365
+msgid "Help"
+msgstr "Hjälp"
+
+#: editors/tinymce.inc:370
+msgid "Advanced horizontal rule"
+msgstr "Avancerad horisontell linje"
+
+#: editors/tinymce.inc:378
+msgid "Advanced image"
+msgstr "Avancerad bild"
+
+#: editors/tinymce.inc:386
+msgid "Advanced link"
+msgstr "Avancerad länk"
+
+#: editors/tinymce.inc:394
+msgid "Auto save"
+msgstr "Automatiskt sparande"
+
+#: editors/tinymce.inc:401
+msgid "Context menu"
+msgstr "Menysammanhang"
+
+#: editors/tinymce.inc:408
+msgid "Left-to-right"
+msgstr "Vänster-till-höger"
+
+#: editors/tinymce.inc:408
+msgid "Right-to-left"
+msgstr "Höger-till-vänster"
+
+#: editors/tinymce.inc:415
+msgid "Emotions"
+msgstr "Känslor"
+
+#: editors/tinymce.inc:437
+msgid "Fullscreen"
+msgstr "Hellskärm"
+
+#: editors/tinymce.inc:444
+msgid "Inline popups"
+msgstr "Löpande popups"
+
+#: editors/tinymce.inc:454
+msgid "Insert date"
+msgstr "Infoga datum"
+
+#: editors/tinymce.inc:454
+msgid "Insert time"
+msgstr "Sätt in tid"
+
+#: editors/tinymce.inc:465
+msgid "Insert layer"
+msgstr "Infoga lager"
+
+#: editors/tinymce.inc:465
+msgid "Move forward"
+msgstr "Gå framåt"
+
+#: editors/tinymce.inc:465
+msgid "Move backward"
+msgstr "Gå tillbaka"
+
+#: editors/tinymce.inc:465
+msgid "Absolute"
+msgstr "Absolut"
+
+#: editors/tinymce.inc:472
+msgid "Paste text"
+msgstr "Klistra in text"
+
+#: editors/tinymce.inc:486
+msgid "Print"
+msgstr "Skriv ut"
+
+#: editors/tinymce.inc:500
+msgid "Style properties"
+msgstr "Egenskaper för stil"
+
+#: editors/tinymce.inc:516
+msgid "Citation"
+msgstr "Citering"
+
+#: editors/tinymce.inc:516
+msgid "Deleted"
+msgstr "Raderad"
+
+#: editors/tinymce.inc:516
+msgid "Abbreviation"
+msgstr "Förkortning"
+
+#: editors/tinymce.inc:516
+msgid "Acronym"
+msgstr "Akronym"
+
+#: editors/tinymce.inc:516
+msgid "Inserted"
+msgstr "Infogad"
+
+#: editors/tinymce.inc:523
+msgid "Safari compatibility"
+msgstr "Kompatibilitet med Safari"
+
+#: editors/whizzywig.inc:123
+msgid "Spell check"
+msgstr "Rättstavningskontroll"
+
+#: editors/yui.inc:234
+msgid "Font Color"
+msgstr "Fontfärg"
+
+#: editors/yui.inc:234
+msgid "Background Color"
+msgstr "Bakgrundfärg"
+
+#: editors/yui.inc:237
+msgid "Show/hide hidden elements"
+msgstr "Visa/göm gömda element"
+
diff --git a/sites/all/modules/wysiwyg/translations/tr.po b/sites/all/modules/wysiwyg/translations/tr.po
new file mode 100644
index 0000000000000000000000000000000000000000..83d9000291e0b2532f59d2d7f41fd30215e53ce7
--- /dev/null
+++ b/sites/all/modules/wysiwyg/translations/tr.po
@@ -0,0 +1,101 @@
+# $Id: tr.po,v 1.2 2008/05/30 02:19:15 sun Exp $
+#
+# LANGUAGE translation of Drupal (wysiwyg_editor.module)
+# Copyright YEAR NAME <EMAIL@ADDRESS>
+# Generated from files:
+#  wysiwyg_editor.module,v 1.90.4.12 2007/01/30 06:58:37 thenicespider
+#  wysiwyg_editor.info,v 1.0 2006/12/24 17:51:48 Wendy
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Drupal TinyMCE Module\n"
+"POT-Creation-Date: 2007-01-31 21:42+0200\n"
+"PO-Revision-Date: 2007-01-31 21:49+0200\n"
+"Last-Translator: Erdem Köse <erdemkose@erdemkose.com>\n"
+"Language-Team: Drupal Turkish <ceviri@drupaltr.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Turkish\n"
+"X-Poedit-Country: Turkey\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: wysiwyg_editor.module:7 wysiwyg_editor.info:0
+msgid "The most popular WYSIWYG editor for advance content."
+msgstr "Gelişmiş içerikler için en gözde görsel düzenleyici."
+
+#: wysiwyg_editor.module:8
+msgid "<p><ul><li>Editor mode: full, compact and simple.</li></ul></p>"
+msgstr "<p><ul><li>Düzenleyici kipi: Tam, sade ve basit.</li></ul></p>"
+
+#: wysiwyg_editor.module:11
+msgid "Enable WYSIWYG Editor to your site."
+msgstr "Sitenizde görsel düzenleyiciyi etkinleştirin."
+
+#: wysiwyg_editor.module:28
+#: wysiwyg_editor.info:0
+msgid "TinyMCE"
+msgstr "TinyMCE"
+
+#: wysiwyg_editor.module:29
+msgid "Tinymce settings."
+msgstr "Tinymce ayarları"
+
+#: wysiwyg_editor.module:45
+msgid "Basic settings"
+msgstr "Temel ayarlar"
+
+#: wysiwyg_editor.module:52
+msgid "Editor Mode"
+msgstr "Düzenleyici kipi"
+
+#: wysiwyg_editor.module:54
+msgid "Full"
+msgstr "Tam"
+
+#: wysiwyg_editor.module:54
+msgid "Compact"
+msgstr "Sade"
+
+#: wysiwyg_editor.module:54
+msgid "Simple"
+msgstr "Basit"
+
+#: wysiwyg_editor.module:55
+msgid "FULL: enable all TinyMCE features. COMPACT: enable most used features. SIMPLE: just enable simple editor.<hr>"
+msgstr "TAM: tüm TinyMCE özellekleri etkinleştirilir. SADE: en çok kullanılan özellikler etkinleştirilir. BASİT: sadece temel özellikler etkinleştirilir.<hr>"
+
+#: wysiwyg_editor.module:60
+msgid "Enable TinyMCE for"
+msgstr "TinyMCE etkin olsun"
+
+#: wysiwyg_editor.module:62
+msgid "Edit-body only"
+msgstr "Sadece gövde için (Edit-body)"
+
+#: wysiwyg_editor.module:62
+msgid "Edit-comment only"
+msgstr "Sadece yorum için (Edit-comment)"
+
+#: wysiwyg_editor.module:62
+msgid "Both"
+msgstr "Her ikisi için"
+
+#: wysiwyg_editor.module:63
+msgid "If you want TinyMCE available for textarea of edit-body and comment then you should select <b>Both</b> option."
+msgstr "Eğer TinyMCE'nin hem içerik gövdesinde hem de yorumlarda etkin olmasını istiyorsanız <b>Her ikisi için</b> seçeneğini seçin."
+
+#: wysiwyg_editor.module:68
+msgid "Enable TinyMCE for this node types"
+msgstr "TinyMCE eklentisini bu düğüm çeşitleri için etkinleştir"
+
+#: wysiwyg_editor.module:70
+msgid "Node type in case-sensitive name, i.e: page,story,data_product,blog"
+msgstr "İçerik türü, küçük büyük harf duyarlı. ör: page, story, data_product, blog"
+
+#: wysiwyg_editor.module:0
+#: wysiwyg_editor.info:0
+msgid "wysiwyg_editor"
+msgstr "wysiwyg_editor"
+
diff --git a/sites/all/modules/wysiwyg/translations/uk.po b/sites/all/modules/wysiwyg/translations/uk.po
new file mode 100755
index 0000000000000000000000000000000000000000..6a25be8aeab1598043a5da91dfda8f5a8af23de5
--- /dev/null
+++ b/sites/all/modules/wysiwyg/translations/uk.po
@@ -0,0 +1,818 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: wysiwig Uk\n"
+"POT-Creation-Date: 2009-03-02 01:23+0100\n"
+"PO-Revision-Date: \n"
+"Last-Translator: podarok <podarok@ua.fm>\n"
+"Language-Team: Pavonine.com.ua <drupalua@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Ukrainian\n"
+"X-Poedit-Country: UKRAINE\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=3; plural=((((n%10)==1)&&((n%100)!=11))?(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));\n"
+
+#: wysiwyg.api.php:50;51
+msgid "My plugin title"
+msgstr "Мій заголовок плаґіну"
+
+#: wysiwyg.api.php:60
+msgid "Button title (optional)"
+msgstr "Назва кнопки (необов’язково)"
+
+#: wysiwyg.admin.inc:19
+msgid "Home"
+msgstr "Додому"
+
+#: wysiwyg.admin.inc:20
+msgid "Administer"
+msgstr "Адміністрування"
+
+#: wysiwyg.admin.inc:21
+msgid "Site configuration"
+msgstr "Конфіґурація сайту"
+
+#: wysiwyg.admin.inc:22
+msgid "Wysiwyg profiles"
+msgstr "Профілі візуального редактора"
+
+#: wysiwyg.admin.inc:78
+msgid "%format Wysiwyg profile"
+msgstr "%format профілю візуального редактора"
+
+#: wysiwyg.admin.inc:87
+msgid "Basic setup"
+msgstr "Базове встановлення"
+
+#: wysiwyg.admin.inc:94
+msgid "Enabled by default"
+msgstr "Дозволити стандартно"
+
+#: wysiwyg.admin.inc:97
+msgid "The default editor state for users having access to this profile. Users are able to override this state if the next option is enabled."
+msgstr "Стандартний редактор за замовчуванням для користувачів, що мають доступ до цього профілю. Користувачі мають можливість змінити цей стан, якщо включена наступна опція."
+
+#: wysiwyg.admin.inc:102
+msgid "Allow users to choose default"
+msgstr "Дозволити користувачам обирати стандартно"
+
+#: wysiwyg.admin.inc:105
+msgid "If allowed, users will be able to choose their own editor default state in their user account settings."
+msgstr "Якщо дозволено, користувачі зможуть вибирати свій власний стандартний редактор за замовчуванням у налаштуваннях облікового запису користувача."
+
+#: wysiwyg.admin.inc:110
+msgid "Show <em>enable/disable rich text</em> toggle link"
+msgstr ""
+
+#: wysiwyg.admin.inc:113
+msgid "Whether or not to show the <em>enable/disable rich text</em> toggle link below a textarea. If disabled, the user setting or global default is used (see above)."
+msgstr ""
+
+#: wysiwyg.admin.inc:123
+msgid "Language"
+msgstr "Мова"
+
+#: wysiwyg.admin.inc:126
+msgid "The language to use for the editor interface. Language codes are based on the <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> format."
+msgstr "Мова, яка використовується в редакторі кодується у форматі <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a>."
+
+#: wysiwyg.admin.inc:131
+msgid "Buttons and plugins"
+msgstr "Кнопки та плаґіни"
+
+#: wysiwyg.admin.inc:176
+msgid "Editor appearance"
+msgstr "Дизайн редактора"
+
+#: wysiwyg.admin.inc:183
+msgid "Toolbar location"
+msgstr "Розміщення панеоі"
+
+#: wysiwyg.admin.inc:185;201
+msgid "Bottom"
+msgstr "Знизу"
+
+#: wysiwyg.admin.inc:185;201
+msgid "Top"
+msgstr "Вгорі"
+
+#: wysiwyg.admin.inc:186
+msgid "This option controls whether the editor toolbar is displayed above or below the editing area."
+msgstr "Ця опція контролює чи панель інструментів редактора відображається вище або нижче вікна редагування."
+
+#: wysiwyg.admin.inc:191
+msgid "Button alignment"
+msgstr "Вирівнювання кнопок"
+
+#: wysiwyg.admin.inc:193
+msgid "Center"
+msgstr "По центру"
+
+#: wysiwyg.admin.inc:193
+msgid "Left"
+msgstr "Зліва"
+
+#: wysiwyg.admin.inc:193
+msgid "Right"
+msgstr "Справа"
+
+#: wysiwyg.admin.inc:194
+msgid "This option controls the alignment of icons in the editor toolbar."
+msgstr "Ця опція контролює розстановку іконок в панелі інструментів редактора."
+
+#: wysiwyg.admin.inc:199
+msgid "Path location"
+msgstr "Шлях розміщення"
+
+#: wysiwyg.admin.inc:201
+msgid "Hide"
+msgstr "Сховати"
+
+#: wysiwyg.admin.inc:202
+msgid "Where to display the path to HTML elements (i.e. <code>body > table > tr > td</code>)."
+msgstr ""
+
+#: wysiwyg.admin.inc:207
+msgid "Enable resizing button"
+msgstr "Дозволити кнопку зміни розміру"
+
+#: wysiwyg.admin.inc:210
+msgid "This option gives you the ability to enable/disable the resizing button. If enabled, the Path location toolbar must be set to \"Top\" or \"Bottom\" in order to display the resize icon."
+msgstr ""
+
+#: wysiwyg.admin.inc:215
+msgid "Cleanup and output"
+msgstr ""
+
+#: wysiwyg.admin.inc:222
+msgid "Verify HTML"
+msgstr "перевірити HTML"
+
+#: wysiwyg.admin.inc:225
+msgid "If enabled, potentially malicious code like <code>&lt;HEAD&gt;</code> tags will be removed from HTML contents."
+msgstr ""
+
+#: wysiwyg.admin.inc:230
+msgid "Preformatted"
+msgstr "Преформатований"
+
+#: wysiwyg.admin.inc:233
+msgid "If enabled, the editor will insert TAB characters on tab and preserve other whitespace characters just like a PRE element in HTML does."
+msgstr ""
+
+#: wysiwyg.admin.inc:238
+msgid "Convert &lt;font&gt; tags to styles"
+msgstr ""
+
+#: wysiwyg.admin.inc:241
+msgid "If enabled, HTML tags declaring the font size, font family, font color and font background color will be replaced by inline CSS styles."
+msgstr ""
+
+#: wysiwyg.admin.inc:246
+msgid "Remove linebreaks"
+msgstr "Видалити порожні рядки"
+
+#: wysiwyg.admin.inc:249
+msgid "If enabled, the editor will remove most linebreaks from contents. Disabling this option could avoid conflicts with other input filters."
+msgstr "Якщо включено, редактор буде видаляти сам розриви рядків з тексту. Ця опція може уникнути конфліктів з іншими фільтрами введення."
+
+#: wysiwyg.admin.inc:254
+msgid "Apply source formatting"
+msgstr "Застосувати форматування вихідного тексту"
+
+#: wysiwyg.admin.inc:257
+msgid "If enabled, the editor will re-format the HTML source code. Disabling this option could avoid conflicts with other input filters."
+msgstr "Якщо включений, редактор буде переформатувати вихідний код. Ця опція може уникнути конфліктів з іншими фільтрами введення."
+
+#: wysiwyg.admin.inc:262
+msgid "Force cleanup on standard paste"
+msgstr ""
+
+#: wysiwyg.admin.inc:265
+msgid "If enabled, the default paste function (CTRL-V or SHIFT-INS) behaves like the \"paste from word\" plugin function."
+msgstr "Якщо включена функція «Вставити» за замовчуванням (CTRL-V або SHIFT-INS) поводить себе як функція плаґіну  \"paste from word\"."
+
+#: wysiwyg.admin.inc:270
+msgid "CSS"
+msgstr "CSS"
+
+#: wysiwyg.admin.inc:277
+msgid "Block formats"
+msgstr "Блочні формати"
+
+#: wysiwyg.admin.inc:281
+msgid "Comma separated list of HTML block formats. Possible values: <code>@format-list</code>."
+msgstr "Розділяйте комою список HTML блочних форматів. Можливі значення: <code>@format-list</code>."
+
+#: wysiwyg.admin.inc:286
+msgid "Editor CSS"
+msgstr "Редактор CSS"
+
+#: wysiwyg.admin.inc:288
+msgid "Use theme CSS"
+msgstr "Використовувати CSS шаблону"
+
+#: wysiwyg.admin.inc:288
+msgid "Define CSS"
+msgstr "Визначити CSS"
+
+#: wysiwyg.admin.inc:288
+msgid "Editor default CSS"
+msgstr "Редактор стандартного CSS"
+
+#: wysiwyg.admin.inc:289
+msgid "Defines the CSS to be used in the editor area.<br />Use theme CSS - loads stylesheets from current site theme.<br/>Define CSS - enter path for stylesheet files below.<br />Editor default CSS - uses default stylesheets from editor."
+msgstr "Визначає CSS, які будуть використовуватися в редакторі.<br /> Використовуйте CSS-стилі від поточної шаблону сайту. <br /> Визначити CSS - Введіть шлях до файлів стилів нижче. <br/> Редактор стандартного CSS редактор за замовчуванням — використовує стандартний стиль з редактора."
+
+#: wysiwyg.admin.inc:294
+msgid "CSS path"
+msgstr "Шлях до CSS"
+
+#: wysiwyg.admin.inc:298
+msgid "If \"Define CSS\" has been selected above, enter path to a CSS file or a list of CSS files seperated by a comma."
+msgstr "Якщо \"Визначити CSS\" був обраний вище, введіть шлях до файлу CSS або список доданих типів файлів, розділених комами."
+
+#: wysiwyg.admin.inc:298
+msgid "Available tokens: %b (base path, f.e.: /), %t (path to theme, f.e.: themes/garland)"
+msgstr "Доступні лексеми: %b (базовий шлях, для прикладу.: /), %t (шлях до шаблону, f.e.: themes/garland)"
+
+#: wysiwyg.admin.inc:298
+msgid "Examples:"
+msgstr "Приклади: "
+
+#: wysiwyg.admin.inc:303
+msgid "CSS classes"
+msgstr "Класи CSS"
+
+#: wysiwyg.admin.inc:305
+msgid "Optionally define CSS classes for the \"Font style\" dropdown list.<br />Enter one class on each line in the format: !format. Example: !example<br />If left blank, CSS classes are automatically imported from all loaded stylesheet(s)."
+msgstr "Можливе визначення CSS-класів для \"стилю тексту\" як випадаючий список.<br />Введіть один клас в одному рядку: !format. Приклад: !example<br />Якщо залишити порожнім,CSS класи будуть автоматично імпортовані з всіх завантажених стилів."
+
+#: wysiwyg.admin.inc:310;444
+msgid "Save"
+msgstr "Зберегти"
+
+#: wysiwyg.admin.inc:343
+msgid "Wysiwyg profile for %format has been saved."
+msgstr "Профіль візуального редактора %format збережено."
+
+#: wysiwyg.admin.inc:392
+msgid "No editor"
+msgstr "Без редактора"
+
+#: wysiwyg.admin.inc:396
+msgid "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Download</a>)"
+msgstr "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Завантажити</a>)"
+
+#: wysiwyg.admin.inc:397
+msgid "Not installed."
+msgstr "Не встановлено"
+
+#: wysiwyg.admin.inc:398
+msgid "Extract the archive and copy its contents into a new folder in the following location:<br /><code>@editor-path</code>"
+msgstr "Розпакуйте архів і скопіюйте його вміст в нову папку в наступному місці:<br /><code>@editor-path</code>"
+
+#: wysiwyg.admin.inc:409
+msgid "Installation instructions"
+msgstr "Інструкції з встановлення"
+
+#: wysiwyg.admin.inc:412
+msgid "There are no editor libraries installed currently. The following list contains a list of currently supported editors:"
+msgstr "Тут немає бібліотеки редакторів, що встановлені в даний час. Наступний список містить список підтримуваних в даний час редакторів:"
+
+#: wysiwyg.admin.inc:436
+msgid "Edit"
+msgstr "Редагувати"
+
+#: wysiwyg.admin.inc:439;496
+msgid "Remove"
+msgstr "Прибрати"
+
+#: wysiwyg.admin.inc:456
+msgid "Input format"
+msgstr "Формат ввлду"
+
+#: wysiwyg.admin.inc:456
+msgid "Editor"
+msgstr "Редактор"
+
+#: wysiwyg.admin.inc:456
+msgid "Operations"
+msgstr "Операції"
+
+#: wysiwyg.admin.inc:494
+msgid "Are you sure you want to remove the profile for %name?"
+msgstr "Ви впевнені, що бажаєте видалити профіль для %name?"
+
+#: wysiwyg.admin.inc:496
+msgid "This action cannot be undone."
+msgstr "Ця дія не може бути скасованою."
+
+#: wysiwyg.admin.inc:496
+msgid "Cancel"
+msgstr "Скасувати"
+
+#: wysiwyg.admin.inc:507
+msgid "Wysiwyg profile for %name has been deleted."
+msgstr "Профіль візуального редактора для %name збережено."
+
+#: wysiwyg.plugins.inc:15
+msgid "Teaser break"
+msgstr ""
+
+#: wysiwyg.module:41
+msgid "A Wysiwyg profile can be associated to an input format. A Wysiwyg profile defines which client-side editor is loaded, what buttons or themes are enabled for the editor, how the editor is displayed, and a few other editor-specific functions."
+msgstr "Профіль візуального редактора може бути пов'язано з вхідний форматом. Профіль візуального редактора визначає, які клієнтські редактори завантажуються, які кнопки або теми включені в редакторі, як це відображено в редакторі, і кілька інших специфічних функцій редактора."
+
+#: wysiwyg.module:273
+msgid "Disable rich-text"
+msgstr "Вимкнути rich-text"
+
+#: wysiwyg.module:274
+msgid "Enable rich-text"
+msgstr "Дозволити rich-text"
+
+#: wysiwyg.module:485
+msgid "Wysiwyg Editor settings"
+msgstr "налаштування візуального редактора"
+
+#: wysiwyg.module:492
+msgid "Enable editor by default"
+msgstr "Дозволити редактор за замовчуванням"
+
+#: wysiwyg.module:495
+msgid "If enabled, rich-text editing is enabled by default in textarea fields."
+msgstr "Якщо увімкнено, rich-text є вбудованим за замовчуванням у текстові поля"
+
+#: wysiwyg.module:579
+msgid "The version of %editor could not be detected."
+msgstr "Версія редактора %editor неможливо визначити."
+
+#: wysiwyg.module:592
+msgid "The installed version %version of %editor is not supported."
+msgstr "Встановлена версія %version  %editor не підтримується."
+
+#: wysiwyg.module:15
+#: wysiwyg.info:0
+msgid "Wysiwyg"
+msgstr "Wysiwyg"
+
+#: wysiwyg.module:17
+msgid "Configure client-side editor profiles."
+msgstr "Налаштування клієнтських профілів боку редактора."
+
+#: wysiwyg.module:0
+msgid "wysiwyg"
+msgstr "wysiwyg"
+
+#: wysiwyg.install:10
+msgid "Stores Wysiwyg profiles."
+msgstr "Магазини профілів візуальних редакторів."
+
+#: wysiwyg.info:0
+msgid "Allows users to edit contents with client-side editors."
+msgstr "Дозволяє користувачам редагувати вміст на стороні клієнтського редактора."
+
+#: wysiwyg.info:0
+msgid "User interface"
+msgstr "Користувацький інтерфейс"
+
+#: editors/fckeditor.inc:166
+#: editors/markitup.inc:91;140
+#: editors/nicedit.inc:102
+#: editors/tinymce.inc:348
+#: editors/whizzywig.inc:110
+#: editors/yui.inc:227
+msgid "Bold"
+msgstr "Напівжирний"
+
+#: editors/fckeditor.inc:166
+#: editors/markitup.inc:92;140
+#: editors/nicedit.inc:102
+#: editors/tinymce.inc:348
+#: editors/whizzywig.inc:110
+#: editors/yui.inc:227
+msgid "Italic"
+msgstr "Курсив"
+
+#: editors/fckeditor.inc:166
+#: editors/nicedit.inc:102
+#: editors/tinymce.inc:348
+#: editors/whizzywig.inc:110
+#: editors/yui.inc:227
+msgid "Underline"
+msgstr "Підкреслений"
+
+#: editors/fckeditor.inc:167
+#: editors/markitup.inc:93;141
+#: editors/nicedit.inc:103
+#: editors/tinymce.inc:349
+#: editors/yui.inc:228
+msgid "Strike-through"
+msgstr "Перекреслени"
+
+#: editors/fckeditor.inc:168
+#: editors/nicedit.inc:104
+#: editors/tinymce.inc:350
+#: editors/whizzywig.inc:111
+#: editors/yui.inc:229
+msgid "Align left"
+msgstr "Зліва"
+
+#: editors/fckeditor.inc:168
+#: editors/nicedit.inc:104
+#: editors/tinymce.inc:350
+#: editors/whizzywig.inc:111
+#: editors/yui.inc:229
+msgid "Align center"
+msgstr "По центру"
+
+#: editors/fckeditor.inc:168
+#: editors/nicedit.inc:104
+#: editors/tinymce.inc:350
+#: editors/whizzywig.inc:111
+#: editors/yui.inc:229
+msgid "Align right"
+msgstr "Справа"
+
+#: editors/fckeditor.inc:168
+#: editors/tinymce.inc:350
+msgid "Justify"
+msgstr "По ширині"
+
+#: editors/fckeditor.inc:169
+#: editors/nicedit.inc:105
+#: editors/tinymce.inc:351
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:230
+msgid "Bullet list"
+msgstr "Звичайний список"
+
+#: editors/fckeditor.inc:169
+#: editors/nicedit.inc:105
+#: editors/tinymce.inc:351
+#: editors/whizzywig.inc:112
+#: editors/yui.inc:230
+msgid "Numbered list"
+msgstr "Нумерований список"
+
+#: editors/fckeditor.inc:170
+#: editors/nicedit.inc:106
+#: editors/tinymce.inc:352
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:231
+msgid "Outdent"
+msgstr ""
+
+#: editors/fckeditor.inc:170
+#: editors/nicedit.inc:106
+#: editors/tinymce.inc:352
+#: editors/whizzywig.inc:113
+#: editors/yui.inc:231
+msgid "Indent"
+msgstr ""
+
+#: editors/fckeditor.inc:171
+#: editors/tinymce.inc:353
+#: editors/whizzywig.inc:114
+msgid "Undo"
+msgstr "Скасувати"
+
+#: editors/fckeditor.inc:171
+#: editors/tinymce.inc:353
+#: editors/whizzywig.inc:114
+msgid "Redo"
+msgstr "Відмінити"
+
+#: editors/fckeditor.inc:172
+#: editors/markitup.inc:95;143
+#: editors/nicedit.inc:113
+#: editors/tinymce.inc:354
+#: editors/whizzywig.inc:118
+#: editors/yui.inc:232
+msgid "Link"
+msgstr "Посилання"
+
+#: editors/fckeditor.inc:172
+#: editors/nicedit.inc:113
+#: editors/tinymce.inc:354
+msgid "Unlink"
+msgstr "Прибрати посилання"
+
+#: editors/fckeditor.inc:172
+#: editors/tinymce.inc:354
+msgid "Anchor"
+msgstr "Анкор"
+
+#: editors/fckeditor.inc:173
+#: editors/markitup.inc:94;142
+#: editors/nicedit.inc:107
+#: editors/tinymce.inc:355
+#: editors/whizzywig.inc:115;119
+#: editors/yui.inc:233
+msgid "Image"
+msgstr "Зображення"
+
+#: editors/fckeditor.inc:174
+#: editors/nicedit.inc:108
+#: editors/tinymce.inc:357
+#: editors/whizzywig.inc:116
+msgid "Forecolor"
+msgstr "Колір переднього плану"
+
+#: editors/fckeditor.inc:174
+#: editors/nicedit.inc:108
+#: editors/tinymce.inc:357
+#: editors/whizzywig.inc:116
+msgid "Backcolor"
+msgstr "Фон"
+
+#: editors/fckeditor.inc:175
+msgid "Superscript"
+msgstr "Надрядковий індекс"
+
+#: editors/fckeditor.inc:175
+msgid "Subscript"
+msgstr "Підрядковий індекс"
+
+#: editors/fckeditor.inc:176
+#: editors/tinymce.inc:359
+msgid "Blockquote"
+msgstr "Цитата"
+
+#: editors/fckeditor.inc:176
+#: editors/nicedit.inc:115
+#: editors/tinymce.inc:359
+#: editors/whizzywig.inc:122
+msgid "Source code"
+msgstr "Вихідний код"
+
+#: editors/fckeditor.inc:177
+#: editors/nicedit.inc:110
+#: editors/tinymce.inc:360
+#: editors/whizzywig.inc:117
+msgid "Horizontal rule"
+msgstr "Горизонтальне правило"
+
+#: editors/fckeditor.inc:178
+#: editors/tinymce.inc:361
+msgid "Cut"
+msgstr "Вирізати"
+
+#: editors/fckeditor.inc:178
+#: editors/tinymce.inc:361
+msgid "Copy"
+msgstr "Копіювати"
+
+#: editors/fckeditor.inc:178
+#: editors/tinymce.inc:361
+msgid "Paste"
+msgstr "Вставитив"
+
+#: editors/fckeditor.inc:179
+msgid "Paste Text"
+msgstr "Вставити текст"
+
+#: editors/fckeditor.inc:179
+#: editors/tinymce.inc:472
+msgid "Paste from Word"
+msgstr "Вставити з «Word»"
+
+#: editors/fckeditor.inc:180
+msgid "Show blocks"
+msgstr "Показати блоки"
+
+#: editors/fckeditor.inc:181
+#: editors/tinymce.inc:363
+#: editors/yui.inc:236
+msgid "Remove format"
+msgstr "Прибрати формат"
+
+#: editors/fckeditor.inc:182
+#: editors/tinymce.inc:364
+msgid "Character map"
+msgstr "Таблиця символів"
+
+#: editors/fckeditor.inc:183
+msgid "About"
+msgstr "Про"
+
+#: editors/fckeditor.inc:185
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:430
+#: editors/whizzywig.inc:109
+#: editors/yui.inc:238
+msgid "HTML block format"
+msgstr "HTML формат блоку"
+
+#: editors/fckeditor.inc:185
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:430
+#: editors/whizzywig.inc:109
+#: editors/yui.inc:238
+msgid "Font"
+msgstr "Шрифт"
+
+#: editors/fckeditor.inc:185
+#: editors/nicedit.inc:114
+#: editors/tinymce.inc:430
+#: editors/whizzywig.inc:109
+#: editors/yui.inc:238
+msgid "Font size"
+msgstr "Розмір шрифту"
+
+#: editors/fckeditor.inc:185
+#: editors/tinymce.inc:430
+#: editors/yui.inc:238
+msgid "Font style"
+msgstr "Стиль шрифту"
+
+#: editors/fckeditor.inc:186
+#: editors/tinymce.inc:507
+#: editors/whizzywig.inc:120
+msgid "Table"
+msgstr "Таблиця"
+
+#: editors/fckeditor.inc:187
+#: editors/tinymce.inc:493
+msgid "Search"
+msgstr "Пошук"
+
+#: editors/fckeditor.inc:187
+#: editors/tinymce.inc:493
+msgid "Replace"
+msgstr "Заміна"
+
+#: editors/fckeditor.inc:187
+#: editors/tinymce.inc:472
+msgid "Select all"
+msgstr "Виділити все"
+
+#: editors/fckeditor.inc:188
+msgid "Create DIV container"
+msgstr "Створити контейнер DIV"
+
+#: editors/fckeditor.inc:189
+#: editors/tinymce.inc:422
+msgid "Flash"
+msgstr "Флеш"
+
+#: editors/fckeditor.inc:189
+msgid "Smiley"
+msgstr "Смайлики"
+
+#: editors/fckeditor.inc:190
+msgid "FitWindow"
+msgstr "Ввікно"
+
+#: editors/fckeditor.inc:191
+msgid "Check spelling"
+msgstr "Перевірка правопису"
+
+#: editors/markitup.inc:98;145
+#: editors/tinymce.inc:479
+msgid "Preview"
+msgstr "Попередній перегляд"
+
+#: editors/nicedit.inc:109
+#: editors/tinymce.inc:358
+#: editors/yui.inc:235
+msgid "Sup"
+msgstr "Верхній індекс"
+
+#: editors/nicedit.inc:109
+#: editors/tinymce.inc:358
+#: editors/yui.inc:235
+msgid "Sub"
+msgstr "Нижній індекс"
+
+#: editors/tinymce.inc:356
+#: editors/whizzywig.inc:121
+msgid "Clean-up"
+msgstr "Очистити"
+
+#: editors/tinymce.inc:362
+msgid "Visual aid"
+msgstr "Наочні посібники"
+
+#: editors/tinymce.inc:365
+msgid "Help"
+msgstr "Допомога"
+
+#: editors/tinymce.inc:370
+msgid "Advanced horizontal rule"
+msgstr "Розширений горизонтальні правила"
+
+#: editors/tinymce.inc:378
+msgid "Advanced image"
+msgstr "Розширене зображення"
+
+#: editors/tinymce.inc:386
+msgid "Advanced link"
+msgstr "Розширене посилання"
+
+#: editors/tinymce.inc:394
+msgid "Auto save"
+msgstr "Автозбереження"
+
+#: editors/tinymce.inc:401
+msgid "Context menu"
+msgstr "Контекстне меню"
+
+#: editors/tinymce.inc:408
+msgid "Left-to-right"
+msgstr "Зліва направо"
+
+#: editors/tinymce.inc:408
+msgid "Right-to-left"
+msgstr "Справа наліво"
+
+#: editors/tinymce.inc:415
+msgid "Emotions"
+msgstr "Емоції"
+
+#: editors/tinymce.inc:437
+msgid "Fullscreen"
+msgstr "Повноекренний режим перегляду"
+
+#: editors/tinymce.inc:444
+msgid "Inline popups"
+msgstr "Рядкові спливаючі вікна"
+
+#: editors/tinymce.inc:454
+msgid "Insert date"
+msgstr "Вставити дата"
+
+#: editors/tinymce.inc:454
+msgid "Insert time"
+msgstr "Вставити час"
+
+#: editors/tinymce.inc:465
+msgid "Insert layer"
+msgstr "Вставити шар"
+
+#: editors/tinymce.inc:465
+msgid "Move forward"
+msgstr "Переміщення вперед"
+
+#: editors/tinymce.inc:465
+msgid "Move backward"
+msgstr "Переміщення назад"
+
+#: editors/tinymce.inc:465
+msgid "Absolute"
+msgstr "Абсолютно"
+
+#: editors/tinymce.inc:472
+msgid "Paste text"
+msgstr "Вставити текст"
+
+#: editors/tinymce.inc:486
+msgid "Print"
+msgstr "Роздрукувати"
+
+#: editors/tinymce.inc:500
+msgid "Style properties"
+msgstr "Опції стилю"
+
+#: editors/tinymce.inc:516
+msgid "Citation"
+msgstr "Цитування"
+
+#: editors/tinymce.inc:516
+msgid "Deleted"
+msgstr "Видалено"
+
+#: editors/tinymce.inc:516
+msgid "Abbreviation"
+msgstr "Абревіатура"
+
+#: editors/tinymce.inc:516
+msgid "Acronym"
+msgstr "Акронім"
+
+#: editors/tinymce.inc:516
+msgid "Inserted"
+msgstr "Вставлено"
+
+#: editors/tinymce.inc:523
+msgid "Safari compatibility"
+msgstr "Сумісність із Safari"
+
+#: editors/whizzywig.inc:123
+msgid "Spell check"
+msgstr "Перевірка орфографії"
+
+#: editors/yui.inc:234
+msgid "Font Color"
+msgstr "Колір шрифту"
+
+#: editors/yui.inc:234
+msgid "Background Color"
+msgstr "Колір тла"
+
+#: editors/yui.inc:237
+msgid "Show/hide hidden elements"
+msgstr "Показати/сховати приховані елементи"
+
diff --git a/sites/all/modules/wysiwyg/translations/wysiwyg.pot b/sites/all/modules/wysiwyg/translations/wysiwyg.pot
new file mode 100644
index 0000000000000000000000000000000000000000..3d1f6dd9ed9ba4b69b69dfd0cc59c1defde11ce2
--- /dev/null
+++ b/sites/all/modules/wysiwyg/translations/wysiwyg.pot
@@ -0,0 +1,772 @@
+# $Id: wysiwyg.pot,v 1.3 2009/06/17 21:06:26 hass Exp $
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL@ADDRESS>
+# Generated from files:
+#  wysiwyg.api.php,v 1.3 2009/06/09 00:18:11 sun
+#  wysiwyg.admin.inc,v 1.15 2009/06/09 00:18:11 sun
+#  wysiwyg.module,v 1.33 2009/06/09 00:18:11 sun
+#  wysiwyg.info,v 1.1 2008/10/14 21:45:07 sun
+#  wysiwyg.install,v 1.4 2009/06/08 21:57:10 sun
+#  fckeditor.inc,v 1.17 2009/06/09 00:18:11 sun
+#  markitup.inc,v 1.7 2009/06/13 02:10:32 sun
+#  nicedit.inc,v 1.6 2009/06/09 00:18:12 sun
+#  openwysiwyg.inc,v 1.4 2009/06/13 02:17:10 sun
+#  tinymce.inc,v 1.35 2009/06/09 00:18:12 sun
+#  whizzywig.inc,v 1.3 2009/06/09 00:18:12 sun
+#  yui.inc,v 1.6 2009/06/13 02:10:32 sun
+#  break.inc,v 1.4 2009/06/09 00:18:12 sun
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2009-06-17 21:00+0200\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: wysiwyg.api.php:51;52
+msgid "My plugin title"
+msgstr ""
+
+#: wysiwyg.api.php:61
+msgid "Button title (optional)"
+msgstr ""
+
+#: wysiwyg.admin.inc:51
+msgid "%editor profile for %format"
+msgstr ""
+
+#: wysiwyg.admin.inc:60
+msgid "Basic setup"
+msgstr ""
+
+#: wysiwyg.admin.inc:67
+msgid "Enabled by default"
+msgstr ""
+
+#: wysiwyg.admin.inc:70
+msgid "The default editor state for users having access to this profile. Users are able to override this state if the next option is enabled."
+msgstr ""
+
+#: wysiwyg.admin.inc:75
+msgid "Allow users to choose default"
+msgstr ""
+
+#: wysiwyg.admin.inc:78
+msgid "If allowed, users will be able to choose their own editor default state in their user account settings."
+msgstr ""
+
+#: wysiwyg.admin.inc:83
+msgid "Show <em>enable/disable rich text</em> toggle link"
+msgstr ""
+
+#: wysiwyg.admin.inc:86
+msgid "Whether or not to show the <em>enable/disable rich text</em> toggle link below a textarea. If disabled, the user setting or global default is used (see above)."
+msgstr ""
+
+#: wysiwyg.admin.inc:96
+msgid "Language"
+msgstr ""
+
+#: wysiwyg.admin.inc:99
+msgid "The language to use for the editor interface. Language codes are based on the <a href=\"http://www.loc.gov/standards/iso639-2/englangn.html\">ISO-639-2</a> format."
+msgstr ""
+
+#: wysiwyg.admin.inc:104
+msgid "Buttons and plugins"
+msgstr ""
+
+#: wysiwyg.admin.inc:149
+msgid "Editor appearance"
+msgstr ""
+
+#: wysiwyg.admin.inc:156
+msgid "Toolbar location"
+msgstr ""
+
+#: wysiwyg.admin.inc:158;174
+msgid "Bottom"
+msgstr ""
+
+#: wysiwyg.admin.inc:158;174
+msgid "Top"
+msgstr ""
+
+#: wysiwyg.admin.inc:159
+msgid "This option controls whether the editor toolbar is displayed above or below the editing area."
+msgstr ""
+
+#: wysiwyg.admin.inc:164
+msgid "Button alignment"
+msgstr ""
+
+#: wysiwyg.admin.inc:166
+msgid "Center"
+msgstr ""
+
+#: wysiwyg.admin.inc:166
+msgid "Left"
+msgstr ""
+
+#: wysiwyg.admin.inc:166
+msgid "Right"
+msgstr ""
+
+#: wysiwyg.admin.inc:167
+msgid "This option controls the alignment of icons in the editor toolbar."
+msgstr ""
+
+#: wysiwyg.admin.inc:172
+msgid "Path location"
+msgstr ""
+
+#: wysiwyg.admin.inc:174
+msgid "Hide"
+msgstr ""
+
+#: wysiwyg.admin.inc:175
+msgid "Where to display the path to HTML elements (i.e. <code>body > table > tr > td</code>)."
+msgstr ""
+
+#: wysiwyg.admin.inc:180
+msgid "Enable resizing button"
+msgstr ""
+
+#: wysiwyg.admin.inc:183
+msgid "This option gives you the ability to enable/disable the resizing button. If enabled, the Path location toolbar must be set to \"Top\" or \"Bottom\" in order to display the resize icon."
+msgstr ""
+
+#: wysiwyg.admin.inc:188
+msgid "Cleanup and output"
+msgstr ""
+
+#: wysiwyg.admin.inc:195
+msgid "Verify HTML"
+msgstr ""
+
+#: wysiwyg.admin.inc:198
+msgid "If enabled, potentially malicious code like <code>&lt;HEAD&gt;</code> tags will be removed from HTML contents."
+msgstr ""
+
+#: wysiwyg.admin.inc:203
+msgid "Preformatted"
+msgstr ""
+
+#: wysiwyg.admin.inc:206
+msgid "If enabled, the editor will insert TAB characters on tab and preserve other whitespace characters just like a PRE element in HTML does."
+msgstr ""
+
+#: wysiwyg.admin.inc:211
+msgid "Convert &lt;font&gt; tags to styles"
+msgstr ""
+
+#: wysiwyg.admin.inc:214
+msgid "If enabled, HTML tags declaring the font size, font family, font color and font background color will be replaced by inline CSS styles."
+msgstr ""
+
+#: wysiwyg.admin.inc:219
+msgid "Remove linebreaks"
+msgstr ""
+
+#: wysiwyg.admin.inc:222
+msgid "If enabled, the editor will remove most linebreaks from contents. Disabling this option could avoid conflicts with other input filters."
+msgstr ""
+
+#: wysiwyg.admin.inc:227
+msgid "Apply source formatting"
+msgstr ""
+
+#: wysiwyg.admin.inc:230
+msgid "If enabled, the editor will re-format the HTML source code. Disabling this option could avoid conflicts with other input filters."
+msgstr ""
+
+#: wysiwyg.admin.inc:235
+msgid "Force cleanup on standard paste"
+msgstr ""
+
+#: wysiwyg.admin.inc:238
+msgid "If enabled, the default paste function (CTRL-V or SHIFT-INS) behaves like the \"paste from word\" plugin function."
+msgstr ""
+
+#: wysiwyg.admin.inc:243
+msgid "CSS"
+msgstr ""
+
+#: wysiwyg.admin.inc:250
+msgid "Block formats"
+msgstr ""
+
+#: wysiwyg.admin.inc:254
+msgid "Comma separated list of HTML block formats. Possible values: <code>@format-list</code>."
+msgstr ""
+
+#: wysiwyg.admin.inc:259
+msgid "Editor CSS"
+msgstr ""
+
+#: wysiwyg.admin.inc:261
+msgid "Use theme CSS"
+msgstr ""
+
+#: wysiwyg.admin.inc:261
+msgid "Define CSS"
+msgstr ""
+
+#: wysiwyg.admin.inc:261
+msgid "Editor default CSS"
+msgstr ""
+
+#: wysiwyg.admin.inc:262
+msgid "Defines the CSS to be used in the editor area.<br />Use theme CSS - loads stylesheets from current site theme.<br/>Define CSS - enter path for stylesheet files below.<br />Editor default CSS - uses default stylesheets from editor."
+msgstr ""
+
+#: wysiwyg.admin.inc:267
+msgid "CSS path"
+msgstr ""
+
+#: wysiwyg.admin.inc:271
+msgid "If \"Define CSS\" was selected above, enter path to a CSS file or a list of CSS files separated by a comma."
+msgstr ""
+
+#: wysiwyg.admin.inc:271
+msgid "Available tokens: <code>%b</code> (base path, eg: <code>/</code>), <code>%t</code> (path to theme, eg: <code>themes/garland</code>)"
+msgstr ""
+
+#: wysiwyg.admin.inc:271
+msgid "Example:"
+msgstr ""
+
+#: wysiwyg.admin.inc:276
+msgid "CSS classes"
+msgstr ""
+
+#: wysiwyg.admin.inc:278
+msgid "Optionally define CSS classes for the \"Font style\" dropdown list.<br />Enter one class on each line in the format: !format. Example: !example<br />If left blank, CSS classes are automatically imported from all loaded stylesheet(s)."
+msgstr ""
+
+#: wysiwyg.admin.inc:283;438
+msgid "Save"
+msgstr ""
+
+#: wysiwyg.admin.inc:317
+msgid "Wysiwyg profile for %format has been saved."
+msgstr ""
+
+#: wysiwyg.admin.inc:366
+msgid "No editor"
+msgstr ""
+
+#: wysiwyg.admin.inc:371
+msgid "<a href=\"!vendor-url\">@editor</a> (<a href=\"!download-url\">Download</a>)"
+msgstr ""
+
+#: wysiwyg.admin.inc:372
+msgid "Not installed."
+msgstr ""
+
+#: wysiwyg.admin.inc:386
+msgid "Extract the archive and copy its contents into a new folder in the following location:<br /><code>@editor-path</code>"
+msgstr ""
+
+#: wysiwyg.admin.inc:387
+msgid "So the actual library can be found at:<br /><code>@library-filepath</code>"
+msgstr ""
+
+#: wysiwyg.admin.inc:402
+msgid "Installation instructions"
+msgstr ""
+
+#: wysiwyg.admin.inc:405
+msgid "There are no editor libraries installed currently. The following list contains a list of currently supported editors:"
+msgstr ""
+
+#: wysiwyg.admin.inc:430 wysiwyg.module:26
+msgid "Edit"
+msgstr ""
+
+#: wysiwyg.admin.inc:433;489 wysiwyg.module:36
+msgid "Remove"
+msgstr ""
+
+#: wysiwyg.admin.inc:450
+msgid "Input format"
+msgstr ""
+
+#: wysiwyg.admin.inc:450
+msgid "Editor"
+msgstr ""
+
+#: wysiwyg.admin.inc:450
+msgid "Operations"
+msgstr ""
+
+#: wysiwyg.admin.inc:487
+msgid "Are you sure you want to remove the profile for %name?"
+msgstr ""
+
+#: wysiwyg.admin.inc:489
+msgid "This action cannot be undone."
+msgstr ""
+
+#: wysiwyg.admin.inc:489
+msgid "Cancel"
+msgstr ""
+
+#: wysiwyg.admin.inc:501
+msgid "Wysiwyg profile for %name has been deleted."
+msgstr ""
+
+#: wysiwyg.module:80
+msgid "A Wysiwyg profile can be associated to an input format. A Wysiwyg profile defines which client-side editor is loaded, what buttons or themes are enabled for the editor, how the editor is displayed, and a few other editor-specific functions."
+msgstr ""
+
+#: wysiwyg.module:306
+msgid "Disable rich-text"
+msgstr ""
+
+#: wysiwyg.module:307
+msgid "Enable rich-text"
+msgstr ""
+
+#: wysiwyg.module:608
+msgid "Wysiwyg Editor settings"
+msgstr ""
+
+#: wysiwyg.module:615
+msgid "Enable editor by default"
+msgstr ""
+
+#: wysiwyg.module:618
+msgid "If enabled, rich-text editing is enabled by default in textarea fields."
+msgstr ""
+
+#: wysiwyg.module:702
+msgid "The version of %editor could not be detected."
+msgstr ""
+
+#: wysiwyg.module:715
+msgid "The installed version %version of %editor is not supported."
+msgstr ""
+
+#: wysiwyg.module:14 wysiwyg.info:0
+msgid "Wysiwyg"
+msgstr ""
+
+#: wysiwyg.module:17
+msgid "Configure client-side editors."
+msgstr ""
+
+#: wysiwyg.module:22
+msgid "Profiles"
+msgstr ""
+
+#: wysiwyg.module:0
+msgid "wysiwyg"
+msgstr ""
+
+#: wysiwyg.install:10
+msgid "Stores Wysiwyg profiles."
+msgstr ""
+
+#: wysiwyg.info:0
+msgid "Allows users to edit contents with client-side editors."
+msgstr ""
+
+#: wysiwyg.info:0
+msgid "User interface"
+msgstr ""
+
+#: editors/fckeditor.inc:217 editors/markitup.inc:105;170 editors/nicedit.inc:103 editors/openwysiwyg.inc:140 editors/tinymce.inc:377 editors/whizzywig.inc:113 editors/yui.inc:276
+msgid "Bold"
+msgstr ""
+
+#: editors/fckeditor.inc:217 editors/markitup.inc:112;170 editors/nicedit.inc:103 editors/openwysiwyg.inc:140 editors/tinymce.inc:377 editors/whizzywig.inc:113 editors/yui.inc:276
+msgid "Italic"
+msgstr ""
+
+#: editors/fckeditor.inc:217 editors/nicedit.inc:103 editors/openwysiwyg.inc:140 editors/tinymce.inc:377 editors/whizzywig.inc:113 editors/yui.inc:276
+msgid "Underline"
+msgstr ""
+
+#: editors/fckeditor.inc:218 editors/markitup.inc:119;171 editors/nicedit.inc:104 editors/openwysiwyg.inc:141 editors/tinymce.inc:378 editors/yui.inc:277
+msgid "Strike-through"
+msgstr ""
+
+#: editors/fckeditor.inc:219 editors/nicedit.inc:105 editors/openwysiwyg.inc:142 editors/tinymce.inc:379 editors/whizzywig.inc:114 editors/yui.inc:278
+msgid "Align left"
+msgstr ""
+
+#: editors/fckeditor.inc:219 editors/nicedit.inc:105 editors/openwysiwyg.inc:142 editors/tinymce.inc:379 editors/whizzywig.inc:114 editors/yui.inc:278
+msgid "Align center"
+msgstr ""
+
+#: editors/fckeditor.inc:219 editors/nicedit.inc:105 editors/openwysiwyg.inc:142 editors/tinymce.inc:379 editors/whizzywig.inc:114 editors/yui.inc:278
+msgid "Align right"
+msgstr ""
+
+#: editors/fckeditor.inc:219 editors/openwysiwyg.inc:142 editors/tinymce.inc:379 editors/yui.inc:278
+msgid "Justify"
+msgstr ""
+
+#: editors/fckeditor.inc:220 editors/nicedit.inc:106 editors/openwysiwyg.inc:143 editors/tinymce.inc:380 editors/whizzywig.inc:115 editors/yui.inc:279
+msgid "Bullet list"
+msgstr ""
+
+#: editors/fckeditor.inc:220 editors/nicedit.inc:106 editors/openwysiwyg.inc:143 editors/tinymce.inc:380 editors/whizzywig.inc:115 editors/yui.inc:279
+msgid "Numbered list"
+msgstr ""
+
+#: editors/fckeditor.inc:221 editors/nicedit.inc:107 editors/openwysiwyg.inc:144 editors/tinymce.inc:381 editors/whizzywig.inc:116 editors/yui.inc:280
+msgid "Outdent"
+msgstr ""
+
+#: editors/fckeditor.inc:221 editors/nicedit.inc:107 editors/openwysiwyg.inc:144 editors/tinymce.inc:381 editors/whizzywig.inc:116 editors/yui.inc:280
+msgid "Indent"
+msgstr ""
+
+#: editors/fckeditor.inc:222 editors/openwysiwyg.inc:145 editors/tinymce.inc:382 editors/whizzywig.inc:117 editors/yui.inc:281
+msgid "Undo"
+msgstr ""
+
+#: editors/fckeditor.inc:222 editors/openwysiwyg.inc:145 editors/tinymce.inc:382 editors/whizzywig.inc:117 editors/yui.inc:281
+msgid "Redo"
+msgstr ""
+
+#: editors/fckeditor.inc:223 editors/markitup.inc:132;173 editors/nicedit.inc:114 editors/openwysiwyg.inc:146 editors/tinymce.inc:383 editors/whizzywig.inc:121 editors/yui.inc:282
+msgid "Link"
+msgstr ""
+
+#: editors/fckeditor.inc:223 editors/nicedit.inc:114 editors/tinymce.inc:383
+msgid "Unlink"
+msgstr ""
+
+#: editors/fckeditor.inc:223 editors/tinymce.inc:383
+msgid "Anchor"
+msgstr ""
+
+#: editors/fckeditor.inc:224 editors/markitup.inc:126;172 editors/nicedit.inc:108 editors/openwysiwyg.inc:147 editors/tinymce.inc:384 editors/whizzywig.inc:118;122 editors/yui.inc:283
+msgid "Image"
+msgstr ""
+
+#: editors/fckeditor.inc:225 editors/nicedit.inc:109 editors/openwysiwyg.inc:149 editors/tinymce.inc:386 editors/whizzywig.inc:119
+msgid "Forecolor"
+msgstr ""
+
+#: editors/fckeditor.inc:225 editors/nicedit.inc:109 editors/openwysiwyg.inc:149 editors/tinymce.inc:386 editors/whizzywig.inc:119
+msgid "Backcolor"
+msgstr ""
+
+#: editors/fckeditor.inc:226
+msgid "Superscript"
+msgstr ""
+
+#: editors/fckeditor.inc:226
+msgid "Subscript"
+msgstr ""
+
+#: editors/fckeditor.inc:227 editors/openwysiwyg.inc:151 editors/tinymce.inc:388
+msgid "Blockquote"
+msgstr ""
+
+#: editors/fckeditor.inc:227 editors/nicedit.inc:116 editors/openwysiwyg.inc:151 editors/tinymce.inc:388 editors/whizzywig.inc:125
+msgid "Source code"
+msgstr ""
+
+#: editors/fckeditor.inc:228 editors/nicedit.inc:111 editors/openwysiwyg.inc:152 editors/tinymce.inc:389 editors/whizzywig.inc:120
+msgid "Horizontal rule"
+msgstr ""
+
+#: editors/fckeditor.inc:229 editors/openwysiwyg.inc:153 editors/tinymce.inc:390
+msgid "Cut"
+msgstr ""
+
+#: editors/fckeditor.inc:229 editors/openwysiwyg.inc:153 editors/tinymce.inc:390
+msgid "Copy"
+msgstr ""
+
+#: editors/fckeditor.inc:229 editors/openwysiwyg.inc:153 editors/tinymce.inc:390
+msgid "Paste"
+msgstr ""
+
+#: editors/fckeditor.inc:230
+msgid "Paste Text"
+msgstr ""
+
+#: editors/fckeditor.inc:230 editors/tinymce.inc:494
+msgid "Paste from Word"
+msgstr ""
+
+#: editors/fckeditor.inc:231
+msgid "Show blocks"
+msgstr ""
+
+#: editors/fckeditor.inc:232 editors/openwysiwyg.inc:155 editors/tinymce.inc:392 editors/yui.inc:287
+msgid "Remove format"
+msgstr ""
+
+#: editors/fckeditor.inc:233 editors/openwysiwyg.inc:156 editors/tinymce.inc:393
+msgid "Character map"
+msgstr ""
+
+#: editors/fckeditor.inc:234
+msgid "About"
+msgstr ""
+
+#: editors/fckeditor.inc:235 editors/nicedit.inc:115 editors/openwysiwyg.inc:157 editors/tinymce.inc:452 editors/whizzywig.inc:112 editors/yui.inc:288
+msgid "HTML block format"
+msgstr ""
+
+#: editors/fckeditor.inc:235 editors/nicedit.inc:115 editors/openwysiwyg.inc:157 editors/tinymce.inc:452 editors/whizzywig.inc:112 editors/yui.inc:288
+msgid "Font"
+msgstr ""
+
+#: editors/fckeditor.inc:235 editors/nicedit.inc:115 editors/openwysiwyg.inc:157 editors/tinymce.inc:452 editors/whizzywig.inc:112 editors/yui.inc:288
+msgid "Font size"
+msgstr ""
+
+#: editors/fckeditor.inc:235 editors/tinymce.inc:452
+msgid "Font style"
+msgstr ""
+
+#: editors/fckeditor.inc:236 editors/openwysiwyg.inc:161 editors/tinymce.inc:529 editors/whizzywig.inc:123
+msgid "Table"
+msgstr ""
+
+#: editors/fckeditor.inc:237 editors/tinymce.inc:515
+msgid "Search"
+msgstr ""
+
+#: editors/fckeditor.inc:237 editors/tinymce.inc:515
+msgid "Replace"
+msgstr ""
+
+#: editors/fckeditor.inc:237 editors/tinymce.inc:494
+msgid "Select all"
+msgstr ""
+
+#: editors/fckeditor.inc:238
+msgid "Create DIV container"
+msgstr ""
+
+#: editors/fckeditor.inc:239 editors/tinymce.inc:538
+msgid "Flash"
+msgstr ""
+
+#: editors/fckeditor.inc:239
+msgid "Smiley"
+msgstr ""
+
+#: editors/fckeditor.inc:240
+msgid "FitWindow"
+msgstr ""
+
+#: editors/fckeditor.inc:241
+msgid "Check spelling"
+msgstr ""
+
+#: editors/fckeditor.inc:248
+msgid "Autogrow"
+msgstr ""
+
+#: editors/fckeditor.inc:259 editors/tinymce.inc:564
+msgid "BBCode"
+msgstr ""
+
+#: editors/fckeditor.inc:267
+msgid "Table drag/resize"
+msgstr ""
+
+#: editors/fckeditor.inc:275
+msgid "Table: Cell properties"
+msgstr ""
+
+#: editors/fckeditor.inc:276
+msgid "Table: Insert row after"
+msgstr ""
+
+#: editors/fckeditor.inc:277
+msgid "Table: Insert column after"
+msgstr ""
+
+#: editors/fckeditor.inc:278
+msgid "Table: Insert cell after"
+msgstr ""
+
+#: editors/fckeditor.inc:279
+msgid "Table: Delete rows"
+msgstr ""
+
+#: editors/fckeditor.inc:280
+msgid "Table: Delete columns"
+msgstr ""
+
+#: editors/fckeditor.inc:281
+msgid "Table: Delete cells"
+msgstr ""
+
+#: editors/fckeditor.inc:282
+msgid "Table: Merge cells"
+msgstr ""
+
+#: editors/fckeditor.inc:283
+msgid "Table: Horizontal split cell"
+msgstr ""
+
+#: editors/markitup.inc:142;175 editors/openwysiwyg.inc:159 editors/tinymce.inc:501
+msgid "Preview"
+msgstr ""
+
+#: editors/nicedit.inc:110 editors/openwysiwyg.inc:150 editors/tinymce.inc:387 editors/yui.inc:285
+msgid "Sup"
+msgstr ""
+
+#: editors/nicedit.inc:110 editors/openwysiwyg.inc:150 editors/tinymce.inc:387 editors/yui.inc:285
+msgid "Sub"
+msgstr ""
+
+#: editors/openwysiwyg.inc:148 editors/tinymce.inc:385 editors/whizzywig.inc:124
+msgid "Clean-up"
+msgstr ""
+
+#: editors/openwysiwyg.inc:154 editors/tinymce.inc:391
+msgid "Visual aid"
+msgstr ""
+
+#: editors/openwysiwyg.inc:158 editors/tinymce.inc:459
+msgid "Fullscreen"
+msgstr ""
+
+#: editors/openwysiwyg.inc:160 editors/tinymce.inc:508
+msgid "Print"
+msgstr ""
+
+#: editors/openwysiwyg.inc:162 editors/tinymce.inc:394
+msgid "Help"
+msgstr ""
+
+#: editors/tinymce.inc:400
+msgid "Advanced horizontal rule"
+msgstr ""
+
+#: editors/tinymce.inc:408
+msgid "Advanced image"
+msgstr ""
+
+#: editors/tinymce.inc:416
+msgid "Advanced link"
+msgstr ""
+
+#: editors/tinymce.inc:424
+msgid "Auto save"
+msgstr ""
+
+#: editors/tinymce.inc:431
+msgid "Context menu"
+msgstr ""
+
+#: editors/tinymce.inc:438
+msgid "Left-to-right"
+msgstr ""
+
+#: editors/tinymce.inc:438
+msgid "Right-to-left"
+msgstr ""
+
+#: editors/tinymce.inc:445
+msgid "Emotions"
+msgstr ""
+
+#: editors/tinymce.inc:466
+msgid "Inline popups"
+msgstr ""
+
+#: editors/tinymce.inc:476
+msgid "Insert date"
+msgstr ""
+
+#: editors/tinymce.inc:476
+msgid "Insert time"
+msgstr ""
+
+#: editors/tinymce.inc:487
+msgid "Insert layer"
+msgstr ""
+
+#: editors/tinymce.inc:487
+msgid "Move forward"
+msgstr ""
+
+#: editors/tinymce.inc:487
+msgid "Move backward"
+msgstr ""
+
+#: editors/tinymce.inc:487
+msgid "Absolute"
+msgstr ""
+
+#: editors/tinymce.inc:494
+msgid "Paste text"
+msgstr ""
+
+#: editors/tinymce.inc:522
+msgid "Style properties"
+msgstr ""
+
+#: editors/tinymce.inc:548
+msgid "Media"
+msgstr ""
+
+#: editors/tinymce.inc:555
+msgid "Citation"
+msgstr ""
+
+#: editors/tinymce.inc:555
+msgid "Deleted"
+msgstr ""
+
+#: editors/tinymce.inc:555
+msgid "Abbreviation"
+msgstr ""
+
+#: editors/tinymce.inc:555
+msgid "Acronym"
+msgstr ""
+
+#: editors/tinymce.inc:555
+msgid "Inserted"
+msgstr ""
+
+#: editors/tinymce.inc:571
+msgid "Safari compatibility"
+msgstr ""
+
+#: editors/whizzywig.inc:126
+msgid "Spell check"
+msgstr ""
+
+#: editors/yui.inc:284
+msgid "Font Color"
+msgstr ""
+
+#: editors/yui.inc:284
+msgid "Background Color"
+msgstr ""
+
+#: editors/yui.inc:286
+msgid "Show/hide hidden elements"
+msgstr ""
+
+#: plugins/break.inc:14
+msgid "Teaser break"
+msgstr ""
+
+#: plugins/break.inc:17
+msgid "Separate the teaser and body of this content"
+msgstr ""
+
diff --git a/sites/all/modules/wysiwyg/wysiwyg-dialog-page.tpl.php b/sites/all/modules/wysiwyg/wysiwyg-dialog-page.tpl.php
new file mode 100644
index 0000000000000000000000000000000000000000..40725f548224cff76352144d4a6c93418f6f79db
--- /dev/null
+++ b/sites/all/modules/wysiwyg/wysiwyg-dialog-page.tpl.php
@@ -0,0 +1,85 @@
+<?php
+// $Id: wysiwyg-dialog-page.tpl.php,v 1.1 2009/02/01 09:20:48 sun Exp $
+
+/**
+ * @file
+ * Theme template to display a single Wysiwyg (plugin) dialog page.
+ *
+ * Available variables:
+ *
+ * General utility variables:
+ * - $base_path: The base URL path of the Drupal installation. At the very
+ *   least, this will always default to /.
+ * - $css: An array of CSS files for the current page.
+ * - $directory: The directory the theme is located in, e.g. themes/garland or
+ *   themes/garland/minelli.
+ * - $logged_in: TRUE if the user is registered and signed in.
+ * - $is_admin: TRUE if the user has permission to access administration pages.
+ *
+ * Page metadata:
+ * - $language: (object) The language the site is being displayed in.
+ *   $language->language contains its textual representation.
+ *   $language->dir contains the language direction. It will either be 'ltr' or 'rtl'.
+ * - $head_title: A modified version of the page title, for use in the TITLE tag.
+ * - $head: Markup for the HEAD section (including meta tags, keyword tags, and
+ *   so on).
+ * - $styles: Style tags necessary to import all CSS files for the page.
+ * - $scripts: Script tags necessary to load the JavaScript files and settings
+ *   for the page.
+ *
+ * Site identity:
+ * - $site_name: The name of the site, empty when display has been disabled
+ *   in theme settings.
+ *
+ * Page content (in order of occurrance in the default page.tpl.php):
+ * - $breadcrumb: The breadcrumb trail for the current page.
+ * - $title: The page title, for use in the actual HTML content.
+ * - $help: Dynamic help text, mostly for admin pages.
+ * - $messages: HTML for status and error messages. Should be displayed prominently.
+ * - $tabs: Tabs linking to any sub-pages beneath the current page (e.g., the view
+ *   and edit tabs when displaying a node).
+ *
+ * - $content: The main content of the current Drupal page.
+ *
+ * Footer/closing data:
+ * - $footer : The footer region.
+ * - $closure: Final closing markup from any modules that have altered the page.
+ *   This variable should always be output last, after all other dynamic content.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_wysiwyg_dialog_page()
+ */
+?>
+<!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" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
+
+<head>
+  <title><?php print $head_title; ?></title>
+  <?php print $head; ?>
+  <?php print $styles; ?>
+  <?php print $scripts; ?>
+  <script type="text/javascript"><?php /* Needed to avoid Flash of Unstyled Content in IE */ ?> </script>
+</head>
+<body>
+  <div id="page">
+    <div id="container" class="clear-block">
+      <div id="main" class="column">
+        <?php if (!empty($breadcrumb)): ?><div id="breadcrumb"><?php print $breadcrumb; ?></div><?php endif; ?>
+
+        <div id="content">
+          <?php if (!empty($title)): ?><h1 class="title" id="page-title"><?php print $title; ?></h1><?php endif; ?>
+          <?php if (!empty($tabs)): ?><div class="tabs"><?php print $tabs; ?></div><?php endif; ?>
+          <?php if (!empty($messages)): print $messages; endif; ?>
+          <?php if (!empty($help)): print $help; endif; ?>
+          <div id="content-content" class="clear-block">
+            <?php print $content; ?>
+          </div>
+        </div>
+
+      </div>
+    </div>
+  </div>
+<?php print $closure; ?>
+</body>
+</html>
diff --git a/sites/all/modules/wysiwyg/wysiwyg.admin.inc b/sites/all/modules/wysiwyg/wysiwyg.admin.inc
new file mode 100644
index 0000000000000000000000000000000000000000..e418c13a59bb456f49e337e84e829f121e04878f
--- /dev/null
+++ b/sites/all/modules/wysiwyg/wysiwyg.admin.inc
@@ -0,0 +1,540 @@
+<?php
+// $Id: wysiwyg.admin.inc,v 1.23 2010/02/07 14:49:45 sun Exp $
+
+/**
+ * @file
+ * Integrate Wysiwyg editors into Drupal.
+ */
+
+/**
+ * Form builder for Wysiwyg profile form.
+ */
+function wysiwyg_profile_form($form, &$form_state, $profile) {
+  // Merge in defaults.
+  $profile = (array) $profile;
+  $profile += array(
+    'format' => 0,
+    'editor' => '',
+  );
+  if (empty($profile['settings'])) {
+    $profile['settings'] = array();
+  }
+  $profile['settings'] += array(
+    'default' => TRUE,
+    'user_choose' => FALSE,
+    'show_toggle' => TRUE,
+    'theme' => 'advanced',
+    'language' => 'en',
+    'access' => 1,
+    'access_pages' => "node/*\nuser/*\ncomment/*",
+    'buttons' => array(),
+    'toolbar_loc' => 'top',
+    'toolbar_align' => 'left',
+    'path_loc' => 'bottom',
+    'resizing' => TRUE,
+    // Also available, but buggy in TinyMCE 2.x: blockquote,code,dt,dd,samp.
+    'block_formats' => 'p,address,pre,h2,h3,h4,h5,h6,div',
+    'verify_html' => TRUE,
+    'preformatted' => FALSE,
+    'convert_fonts_to_spans' => TRUE,
+    'remove_linebreaks' => TRUE,
+    'apply_source_formatting' => FALSE,
+    'paste_auto_cleanup_on_paste' => FALSE,
+    'css_setting' => 'theme',
+    'css_path' => NULL,
+    'css_classes' => NULL,
+  );
+  $profile = (object) $profile;
+
+  $formats = filter_formats();
+  $editor = wysiwyg_get_editor($profile->editor);
+  drupal_set_title(t('%editor profile for %format', array('%editor' => $editor['title'], '%format' => $formats[$profile->format]->name)), PASS_THROUGH);
+
+  $form['format'] = array('#type' => 'value', '#value' => $profile->format);
+  $form['input_format'] = array('#type' => 'value', '#value' => $formats[$profile->format]->name);
+  $form['editor'] = array('#type' => 'value', '#value' => $profile->editor);
+
+  $form['basic'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Basic setup'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+
+  $form['basic']['default'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enabled by default'),
+    '#default_value' => $profile->settings['default'],
+    '#return_value' => 1,
+    '#description' => t('The default editor state for users having access to this profile. Users are able to override this state if the next option is enabled.'),
+  );
+
+  $form['basic']['user_choose'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Allow users to choose default'),
+    '#default_value' => $profile->settings['user_choose'],
+    '#return_value' => 1,
+    '#description' => t('If allowed, users will be able to choose their own editor default state in their user account settings.'),
+  );
+
+  $form['basic']['show_toggle'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show <em>enable/disable rich text</em> toggle link'),
+    '#default_value' => $profile->settings['show_toggle'],
+    '#return_value' => 1,
+    '#description' => t('Whether or not to show the <em>enable/disable rich text</em> toggle link below a textarea. If disabled, the user setting or global default is used (see above).'),
+  );
+
+  $form['basic']['theme'] = array(
+    '#type' => 'hidden',
+    '#value' => $profile->settings['theme'],
+  );
+
+  $form['basic']['language'] = array(
+    '#type' => 'select',
+    '#title' => t('Language'),
+    '#default_value' => $profile->settings['language'],
+    '#options' => drupal_map_assoc(array('ar', 'ca', 'cs', 'cy', 'da', 'de', 'el', 'en', 'es', 'fa', 'fi', 'fr', 'fr_ca', 'he', 'hu', 'is', 'it', 'ja', 'ko', 'nb', 'nl', 'nn', 'pl', 'pt', 'pt_br', 'ru', 'ru_KOI8-R', 'ru_UTF-8', 'si', 'sk', 'sv', 'th', 'tr', 'uk', 'zh_cn', 'zh_tw', 'zh_tw_utf8')),
+    '#description' => t('The language to use for the editor interface. Language codes are based on the <a href="http://www.loc.gov/standards/iso639-2/englangn.html">ISO-639-2</a> format.'),
+  );
+
+  $form['wysiwyg_buttons'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Buttons and plugins'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+    '#tree' => TRUE,
+    '#theme' => 'wysiwyg_admin_button_table',
+  );
+
+  $plugins = wysiwyg_get_plugins($profile->editor);
+  // Generate the button list.
+  foreach ($plugins as $name => $meta) {
+    if (isset($meta['buttons']) && is_array($meta['buttons'])) {
+      foreach ($meta['buttons'] as $button => $title) {
+        $icon = '';
+        if (!empty($meta['path'])) {
+          // @todo Button icon locations are different in editors, editor versions,
+          //   and contrib/custom plugins (like Image Assist, f.e.).
+          $img_src = $meta['path'] . "/images/$name.gif";
+          // Handle plugins that have more than one button.
+          if (!file_exists($img_src)) {
+            $img_src = $meta['path'] . "/images/$button.gif";
+          }
+          $icon = file_exists($img_src) ? '<img src="' . base_path() . $img_src . '" title="' . $button . '" style="border: 1px solid grey; vertical-align: middle;" />' : '';
+        }
+        $title = (isset($meta['url']) ? l($title, $meta['url'], array('target' => '_blank')) : $title);
+        $title = (!empty($icon) ? $icon . ' ' . $title : $title);
+        $form['wysiwyg_buttons'][$name][$button] = array(
+          '#type' => 'checkbox',
+          '#title' => $title,
+          '#default_value' => !empty($profile->settings['buttons'][$name][$button]) ? $profile->settings['buttons'][$name][$button] : FALSE,
+        );
+      }
+    }
+    else if (isset($meta['extensions']) && is_array($meta['extensions'])) {
+      foreach ($meta['extensions'] as $extension => $title) {
+        $form['wysiwyg_buttons'][$name][$extension] = array(
+          '#type' => 'checkbox',
+          '#title' => isset($meta['url']) ? l($title, $meta['url'], array('target' => '_blank')) : $title,
+          '#default_value' => !empty($profile->settings['buttons'][$name][$extension]) ? $profile->settings['buttons'][$name][$extension] : FALSE,
+        );
+      }
+    }
+  }
+
+  $form['appearance'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Editor appearance'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+
+  $form['appearance']['toolbar_loc'] = array(
+    '#type' => 'select',
+    '#title' => t('Toolbar location'),
+    '#default_value' => $profile->settings['toolbar_loc'],
+    '#options' => array('bottom' => t('Bottom'), 'top' => t('Top')),
+    '#description' => t('This option controls whether the editor toolbar is displayed above or below the editing area.'),
+  );
+
+  $form['appearance']['toolbar_align'] = array(
+    '#type' => 'select',
+    '#title' => t('Button alignment'),
+    '#default_value' => $profile->settings['toolbar_align'],
+    '#options' => array('center' => t('Center'), 'left' => t('Left'), 'right' => t('Right')),
+    '#description' => t('This option controls the alignment of icons in the editor toolbar.'),
+  );
+
+  $form['appearance']['path_loc'] = array(
+    '#type' => 'select',
+    '#title' => t('Path location'),
+    '#default_value' => $profile->settings['path_loc'],
+    '#options' => array('none' => t('Hide'), 'top' => t('Top'), 'bottom' => t('Bottom')),
+    '#description' => t('Where to display the path to HTML elements (i.e. <code>body > table > tr > td</code>).'),
+  );
+
+  $form['appearance']['resizing'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enable resizing button'),
+    '#default_value' => $profile->settings['resizing'],
+    '#return_value' => 1,
+    '#description' => t('This option gives you the ability to enable/disable the resizing button. If enabled, the Path location toolbar must be set to "Top" or "Bottom" in order to display the resize icon.'),
+  );
+
+  $form['output'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Cleanup and output'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+
+  $form['output']['verify_html'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Verify HTML'),
+    '#default_value' => $profile->settings['verify_html'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, potentially malicious code like <code>&lt;HEAD&gt;</code> tags will be removed from HTML contents.'),
+  );
+
+  $form['output']['preformatted'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Preformatted'),
+    '#default_value' => $profile->settings['preformatted'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, the editor will insert TAB characters on tab and preserve other whitespace characters just like a PRE element in HTML does.'),
+  );
+
+  $form['output']['convert_fonts_to_spans'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Convert &lt;font&gt; tags to styles'),
+    '#default_value' => $profile->settings['convert_fonts_to_spans'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, HTML tags declaring the font size, font family, font color and font background color will be replaced by inline CSS styles.'),
+  );
+
+  $form['output']['remove_linebreaks'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Remove linebreaks'),
+    '#default_value' => $profile->settings['remove_linebreaks'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, the editor will remove most linebreaks from contents. Disabling this option could avoid conflicts with other input filters.'),
+  );
+
+  $form['output']['apply_source_formatting'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Apply source formatting'),
+    '#default_value' => $profile->settings['apply_source_formatting'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, the editor will re-format the HTML source code. Disabling this option could avoid conflicts with other input filters.'),
+  );
+
+  $form['output']['paste_auto_cleanup_on_paste'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Force cleanup on standard paste'),
+    '#default_value' => $profile->settings['paste_auto_cleanup_on_paste'],
+    '#return_value' => 1,
+    '#description' => t('If enabled, the default paste function (CTRL-V or SHIFT-INS) behaves like the "paste from word" plugin function.'),
+  );
+
+  $form['css'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('CSS'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+
+  $form['css']['block_formats'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Block formats'),
+    '#default_value' => $profile->settings['block_formats'],
+    '#size' => 40,
+    '#maxlength' => 250,
+    '#description' => t('Comma separated list of HTML block formats. Possible values: <code>@format-list</code>.', array('@format-list' => 'p,h1,h2,h3,h4,h5,h6,div,blockquote,address,pre,code,dt,dd')),
+  );
+
+  $form['css']['css_setting'] = array(
+    '#type' => 'select',
+    '#title' => t('Editor CSS'),
+    '#default_value' => $profile->settings['css_setting'],
+    '#options' => array('theme' => t('Use theme CSS'), 'self' => t('Define CSS'), 'none' => t('Editor default CSS')),
+    '#description' => t('Defines the CSS to be used in the editor area.<br />Use theme CSS - loads stylesheets from current site theme.<br/>Define CSS - enter path for stylesheet files below.<br />Editor default CSS - uses default stylesheets from editor.'),
+  );
+
+  $form['css']['css_path'] = array(
+    '#type' => 'textfield',
+    '#title' => t('CSS path'),
+    '#default_value' => $profile->settings['css_path'],
+    '#size' => 40,
+    '#maxlength' => 255,
+    '#description' => t('If "Define CSS" was selected above, enter path to a CSS file or a list of CSS files separated by a comma.') . '<br />' . t('Available tokens: <code>%b</code> (base path, eg: <code>/</code>), <code>%t</code> (path to theme, eg: <code>themes/garland</code>)') . '<br />' . t('Example:') . ' css/editor.css,/themes/garland/style.css,%b%t/style.css,http://example.com/external.css',
+  );
+
+  $form['css']['css_classes'] = array(
+    '#type' => 'textarea',
+    '#title' => t('CSS classes'),
+    '#default_value' => $profile->settings['css_classes'],
+    '#description' => t('Optionally define CSS classes for the "Font style" dropdown list.<br />Enter one class on each line in the format: !format. Example: !example<br />If left blank, CSS classes are automatically imported from all loaded stylesheet(s).', array('!format' => '<code>[title]=[class]</code>', '!example' => 'My heading=header1')),
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+    '#weight' => 100,
+  );
+  $form['cancel'] = array(
+    '#value' => l(t('Cancel'), 'admin/config/content/wysiwyg'),
+    '#weight' => 110,
+  );
+
+  return $form;
+}
+
+/**
+ * Submit callback for Wysiwyg profile form.
+ *
+ * @see wysiwyg_profile_form()
+ */
+function wysiwyg_profile_form_submit($form, &$form_state) {
+  $values = $form_state['values'];
+  if (isset($values['wysiwyg_buttons'])) {
+    // Store only enabled buttons for each plugin.
+    foreach ($values['wysiwyg_buttons'] as $plugin => $buttons) {
+      $values['buttons'][$plugin] = array_filter($values['wysiwyg_buttons'][$plugin]);
+    }
+    // Store only enabled plugins.
+    $values['buttons'] = array_filter($values['buttons']);
+  }
+  // Remove input format name.
+  $format = $values['format'];
+  $input_format = $values['input_format'];
+  $editor = $values['editor'];
+  unset($values['format'], $values['input_format'], $values['editor']);
+
+  // Remove FAPI values.
+  // @see system_settings_form_submit()
+  unset($values['submit'], $values['form_id'], $values['op'], $values['form_token'], $values['form_build_id']);
+
+  // Insert new profile data.
+  db_query("UPDATE {wysiwyg} SET settings = :settings WHERE format = :format", array(':settings' => serialize($values), ':format' => $format));
+
+  drupal_set_message(t('Wysiwyg profile for %format has been saved.', array('%format' => $input_format)));
+
+  $form_state['redirect'] = 'admin/config/content/wysiwyg';
+}
+
+/**
+ * Layout for the buttons in the Wysiwyg Editor profile form.
+ */
+function theme_wysiwyg_admin_button_table($variables) {
+  $form = $variables['form'];
+  $buttons = array();
+
+  // Flatten forms array.
+  foreach (element_children($form) as $name) {
+    foreach (element_children($form[$name]) as $button) {
+      $buttons[] = drupal_render($form[$name][$button]);
+    }
+  }
+
+  // Split checkboxes into rows with 3 columns.
+  $total = count($buttons);
+  $rows = array();
+  for ($i = 0; $i < $total; $i++) {
+    $row = array();
+    $row[] = array('data' => $buttons[$i]);
+    if (isset($buttons[++$i])) {
+      $row[] = array('data' => $buttons[$i]);
+    }
+    if (isset($buttons[++$i])) {
+      $row[] = array('data' => $buttons[$i]);
+    }
+    $rows[] = $row;
+  }
+
+  $output = theme('table', array('rows' => $rows, 'attributes' => array('width' => '100%')));
+
+  return $output;
+}
+
+/**
+ * Display overview of setup Wysiwyg Editor profiles; menu callback.
+ */
+function wysiwyg_profile_overview($form, &$form_state) {
+  include_once './includes/install.inc';
+
+  // Check which wysiwyg editors are installed.
+  $editors = wysiwyg_get_all_editors();
+  $count = count($editors);
+  $status = array();
+  $options = array('' => t('No editor'));
+
+  // D7's seven theme displays links in table headers as block elements.
+  drupal_add_css('table.system-status-report th a {display: inline;}', 'inline');
+
+  foreach ($editors as $name => $editor) {
+    $status[$name] = array(
+      'severity' => (isset($editor['error']) ? REQUIREMENT_ERROR : ($editor['installed'] ? REQUIREMENT_OK : REQUIREMENT_INFO)),
+      'title' => t('<a href="!vendor-url">@editor</a> (<a href="!download-url">Download</a>)', array('!vendor-url' => $editor['vendor url'], '@editor' => $editor['title'], '!download-url' => $editor['download url'])),
+      'value' => (isset($editor['installed version']) ? $editor['installed version'] : t('Not installed.')),
+      'description' => (isset($editor['error']) ? $editor['error'] : ''),
+    );
+    if ($editor['installed']) {
+      $options[$name] = $editor['title'] . (isset($editor['installed version']) ? ' ' . $editor['installed version'] : '');
+    }
+    else {
+      // Build on-site installation instructions.
+      // @todo Setup $library in wysiwyg_load_editor() already.
+      $library = (isset($editor['library']) ? $editor['library'] : key($editor['libraries']));
+      $targs = array(
+        '@editor-path' => $editor['editor path'],
+        '@library-filepath' => $editor['library path'] . '/' . (isset($editor['libraries'][$library]['files'][0]) ? $editor['libraries'][$library]['files'][0] : key($editor['libraries'][$library]['files'])),
+      );
+      $instructions = '<p>' . t('Extract the archive and copy its contents into a new folder in the following location:<br /><code>@editor-path</code>', $targs) . '</p>';
+      $instructions .= '<p>' . t('So the actual library can be found at:<br /><code>@library-filepath</code>', $targs) . '</p>';
+
+      $status[$name]['description'] .= $instructions;
+      $count--;
+    }
+    // In case there is an error, always show installation instructions.
+    if (isset($editor['error'])) {
+      $show_instructions = TRUE;
+    }
+  }
+  if (!$count) {
+    $show_instructions = TRUE;
+  }
+  $form['status'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Installation instructions'),
+    '#collapsible' => TRUE,
+    '#collapsed' => !isset($show_instructions),
+    '#description' => (!$count ? t('There are no editor libraries installed currently. The following list contains a list of currently supported editors:') : ''),
+    '#weight' => 10,
+  );
+  $form['status']['report'] = array('#markup' => theme('status_report', array('requirements' => $status)));
+
+  if (!$count) {
+    return $form;
+  }
+
+  $formats = filter_formats();
+  $profiles = wysiwyg_profile_load_all();
+  $form['formats'] = array(
+    '#type' => 'item',
+    '#description' => t('To assign a different editor to a text format, click "delete" to remove the existing first.'),
+    '#tree' => TRUE,
+  );
+
+  $enable_save = FALSE;
+  foreach ($formats as $id => $format) {
+    $form['formats'][$id]['name'] = array(
+      '#markup' => check_plain($format->name),
+    );
+    // Only display editor selection for associated input formats to avoid
+    // confusion about disabled selection.
+    if (isset($profiles[$id]) && !empty($profiles[$id]->editor)) {
+      $form['formats'][$id]['editor'] = array(
+        '#markup' => $options[$profiles[$id]->editor],
+      );
+    }
+    else {
+      $form['formats'][$id]['editor'] = array(
+        '#type' => 'select',
+        '#default_value' => '',
+        '#options' => $options,
+      );
+      $enable_save = TRUE;
+    }
+    if (isset($profiles[$id]) && !empty($profiles[$id]->editor)) {
+      $form['formats'][$id]['edit'] = array(
+        '#markup' => l(t('Edit'), "admin/config/content/wysiwyg/profile/$id/edit"),
+      );
+      $form['formats'][$id]['delete'] = array(
+        '#markup' => l(t('Delete'), "admin/config/content/wysiwyg/profile/$id/delete"),
+      );
+    }
+  }
+
+  // Submitting the form when no editors can be selected causes errors.
+  if ($enable_save) {
+    $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
+  }
+  return $form;
+}
+
+/**
+ * Return HTML for the Wysiwyg profile overview form.
+ */
+function theme_wysiwyg_profile_overview($variables) {
+  $form = $variables['form'];
+  if (!isset($form['formats'])) {
+    return;
+  }
+  $output = '';
+  $header = array(t('Input format'), t('Editor'), array('data' => t('Operations'), 'colspan' => 2));
+  $rows = array();
+  foreach (element_children($form['formats']) as $item) {
+    $format = &$form['formats'][$item];
+    $rows[] = array(
+      drupal_render($format['name']),
+      drupal_render($format['editor']),
+      isset($format['edit']) ? drupal_render($format['edit']) : '',
+      isset($format['delete']) ? drupal_render($format['delete']) : '',
+    );
+  }
+  $form['formats']['table']['#markup'] = theme('table', array('header' => $header, 'rows' => $rows));
+  $output .= drupal_render_children($form);
+  return $output;
+}
+
+/**
+ * Submit callback for Wysiwyg profile overview form.
+ */
+function wysiwyg_profile_overview_submit($form, &$form_state) {
+  foreach ($form_state['values']['formats'] as $format => $values) {
+    db_merge('wysiwyg')
+      ->key(array('format' => $format))
+      ->fields(array(
+        'editor' => $values['editor'],
+      ))
+      ->execute();
+  }
+}
+
+/**
+ * Delete editor profile confirmation form.
+ */
+function wysiwyg_profile_delete_confirm($form, &$form_state, $profile) {
+  $formats = filter_formats();
+  $format = $formats[$profile->format];
+  $form['format'] = array('#type' => 'value', '#value' => $format);
+  return confirm_form(
+    $form,
+    t('Are you sure you want to remove the profile for %name?', array('%name' => $format->name)),
+    'admin/config/content/wysiwyg',
+    t('This action cannot be undone.'), t('Remove'), t('Cancel')
+  );
+}
+
+/**
+ * Submit callback for Wysiwyg profile delete form.
+ *
+ * @see wysiwyg_profile_delete_confirm()
+ */
+function wysiwyg_profile_delete_confirm_submit($form, &$form_state) {
+  $format = $form_state['values']['format'];
+  wysiwyg_profile_delete($format->format);
+  drupal_set_message(t('Wysiwyg profile for %name has been deleted.', array('%name' => $format->name)));
+  $form_state['redirect'] = 'admin/config/content/wysiwyg';
+}
+
+/**
+ * Remove a profile from the database.
+ */
+function wysiwyg_profile_delete($format) {
+  db_delete('wysiwyg')
+    ->condition('format', $format)
+    ->execute();
+}
+
diff --git a/sites/all/modules/wysiwyg/wysiwyg.api.js b/sites/all/modules/wysiwyg/wysiwyg.api.js
new file mode 100644
index 0000000000000000000000000000000000000000..d30e07cb3f96e36e5ed774c0ff6c26b401b2145d
--- /dev/null
+++ b/sites/all/modules/wysiwyg/wysiwyg.api.js
@@ -0,0 +1,98 @@
+// $Id: wysiwyg.api.js,v 1.1 2009/08/09 02:46:50 sun Exp $
+
+/**
+ * Wysiwyg plugin button implementation for Awesome plugin.
+ */
+Drupal.wysiwyg.plugins.awesome = {
+  /**
+   * Return whether the passed node belongs to this plugin.
+   *
+   * @param node
+   *   The currently focused DOM element in the editor content.
+   */
+  isNode: function(node) {
+    return ($(node).is('img.mymodule-awesome'));
+  },
+
+  /**
+   * Execute the button.
+   *
+   * @param data
+   *   An object containing data about the current selection:
+   *   - format: 'html' when the passed data is HTML content, 'text' when the
+   *     passed data is plain-text content.
+   *   - node: When 'format' is 'html', the focused DOM element in the editor.
+   *   - content: The textual representation of the focused/selected editor
+   *     content.
+   * @param settings
+   *   The plugin settings, as provided in the plugin's PHP include file.
+   * @param instanceId
+   *   The ID of the current editor instance.
+   */
+  invoke: function(data, settings, instanceId) {
+    // Generate HTML markup.
+    if (data.format == 'html') {
+      // Prevent duplicating a teaser break.
+      if ($(data.node).is('img.mymodule-awesome')) {
+        return;
+      }
+      var content = this._getPlaceholder(settings);
+    }
+    // Generate plain text.
+    else {
+      var content = '<!--break-->';
+    }
+    // Insert new content into the editor.
+    if (typeof content != 'undefined') {
+      Drupal.wysiwyg.instances[instanceId].insert(content);
+    }
+  },
+
+  /**
+   * Prepare all plain-text contents of this plugin with HTML representations.
+   *
+   * Optional; only required for "inline macro tag-processing" plugins.
+   *
+   * @param content
+   *   The plain-text contents of a textarea.
+   * @param settings
+   *   The plugin settings, as provided in the plugin's PHP include file.
+   * @param instanceId
+   *   The ID of the current editor instance.
+   */
+  attach: function(content, settings, instanceId) {
+    content = content.replace(/<!--break-->/g, this._getPlaceholder(settings));
+    return content;
+  },
+
+  /**
+   * Process all HTML placeholders of this plugin with plain-text contents.
+   *
+   * Optional; only required for "inline macro tag-processing" plugins.
+   *
+   * @param content
+   *   The HTML content string of the editor.
+   * @param settings
+   *   The plugin settings, as provided in the plugin's PHP include file.
+   * @param instanceId
+   *   The ID of the current editor instance.
+   */
+  detach: function(content, settings, instanceId) {
+    var $content = $('<div>' + content + '</div>');
+    $.each($('img.mymodule-awesome', $content), function (i, elem) {
+      //...
+    });
+    return $content.html();
+  },
+
+  /**
+   * Helper function to return a HTML placeholder.
+   *
+   * The 'drupal-content' CSS class is required for HTML elements in the editor
+   * content that shall not trigger any editor's native buttons (such as the
+   * image button for this example placeholder markup).
+   */
+  _getPlaceholder: function (settings) {
+    return '<img src="' + settings.path + '/images/spacer.gif" alt="&lt;--break-&gt;" title="&lt;--break--&gt;" class="wysiwyg-break drupal-content" />';
+  }
+};
diff --git a/sites/all/modules/wysiwyg/wysiwyg.api.php b/sites/all/modules/wysiwyg/wysiwyg.api.php
new file mode 100644
index 0000000000000000000000000000000000000000..30d67f81b29e52b87a33bd7621b239e2a8b389e8
--- /dev/null
+++ b/sites/all/modules/wysiwyg/wysiwyg.api.php
@@ -0,0 +1,163 @@
+<?php
+// $Id: wysiwyg.api.php,v 1.4 2009/08/09 02:46:50 sun Exp $
+
+/**
+ * @file
+ * Wysiwyg API documentation.
+ *
+ * To implement a "Drupal plugin" button, you need to write a Wysiwyg plugin:
+ * - Implement hook_wysiwyg_include_directory() to register the directory
+ *   containing plugin definitions.
+ * - In each plugin definition file, implement hook_INCLUDE_plugin().
+ * - For each plugin button, implement a JavaScript integration and an icon for
+ *   the button.
+ *
+ * @todo Icon: Recommended size and type of image.
+ *
+ * For example implementations you may want to look at
+ * - Image Assist (img_assist)
+ * - Teaser break plugin (plugins/break; part of WYSIWYG)
+ * - IMCE (imce_wysiwyg)
+ */
+
+/**
+ * Return an array of native editor plugins.
+ *
+ * Only to be used for native (internal) editor plugins.
+ *
+ * @see hook_wysiwyg_include_directory()
+ *
+ * @param $editor
+ *   The internal name of the currently processed editor.
+ * @param $version
+ *   The version of the currently processed editor.
+ *
+ * @return
+ *   An associative array having internal plugin names as keys and an array of
+ *   plugin meta-information as values.
+ */
+function hook_wysiwyg_plugin($editor, $version) {
+  switch ($editor) {
+    case 'tinymce':
+      if ($version > 3) {
+        return array(
+          'myplugin' => array(
+            // A URL to the plugin's homepage.
+            'url' => 'http://drupal.org/project/img_assist',
+            // The full path to the native editor plugin.
+            'path' => drupal_get_path('module', 'img_assist') . '/drupalimage/editor_plugin.js',
+            // A list of buttons provided by this native plugin. The key has to
+            // match the corresponding JavaScript implementation. The value is
+            // is displayed on the editor configuration form only.
+            'buttons' => array(
+              'img_assist' => t('Image Assist'),
+            ),
+            // A list of editor extensions provided by this native plugin.
+            // Extensions are not displayed as buttons and touch the editor's
+            // internals, so you should know what you are doing.
+            'extensions' => array(
+              'imce' => t('IMCE'),
+            ),
+            // A list of global, native editor configuration settings to
+            // override. To be used rarely and only when required.
+            'options' => array(
+              'file_browser_callback' => 'imceImageBrowser',
+              'inline_styles' => TRUE,
+            ),
+            // Boolean whether the editor needs to load this plugin. When TRUE,
+            // the editor will automatically load the plugin based on the 'path'
+            // variable provided. If FALSE, the plugin either does not need to
+            // be loaded or is already loaded by something else on the page.
+            // Most plugins should define TRUE here.
+            'load' => TRUE,
+            // Boolean whether this plugin is a native plugin, i.e. shipped with
+            // the editor. Definition must be ommitted for plugins provided by
+            // other modules.
+            'internal' => TRUE,
+            // TinyMCE-specific: Additional HTML elements to allow in the markup.
+            'extended_valid_elements' => array(
+              'img[class|src|border=0|alt|title|width|height|align|name|style]',
+            ),
+          ),
+        );
+      }
+      break;
+  }
+}
+
+/**
+ * Register a directory containing Wysiwyg plugins.
+ *
+ * @param $type
+ *   The type of objects being collected: either 'plugins' or 'editors'.
+ * @return
+ *   A sub-directory of the implementing module that contains the corresponding
+ *   plugin files. This directory must only contain integration files for
+ *   Wysiwyg module.
+ */
+function hook_wysiwyg_include_directory($type) {
+  switch ($type) {
+    case 'plugins':
+      // You can just return $type, if you place your Wysiwyg plugins into a
+      // sub-directory named 'plugins'.
+      return $type;
+  }
+}
+
+/**
+ * Define a Wysiwyg plugin.
+ *
+ * Supposed to be used for "Drupal plugins" (cross-editor plugins) only.
+ *
+ * @see hook_wysiwyg_plugin()
+ *
+ * Each plugin file in the specified plugin directory of a module needs to
+ * define meta information about the particular plugin provided.
+ * The plugin's hook implementation function name is built out of the following:
+ * - 'hook': The name of the module providing the plugin.
+ * - 'INCLUDE': The basename of the file containing the plugin definition.
+ * - 'plugin': Static.
+ *
+ * For example, if your module's name is 'mymodule' and
+ * mymodule_wysiwyg_include_directory() returned 'plugins' as plugin directory,
+ * and this directory contains an "awesome" plugin file named 'awesome.inc', i.e.
+ *   sites/all/modules/mymodule/plugins/awesome.inc
+ * then the corresponding plugin hook function name is:
+ *   mymodule_awesome_plugin()
+ *
+ * @see hook_wysiwyg_include_directory()
+ *
+ * @return
+ *   Meta information about the buttons provided by this plugin.
+ */
+function hook_INCLUDE_plugin() {
+  $plugins['awesome'] = array(
+    // The plugin's title; defaulting to its internal name ('awesome').
+    'title' => t('Awesome plugin'),
+    // The (vendor) homepage of this plugin; defaults to ''.
+    'vendor url' => 'http://drupal.org/project/wysiwyg',
+    // The path to the button's icon; defaults to
+    // '/[path-to-module]/[plugins-directory]/[plugin-name]/images'.
+    'icon path' => 'path to icon',
+    // The button image filename; defaults to '[plugin-name].png'.
+    'icon file' => 'name of the icon file with extension',
+    // The button title to display on hover.
+    'icon title' => t('Do something'),
+    // An alternative path to the integration JavaScript; defaults to
+    // '[path-to-module]/[plugins-directory]/[plugin-name]'.
+    'js path' => drupal_get_path('module', 'mymodule') . '/awesomeness',
+    // An alternative filename of the integration JavaScript; defaults to
+    // '[plugin-name].js'.
+    'js file' => 'awesome.js',
+    // An array of settings for this button. Required, but API is still in flux.
+    'settings' => array(
+    ),
+    // TinyMCE-specific: Additional HTML elements to allow in the markup.
+    'extended_valid_elements' => array(
+      'tag1[attribute1|attribute2]',
+      'tag2[attribute3|attribute4]',
+    ),
+  );
+  return $plugins;
+}
+
diff --git a/sites/all/modules/wysiwyg/wysiwyg.dialog.inc b/sites/all/modules/wysiwyg/wysiwyg.dialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..25dc0bea12a5917e48c5efc133d6be753a12a69e
--- /dev/null
+++ b/sites/all/modules/wysiwyg/wysiwyg.dialog.inc
@@ -0,0 +1,64 @@
+<?php
+// $Id: wysiwyg.dialog.inc,v 1.2 2009/08/08 07:11:25 sun Exp $
+
+/**
+ * @file
+ * Wysiwyg dialog page handling functions.
+ */
+
+/**
+ * Menu callback; Output a wysiwyg plugin dialog page.
+ */
+function wysiwyg_dialog($plugin, $instance) {
+  $plugins = wysiwyg_get_all_plugins();
+  if (!isset($plugins[$plugin])) {
+    return drupal_access_denied();
+  }
+  $callback = $plugin . '_wysiwyg_dialog';
+  if (!function_exists($callback)) {
+    return drupal_not_found();
+  }
+
+  // Suppress admin menu.
+  module_invoke('admin_menu', 'suppress');
+  // Add editor instance id to Drupal.settings.
+  $settings = array(
+    'plugin' => $plugin,
+    'instance' => $instance,
+  );
+  drupal_add_js(array('wysiwyg' => $settings), 'setting');
+
+  echo theme('wysiwyg_dialog_page', $callback($instance));
+}
+
+/**
+ * Template preprocess function for theme_wysiwyg_dialog_page().
+ *
+ * @see wysiwyg_dialog()
+ * @see wysiwyg-dialog-page.tpl.php
+ * @see template_preprocess()
+ */
+function template_preprocess_wysiwyg_dialog_page(&$variables) {
+  // Construct page title
+  $head_title = array(strip_tags(drupal_get_title()), variable_get('site_name', 'Drupal'));
+
+  $variables['head_title']        = implode(' | ', $head_title);
+  $variables['base_path']         = base_path();
+  $variables['front_page']        = url();
+  // @todo Would a breadcrumb make sense / possible at all?
+  // $variables['breadcrumb']        = theme('breadcrumb', drupal_get_breadcrumb());
+  $variables['head']              = drupal_get_html_head();
+  $variables['help']              = theme('help');
+  $variables['language']          = $GLOBALS['language'];
+  $variables['language']->dir     = $GLOBALS['language']->direction ? 'rtl' : 'ltr';
+  $variables['messages']          = $variables['show_messages'] ? theme('status_messages') : '';
+  $variables['site_name']         = (theme_get_setting('toggle_name') ? variable_get('site_name', 'Drupal') : '');
+  $variables['css']               = drupal_add_css();
+  $variables['styles']            = drupal_get_css();
+  $variables['scripts']           = drupal_get_js();
+  $variables['tabs']              = theme('menu_local_tasks');
+  $variables['title']             = drupal_get_title();
+  // Closure should be filled last.
+  $variables['closure']           = theme('closure');
+}
+
diff --git a/sites/all/modules/wysiwyg/wysiwyg.info b/sites/all/modules/wysiwyg/wysiwyg.info
new file mode 100644
index 0000000000000000000000000000000000000000..be2c727d8af96b4fa7ebcbe7a5540d8c15905b36
--- /dev/null
+++ b/sites/all/modules/wysiwyg/wysiwyg.info
@@ -0,0 +1,20 @@
+; $Id: wysiwyg.info,v 1.4 2009/09/26 05:37:56 sun Exp $
+name = Wysiwyg
+description = Allows users to edit contents with client-side editors.
+package = User interface
+;dependencies[] = libraries
+;dependencies[] = ctools
+;dependencies[] = popups
+;dependencies[] = debug
+core = 7.x
+files[] = wysiwyg.module
+files[] = wysiwyg.install
+files[] = wysiwyg.admin.inc
+files[] = wysiwyg.dialog.inc
+
+; Information added by drupal.org packaging script on 2010-04-08
+version = "7.x-2.x-dev"
+core = "7.x"
+project = "wysiwyg"
+datestamp = "1270685982"
+
diff --git a/sites/all/modules/wysiwyg/wysiwyg.init.js b/sites/all/modules/wysiwyg/wysiwyg.init.js
new file mode 100644
index 0000000000000000000000000000000000000000..375237604717a22a8899910b4dad283a41f26fc0
--- /dev/null
+++ b/sites/all/modules/wysiwyg/wysiwyg.init.js
@@ -0,0 +1,8 @@
+// $Id: wysiwyg.init.js,v 1.3 2009/02/01 09:20:48 sun Exp $
+
+Drupal.wysiwyg = Drupal.wysiwyg || { 'instances': {} };
+
+Drupal.wysiwyg.editor = Drupal.wysiwyg.editor || { 'init': {}, 'attach': {}, 'detach': {}, 'instance': {} };
+
+Drupal.wysiwyg.plugins = Drupal.wysiwyg.plugins || {};
+
diff --git a/sites/all/modules/wysiwyg/wysiwyg.install b/sites/all/modules/wysiwyg/wysiwyg.install
new file mode 100644
index 0000000000000000000000000000000000000000..fdbab738a976cf2a2aae7faae29f68f79001eb9d
--- /dev/null
+++ b/sites/all/modules/wysiwyg/wysiwyg.install
@@ -0,0 +1,164 @@
+<?php
+// $Id: wysiwyg.install,v 1.6 2009/09/26 05:37:56 sun Exp $
+
+/**
+ * Implementation of hook_schema().
+ */
+function wysiwyg_schema() {
+  $schema['wysiwyg'] = array(
+    'description' => t('Stores Wysiwyg profiles.'),
+    'fields' => array(
+      'format' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+      'editor' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
+      'settings' => array('type' => 'text', 'size' => 'normal'),
+    ),
+    'primary key' => array('format'),
+  );
+  return $schema;
+}
+
+/**
+ * Implementation of hook_enable().
+ */
+function wysiwyg_enable() {
+  // Disable conflicting, obsolete editor integration modules whenever this
+  // module is enabled. This is crude, but the only way to ensure no conflicts.
+  module_disable(array(
+    'editarea',
+    'editonpro',
+    'editor',
+    'fckeditor',
+    'freerte',
+    'htmlarea',
+    'htmlbox',
+    'jwysiwyg',
+    'markitup',
+    'nicedit',
+    'openwysiwyg',
+    'pegoeditor',
+    'quicktext',
+    'tinymce',
+    'tinymce_autoconf',
+    'tinytinymce',
+    'whizzywig',
+    'widgeditor',
+    'wymeditor',
+    'xstandard',
+    'yui_editor',
+  ));
+}
+
+/**
+ * Retrieve a list of input formats to associate profiles to.
+ */
+function _wysiwyg_install_get_formats() {
+  $formats = array();
+  $result = db_query("SELECT format, name FROM {filter_formats}");
+  while ($format = db_fetch_object($result)) {
+    // Build a list of all formats.
+    $formats[$format->format] = $format->name;
+    // Fetch filters.
+    $result2 = db_query("SELECT module, delta FROM {filters} WHERE format = %d", $format->format);
+    while ($filter = db_fetch_object($result2)) {
+      // If PHP filter is enabled, remove this format.
+      if ($filter->module == 'php') {
+        unset($formats[$format->format]);
+        break;
+      }
+    }
+  }
+  return $formats;
+}
+
+/**
+ * Associate Wysiwyg profiles with input formats.
+ *
+ * Since there was no association yet, we can only assume that there is one
+ * profile only, and that profile must be duplicated and assigned to all input
+ * formats (except PHP code format).  Also, input formats already have
+ * titles/names, so Wysiwyg profiles do not need an own.
+ *
+ * Because input formats are already granted to certain user roles only, we can
+ * remove our custom Wysiwyg profile permissions.  A 1:1 relationship between
+ * input formats and permissions makes plugin_count obsolete, too.
+ *
+ * Since the resulting table is completely different, a new schema is installed.
+ */
+function wysiwyg_update_6001() {
+  $ret = array();
+  if (db_table_exists('wysiwyg')) {
+    return $ret;
+  }
+  // Install new schema.
+  db_create_table($ret, 'wysiwyg', array(
+    'fields' => array(
+      'format' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+      'editor' => array('type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => ''),
+      'settings' => array('type' => 'text', 'size' => 'normal'),
+    ),
+    'primary key' => array('format'),
+  ));
+
+  // Fetch all input formats.
+  $formats = _wysiwyg_install_get_formats();
+
+  // Fetch all profiles.
+  $result = db_query("SELECT name, settings FROM {wysiwyg_profile}");
+  while ($profile = db_fetch_object($result)) {
+    $profile->settings = unserialize($profile->settings);
+    // Extract editor name from profile settings.
+    $profile->editor = $profile->settings['editor'];
+    // Clean-up.
+    unset($profile->settings['editor']);
+    unset($profile->settings['old_name']);
+    unset($profile->settings['name']);
+    unset($profile->settings['rids']);
+    // Sorry.  There Can Be Only One. ;)
+    break;
+  }
+
+  if ($profile) {
+    // Rebuild profiles and associate with input formats.
+    foreach ($formats as $format => $name) {
+      // Insert profiles.
+      // We can't use update_sql() here because of curly braces in serialized
+      // array.
+      db_query("INSERT INTO {wysiwyg} (format, editor, settings) VALUES (%d, '%s', '%s')", $format, $profile->editor, serialize($profile->settings));
+      $ret[] = array(
+        'success' => TRUE,
+        'query' => strtr('Wysiwyg profile %profile converted and associated with input format %format.', array('%profile' => check_plain($profile->name), '%format' => check_plain($name))),
+      );
+    }
+  }
+
+  // Drop obsolete tables {wysiwyg_profile} and {wysiwyg_role}.
+  db_drop_table($ret, 'wysiwyg_profile');
+  db_drop_table($ret, 'wysiwyg_role');
+
+  return $ret;
+}
+
+/**
+ * Clear JS/CSS caches to ensure that clients load fresh copies.
+ */
+function wysiwyg_update_6200() {
+  $ret = array();
+  // Change query-strings on css/js files to enforce reload for all users.
+  _drupal_flush_css_js();
+
+  drupal_clear_css_cache();
+  drupal_clear_js_cache();
+
+  // Rebuild the menu to remove old admin/settings/wysiwyg/profile item.
+  menu_rebuild();
+
+  // Flush content caches.
+  cache_clear_all();
+
+  $ret[] = array(
+    'success' => TRUE,
+    'query' => 'Caches have been flushed.',
+  );
+  return $ret;
+}
+
diff --git a/sites/all/modules/wysiwyg/wysiwyg.js b/sites/all/modules/wysiwyg/wysiwyg.js
new file mode 100644
index 0000000000000000000000000000000000000000..e3ae9b4c2db92fbf455c5311b03e5a11103518b4
--- /dev/null
+++ b/sites/all/modules/wysiwyg/wysiwyg.js
@@ -0,0 +1,225 @@
+// $Id: wysiwyg.js,v 1.18 2009/11/14 03:35:29 twod Exp $
+(function($) {
+
+/**
+ * Initialize editor libraries.
+ *
+ * Some editors need to be initialized before the DOM is fully loaded. The
+ * init hook gives them a chance to do so.
+ */
+Drupal.wysiwygInit = function() {
+  // This breaks in Konqueror. Prevent it from running.
+  if (/KDE/.test(navigator.vendor)) {
+    return;
+  }
+
+  jQuery.each(Drupal.wysiwyg.editor.init, function(editor) {
+    // Clone, so original settings are not overwritten.
+    this(jQuery.extend(true, {}, Drupal.settings.wysiwyg.configs[editor]));
+  });
+};
+
+/**
+ * Attach editors to input formats and target elements (f.e. textareas).
+ *
+ * This behavior searches for input format selectors and formatting guidelines
+ * that have been preprocessed by Wysiwyg API. All CSS classes of those elements
+ * with the prefix 'wysiwyg-' are parsed into input format parameters, defining
+ * the input format, configured editor, target element id, and variable other
+ * properties, which are passed to the attach/detach hooks of the corresponding
+ * editor.
+ *
+ * Furthermore, an "enable/disable rich-text" toggle link is added after the
+ * target element to allow users to alter its contents in plain text.
+ *
+ * This is executed once, while editor attach/detach hooks can be invoked
+ * multiple times.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ */
+Drupal.behaviors.attachWysiwyg = {
+  attach: function(context, settings) {
+    // This breaks in Konqueror. Prevent it from running.
+    if (/KDE/.test(navigator.vendor)) {
+      return;
+    }
+
+    $('.wysiwyg', context).once('wysiwyg', function() {
+      if (!this.id || !this.value || typeof Drupal.settings.wysiwyg.triggers[this.id] === 'undefined') {
+        return;
+      }
+      var $this = $(this);
+      var params = Drupal.settings.wysiwyg.triggers[this.id];
+      for (var format in params) {
+        params[format].format = format;
+        params[format].trigger = this.id;
+        params[format].field = params.field;
+      }
+      var format = 'format' + this.value;
+      // Directly attach this editor, if the input format is enabled or there is
+      // only one input format at all.
+      if ($this.is(':input')) {
+        Drupal.wysiwygAttach(context, params[format]);
+      }
+      // Attach onChange handlers to input format selector elements.
+      if ($this.is('select')) {
+        $this.change(function() {
+          // If not disabled, detach the current and attach a new editor.
+          Drupal.wysiwygDetach(context, params[format]);
+          format = 'format' + this.value;
+          Drupal.wysiwygAttach(context, params[format]);
+        });
+      }
+      // Detach any editor when the containing form is submitted.
+      $('#' + params.field).parents('form').submit(function () {
+        Drupal.wysiwygDetach(context, params[format]);
+      });
+    });
+  }
+};
+
+/**
+ * Attach an editor to a target element.
+ *
+ * This tests whether the passed in editor implements the attach hook and
+ * invokes it if available. Editor profile settings are cloned first, so they
+ * cannot be overridden. After attaching the editor, the toggle link is shown
+ * again, except in case we are attaching no editor.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ * @param params
+ *   An object containing input format parameters.
+ */
+Drupal.wysiwygAttach = function(context, params) {
+  if (typeof Drupal.wysiwyg.editor.attach[params.editor] == 'function') {
+    // (Re-)initialize field instance.
+    Drupal.wysiwyg.instances[params.field] = {};
+    // Provide all input format parameters to editor instance.
+    jQuery.extend(Drupal.wysiwyg.instances[params.field], params);
+    // Provide editor callbacks for plugins, if available.
+    if (typeof Drupal.wysiwyg.editor.instance[params.editor] == 'object') {
+      jQuery.extend(Drupal.wysiwyg.instances[params.field], Drupal.wysiwyg.editor.instance[params.editor]);
+    }
+    // Store this field id, so (external) plugins can use it.
+    // @todo Wrong point in time. Probably can only supported by editors which
+    //   support an onFocus() or similar event.
+    Drupal.wysiwyg.activeId = params.field;
+    // Attach or update toggle link, if enabled.
+    if (params.toggle) {
+      Drupal.wysiwygAttachToggleLink(context, params);
+    }
+    // Otherwise, ensure that toggle link is hidden.
+    else {
+      $('#wysiwyg-toggle-' + params.field).hide();
+    }
+    // Attach editor, if enabled by default or last state was enabled.
+    if (params.status) {
+      Drupal.wysiwyg.editor.attach[params.editor](context, params, (Drupal.settings.wysiwyg.configs[params.editor] ? jQuery.extend(true, {}, Drupal.settings.wysiwyg.configs[params.editor][params.format]) : {}));
+    }
+    // Otherwise, attach default behaviors.
+    else {
+      Drupal.wysiwyg.editor.attach.none(context, params);
+      Drupal.wysiwyg.instances[params.field].editor = 'none';
+    }
+  }
+};
+
+/**
+ * Detach all editors from a target element.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ * @param params
+ *   An object containing input format parameters.
+ */
+Drupal.wysiwygDetach = function(context, params) {
+  var editor = Drupal.wysiwyg.instances[params.field].editor;
+  if (jQuery.isFunction(Drupal.wysiwyg.editor.detach[editor])) {
+    Drupal.wysiwyg.editor.detach[editor](context, params);
+  }
+};
+
+/**
+ * Append or update an editor toggle link to a target element.
+ *
+ * @param context
+ *   A DOM element, supplied by Drupal.attachBehaviors().
+ * @param params
+ *   An object containing input format parameters.
+ */
+Drupal.wysiwygAttachToggleLink = function(context, params) {
+  if (!$('#wysiwyg-toggle-' + params.field).length) {
+    var text = document.createTextNode(params.status ? Drupal.settings.wysiwyg.disable : Drupal.settings.wysiwyg.enable);
+    var a = document.createElement('a');
+    $(a).attr({ id: 'wysiwyg-toggle-' + params.field, href: 'javascript:void(0);' }).append(text);
+    var div = document.createElement('div');
+    $(div).addClass('wysiwyg-toggle-wrapper').append(a);
+    $('#' + params.field).after(div);
+  }
+  $('#wysiwyg-toggle-' + params.field)
+    .html(params.status ? Drupal.settings.wysiwyg.disable : Drupal.settings.wysiwyg.enable).show()
+    .unbind('click').click(function() {
+      if (params.status) {
+        // Detach current editor.
+        params.status = false;
+        Drupal.wysiwygDetach(context, params);
+        // After disabling the editor, re-attach default behaviors.
+        // @todo We HAVE TO invoke Drupal.wysiwygAttach() here.
+        Drupal.wysiwyg.editor.attach.none(context, params);
+        Drupal.wysiwyg.instances[params.field] = Drupal.wysiwyg.editor.instance.none;
+        Drupal.wysiwyg.instances[params.field].editor = 'none';
+        $(this).html(Drupal.settings.wysiwyg.enable).blur();
+      }
+      else {
+        // Before enabling the editor, detach default behaviors.
+        Drupal.wysiwyg.editor.detach.none(context, params);
+        // Attach new editor using parameters of the currently selected input format.
+        params = Drupal.settings.wysiwyg.triggers[params.trigger]['format' + $('#' + params.trigger).val()];
+        params.status = true;
+        Drupal.wysiwygAttach(context, params);
+        $(this).html(Drupal.settings.wysiwyg.disable).blur();
+      }
+    });
+  // Hide toggle link in case no editor is attached.
+  if (params.editor == 'none') {
+    $('#wysiwyg-toggle-' + params.field).hide();
+  }
+};
+
+/**
+ * Parse the CSS classes of an input format DOM element into parameters.
+ *
+ * Syntax for CSS classes is "wysiwyg-name-value".
+ *
+ * @param element
+ *   An input format DOM element containing CSS classes to parse.
+ * @param params
+ *   (optional) An object containing input format parameters to update.
+ */
+Drupal.wysiwyg.getParams = function(element, params) {
+  var classes = element.className.split(' ');
+  var params = params || {};
+  for (var i in classes) {
+    if (classes[i].substr(0, 8) == 'wysiwyg-') {
+      var parts = classes[i].split('-');
+      var value = parts.slice(2).join('-');
+      params[parts[1]] = value;
+    }
+  }
+  // Convert format id into string.
+  params.format = 'format' + params.format;
+  // Convert numeric values.
+  params.status = parseInt(params.status, 10);
+  params.toggle = parseInt(params.toggle, 10);
+  params.resizable = parseInt(params.resizable, 10);
+  return params;
+};
+
+/**
+ * Allow certain editor libraries to initialize before the DOM is loaded.
+ */
+Drupal.wysiwygInit();
+
+})(jQuery);
diff --git a/sites/all/modules/wysiwyg/wysiwyg.module b/sites/all/modules/wysiwyg/wysiwyg.module
new file mode 100644
index 0000000000000000000000000000000000000000..aa18705dd1fffc7c67983e9e98550b72d944ee9c
--- /dev/null
+++ b/sites/all/modules/wysiwyg/wysiwyg.module
@@ -0,0 +1,963 @@
+<?php
+// $Id: wysiwyg.module,v 1.45 2010/03/20 14:54:29 sun Exp $
+
+/**
+ * @file
+ * Integrate client-side editors with Drupal.
+ */
+
+/**
+ * Implementation of hook_menu().
+ */
+function wysiwyg_menu() {
+  $items['admin/config/content/wysiwyg'] = array(
+    'title' => 'Wysiwyg profiles',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('wysiwyg_profile_overview'),
+    'description' => 'Configure client-side editors.',
+    'access arguments' => array('administer filters'),
+    'file' => 'wysiwyg.admin.inc',
+  );
+  $items['admin/config/content/wysiwyg/profile'] = array(
+    'title' => 'List',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+  );
+  $items['admin/config/content/wysiwyg/profile/%wysiwyg_profile/edit'] = array(
+    'title' => 'Edit',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('wysiwyg_profile_form', 5),
+    'access arguments' => array('administer filters'),
+    'file' => 'wysiwyg.admin.inc',
+    'tab_root' => 'admin/config/content/wysiwyg/profile',
+    'tab_parent' => 'admin/config/content/wysiwyg/profile/%wysiwyg_profile',
+    'type' => MENU_LOCAL_TASK,
+  );
+  $items['admin/config/content/wysiwyg/profile/%wysiwyg_profile/delete'] = array(
+    'title' => 'Remove',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('wysiwyg_profile_delete_confirm', 5),
+    'access arguments' => array('administer filters'),
+    'file' => 'wysiwyg.admin.inc',
+    'tab_root' => 'admin/config/content/wysiwyg/profile',
+    'tab_parent' => 'admin/config/content/wysiwyg/profile/%wysiwyg_profile',
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 10,
+  );
+  $items['wysiwyg/%'] = array(
+    'page callback' => 'wysiwyg_dialog',
+    'page arguments' => array(1),
+    'access arguments' => array('access content'),
+    'type' => MENU_CALLBACK,
+    'file' => 'wysiwyg.dialog.inc',
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_theme().
+ *
+ * @see drupal_common_theme(), common.inc
+ * @see template_preprocess_page(), theme.inc
+ */
+function wysiwyg_theme() {
+  return array(
+    'wysiwyg_profile_overview' => array(
+      'render element' => 'form',
+    ),
+    'wysiwyg_admin_button_table' => array(
+      'render element' => 'form',
+    ),
+    'wysiwyg_dialog_page' => array(
+      'variables' => array('content' => NULL, 'show_messages' => TRUE),
+      'file' => 'wysiwyg.dialog.inc',
+      'template' => 'wysiwyg-dialog-page',
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_help().
+ */
+function wysiwyg_help($path, $arg) {
+  switch ($path) {
+    case 'admin/config/content/wysiwyg':
+      $output = '<p>' . t('A Wysiwyg profile is associated with an input format. A Wysiwyg profile defines which client-side editor is loaded with a particular input format, what buttons or themes are enabled for the editor, how the editor is displayed, and a few other editor-specific functions.') . '</p>';
+      return $output;
+  }
+}
+
+/**
+ * Implementation of hook_form_alter().
+ */
+function wysiwyg_form_alter(&$form, &$form_state) {
+  // Teaser splitter is unconditionally removed and NOT supported.
+  if (isset($form['body_field'])) {
+    unset($form['body_field']['teaser_js']);
+  }
+}
+
+/**
+ * Implements hook_element_info_alter().
+ */
+function wysiwyg_element_info_alter(&$types) {
+  $types['text_format']['#pre_render'][] = 'wysiwyg_pre_render_text_format';
+}
+
+/**
+ * Process a text format widget to load and attach editors.
+ *
+ * The element's #id is used as reference to attach client-side editors.
+ */
+function wysiwyg_pre_render_text_format($element) {
+  // filter_process_format() copies properties to the expanded 'value' child
+  // element.
+  if (!isset($element['format'])) {
+    return $element;
+  }
+
+  $format_field = &$element['format'];
+  $field = &$element['value'];
+  $settings = array(
+    'field' => $field['#id'],
+  );
+
+  // If this textarea is #resizable and we will load at least one
+  // editor, then only load the behavior and let the 'none' editor
+  // attach/detach it to avoid hi-jacking the UI. Due to our CSS class
+  // parsing, we can add arbitrary parameters for each input format.
+  // The #resizable property will be removed below, if at least one
+  // profile has been loaded.
+  $resizable = 0;
+  if (!empty($field['#resizable'])) {
+    $resizable = 1;
+    drupal_add_js('misc/textarea.js');
+  }
+  // Determine the available text formats.
+  foreach ($format_field['format']['#options'] as $format_id => $format_name) {
+    $format = 'format' . $format_id;
+    // Initialize default settings, defaulting to 'none' editor.
+    $settings[$format]['editor'] = 'none';
+    $settings[$format]['status'] = 1;
+    $settings[$format]['toggle'] = 1;
+    $settings[$format]['resizable'] = $resizable;
+
+    // Fetch the profile associated to this text format.
+    $profile = wysiwyg_get_profile($format_id);
+    if ($profile) {
+      $loaded = TRUE;
+      $settings[$format]['editor'] = $profile->editor;
+      $settings[$format]['status'] = (int) wysiwyg_user_get_status($profile);
+      if (isset($profile->settings['show_toggle'])) {
+        $settings[$format]['toggle'] = (int) $profile->settings['show_toggle'];
+      }
+      // Check editor theme (and reset it if not/no longer available).
+      $theme = wysiwyg_get_editor_themes($profile, (isset($profile->settings['theme']) ? $profile->settings['theme'] : ''));
+
+      // Add plugin settings (first) for this text format.
+      wysiwyg_add_plugin_settings($profile);
+      // Add profile settings for this text format.
+      wysiwyg_add_editor_settings($profile, $theme);
+    }
+  }
+  // Use a hidden element for a single text format.
+  if (!$format_field['format']['#access']) {
+    $format_field['guidelines']['format'] = array(
+      '#type' => 'hidden',
+      '#name' => $format_field['format']['#name'],
+      '#id' => $format_field['format']['#id'],
+      '#value' => $format_id,
+      '#attributes' => array('class' => array('wysiwyg')),
+    );
+    $format_field['guidelines']['format']['#attached']['js'][] = array(
+      'data' => array('wysiwyg' => array('triggers' => array($format_field['format']['#id'] => $settings))),
+      'type' => 'setting',
+    );
+  }
+  // Otherwise, attach to text format selector.
+  else {
+    $format_field['format']['#attributes']['class'][] = 'wysiwyg';
+    $format_field['format']['#attached']['js'][] = array(
+      'data' => array('wysiwyg' => array('triggers' => array($format_field['format']['#id'] => $settings))),
+      'type' => 'setting',
+    );
+  }
+
+  // If we loaded at least one editor, then the 'none' editor will
+  // handle resizable textareas instead of core.
+  if (isset($loaded) && $resizable) {
+    $field['#resizable'] = FALSE;
+  }
+
+  return $element;
+}
+
+/**
+ * Determine the profile to use for a given input format id.
+ *
+ * This function also performs sanity checks for the configured editor in a
+ * profile to ensure that we do not load a malformed editor.
+ *
+ * @param $format
+ *   The internal id of an input format.
+ *
+ * @return
+ *   A wysiwyg profile.
+ *
+ * @see wysiwyg_load_editor(), wysiwyg_get_editor()
+ */
+function wysiwyg_get_profile($format) {
+  if ($profile = wysiwyg_profile_load($format)) {
+    if (wysiwyg_load_editor($profile)) {
+      return $profile;
+    }
+  }
+  return FALSE;
+}
+
+/**
+ * Load an editor library and initialize basic Wysiwyg settings.
+ *
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @return
+ *   TRUE if the editor has been loaded, FALSE if not.
+ *
+ * @see wysiwyg_get_profile()
+ */
+function wysiwyg_load_editor($profile) {
+  static $settings_added;
+  static $loaded = array();
+
+  $name = $profile->editor;
+  // Library files must be loaded only once.
+  if (!isset($loaded[$name])) {
+    // Load editor.
+    $editor = wysiwyg_get_editor($name);
+    if ($editor) {
+      // Determine library files to load.
+      // @todo Allow to configure the library/execMode to use.
+      if (isset($profile->settings['library']) && isset($editor['libraries'][$profile->settings['library']])) {
+        $library = $profile->settings['library'];
+        $files = $editor['libraries'][$library]['files'];
+      }
+      else {
+        // Fallback to the first defined library by default (external libraries can change).
+        $library = key($editor['libraries']);
+        $files = array_shift($editor['libraries']);
+        $files = $files['files'];
+      }
+      foreach ($files as $file => $options) {
+        if (is_array($options)) {
+          $options += array('type' => 'file', 'scope' => 'header', 'defer' => FALSE, 'cache' => TRUE, 'preprocess' => TRUE);
+          drupal_add_js($editor['library path'] . '/' . $file, $options);
+        }
+        else {
+          drupal_add_js($editor['library path'] . '/' . $options);
+        }
+      }
+      // If editor defines an additional load callback, invoke it.
+      // @todo Isn't the settings callback sufficient?
+      if (isset($editor['load callback']) && function_exists($editor['load callback'])) {
+        $editor['load callback']($editor, $library);
+      }
+      // Load JavaScript integration files for this editor.
+      $files = array();
+      if (isset($editor['js files'])) {
+        $files = $editor['js files'];
+      }
+      foreach ($files as $file) {
+        drupal_add_js($editor['js path'] . '/' . $file);
+      }
+      // Load CSS stylesheets for this editor.
+      $files = array();
+      if (isset($editor['css files'])) {
+        $files = $editor['css files'];
+      }
+      foreach ($files as $file) {
+        drupal_add_css($editor['css path'] . '/' . $file);
+      }
+
+      drupal_add_js(array('wysiwyg' => array(
+        'configs' => array($editor['name'] => array('global' => array(
+          // @todo Move into (global) editor settings.
+          // If JS compression is enabled, at least TinyMCE is unable to determine
+          // its own base path and exec mode since it can't find the script name.
+          'editorBasePath' => base_path() . $editor['library path'],
+          'execMode' => $library,
+        ))),
+      )), 'setting');
+
+      $loaded[$name] = TRUE;
+    }
+    else {
+      $loaded[$name] = FALSE;
+    }
+  }
+
+  // Add basic Wysiwyg settings if any editor has been added.
+  if (!isset($settings_added) && $loaded[$name]) {
+    drupal_add_js(array('wysiwyg' => array(
+      'configs' => array(),
+      'plugins' => array(),
+      'disable' => t('Disable rich-text'),
+      'enable' => t('Enable rich-text'),
+    )), 'setting');
+
+    $path = drupal_get_path('module', 'wysiwyg');
+    // Initialize our namespaces in the *header* to do not force editor
+    // integration scripts to check and define Drupal.wysiwyg on its own.
+    drupal_add_js($path . '/wysiwyg.init.js', array('weight' => JS_LIBRARY));
+
+    // The 'none' editor is a special editor implementation, allowing us to
+    // attach and detach regular Drupal behaviors just like any other editor.
+    drupal_add_js($path . '/editors/js/none.js');
+
+    // Add wysiwyg.js to the footer to ensure it's executed after the
+    // Drupal.settings array has been rendered and populated. Also, since editor
+    // library initialization functions must be loaded first by the browser,
+    // and Drupal.wysiwygInit() must be executed AFTER editors registered
+    // their callbacks and BEFORE Drupal.behaviors are applied, this must come
+    // last.
+    drupal_add_js($path . '/wysiwyg.js', array('scope' => 'footer'));
+
+    $settings_added = TRUE;
+  }
+
+  return $loaded[$name];
+}
+
+/**
+ * Add editor settings for a given input format.
+ */
+function wysiwyg_add_editor_settings($profile, $theme) {
+  static $formats = array();
+
+  if (!isset($formats[$profile->format])) {
+    $config = wysiwyg_get_editor_config($profile, $theme);
+    // drupal_to_js() does not properly convert numeric array keys, so we need
+    // to use a string instead of the format id.
+    if ($config) {
+      drupal_add_js(array('wysiwyg' => array('configs' => array($profile->editor => array('format' . $profile->format => $config)))), 'setting');
+    }
+    $formats[$profile->format] = TRUE;
+  }
+}
+
+/**
+ * Add settings for external plugins.
+ *
+ * Plugins can be used in multiple profiles, but not necessarily in all. Because
+ * of that, we need to process plugins for each profile, even if most of their
+ * settings are not stored per profile.
+ *
+ * Implementations of hook_wysiwyg_plugin() may execute different code for each
+ * editor. Therefore, we have to invoke those implementations for each editor,
+ * but process the resulting plugins separately for each profile.
+ *
+ * Drupal plugins differ to native plugins in that they have plugin-specific
+ * definitions and settings, which need to be processed only once. But they are
+ * also passed to the editor to prepare settings specific to the editor.
+ * Therefore, we load and process the Drupal plugins only once, and hand off the
+ * effective definitions for each profile to the editor.
+ *
+ * @param $profile
+ *   A wysiwyg editor profile.
+ *
+ * @todo Rewrite wysiwyg_process_form() to build a registry of effective
+ *   profiles in use, so we can process plugins in multiple profiles in one shot
+ *   and simplify this entire function.
+ */
+function wysiwyg_add_plugin_settings($profile) {
+  static $plugins = array();
+  static $processed_plugins = array();
+  static $processed_formats = array();
+
+  // Each input format must only processed once.
+  // @todo ...as long as we do not have multiple profiles per format.
+  if (isset($processed_formats[$profile->format])) {
+    return;
+  }
+  $processed_formats[$profile->format] = TRUE;
+
+  $editor = wysiwyg_get_editor($profile->editor);
+
+  // Collect native plugins for this editor provided via hook_wysiwyg_plugin()
+  // and Drupal plugins provided via hook_wysiwyg_include_directory().
+  if (!array_key_exists($editor['name'], $plugins)) {
+    $plugins[$editor['name']] = wysiwyg_get_plugins($editor['name']);
+  }
+
+  // Nothing to do, if there are no plugins.
+  if (empty($plugins[$editor['name']])) {
+    return;
+  }
+
+  // Determine name of proxy plugin for Drupal plugins.
+  $proxy = (isset($editor['proxy plugin']) ? key($editor['proxy plugin']) : '');
+
+  // Process native editor plugins.
+  if (isset($editor['plugin settings callback'])) {
+    // @todo Require PHP 5.1 in 3.x and use array_intersect_key().
+    $profile_plugins_native = array();
+    foreach ($plugins[$editor['name']] as $plugin => $meta) {
+      // Skip Drupal plugins (handled below).
+      if ($plugin === $proxy) {
+        continue;
+      }
+      // Only keep native plugins that are enabled in this profile.
+      if (isset($profile->settings['buttons'][$plugin])) {
+        $profile_plugins_native[$plugin] = $meta;
+      }
+    }
+    // Invoke the editor's plugin settings callback, so it can populate the
+    // settings for native external plugins with required values.
+    $settings_native = call_user_func($editor['plugin settings callback'], $editor, $profile, $profile_plugins_native);
+
+    if ($settings_native) {
+      drupal_add_js(array('wysiwyg' => array('plugins' => array('format' . $profile->format => array('native' => $settings_native)))), 'setting');
+    }
+  }
+
+  // Process Drupal plugins.
+  if ($proxy && isset($editor['proxy plugin settings callback'])) {
+    $profile_plugins_drupal = array();
+    foreach (wysiwyg_get_all_plugins() as $plugin => $meta) {
+      if (isset($profile->settings['buttons'][$proxy][$plugin])) {
+        // JavaScript and plugin-specific settings for Drupal plugins must be
+        // loaded and processed only once. Plugin information is cached
+        // statically to pass it to the editor's proxy plugin settings callback.
+        if (!isset($processed_plugins[$proxy][$plugin])) {
+          $profile_plugins_drupal[$plugin] = $processed_plugins[$proxy][$plugin] = $meta;
+          // Load the Drupal plugin's JavaScript.
+          drupal_add_js($meta['js path'] . '/' . $meta['js file']);
+          // Add plugin-specific settings.
+          if (isset($meta['settings'])) {
+            drupal_add_js(array('wysiwyg' => array('plugins' => array('drupal' => array($plugin => $meta['settings'])))), 'setting');
+          }
+        }
+        else {
+          $profile_plugins_drupal[$plugin] = $processed_plugins[$proxy][$plugin];
+        }
+      }
+    }
+    // Invoke the editor's proxy plugin settings callback, so it can populate
+    // the settings for Drupal plugins with custom, required values.
+    $settings_drupal = call_user_func($editor['proxy plugin settings callback'], $editor, $profile, $profile_plugins_drupal);
+
+    if ($settings_drupal) {
+      drupal_add_js(array('wysiwyg' => array('plugins' => array('format' . $profile->format => array('drupal' => $settings_drupal)))), 'setting');
+    }
+  }
+}
+
+/**
+ * Retrieve available themes for an editor.
+ *
+ * Editor themes control the visual presentation of an editor.
+ *
+ * @param $profile
+ *   A wysiwyg editor profile; passed/altered by reference.
+ * @param $selected_theme
+ *   An optional theme name that ought to be used.
+ *
+ * @return
+ *   An array of theme names, or a single, checked theme name if $selected_theme
+ *   was given.
+ */
+function wysiwyg_get_editor_themes(&$profile, $selected_theme = NULL) {
+  static $themes = array();
+
+  if (!isset($themes[$profile->editor])) {
+    $editor = wysiwyg_get_editor($profile->editor);
+    if (isset($editor['themes callback']) && function_exists($editor['themes callback'])) {
+      $themes[$editor['name']] = $editor['themes callback']($editor, $profile);
+    }
+    // Fallback to 'default' otherwise.
+    else {
+      $themes[$editor['name']] = array('default');
+    }
+  }
+
+  // Check optional $selected_theme argument, if given.
+  if (isset($selected_theme)) {
+    // If the passed theme name does not exist, use the first available.
+    if (!in_array($selected_theme, $themes[$profile->editor])) {
+      $selected_theme = $profile->settings['theme'] = $themes[$profile->editor][0];
+    }
+  }
+
+  return isset($selected_theme) ? $selected_theme : $themes[$profile->editor];
+}
+
+/**
+ * Return plugin metadata from the plugin registry.
+ *
+ * @param $editor_name
+ *   The internal name of an editor to return plugins for.
+ *
+ * @return
+ *   An array for each plugin.
+ */
+function wysiwyg_get_plugins($editor_name) {
+  $plugins = array();
+  if (!empty($editor_name)) {
+    $editor = wysiwyg_get_editor($editor_name);
+    // Add internal editor plugins.
+    if (isset($editor['plugin callback']) && function_exists($editor['plugin callback'])) {
+      $plugins = $editor['plugin callback']($editor);
+    }
+    // Add editor plugins provided via hook_wysiwyg_plugin().
+    $plugins = array_merge($plugins, module_invoke_all('wysiwyg_plugin', $editor['name'], $editor['installed version']));
+    // Add API plugins provided by Drupal modules.
+    // @todo We need to pass the filepath to the plugin icon for Drupal plugins.
+    if (isset($editor['proxy plugin'])) {
+      $plugins += $editor['proxy plugin'];
+      $proxy = key($editor['proxy plugin']);
+      foreach (wysiwyg_get_all_plugins() as $plugin_name => $info) {
+        $plugins[$proxy]['buttons'][$plugin_name] = $info['title'];
+      }
+    }
+  }
+  return $plugins;
+}
+
+/**
+ * Return an array of initial editor settings for a Wysiwyg profile.
+ */
+function wysiwyg_get_editor_config($profile, $theme) {
+  $editor = wysiwyg_get_editor($profile->editor);
+  $settings = array();
+  if (!empty($editor['settings callback']) && function_exists($editor['settings callback'])) {
+    $settings = $editor['settings callback']($editor, $profile->settings, $theme);
+
+    // Allow other modules to alter the editor settings for this format.
+    $context = array('editor' => $editor, 'profile' => $profile, 'theme' => $theme);
+    drupal_alter('wysiwyg_editor_settings', $settings, $context);
+  }
+  return $settings;
+}
+
+/**
+ * Retrieve stylesheets for HTML/IFRAME-based editors.
+ *
+ * This assumes that the content editing area only needs stylesheets defined
+ * for the scope 'theme'.
+ *
+ * @return
+ *   An array containing CSS files, including proper base path.
+ */
+function wysiwyg_get_css() {
+  static $files;
+
+  if (isset($files)) {
+    return $files;
+  }
+  // In node form previews, the theme has not been initialized yet.
+  if (!empty($_POST)) {
+    drupal_theme_initialize();
+  }
+
+  $files = array();
+  foreach (drupal_add_css() as $filepath => $info) {
+    if ($info['weight'] >= CSS_THEME && $info['media'] != 'print') {
+      if (file_exists($filepath)) {
+        $files[] = base_path() . $filepath;
+      }
+    }
+  }
+  return $files;
+}
+
+/**
+ * Load profile for a given input format.
+ */
+function wysiwyg_profile_load($format) {
+  static $profiles;
+
+  if (!isset($profiles) || !array_key_exists($format, $profiles)) {
+    $result = db_query('SELECT format, editor, settings FROM {wysiwyg} WHERE format = :format', array(':format' => $format));
+    foreach ($result as $profile) {
+      $profile->settings = unserialize($profile->settings);
+      $profiles[$profile->format] = $profile;
+    }
+  }
+
+  return (isset($profiles[$format]) ? $profiles[$format] : FALSE);
+}
+
+/**
+ * Load all profiles.
+ */
+function wysiwyg_profile_load_all() {
+  static $profiles;
+
+  if (!isset($profiles)) {
+    $profiles = array();
+    $result = db_query('SELECT format, editor, settings FROM {wysiwyg}');
+    foreach ($result as $profile) {
+      $profile->settings = unserialize($profile->settings);
+      $profiles[$profile->format] = $profile;
+    }
+  }
+
+  return $profiles;
+}
+
+/**
+ * Implementation of hook_user().
+ */
+function wysiwyg_user($type, &$edit, &$user, $category = NULL) {
+  if ($type == 'form' && $category == 'account') {
+    // @todo http://drupal.org/node/322433
+    $profile = new stdClass;
+    if (isset($profile->settings['user_choose']) && $profile->settings['user_choose']) {
+      $form['wysiwyg'] = array(
+        '#type' => 'fieldset',
+        '#title' => t('Wysiwyg Editor settings'),
+        '#weight' => 10,
+        '#collapsible' => TRUE,
+        '#collapsed' => TRUE,
+      );
+      $form['wysiwyg']['wysiwyg_status'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Enable editor by default'),
+        '#default_value' => isset($user->wysiwyg_status) ? $user->wysiwyg_status : (isset($profile->settings['default']) ? $profile->settings['default'] : FALSE),
+        '#return_value' => 1,
+        '#description' => t('If enabled, rich-text editing is enabled by default in textarea fields.'),
+      );
+      return array('wysiwyg' => $form);
+    }
+  }
+  elseif ($type == 'validate' && isset($edit['wysiwyg_status'])) {
+    return array('wysiwyg_status' => $edit['wysiwyg_status']);
+  }
+}
+
+function wysiwyg_user_get_status($profile) {
+  global $user;
+
+  if (!empty($profile->settings['user_choose']) && isset($user->wysiwyg_status)) {
+    $status = $user->wysiwyg_status;
+  }
+  else {
+    $status = isset($profile->settings['default']) ? $profile->settings['default'] : TRUE;
+  }
+
+  return $status;
+}
+
+/**
+ * @defgroup wysiwyg_api Wysiwyg API
+ * @{
+ *
+ * @todo Forked from Panels; abstract into a separate API module that allows
+ *   contrib modules to define supported include/plugin types.
+ */
+
+/**
+ * Return library information for a given editor.
+ *
+ * @param $name
+ *   The internal name of an editor.
+ *
+ * @return
+ *   The library information for the editor, or FALSE if $name is unknown or not
+ *   installed properly.
+ */
+function wysiwyg_get_editor($name) {
+  $editors = wysiwyg_get_all_editors();
+  return isset($editors[$name]) && $editors[$name]['installed'] ? $editors[$name] : FALSE;
+}
+
+/**
+ * Compile a list holding all supported editors including installed editor version information.
+ */
+function wysiwyg_get_all_editors() {
+  static $editors;
+
+  if (isset($editors)) {
+    return $editors;
+  }
+
+  $editors = wysiwyg_load_includes('editors', 'editor');
+  foreach ($editors as $editor => $properties) {
+    // Fill in required properties.
+    $editors[$editor] += array(
+      'title' => '',
+      'vendor url' => '',
+      'download url' => '',
+      'editor path' => wysiwyg_get_path($editors[$editor]['name']),
+      'library path' => wysiwyg_get_path($editors[$editor]['name']),
+      'libraries' => array(),
+      'version callback' => NULL,
+      'themes callback' => NULL,
+      'settings callback' => NULL,
+      'plugin callback' => NULL,
+      'plugin settings callback' => NULL,
+      'versions' => array(),
+      'js path' => $editors[$editor]['path'] . '/js',
+      'css path' => $editors[$editor]['path'] . '/css',
+    );
+    // Check whether library is present.
+    if (!($editors[$editor]['installed'] = file_exists($editors[$editor]['library path']))) {
+      continue;
+    }
+    // Detect library version.
+    if (function_exists($editors[$editor]['version callback'])) {
+      $editors[$editor]['installed version'] = $editors[$editor]['version callback']($editors[$editor]);
+    }
+    if (empty($editors[$editor]['installed version'])) {
+      $editors[$editor]['error'] = t('The version of %editor could not be detected.', array('%editor' => $properties['title']));
+      $editors[$editor]['installed'] = FALSE;
+      continue;
+    }
+    // Determine to which supported version the installed version maps.
+    ksort($editors[$editor]['versions']);
+    $version = 0;
+    foreach ($editors[$editor]['versions'] as $supported_version => $version_properties) {
+      if (version_compare($editors[$editor]['installed version'], $supported_version, '>=')) {
+        $version = $supported_version;
+      }
+    }
+    if (!$version) {
+      $editors[$editor]['error'] = t('The installed version %version of %editor is not supported.', array('%version' => $editors[$editor]['installed version'], '%editor' => $editors[$editor]['title']));
+      $editors[$editor]['installed'] = FALSE;
+      continue;
+    }
+    // Apply library version specific definitions and overrides.
+    $editors[$editor] = array_merge($editors[$editor], $editors[$editor]['versions'][$version]);
+    unset($editors[$editor]['versions']);
+  }
+  return $editors;
+}
+
+/**
+ * Invoke hook_wysiwyg_plugin() in all modules.
+ */
+function wysiwyg_get_all_plugins() {
+  static $plugins;
+
+  if (isset($plugins)) {
+    return $plugins;
+  }
+
+  $plugins = wysiwyg_load_includes('plugins', 'plugin');
+  foreach ($plugins as $name => $properties) {
+    $plugin = &$plugins[$name];
+    // Fill in required/default properties.
+    $plugin += array(
+      'title' => $plugin['name'],
+      'vendor url' => '',
+      'js path' => $plugin['path'] . '/' . $plugin['name'],
+      'js file' => $plugin['name'] . '.js',
+      'css path' => $plugin['path'] . '/' . $plugin['name'],
+      'css file' => $plugin['name'] . '.css',
+      'icon path' => $plugin['path'] . '/' . $plugin['name'] . '/images',
+      'icon file' => $plugin['name'] . '.png',
+      'dialog path' => $plugin['name'],
+      'dialog settings' => array(),
+      'settings callback' => NULL,
+      'settings form callback' => NULL,
+    );
+    // Fill in default settings.
+    $plugin['settings'] += array(
+      'path' => base_path() . $plugin['path'] . '/' . $plugin['name'],
+    );
+    // Check whether library is present.
+    if (!($plugin['installed'] = file_exists($plugin['js path'] . '/' . $plugin['js file']))) {
+      continue;
+    }
+  }
+  return $plugins;
+}
+
+/**
+ * Load include files for wysiwyg implemented by all modules.
+ *
+ * @param $type
+ *   The type of includes to search for, can be 'editors'.
+ * @param $hook
+ *   The hook name to invoke.
+ * @param $file
+ *   An optional include file name without .inc extension to limit the search to.
+ *
+ * @see wysiwyg_get_directories(), _wysiwyg_process_include()
+ */
+function wysiwyg_load_includes($type = 'editors', $hook = 'editor', $file = NULL) {
+  // Determine implementations.
+  $directories = wysiwyg_get_directories($type);
+  $directories['wysiwyg'] = drupal_get_path('module', 'wysiwyg') . '/' . $type;
+  $file_list = array();
+  foreach ($directories as $module => $path) {
+    $file_list[$module] = drupal_system_listing("/{$file}.inc\$/", $path, 'name', 0);
+  }
+
+  // Load implementations.
+  $info = array();
+  foreach (array_filter($file_list) as $module => $files) {
+    foreach ($files as $file) {
+      include_once './' . $file->uri;
+      $result = _wysiwyg_process_include($module, $module . '_' . $file->name, dirname($file->uri), $hook);
+      if (is_array($result)) {
+        $info = array_merge($info, $result);
+      }
+    }
+  }
+  return $info;
+}
+
+/**
+ * Helper function to build paths to libraries.
+ *
+ * @param $library
+ *   The external library name to return the path for.
+ * @param $base_path
+ *   Whether to prefix the resulting path with base_path().
+ *
+ * @return
+ *   The path to the specified library.
+ *
+ * @ingroup libraries
+ */
+function wysiwyg_get_path($library, $base_path = FALSE) {
+  static $libraries;
+
+  if (!isset($libraries)) {
+    $libraries = wysiwyg_get_libraries();
+  }
+  if (!isset($libraries[$library])) {
+    // Most often, external libraries can be shared across multiple sites.
+    return 'sites/all/libraries/' . $library;
+  }
+
+  $path = ($base_path ? base_path() : '');
+  $path .= $libraries[$library];
+
+  return $path;
+}
+
+/**
+ * Return an array of library directories.
+ *
+ * Returns an array of library directories from the all-sites directory
+ * (i.e. sites/all/libraries/), the profiles directory, and site-specific
+ * directory (i.e. sites/somesite/libraries/). The returned array will be keyed
+ * by the library name. Site-specific libraries are prioritized over libraries
+ * in the default directories. That is, if a library with the same name appears
+ * in both the site-wide directory and site-specific directory, only the
+ * site-specific version will be listed.
+ *
+ * @return
+ *   A list of library directories.
+ *
+ * @ingroup libraries
+ */
+function wysiwyg_get_libraries() {
+  global $profile;
+
+  // When this function is called during Drupal's initial installation process,
+  // the name of the profile that is about to be installed is stored in the
+  // global $profile variable. At all other times, the regular system variable
+  // contains the name of the current profile, and we can call variable_get()
+  // to determine the profile.
+  if (!isset($profile)) {
+    $profile = variable_get('install_profile', 'default');
+  }
+
+  $directory = 'libraries';
+  $searchdir = array();
+  $config = conf_path();
+
+  // The 'profiles' directory contains pristine collections of modules and
+  // themes as organized by a distribution.  It is pristine in the same way
+  // that /modules is pristine for core; users should avoid changing anything
+  // there in favor of sites/all or sites/<domain> directories.
+  if (file_exists("profiles/$profile/$directory")) {
+    $searchdir[] = "profiles/$profile/$directory";
+  }
+
+  // Always search sites/all/*.
+  $searchdir[] = 'sites/all/' . $directory;
+
+  // Also search sites/<domain>/*.
+  if (file_exists("$config/$directory")) {
+    $searchdir[] = "$config/$directory";
+  }
+
+  // Retrieve list of directories.
+  // @todo Core: Allow to scan for directories.
+  $directories = array();
+  $nomask = array('CVS');
+  foreach ($searchdir as $dir) {
+    if (is_dir($dir) && $handle = opendir($dir)) {
+      while (FALSE !== ($file = readdir($handle))) {
+        if (!in_array($file, $nomask) && $file[0] != '.') {
+          if (is_dir("$dir/$file")) {
+            $directories[$file] = "$dir/$file";
+          }
+        }
+      }
+      closedir($handle);
+    }
+  }
+
+  return $directories;
+}
+
+/**
+ * Return a list of directories by modules implementing wysiwyg_include_directory().
+ *
+ * @param $plugintype
+ *   The type of a plugin; can be 'editors'.
+ *
+ * @return
+ *   An array containing module names suffixed with '_' and their defined
+ *   directory.
+ *
+ * @see wysiwyg_load_includes(), _wysiwyg_process_include()
+ */
+function wysiwyg_get_directories($plugintype) {
+  $directories = array();
+  foreach (module_implements('wysiwyg_include_directory') as $module) {
+    $result = module_invoke($module, 'wysiwyg_include_directory', $plugintype);
+    if (isset($result) && is_string($result)) {
+      $directories[$module] = drupal_get_path('module', $module) . '/' . $result;
+    }
+  }
+  return $directories;
+}
+
+/**
+ * Process a single hook implementation of a wysiwyg editor.
+ *
+ * @param $module
+ *   The module that owns the hook.
+ * @param $identifier
+ *   Either the module or 'wysiwyg_' . $file->name
+ * @param $hook
+ *   The name of the hook being invoked.
+ */
+function _wysiwyg_process_include($module, $identifier, $path, $hook) {
+  $function = $identifier . '_' . $hook;
+  if (!function_exists($function)) {
+    return NULL;
+  }
+  $result = $function();
+  if (!isset($result) || !is_array($result)) {
+    return NULL;
+  }
+
+  // Fill in defaults.
+  foreach ($result as $editor => $properties) {
+    $result[$editor]['module'] = $module;
+    $result[$editor]['name'] = $editor;
+    $result[$editor]['path'] = $path;
+  }
+  return $result;
+}
+
+/**
+ * @} End of "defgroup wysiwyg_api".
+ */
+