# AddDefaultCharset UTF-8
AddType text/x-component .htc
-<IfModule mod_php4.c>
- php_flag display_errors Off
- php_flag log_errors On
- php_value error_log logs/errors
- php_value upload_max_filesize 5M
- php_value post_max_size 6M
- php_value memory_limit 64M
- php_value session.auto_start 0
- php_value zlib.output_compression 0
- php_value magic_quotes_gpc 0
-</IfModule>
-
<IfModule mod_php5.c>
- php_flag display_errors Off
- php_flag log_errors On
- php_value error_log logs/errors
- php_value upload_max_filesize 5M
- php_value post_max_size 6M
- php_value memory_limit 64M
- php_value session.auto_start 0
- php_value zlib.output_compression 0
- php_value magic_quotes_gpc 0
+php_flag display_errors Off
+php_flag log_errors On
+php_value error_log logs/errors
+
+php_value upload_max_filesize 5M
+php_value post_max_size 6M
+php_value memory_limit 64M
+
+php_value zlib.output_compression 0
+php_value magic_quotes_gpc 0
+php_value zend.ze1_compatibility_mode 0
+
+php_value session.auto_start 0
+php_value session.gc_maxlifetime 21600
+php_value session.gc_divisor 500
+php_value session.gc_probability 1
+
+# http://bugs.php.net/bug.php?id=30766
+php_value mbstring.func_overload 0
</IfModule>
<FilesMatch "(\.inc|\~)$">
Deny from all
</FilesMatch>
+<IfModule mod_rewrite.c>
+RewriteEngine On
+RewriteRule ^favicon.ico$ skins/default/images/favicon.ico
+</IfModule>
+
Order deny,allow
Allow from all
CHANGELOG RoundCube Webmail
---------------------------
+- Fix mark popup in IE 7 (#1485369)
+- Fix line-break issue when copy & paste in Firefox (#1485425)
+- Fix autocomplete "unknown server error" (#1485637)
+- Fix STARTTLS before AUTH in SMTP connection (#1484883)
+- Support multiple quota values in QUOTAROOT resonse (#1485626)
+- Only abbreviate file name for IE < 7 browsers (#1485063)
+- Performance: allow setting imap rootdir and delimiter before connect (#1485172)
+- Fix sorting of folders with more than 2 levels (#1485569)
+- Fix search results page jumps in LDAP addressbook (#1485253)
+- Fix empty line before the signature in IE (#1485351)
+- Fix horizontal scrollbar in preview pane on IE (#1484633)
+- Add Robots meta tag in login page and installer (#1484846)
+- Added 'show_images' option, removed 'addrbook_show_images' (#1485597)
+- Option to check for new mails in all folders (#1484374)
+- Don't set client busy when checking for new messages (#1485276)
+- Allow UTF-8 folder names in config (#1485579)
+- Add junk_mbox option configuration in installer (#1485579)
+- Do serverside addressbook queries for autocompletion (#1485531)
+- Allow setting attachment col position in 'list_cols' option
+- Allow override 'list_cols' via skin (#1485577)
+- Fix 'cache' table cleanup on session destroy (#1485516)
+- Increase speed of session destroy and garbage clean up
+- Fix session timeout when DB server got clock skew (#1485490)
+- Fix handling of some malformed messages (#1484438)
+- Speed up raw message body handling
+- Better HTML entities conversion in html2text (#1485519)
+- Fix big memory consumption and speed up searching on servers without SORT capability
+- Fix setting locale to tr_TR, ku and az_AZ (#1485470)
+- Use SORT for searching on servers with SORT capability
+- Added message status filter
+- Fix empty file sending (#1485389)
+- Improved searching with many criterias (calling one SEARCH command)
+- Fix HTML editor initialization on IE (#1485304)
+- Add warning when switching editor mode from html to plain (#1485488)
+- Make identities list scrollable (#1485538)
+- Fix problem with numeric folder names (#1485527)
+- Added BYE response simple support to prevent from endless loops in imap.inc (#1483956)
+- Fix unread message unintentionally marked as read if read_when_deleted=true (#1485409)
+- Remove port number from SERVER_NAME in smtp_helo_host (#1485518)
+- Don't send disposition notification receipts for messages marked as 'read' (#1485523)
+- Added 'keep_alive' and 'min_keep_alive' options (#1485360)
+- Added option 'identities_level', removed 'multiple_identities'
+- Allow deleting identities when multiple_identities=false (#1485435)
+- Added option focus_on_new_message (#1485374)
+- Fix html2text class autoloading on Windows (#1485505)
+- Fix html signature formatting when identity save error occured (#1485426)
+- Add feedback and set busy when moving folder (#1485497)
+- Fix 'Empty' link visibility for some languages e.g. Slovak (#1485489)
+- Fix messages count bar overlapping (#1485270)
+- Fix adding signature in drafts compose mode (#1485484)
+- Fix iil_C_Sort() to support very long and/or divided responses (#1485283)
+- Fix matching case sensitivity when setting identity on reply (#1485480)
+- Prefer default identity on reply
+- Fix imap searching on ISMail server (#1485466)
+- Add css class for flagged messages (#1485464)
+- Write username instead of id in sendmail log (#1485477)
+- Fix htmlspecialchars() use for PHP version < 5.2.3 (#1485475)
+- Fix js keywords escaping in json_serialize() for IE/Opera (#1485472)
+- Added bin/killcache.php script (#1485434)
+- Add support for SJIS, GB2312, BIG5 in rc_detect_encoding()
+- Fix vCard file encoding detection for non-UTF-8 strings (#1485410)
+- Add 'skip_deleted' option in User Preferences (#1485445)
+- Minimize "inline" javascript scripts use (#1485433)
+- Fix css class setting for folders with names matching defined classes names (#1485355)
+- Fix race conditions when changing mailbox
+- Fix spellchecking when switching to html editor (#1485362)
+- Fix compose window width/height (#1485396)
+- Allow calling msgimport.sh/msgexport.sh from any directory (#1485431)
+- Localized filesize units (#1485340)
+- Better handling of "no identity" and "no email in identity" situations (#1485117)
+- Added 'mime_param_folding' option with possibility to choose long/non-ascii attachment names encoding eg. to be readable in MS Outlook/OE (#1485320)
+- Added "advanced options" feature in User Preferences
+- Fix unread counter when displaying cached massage in preview panel (#1485290)
+- Fix htmleditor spellchecking on MS Windows (#1485397)
+- Fix problem with non-ascii attachment names in Mail_mime (#1485267, #1485096)
+- Fix language autodetection (#1485401)
+- Fix button label in folders management (#1485405)
+- Fix collapsed folder not indicating unread msgs count of all subfolders (#1485403)
+- Fix handling of apostrophes in filenames decoded according to rfc2231
+
+RELEASE 0.2-BETA
+
+- Made config files location configurable (#1485215)
+- Reduced memory footprint when forwarding attachments (#1485345)
+- Allow and use spellcheck attribute for input/textarea fields (#1485060)
+- Added icons for forwarded/forwarded+replied messages (#1485257)
+- Added Reply-To to forwarded emails (#1485315)
+- Display progress message for folders create/delete/rename (#1485357)
+- Smart Tags and NOBR tag support in html messages (#1485363, #1485327)
+- Redesign of the identities settings (#1484042)
+- Add config option to disable creation/deletion of identities (#1484498)
+- Added 'sendmail_delay' option to restrict messages sending interval (#1484491)
+- Added vertical splitter for folders list resizing
+- Added possibility to view all headers in message view
+- Fixed splitter drag/resize on Opera (#1485170)
+- Fixed quota img height/width setting from template (#1484857)
+- Refactor drag & drop functionality. Don't rely on browser events anymore (#1484453)
+- Insert "virtual" folders in subscription list (#1484779)
+- Added link to open message in new window
+- Enable export of address book contacts as vCard
+- Add feature to import contacts from vcard files (#1326103)
+- Respect Content-Location headers in multipart/related messages according to RFC2110 (#1484946)
+- Allowed max. attachment size now indicated in compose screen (#1485030)
+- Also capture backspace key in list mode (#1484566)
+- Allow application/pgp parts to be displayed (#1484753)
+- Correctly handle options in mailto-links (#1485228)
+- Immediately save sort_col/sort_order in user prefs (#1485265)
+- Truncate very long (above 50 characters) attachment filenames when displaying
+- Allow to auto-detect client language if none set (#1484434)
+- Auto-detect the client timezone (user configurable)
+- Add RFC2231 header value continuations support for attachment filenames + hack for servers that not support that feature
+- Fix Reply-To header displaying (#1485314)
+- Mark form buttons that provide the most obvious operation (mainaction)
+- Added option 'quota_zero_as_unlimited' (#1484604)
+- Added PRE handling in html2text class (#1484740)
+- Added folder hierarchy collapsing
+- Added options to use syslog instead of log file (#1484850)
+- Added Logging & Debugging section in Installer
+- Fix In-Reply-To and References headers when composing saved draft message (#1485288)
+- Fix html message charset conversion for charsets with underline (#1485287)
+- Fix buttons status after contacts deletion (#1485233)
+- Fix escaping of To: and From: fields when building message body for reply or forward in the HTML editor (#1484904)
+- Use current mailbox name in template (#1485256)
+- Better fix for skipping untagged responses (#1485261)
+- Added pspell support patch by Kris Steinhoff (#1483960)
+- Enable spellchecker for HTML editor (#1485114)
+- Respect spellcheck_uri in tinyMCE spellchecker (#1484196)
+- Case insensitive contacts searching using PostgreSQL (#1485259)
+- Make default imap folders configurable for each user (#1485075)
+- Save outgoing mail to selectable folder (#1324581)
+- Fix hiding of mark menu when clicking th button again (#1484944)
+- Use long date format in print mode (#1485191)
+- Updated TinyMCE to version 3.1.0.1
+- Re-enable autocomplete attribute for login form (#1485211)
+- Check PERMANENTFLAGS before saving $MDNSent flag (#1484963, #1485163)
+- Added flag column on messages list (#1484623)
+- Patched Mail/MimePart.php (http://pear.php.net/bugs/bug.php?id=14232)
+- Allow trash/junk subfolders to be purged (#1485085)
+- Store compose parameters in session and redirect to a unique URL
+- Fixed CRAM-MD5 authentication (#1484819)
+- Fixed forwarding messages with one HTML attachment (#1484442)
+- Fixed encoding of message/rfc822 attachments and image/pjpeg handling (#1484914)
+- Added option to select skin in user preferences
+- Added option to configure displaying of attached images below the message body
+- Added option to display images in messages from known senders (#1484601)
+- User preferences grouped in more fieldsets
+- Fix corrupted MIME headers of messages in Sent folder (#1485111)
+- Fixed bug in MDB2 package: http://pear.php.net/bugs/bug.php?id=14124
+- Use keypress instead of keydown to select list's row (#1484816)
+- Don't call expunge and don't remove message row after message move if flag_for_deletion is set to true (#1485002)
+
+RELEASE 0.2-ALPHA
+
- Added option to disable autocompletion from selected LDAP address books (#1484922)
- TLS support in LDAP connections: 'use_tls' property (#1485104)
- Fixed removing messages from search set after deleting them (#1485106)
- Removed lines wrapping when displaying message
- Fixed month localization
- Changed codebase to PHP5 with autoloader
-
-RELEASE 0.1.1
-
-- Clear selection when selecting single item (#1484942)
-- Remove hard-coded image size in skin templates (#1484893)
-- Database schema improvements (dropped unnecessary indexes)
-- Fixed creating a new folder with a comma in its name (#1484681)
-- Fixed sorting of messages when default mailbox is empty (#1484317)
-- Improve message previewpane - less loading (#1484316)
-- Fixed login form autoompletion (#1484839)
-- Fixed virtuser_query option for mdb2 backend (#1484874)
-- Fixed attachment resoting from Drafts when message body was empty (#1484506)
-- Fixed usage of ob_gzhandler (#1484851)
-- Fixed message part window in IE6 (#1484610)
-- Fixed decoding of mime-encoded strings (#1484191)
-- Fixed some iconv/mb_string problems (#1484598)
-- Correctly quote mailbox name when using in URL (#1484313)
-- Fixed "headers already sent" errors (#1484860)
-
-RELEASE 0.1-STABLE
-
-- Added interactive installer script
-- Fix folder adding/renaming inspired by #1484800
-- Localize folder name in page title (#1484785)
-- Fix code using wrong variable name (#1484018)
-- Allow to send mail with BCC recipients only
-- condense TinyMCE toolbar down to one line, removing table buttons (#1484747)
-- Add function to mark the selected messages as read/unread (#1457360)
-- Also do charset decoding as suggested in RFC 2231 (fix #1484321)
-- Show message count in folder list and hint when creating a subfolder
-- Distinguish ssl and tls for imap connections (#1484667)
-- Added some charset aliases to fix typical mis-labelling (#1484565)
-- Remember decision to display images for a certain message during session (#1484754)
-- Truncate attachment filenames to 55 characters due to an IE bug (#1484757)
-- Make sending of read receipts configurable
-- Respect config when localize folder names (#1484707)
-- Also respect receipt and priority settings when re-opening a draft message
-- Remember search results (closes #1483883), patch by the_glu
-- Add Received header on outgoing mail
-- Upgrade to TinyMCE 2.1.3
-- Allow inserting image attachments into HTML messages while composing (#1484557)
-- Implement Message-Disposition-Notification (Receipts)
-- Fix overriding of session vars when register_globals is on (#1484670)
-- Fix bug with case-sensitive folder names (#1484245)
-- Don't create default folders by default
-- Fixed some potential security risks (audited by Andris)
-- Only show new messages if they match the current search (#1484176)
-- Switch to/from when searcing in Sent folder (#1484555)
-- Correctly read the References header (#1484646)
-- Unset old cookie before sending a new value (#1484639)
-- Correctly decode attachments when downloading them (#1484645 and #1484642)
-- Suppress IE errors when clearing attachments form (#1484356)
-- Log error when login fails due to auto_create_user turned off
-- Filter linked/imported CSS files (closes #1484056)
-- Improve message compose screen (closes #1484383)
-- Select next row after removing one from list (#1484387)
-
-RELEASE 0.1-RC2
-
-- Enable drag-&-dropping of folders to a new parent and allow to create subfolders (#1457344)
-- Suppress IE errors when clearing attachments form (#1484356)
-- Set preferences field in user table to NULL (#1484386)
-- Log error when login fails due to auto_create_user turned off
-- Filter linked/imported CSS files (closes #1484056)
-- Improve message compose screen (closes #1484383)
-- Select next row after removing one from list (#1484387)
-- Make smtp HELO/EHLO hostname configurable (#1484067)
-- IPv6 Compatability (#1484322), Patch #1484373
-- Unlock interface when message sending fails (#1484570)
-- Eval PHP code in template includes (if configured)
-- Show message when folder is empty. Mo more static text in table (#1484395)
-- Only display unread count in page title when new messages arrived
-- Fixed wrong delete button tooltip (#1483965)
-- Fixed charset encoding bug (#1484429)
-- Applied patch for LDAP version (#1484552)
-- Improved XHTML validation
-- Fix message list selection (#1484550)
-- Better fix lowercased usernames (#1484473)
-- Update pngbehavior Script as suggested in #1484490
-- Fixed moving/deleting messages when more than 1 is selected
-- Applied patch for LDAP contacts listing by Glen Ogilvie
-- Applied patch for more address fields in LDAP contacts (#1484402)
-- Add alternative for getallheaders() (fix #1484508)
-- Identify mailboxes case-sensitive
-- Sort mailbox list case-insensitive (closes #1484338)
-- Fix display of multipart messages from Apple Mail (closes #1484027)
-- Protect AJAX request from being fetched by a foreign site (XSS)
-- Make autocomplete for loginform configurable by the skin template
-- Fix compose function from address book (closes #1484426)
-- Added //IGNORE to iconv call (patch #1484420, closes #1484023)
-- Check if mbstring supports charset (#1484290 and #1484292)
-- Prefer iconv over mbstring (as suggested in #1484292)
-- Check filesize of template includes (#1484409)
-- Fixed bug with buttons not dimming/enabling properly after switching folders
-- Fixed compose window becoming unresponsive after saving a draft (#1484487)
-- Re-enabled "Back" button in compose window now that bug #1484487 is fixed
-- Fixed unresponsive interface issue when downloading attachments (#1484496)
-- Lowered status message time from 5 to 3 seconds to improve responsiveness
-- Raised .htaccess upload_max_filesize from 2M to 5M to differ from default php.ini
-- Increased "mailboxcontrols" mail.css width from 160 to 170px to fix non-english languages (#1484499)
-- Fix status message bug #1484464 with regard to #1484353
-- Fix address adding bug reported by David Koblas
-- Applied socket error patch by Thomas Mangin
-- Pass-by-reference workarround for PHP5 in sendmail.inc
-- Fixed buggy imap_root settings (closes #1484379)
-- Prevent default events on subject links (#1484399)
-- Use HTTP-POST requests for actions that change state
-
-RELEASE 0.1-RC1
-
-- Use global filters and bind username/ for Ldap searches (#1484159)
-- Hide quota display if imap server does not support it
-- Hide address groups if no LDAP servers configured
-- Add link to message subjects (closes #1484257)
-- Better SQL query for contact listing/search (closes #1484369)
-- Fixed marking as read in preview pane (closes #1484364)
-- CSS hack to display attachments correctly in IE6
-- Wrap message body text (closes #1484148)
-- LDAP access is back in address book (closes #1484087)
-- Added search function for contacts
-- New Template parsing and output encoding
-- Fixed bugs #1484119 and #1483978
-- Fixed message moving procedure (closes #1484308)
-- Fixed display of multiple attachments (closes #1466563)
-- Fixed check for new messages (closes #1484310)
-- List attachments without filename
-- New session authentication: Change sessid cookie when login, authentication with sessauth cookie is now configurable.
- Should close bugs #1483951 and #1484299
-- Correctly translate mailbox names (closes #1484276)
-- Quote e-mail address links (closes #1484300)
-- Updated PEAR::Mail_mime package
-- Accept single quotes for HTML attributes when modifying message body (thanks Jason)
-- Sanitize input for new users/identities (thanks Colin Alston)
-- Don't download HTML message parts
-- Convert HTML parts to plaintext if 'prefer_html' is off
-- Correctly parse message/rfc822 parts (closes #1484045)
-- Also use user_id for unique key in messages table (closes #1484074)
-- Hide contacts drop down on blur (closes #1484203)
-- Make entries in contacts drop down clickable
-- Turn off browser autocompletion on login page
-- Quote <? in text/html message parts
-- Hide border around radio buttons
-- Applied patch for attachment download by crichardson (closes #1484198)
-- Fixed bug in Postgres DB handling (closes #1484068)
-- Fixed bug of invalid calls to fetchRow() in rcube_db.inc (closes #1484280)
-- Fixed array_merge bug (closes #1484281)
-- Fixed flag for deletion in list view (closes #1484264)
-- Finally support semicolons as recipient separator (closes ##1484251)
-- Fixed message headers (subject) encoding
-- check if safe mode is on or not (closes #1484269)
-- Show "no subject" in message list if subject is missing (closes #1484243)
-- Solved page caching of message preview (closes #1484153)
-- Only use gzip compression if configured (closes #1484236)
-- Fixed priority selector issue (#1484150)
-- Fixed some CSS issues in default skin (closes #1484210 and #1484161)
-- Prevent from double quoting of numeric HTML character references (closes #1484253)
-- Fixed display of HTML message attachments (closes #1484178)
-- Applied patch for preview caching (closes #1484186)
-- Added error handling for attachment uploads
-- Use multibyte safe string functions where necessary (closes #1483988)
-- Applied security patch to validate the submitted host value (by Kees Cook)
-- Applied security patch to validate input values when deleting contacts (by Kees Cook)
-- Applied security patch that sanitizes emoticon paths when attaching them (by Kees Cook)
-- Applied a patch to more aggressively sanitize a HTML message
-- Visualize blocked images in HTML messages
-- Fixed wrong message listing when showing search results (closes #1484131)
-- Show remote images when opening HTML message part as attachment
-- Improve memory usage when sending mail (closes #1484098)
-- Mark messages as read once the preview is loaded (closes #1484132)
-- Include smtp final response in log (closes #1484081)
-- Corrected date string in sent message header (closes #1484125)
-- Correclty choose "To" column in sent and draft mailboxes (closes #1483943)
-- Changed srong tooltips for message browse buttons (closes #1483930)
-- Fixed signature delimeter character to be standard (Bug #1484035)
-- Fixed XSS vulnerability (Bug #1484109)
-- Remove newlines from mail headers (Bug #1484031)
-- Selection issues when moving/deleting (Bug #1484044)
-- Applied patch of Clement Moulin for imap host auto-selection
-- ISO-encode IMAP password for plaintext login (Bugs #1483977 & #1483886)
-- Fixed folder name encoding in subscription list (Bug #1484113)
-- Fixed JS errors in identity list (Bug #1484120)
-- Translate foldernames in folder form (closes #1484113)
-- Added first and last buttons to message list, address book
- and message detail
-- Pressing Shift-Del bypasses Trash folder
-- Enable purge command for Junk folder
-- Fetch all aliases if virtuser_query is used instead
-- Re-enabled multi select of contacts (Bug #1484017)
-- Enable contact editing right after creation (Bug #1459641)
-- Correct UTF-7 to UTF-8 conversion if mbstring is not available
-- Fixed IMAP fetch of message body (Bug #1484019)
-- Fixed safe_mode problems (Bug #1418381)
-- Fixed wrong header encoding (Bug #1483976)
-- Made automatic draft saving configurable
-- Fixed JS bug when renaming folders (Bug #1483989)
-- Added quota display as image (by Brett Patterson)
-- Corrected creation of a message-id
-- New indentation for quoted message text
-- Improved HTML validity
-- Fixed URL character set (Ticket #1445501)
-- Fixed saving of contact into MySQL from LDAP query results (Ticket #1483820)
-- Fixed folder renaming: unsubscribe before rename (Bug #1483920)
-- Finalized new message parsing (+ chaching)
-- Fixed wrong usage of mbstring (Bug #1462439)
-- Set default spelling language (Ticket #1483938)
-- Added support for Nox Spell Server
-- Re-built message parsing (Bug #1327068)
- Now based on the message structure delivered by the IMAP server.
-- Fixed some XSS and SQL injection issues
-- Fixed charset problems with folder renaming
-
* .htaccess support allowing overrides for DirectoryIndex
* PHP Version 5.2 or greater including
- PCRE (perl compatible regular expression)
+ - DOM (xml document object model)
- Libiconv
- Multibyte String (mbstring)
- Mcrypt (supporting Triple DES)
- Database driver for either MySQL, Postgres or SQLite
* php.ini options:
- error_reporting E_ALL & ~E_NOTICE (or lower)
- - file_uploads on (for attachment upload features)
- memory_limit (increase as suitable to support large attachments)
- - session.auto_start needs to be off/0
+ - file_uploads enabled (for attachment upload features)
+ - session.auto_start disabled
+ - zend.ze1_compatibility_mode disabled
* The PEAR framework with the following packages installed
- - MDB2
- - Mail_Mime (1.3.1)
- - Net_SMTP (1.2.10)
-* PHP compiled with Open SSL to connect to IMAPS and to use the spell checker
+ - MDB2 (2.4.1)
+ - Mail_Mime (1.5.2)
+ - Net_SMTP (1.2.11)
+* PHP compiled with OpenSSL to connect to IMAPS and to use the spell checker
* A MySQL or PostgreSQL database engine or the SQLite extension for PHP
* One of the above databases with permission to create tables
* An SMTP server or PHP configured for mail delivery
DATABASE SETUP
==============
-* MySQL 4.0.x
--------------
+* MySQL
+-------
Setting up the mysql database can be done by creating an empty database,
importing the table layout and granting the proper permissions to the
roundcube user. Here is an example of that procedure:
> GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost
IDENTIFIED BY 'password';
> quit
-# mysql roundcubemail < SQL/mysql.initial.sql
-
-
-* MySQL 4.1.x/5.x
------------------
-For MySQL version 4.1 and up, it's recommended to create the database for
-RoundCube with utf-8 charset. Here's an example of the init procedure:
-
-# mysql
-> CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-> GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost
- IDENTIFIED BY 'password';
-> quit
-# mysql roundcubemail < SQL/mysql5.initial.sql
+# mysql roundcubemail < SQL/mysql.initial.sql
-Note: 'password' is the master password for the roundcube user. It is strongly
+Note 1: 'password' is the master password for the roundcube user. It is strongly
recommended you replace this with a more secure password. Please keep in
mind: You need to specify this password later in 'config/db.inc.php'.
+Note 2: For MySQL version 4.1 and up, it's recommended to create the database for
+RoundCube with utf-8 charset.
+
* SQLite
--------
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
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
+the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
The precise terms and conditions for copying, distribution and
modification follow.
-\f
+
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
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.)
-\f
+
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
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.
-\f
+
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
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
-\f
+
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
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
RoundCube Webmail (http://roundcube.net)
-=================
+
Introduction:
-------------
RoundCube Webmail is a browser-based multilingual IMAP client with an
application-like user interface. It provides full functionality you expect
-from an e-mail client, including MIME support, address book, folder manipulation,
+from an e-mail client, including MIME support, address book, folder management,
message searching and spell checking. RoundCube Webmail is written in PHP and
-requires the MySQL or Postgres database. The user interface is fully skinnable
-using XHTML and CSS 2.
+requires the MySQL, PostgreSQL or SQLite database. The user interface is fully
+skinnable using XHTML and CSS 2.
This project is meant to be a modern webmail solution which is easy to
-install/configure and that runs on a standard PHP plus MySQL or Postgres
+install/configure and that runs on a standard PHP plus MySQL, PostgreSQL or SQLite
configuration. It includes open-source classes/libraries like PEAR
(http://pear.php.net) and the IMAP wrapper from IlohaMail
(http://www.ilohamail.org).
-------------
For detailed instructions on how to install RoundCube webmail on your server,
please refer to the INSTALL document in the same directory as this document.
-Please carefully read the REQUIREMENTS section of the INSTALL instructions.
+Please carefully read the REQUIREMENTS section of the INSTALL instructions.
-Licensing:
+Licensing:
----------
This product is distributed under the GPL. Please read through the file
LICENSE for more information about our license.
-How it works:
+Contribution:
-------------
-The main authority for the RoundCube access is the IMAP server. If
-'auto_create_user' is set to TRUE in config/main.inc.php a new record in the
-user table will be created once the IMAP login succeeded. This user record does
-not store a password, it's just used to assign identities, contacts and cache
-records. If you have 'auto_create_user' set to FALSE only IMAP logins which
-already have a corresponding entry in the user's table (username and hostname)
-will be allowed.
-
-Read more at http://trac.roundcube.net/wiki/Howto_Config
-and http://trac.roundcube.net/wiki/Dev_Docs
+Want to help make RoundCube the best webmail solution ever?
+RoundCube is open source software. Our developers and contributors all
+are volunteers and we're always looking for new additions and resources.
+For more information visit http://roundcube.net/contribute
Contact:
You're always welcome to send a message to the project admin:
hello@roundcube.net
-
-
CREATE TABLE [dbo].[cache] (\r
[cache_id] [int] IDENTITY (1, 1) NOT NULL ,\r
[user_id] [int] NOT NULL ,\r
- [session_id] [varchar] (32) COLLATE Latin1_General_CI_AI NULL ,\r
[cache_key] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,\r
[created] [datetime] NOT NULL ,\r
[data] [text] COLLATE Latin1_General_CI_AI NOT NULL \r
[email] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,\r
[reply-to] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,\r
[bcc] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,\r
- [signature] [text] COLLATE Latin1_General_CI_AI NOT NULL \r
+ [signature] [text] COLLATE Latin1_General_CI_AI NOT NULL, \r
+ [html_signature] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL\r
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
GO\r
\r
[alias] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,\r
[created] [datetime] NOT NULL ,\r
[last_login] [datetime] NULL ,\r
- [language] [varchar] (5) COLLATE Latin1_General_CI_AI NOT NULL ,\r
+ [language] [varchar] (5) COLLATE Latin1_General_CI_AI NULL ,\r
[preferences] [text] COLLATE Latin1_General_CI_AI NOT NULL \r
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
GO\r
\r
ALTER TABLE [dbo].[cache] ADD \r
CONSTRAINT [DF_cache_user_id] DEFAULT ('0') FOR [user_id],\r
- CONSTRAINT [DF_cache_session_id] DEFAULT (null) FOR [session_id],\r
CONSTRAINT [DF_cache_cache_key] DEFAULT ('') FOR [cache_key],\r
CONSTRAINT [DF_cache_created] DEFAULT (getdate()) FOR [created]\r
GO\r
CREATE INDEX [IX_cache_cache_key] ON [dbo].[cache]([cache_key]) ON [PRIMARY]\r
GO\r
\r
- CREATE INDEX [IX_cache_session_id] ON [dbo].[cache]([session_id]) ON [PRIMARY]\r
+ CREATE INDEX [IX_cache_created] ON [dbo].[cache]([created]) ON [PRIMARY]\r
GO\r
\r
ALTER TABLE [dbo].[contacts] ADD \r
CREATE INDEX [IX_messages_cache_key] ON [dbo].[messages]([cache_key]) ON [PRIMARY]\r
GO\r
\r
- CREATE INDEX [IX_messages_idx] ON [dbo].[messages]([idx]) ON [PRIMARY]\r
+ CREATE INDEX [IX_messages_uid] ON [dbo].[messages]([uid]) ON [PRIMARY]\r
GO\r
\r
- CREATE INDEX [IX_messages_uid] ON [dbo].[messages]([uid]) ON [PRIMARY]\r
+ CREATE INDEX [IX_messages_created] ON [dbo].[messages]([created]) ON [PRIMARY]\r
GO\r
\r
ALTER TABLE [dbo].[session] ADD \r
CONSTRAINT [DF_session_ip] DEFAULT ('') FOR [ip]\r
GO\r
\r
+ CREATE INDEX [IX_session_changed] ON [dbo].[session]([changed]) ON [PRIMARY]\r
+GO\r
+\r
ALTER TABLE [dbo].[users] ADD \r
CONSTRAINT [DF_users_username] DEFAULT ('') FOR [username],\r
CONSTRAINT [DF_users_mail_host] DEFAULT ('') FOR [mail_host],\r
CONSTRAINT [DF_users_alias] DEFAULT ('') FOR [alias],\r
CONSTRAINT [DF_users_created] DEFAULT (getdate()) FOR [created],\r
- CONSTRAINT [DF_users_language] DEFAULT ('en') FOR [language]\r
+GO\r
+\r
+ CREATE INDEX [IX_users_username] ON [dbo].[users]([username]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [IX_users_alias] ON [dbo].[users]([alias]) ON [PRIMARY]\r
GO\r
\r
-- RoundCube Webmail initial database structure
--- Version 0.1
---
+-- Version 0.2
-- --------------------------------------------------------
---
--- Table structure for table `cache`
---
+/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
-CREATE TABLE `cache` (
- `cache_id` int(10) unsigned NOT NULL auto_increment,
- `user_id` int(10) unsigned NOT NULL default '0',
- `session_id` varchar(40) default NULL,
- `cache_key` varchar(128) NOT NULL default '',
- `created` datetime NOT NULL default '0000-00-00 00:00:00',
- `data` longtext NOT NULL,
- PRIMARY KEY (`cache_id`),
- INDEX `user_cache_index` (`user_id`,`cache_key`)
-);
--- --------------------------------------------------------
+-- Table structure for table `session`
---
--- Table structure for table `contacts`
---
+CREATE TABLE `session` (
+ `sess_id` varchar(40) NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `ip` varchar(40) NOT NULL,
+ `vars` text NOT NULL,
+ PRIMARY KEY(`sess_id`),
+ INDEX `changed_index` (`changed`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-CREATE TABLE `contacts` (
- `contact_id` int(10) unsigned NOT NULL auto_increment,
- `user_id` int(10) unsigned NOT NULL default '0',
- `changed` datetime NOT NULL default '0000-00-00 00:00:00',
- `del` tinyint(1) NOT NULL default '0',
- `name` varchar(128) NOT NULL default '',
- `email` varchar(128) NOT NULL default '',
- `firstname` varchar(128) NOT NULL default '',
- `surname` varchar(128) NOT NULL default '',
- `vcard` text NOT NULL,
- PRIMARY KEY (`contact_id`),
- KEY `user_id` (`user_id`)
-);
--- --------------------------------------------------------
+-- Table structure for table `users`
---
--- Table structure for table `identities`
---
+CREATE TABLE `users` (
+ `user_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `username` varchar(128) NOT NULL,
+ `mail_host` varchar(128) NOT NULL,
+ `alias` varchar(128) NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `last_login` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `language` varchar(5),
+ `preferences` text,
+ PRIMARY KEY(`user_id`),
+ INDEX `username_index` (`username`),
+ INDEX `alias_index` (`alias`)
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-CREATE TABLE `identities` (
- `identity_id` int(10) unsigned NOT NULL auto_increment,
- `user_id` int(10) unsigned NOT NULL default '0',
- `del` tinyint(1) NOT NULL default '0',
- `standard` tinyint(1) NOT NULL default '0',
- `name` varchar(128) NOT NULL,
- `organization` varchar(128) NOT NULL default '',
- `email` varchar(128) NOT NULL,
- `reply-to` varchar(128) NOT NULL default '',
- `bcc` varchar(128) NOT NULL default '',
- `signature` text NOT NULL default '',
- `html_signature` tinyint(1) NOT NULL default '0',
- PRIMARY KEY (`identity_id`),
- KEY `user_id` (`user_id`)
-);
--- --------------------------------------------------------
+-- Table structure for table `messages`
---
--- Table structure for table `session`
---
+CREATE TABLE `messages` (
+ `message_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ `del` tinyint(1) NOT NULL DEFAULT '0',
+ `cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `idx` int(11) UNSIGNED NOT NULL DEFAULT '0',
+ `uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
+ `subject` varchar(255) NOT NULL,
+ `from` varchar(255) NOT NULL,
+ `to` varchar(255) NOT NULL,
+ `cc` varchar(255) NOT NULL,
+ `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `size` int(11) UNSIGNED NOT NULL DEFAULT '0',
+ `headers` text NOT NULL,
+ `structure` text,
+ PRIMARY KEY(`message_id`),
+ INDEX `created_index` (`created`),
+ UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`),
+ CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`)
+ /*!40008
+ ON DELETE CASCADE
+ ON UPDATE CASCADE */
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-CREATE TABLE `session` (
- `sess_id` varchar(40) NOT NULL default '',
- `created` datetime NOT NULL default '0000-00-00 00:00:00',
- `changed` datetime NOT NULL default '0000-00-00 00:00:00',
- `ip` VARCHAR(40) NOT NULL default '',
- `vars` text NOT NULL,
- PRIMARY KEY (`sess_id`)
-);
--- --------------------------------------------------------
+-- Table structure for table `cache`
---
--- Table structure for table `users`
---
+CREATE TABLE `cache` (
+ `cache_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL ,
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `data` longtext NOT NULL,
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ PRIMARY KEY(`cache_id`),
+ INDEX `created_index` (`created`),
+ INDEX `user_cache_index` (`user_id`,`cache_key`),
+ CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`)
+ /*!40008
+ ON DELETE CASCADE
+ ON UPDATE CASCADE */
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-CREATE TABLE `users` (
- `user_id` int(10) unsigned NOT NULL auto_increment,
- `username` varchar(128) NOT NULL default '',
- `mail_host` varchar(128) NOT NULL default '',
- `alias` varchar(128) NOT NULL default '',
- `created` datetime NOT NULL default '0000-00-00 00:00:00',
- `last_login` datetime NOT NULL default '0000-00-00 00:00:00',
- `language` varchar(5) NOT NULL default 'en',
- `preferences` text,
- PRIMARY KEY (`user_id`),
- INDEX `username_index` (`username`),
- INDEX `alias_index` (`alias`)
-);
--- --------------------------------------------------------
+-- Table structure for table `contacts`
---
--- Table structure for table `messages`
---
+CREATE TABLE `contacts` (
+ `contact_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `del` tinyint(1) NOT NULL DEFAULT '0',
+ `name` varchar(128) NOT NULL,
+ `email` varchar(128) NOT NULL,
+ `firstname` varchar(128) NOT NULL,
+ `surname` varchar(128) NOT NULL,
+ `vcard` text NULL,
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ PRIMARY KEY(`contact_id`),
+ CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`)
+ /*!40008
+ ON DELETE CASCADE
+ ON UPDATE CASCADE */
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-CREATE TABLE `messages` (
- `message_id` int(11) unsigned NOT NULL auto_increment,
- `user_id` int(11) unsigned NOT NULL default '0',
- `del` tinyint(1) NOT NULL default '0',
- `cache_key` varchar(128) NOT NULL default '',
- `created` datetime NOT NULL default '0000-00-00 00:00:00',
- `idx` int(11) unsigned NOT NULL default '0',
- `uid` int(11) unsigned NOT NULL default '0',
- `subject` varchar(255) NOT NULL default '',
- `from` varchar(255) NOT NULL default '',
- `to` varchar(255) NOT NULL default '',
- `cc` varchar(255) NOT NULL default '',
- `date` datetime NOT NULL default '0000-00-00 00:00:00',
- `size` int(11) unsigned NOT NULL default '0',
- `headers` text NOT NULL,
- `structure` text,
- PRIMARY KEY (`message_id`),
- UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`)
-);
+-- Table structure for table `identities`
+CREATE TABLE `identities` (
+ `identity_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `del` tinyint(1) NOT NULL DEFAULT '0',
+ `standard` tinyint(1) NOT NULL DEFAULT '0',
+ `name` varchar(128) NOT NULL,
+ `organization` varchar(128) NOT NULL DEFAULT '',
+ `email` varchar(128) NOT NULL,
+ `reply-to` varchar(128) NOT NULL DEFAULT '',
+ `bcc` varchar(128) NOT NULL DEFAULT '',
+ `signature` text,
+ `html_signature` tinyint(1) NOT NULL DEFAULT '0',
+ `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
+ PRIMARY KEY(`identity_id`),
+ CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
+ REFERENCES `users`(`user_id`)
+ /*!40008
+ ON DELETE CASCADE
+ ON UPDATE CASCADE */
+) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
+
+
+/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
-- Updates from version 0.1.1
ALTER TABLE `identities`
- MODIFY `signature` text NOT NULL DEFAULT '',
+ MODIFY `signature` text,
MODIFY `bcc` varchar(128) NOT NULL DEFAULT '',
MODIFY `reply-to` varchar(128) NOT NULL DEFAULT '',
MODIFY `organization` varchar(128) NOT NULL DEFAULT '',
MODIFY `name` varchar(128) NOT NULL,
MODIFY `email` varchar(128) NOT NULL;
+
+-- Updates from version 0.2-alpha
+
+ALTER TABLE `messages`
+ ADD INDEX `created_index` (`created`);
+
+-- Updates from version 0.2-beta (InnoDB only)
+
+ALTER TABLE `cache`
+ DROP `session_id`;
+
+ALTER TABLE `session`
+ ADD INDEX `changed_index` (`changed`);
+
+ALTER TABLE `cache`
+ ADD INDEX `created_index` (`created`);
+
+ALTER TABLE `users`
+ CHANGE `language` `language` varchar(5);
+++ /dev/null
--- RoundCube Webmail initial database structure
--- Version 0.1
-
--- --------------------------------------------------------
-
-SET FOREIGN_KEY_CHECKS=0;
-
-
--- Table structure for table `session`
-
-CREATE TABLE `session` (
- `sess_id` varchar(40) NOT NULL,
- `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `ip` varchar(40) NOT NULL,
- `vars` text NOT NULL,
- PRIMARY KEY(`sess_id`)
-) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
-
-
--- Table structure for table `users`
-
-CREATE TABLE `users` (
- `user_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
- `username` varchar(128) NOT NULL,
- `mail_host` varchar(128) NOT NULL,
- `alias` varchar(128) NOT NULL,
- `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `last_login` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `language` varchar(5) NOT NULL DEFAULT 'en',
- `preferences` text,
- PRIMARY KEY(`user_id`),
- INDEX `username_index` (`username`),
- INDEX `alias_index` (`alias`)
-) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
-
-
--- Table structure for table `messages`
-
-CREATE TABLE `messages` (
- `message_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
- `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
- `del` tinyint(1) NOT NULL DEFAULT '0',
- `cache_key` varchar(128) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
- `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `idx` int(11) UNSIGNED NOT NULL DEFAULT '0',
- `uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
- `subject` varchar(255) NOT NULL,
- `from` varchar(255) NOT NULL,
- `to` varchar(255) NOT NULL,
- `cc` varchar(255) NOT NULL,
- `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `size` int(11) UNSIGNED NOT NULL DEFAULT '0',
- `headers` text NOT NULL,
- `structure` text,
- PRIMARY KEY(`message_id`),
- UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`),
- CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
- REFERENCES `users`(`user_id`)
- ON DELETE CASCADE
- ON UPDATE CASCADE
-) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
-
-
--- Table structure for table `cache`
-
-CREATE TABLE `cache` (
- `cache_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
- `session_id` varchar(40) CHARACTER SET ascii COLLATE ascii_general_ci,
- `cache_key` varchar(128) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
- `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `data` longtext NOT NULL,
- `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
- PRIMARY KEY(`cache_id`),
- INDEX `user_cache_index` (`user_id`,`cache_key`),
- CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
- REFERENCES `users`(`user_id`)
- ON DELETE CASCADE
- ON UPDATE CASCADE
-) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
-
-
--- Table structure for table `contacts`
-
-CREATE TABLE `contacts` (
- `contact_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
- `changed` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
- `del` tinyint(1) NOT NULL DEFAULT '0',
- `name` varchar(128) NOT NULL,
- `email` varchar(128) NOT NULL,
- `firstname` varchar(128) NOT NULL,
- `surname` varchar(128) NOT NULL,
- `vcard` text NULL,
- `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
- PRIMARY KEY(`contact_id`),
- CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
- REFERENCES `users`(`user_id`)
- ON DELETE CASCADE
- ON UPDATE CASCADE
-) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
-
-
--- Table structure for table `identities`
-
-CREATE TABLE `identities` (
- `identity_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
- `del` tinyint(1) NOT NULL DEFAULT '0',
- `standard` tinyint(1) NOT NULL DEFAULT '0',
- `name` varchar(128) NOT NULL,
- `organization` varchar(128) NOT NULL DEFAULT '',
- `email` varchar(128) NOT NULL,
- `reply-to` varchar(128) NOT NULL DEFAULT '',
- `bcc` varchar(128) NOT NULL DEFAULT '',
- `signature` text NOT NULL DEFAULT '',
- `html_signature` tinyint(1) NOT NULL DEFAULT '0',
- `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
- PRIMARY KEY(`identity_id`),
- CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
- REFERENCES `users`(`user_id`)
- ON DELETE CASCADE
- ON UPDATE CASCADE
-) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
-
-
-SET FOREIGN_KEY_CHECKS=1;
alias character varying(128) DEFAULT ''::character varying NOT NULL,
created timestamp with time zone DEFAULT now() NOT NULL,
last_login timestamp with time zone DEFAULT now() NOT NULL,
- "language" character varying(5) DEFAULT 'en'::character varying NOT NULL,
+ "language" character varying(5),
preferences text DEFAULT ''::text NOT NULL
);
vars text NOT NULL
);
+CREATE INDEX session_changed_idx ON session (changed);
--
CREATE TABLE identities (
identity_id integer DEFAULT nextval('identity_ids'::text) PRIMARY KEY,
user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
- del integer DEFAULT 0 NOT NULL,
- standard integer DEFAULT 0 NOT NULL,
+ del smallint DEFAULT 0 NOT NULL,
+ standard smallint DEFAULT 0 NOT NULL,
name character varying(128) NOT NULL,
organization character varying(128),
email character varying(128) NOT NULL,
contact_id integer DEFAULT nextval('contact_ids'::text) PRIMARY KEY,
user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
changed timestamp with time zone DEFAULT now() NOT NULL,
- del integer DEFAULT 0 NOT NULL,
+ del smallint DEFAULT 0 NOT NULL,
name character varying(128) DEFAULT ''::character varying NOT NULL,
email character varying(128) DEFAULT ''::character varying NOT NULL,
firstname character varying(128) DEFAULT ''::character varying NOT NULL,
CREATE TABLE "cache" (
cache_id integer DEFAULT nextval('cache_ids'::text) PRIMARY KEY,
user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
- session_id character varying(40) REFERENCES "session" (sess_id),
cache_key character varying(128) DEFAULT ''::character varying NOT NULL,
created timestamp with time zone DEFAULT now() NOT NULL,
data text NOT NULL
);
CREATE INDEX cache_user_id_idx ON "cache" (user_id, cache_key);
+CREATE INDEX cache_created_idx ON "cache" (created);
--
-- Sequence "message_ids"
-- Name: messages; Type: TABLE; Schema: public; Owner: postgres
--
-CREATE TABLE "messages" (
+CREATE TABLE messages (
message_id integer DEFAULT nextval('message_ids'::text) PRIMARY KEY,
user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
- del integer DEFAULT 0 NOT NULL,
+ del smallint DEFAULT 0 NOT NULL,
cache_key character varying(128) DEFAULT ''::character varying NOT NULL,
created timestamp with time zone DEFAULT now() NOT NULL,
idx integer DEFAULT 0 NOT NULL,
structure text
);
-ALTER TABLE "messages" ADD UNIQUE (user_id, cache_key, uid);
+ALTER TABLE messages ADD UNIQUE (user_id, cache_key, uid);
+CREATE INDEX messages_created_idx ON messages (created);
ALTER TABLE contacts ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE cache DROP CONSTRAINT cache_user_id_fkey;
ALTER TABLE cache ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
+
+-- Updates from version 0.2-alpha
+
+CREATE INDEX messages_created_idx ON messages (created);
+
+-- Updates from version 0.2-beta
+
+ALTER TABLE cache DROP session_id;
+
+CREATE INDEX session_changed_idx ON session (changed);
+CREATE INDEX cache_created_idx ON "cache" (created);
+
+ALTER TABLE users ALTER "language" DROP NOT NULL;
+ALTER TABLE users ALTER "language" DROP DEFAULT;
+
+ALTER TABLE identities ALTER del TYPE smallint;
+ALTER TABLE identities ALTER standard TYPE smallint;
+ALTER TABLE contacts ALTER del TYPE smallint;
+ALTER TABLE messages ALTER del TYPE smallint;
CREATE TABLE cache (
cache_id integer NOT NULL PRIMARY KEY,
user_id integer NOT NULL default 0,
- session_id varchar(40) default NULL,
cache_key varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
data longtext NOT NULL
);
CREATE INDEX ix_cache_user_cache_key ON cache(user_id, cache_key);
+CREATE INDEX ix_cache_created ON cache(created);
-- --------------------------------------------------------
alias varchar(128) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
last_login datetime NOT NULL default '0000-00-00 00:00:00',
- language varchar(5) NOT NULL default 'en',
+ language varchar(5),
preferences text NOT NULL default ''
);
vars text NOT NULL
);
+CREATE INDEX ix_session_changed ON session (changed);
-- --------------------------------------------------------
);
CREATE INDEX ix_messages_user_cache_uid ON messages(user_id,cache_key,uid);
+CREATE INDEX ix_messages_created ON messages (created);
CREATE INDEX ix_users_username ON users(username);
CREATE INDEX ix_users_alias ON users(alias);
+
+-- Updates from version 0.2-alpha
+
+CREATE INDEX ix_messages_created ON messages (created);
+
+-- Updates from version 0.2-beta
+
+CREATE INDEX ix_session_changed ON session (changed);
+CREATE INDEX ix_cache_created ON cache (created);
-UPDATE instructions
-===================
+UPGRADING instructions
+======================
First you should remove all subfolders from /program/localization/
because most language codes have changed in 0.2-alpha. This way you
Then follow these instructions if upgrading from a previous version
of RoundCube Webmail.
+1. Replace index.php and all files in
+ - ./bin/
+ - ./SQL/
+ - ./program/
+ - ./installer/
+ - ./skins/default/
+2. Run ./bin/update.sh from the commandline OR
+ open http://url-to-roundcube/installer/ in a browser. To enable
+ the latter one, you have to temporary set 'enable_installer' to true
+ in your local config/main.inc.php file.
+3. Let the update script/installer check your configuration and
+ update your config files as suggested by the updater.
+4. Run all commands in ./SQL/[yourdbtype].update.sql that are superscribed
+ with the currently installed version number.
+5. Make sure 'enable_installer' is set to false again.
+
+
+For manually upgrading your RoundCube installation follow the instructions
+that match the currently installed version:
+
+from version 0.2-alpha
+----------------------------------------
+* replace index.php
+* replace all files in folder /bin/
+* replace all files in folder /program/
+* replace all files in folder /installer/
+* replace all files in folder /skins/default/
+* run all commands in SQL/[yourdbtype].update.sql
+ below the line "-- Updates from version 0.2-alpha"
+* check the config/main.inc.php.dist for new configuration
+ options and add them to your config
+ WARNING: 'skin_path' option was replaced by 'skin' option
+* WARNING: 'db_backend' option has been removed, now only
+ PEAR::MDB2 driver is supported
+
+
from version 0.1.1
----------------------------------------
* replace index.php
<?php
+/*
-define('INSTALL_PATH', realpath('./../') . '/');
-require INSTALL_PATH.'program/include/iniset.php';
+ +-----------------------------------------------------------------------+
+ | bin/html2text.php |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Convert HTML message to plain text |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com> |
+ +-----------------------------------------------------------------------+
-$converter = new html2text($HTTP_RAW_POST_DATA);
+ $Id: html2text.php 2187 2008-12-24 14:19:27Z thomasb $
-header('Content-Type: text/plain; charset=UTF-8');
-print html_entity_decode($converter->get_text(), ENT_COMPAT, 'UTF-8');
+*/
+
+define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/');
+require INSTALL_PATH . 'program/include/iniset.php';
+
+$RCMAIL = rcmail::get_instance();
+
+if (!empty($RCMAIL->user->ID)) {
+ $converter = new html2text($HTTP_RAW_POST_DATA);
+
+ header('Content-Type: text/plain; charset=UTF-8');
+ print trim($converter->get_text());
+}
+else {
+ header("HTTP/1.0 403 Forbidden");
+ echo "Requires a valid user session";
+}
?>
--- /dev/null
+<?php
+/*
+
+ +-----------------------------------------------------------------------+
+ | bin/killcache.php |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Delete rows from cache and messages tables |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Dennis P. Nikolaenko <dennis@nikolaenko.ru> |
+ +-----------------------------------------------------------------------+
+
+ $Id: killcache.php 1955 2008-10-07 19:11:06Z alec $
+
+*/
+
+define('INSTALL_PATH', realpath(dirname(__FILE__).'/..') . '/');
+require INSTALL_PATH.'program/include/iniset.php';
+
+$config = new rcube_config();
+
+// don't allow public access if not in devel_mode
+if (!$config->get('devel_mode') && $_SERVER['REMOTE_ADDR']) {
+ header("HTTP/1.0 401 Access denied");
+ die("Access denied!");
+}
+
+
+$dbh =& MDB2::factory($config->get('db_dsnw'), $options);
+if (PEAR::isError($dbh)) {
+ exit($mdb2->getMessage());
+}
+
+//TODO: transaction here (if supported by DB) would be a good thing
+$res =& $dbh->exec("DELETE FROM cache");
+if (PEAR::isError($res)) {
+ $dbh->disconnect();
+ exit($res->getMessage());
+};
+
+$res =& $dbh->exec("DELETE FROM messages");
+if (PEAR::isError($res)) {
+ $dbh->disconnect();
+ exit($res->getMessage());
+};
+
+echo "Cache cleared\n";
+
+$dbh->disconnect();
+
+?>
/*
+-----------------------------------------------------------------------+
- | program/bin/modcss.php |
+ | bin/modcss.php |
| |
| This file is part of the RoundCube Webmail client |
- | Copyright (C) 2007, RoundCube Dev. - Switzerland |
+ | Copyright (C) 2007-2008, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: $
+ $Id: modcss.php 2187 2008-12-24 14:19:27Z thomasb $
*/
-define('INSTALL_PATH', realpath('./../') . '/');
-require INSTALL_PATH.'program/include/iniset.php';
+define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/');
+require INSTALL_PATH . 'program/include/iniset.php';
+
+$RCMAIL = rcmail::get_instance();
$source = "";
-if ($url = preg_replace('/[^a-z0-9.-_\?\$&=%]/i', '', $_GET['u']))
+if (!empty($RCMAIL->user->ID) && ($url = preg_replace('/[^a-z0-9.-_\?\$&=%]/i', '', $_GET['u'])))
{
$a_uri = parse_url($url);
$port = $a_uri['port'] ? $a_uri['port'] : 80;
header("Content-Type: text/css");
echo rcmail_mod_css_styles($source, preg_replace('/[^a-z0-9]/i', '', $_GET['c']), $url);
}
-else
+else {
header("HTTP/1.0 404 Not Found");
+ echo "Requires a valid user session and source url";
+}
?>
-#!/usr/bin/php -qC
+#!/usr/bin/php
<?php
-define('INSTALL_PATH', preg_replace('/bin\/$/', '', getcwd()) . '/');
+define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' );
ini_set('memory_limit', -1);
require_once INSTALL_PATH.'program/include/iniset.php';
print "Usage: msgexport -h imap-host -u user-name -m mailbox name\n";
print "--host IMAP host\n";
print "--user IMAP user name\n";
- print "--mbox Mailbox/folder name\n";
- print "--file Mailbox/folder name\n";
+ print "--mbox Folder name, set to '*' for all\n";
+ print "--file Output file\n";
}
function vputs($str)
vputs(sprintf("%3d%% [%-51s] %d/%d\033[K\r", $percent, @str_repeat('=', $percent / 2) . '>', $pos, $max));
}
+function export_mailbox($mbox, $filename)
+{
+ global $IMAP;
+
+ $IMAP->set_mailbox($mbox);
+
+ vputs("Getting message list of {$mbox}...");
+ vputs($IMAP->messagecount()." messages\n");
+
+ if ($filename)
+ {
+ if (!($out = fopen($filename, 'w')))
+ {
+ vputs("Cannot write to output file\n");
+ return;
+ }
+ vputs("Writing to $filename\n");
+ }
+ else
+ $out = STDOUT;
+
+ for ($count = $IMAP->messagecount(), $i=1; $i <= $count; $i++)
+ {
+ $headers = $IMAP->get_headers($i, null, false);
+ $from = current($IMAP->decode_address_list($headers->from, 1, false));
+
+ fwrite($out, sprintf("From %s %s UID %d\n", $from['mailto'], $headers->date, $headers->uid));
+ fwrite($out, iil_C_FetchPartHeader($IMAP->conn, $IMAP->mailbox, $i, null));
+ fwrite($out, iil_C_HandlePartBody($IMAP->conn, $IMAP->mailbox, $i, null, 1));
+ fwrite($out, "\n\n\n");
+
+ progress_update($i, $count);
+ }
+ vputs("\ncomplete.\n");
+
+ if ($filename)
+ fclose($out);
+}
+
// get arguments
$args = get_opt(array('h' => 'host', 'u' => 'user', 'p' => 'pass', 'm' => 'mbox', 'f' => 'file')) + array('host' => 'localhost', 'mbox' => 'INBOX');
{
vputs("IMAP login successful.\n");
- $IMAP->set_mailbox($args['mbox']);
-
- vputs("Getting message list of {$args['mbox']}...");
- vputs($IMAP->messagecount()." messages\n");
-
- if ($args['file'])
- {
- if (!($out = fopen($args['file'], 'w')))
- {
- vputs("Cannot write to output file\n");
- exit;
- }
- }
- else
- $out = STDOUT;
-
- for ($count = $IMAP->messagecount(), $i=1; $i <= $count; $i++)
+ $filename = null;
+ $mailboxes = $args['mbox'] == '*' ? $IMAP->list_mailboxes(null) : array($args['mbox']);
+
+ foreach ($mailboxes as $mbox)
{
- $headers = $IMAP->get_headers($i, null, false);
- $from = current($IMAP->decode_address_list($headers->from, 1, false));
-
- fwrite($out, sprintf("From %s %s UID %d\n", $from['mailto'], $headers->date, $headers->uid));
- fwrite($out, iil_C_FetchPartHeader($IMAP->conn, $IMAP->mailbox, $i, null));
- fwrite($out, iil_C_HandlePartBody($IMAP->conn, $IMAP->mailbox, $i, null, 1));
- fwrite($out, "\n\n\n");
-
- progress_update($i, $count);
+ if ($args['file'])
+ $filename = preg_replace('/\.[a-z0-9]{3,4}$/i', '', $args['file']) . asciiwords($mbox) . '.mbox';
+ else if ($args['mbox'] == '*')
+ $filename = asciiwords($mbox) . '.mbox';
+
+ if ($args['mbox'] == '*' && in_array(strtolower($mbox), array('junk','spam','trash')))
+ continue;
+
+ export_mailbox($mbox, $filename);
}
- vputs("\ncomplete.\n");
}
else
{
-#!/usr/bin/php -qC
+#!/usr/bin/php
<?php
-define('INSTALL_PATH', preg_replace('/bin\/$/', '', getcwd()) . '/');
+define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' );
ini_set('memory_limit', -1);
require_once INSTALL_PATH.'program/include/iniset.php';
/**
* Parse commandline arguments into a hash array
*/
-function get_args($aliases=array())
+function get_opt($aliases=array())
{
$args = array();
for ($i=1; $i<count($_SERVER['argv']); $i++)
return $args;
}
-
function print_usage()
{
- print "Usage: msgimport -h imap-host -u user-name -f message-file\n";
+ print "Usage: msgimport -h imap-host -u user-name -m mailbox -f message-file\n";
print "--host IMAP host\n";
print "--user IMAP user name\n";
+ print "--mbox Target mailbox\n";
print "--file Message file to upload\n";
}
// get arguments
-$args = get_args(array('h' => 'host', 'u' => 'user', 'p' => 'pass', 'f' => 'file')) + array('host' => 'localhost');
+$args = get_opt(array('h' => 'host', 'u' => 'user', 'p' => 'pass', 'm' => 'mbox', 'f' => 'file')) + array('host' => 'localhost', 'mbox' => 'INBOX');
if ($_SERVER['argv'][1] == 'help')
{
}
// prompt for password
-echo "Password: ";
-$args['pass'] = trim(fgets(STDIN));
+if (empty($args['pass']))
+{
+ echo "Password: ";
+ $args['pass'] = trim(fgets(STDIN));
-// clear password input
-echo chr(8)."\rPassword: ".str_repeat("*", strlen($args['pass']))."\n";
+ // clear password input
+ echo chr(8)."\rPassword: ".str_repeat("*", strlen($args['pass']))."\n";
+}
// parse $host URL
$a_host = parse_url($args['host']);
if ($IMAP->connect($host, $args['user'], $args['pass'], $imap_port, $imap_ssl))
{
print "IMAP login successful.\n";
- print "Uploading message...\n";
+ print "Uploading messages...\n";
+ $count = 0;
+ $message = $lastline = '';
+
+ $fp = fopen($args['file'], 'r');
+ while (($line = fgets($fp)) !== false)
+ {
+ if (preg_match('/^From\s+/', $line) && $lastline == '')
+ {
+ if (!empty($message))
+ {
+ if ($IMAP->save_message($args['mbox'], rtrim($message)))
+ $count++;
+ else
+ die("Failed to save message to {$args['mbox']}\n");
+ $message = '';
+ }
+ continue;
+ }
+
+ $message .= $line;
+ $lastline = rtrim($line);
+ }
+
+ if (!empty($message) && $IMAP->save_message($args['mbox'], rtrim($message)))
+ $count++;
+
// upload message from file
- if ($IMAP->save_message('INBOX', file_get_contents($args['file'])))
- print "Message successfully added to INBOX.\n";
+ if ($count)
+ print "$count messages successfully added to {$args['mbox']}.\n";
else
- print "Adding message failed!\n";
+ print "Adding messages failed!\n";
}
else
{
<?php
/*
+-----------------------------------------------------------------------+
- | program/bin/quotaimg.php |
+ | bin/quotaimg.php |
| |
| This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
| Author: Brett Patterson <brett2@umbc.edu> |
+-----------------------------------------------------------------------+
- $Id: $
+ $Id: quotaimg.php 2187 2008-12-24 14:19:27Z thomasb $
*/
-$used = ((isset($_GET['u']) && !empty($_GET['u'])) || $_GET['u']=='0')?(int)$_GET['u']:'??';
-$quota = ((isset($_GET['q']) && !empty($_GET['q'])) || $_GET['q']=='0')?(int)$_GET['q']:'??';
-$width = empty($_GET['w']) ? 100 : (int)$_GET['w'];
-$height = empty($_GET['h']) ? 14 : (int)$_GET['h'];
+define('INSTALL_PATH', realpath(dirname(__FILE__).'/..') . '/');
+require INSTALL_PATH . 'program/include/iniset.php';
+
+$RCMAIL = rcmail::get_instance();
+
+$used = isset($_GET['u']) ? intval($_GET['u']) : '??';
+$quota = isset($_GET['q']) ? intval($_GET['q']) : '??';
+$width = empty($_GET['w']) ? 100 : min(300, intval($_GET['w']));
+$height = empty($_GET['h']) ? 14 : min(50, intval($_GET['h']));
/**
* Quota display
$font = 2;
$padding = 0;
- $limit['high'] = 70;
- $limit['mid'] = 45;
+ $limit['high'] = 80;
+ $limit['mid'] = 55;
$limit['low'] = 0;
// Fill Colors
- $color['fill']['high'] = '215, 13, 13'; // Near quota fill color
- $color['fill']['mid'] = '126, 192, 238'; // Mid-area of quota fill color
- $color['fill']['low'] = '147, 225, 100'; // Far from quota fill color
+ $color['fill']['high'] = '243, 49, 49'; // Near quota fill color
+ $color['fill']['mid'] = '245, 173, 60'; // Mid-area of quota fill color
+ $color['fill']['low'] = '145, 225, 100'; // Far from quota fill color
// Background colors
$color['bg']['OL'] = '215, 13, 13'; // Over limit bbackground
// Misc. Colors
$color['border'] = '0, 0, 0';
- $color['text'] = '102, 102, 102';
+ $color['text']['high'] = '255, 255, 255'; // white text for red background
+ $color['text']['mid'] = '102, 102, 102';
+ $color['text']['low'] = '102, 102, 102';
+ $color['text']['normal'] = '102, 102, 102';
/************************************
***** DO NOT EDIT BELOW HERE *****
***********************************/
- // @todo: Set to "??" instead?
+ // @todo: Set to "??" instead?
if (ereg("^[^0-9?]*$", $used) || ereg("^[^0-9?]*$", $total)) {
return false;
- }
+ }
- if (strpos($used, '?') !== false || strpos($total, '?') !== false
- && $used != 0) {
+ if (strpos($used, '?') !== false || strpos($total, '?') !== false && $used != 0) {
$unknown = true;
- }
+ }
$im = imagecreate($width, $height);
imageline($im, $width, $height-$border, 0, $height-$border, $borderc);
}
- list($r, $g, $b) = explode(',', $color['text']);
- $text = imagecolorallocate($im, $r, $g, $b);
-
if ($unknown) {
+ list($r, $g, $b) = explode(',', $color['text']['normal']);
+ $text = imagecolorallocate($im, $r, $g, $b);
list($r, $g, $b) = explode(',', $color['bg']['Unknown']);
$background = imagecolorallocate($im, $r, $g, $b);
+
imagefilledrectangle($im, 0, 0, $width, $height, $background);
$string = 'Unknown';
$mid = floor(($width-(strlen($string)*imagefontwidth($font)))/2)+1;
imagestring($im, $font, $mid, $padding, $string, $text);
} else if ($used > $total) {
+ list($r, $g, $b) = explode(',', $color['text']['normal']);
+ $text = imagecolorallocate($im, $r, $g, $b);
list($r, $g, $b) = explode(',', $color['bg']['OL']);
-
$background = imagecolorallocate($im, $r, $g, $b);
imagefilledrectangle($im, 0, 0, $width, $height, $background);
imagestring($im, $font, $mid, $padding, $string, $text);
} else {
list($r, $g, $b) = explode(',', $color['bg']['quota']);
-
$background = imagecolorallocate($im, $r, $b, $g);
imagefilledrectangle($im, 0, 0, $width, $height, $background);
$quota = ($used==0)?0:(round($used/$total, 2)*100);
if ($quota >= $limit['high']) {
+ list($r, $g, $b) = explode(',', $color['text']['high']);
+ $text = imagecolorallocate($im, $r, $g, $b);
list($r, $g, $b) = explode(',', $color['fill']['high']);
$fill = imagecolorallocate($im, $r, $g, $b);
} elseif($quota >= $limit['mid']) {
+ list($r, $g, $b) = explode(',', $color['text']['mid']);
+ $text = imagecolorallocate($im, $r, $g, $b);
list($r, $g, $b) = explode(',', $color['fill']['mid']);
$fill = imagecolorallocate($im, $r, $g, $b);
} else {
- // if($quota >= $limit['low'])
+ // if($quota >= $limit['low'])
+ list($r, $g, $b) = explode(',', $color['text']['low']);
+ $text = imagecolorallocate($im, $r, $g, $b);
list($r, $g, $b) = explode(',', $color['fill']['low']);
$fill = imagecolorallocate($im, $r, $g, $b);
}
$quota_width = $quota / 100 * $width;
- imagefilledrectangle($im, $border, 0, $quota, $height-2*$border, $fill);
+ imagefilledrectangle($im, $border, 0, $quota_width, $height-2*$border, $fill);
$string = $quota . '%';
$mid = floor(($width-(strlen($string)*imagefontwidth($font)))/2)+1;
- // Print percent in black
+ // Print percent in black
imagestring($im, $font, $mid, $padding, $string, $text);
}
header('Content-Type: image/gif');
-
- // @todo is harcoding GMT necessary?
- header('Expires: ' . gmdate('D, d M Y H:i:s', mktime()+86400) . ' GMT');
- header('Cache-Control: ');
- header('Pragma: ');
+
+ // cache for 1 hour
+ $maxage = 3600;
+ header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$maxage). ' GMT');
+ header('Cache-Control: max-age=' . $maxage);
imagegif($im);
imagedestroy($im);
}
-genQuota($used, $quota, $width, $height);
+if (!empty($RCMAIL->user->ID) && $width > 1 && $height > 1) {
+ genQuota($used, $quota, $width, $height);
+}
+else {
+ header("HTTP/1.0 403 Forbidden");
+ echo "Requires a valid user session and positive values";
+}
+
exit;
-?>
\ No newline at end of file
+?>
--- /dev/null
+#!/usr/bin/php
+<?php
+
+define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' );
+
+require_once INSTALL_PATH . 'program/include/iniset.php';
+require_once INSTALL_PATH . 'installer/rcube_install.php';
+
+$RCI = rcube_install::get_instance();
+$RCI->load_config();
+
+if ($RCI->configured) {
+ if ($messages = $RCI->check_config()) {
+ $err = 0;
+
+ // list missing config options
+ if (is_array($messages['missing'])) {
+ echo "WARNING: Missing config options:\n";
+ echo "(These config options should be present in the current configuration)\n";
+
+ foreach ($messages['missing'] as $msg) {
+ echo "- '" . $msg['prop'] . ($msg['name'] ? "': " . $msg['name'] : "'") . "\n";
+ $err++;
+ }
+ echo "\n";
+ }
+
+ // list old/replaced config options
+ if (is_array($messages['replaced'])) {
+ echo "WARNING: Replaced config options:\n";
+ echo "(These config options have been replaced or renamed)\n";
+
+ foreach ($messages['replaced'] as $msg) {
+ echo "- '" . $msg['prop'] . "' was replaced by '" . $msg['replacement'] . "'\n";
+ $err++;
+ }
+ echo "\n";
+ }
+
+ // list obsolete config options (just a notice)
+ if (is_array($messages['obsolete'])) {
+ echo "NOTICE: Obsolete config options:\n";
+ echo "(You still have some obsolete or inexistent properties set. This isn't a problem but should be noticed)\n";
+
+ foreach ($messages['obsolete'] as $msg) {
+ echo "- '" . $msg['prop'] . ($msg['name'] ? "': " . $msg['name'] : "'") . "\n";
+ $err++;
+ }
+ echo "\n";
+ }
+
+ // ask user to update config files
+ if ($err) {
+ echo "Do you want me to fix your local configuration? (y/N)\n";
+ $input = trim(fgets(STDIN));
+
+ // positive: let's merge the local config with the defaults
+ if (strtolower($input) == 'y') {
+ $copy1 = $copy2 = $write1 = $write2 = false;
+
+ // backup current config
+ echo ". backing up the current config files...\n";
+ $copy1 = copy(RCMAIL_CONFIG_DIR . '/main.inc.php', RCMAIL_CONFIG_DIR . '/main.old.php');
+ $copy2 = copy(RCMAIL_CONFIG_DIR . '/db.inc.php', RCMAIL_CONFIG_DIR . '/db.old.php');
+
+ if ($copy1 && $copy2) {
+ $RCI->merge_config();
+
+ echo ". writing " . RCMAIL_CONFIG_DIR . "/main.inc.php...\n";
+ $write1 = file_put_contents(RCMAIL_CONFIG_DIR . '/main.inc.php', $RCI->create_config('main', true));
+ echo ". writing " . RCMAIL_CONFIG_DIR . "/main.db.php...\n";
+ $write2 = file_put_contents(RCMAIL_CONFIG_DIR . '/db.inc.php', $RCI->create_config('db', true));
+ }
+
+ // Success!
+ if ($write1 && $write2) {
+ echo "Done.\n";
+ echo "Your configuration files are now up-tp-date!\n";
+ }
+ else {
+ echo "Failed to write config files!\n";
+ echo "Grant write privileges to the current user or update the files manually according to the above messages.\n";
+ }
+ }
+ else {
+ echo "Please update your config files manually according to the above messages.\n";
+ }
+ }
+
+ // check dependencies based on the current configuration
+ if (is_array($messages['dependencies'])) {
+ echo "WARNING: Dependency check failed!\n";
+ echo "(Some of your configuration settings require other options to be configured or additional PHP modules to be installed)\n";
+
+ foreach ($messages['dependencies'] as $msg) {
+ echo "- " . $msg['prop'] . ': ' . $msg['explain'] . "\n";
+ }
+ echo "Please fix your config files and run this script again!\n";
+ echo "See ya.\n";
+ }
+
+ }
+ else {
+ echo "This instance of RoundCube is up-to-date.\n";
+ echo "Have fun!\n";
+ }
+}
+else {
+ echo "This instance of RoundCube is not yet configured!\n";
+ echo "Open http://url-to-roundcube/installer/ in your browser and follow the instuctions.\n";
+}
+
+echo "\n";
+
+?>
\ No newline at end of file
// useful for database replication
$rcmail_config['db_dsnr'] = '';
-// database backend to use (only db or mdb2 are supported)
-$rcmail_config['db_backend'] = 'mdb2';
-
// maximum length of a query in bytes
$rcmail_config['db_max_length'] = 512000; // 500K
// system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace
$rcmail_config['debug_level'] = 1;
+// log driver: 'syslog' or 'file'.
+$rcmail_config['log_driver'] = 'file';
+
+// Syslog ident string to use, if using the 'syslog' log driver.
+$rcmail_config['syslog_id'] = 'roundcube';
+
+// Syslog facility to use, if using the 'syslog' log driver.
+// For possible values see installer or http://php.net/manual/en/function.openlog.php
+$rcmail_config['syslog_facility'] = LOG_USER;
+
+// use this folder to store log files (must be writeable for apache user)
+// This is used by the 'file' log driver.
+$rcmail_config['log_dir'] = 'logs/';
+
+// use this folder to store temp files (must be writeable for apache user)
+$rcmail_config['temp_dir'] = 'temp/';
+
// enable caching of messages and mailbox data in the local database.
// this is recommended if the IMAP server does not run on the same machine
$rcmail_config['enable_caching'] = TRUE;
// Optional, defaults to "check"
$rcmail_config['imap_auth_type'] = null;
+// If you know your imap's root directory and its folder delimiter,
+// you can specify them here. Otherwise they will be determined automatically.
+$rcmail_config['imap_root'] = null;
+$rcmail_config['imap_delimiter'] = null;
+
// Automatically add this domain to user names for login
// Only for IMAP servers that require full e-mail addresses for login
// Specify an array with 'host' => 'domain' values to support multiple hosts
// Log sent messages
$rcmail_config['smtp_log'] = TRUE;
-// these cols are shown in the message list
-// available cols are: subject, from, to, cc, replyto, date, size, encoding
-$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size');
+// How many seconds must pass between emails sent by a user
+$rcmail_config['sendmail_delay'] = 0;
-// relative path to the skin folder
-$rcmail_config['skin_path'] = 'skins/default/';
+// These cols are shown in the message list. Available cols are:
+// subject, from, to, cc, replyto, date, size, flag, attachment
+$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size', 'flag', 'attachment');
-// includes should be interpreted as PHP files
+// Includes should be interpreted as PHP files
$rcmail_config['skin_include_php'] = FALSE;
-// use this folder to store temp files (must be writebale for apache user)
-$rcmail_config['temp_dir'] = 'temp/';
-
-// use this folder to store log files (must be writebale for apache user)
-$rcmail_config['log_dir'] = 'logs/';
-
-// session lifetime in minutes
+// Session lifetime in minutes
+// must be greater than 'keep_alive'/60
$rcmail_config['session_lifetime'] = 10;
// check client IP in session athorization
// please provide a string of exactly 24 chars.
$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';
-// the default locale setting
-$rcmail_config['language'] = 'en';
+// the default locale setting (leave empty for auto-detection)
+// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR
+$rcmail_config['language'] = null;
// use this format for short date display
$rcmail_config['date_short'] = 'D H:i';
$rcmail_config['date_today'] = 'H:i';
// add this user-agent to message headers when sending
-$rcmail_config['useragent'] = 'RoundCube Webmail/0.2a';
+$rcmail_config['useragent'] = 'RoundCube Webmail/0.2';
// use this name to compose page titles
$rcmail_config['product_name'] = 'RoundCube Webmail';
-// only list folders within this path
-$rcmail_config['imap_root'] = '';
-
// store draft message is this mailbox
// leave blank if draft messages should not be stored
$rcmail_config['drafts_mbox'] = 'Drafts';
// protect the default folders from renames, deletes, and subscription changes
$rcmail_config['protect_default_folders'] = TRUE;
-// Set TRUE if deleted messages should not be displayed
-// This will make the application run slower
-$rcmail_config['skip_deleted'] = FALSE;
-
-// Set true to Mark deleted messages as read as well as deleted
-// False means that a message's read status is not affected by marking it as deleted
-$rcmail_config['read_when_deleted'] = TRUE;
-
-// When a Trash folder is not present and a message is deleted, flag
-// the message for deletion rather than deleting it immediately. Setting this to
-// false causes deleted messages to be permanantly removed if there is no Trash folder
-$rcmail_config['flag_for_deletion'] = TRUE;
+// if in your system 0 quota means no limit set this option to TRUE
+$rcmail_config['quota_zero_as_unlimited'] = FALSE;
// Behavior if a received message requests a message delivery notification (read receipt)
// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask)
// requires to be compiled with Open SSL support
$rcmail_config['enable_spellcheck'] = TRUE;
+// Set the spell checking engine. 'googie' is the default. 'pspell' is also available,
+// but requires the Pspell extensions. When using Nox Spell Server, also set 'googie' here.
+$rcmail_config['spellcheck_engine'] = 'googie';
+
// For a locally installed Nox Spell Server, please specify the URI to call it.
// Get Nox Spell Server from http://orangoo.com/labs/?page_id=72
// Leave empty to use the Google spell checking service, what means
// These languages can be selected for spell checking.
// Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch');
-// Leave empty for default set of Google spell check languages
+// Leave empty for default set of Google spell check languages, should be defined
+// when using local Pspell extension
$rcmail_config['spellcheck_languages'] = NULL;
// path to a text file which will be added to each sent message
// In order to enable public ldap search, configure an array like the Verisign
// example further below. if you would like to test, simply uncomment the example.
+$rcmail_config['ldap_public'] = array();
+
//
// If you are going to use LDAP for individual address books, you will need to
// set 'user_specific' to true and use the variables to generate the appropriate DNs to access it.
* 'sort' => 'cn', // The field to sort the listing by.
* 'scope' => 'sub', // search mode: sub|base|list
* 'filter' => '', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act
- * 'global_search' => true, // perform a global search for address auto-completion on compose
* 'fuzzy_search' => true); // server allows wildcard search
*/
+// An ordered array of the ids of the addressbooks that should be searched
+// when populating address autocomplete fields server-side. ex: array('sql','Verisign');
+$rcmail_config['autocomplete_addressbooks'] = array('sql');
+
// don't allow these settings to be overriden by the user
$rcmail_config['dont_override'] = array();
+// Set identities access level:
+// 0 - many identities with possibility to edit all params
+// 1 - many identities with possibility to edit all params but not email address
+// 2 - one identity with possibility to edit all params
+// 3 - one identity with possibility to edit all params but not email address
+$rcmail_config['identities_level'] = 0;
+
// try to load host-specific configuration
// see http://trac.roundcube.net/wiki/Howto_Config for more details
$rcmail_config['include_host_config'] = false;
// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING!
$rcmail_config['enable_installer'] = false;
+// Log successful logins
+$rcmail_config['log_logins'] = false;
+
+/**
+ * 'Delete always'
+ * This setting reflects if mail should be always marked as deleted,
+ * even if moving to "Trash" fails. This is necessary in some setups
+ * because a) people may not have a Trash folder or b) they are over
+ * quota (and Trash is included in the quota).
+ *
+ * This is a failover setting for iil_C_Move when a message is moved
+ * to the Trash.
+ */
+$rcmail_config['delete_always'] = false;
+
+// Minimal value of user's 'keep_alive' setting (in seconds)
+// Must be less than 'session_lifetime'
+$rcmail_config['min_keep_alive'] = 60;
+
/***** these settings can be overwritten by user's preferences *****/
+// skin name: folder from skins/
+$rcmail_config['skin'] = 'default';
+
// show up to X items in list view
$rcmail_config['pagesize'] = 40;
// use this timezone to display date/time
-$rcmail_config['timezone'] = intval(date('O'))/100 - date('I');
+$rcmail_config['timezone'] = 'auto';
// is daylight saving On?
$rcmail_config['dst_active'] = (bool)date('I');
// prefer displaying HTML messages
$rcmail_config['prefer_html'] = TRUE;
+// display remote inline images
+// 0 - Never, always ask
+// 1 - Ask if sender is not in address book
+// 2 - Always show inline images
+$rcmail_config['show_images'] = 0;
+
// compose html formatted messages by default
$rcmail_config['htmleditor'] = FALSE;
// default setting if preview pane is enabled
$rcmail_config['preview_pane'] = FALSE;
+// focus new window if new message arrives
+$rcmail_config['focus_on_new_message'] = true;
+
// Clear Trash on logout
$rcmail_config['logout_purge'] = FALSE;
// Compact INBOX on logout
$rcmail_config['logout_expunge'] = FALSE;
-/**
- * 'Delete always'
- * This setting reflects if mail should be always marked as deleted,
- * even if moving to "Trash" fails. This is necessary in some setups
- * because a) people may not have a Trash folder or b) they are over
- * quota (and Trash is included in the quota).
- *
- * This is a failover setting for iil_C_Move when a message is moved
- * to the Trash, and not the same as "delete_right_away".
- */
-$rcmail_config['delete_always'] = false;
+// Display attached images below the message body
+$rcmail_config['inline_images'] = TRUE;
-// Log successful logins
-$rcmail_config['log_logins'] = false;
+// Encoding of long/non-ascii attachment names:
+// 0 - Full RFC 2231 compatible
+// 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default)
+// 2 - Full 2047 compatible
+$rcmail_config['mime_param_folding'] = 0;
+
+// Set TRUE if deleted messages should not be displayed
+// This will make the application run slower
+$rcmail_config['skip_deleted'] = FALSE;
+
+// Set true to Mark deleted messages as read as well as deleted
+// False means that a message's read status is not affected by marking it as deleted
+$rcmail_config['read_when_deleted'] = TRUE;
+
+// When a Trash folder is not present and a message is deleted, flag
+// the message for deletion rather than deleting it immediately. Setting this to
+// false causes deleted messages to be permanantly removed if there is no Trash folder
+$rcmail_config['flag_for_deletion'] = FALSE;
+
+// Default interval for keep-alive/check-recent requests (in seconds)
+// Must be greater than or equal to 'min_keep_alive' and less than 'session_lifetime'
+$rcmail_config['keep_alive'] = 60;
+
+// If true all folders will be checked for recent messages
+$rcmail_config['check_all_folders'] = FALSE;
// end of config file
?>
/*
+-------------------------------------------------------------------------+
| RoundCube Webmail IMAP Client |
- | Version 0.2-alpha |
+ | Version 0.2-stable |
| |
| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| |
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-------------------------------------------------------------------------+
- $Id: index.php 1499 2008-06-09 20:57:53Z thomasb $
+ $Id: index.php 2201 2008-12-30 14:33:28Z thomasb $
*/
// include environment
require_once 'program/include/iniset.php';
-// define global vars
-$OUTPUT_TYPE = 'html';
+// init application and start session with requested task
+$RCMAIL = rcmail::get_instance();
+
+// init output class
+$OUTPUT = !empty($_REQUEST['_remote']) ? $RCMAIL->init_json() : $RCMAIL->load_gui(!empty($_REQUEST['_framed']));
// set output buffering
if ($RCMAIL->action != 'get' && $RCMAIL->action != 'viewsource') {
}
}
-
-// init application and start session with requested task
-$RCMAIL = rcmail::get_instance();
-
-// init output class
-$OUTPUT = (!empty($_GET['_remote']) || !empty($_POST['_remote'])) ? $RCMAIL->init_json() : $RCMAIL->load_gui((!empty($_GET['_framed']) || !empty($_POST['_framed'])));
-
+// check if config files had errors
+if ($err_str = $RCMAIL->config->get_error()) {
+ raise_error(array(
+ 'code' => 601,
+ 'type' => 'php',
+ 'message' => $err_str), false, true);
+}
// check DB connections and exit on failure
if ($err_str = $DB->is_error()) {
'message' => $err_str), FALSE, TRUE);
}
-
// error steps
if ($RCMAIL->action=='error' && !empty($_GET['_code'])) {
raise_error(array('code' => hexdec($_GET['_code'])), FALSE, TRUE);
if (empty($_COOKIE)) {
$OUTPUT->show_message("cookiesdisabled", 'warning');
}
- else if ($_SESSION['temp'] && !empty($_POST['_user']) && isset($_POST['_pass']) &&
+ else if ($_SESSION['temp'] && !empty($_POST['_user']) && !empty($_POST['_pass']) &&
$RCMAIL->login(trim(get_input_value('_user', RCUBE_INPUT_POST), ' '),
get_input_value('_pass', RCUBE_INPUT_POST, true, 'ISO-8859-1'), $host)) {
// create new session ID
unset($_SESSION['temp']);
- sess_regenerate_id();
+ rcube_sess_regenerate_id();
// send auth cookie if necessary
$RCMAIL->authenticate_session();
// log successful login
- if ($RCMAIL->config->get('log_logins') && $RCMAIL->config->get('debug_level') & 1)
- console(sprintf('Successful login for %s (id %d) from %s',
- trim(get_input_value('_user', RCUBE_INPUT_POST), ' '),
- $_SESSION['user_id'],
- $_SERVER['REMOTE_ADDR']));
+ if ($RCMAIL->config->get('log_logins')) {
+ write_log('userlogins', sprintf('Successful login for %s (id %d) from %s',
+ $RCMAIL->user->get_username(),
+ $RCMAIL->user->ID,
+ $_SERVER['REMOTE_ADDR']));
+ }
// send redirect
- header("Location: {$RCMAIL->comm_path}");
- exit;
+ $OUTPUT->redirect();
}
else {
- $OUTPUT->show_message($IMAP->error_code == -1 ? 'imaperror' : 'loginfailed', 'warning');
+ $OUTPUT->show_message($IMAP->error_code < -1 ? 'imaperror' : 'loginfailed', 'warning');
$RCMAIL->kill_session();
}
}
}
-// log in to imap server
-if (!empty($RCMAIL->user->ID) && $RCMAIL->task == 'mail') {
- if (!$RCMAIL->imap_connect()) {
- $RCMAIL->kill_session();
- }
-}
-
-
-// not logged in -> set task to 'login
-if (empty($RCMAIL->user->ID)) {
- if ($OUTPUT->ajax_call)
- $OUTPUT->remote_response("setTimeout(\"location.href='\"+this.env.comm_path+\"'\", 2000);");
-
- $RCMAIL->set_task('login');
-}
-
-
// check client X-header to verify request origin
if ($OUTPUT->ajax_call) {
- if (empty($CONFIG['devel_mode']) && !rc_request_header('X-RoundCube-Referer')) {
+ if (!$RCMAIL->config->get('devel_mode') && !rc_request_header('X-RoundCube-Referer')) {
header('HTTP/1.1 404 Not Found');
die("Invalid Request");
}
// not logged in -> show login page
if (empty($RCMAIL->user->ID)) {
+
+ if ($OUTPUT->ajax_call)
+ $OUTPUT->redirect(array(), 2000);
+
// check if installer is still active
- if ($CONFIG['enable_installer'] && is_readable('./installer/index.php')) {
+ if ($RCMAIL->config->get('enable_installer') && is_readable('./installer/index.php')) {
$OUTPUT->add_footer(html::div(array('style' => "background:#ef9398; border:2px solid #dc5757; padding:0.5em; margin:2em auto; width:50em"),
html::tag('h2', array('style' => "margin-top:0.2em"), "Installer script is still accessible") .
html::p(null, "The install script of your RoundCube installation is still stored in its default location!") .
}
$OUTPUT->set_env('task', 'login');
- $OUTPUT->task = 'login';
$OUTPUT->send('login');
- exit;
}
// handle keep-alive signal
-if ($RCMAIL->action=='keep-alive') {
+if ($RCMAIL->action == 'keep-alive') {
$OUTPUT->reset();
- $OUTPUT->send('');
- exit;
+ $OUTPUT->send();
}
-
-// include task specific files
-if ($RCMAIL->task=='mail') {
- include_once('program/steps/mail/func.inc');
-
- if ($RCMAIL->action=='show' || $RCMAIL->action=='preview' || $RCMAIL->action=='print')
- include('program/steps/mail/show.inc');
-
- if ($RCMAIL->action=='get')
- include('program/steps/mail/get.inc');
-
- if ($RCMAIL->action=='moveto' || $RCMAIL->action=='delete')
- include('program/steps/mail/move_del.inc');
-
- if ($RCMAIL->action=='mark')
- include('program/steps/mail/mark.inc');
-
- if ($RCMAIL->action=='viewsource')
- include('program/steps/mail/viewsource.inc');
-
- if ($RCMAIL->action=='sendmdn')
- include('program/steps/mail/sendmdn.inc');
-
- if ($RCMAIL->action=='send')
- include('program/steps/mail/sendmail.inc');
-
- if ($RCMAIL->action=='upload')
- include('program/steps/mail/upload.inc');
-
- if ($RCMAIL->action=='compose' || $RCMAIL->action=='remove-attachment' || $RCMAIL->action=='display-attachment')
- include('program/steps/mail/compose.inc');
-
- if ($RCMAIL->action=='addcontact')
- include('program/steps/mail/addcontact.inc');
-
- if ($RCMAIL->action=='expunge' || $RCMAIL->action=='purge')
- include('program/steps/mail/folders.inc');
-
- if ($RCMAIL->action=='check-recent')
- include('program/steps/mail/check_recent.inc');
-
- if ($RCMAIL->action=='getunread')
- include('program/steps/mail/getunread.inc');
-
- if ($RCMAIL->action=='list' && isset($_REQUEST['_remote']))
- include('program/steps/mail/list.inc');
-
- if ($RCMAIL->action=='search')
- include('program/steps/mail/search.inc');
-
- if ($RCMAIL->action=='spell')
- include('program/steps/mail/spell.inc');
-
- if ($RCMAIL->action=='rss')
- include('program/steps/mail/rss.inc');
-
- // make sure the message count is refreshed
- $IMAP->messagecount($_SESSION['mbox'], 'ALL', true);
+// save preference value
+else if ($RCMAIL->action == 'save-pref') {
+ $RCMAIL->user->save_prefs(array(get_input_value('_name', RCUBE_INPUT_POST) => get_input_value('_value', RCUBE_INPUT_POST)));
+ $OUTPUT->reset();
+ $OUTPUT->send();
}
-// include task specific files
-if ($RCMAIL->task=='addressbook') {
- include_once('program/steps/addressbook/func.inc');
-
- if ($RCMAIL->action=='save')
- include('program/steps/addressbook/save.inc');
+// map task/action to a certain include file
+$action_map = array(
+ 'mail' => array(
+ 'preview' => 'show.inc',
+ 'print' => 'show.inc',
+ 'moveto' => 'move_del.inc',
+ 'delete' => 'move_del.inc',
+ 'send' => 'sendmail.inc',
+ 'expunge' => 'folders.inc',
+ 'purge' => 'folders.inc',
+ 'remove-attachment' => 'attachments.inc',
+ 'display-attachment' => 'attachments.inc',
+ 'upload' => 'attachments.inc',
+ ),
- if ($RCMAIL->action=='edit' || $RCMAIL->action=='add')
- include('program/steps/addressbook/edit.inc');
-
- if ($RCMAIL->action=='delete')
- include('program/steps/addressbook/delete.inc');
-
- if ($RCMAIL->action=='show')
- include('program/steps/addressbook/show.inc');
-
- if ($RCMAIL->action=='list' && $_REQUEST['_remote'])
- include('program/steps/addressbook/list.inc');
-
- if ($RCMAIL->action=='search')
- include('program/steps/addressbook/search.inc');
-
- if ($RCMAIL->action=='copy')
- include('program/steps/addressbook/copy.inc');
-
- if ($RCMAIL->action=='mailto')
- include('program/steps/addressbook/mailto.inc');
-}
-
-
-// include task specific files
-if ($RCMAIL->task=='settings') {
- include_once('program/steps/settings/func.inc');
-
- if ($RCMAIL->action=='save-identity')
- include('program/steps/settings/save_identity.inc');
-
- if ($RCMAIL->action=='add-identity' || $RCMAIL->action=='edit-identity')
- include('program/steps/settings/edit_identity.inc');
-
- if ($RCMAIL->action=='delete-identity')
- include('program/steps/settings/delete_identity.inc');
+ 'addressbook' => array(
+ 'add' => 'edit.inc',
+ ),
- if ($RCMAIL->action=='identities')
- include('program/steps/settings/identities.inc');
-
- if ($RCMAIL->action=='save-prefs')
- include('program/steps/settings/save_prefs.inc');
-
- if ($RCMAIL->action=='folders' || $RCMAIL->action=='subscribe' || $RCMAIL->action=='unsubscribe' ||
- $RCMAIL->action=='create-folder' || $RCMAIL->action=='rename-folder' || $RCMAIL->action=='delete-folder')
- include('program/steps/settings/manage_folders.inc');
+ 'settings' => array(
+ 'folders' => 'manage_folders.inc',
+ 'create-folder' => 'manage_folders.inc',
+ 'rename-folder' => 'manage_folders.inc',
+ 'delete-folder' => 'manage_folders.inc',
+ 'subscribe' => 'manage_folders.inc',
+ 'unsubscribe' => 'manage_folders.inc',
+ 'add-identity' => 'edit_identity.inc',
+ )
+);
+
+// include task specific functions
+include_once 'program/steps/'.$RCMAIL->task.'/func.inc';
+
+// allow 5 "redirects" to another action
+$redirects = 0; $incstep = null;
+while ($redirects < 5) {
+ $stepfile = !empty($action_map[$RCMAIL->task][$RCMAIL->action]) ?
+ $action_map[$RCMAIL->task][$RCMAIL->action] : strtr($RCMAIL->action, '-', '_') . '.inc';
+
+ // try to include the step file
+ if (is_file(($incfile = 'program/steps/'.$RCMAIL->task.'/'.$stepfile))) {
+ include($incfile);
+ $redirects++;
+ }
+ else {
+ break;
+ }
}
-// parse main template
+// parse main template (default)
$OUTPUT->send($RCMAIL->task);
<form action="index.php" method="get">
<?php
-$required_php_exts = array('PCRE' => 'pcre', 'Session' => 'session',
- 'DOM XML' => 'dom');
+$required_php_exts = array('PCRE' => 'pcre', 'DOM' => 'dom', 'Session' => 'session');
$optional_php_exts = array('FileInfo' => 'fileinfo', 'Libiconv' => 'iconv',
'Multibyte' => 'mbstring', 'OpenSSL' => 'openssl', 'Mcrypt' => 'mcrypt',
'GD' => 'gd');
-$required_libs = array('PEAR' => 'PEAR.php', 'DB' => 'DB.php', 'MDB2' => 'MDB2.php',
+$required_libs = array('PEAR' => 'PEAR.php', 'MDB2' => 'MDB2.php',
'Net_SMTP' => 'Net/SMTP.php', 'Mail_mime' => 'Mail/mime.php',
'iilConnection' => 'lib/imap.inc');
'PostgreSQL' => 'pgsql', 'SQLite (v2)' => 'sqlite');
$ini_checks = array('file_uploads' => 1, 'session.auto_start' => 0,
- 'magic_quotes_gpc' => 0, 'magic_quotes_sybase' => 0);
+ 'zend.ze1_compatibility_mode' => 0, 'mbstring.func_overload' => 0);
$source_urls = array(
'Sockets' => 'http://www.php.net/manual/en/ref.sockets.php',
'PEAR' => 'http://pear.php.net',
'MDB2' => 'http://pear.php.net/package/MDB2',
'Net_SMTP' => 'http://pear.php.net/package/Net_SMTP',
- 'Mail_mime' => 'http://pear.php.net/package/Mail_mime'
+ 'Mail_mime' => 'http://pear.php.net/package/Mail_mime',
+ 'DOM' => 'http://www.php.net/manual/en/intro.dom.php'
);
echo '<input type="hidden" name="_step" value="' . ($RCI->configured ? 3 : 2) . '" />';
if (class_exists($classname)) {
$RCI->pass($classname);
}
- else if ($classname == 'DB' || ($classname == 'MDB2' && class_exists('DB'))) {
- $RCI->na($classname, 'Use ' . ($classname == 'DB' ? 'MDB2' : 'DB') . ' instead');
- }
else {
$RCI->fail($classname, "Failed to load $file", $source_urls[$classname]);
}
$RCI->load_defaults();
// register these boolean fields
-$RCI->config_props = array(
+$RCI->bool_config_props = array(
'ip_check' => 1,
'enable_caching' => 1,
'enable_spellcheck' => 1,
'prefer_html' => 1,
'preview_pane' => 1,
'htmleditor' => 1,
+ 'debug_level' => 1,
);
// allow the current user to get to the next step
if (!empty($_POST['submit'])) {
echo '<p class="notice">Copy or download the following configurations and save them in two files';
- echo ' (names above the text box) within the <tt>config/</tt> directory of your RoundCube installation.<br/>';
+ echo ' (names above the text box) within the <tt>'.RCMAIL_CONFIG_DIR.'</tt> directory of your RoundCube installation.<br/>';
echo ' Make sure that there are no characters outside the <tt><?php ?></tt> brackets when saving the files.</p>';
$textbox = new html_textarea(array('rows' => 16, 'cols' => 60, 'class' => "configfile"));
echo '<div><em>main.inc.php (<a href="index.php?_getfile=main">download</a>)</em></div>';
- echo $textbox->show($RCI->create_config('main'));
+ echo $textbox->show(($_SESSION['main.inc.php'] = $RCI->create_config('main')));
echo '<div style="margin-top:1em"><em>db.inc.php (<a href="index.php?_getfile=db">download</a>)</em></div>';
- echo $textbox->show($RCI->create_config('db'));
+ echo $textbox->show($_SESSION['db.inc.php'] = $RCI->create_config('db'));
echo '<p class="hint">Of course there are more options to configure.
Have a look at the config files or visit <a href="http://trac.roundcube.net/wiki/Howto_Config">Howto_Config</a> to find out.</p>';
<fieldset>
<legend>General configuration</legend>
<dl class="configblock">
-<!--
-<dt id="cgfblockgeneral" class="propname">debug_level</dt>
-<dd>
-<?php
-/*
-$value = $RCI->getprop('debug_level');
-$check_debug = new html_checkbox(array('name' => '_debug_level[]'));
-echo $check_debug->show(($value & 1) ? 1 : 0 , array('value' => 1, 'id' => 'cfgdebug1'));
-echo '<label for="cfgdebug1">Log errors</label><br />';
-
-echo $check_debug->show(($value & 4) ? 4 : 0, array('value' => 4, 'id' => 'cfgdebug4'));
-echo '<label for="cfgdebug4">Display errors</label><br />';
-
-echo $check_debug->show(($value & 8) ? 8 : 0, array('value' => 8, 'id' => 'cfgdebug8'));
-echo '<label for="cfgdebug8">Verbose display</label><br />';
-*/
-?>
-</dd>
--->
<dt class="propname">product_name</dt>
<dd>
<div>The name of your service (used to compose page titles)</div>
</dd>
-<dt class="propname">skin_path</dt>
-<dd>
-<?php
-
-$input_skinpath = new html_inputfield(array('name' => '_skin_path', 'size' => 30, 'id' => "cfgskinpath"));
-echo $input_skinpath->show($RCI->getprop('skin_path'));
-
-?>
-<div>Relative path to the skin folder</div>
-</dd>
-
<dt class="propname">temp_dir</dt>
<dd>
<?php
echo $input_tempdir->show($RCI->getprop('temp_dir'));
?>
-<div>Use this folder to store temp files (must be writebale for webserver)</div>
+<div>Use this folder to store temp files (must be writeable for webserver)</div>
</dd>
-<dt class="propname">log_dir</dt>
-<dd>
-<?php
-
-$input_logdir = new html_inputfield(array('name' => '_log_dir', 'size' => 30, 'id' => "cfglogdir"));
-echo $input_logdir->show($RCI->getprop('log_dir'));
-
-?>
-<div>Use this folder to store log files (must be writebale for webserver)</div>
-</dd>
<dt class="propname">ip_check</dt>
<dd>
<p class="hint">It is based on GoogieSpell what implies that the message content will be sent to Google in order to check the spelling.</p>
</dd>
-<dt class="propname">mdn_requests</dt>
+<dt class="propname">identities_level</dt>
<dd>
<?php
-$select_mdnreq = new html_select(array('name' => '_mdn_requests', 'id' => "cfgmdnreq"));
-$select_mdnreq->add(array('ask the user', 'send automatically', 'ignore'), array(0, 1, 2));
-echo $select_mdnreq->show(intval($RCI->getprop('mdn_requests')));
+$input_ilevel = new html_select(array('name' => '_identities_level', 'id' => "cfgidentitieslevel"));
+$input_ilevel->add('many identities with possibility to edit all params', 0);
+$input_ilevel->add('many identities with possibility to edit all params but not email address', 1);
+$input_ilevel->add('one identity with possibility to edit all params', 2);
+$input_ilevel->add('one identity with possibility to edit all params but not email address', 3);
+echo $input_ilevel->show($RCI->getprop('identities_level'), 0);
?>
-<div>Behavior if a received message requests a message delivery notification (read receipt)</div>
+<div>Level of identities access</div>
+<p class="hint">Defines what users can do with their identities.</p>
</dd>
</dl>
</fieldset>
+<fieldset>
+<legend>Logging & Debugging</legend>
+<dl class="loggingblock">
+
+<dt class="propname">debug_level</dt>
+<dd>
+<?php
+
+$value = $RCI->getprop('debug_level');
+$check_debug = new html_checkbox(array('name' => '_debug_level[]'));
+echo $check_debug->show(($value & 1) ? 1 : 0 , array('value' => 1, 'id' => 'cfgdebug1'));
+echo '<label for="cfgdebug1">Log errors</label><br />';
+
+echo $check_debug->show(($value & 4) ? 4 : 0, array('value' => 4, 'id' => 'cfgdebug4'));
+echo '<label for="cfgdebug4">Print errors (to the browser)</label><br />';
+
+echo $check_debug->show(($value & 8) ? 8 : 0, array('value' => 8, 'id' => 'cfgdebug8'));
+echo '<label for="cfgdebug8">Verbose display (enables debug console)</label><br />';
+
+?>
+</dd>
+
+<dt class="propname">log_driver</dt>
+<dd>
+<?php
+
+$select_log_driver = new html_select(array('name' => '_log_driver', 'id' => "cfglogdriver"));
+$select_log_driver->add(array('file', 'syslog'), array('file', 'syslog'));
+echo $select_log_driver->show($RCI->getprop('log_driver', 'file'));
+
+?>
+<div>How to do logging? 'file' - write to files in the log directory, 'syslog' - use the syslog facility.</div>
+</dd>
+
+<dt class="propname">log_dir</dt>
+<dd>
+<?php
+
+$input_logdir = new html_inputfield(array('name' => '_log_dir', 'size' => 30, 'id' => "cfglogdir"));
+echo $input_logdir->show($RCI->getprop('log_dir'));
+
+?>
+<div>Use this folder to store log files (must be writeable for webserver). Note that this only applies if you are using the 'file' log_driver.</div>
+</dd>
+
+<dt class="propname">syslog_id</dt>
+<dd>
+<?php
+
+$input_syslogid = new html_inputfield(array('name' => '_syslog_id', 'size' => 30, 'id' => "cfgsyslogid"));
+echo $input_syslogid->show($RCI->getprop('syslog_id', 'roundcube'));
+
+?>
+<div>What ID to use when logging with syslog. Note that this only applies if you are using the 'syslog' log_driver.</div>
+</dd>
+
+<dt class="propname">syslog_facility</dt>
+<dd>
+<?php
+
+$input_syslogfacility = new html_select(array('name' => '_syslog_facility', 'id' => "cfgsyslogfacility"));
+$input_syslogfacility->add('user-level messages', LOG_USER);
+$input_syslogfacility->add('mail subsystem', LOG_MAIL);
+$input_syslogfacility->add('local level 0', LOG_LOCAL0);
+$input_syslogfacility->add('local level 1', LOG_LOCAL1);
+$input_syslogfacility->add('local level 2', LOG_LOCAL2);
+$input_syslogfacility->add('local level 3', LOG_LOCAL3);
+$input_syslogfacility->add('local level 4', LOG_LOCAL4);
+$input_syslogfacility->add('local level 5', LOG_LOCAL5);
+$input_syslogfacility->add('local level 6', LOG_LOCAL6);
+$input_syslogfacility->add('local level 7', LOG_LOCAL7);
+echo $input_syslogfacility->show($RCI->getprop('syslog_facility'), LOG_USER);
+
+?>
+<div>What ID to use when logging with syslog. Note that this only applies if you are using the 'syslog' log_driver.</div>
+</dd>
+
+
+
+
+</dl>
+</fieldset>
+
+
<fieldset>
<legend>Database setup</legend>
<dl class="configblock" id="cgfblockdb">
?>
</dd>
-
-<dt class="propname">db_backend</dt>
-<dd>
-<?php
-
-// check for existing PEAR classes
-@include_once 'DB.php';
-@include_once 'MDB2.php';
-
-$select_dbba = new html_select(array('name' => '_db_backend', 'id' => "cfgdbba"));
-
-if (class_exists('DB'))
- $select_dbba->add('DB', 'db');
-if (class_exists('MDB2'))
- $select_dbba->add('MDB2', 'mdb2');
-
-echo $select_dbba->show($RCI->getprop('db_backend'));
-
-?>
-<div>PEAR Database backend to use</div>
-</dd>
-
</dl>
</fieldset>
echo $text_sentmbox->show($RCI->getprop('sent_mbox'));
?>
-<div>Store sent messages is this folder</div>
+<div>Store sent messages in this folder</div>
<p class="hint">Leave blank if sent messages should not be stored</p>
</dd>
echo $text_draftsmbox->show($RCI->getprop('drafts_mbox'));
?>
-<div>Store draft messages is this folder</div>
+<div>Store draft messages in this folder</div>
+
+<p class="hint">Leave blank if they should not be stored</p>
</dd>
+<dt class="propname">junk_mbox</dt>
+<dd>
+<?php
+
+$text_junkmbox = new html_inputfield(array('name' => '_junk_mbox', 'size' => 20, 'id' => "cfgjunkmbox"));
+echo $text_junkmbox->show($RCI->getprop('junk_mbox'));
+
+?>
+<div>Store spam messages in this folder</div>
+</dd>
</dl>
</fieldset>
echo $check_smtplog->show(intval($RCI->getprop('smtp_log')), array('value' => 1));
?>
-<label for="cfgsmtplog">Log sent messages in <tt>logs/sendmail</tt></label><br />
+<label for="cfgsmtplog">Log sent messages in <tt>{log_dir}/sendmail</tt> or to syslog.</label><br />
</dd>
</dl>
<legend>Display settings & user prefs</legend>
<dl class="configblock" id="cgfblockdisplay">
-<dt class="propname">locale_string</dt>
+<dt class="propname">language</dt>
<dd>
<?php
-$input_locale = new html_inputfield(array('name' => '_locale_string', 'size' => 6, 'id' => "cfglocale"));
-echo $input_locale->show($RCI->getprop('locale_string'));
+$input_locale = new html_inputfield(array('name' => '_language', 'size' => 6, 'id' => "cfglocale"));
+echo $input_locale->show($RCI->getprop('language'));
?>
-<div>The default locale setting. This also defines the language of the login screen.</div>
-<p class="hint">Enter a <a href="http://www.faqs.org/rfcs/rfc1766">RFC1766</a> formatted locale name. Examples: en_US, de, de_CH, fr, pt_BR</p>
+<div>The default locale setting. This also defines the language of the login screen.<br/>Leave it empty to auto-detect the user agent language.</div>
+<p class="hint">Enter a <a href="http://www.faqs.org/rfcs/rfc1766">RFC1766</a> formatted language name. Examples: en_US, de_DE, de_CH, fr_FR, pt_BR</p>
+</dd>
+
+<dt class="propname">skin <span class="userconf">*</span></dt>
+<dd>
+<?php
+
+$input_skin = new html_inputfield(array('name' => '_skin', 'size' => 30, 'id' => "cfgskin"));
+echo $input_skin->show($RCI->getprop('skin'));
+
+?>
+<div>Name of interface skin (folder in /skins)</div>
</dd>
<dt class="propname">pagesize <span class="userconf">*</span></dt>
?>
</dd>
+<dt class="propname">mdn_requests <span class="userconf">*</span></dt>
+<dd>
+<?php
+
+$select_mdnreq = new html_select(array('name' => '_mdn_requests', 'id' => "cfgmdnreq"));
+$select_mdnreq->add(array('ask the user', 'send automatically', 'ignore'), array(0, 1, 2));
+echo $select_mdnreq->show(intval($RCI->getprop('mdn_requests')));
+
+?>
+<div>Behavior if a received message requests a message delivery notification (read receipt)</div>
+</dd>
+
+<dt class="propname">mime_param_folding <span class="userconf">*</span></dt>
+<dd>
+<?php
+
+$select_param_folding = new html_select(array('name' => '_mime_param_folding', 'id' => "cfgmimeparamfolding"));
+$select_param_folding->add('Full RFC 2231 (Roundcube, Thunderbird)', '0');
+$select_param_folding->add('RFC 2047/2231 (MS Outlook, OE)', '1');
+$select_param_folding->add('Full RFC 2047 (deprecated)', '2');
+
+echo $select_param_folding->show(intval($RCI->getprop('mime_param_folding')));
+
+?>
+<div>How to encode attachment long/non-ascii names</div>
+</dd>
+
</dl>
<p class="hint"><span class="userconf">*</span> These settings are defaults for the user preferences</p>
<?php
+
ini_set('error_reporting', E_ALL&~E_NOTICE);
ini_set('display_errors', 1);
define('INSTALL_PATH', realpath(dirname(__FILE__) . '/../').'/');
+define('RCMAIL_CONFIG_DIR', INSTALL_PATH . 'config');
+
$include_path = INSTALL_PATH . 'program/lib' . PATH_SEPARATOR;
$include_path .= INSTALL_PATH . 'program' . PATH_SEPARATOR;
$include_path .= INSTALL_PATH . 'program/include' . PATH_SEPARATOR;
set_include_path($include_path);
+require_once 'utils.php';
+
session_start();
-/**
- * Use PHP5 autoload for dynamic class loading
- * (copy from program/incllude/iniset.php)
- */
-function __autoload($classname)
-{
- $filename = preg_replace(
- array('/MDB2_(.+)/', '/Mail_(.+)/', '/^html_.+/', '/^utf8$/'),
- array('MDB2/\\1', 'Mail/\\1', 'html', 'utf8.class'),
- $classname
- );
- include_once $filename. '.php';
+$RCI = rcube_install::get_instance();
+$RCI->load_config();
+
+if (isset($_GET['_getfile']) && in_array($_GET['_getfile'], array('main', 'db'))) {
+ $filename = $_GET['_getfile'] . '.inc.php';
+ if (!empty($_SESSION[$filename])) {
+ header('Content-type: text/plain');
+ header('Content-Disposition: attachment; filename="'.$filename.'"');
+ echo $_SESSION[$filename];
+ exit;
+ }
+ else {
+ header('HTTP/1.0 404 Not found');
+ die("The requested configuration was not found. Please run the installer from the beginning.");
+ }
}
+
+if ($RCI->configured && ($RCI->getprop('enable_installer') || $_SESSION['allowinstaller']) &&
+ isset($_GET['_mergeconfig']) && in_array($_GET['_mergeconfig'], array('main', 'db'))) {
+ $filename = $_GET['_mergeconfig'] . '.inc.php';
+
+ header('Content-type: text/plain');
+ header('Content-Disposition: attachment; filename="'.$filename.'"');
+
+ $RCI->merge_config();
+ echo $RCI->create_config($_GET['_mergeconfig'], true);
+ exit;
+}
+
+// go to 'test' step if we have a local configuration
+if ($RCI->configured && empty($_REQUEST['_step'])) {
+ header("Location: ./?_step=3");
+ exit;
+}
+
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>RoundCube Webmail Installer</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<meta name="Robots" content="noindex,nofollow" />
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="styles.css" />
<script type="text/javascript" src="client.js"></script>
</head>
<?php
- $RCI = rcube_install::get_instance();
- $RCI->load_config();
-
// exit if installation is complete
if ($RCI->configured && !$RCI->getprop('enable_installer') && !$_SESSION['allowinstaller']) {
// header("HTTP/1.0 404 Not Found");
echo '<h2 class="error">The installer is disabled!</h2>';
- echo '<p>To enable it again, set <tt>$rcmail_config[\'enable_installer\'] = true;</tt> in config/main.inc.php</p>';
+ echo '<p>To enable it again, set <tt>$rcmail_config[\'enable_installer\'] = true;</tt> in RCMAIL_CONFIG_DIR/main.inc.php</p>';
echo '</div></body></html>';
exit;
}
var $configured = false;
var $last_error = null;
var $email_pattern = '([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9])';
- var $config_props = array();
+ var $bool_config_props = array();
+
+ var $obsolete_config = array('db_backend');
+ var $replaced_config = array(
+ 'skin_path' => 'skin',
+ 'locale_string' => 'language',
+ 'multiple_identities' => 'identities_level',
+ 'addrbook_show_images' => 'show_images',
+ );
+
+ // these config options are optional or can be set to null
+ var $optional_config = array(
+ 'log_driver', 'syslog_id', 'syslog_facility', 'imap_auth_type',
+ 'smtp_helo_host', 'smtp_auth_type', 'sendmail_delay', 'double_auth',
+ 'language', 'mail_header_delimiter', 'create_default_folders',
+ 'quota_zero_as_unlimited', 'spellcheck_uri', 'spellcheck_languages',
+ 'http_received_header', 'session_domain', 'mime_magic', 'log_logins',
+ 'enable_installer', 'skin_include_php', 'imap_root', 'imap_delimiter',
+ 'virtuser_file', 'virtuser_query', 'dont_override');
/**
* Constructor
*/
function _load_config($suffix)
{
- @include '../config/main.inc' . $suffix;
+ @include RCMAIL_CONFIG_DIR . '/main.inc' . $suffix;
if (is_array($rcmail_config)) {
$this->config += $rcmail_config;
}
- @include '../config/db.inc'. $suffix;
+ @include RCMAIL_CONFIG_DIR . '/db.inc'. $suffix;
if (is_array($rcmail_config)) {
$this->config += $rcmail_config;
}
*/
function getprop($name, $default = '')
{
- $value = $this->is_post && (isset($_POST["_$name"]) || $this->config_props[$name]) ? $_POST["_$name"] : $this->config[$name];
+ $value = $this->config[$name];
if ($name == 'des_key' && !$this->configured && !isset($_REQUEST["_$name"]))
$value = rcube_install::random_key(24);
* @param string Which config file (either 'main' or 'db')
* @return string The complete config file content
*/
- function create_config($which)
+ function create_config($which, $force = false)
{
- $out = file_get_contents("../config/{$which}.inc.php.dist");
+ $out = file_get_contents(RCMAIL_CONFIG_DIR . "/{$which}.inc.php.dist");
if (!$out)
return '[Warning: could not read the template file]';
-
+
foreach ($this->config as $prop => $default) {
- $value = (isset($_POST["_$prop"]) || $this->config_props[$prop]) ? $_POST["_$prop"] : $default;
+ $value = (isset($_POST["_$prop"]) || $this->bool_config_props[$prop]) ? $_POST["_$prop"] : $default;
// convert some form data
- if ($prop == 'debug_level' && is_array($value)) {
+ if ($prop == 'debug_level') {
$val = 0;
- foreach ($value as $i => $dbgval)
- $val += intval($dbgval);
+ if (is_array($value))
+ foreach ($value as $dbgval)
+ $val += intval($dbgval);
$value = $val;
}
- else if ($prop == 'db_dsnw' && !empty($_POST['_dbtype'])) {
+ else if ($which == 'db' && $prop == 'db_dsnw' && !empty($_POST['_dbtype'])) {
if ($_POST['_dbtype'] == 'sqlite')
$value = sprintf('%s://%s?mode=0646', $_POST['_dbtype'], $_POST['_dbname']{0} == '/' ? '/' . $_POST['_dbname'] : $_POST['_dbname']);
else
$value = sprintf('%s://%s:%s@%s/%s', $_POST['_dbtype'],
- rawurlencode($_POST['_dbuser']), rawurlencode($_POST['_dbpass']),
- $_POST['_dbhost'], $_POST['_dbname']);
+ rawurlencode($_POST['_dbuser']), rawurlencode($_POST['_dbpass']), $_POST['_dbhost'], $_POST['_dbname']);
}
else if ($prop == 'smtp_auth_type' && $value == '0') {
$value = '';
}
// skip this property
- if ($value == $default)
+ if (!$force && ($value == $default))
continue;
-
+
+ // save change
+ $this->config[$prop] = $value;
+
// replace the matching line in config file
$out = preg_replace(
'/(\$rcmail_config\[\''.preg_quote($prop).'\'\])\s+=\s+(.+);/Uie',
- "'\\1 = ' . var_export(\$value, true) . ';'",
+ "'\\1 = ' . rcube_install::_dump_var(\$value) . ';'",
$out);
}
-
+
return trim($out);
}
+
+
+ /**
+ * Check the current configuration for missing properties
+ * and deprecated or obsolete settings
+ *
+ * @return array List with problems detected
+ */
+ function check_config()
+ {
+ $this->config = array();
+ $this->load_defaults();
+ $defaults = $this->config;
+
+ $this->load_config();
+ if (!$this->configured)
+ return null;
+
+ $out = $seen = array();
+ $optional = array_flip($this->optional_config);
+
+ // iterate over the current configuration
+ foreach ($this->config as $prop => $value) {
+ if ($replacement = $this->replaced_config[$prop]) {
+ $out['replaced'][] = array('prop' => $prop, 'replacement' => $replacement);
+ $seen[$replacement] = true;
+ }
+ else if (!$seen[$prop] && in_array($prop, $this->obsolete_config)) {
+ $out['obsolete'][] = array('prop' => $prop);
+ $seen[$prop] = true;
+ }
+ }
+
+ // iterate over default config
+ foreach ($defaults as $prop => $value) {
+ if (!$seen[$prop] && !isset($this->config[$prop]) && !isset($optional[$prop]))
+ $out['missing'][] = array('prop' => $prop);
+ }
+
+ // check config dependencies and contradictions
+ if ($this->config['enable_spellcheck'] && $this->config['spellcheck_engine'] == 'pspell') {
+ if (!extension_loaded('pspell')) {
+ $out['dependencies'][] = array('prop' => 'spellcheck_engine',
+ 'explain' => 'This requires the <tt>pspell</tt> extension which could not be loaded.');
+ }
+ if (empty($this->config['spellcheck_languages'])) {
+ $out['dependencies'][] = array('prop' => 'spellcheck_languages',
+ 'explain' => 'You should specify the list of languages supported by your local pspell installation.');
+ }
+ }
+
+ if ($this->config['log_driver'] == 'syslog') {
+ if (!function_exists('openlog')) {
+ $out['dependencies'][] = array('prop' => 'log_driver',
+ 'explain' => 'This requires the <tt>sylog</tt> extension which could not be loaded.');
+ }
+ if (empty($this->config['syslog_id'])) {
+ $out['dependencies'][] = array('prop' => 'syslog_id',
+ 'explain' => 'Using <tt>syslog</tt> for logging requires a syslog ID to be configured');
+ }
+ }
+
+ // check ldap_public sources having global_search enabled
+ if (is_array($this->config['ldap_public']) && !is_array($this->config['autocomplete_addressbooks'])) {
+ foreach ($this->config['ldap_public'] as $ldap_public) {
+ if ($ldap_public['global_search']) {
+ $out['replaced'][] = array('prop' => 'ldap_public::global_search', 'replacement' => 'autocomplete_addressbooks');
+ break;
+ }
+ }
+ }
+
+ return $out;
+ }
+
+
+ /**
+ * Merge the current configuration with the defaults
+ * and copy replaced values to the new options.
+ */
+ function merge_config()
+ {
+ $current = $this->config;
+ $this->config = array();
+ $this->load_defaults();
+
+ foreach ($this->replaced_config as $prop => $replacement)
+ if (isset($current[$prop])) {
+ if ($prop == 'skin_path')
+ $this->config[$replacement] = preg_replace('#skins/(\w+)/?$#', '\\1', $current[$prop]);
+ else if ($prop == 'multiple_identities')
+ $this->config[$replacement] = $current[$prop] ? 2 : 0;
+ else
+ $this->config[$replacement] = $current[$prop];
+
+ unset($current[$prop]);
+ }
+
+ foreach ($this->obsolete_config as $prop) {
+ unset($current[$prop]);
+ }
+
+ // add all ldap_public sources having global_search enabled to autocomplete_addressbooks
+ if (is_array($current['ldap_public'])) {
+ foreach ($current['ldap_public'] as $key => $ldap_public) {
+ if ($ldap_public['global_search']) {
+ $this->config['autocomplete_addressbooks'][] = $key;
+ unset($current['ldap_public'][$key]['global_search']);
+ }
+ }
+ }
+
+ $this->config = array_merge($this->config, $current);
+
+ foreach ((array)$current['ldap_public'] as $key => $values) {
+ $this->config['ldap_public'][$key] = $current['ldap_public'][$key];
+ }
+ }
+
+
+ /**
+ * Compare the local database schema with the reference schema
+ * required for this version of RoundCube
+ *
+ * @param boolean True if the schema schould be updated
+ * @return boolean True if the schema is up-to-date, false if not or an error occured
+ */
+ function db_schema_check($update = false)
+ {
+ if (!$this->configured)
+ return false;
+
+ $options = array(
+ 'use_transactions' => false,
+ 'log_line_break' => "\n",
+ 'idxname_format' => '%s',
+ 'debug' => false,
+ 'quote_identifier' => true,
+ 'force_defaults' => false,
+ 'portability' => true
+ );
+
+ $schema =& MDB2_Schema::factory($this->config['db_dsnw'], $options);
+ $schema->db->supported['transactions'] = false;
+
+ if (PEAR::isError($schema)) {
+ $this->raise_error(array('code' => $schema->getCode(), 'message' => $schema->getMessage() . ' ' . $schema->getUserInfo()));
+ return false;
+ }
+ else {
+ $definition = $schema->getDefinitionFromDatabase();
+ $definition['charset'] = 'utf8';
+
+ if (PEAR::isError($definition)) {
+ $this->raise_error(array('code' => $definition->getCode(), 'message' => $definition->getMessage() . ' ' . $definition->getUserInfo()));
+ return false;
+ }
+
+ // load reference schema
+ $dsn = MDB2::parseDSN($this->config['db_dsnw']);
+ $ref_schema = INSTALL_PATH . 'SQL/' . $dsn['phptype'] . '.schema.xml';
+
+ if (is_file($ref_schema)) {
+ $reference = $schema->parseDatabaseDefinition($ref_schema, false, array(), $schema->options['fail_on_invalid_names']);
+
+ if (PEAR::isError($reference)) {
+ $this->raise_error(array('code' => $reference->getCode(), 'message' => $reference->getMessage() . ' ' . $reference->getUserInfo()));
+ }
+ else {
+ $diff = $schema->compareDefinitions($reference, $definition);
+
+ if (empty($diff)) {
+ return true;
+ }
+ else if ($update) {
+ // update database schema with the diff from the above check
+ $success = $schema->alterDatabase($reference, $definition, $diff);
+
+ if (PEAR::isError($success)) {
+ $this->raise_error(array('code' => $success->getCode(), 'message' => $success->getMessage() . ' ' . $success->getUserInfo()));
+ }
+ else
+ return true;
+ }
+ echo '<pre>'; var_dump($diff); echo '</pre>';
+ return false;
+ }
+ }
+ else
+ $this->raise_error(array('message' => "Could not find reference schema file ($ref_schema)"));
+ return false;
+ }
+
+ return false;
+ }
/**
}
- function _clean_array($arr)
+ static function _clean_array($arr)
{
$out = array();
- foreach (array_unique($arr) as $i => $val)
- if (!empty($val))
- $out[] = $val;
+ foreach (array_unique($arr) as $k => $val) {
+ if (!empty($val)) {
+ if (is_numeric($k))
+ $out[] = $val;
+ else
+ $out[$k] = $val;
+ }
+ }
return $out;
}
+ static function _dump_var($var) {
+ if (is_array($var)) {
+ if (empty($var)) {
+ return 'array()';
+ }
+ else { // check if all keys are numeric
+ $isnum = true;
+ foreach ($var as $key => $value) {
+ if (!is_numeric($key)) {
+ $isnum = false;
+ break;
+ }
+ }
+
+ if ($isnum)
+ return 'array(' . join(', ', array_map(array('rcube_install', '_dump_var'), $var)) . ')';
+ }
+ }
+
+ return var_export($var, true);
+ }
+
+
/**
* Initialize the database with the according schema
*
$db_map = array('pgsql' => 'postgres', 'mysqli' => 'mysql');
$engine = isset($db_map[$DB->db_provider]) ? $db_map[$DB->db_provider] : $DB->db_provider;
- // find out db version
- if ($engine == 'mysql') {
- $DB->query('SELECT VERSION() AS version');
- $sql_arr = $DB->fetch_assoc();
- $version = floatval($sql_arr['version']);
-
- if ($version >= 4.1)
- $engine = 'mysql5';
- }
-
// read schema file from /SQL/*
$fname = "../SQL/$engine.initial.sql";
if ($lines = @file($fname, FILE_SKIP_EMPTY_LINES)) {
}
-
-/**
- * Shortcut function for htmlentities()
- *
- * @param string String to quote
- * @return string The html-encoded string
- */
-function Q($string)
-{
- return htmlentities($string);
-}
-
-
-/**
- * Fake rinternal error handler to catch errors
- */
-function raise_error($p)
-{
- $rci = rcube_install::get_instance();
- $rci->raise_error($p);
-}
-
height: 30em;
}
-dt.propname {
+.propname {
font-family: monospace;
font-size: 9pt;
margin-top: 1em;
border: 2px solid #c2d071;
}
-.warning {
+.suggestion {
+ padding: 0.6em;
+ background-color: #ebebeb;
+ border: 1px solid #999;
+}
+
+p.warning,
+div.warning {
padding: 1em;
background-color: #ef9398;
border: 2px solid #dc5757;
}
+h3.warning {
+ color: #c00;
+ background: url('images/error.png') top left no-repeat;
+ padding-left: 24px;
+}
+
.userconf {
color: #00c;
font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
<h3>Check config files</h3>
<?php
-$read_main = is_readable(INSTALL_PATH.'config/main.inc.php');
-$read_db = is_readable(INSTALL_PATH.'config/db.inc.php');
+$read_main = is_readable(RCMAIL_CONFIG_DIR.'/main.inc.php');
+$read_db = is_readable(RCMAIL_CONFIG_DIR.'/db.inc.php');
if ($read_main && !empty($RCI->config)) {
$RCI->pass('main.inc.php');
$RCI->fail('db.inc.php', 'Unable to read file. Did you create the config files?');
}
+if ($RCI->configured && ($messages = $RCI->check_config())) {
+
+ if (is_array($messages['missing'])) {
+ echo '<h3 class="warning">Missing config options</h3>';
+ echo '<p class="hint">The following config options are not present in the current configuration.<br/>';
+ echo 'Please check the default config files and add the missing properties to your local config files.</p>';
+
+ echo '<ul class="configwarings">';
+ foreach ($messages['missing'] as $msg) {
+ echo html::tag('li', null, html::span('propname', $msg['prop']) . ($msg['name'] ? ': ' . $msg['name'] : ''));
+ }
+ echo '</ul>';
+ }
+
+ if (is_array($messages['replaced'])) {
+ echo '<h3 class="warning">Replaced config options</h3>';
+ echo '<p class="hint">The following config options have been replaced or renamed. ';
+ echo 'Please update them accordingly in your config files.</p>';
+
+ echo '<ul class="configwarings">';
+ foreach ($messages['replaced'] as $msg) {
+ echo html::tag('li', null, html::span('propname', $msg['prop']) .
+ ' was replaced by ' . html::span('propname', $msg['replacement']));
+ }
+ echo '</ul>';
+ }
+
+ if (is_array($messages['obsolete'])) {
+ echo '<h3>Obsolete config options</h3>';
+ echo '<p class="hint">You still have some obsolete or inexistent properties set. This isn\'t a problem but should be noticed.</p>';
+
+ echo '<ul class="configwarings">';
+ foreach ($messages['obsolete'] as $msg) {
+ echo html::tag('li', null, html::span('propname', $msg['prop']) . ($msg['name'] ? ': ' . $msg['name'] : ''));
+ }
+ echo '</ul>';
+ }
+
+ echo '<p class="suggestion">OK, lazy people can download the updated config files here: ';
+ echo html::a(array('href' => './?_mergeconfig=main'), 'main.inc.php') . ' ';
+ echo html::a(array('href' => './?_mergeconfig=db'), 'db.inc.php');
+ echo "</p>";
+
+
+ if (is_array($messages['dependencies'])) {
+ echo '<h3 class="warning">Dependency check failed</h3>';
+ echo '<p class="hint">Some of your configuration settings require other options to be configured or additional PHP modules to be installed</p>';
+
+ echo '<ul class="configwarings">';
+ foreach ($messages['dependencies'] as $msg) {
+ echo html::tag('li', null, html::span('propname', $msg['prop']) . ': ' . $msg['explain']);
+ }
+ echo '</ul>';
+ }
+
+
+}
+
?>
<h3>Check if directories are writable</h3>
if ($RCI->configured) {
$pass = false;
- foreach (array($RCI->config['temp_dir'],$RCI->config['log_dir']) as $dir) {
+
+ $dirs[] = $RCI->config['temp_dir'];
+ if($RCI->config['log_driver'] != 'syslog')
+ $dirs[] = $RCI->config['log_dir'];
+
+ foreach ($dirs as $dir) {
$dirpath = $dir{0} == '/' ? $dir : INSTALL_PATH . $dir;
if (is_writable(realpath($dirpath))) {
$RCI->pass($dir);
$db_working = false;
if ($RCI->configured) {
- if (!empty($RCI->config['db_backend']) && !empty($RCI->config['db_dsnw'])) {
-
- echo 'Backend: ';
- echo 'PEAR::' . strtoupper($RCI->config['db_backend']) . '<br />';
+ if (!empty($RCI->config['db_dsnw'])) {
- $dbclass = 'rcube_' . strtolower($RCI->config['db_backend']);
-
- $DB = new $dbclass($RCI->config['db_dsnw'], '', false);
+ $DB = new rcube_mdb2($RCI->config['db_dsnw'], '', false);
$DB->db_connect('w');
if (!($db_error_msg = $DB->is_error())) {
$RCI->pass('DSN (write)');
$RCI->fail('DSN (write)', $db_error_msg);
echo '<p class="hint">Make sure that the configured database exists and that the user has write privileges<br />';
echo 'DSN: ' . $RCI->config['db_dsnw'] . '</p>';
- if ($RCI->config['db_backend'] == 'mdb2')
- echo '<p class="hint">There are known problems with MDB2 running on PHP 4. Try setting <tt>db_backend</tt> to \'db\' instead</p>';
}
}
else {
$db_read = $DB->query("SELECT count(*) FROM {$RCI->config['db_table_users']}");
if (!$db_read) {
$RCI->fail('DB Schema', "Database not initialized");
- $db_working = false;
echo '<p><input type="submit" name="initdb" value="Initialize database" /></p>';
+ $db_working = false;
+ }
+ /*
+ else if (!$RCI->db_schema_check($update = !empty($_POST['updatedb']))) {
+ $RCI->fail('DB Schema', "Database schema differs");
+
+ echo $update ? '<p class="warning">Failed to update the database schema! Please manually execute the SQL statements from the SQL/*.update.sql file on your database</p>' :
+ '<p><input type="submit" name="updatedb" value="Update schema now" /></p>';
+ $db_working = false;
}
+ */
else {
$RCI->pass('DB Schema');
+ echo '<br />';
}
- echo '<br />';
}
// more database tests
else {
$RCI->fail('DB Write', $RCI->get_error());
}
- echo '<br />';
+ echo '<br />';
// check timezone settings
$tz_db = 'SELECT ' . $DB->unixtimestamp($DB->now()) . ' AS tz_db';
else {
$RCI->fail('SMTP send', 'Invalid sender or recipient');
}
+
+ echo '</p>';
}
-echo '</p>';
-
?>
<table>
--- /dev/null
+<?php
+
+
+/**
+ * Use PHP5 autoload for dynamic class loading
+ * (copy from program/incllude/iniset.php)
+ */
+function __autoload($classname)
+{
+ $filename = preg_replace(
+ array('/MDB2_(.+)/', '/Mail_(.+)/', '/^html_.+/', '/^utf8$/'),
+ array('MDB2/\\1', 'Mail/\\1', 'html', 'utf8.class'),
+ $classname
+ );
+ include_once $filename. '.php';
+}
+
+
+/**
+ * Shortcut function for htmlentities()
+ *
+ * @param string String to quote
+ * @return string The html-encoded string
+ */
+function Q($string)
+{
+ return htmlentities($string, ENT_COMPAT, 'UTF-8');
+}
+
+
+/**
+ * Fake rinternal error handler to catch errors
+ */
+function raise_error($p)
+{
+ $rci = rcube_install::get_instance();
+ $rci->raise_error($p);
+}
+
+
<li>error_reporting E_ALL & ~E_NOTICE (or lower)</li>
<li>file_uploads on (for attachment upload features)</li>
<li>session.auto_start needs to be off</li>
- <li>magic_quotes_gpc off</li>
</ul>
</li>
<li>A MySQL or PostgreSQL database engine or the SQLite extension for PHP</li>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: bugs.inc 1291 2008-04-12 13:54:45Z thomasb $
+ $Id: bugs.inc 2025 2008-10-30 09:15:01Z alec $
*/
function log_bug($arg_arr)
{
global $CONFIG;
- $program = $arg_arr['type']=='xpath' ? 'XPath' : strtoupper($arg_arr['type']);
+ $program = strtoupper($arg_arr['type']);
// write error to local log file
if ($CONFIG['debug_level'] & 1)
{
- $log_entry = sprintf(
- "[%s] %s Error: %s in %s on line %d\n",
+ $post_query = ($_SERVER['REQUEST_METHOD'] == 'POST' ? '?_task='.urlencode($_POST['_task']).'&_action='.urlencode($_POST['_action']) : '');
+ $log_entry = sprintf("[%s] %s Error: %s%s (%s %s)\n",
date("d-M-Y H:i:s O", mktime()),
$program,
$arg_arr['message'],
- $arg_arr['file'],
- $arg_arr['line']);
-
+ $arg_arr['file'] ? sprintf(' in %s on line %d', $arg_arr['file'], $arg_arr['line']) : '',
+ $_SERVER['REQUEST_METHOD'],
+ $_SERVER['REQUEST_URI'] . $post_query);
+
if (empty($CONFIG['log_dir']))
$CONFIG['log_dir'] = INSTALL_PATH.'logs';
// try to open specific log file for writing
- if ($fp = @fopen($CONFIG['log_dir'].'/errors', 'a'))
+ if ($CONFIG['log_driver'] == 'syslog')
+ {
+ syslog(LOG_ERR, $log_entry);
+ }
+ else if ($fp = @fopen($CONFIG['log_dir'].'/errors', 'a'))
{
+ // log_driver == 'file' is the default, assumed here.
fwrite($fp, $log_entry);
fclose($fp);
}
{
protected $tagname;
protected $attrib = array();
- protected $allowed;
+ protected $allowed = array();
protected $content;
public static $common_attrib = array('id','class','style','title','align');
- public static $containers = array('div','span','p','h1','h2','h3','form','textarea');
+ public static $containers = array('iframe','div','span','p','h1','h2','h3','form','textarea','table','tr','th','td','style');
public static $lc_tags = true;
/**
*/
public function show()
{
- return self::tag($this->tagname, $this->attrib, $this->content, $this->allowed);
+ return self::tag($this->tagname, $this->attrib, $this->content, array_merge(self::$common_attrib, $this->allowed));
}
/****** STATIC METHODS *******/
if (is_string($attr)) {
$attr = array('class' => $attr);
}
- return self::tag('div', $attr, $cont, self::$common_attrib);
+ return self::tag('div', $attr, $cont, array_merge(self::$common_attrib, array('onclick')));
}
/**
if (is_string($attr)) {
$attr = array('href' => $attr);
}
- return self::tag('a', $attr, $cont, array_merge(self::$common_attrib, array('href','target','name','onclick','onmouseover','onmouseout')));
+ return self::tag('a', $attr, $cont, array_merge(self::$common_attrib, array('href','target','name','onclick','onmouseover','onmouseout','onmousedown','onmouseup')));
}
/**
return self::tag('label', $attr, $cont, array_merge(self::$common_attrib, array('for')));
}
+ /**
+ * Derrived method to create <iframe></iframe>
+ *
+ * @param mixed Hash array with tag attributes or string with frame source (src)
+ * @return string HTML code
+ * @see html::tag()
+ */
+ public static function iframe($attr = null, $cont = null)
+ {
+ if (is_string($attr)) {
+ $attr = array('src' => $attr);
+ }
+ return self::tag('iframe', $attr, $cont, array_merge(self::$common_attrib, array('src','name','width','height','border','frameborder')));
+ }
+
/**
* Derrived method for line breaks
*
{
protected $tagname = 'input';
protected $type = 'text';
+ protected $allowed = array('type','name','value','size','tabindex','autocomplete','checked','onchange','onclick','disabled','readonly','spellcheck','results');
public function __construct($attrib = array())
{
class html_textarea extends html
{
protected $tagname = 'textarea';
- protected $allowed_attrib = array('name','rows','cols','wrap','tabindex');
+ protected $allowed = array('name','rows','cols','wrap','tabindex','onchange','disabled','readonly','spellcheck');
/**
* Get HTML code for this object
unset($this->attrib['value']);
}
- if (!empty($value) && !isset($this->attrib['mce_editable'])) {
+ if (!empty($value) && !ereg('mce_editor', $this->attrib['class'])) {
$value = Q($value, 'strict', false);
}
- return self::tag($this->tagname, $this->attrib, $value, array_merge(self::$common_attrib, $this->allowed_attrib));
+
+ return self::tag($this->tagname, $this->attrib, $value, array_merge(self::$common_attrib, $this->allowed));
}
}
{
protected $tagname = 'select';
protected $options = array();
+ protected $allowed = array('name','size','tabindex','autocomplete','multiple','onchange','disabled');
/**
* Add a new option to this drop-down
$attr = array(
'value' => $option['value'],
'selected' => (in_array($option['value'], $select, true) ||
- in_array($option['text'], $select, true)) ? 1 : null);
+ in_array($option['text'], $select, true)) ? 1 : null);
$this->content .= self::tag('option', $attr, Q($option['text']));
}
* @param array Cell attributes
* @param string Cell content
*/
- private function add_header($attr, $cont)
+ public function add_header($attr, $cont)
{
if (is_string($attr))
- $attr = array('class' => $attr);
+ $attr = array('class' => $attr);
$cell = new stdClass;
$cell->attrib = $attr;
*
* @param array Row attributes
*/
- private function add_row($attr = array())
+ public function add_row($attr = array())
{
$this->rowindex++;
$this->colindex = 0;
$this->rows[$this->rowindex]->cells = array();
}
+ /**
+ * Set current row attrib
+ *
+ * @param array Row attributes
+ */
+ public function set_row_attribs($attr = array())
+ {
+ if (is_string($attr))
+ $attr = array('class' => $attr);
+
+ $this->rows[$this->rowindex]->attrib = $attr;
+ }
/**
* Build HTML output of the table data
* @param array Table attributes
* @return string The final table HTML code
*/
- public function show($attr = array())
+ public function show($attrib = null)
{
- $this->attrib = array_merge($this->attrib, $attr);
+ if (is_array($attrib))
+ $this->attrib = array_merge($this->attrib, $attrib);
+
$thead = $tbody = "";
// include <thead>
if (!empty($this->header)) {
$rowcontent = '';
foreach ($this->header as $c => $col) {
- $rowcontent .= self::tag('th', $col->attrib, $col->content);
+ $rowcontent .= self::tag('td', $col->attrib, $col->content);
}
$thead = self::tag('thead', null, self::tag('tr', null, $rowcontent));
}
}
if ($r < $this->rowindex || count($row->cells)) {
- $tbody .= self::tag('tr', $rows->attrib, $rowcontent);
+ $tbody .= self::tag('tr', $row->attrib, $rowcontent);
}
}
unset($this->attrib['cols'], $this->attrib['rowsonly']);
return parent::show();
}
+
+ /**
+ * Count number of rows
+ *
+ * @return The number of rows
+ */
+ public function size()
+ {
+ return count($this->rows);
+ }
}
-?>
\ No newline at end of file
+?>
// application constants
-define('RCMAIL_VERSION', '0.2-alpha');
+define('RCMAIL_VERSION', '0.2-stable');
define('RCMAIL_CHARSET', 'UTF-8');
define('JS_OBJECT_NAME', 'rcmail');
define('INSTALL_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');
}
+define('RCMAIL_CONFIG_DIR', INSTALL_PATH . 'config');
+
// make sure path_separator is defined
if (!defined('PATH_SEPARATOR')) {
define('PATH_SEPARATOR', (eregi('win', PHP_OS) ? ';' : ':'));
ini_set('session.name', 'roundcube_sessid');
ini_set('session.use_cookies', 1);
-ini_set('session.gc_maxlifetime', 21600);
-ini_set('session.gc_divisor', 500);
+ini_set('session.only_use_cookies', 1);
+ini_set('session.cookie_secure', ($_SERVER['HTTPS'] && ($_SERVER['HTTPS'] != 'off')));
ini_set('error_reporting', E_ALL&~E_NOTICE);
set_magic_quotes_runtime(0);
set_time_limit(120);
}
+// set internal encoding for mbstring extension
+if(extension_loaded('mbstring'))
+ mb_internal_encoding(RCMAIL_CHARSET);
+
+
/**
* Use PHP5 autoload for dynamic class loading
*
function __autoload($classname)
{
$filename = preg_replace(
- array('/MDB2_(.+)/', '/Mail_(.+)/', '/^html_.+/', '/^utf8$/'),
- array('MDB2/\\1', 'Mail/\\1', 'html', 'utf8.class'),
+ array('/MDB2_(.+)/',
+ '/Mail_(.+)/',
+ '/^html_.+/',
+ '/^utf8$/',
+ '/html2text/'
+ ),
+ array('MDB2/\\1',
+ 'Mail/\\1',
+ 'html',
+ 'utf8.class',
+ 'lib/html2text' // see #1485505
+ ),
$classname
);
include_once $filename. '.php';
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: main.inc 1459 2008-05-30 19:55:28Z alec $
+ $Id: main.inc 2187 2008-12-24 14:19:27Z thomasb $
*/
$opt = rcmail::get_instance()->config->get($config_key);
if (!empty($opt))
- {
- $db = &rcmail::get_instance()->db;
-
- if($db->db_provider=='pgsql') // just for sure
- {
- $db->db_handle->setOption('disable_smart_seqname', true);
- $db->db_handle->setOption('seqname_format', '%s');
- }
-
- return $CONFIG[$opt];
- }
+ return $opt;
return $sequence;
}
}
-/**
- * Load virtuser table in array
- *
- * @return array Virtuser table entries
- */
-function rcmail_getvirtualfile()
- {
- global $CONFIG;
- if (empty($CONFIG['virtuser_file']) || !is_file($CONFIG['virtuser_file']))
- return FALSE;
-
- // read file
- $a_lines = file($CONFIG['virtuser_file']);
- return $a_lines;
- }
-
-
-/**
- * Find matches of the given pattern in virtuser table
- *
- * @param string Regular expression to search for
- * @return array Matching entries
- */
-function rcmail_findinvirtual($pattern)
- {
- $result = array();
- $virtual = rcmail_getvirtualfile();
- if ($virtual==FALSE)
- return $result;
-
- // check each line for matches
- foreach ($virtual as $line)
- {
- $line = trim($line);
- if (empty($line) || $line{0}=='#')
- continue;
-
- if (eregi($pattern, $line))
- $result[] = $line;
- }
-
- return $result;
- }
-
-
/**
* Overwrite action variable
*
function rcmail_url($action, $p=array(), $task=null)
{
$app = rcmail::get_instance();
-
- $qstring = '';
- $base = $app->comm_path;
-
- if ($task && in_array($task, rcmail::$main_tasks))
- $base = ereg_replace('_task=[a-z]+', '_task='.$task, $app->comm_path);
-
- if (is_array($p))
- foreach ($p as $key => $val)
- $qstring .= '&'.urlencode($key).'='.urlencode($val);
-
- return $base . ($action ? '&_action='.$action : '') . $qstring;
+ return $app->url((array)$p + array('_action' => $action, 'task' => $task));
}
-/**
- * Add a localized label to the client environment
- * @deprecated
- */
-function rcube_add_label()
- {
- global $OUTPUT;
-
- $arg_list = func_get_args();
- foreach ($arg_list as $i => $name)
- $OUTPUT->add_label($name);
- }
-
-
/**
* Garbage collector function for temp files.
* Remove temp files older than two days
* Garbage collector for cache entries.
* Remove all expired message cache records
*/
-function rcmail_message_cache_gc()
+function rcmail_cache_gc()
{
- global $DB, $CONFIG;
-
- // no cache lifetime configured
- if (empty($CONFIG['message_cache_lifetime']))
- return;
+ $rcmail = rcmail::get_instance();
+ $db = $rcmail->get_dbh();
// get target timestamp
- $ts = get_offset_time($CONFIG['message_cache_lifetime'], -1);
+ $ts = get_offset_time($rcmail->config->get('message_cache_lifetime', '30d'), -1);
- $DB->query("DELETE FROM ".get_table_name('messages')."
- WHERE created < ".$DB->fromunixtime($ts));
+ $db->query("DELETE FROM ".get_table_name('messages')."
+ WHERE created < " . $db->fromunixtime($ts));
+
+ $db->query("DELETE FROM ".get_table_name('cache')."
+ WHERE created < " . $db->fromunixtime($ts));
}
*/
function rcube_charset_convert($str, $from, $to=NULL)
{
- static $mbstring_loaded = null, $convert_warning = false;
+ static $mbstring_loaded = null;
+ static $mbstring_list = null;
+ static $convert_warning = false;
$from = strtoupper($from);
$to = $to==NULL ? strtoupper(RCMAIL_CHARSET) : strtoupper($to);
return $str;
$aliases = array(
- 'UNKNOWN-8BIT' => 'ISO-8859-15',
- 'X-UNKNOWN' => 'ISO-8859-15',
- 'X-USER-DEFINED' => 'ISO-8859-15',
- 'ISO-8859-8-I' => 'ISO-8859-8',
- 'KS_C_5601-1987' => 'EUC-KR',
+ 'US-ASCII' => 'ISO-8859-1',
+ 'ANSI_X3.110-1983' => 'ISO-8859-1',
+ 'ANSI_X3.4-1968' => 'ISO-8859-1',
+ 'UNKNOWN-8BIT' => 'ISO-8859-15',
+ 'X-UNKNOWN' => 'ISO-8859-15',
+ 'X-USER-DEFINED' => 'ISO-8859-15',
+ 'ISO-8859-8-I' => 'ISO-8859-8',
+ 'KS_C_5601-1987' => 'EUC-KR',
);
// convert charset using iconv module
}
}
- // settings for mbstring module (by Tadashi Jokagi)
- if (is_null($mbstring_loaded)) {
- if ($mbstring_loaded = extension_loaded("mbstring"))
- mb_internal_encoding(RCMAIL_CHARSET);
- }
+ if (is_null($mbstring_loaded))
+ $mbstring_loaded = extension_loaded('mbstring');
+
// convert charset using mbstring module
if ($mbstring_loaded)
{
$aliases['UTF-7'] = 'UTF7-IMAP';
$aliases['WINDOWS-1257'] = 'ISO-8859-13';
- // return if convert succeeded
- if (($out = mb_convert_encoding($str, ($aliases[$to] ? $aliases[$to] : $to), ($aliases[$from] ? $aliases[$from] : $from))) != '')
- return $out;
+ if (is_null($mbstring_list)) {
+ $mbstring_list = mb_list_encodings();
+ $mbstring_list = array_map('strtoupper', $mbstring_list);
+ }
+
+ $mb_from = $aliases[$from] ? $aliases[$from] : $from;
+ $mb_to = $aliases[$to] ? $aliases[$to] : $to;
+
+ // return if encoding found, string matches encoding and convert succeeded
+ if (in_array($mb_from, $mbstring_list) && in_array($mb_to, $mbstring_list))
+ if (mb_check_encoding($str, $mb_from))
+ if ($out = mb_convert_encoding($str, $mb_to, $mb_from))
+ return $out;
}
$is_iso_8859_1 = true;
}
if (!$enctype)
- $enctype = $GLOBALS['OUTPUT_TYPE'];
+ $enctype = $OUTPUT->type;
// encode for plaintext
if ($enctype=='text')
$str = strip_tags($str);
// avoid douple quotation of &
- $out = preg_replace('/&([a-z]{2,5}|#[0-9]{2,4});/', '&\\1;', strtr($str, $encode_arr));
+ $out = preg_replace('/&([A-Za-z]{2,6}|#[0-9]{2,4});/', '&\\1;', strtr($str, $encode_arr));
return $newlines ? nl2br($out) : $out;
}
}
$xml_rep_table['"'] = '"';
+ $js_rep_table['"'] = '\\"';
+ $js_rep_table["'"] = "\\'";
+ $js_rep_table["\\"] = "\\\\";
}
// encode for XML
if ($charset!='UTF-8')
$str = rcube_charset_convert($str, RCMAIL_CHARSET,$charset);
- return preg_replace(array("/\r?\n/", "/\r/", '/<\\//'), array('\n', '\n', '<\\/'), addslashes(strtr($str, $js_rep_table)));
+ return preg_replace(array("/\r?\n/", "/\r/", '/<\\//'), array('\n', '\n', '<\\/'), strtr($str, $js_rep_table));
}
// no encoding given -> return original string
$value = $_COOKIE[$fname];
}
+ // strip single quotes if magic_quotes_sybase is enabled
+ if (ini_get('magic_quotes_sybase'))
+ $value = str_replace("''", "'", $value);
// strip slashes if magic_quotes enabled
- if ((bool)get_magic_quotes_gpc())
+ else if (get_magic_quotes_gpc() || get_magic_quotes_runtime())
$value = stripslashes($value);
// remove HTML tags if not allowed
* Remove all non-ascii and non-word chars
* except . and -
*/
-function asciiwords($str)
+function asciiwords($str, $css_id = false)
{
- return preg_replace('/[^a-z0-9.-_]/i', '', $str);
+ $allowed = 'a-z0-9\_\-' . (!$css_id ? '\.' : '');
+ return preg_replace("/[^$allowed]/i", '', $str);
}
/**
}
-/**
- * Check if a specific template exists
- *
- * @param string Template name
- * @return boolean True if template exists
- */
-function template_exists($name)
- {
- global $CONFIG;
- $skin_path = $CONFIG['skin_path'];
-
- // check template file
- return is_file("$skin_path/templates/$name.html");
- }
-
-
/**
* Create a HTML table based on the given data
*
*/
function rcube_table_output($attrib, $table_data, $a_show_cols, $id_col)
{
- global $DB;
-
- // allow the following attributes to be added to the <table> tag
- $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id', 'cellpadding', 'cellspacing', 'border', 'summary'));
+ global $RCMAIL;
- $table = '<table' . $attrib_str . ">\n";
+ $table = new html_table(/*array('cols' => count($a_show_cols))*/);
- // add table title
- $table .= "<thead><tr>\n";
-
+ // add table header
foreach ($a_show_cols as $col)
- $table .= '<td class="'.$col.'">' . Q(rcube_label($col)) . "</td>\n";
-
- $table .= "</tr></thead>\n<tbody>\n";
+ $table->add_header($col, Q(rcube_label($col)));
$c = 0;
if (!is_array($table_data))
+ {
+ $db = $RCMAIL->get_dbh();
+ while ($table_data && ($sql_arr = $db->fetch_assoc($table_data)))
{
- while ($table_data && ($sql_arr = $DB->fetch_assoc($table_data)))
- {
- $zebra_class = $c%2 ? 'even' : 'odd';
-
- $table .= sprintf('<tr id="rcmrow%d" class="contact '.$zebra_class.'">'."\n", $sql_arr[$id_col]);
+ $zebra_class = $c % 2 ? 'even' : 'odd';
+ $table->add_row(array('id' => 'rcmrow' . $sql_arr[$id_col], 'class' => "contact $zebra_class"));
// format each col
foreach ($a_show_cols as $col)
- {
- $cont = Q($sql_arr[$col]);
- $table .= '<td class="'.$col.'">' . $cont . "</td>\n";
- }
-
- $table .= "</tr>\n";
+ $table->add($col, Q($sql_arr[$col]));
+
$c++;
- }
}
+ }
else
- {
+ {
foreach ($table_data as $row_data)
- {
- $zebra_class = $c%2 ? 'even' : 'odd';
-
- $table .= sprintf('<tr id="rcmrow%s" class="contact '.$zebra_class.'">'."\n", $row_data[$id_col]);
+ {
+ $zebra_class = $c % 2 ? 'even' : 'odd';
+ $table->add_row(array('id' => 'rcmrow' . $row_data[$id_col], 'class' => "contact $zebra_class"));
// format each col
foreach ($a_show_cols as $col)
- {
- $cont = Q($row_data[$col]);
- $table .= '<td class="'.$col.'">' . $cont . "</td>\n";
- }
-
- $table .= "</tr>\n";
+ $table->add($col, Q($row_data[$col]));
+
$c++;
- }
}
+ }
- // complete message table
- $table .= "</tbody></table>\n";
-
- return $table;
+ return $table->show($attrib);
}
// use value from post
if (!empty($_POST[$fname]))
- $value = get_input_value($fname, RCUBE_INPUT_POST);
+ $value = get_input_value($fname, RCUBE_INPUT_POST,
+ $type == 'textarea' && strpos($attrib['class'], 'mce_editor')!==false ? true : false);
$out = $input->show($value);
}
-/**
- * Return the mail domain configured for the given host
- *
- * @param string IMAP host
- * @return string Resolved SMTP host
- */
-function rcmail_mail_domain($host)
- {
- global $CONFIG;
-
- $domain = $host;
- if (is_array($CONFIG['mail_domain']))
- {
- if (isset($CONFIG['mail_domain'][$host]))
- $domain = $CONFIG['mail_domain'][$host];
- }
- else if (!empty($CONFIG['mail_domain']))
- $domain = $CONFIG['mail_domain'];
-
- return $domain;
- }
-
-
/**
* Replace all css definitions with #container [def]
* and remove css-inlined scripting
$last_pos = 0;
// ignore the whole block if evil styles are detected
- if (stristr($source, 'expression') || stristr($source, 'behavior'))
+ $stripped = preg_replace('/[^a-z\(:]/', '', rcmail_xss_entitiy_decode($source));
+ if (preg_match('/expression|behavior|url\(|import/', $stripped))
return '';
// cut out all contents between { and }
array(
'/(^\s*<!--)|(-->\s*$)/',
'/(^\s*|,\s*|\}\s*)([a-z0-9\._#][a-z0-9\.\-_]*)/im',
- '/@import\s+(url\()?[\'"]?([^\)\'"]+)[\'"]?(\))?/ime',
- '/<<str_replacement\[([0-9]+)\]>>/e',
- "/$container_id\s+body/i"
+ "/$container_id\s+body/i",
),
array(
'',
"\\1#$container_id \\2",
- "sprintf(\"@import url('./bin/modcss.php?u=%s&c=%s')\", urlencode(make_absolute_url('\\2','$base_url')), urlencode($container_id))",
- "\$a_css_values[\\1]",
- "$container_id div.rcmBody"
+ "$container_id div.rcmBody",
),
$source);
+
+ // replace all @import statements to modify the imported CSS sources too
+ $styles = preg_replace_callback(
+ '/@import\s+(url\()?[\'"]?([^\)\'"]+)[\'"]?(\))?/im',
+ create_function('$matches', "return sprintf(\"@import url('./bin/modcss.php?u=%s&c=%s')\", urlencode(make_absolute_url(\$matches[2],'$base_url')), urlencode('$container_id'));"),
+ $styles);
+
+ // put block contents back in
+ $styles = preg_replace_callback(
+ '/<<str_replacement\[([0-9]+)\]>>/',
+ create_function('$matches', "\$values = ".var_export($a_css_values, true)."; return \$values[\$matches[1]];"),
+ $styles);
return $styles;
}
+
/**
- * Try to autodetect operating system and find the correct line endings
+ * Decode escaped entities used by known XSS exploits.
+ * See http://downloads.securityfocus.com/vulnerabilities/exploits/26800.eml for examples
*
- * @return string The appropriate mail header delimiter
+ * @param string CSS content to decode
+ * @return string Decoded string
*/
-function rcmail_header_delm()
+function rcmail_xss_entitiy_decode($content)
{
- global $CONFIG;
-
- // use the configured delimiter for headers
- if (!empty($CONFIG['mail_header_delimiter']))
- return $CONFIG['mail_header_delimiter'];
- else if (strtolower(substr(PHP_OS, 0, 3)=='win'))
- return "\r\n";
- else if (strtolower(substr(PHP_OS, 0, 3)=='mac'))
- return "\r\n";
- else
- return "\n";
+ $out = html_entity_decode(html_entity_decode($content));
+ $out = preg_replace_callback('/\\\([0-9a-f]{4})/i', create_function('$matches', 'return chr(hexdec($matches[1]));'), $out);
+ $out = preg_replace('#/\*.*\*/#Um', '', $out);
+ return $out;
}
function parse_attrib_string($str)
{
$attrib = array();
- preg_match_all('/\s*([-_a-z]+)=(["\'])??(?(2)([^\2]+)\2|(\S+?))/Ui', stripslashes($str), $regs, PREG_SET_ORDER);
+ preg_match_all('/\s*([-_a-z]+)=(["\'])??(?(2)([^\2]*)\2|(\S+?))/Ui', stripslashes($str), $regs, PREG_SET_ORDER);
// convert attributes to an associative array (name => value)
if ($regs)
$ts = $date;
else if (!empty($date))
{
- while (($ts = @strtotime($date))===false)
+ // if date parsing fails, we have a date in non-rfc format.
+ // remove token from the end and try again
+ while ((($ts = @strtotime($date))===false) || ($ts < 0))
{
- // if we have a date in non-rfc format
- // remove token from the end and try again
$d = explode(' ', $date);
array_pop($d);
if (!$d) break;
return '';
// get user's timezone
- $tz = $CONFIG['timezone'];
- if ($CONFIG['dst_active'])
- $tz++;
+ if ($CONFIG['timezone'] === 'auto')
+ $tz = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : date('Z')/3600;
+ else {
+ $tz = $CONFIG['timezone'];
+ if ($CONFIG['dst_active'])
+ $tz++;
+ }
// convert time to user's timezone
$timestamp = $ts - date('Z', $ts) + ($tz * 3600);
// month name (long)
else if ($format{$i}=='F')
$out .= rcube_label('long'.strtolower(date('M', $timestamp)));
+ else if ($format{$i}=='x')
+ $out .= strftime('%x %X', $timestamp);
else
$out .= date($format{$i}, $timestamp);
}
*
* @param mixed Debug message or data
*/
-function console($msg)
+function console()
{
- if (!is_string($msg))
- $msg = var_export($msg, true);
+ $msg = array();
+ foreach (func_get_args() as $arg)
+ $msg[] = !is_string($arg) ? var_export($arg, true) : $arg;
if (!($GLOBALS['CONFIG']['debug_level'] & 4))
- write_log('console', $msg);
+ write_log('console', join(";\n", $msg));
else if ($GLOBALS['OUTPUT']->ajax_call)
- print "/*\n $msg \n*/\n";
+ print "/*\n " . join(";\n", $msg) . " \n*/\n";
else
{
print '<div style="background:#eee; border:1px solid #ccc; margin-bottom:3px; padding:6px"><pre>';
- print $msg;
+ print join(";<br/>\n", $msg);
print "</pre></div>\n";
}
}
$log_entry = sprintf("[%s]: %s\n",
date("d-M-Y H:i:s O", mktime()),
$line);
-
- if (empty($CONFIG['log_dir']))
- $CONFIG['log_dir'] = INSTALL_PATH.'logs';
-
- // try to open specific log file for writing
- if ($fp = @fopen($CONFIG['log_dir'].'/'.$name, 'a'))
- {
- fwrite($fp, $log_entry);
- fclose($fp);
+
+ if ($CONFIG['log_driver'] == 'syslog') {
+ if ($name == 'errors')
+ $prio = LOG_ERR;
+ else
+ $prio = LOG_INFO;
+ syslog($prio, $log_entry);
+ } else {
+ // log_driver == 'file' is assumed here
+ if (empty($CONFIG['log_dir']))
+ $CONFIG['log_dir'] = INSTALL_PATH.'logs';
+
+ // try to open specific log file for writing
+ if ($fp = @fopen($CONFIG['log_dir'].'/'.$name, 'a')) {
+ fwrite($fp, $log_entry);
+ fflush($fp);
+ fclose($fp);
}
}
+}
/**
* @return string HTML code for the gui object
*/
function rcmail_mailbox_list($attrib)
- {
- global $IMAP, $CONFIG, $OUTPUT, $COMM_PATH;
- static $s_added_script = FALSE;
+{
+ global $RCMAIL;
static $a_mailboxes;
+
+ $attrib += array('maxlength' => 100, 'relanames' => false);
// add some labels to client
- rcube_add_label('purgefolderconfirm');
- rcube_add_label('deletemessagesconfirm');
-
-// $mboxlist_start = rcube_timer();
+ $RCMAIL->output->add_label('purgefolderconfirm', 'deletemessagesconfirm');
$type = $attrib['type'] ? $attrib['type'] : 'ul';
- $add_attrib = $type=='select' ? array('style', 'class', 'id', 'name', 'onchange') :
- array('style', 'class', 'id');
-
+ unset($attrib['type']);
+
if ($type=='ul' && !$attrib['id'])
$attrib['id'] = 'rcmboxlist';
- // allow the following attributes to be added to the <ul> tag
- $attrib_str = create_attrib_string($attrib, $add_attrib);
-
- $out = '<' . $type . $attrib_str . ">\n";
-
- // add no-selection option
- if ($type=='select' && $attrib['noselection'])
- $out .= sprintf('<option value="0">%s</option>'."\n",
- rcube_label($attrib['noselection']));
-
// get mailbox list
- $mbox_name = $IMAP->get_mailbox_name();
+ $mbox_name = $RCMAIL->imap->get_mailbox_name();
// build the folders tree
- if (empty($a_mailboxes))
- {
+ if (empty($a_mailboxes)) {
// get mailbox list
- $a_folders = $IMAP->list_mailboxes();
- $delimiter = $IMAP->get_hierarchy_delimiter();
+ $a_folders = $RCMAIL->imap->list_mailboxes();
+ $delimiter = $RCMAIL->imap->get_hierarchy_delimiter();
$a_mailboxes = array();
-// rcube_print_time($mboxlist_start, 'list_mailboxes()');
-
foreach ($a_folders as $folder)
rcmail_build_folder_tree($a_mailboxes, $folder, $delimiter);
- }
-
-// var_dump($a_mailboxes);
-
- if ($type=='select')
- $out .= rcmail_render_folder_tree_select($a_mailboxes, $mbox_name, $attrib['maxlength']);
- else
- $out .= rcmail_render_folder_tree_html($a_mailboxes, $mbox_name, $attrib['maxlength']);
-
-// rcube_print_time($mboxlist_start, 'render_folder_tree()');
+ }
+ if ($type=='select') {
+ $select = new html_select($attrib);
+
+ // add no-selection option
+ if ($attrib['noselection'])
+ $select->add(rcube_label($attrib['noselection']), '0');
+
+ rcmail_render_folder_tree_select($a_mailboxes, $mbox_name, $attrib['maxlength'], $select, $attrib['realnames']);
+ $out = $select->show();
+ }
+ else {
+ $js_mailboxlist = array();
+ $out = html::tag('ul', $attrib, rcmail_render_folder_tree_html($a_mailboxes, $mbox_name, $js_mailboxlist, $attrib), html::$common_attrib);
+
+ $RCMAIL->output->add_gui_object('mailboxlist', $attrib['id']);
+ $RCMAIL->output->set_env('mailboxes', $js_mailboxlist);
+ $RCMAIL->output->set_env('collapsed_folders', $RCMAIL->config->get('collapsed_folders'));
+ }
- if ($type=='ul')
- $OUTPUT->add_gui_object('mailboxlist', $attrib['id']);
+ return $out;
+}
- return $out . "</$type>";
- }
+/**
+ * Return the mailboxlist as html_select object
+ *
+ * @param array Named parameters
+ * @return object html_select HTML drop-down object
+ */
+function rcmail_mailbox_select($p = array())
+{
+ global $RCMAIL;
+
+ $p += array('maxlength' => 100, 'relanames' => false);
+ $a_mailboxes = array();
+
+ foreach ($RCMAIL->imap->list_mailboxes() as $folder)
+ rcmail_build_folder_tree($a_mailboxes, $folder, $RCMAIL->imap->get_hierarchy_delimiter());
+ $select = new html_select($p);
+
+ if ($p['noselection'])
+ $select->add($p['noselection'], '');
+
+ rcmail_render_folder_tree_select($a_mailboxes, $mbox, $p['maxlength'], $select, $p['realnames']);
+
+ return $select;
+}
/**
* @access private
*/
function rcmail_build_folder_tree(&$arrFolders, $folder, $delm='/', $path='')
- {
+{
$pos = strpos($folder, $delm);
- if ($pos !== false)
- {
+ if ($pos !== false) {
$subFolders = substr($folder, $pos+1);
$currentFolder = substr($folder, 0, $pos);
- }
- else
- {
+ $virtual = !isset($arrFolders[$currentFolder]);
+ }
+ else {
$subFolders = false;
$currentFolder = $folder;
- }
+ $virtual = false;
+ }
$path .= $currentFolder;
- if (!isset($arrFolders[$currentFolder]))
- {
- $arrFolders[$currentFolder] = array('id' => $path,
- 'name' => rcube_charset_convert($currentFolder, 'UTF-7'),
- 'folders' => array());
- }
+ if (!isset($arrFolders[$currentFolder])) {
+ $arrFolders[$currentFolder] = array(
+ 'id' => $path,
+ 'name' => rcube_charset_convert($currentFolder, 'UTF-7'),
+ 'virtual' => $virtual,
+ 'folders' => array());
+ }
+ else
+ $arrFolders[$currentFolder]['virtual'] = $virtual;
if (!empty($subFolders))
rcmail_build_folder_tree($arrFolders[$currentFolder]['folders'], $subFolders, $delm, $path.$delm);
- }
+}
/**
* Return html for a structured list <ul> for the mailbox tree
* @access private
*/
-function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, $maxlength, $nestLevel=0)
- {
- global $COMM_PATH, $IMAP, $CONFIG, $OUTPUT;
+function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, &$jslist, $attrib, $nestLevel=0)
+{
+ global $RCMAIL, $CONFIG;
+
+ $maxlength = intval($attrib['maxlength']);
+ $realnames = (bool)$attrib['realnames'];
+ $msgcounts = $RCMAIL->imap->get_cache('messagecount');
$idx = 0;
$out = '';
- foreach ($arrFolders as $key => $folder)
- {
- $zebra_class = ($nestLevel*$idx)%2 ? 'even' : 'odd';
- $title = '';
+ foreach ($arrFolders as $key => $folder) {
+ $zebra_class = (($nestLevel+1)*$idx) % 2 == 0 ? 'even' : 'odd';
+ $title = null;
- if ($folder_class = rcmail_folder_classname($folder['id']))
+ if (($folder_class = rcmail_folder_classname($folder['id'])) && !$realnames) {
$foldername = rcube_label($folder_class);
- else
- {
+ }
+ else {
$foldername = $folder['name'];
// shorten the folder name to a given length
- if ($maxlength && $maxlength>1)
- {
+ if ($maxlength && $maxlength > 1) {
$fname = abbreviate_string($foldername, $maxlength);
if ($fname != $foldername)
- $title = ' title="'.Q($foldername).'"';
+ $title = $foldername;
$foldername = $fname;
- }
}
+ }
// make folder name safe for ids and class names
- $folder_id = preg_replace('/[^A-Za-z0-9\-_]/', '', $folder['id']);
- $class_name = preg_replace('/[^a-z0-9\-_]/', '', $folder_class ? $folder_class : strtolower($folder['id']));
+ $folder_id = asciiwords($folder['id'], true);
+ $classes = array('mailbox');
// set special class for Sent, Drafts, Trash and Junk
if ($folder['id']==$CONFIG['sent_mbox'])
- $class_name = 'sent';
+ $classes[] = 'sent';
else if ($folder['id']==$CONFIG['drafts_mbox'])
- $class_name = 'drafts';
+ $classes[] = 'drafts';
else if ($folder['id']==$CONFIG['trash_mbox'])
- $class_name = 'trash';
+ $classes[] = 'trash';
else if ($folder['id']==$CONFIG['junk_mbox'])
- $class_name = 'junk';
-
- $js_name = htmlspecialchars(JQ($folder['id']));
- $out .= sprintf('<li id="rcmli%s" class="mailbox %s %s%s"><a href="%s"'.
- ' onclick="return %s.command(\'list\',\'%s\',this)"'.
- ' onmouseover="return %s.focus_folder(\'%s\')"' .
- ' onmouseout="return %s.unfocus_folder(\'%s\')"' .
- ' onmouseup="return %s.folder_mouse_up(\'%s\')"%s>%s</a>',
- $folder_id,
- $class_name,
- $zebra_class,
- $folder['id']==$mbox_name ? ' selected' : '',
- Q(rcmail_url('', array('_mbox' => $folder['id']))),
- JS_OBJECT_NAME,
- $js_name,
- JS_OBJECT_NAME,
- $js_name,
- JS_OBJECT_NAME,
- $js_name,
- JS_OBJECT_NAME,
- $js_name,
- $title,
- Q($foldername));
+ $classes[] = 'junk';
+ else if ($folder['id']=='INBOX')
+ $classes[] = 'inbox';
+ else
+ $classes[] = '_'.asciiwords($folder_class ? $folder_class : strtolower($folder['id']), true);
+
+ $classes[] = $zebra_class;
+
+ if ($folder['id'] == $mbox_name)
+ $classes[] = 'selected';
- if (!empty($folder['folders']))
- $out .= "\n<ul>\n" . rcmail_render_folder_tree_html($folder['folders'], $mbox_name, $maxlength, $nestLevel+1) . "</ul>\n";
+ $collapsed = preg_match('/&'.rawurlencode($folder['id']).'&/', $RCMAIL->config->get('collapsed_folders'));
+ $unread = $msgcounts ? intval($msgcounts[$folder['id']]['UNSEEN']) : 0;
+
+ if ($folder['virtual'])
+ $classes[] = 'virtual';
+ else if ($unread)
+ $classes[] = 'unread';
+
+ $js_name = JQ($folder['id']);
+ $html_name = Q($foldername . ($unread ? " ($unread)" : ''));
+ $link_attrib = $folder['virtual'] ? array() : array(
+ 'href' => rcmail_url('', array('_mbox' => $folder['id'])),
+ 'onclick' => sprintf("return %s.command('list','%s',this)", JS_OBJECT_NAME, $js_name),
+ 'title' => $title,
+ );
+
+ $out .= html::tag('li', array(
+ 'id' => "rcmli".$folder_id,
+ 'class' => join(' ', $classes),
+ 'noclose' => true),
+ html::a($link_attrib, $html_name) .
+ (!empty($folder['folders']) ? html::div(array(
+ 'class' => ($collapsed ? 'collapsed' : 'expanded'),
+ 'style' => "position:absolute",
+ 'onclick' => sprintf("%s.command('collapse-folder', '%s')", JS_OBJECT_NAME, $js_name)
+ ), ' ') : ''));
+
+ $jslist[$folder_id] = array('id' => $folder['id'], 'name' => $foldername, 'virtual' => $folder['virtual']);
+
+ if (!empty($folder['folders'])) {
+ $out .= html::tag('ul', array('style' => ($collapsed ? "display:none;" : null)),
+ rcmail_render_folder_tree_html($folder['folders'], $mbox_name, $jslist, $attrib, $nestLevel+1));
+ }
$out .= "</li>\n";
$idx++;
- }
+ }
return $out;
- }
+}
/**
* Return html for a flat list <select> for the mailbox tree
* @access private
*/
-function rcmail_render_folder_tree_select(&$arrFolders, &$mbox_name, $maxlength, $nestLevel=0, $selected='')
+function rcmail_render_folder_tree_select(&$arrFolders, &$mbox_name, $maxlength, &$select, $realnames=false, $nestLevel=0)
{
- global $IMAP, $OUTPUT;
-
$idx = 0;
$out = '';
foreach ($arrFolders as $key=>$folder)
{
- if ($folder_class = rcmail_folder_classname($folder['id']))
+ if (!$realnames && ($folder_class = rcmail_folder_classname($folder['id'])))
$foldername = rcube_label($folder_class);
else
{
$foldername = abbreviate_string($foldername, $maxlength);
}
- $out .= sprintf('<option value="%s"%s>%s%s</option>'."\n",
- htmlspecialchars($folder['id']),
- ($selected == $foldername ? ' selected="selected"' : ''),
- str_repeat(' ', $nestLevel*4),
- Q($foldername));
+ $select->add(str_repeat(' ', $nestLevel*4) . $foldername, $folder['id']);
if (!empty($folder['folders']))
- $out .= rcmail_render_folder_tree_select($folder['folders'], $mbox_name, $maxlength, $nestLevel+1, $selected);
+ $out .= rcmail_render_folder_tree_select($folder['folders'], $mbox_name, $maxlength, $select, $realnames, $nestLevel+1);
$idx++;
}
{
global $CONFIG;
- $cname = null;
- $folder_lc = strtolower($folder_id);
-
// for these mailboxes we have localized labels and css classes
- foreach (array('inbox', 'sent', 'drafts', 'trash', 'junk') as $smbx)
+ foreach (array('sent', 'drafts', 'trash', 'junk') as $smbx)
{
- if ($folder_lc == $smbx || $folder_id == $CONFIG[$smbx.'_mbox'])
- $cname = $smbx;
+ if ($folder_id == $CONFIG[$smbx.'_mbox'])
+ return $smbx;
}
-
- return $cname;
+
+ if ($folder_id == 'INBOX')
+ return 'inbox';
}
}
+/**
+ * Output HTML editor scripts
+ *
+ * @param string Editor mode
+ */
+function rcube_html_editor($mode='')
+{
+ global $OUTPUT, $CONFIG;
+
+ $lang = $tinylang = strtolower(substr($_SESSION['language'], 0, 2));
+ if (!file_exists(INSTALL_PATH . 'program/js/tiny_mce/langs/'.$tinylang.'.js'))
+ $tinylang = 'en';
+
+ $OUTPUT->include_script('tiny_mce/tiny_mce.js');
+ $OUTPUT->include_script('editor.js');
+ $OUTPUT->add_script('rcmail_editor_init("$__skin_path", "'.JQ($tinylang).'", '.intval($CONFIG['enable_spellcheck']).', "'.$mode.'");');
+}
+
?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: rcube_browser.php 328 2006-08-30 17:41:21Z thomasb $
+ $Id: rcmail.php 328 2006-08-30 17:41:21Z thomasb $
*/
{
$config_all = $this->config->all();
+ // initialize syslog
+ if ($this->config->get('log_driver') == 'syslog') {
+ $syslog_id = $this->config->get('syslog_id', 'roundcube');
+ $syslog_facility = $this->config->get('syslog_facility', LOG_USER);
+ openlog($syslog_id, LOG_ODELAY, $syslog_facility);
+ }
+
// set task and action properties
$this->set_task(strip_quotes(get_input_value('_task', RCUBE_INPUT_GPC)));
- $this->action = strip_quotes(get_input_value('_action', RCUBE_INPUT_GPC));
+ $this->action = asciiwords(get_input_value('_action', RCUBE_INPUT_GPC));
// connect to database
$GLOBALS['DB'] = $this->get_dbh();
$_SESSION['temp'] = true;
}
-
// create user object
$this->set_user(new rcube_user($_SESSION['user_id']));
$task = 'mail';
$this->task = $task;
- $this->comm_path = './?_task=' . $task;
+ $this->comm_path = $this->url(array('task' => $task));
if ($this->output)
$this->output->set_env('task', $task);
$this->config->merge((array)$this->user->get_prefs());
}
- $_SESSION['language'] = $this->user->language = $this->language_prop($this->config->get('language'));
+ $_SESSION['language'] = $this->user->language = $this->language_prop($this->config->get('language', $_SESSION['language']));
// set localization
- setlocale(LC_ALL, $_SESSION['language'] . '.utf8');
+ setlocale(LC_ALL, $_SESSION['language'] . '.utf8', 'en_US.utf8');
+
+ // workaround for http://bugs.php.net/bug.php?id=18556
+ if (in_array($_SESSION['language'], array('tr_TR', 'ku', 'az_AZ')))
+ setlocale(LC_CTYPE, 'en_US' . '.utf8');
}
private function language_prop($lang)
{
static $rcube_languages, $rcube_language_aliases;
-
+
+ // user HTTP_ACCEPT_LANGUAGE if no language is specified
+ if (empty($lang) || $lang == 'auto') {
+ $accept_langs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
+ $lang = str_replace('-', '_', $accept_langs[0]);
+ }
+
if (empty($rcube_languages)) {
@include(INSTALL_PATH . 'program/localization/index.inc');
}
/**
* Get the current database connection
*
- * @return object rcube_db Database connection object
+ * @return object rcube_mdb2 Database connection object
*/
public function get_dbh()
{
if (!$this->db) {
- $dbclass = "rcube_" . $this->config->get('db_backend', 'mdb2');
$config_all = $this->config->all();
- $this->db = new $dbclass($config_all['db_dsnw'], $config_all['db_dsnr'], $config_all['db_persistent']);
+ $this->db = new rcube_mdb2($config_all['db_dsnw'], $config_all['db_dsnr'], $config_all['db_persistent']);
$this->db->sqlite_initials = INSTALL_PATH . 'SQL/sqlite.initial.sql';
$this->db->set_debug((bool)$config_all['sql_debug']);
$this->db->db_connect('w');
}
+ /**
+ * Return instance of the internal address book class
+ *
+ * @param boolean True if the address book needs to be writeable
+ * @return object rcube_contacts Address book object
+ */
+ public function get_address_book($id, $writeable = false)
+ {
+ $contacts = null;
+ $ldap_config = (array)$this->config->get('ldap_public');
+ $abook_type = strtolower($this->config->get('address_book_type'));
+
+ if ($id && $ldap_config[$id]) {
+ $contacts = new rcube_ldap($ldap_config[$id]);
+ }
+ else if ($abook_type == 'ldap') {
+ // Use the first writable LDAP address book.
+ foreach ($ldap_config as $id => $prop) {
+ if (!$writeable || $prop['writable']) {
+ $contacts = new rcube_ldap($prop);
+ break;
+ }
+ }
+ }
+ else {
+ $contacts = new rcube_contacts($this->db, $this->user->ID);
+ }
+
+ return $contacts;
+ }
+
+
/**
* Init output object for GUI and add common scripts.
* This will instantiate a rcmail_template object and set
* environment vars according to the current session and configuration
+ *
+ * @param boolean True if this request is loaded in a (i)frame
+ * @return object rcube_template Reference to HTML output object
*/
public function load_gui($framed = false)
{
// init output page
- $this->output = new rcube_template($this->task, $framed);
+ if (!($this->output instanceof rcube_template))
+ $this->output = new rcube_template($this->task, $framed);
- foreach (array('flag_for_deletion') as $js_config_var) {
+ foreach (array('flag_for_deletion','read_when_deleted') as $js_config_var) {
$this->output->set_env($js_config_var, $this->config->get($js_config_var));
}
+
+ // set keep-alive/check-recent interval
+ if ($keep_alive = $this->config->get('keep_alive')) {
+ // be sure that it's less than session lifetime
+ if ($session_lifetime = $this->config->get('session_lifetime'))
+ $keep_alive = min($keep_alive, $session_lifetime * 60 - 30);
+ $this->output->set_env('keep_alive', max(60, $keep_alive));
+ }
if ($framed) {
$this->comm_path .= '&_framed=1';
/**
* Create an output object for JSON responses
+ *
+ * @return object rcube_json_output Reference to JSON output object
*/
public function init_json()
{
- $this->output = new rcube_json_output($this->task);
+ if (!($this->output instanceof rcube_json_output))
+ $this->output = new rcube_json_output($this->task);
return $this->output;
}
// set pagesize from config
$this->imap->set_pagesize($this->config->get('pagesize', 50));
+
+ // Setting root and delimiter before iil_Connect can save time detecting them
+ // using NAMESPACE and LIST
+ $options = array(
+ 'imap' => $this->config->get('imap_auth_type', 'check'),
+ 'delimiter' => isset($_SESSION['imap_delimiter']) ? $_SESSION['imap_delimiter'] : $this->config->get('imap_delimiter'),
+ );
+
+ if (isset($_SESSION['imap_root']))
+ $options['rootdir'] = $_SESSION['imap_root'];
+ else if ($imap_root = $this->config->get('imap_root'))
+ $options['rootdir'] = $imap_root;
+
+ $this->imap->set_options($options);
// set global object for backward compatibility
$GLOBALS['IMAP'] = $this->imap;
{
$conn = false;
- if ($_SESSION['imap_host']) {
- if (!($conn = $this->imap->connect($_SESSION['imap_host'], $_SESSION['username'], $this->decrypt_passwd($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl'], rcmail::get_instance()->config->get('imap_auth_type', 'check')))) {
+ if ($_SESSION['imap_host'] && !$this->imap->conn) {
+ if (!($conn = $this->imap->connect($_SESSION['imap_host'], $_SESSION['username'], $this->decrypt_passwd($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl']))) {
if ($this->output)
$this->output->show_message($this->imap->error_code == -1 ? 'imaperror' : 'sessionerror', 'error');
}
$this->set_imap_prop();
}
- return $conn;
+ return $conn;
}
// lowercase username if it's an e-mail address (#1484473)
if (strpos($username, '@'))
- $username = strtolower($username);
+ $username = rc_strtolower($username);
// user already registered -> overwrite username
if ($user = rcube_user::query($username, $host))
$username = $user->data['username'];
// exit if IMAP login failed
- if (!($imap_login = $this->imap->connect($host, $username, $pass, $imap_port, $imap_ssl, $config['imap_auth_type'])))
+ if (!($imap_login = $this->imap->connect($host, $username, $pass, $imap_port, $imap_ssl)))
return false;
// user already registered -> update user's record
raise_error(array(
'code' => 600,
'type' => 'php',
- 'file' => "config/main.inc.php",
+ 'file' => RCMAIL_CONFIG_DIR."/main.inc.php",
'message' => "Acces denied for new user $username. 'auto_create_user' is disabled"
), true, false);
}
$_SESSION['imap_ssl'] = $imap_ssl;
$_SESSION['password'] = $this->encrypt_passwd($pass);
$_SESSION['login_time'] = mktime();
+
+ if ($_REQUEST['_timezone'] != '_default_')
+ $_SESSION['timezone'] = floatval($_REQUEST['_timezone']);
// force reloading complete list of subscribed mailboxes
$this->set_imap_prop();
{
$this->imap->set_charset($this->config->get('default_charset', RCMAIL_CHARSET));
- // set root dir from config
- if ($imap_root = $this->config->get('imap_root')) {
- $this->imap->set_rootdir($imap_root);
- }
if ($default_folders = $this->config->get('default_imap_folders')) {
$this->imap->set_default_mailboxes($default_folders);
}
if (isset($_SESSION['page'])) {
$this->imap->set_page($_SESSION['page']);
}
+
+ // cache IMAP root and delimiter in session for performance reasons
+ $_SESSION['imap_root'] = $this->imap->root_dir;
+ $_SESSION['imap_delimiter'] = $this->imap->delimiter;
}
public function autoselect_host()
{
$default_host = $this->config->get('default_host');
- $host = !empty($default_host) ? get_input_value('_host', RCUBE_INPUT_POST) : $default_host;
+ $host = null;
- if (is_array($host)) {
+ if (is_array($default_host)) {
+ $post_host = get_input_value('_host', RCUBE_INPUT_POST);
+
+ // direct match in default_host array
+ if ($default_host[$post_host] || in_array($post_host, array_values($default_host))) {
+ $host = $post_host;
+ }
+
+ // try to select host by mail domain
list($user, $domain) = explode('@', get_input_value('_user', RCUBE_INPUT_POST));
if (!empty($domain)) {
- foreach ($host as $imap_host => $mail_domains) {
+ foreach ($default_host as $imap_host => $mail_domains) {
if (is_array($mail_domains) && in_array($domain, $mail_domains)) {
$host = $imap_host;
break;
}
// take the first entry if $host is still an array
- if (is_array($host))
- $host = array_shift($host);
+ if (empty($host)) {
+ $host = array_shift($default_host);
+ }
}
+ else if (empty($default_host)) {
+ $host = get_input_value('_host', RCUBE_INPUT_POST);
+ }
+ else
+ $host = $default_host;
return $host;
}
*/
public function load_language($lang = null)
{
- $lang = $lang ? $this->language_prop($lang) : $_SESSION['language'];
+ $lang = $this->language_prop(($lang ? $lang : $_SESSION['language']));
// load localized texts
if (empty($this->texts) || $lang != $_SESSION['language']) {
if (!$valid || ($_SERVER['REQUEST_METHOD']!='POST' && $now - $_SESSION['auth_time'] > 300)) {
$_SESSION['last_auth'] = $_SESSION['auth_time'];
$_SESSION['auth_time'] = $now;
- setcookie('sessauth', $this->get_auth_hash(session_id(), $now));
+ rcmail::setcookie('sessauth', $this->get_auth_hash(session_id(), $now), 0);
}
}
else {
*/
public function kill_session()
{
- $user_prefs = $this->user->get_prefs();
-
- if ((isset($_SESSION['sort_col']) && $_SESSION['sort_col'] != $user_prefs['message_sort_col']) ||
- (isset($_SESSION['sort_order']) && $_SESSION['sort_order'] != $user_prefs['message_sort_order'])) {
- $this->user->save_prefs(array('message_sort_col' => $_SESSION['sort_col'], 'message_sort_order' => $_SESSION['sort_order']));
- }
-
- $_SESSION = array('language' => $USER->language, 'auth_time' => time(), 'temp' => true);
- setcookie('sessauth', '-del-', time() - 60);
+ $_SESSION = array('language' => $this->user->language, 'auth_time' => time(), 'temp' => true);
+ rcmail::setcookie('sessauth', '-del-', time() - 60);
$this->user->reset();
}
return preg_replace('/\x00/', '', $pass);
}
+
+ /**
+ * Build a valid URL to this instance of RoundCube
+ *
+ * @param mixed Either a string with the action or url parameters as key-value pairs
+ * @return string Valid application URL
+ */
+ public function url($p)
+ {
+ if (!is_array($p))
+ $p = array('_action' => @func_get_arg(0));
+
+ if (!$p['task'] || !in_array($p['task'], rcmail::$main_tasks))
+ $p['task'] = $this->task;
+
+ $p['_task'] = $p['task'];
+ unset($p['task']);
+
+ $url = './';
+ $delm = '?';
+ foreach (array_reverse($p) as $par => $val)
+ {
+ if (!empty($val)) {
+ $url .= $delm.urlencode($par).'='.urlencode($val);
+ $delm = '&';
+ }
+ }
+ return $url;
+ }
+
+
+ /**
+ * Helper method to set a cookie with the current path and host settings
+ *
+ * @param string Cookie name
+ * @param string Cookie value
+ * @param string Expiration time
+ */
+ public static function setcookie($name, $value, $exp = 0)
+ {
+ $cookie = session_get_cookie_params();
+ setcookie($name, $value, $exp, $cookie['path'], $cookie['domain'],
+ ($_SERVER['HTTPS'] && ($_SERVER['HTTPS'] != 'off')));
+ }
}
$this->linux = stristr($HTTP_USER_AGENT, 'linux');
$this->unix = stristr($HTTP_USER_AGENT, 'unix');
+ $this->opera = stristr($HTTP_USER_AGENT, 'opera');
$this->ns4 = stristr($HTTP_USER_AGENT, 'mozilla/4') && !stristr($HTTP_USER_AGENT, 'msie');
$this->ns = ($this->ns4 || stristr($HTTP_USER_AGENT, 'netscape'));
- $this->ie = stristr($HTTP_USER_AGENT, 'msie');
+ $this->ie = stristr($HTTP_USER_AGENT, 'compatible; msie') && !$this->opera;
$this->mz = stristr($HTTP_USER_AGENT, 'mozilla/5');
- $this->opera = stristr($HTTP_USER_AGENT, 'opera');
- $this->safari = stristr($HTTP_USER_AGENT, 'safari');
+ $this->khtml = stristr($HTTP_USER_AGENT, 'khtml');
+ $this->safari = ($this->khtml || stristr($HTTP_USER_AGENT, 'safari'));
if ($this->ns) {
$test = eregi("mozilla\/([0-9\.]+)", $HTTP_USER_AGENT, $regs);
class rcube_config
{
private $prop = array();
+ private $errors = array();
/**
ob_start();
// load main config file
- include_once(INSTALL_PATH . 'config/main.inc.php');
- $this->prop = (array)$rcmail_config;
+ if (include(RCMAIL_CONFIG_DIR . '/main.inc.php'))
+ $this->prop = (array)$rcmail_config;
+ else
+ $this->errors[] = 'main.inc.php was not found.';
// load database config
- include_once(INSTALL_PATH . 'config/db.inc.php');
- $this->prop += (array)$rcmail_config;
+ if (include(RCMAIL_CONFIG_DIR . '/db.inc.php'))
+ $this->prop += (array)$rcmail_config;
+ else
+ $this->errors[] = 'db.inc.php was not found.';
// load host-specific configuration
$this->load_host_config();
+ // set skin (with fallback to old 'skin_path' property)
+ if (empty($this->prop['skin']) && !empty($this->prop['skin_path']))
+ $this->prop['skin'] = str_replace('skins/', '', unslashify($this->prop['skin_path']));
+ else if (empty($this->prop['skin']))
+ $this->prop['skin'] = 'default';
+
// fix paths
- $this->prop['skin_path'] = $this->prop['skin_path'] ? unslashify($this->prop['skin_path']) : 'skins/default';
$this->prop['log_dir'] = $this->prop['log_dir'] ? unslashify($this->prop['log_dir']) : INSTALL_PATH . 'logs';
-
- // handle aliases
- if (isset($this->prop['locale_string']) && empty($this->prop['language']))
- $this->prop['language'] = $this->prop['locale_string'];
+ $this->prop['temp_dir'] = $this->prop['temp_dir'] ? unslashify($this->prop['temp_dir']) : INSTALL_PATH . 'temp';
+
+ // fix default imap folders encoding
+ foreach (array('drafts_mbox', 'junk_mbox', 'sent_mbox', 'trash_mbox') as $folder)
+ $this->prop[$folder] = rcube_charset_convert($this->prop[$folder], RCMAIL_CHARSET, 'UTF-7');
+
+ if (!empty($this->prop['default_imap_folders']))
+ foreach ($this->prop['default_imap_folders'] as $n => $folder)
+ $this->prop['default_imap_folders'][$n] = rcube_charset_convert($folder, RCMAIL_CHARSET, 'UTF-7');
// set PHP error logging according to config
if ($this->prop['debug_level'] & 1) {
ini_set('log_errors', 1);
- ini_set('error_log', $this->prop['log_dir'] . '/errors');
+
+ if ($this->prop['log_driver'] == 'syslog') {
+ ini_set('error_log', 'syslog');
+ } else {
+ ini_set('error_log', $this->prop['log_dir'].'/errors');
+ }
}
if ($this->prop['debug_level'] & 4) {
ini_set('display_errors', 1);
$fname = preg_replace('/[^a-z0-9\.\-_]/i', '', $_SERVER['HTTP_HOST']) . '.inc.php';
}
- if ($fname && is_file(INSTALL_PATH . 'config/' . $fname)) {
- include(INSTALL_PATH . 'config/' . $fname);
+ if ($fname && is_file(RCMAIL_CONFIG_DIR . '/' . $fname)) {
+ include(RCMAIL_CONFIG_DIR . '/' . $fname);
$this->prop = array_merge($this->prop, (array)$rcmail_config);
}
}
}
+ /**
+ * Try to autodetect operating system and find the correct line endings
+ *
+ * @return string The appropriate mail header delimiter
+ */
+ public function header_delimiter()
+ {
+ // use the configured delimiter for headers
+ if (!empty($this->prop['mail_header_delimiter']))
+ return $this->prop['mail_header_delimiter'];
+ else if (strtolower(substr(PHP_OS, 0, 3) == 'win'))
+ return "\r\n";
+ else if (strtolower(substr(PHP_OS, 0, 3) == 'mac'))
+ return "\r\n";
+ else
+ return "\n";
+ }
+
+
+
+ /**
+ * Return the mail domain configured for the given host
+ *
+ * @param string IMAP host
+ * @return string Resolved SMTP host
+ */
+ public function mail_domain($host)
+ {
+ $domain = $host;
+
+ if (is_array($this->prop['mail_domain'])) {
+ if (isset($this->prop['mail_domain'][$host]))
+ $domain = $this->prop['mail_domain'][$host];
+ }
+ else if (!empty($this->prop['mail_domain']))
+ $domain = $this->prop['mail_domain'];
+
+ return $domain;
+ }
+
+
+ /**
+ * Getter for error state
+ *
+ * @return mixed Error message on error, False if no errors
+ */
+ public function get_error()
+ {
+ return empty($this->errors) ? false : join("\n", $this->errors);
+ }
+
+
}
var $result = null;
var $search_fields;
var $search_string;
- var $table_cols = array('name', 'email', 'firstname', 'surname');
+ var $table_cols = array('name', 'email', 'firstname', 'surname', 'vcard');
/** public properties */
var $primary_key = 'contact_id';
$this->ready = $this->db && !$this->db->is_error();
}
- /**
- * PHP 4 object constructor
- *
- * @see rcube_contacts::__construct()
- */
- function rcube_contacts($dbconn, $user)
- {
- $this->__construct($dbconn, $user);
- }
-
/**
* Set internal list page
if ($col == 'ID' || $col == $this->primary_key)
{
$ids = !is_array($value) ? split(',', $value) : $value;
- $add_where[] = $this->primary_key." IN (".join(',', $ids).")";
+ $add_where[] = $this->primary_key.' IN ('.join(',', $ids).')';
}
else if ($strict)
- $add_where[] = $this->db->quoteIdentifier($col)."=".$this->db->quote($value);
+ $add_where[] = $this->db->quoteIdentifier($col).'='.$this->db->quote($value);
else
- $add_where[] = $this->db->quoteIdentifier($col)." LIKE ".$this->db->quote(strlen($value)>2 ? "%$value%" : "$value%");
+ $add_where[] = $this->db->ilike($col, '%'.$value.'%');
}
if (!empty($add_where))
+++ /dev/null
-<?php
-
-/*
- +-----------------------------------------------------------------------+
- | program/include/rcube_db.php |
- | |
- | This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- | PURPOSE: |
- | PEAR:DB wrapper class that implements PEAR DB functions |
- | See http://pear.php.net/package/DB |
- | |
- +-----------------------------------------------------------------------+
- | Author: David Saez Padros <david@ols.es> |
- | Thomas Bruederli <roundcube@gmail.com> |
- +-----------------------------------------------------------------------+
-
- $Id: rcube_db.php 1291 2008-04-12 13:54:45Z thomasb $
-
-*/
-
-
-/**
- * Database independent query interface
- *
- * This is a wrapper for the PEAR::DB class
- *
- * @package Database
- * @author David Saez Padros <david@ols.es>
- * @author Thomas Bruederli <roundcube@gmail.com>
- * @version 1.17
- * @link http://pear.php.net/package/DB
- */
-class rcube_db
- {
- var $db_dsnw; // DSN for write operations
- var $db_dsnr; // DSN for read operations
- var $db_connected = false; // Already connected ?
- var $db_mode = ''; // Connection mode
- var $db_handle = 0; // Connection handle
- var $db_pconn = false; // Use persistent connections
- var $db_error = false;
- var $db_error_msg = '';
-
- var $a_query_results = array('dummy');
- var $last_res_id = 0;
-
-
- /**
- * Object constructor
- *
- * @param string DSN for read/write operations
- * @param string Optional DSN for read only operations
- */
- function __construct($db_dsnw, $db_dsnr='', $pconn=false)
- {
- if ($db_dsnr=='')
- $db_dsnr=$db_dsnw;
-
- $this->db_dsnw = $db_dsnw;
- $this->db_dsnr = $db_dsnr;
- $this->db_pconn = $pconn;
-
- $dsn_array = DB::parseDSN($db_dsnw);
- $this->db_provider = $dsn_array['phptype'];
- }
-
-
- /**
- * PHP 4 object constructor
- *
- * @see rcube_db::__construct
- */
- function rcube_db($db_dsnw, $db_dsnr='', $pconn=false)
- {
- $this->__construct($db_dsnw, $db_dsnr, $pconn);
- }
-
-
- /**
- * Connect to specific database
- *
- * @param string DSN for DB connections
- * @return object PEAR database handle
- * @access private
- */
- function dsn_connect($dsn)
- {
- // Use persistent connections if available
- $dbh = DB::connect($dsn, array('persistent' => $this->db_pconn));
-
- if (DB::isError($dbh))
- {
- $this->db_error = TRUE;
- $this->db_error_msg = $dbh->getMessage();
-
- raise_error(array('code' => 603, 'type' => 'db', 'line' => __LINE__, 'file' => __FILE__,
- 'message' => $this->db_error_msg), TRUE, FALSE);
-
- return FALSE;
- }
-
- else if ($this->db_provider=='sqlite')
- {
- $dsn_array = DB::parseDSN($dsn);
- if (!filesize($dsn_array['database']) && !empty($this->sqlite_initials))
- $this->_sqlite_create_database($dbh, $this->sqlite_initials);
- }
-
- return $dbh;
- }
-
-
- /**
- * Connect to appropiate databse
- * depending on the operation
- *
- * @param string Connection mode (r|w)
- * @access public
- */
- function db_connect($mode)
- {
- $this->db_mode = $mode;
-
- // Already connected
- if ($this->db_connected)
- {
- // no replication, current connection is ok
- if ($this->db_dsnw==$this->db_dsnr)
- return;
-
- // connected to master, current connection is ok
- if ($this->db_mode=='w')
- return;
-
- // Same mode, current connection is ok
- if ($this->db_mode==$mode)
- return;
- }
-
- if ($mode=='r')
- $dsn = $this->db_dsnr;
- else
- $dsn = $this->db_dsnw;
-
- $this->db_handle = $this->dsn_connect($dsn);
- $this->db_connected = $this->db_handle ? TRUE : FALSE;
- }
-
-
- /**
- * Activate/deactivate debug mode
- * (not implemented)
- */
- function set_debug($dbg = true)
- {
-
- }
-
-
- /**
- * Getter for error state
- *
- * @param boolean True on error
- */
- function is_error()
- {
- return $this->db_error ? $this->db_error_msg : FALSE;
- }
-
-
- /**
- * Execute a SQL query
- *
- * @param string SQL query to execute
- * @param mixed Values to be inserted in query
- * @return number Query handle identifier
- * @access public
- */
- function query()
- {
- $params = func_get_args();
- $query = array_shift($params);
-
- return $this->_query($query, 0, 0, $params);
- }
-
-
- /**
- * Execute a SQL query with limits
- *
- * @param string SQL query to execute
- * @param number Offset for LIMIT statement
- * @param number Number of rows for LIMIT statement
- * @param mixed Values to be inserted in query
- * @return number Query handle identifier
- * @access public
- */
- function limitquery()
- {
- $params = func_get_args();
- $query = array_shift($params);
- $offset = array_shift($params);
- $numrows = array_shift($params);
-
- return $this->_query($query, $offset, $numrows, $params);
- }
-
-
- /**
- * Execute a SQL query with limits
- *
- * @param string SQL query to execute
- * @param number Offset for LIMIT statement
- * @param number Number of rows for LIMIT statement
- * @param array Values to be inserted in query
- * @return number Query handle identifier
- * @access private
- */
- function _query($query, $offset, $numrows, $params)
- {
- // Read or write ?
- if (strtolower(trim(substr($query,0,6)))=='select')
- $mode='r';
- else
- $mode='w';
-
- $this->db_connect($mode);
-
- if (!$this->db_connected)
- return FALSE;
-
- if ($this->db_provider == 'sqlite')
- $this->_sqlite_prepare();
-
- if ($numrows || $offset)
- $result = $this->db_handle->limitQuery($query,$offset,$numrows,$params);
- else
- $result = $this->db_handle->query($query, $params);
-
- // add result, even if it's an error
- return $this->_add_result($result);
- }
-
-
- /**
- * Get number of rows for a SQL query
- * If no query handle is specified, the last query will be taken as reference
- *
- * @param number Optional query handle identifier
- * @return mixed Number of rows or FALSE on failure
- * @access public
- */
- function num_rows($res_id=NULL)
- {
- if (!$this->db_handle)
- return FALSE;
-
- if ($result = $this->_get_result($res_id))
- return $result->numRows();
- else
- return FALSE;
- }
-
-
- /**
- * Get number of affected rows fort he last query
- *
- * @return mixed Number of rows or FALSE on failure
- * @access public
- */
- function affected_rows()
- {
- if (!$this->db_handle)
- return FALSE;
-
- return $this->db_handle->affectedRows();
- }
-
-
- /**
- * Get last inserted record ID
- * For Postgres databases, a sequence name is required
- *
- * @param string Sequence name for increment
- * @return mixed ID or FALSE on failure
- * @access public
- */
- function insert_id($sequence = '')
- {
- if (!$this->db_handle || $this->db_mode=='r')
- return FALSE;
-
- switch($this->db_provider)
- {
- case 'pgsql':
- $result = &$this->db_handle->getOne("SELECT CURRVAL('$sequence')");
- if (DB::isError($result))
- raise_error(array('code' => 500, 'type' => 'db', 'line' => __LINE__, 'file' => __FILE__,
- 'message' => $result->getMessage()), TRUE, FALSE);
- return $result;
-
- case 'mssql':
- $result = &$this->db_handle->getOne("SELECT @@IDENTITY");
- if (DB::isError($result))
- raise_error(array('code' => 500, 'type' => 'db', 'line' => __LINE__, 'file' => __FILE__,
- 'message' => $result->getMessage()), TRUE, FALSE);
- return $result;
-
- case 'mysql': // This is unfortuneate
- return mysql_insert_id($this->db_handle->connection);
-
- case 'mysqli':
- return mysqli_insert_id($this->db_handle->connection);
-
- case 'sqlite':
- return sqlite_last_insert_rowid($this->db_handle->connection);
-
- default:
- die("portability issue with this database, please have the developer fix");
- }
- }
-
-
- /**
- * Get an associative array for one row
- * If no query handle is specified, the last query will be taken as reference
- *
- * @param number Optional query handle identifier
- * @return mixed Array with col values or FALSE on failure
- * @access public
- */
- function fetch_assoc($res_id=NULL)
- {
- $result = $this->_get_result($res_id);
- return $this->_fetch_row($result, DB_FETCHMODE_ASSOC);
- }
-
-
- /**
- * Get an index array for one row
- * If no query handle is specified, the last query will be taken as reference
- *
- * @param number Optional query handle identifier
- * @return mixed Array with col values or FALSE on failure
- * @access public
- */
- function fetch_array($res_id=NULL)
- {
- $result = $this->_get_result($res_id);
- return $this->_fetch_row($result, DB_FETCHMODE_ORDERED);
- }
-
-
- /**
- * Get co values for a result row
- *
- * @param object Query result handle
- * @param number Fetch mode identifier
- * @return mixed Array with col values or FALSE on failure
- * @access private
- */
- function _fetch_row($result, $mode)
- {
- if (!$result || DB::isError($result))
- {
- raise_error(array('code' => 500, 'type' => 'db', 'line' => __LINE__, 'file' => __FILE__,
- 'message' => $this->db_link->getMessage()), TRUE, FALSE);
- return FALSE;
- }
- elseif (!is_object($result))
- return FALSE;
-
- return $result->fetchRow($mode);
- }
-
-
- /**
- * Formats input so it can be safely used in a query
- *
- * @param mixed Value to quote
- * @return string Quoted/converted string for use in query
- * @access public
- */
- function quote($input)
- {
- // create DB handle if not available
- if (!$this->db_handle)
- $this->db_connect('r');
-
- // escape pear identifier chars
- $rep_chars = array('?' => '\?',
- '!' => '\!',
- '&' => '\&');
-
- return $this->db_handle->quoteSmart(strtr($input, $rep_chars));
- }
-
-
- /**
- * Quotes a string so it can be safely used as a table or column name
- *
- * @param string Value to quote
- * @return string Quoted string for use in query
- * @deprecated Replaced by rcube_db::quote_identifier
- * @see rcube_db::quote_identifier
- * @access public
- */
- function quoteIdentifier($str)
- {
- return $this->quote_identifier($str);
- }
-
-
- /**
- * Quotes a string so it can be safely used as a table or column name
- *
- * @param string Value to quote
- * @return string Quoted string for use in query
- * @access public
- */
- function quote_identifier($str)
- {
- if (!$this->db_handle)
- $this->db_connect('r');
-
- return $this->db_handle->quoteIdentifier($str);
- }
-
-
- /**
- * Escapes a string
- *
- * @param string The string to be escaped
- * @return string The escaped string
- * @access public
- */
- function escapeSimple($str)
- {
- if (!$this->db_handle)
- $this->db_connect('r');
-
- return $this->db_handle->escapeSimple($str);
- }
-
-
- /*
- * Return SQL function for current time and date
- *
- * @return string SQL function to use in query
- * @access public
- */
- function now()
- {
- switch($this->db_provider)
- {
- case 'mssql':
- return "getdate()";
-
- default:
- return "now()";
- }
- }
-
-
- /**
- * Return SQL statement to convert a field value into a unix timestamp
- *
- * @param string Field name
- * @return string SQL statement to use in query
- * @access public
- */
- function unixtimestamp($field)
- {
- switch($this->db_provider)
- {
- case 'pgsql':
- return "EXTRACT (EPOCH FROM $field)";
-
- case 'mssql':
- return "datediff(s, '1970-01-01 00:00:00', $field)";
-
- default:
- return "UNIX_TIMESTAMP($field)";
- }
- }
-
-
- /**
- * Return SQL statement to convert from a unix timestamp
- *
- * @param string Field name
- * @return string SQL statement to use in query
- * @access public
- */
- function fromunixtime($timestamp)
- {
- switch($this->db_provider)
- {
- case 'mysqli':
- case 'mysql':
- case 'sqlite':
- return sprintf("FROM_UNIXTIME(%d)", $timestamp);
-
- default:
- return date("'Y-m-d H:i:s'", $timestamp);
- }
- }
-
-
- /**
- * Adds a query result and returns a handle ID
- *
- * @param object Query handle
- * @return mixed Handle ID or FALE on failure
- * @access private
- */
- function _add_result($res)
- {
- // sql error occured
- if (DB::isError($res))
- {
- raise_error(array('code' => 500, 'type' => 'db', 'line' => __LINE__, 'file' => __FILE__,
- 'message' => $res->getMessage() . " Query: " . substr(preg_replace('/[\r\n]+\s*/', ' ', $res->userinfo), 0, 512)), TRUE, FALSE);
- return FALSE;
- }
- else
- {
- $res_id = sizeof($this->a_query_results);
- $this->a_query_results[$res_id] = $res;
- $this->last_res_id = $res_id;
- return $res_id;
- }
- }
-
-
- /**
- * Resolves a given handle ID and returns the according query handle
- * If no ID is specified, the last ressource handle will be returned
- *
- * @param number Handle ID
- * @return mixed Ressource handle or FALE on failure
- * @access private
- */
- function _get_result($res_id=NULL)
- {
- if ($res_id==NULL)
- $res_id = $this->last_res_id;
-
- if ($res_id && isset($this->a_query_results[$res_id]))
- return $this->a_query_results[$res_id];
- else
- return FALSE;
- }
-
-
- /**
- * Create a sqlite database from a file
- *
- * @param object SQLite database handle
- * @param string File path to use for DB creation
- * @access private
- */
- function _sqlite_create_database($dbh, $file_name)
- {
- if (empty($file_name) || !is_string($file_name))
- return;
-
- $data = '';
- if ($fd = fopen($file_name, 'r'))
- {
- $data = fread($fd, filesize($file_name));
- fclose($fd);
- }
-
- if (strlen($data))
- sqlite_exec($dbh->connection, $data);
- }
-
-
- /**
- * Add some proprietary database functions to the current SQLite handle
- * in order to make it MySQL compatible
- *
- * @access private
- */
- function _sqlite_prepare()
- {
- include_once('include/rcube_sqlite.inc');
-
- // we emulate via callback some missing MySQL function
- sqlite_create_function($this->db_handle->connection, "from_unixtime", "rcube_sqlite_from_unixtime");
- sqlite_create_function($this->db_handle->connection, "unix_timestamp", "rcube_sqlite_unix_timestamp");
- sqlite_create_function($this->db_handle->connection, "now", "rcube_sqlite_now");
- sqlite_create_function($this->db_handle->connection, "md5", "rcube_sqlite_md5");
- }
-
-
- } // end class rcube_db
-
-
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: rcube_imap.php 1490 2008-06-07 18:48:59Z alec $
+ $Id: rcube_imap.php 2189 2008-12-25 08:33:21Z alec $
*/
var $cache_changes = array();
var $uid_id_map = array();
var $msg_headers = array();
- var $capabilities = array();
var $skip_deleted = FALSE;
var $search_set = NULL;
- var $search_subject = '';
var $search_string = '';
var $search_charset = '';
+ var $search_sort_field = '';
var $debug_level = 1;
var $error_code = 0;
+ var $options = array('imap' => 'check');
/**
}
- /**
- * PHP 4 object constructor
- *
- * @see rcube_imap::__construct
- */
- function rcube_imap($db_conn)
- {
- $this->__construct($db_conn);
- }
-
-
/**
* Connect to an IMAP server
*
* @return boolean TRUE on success, FALSE on failure
* @access public
*/
- function connect($host, $user, $pass, $port=143, $use_ssl=null, $auth_type='check')
+ function connect($host, $user, $pass, $port=143, $use_ssl=null)
{
global $ICL_SSL, $ICL_PORT, $IMAP_USE_INTERNAL_DATE;
$ICL_PORT = $port;
$IMAP_USE_INTERNAL_DATE = false;
- $this->conn = iil_Connect($host, $user, $pass, array('imap' => $auth_type));
+ $this->conn = iil_Connect($host, $user, $pass, $this->options);
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
// get server properties
if ($this->conn)
{
- $this->_parse_capability($this->conn->capability);
-
if (!empty($this->conn->delimiter))
$this->delimiter = $this->conn->delimiter;
if (!empty($this->conn->rootdir))
{
$this->close();
$this->connect($this->host, $this->user, $this->pass, $this->port, $this->ssl);
+
+ // issue SELECT command to restore connection status
+ if ($this->mailbox)
+ iil_C_Select($this->conn, $this->mailbox);
}
+ /**
+ * Set options to be used in iil_Connect()
+ */
+ function set_options($opt)
+ {
+ $this->options = array_merge($this->options, (array)$opt);
+ }
/**
* Set a root folder for the IMAP connection.
$root = substr($root, 0, -1);
$this->root_dir = $root;
+ $this->options['rootdir'] = $root;
if (empty($this->delimiter))
$this->get_hierarchy_delimiter();
/**
* Save a set of message ids for future message listing methods
*
- * @param array List of IMAP fields to search in
- * @param string Search string
- * @param array List of message ids or NULL if empty
+ * @param string IMAP Search query
+ * @param array List of message ids or NULL if empty
+ * @param string Charset of search string
+ * @param string Sorting field
*/
- function set_search_set($subject, $str=null, $msgs=null, $charset=null)
+ function set_search_set($str=null, $msgs=null, $charset=null, $sort_field=null)
{
- if (is_array($subject) && $str == null && $msgs == null)
- list($subject, $str, $msgs, $charset) = $subject;
+ if (is_array($str) && $msgs == null)
+ list($str, $msgs, $charset, $sort_field) = $str;
if ($msgs != null && !is_array($msgs))
$msgs = split(',', $msgs);
- $this->search_subject = $subject;
$this->search_string = $str;
- $this->search_set = (array)$msgs;
+ $this->search_set = $msgs;
$this->search_charset = $charset;
+ $this->search_sort_field = $sort_field;
}
*/
function get_search_set()
{
- return array($this->search_subject, $this->search_string, $this->search_set, $this->search_charset);
+ return array($this->search_string, $this->search_set, $this->search_charset, $this->search_sort_field);
}
*/
function get_capability($cap)
{
- $cap = strtoupper($cap);
- return $this->capabilities[$cap];
+ return iil_C_GetCapability($this->conn, strtoupper($cap));
+ }
+
+
+ /**
+ * Checks the PERMANENTFLAGS capability of the current mailbox
+ * and returns true if the given flag is supported by the IMAP server
+ *
+ * @param string Permanentflag name
+ * @return mixed True if this flag is supported
+ * @access public
+ */
+ function check_permflag($flag)
+ {
+ $flagsmap = $GLOBALS['IMAP_FLAGS'];
+ return (($imap_flag = $flagsmap[strtoupper($flag)]) && in_array_nocase($imap_flag, $this->conn->permanentflags));
}
// use saved message set
if ($this->search_string && $mailbox == $this->mailbox)
- return $this->_list_header_set($mailbox, $this->search_set, $page, $sort_field, $sort_order);
+ return $this->_list_header_set($mailbox, $page, $sort_field, $sort_order);
$this->_set_sort_order($sort_field, $sort_order);
// fetch reuested headers from server
$a_msg_headers = array();
$deleted_count = $this->_fetch_headers($mailbox, $msgs, $a_msg_headers, $cache_key);
- if ($this->sort_order == 'DESC' && $headers_sorted) {
- //since the sort order is not used in the iil_c_sort function we have to do it here
- $a_msg_headers = array_reverse($a_msg_headers);
- }
+
// delete cached messages with a higher index than $max+1
// Changed $max to $max+1 to fix this bug : #1484295
$this->clear_message_cache($cache_key, $max + 1);
-
// kick child process to sync cache
// ...
-
}
// return empty array if no messages found
}
-
/**
- * Public method for listing a specific set of headers
- * convert mailbox name with root dir first
+ * Private method for listing a set of message headers (search results)
*
* @param string Mailbox/folder name
- * @param array List of message ids to list
* @param int Current page to list
* @param string Header field to sort by
* @param string Sort order [ASC|DESC]
* @return array Indexed array with message header objects
- * @access public
- */
- function list_header_set($mbox_name='', $msgs, $page=NULL, $sort_field=NULL, $sort_order=NULL)
- {
- $mailbox = $mbox_name ? $this->_mod_mailbox($mbox_name) : $this->mailbox;
- return $this->_list_header_set($mailbox, $msgs, $page, $sort_field, $sort_order);
- }
-
-
- /**
- * Private method for listing a set of message headers
- *
* @access private
* @see rcube_imap::list_header_set()
*/
- function _list_header_set($mailbox, $msgs, $page=NULL, $sort_field=NULL, $sort_order=NULL)
+ function _list_header_set($mailbox, $page=NULL, $sort_field=NULL, $sort_order=NULL)
{
- if (!strlen($mailbox) || empty($msgs))
+ if (!strlen($mailbox) || empty($this->search_set))
return array();
- // also accept a comma-separated list of message ids
- if (is_array ($msgs)) {
- $max = count ($msgs);
- $msgs = join (',', $msgs);
- } else {
- $max = count(split(',', $msgs));
- }
+ $msgs = $this->search_set;
+ $a_msg_headers = array();
+ $start_msg = ($this->list_page-1) * $this->page_size;
$this->_set_sort_order($sort_field, $sort_order);
- $start_msg = ($this->list_page-1) * $this->page_size;
+ // sorted messages, so we can first slice array and then fetch only wanted headers
+ if ($this->get_capability('sort')) // SORT searching result
+ {
+ // reset search set if sorting field has been changed
+ if ($this->sort_field && $this->search_sort_field != $this->sort_field)
+ {
+ $msgs = $this->search('', $this->search_string, $this->search_charset, $this->sort_field);
+ }
- // fetch reuested headers from server
- $a_msg_headers = array();
- $this->_fetch_headers($mailbox, $msgs, $a_msg_headers, NULL);
+ // return empty array if no messages found
+ if (empty($msgs))
+ return array();
- // return empty array if no messages found
- if (!is_array($a_msg_headers) || empty($a_msg_headers))
- return array();
+ if ($sort_order == 'DESC')
+ $msgs = array_reverse($msgs);
- // if not already sorted
- $a_msg_headers = iil_SortHeaders($a_msg_headers, $this->sort_field, $this->sort_order);
+ // get messages uids for one page
+ $msgs = array_slice(array_values($msgs), $start_msg, min(count($msgs)-$start_msg, $this->page_size));
+
+ // fetch headers
+ $this->_fetch_headers($mailbox, join(',',$msgs), $a_msg_headers, NULL);
+
+ $sorter = new rcube_header_sorter();
+ $sorter->set_sequence_numbers($msgs);
+ $sorter->sort_headers($a_msg_headers);
+
+ return array_values($a_msg_headers);
+ }
+ else { // SEARCH searching result, need sorting
+ $cnt = count($msgs);
+ if ($cnt > 300 && $cnt > $this->page_size) { // experimantal value for best result
+ // use memory less expensive (and quick) method for big result set
+ $a_index = $this->message_index($mailbox, $this->sort_field, $this->sort_order);
+ // get messages uids for one page...
+ $msgs = array_slice(array_keys($a_index), $start_msg, min($cnt-$start_msg, $this->page_size));
+ // ...and fetch headers
+ $this->_fetch_headers($mailbox, join(',', $msgs), $a_msg_headers, NULL);
+
+ // return empty array if no messages found
+ if (!is_array($a_msg_headers) || empty($a_msg_headers))
+ return array();
- // only return the requested part of the set
- return array_slice(array_values($a_msg_headers), $start_msg, min($max-$start_msg, $this->page_size));
+ $sorter = new rcube_header_sorter();
+ $sorter->set_sequence_numbers($msgs);
+ $sorter->sort_headers($a_msg_headers);
+
+ return array_values($a_msg_headers);
+ }
+ else {
+ // for small result set we can fetch all messages headers
+ $this->_fetch_headers($mailbox, join(',', $msgs), $a_msg_headers, NULL);
+
+ // return empty array if no messages found
+ if (!is_array($a_msg_headers) || empty($a_msg_headers))
+ return array();
+
+ // if not already sorted
+ $a_msg_headers = iil_SortHeaders($a_msg_headers, $this->sort_field, $this->sort_order);
+
+ // only return the requested part of the set
+ return array_slice(array_values($a_msg_headers), $start_msg, min($cnt-$start_msg, $this->page_size));
+ }
+ }
}
/**
- * Return sorted array of message UIDs
+ * Return sorted array of message IDs (not UIDs)
*
* @param string Mailbox to get index from
* @param string Sort column
// we have a saved search result. get index from there
if (!isset($this->cache[$key]) && $this->search_string && $mailbox == $this->mailbox)
{
- $this->cache[$key] = $a_msg_headers = array();
- $this->_fetch_headers($mailbox, join(',', $this->search_set), $a_msg_headers, NULL);
+ $this->cache[$key] = array();
+
+ if ($this->get_capability('sort'))
+ {
+ if ($this->sort_field && $this->search_sort_field != $this->sort_field)
+ $this->search('', $this->search_string, $this->search_charset, $this->sort_field);
- foreach (iil_SortHeaders($a_msg_headers, $this->sort_field, $this->sort_order) as $i => $msg)
- $this->cache[$key][] = $msg->uid;
+ if ($this->sort_order == 'DESC')
+ $this->cache[$key] = array_reverse($this->search_set);
+ else
+ $this->cache[$key] = $this->search_set;
+ }
+ else
+ {
+ $a_index = iil_C_FetchHeaderIndex($this->conn, $mailbox, join(',', $this->search_set), $this->sort_field);
+
+ if ($this->sort_order=="ASC")
+ asort($a_index);
+ else if ($this->sort_order=="DESC")
+ arsort($a_index);
+
+ $this->cache[$key] = array_keys($a_index);
+ }
}
// have stored it in RAM
if ($cache_status>0)
{
$a_index = $this->get_message_cache_index($cache_key, TRUE, $this->sort_field, $this->sort_order);
- return array_values($a_index);
+ return array_keys($a_index);
}
-
// fetch complete message index
$msg_count = $this->_messagecount($mailbox);
- if ($this->get_capability('sort') && ($a_index = iil_C_Sort($this->conn, $mailbox, $this->sort_field, '', TRUE)))
+ if ($this->get_capability('sort') && ($a_index = iil_C_Sort($this->conn, $mailbox, $this->sort_field, '')))
{
if ($this->sort_order == 'DESC')
$a_index = array_reverse($a_index);
$this->cache[$key] = $a_index;
-
}
else
{
$a_index = iil_C_FetchHeaderIndex($this->conn, $mailbox, "1:$msg_count", $this->sort_field);
- $a_uids = iil_C_FetchUIDs($this->conn, $mailbox);
-
+
if ($this->sort_order=="ASC")
asort($a_index);
else if ($this->sort_order=="DESC")
arsort($a_index);
- $i = 0;
- $this->cache[$key] = array();
- foreach ($a_index as $index => $value)
- $this->cache[$key][$i++] = $a_uids[$index];
+ $this->cache[$key] = array_keys($a_index);
}
return $this->cache[$key];
* Invoke search request to IMAP server
*
* @param string mailbox name to search in
- * @param string search criteria (ALL, TO, FROM, SUBJECT, etc)
* @param string search string
+ * @param string search string charset
+ * @param string header field to sort by
* @return array search results as list of message ids
* @access public
*/
- function search($mbox_name='', $criteria='ALL', $str=NULL, $charset=NULL)
+ function search($mbox_name='', $str=NULL, $charset=NULL, $sort_field=NULL)
{
+ if (!$str)
+ return false;
+
$mailbox = $mbox_name ? $this->_mod_mailbox($mbox_name) : $this->mailbox;
- // have an array of criterias => execute multiple searches
- if (is_array($criteria) && $str)
- {
- $results = array();
- foreach ($criteria as $crit)
- if ($search_result = $this->search($mbox_name, $crit, $str, $charset))
- $results = array_merge($results, $search_result);
-
- $results = array_unique($results);
- $this->set_search_set($criteria, $str, $results, $charset);
- return $results;
+ $results = $this->_search_index($mailbox, $str, $charset, $sort_field);
+
+ // try search with ISO charset (should be supported by server)
+ // only if UTF-8 search is not supported
+ if (empty($results) && !is_array($results) && !empty($charset) && $charset!='ISO-8859-1')
+ {
+ // convert strings to ISO-8859-1
+ if(preg_match_all('/\{([0-9]+)\}\r\n/', $str, $matches, PREG_OFFSET_CAPTURE))
+ {
+ $last = 0; $res = '';
+ foreach($matches[1] as $m)
+ {
+ $string_offset = $m[1] + strlen($m[0]) + 4; // {}\r\n
+ $string = substr($str, $string_offset - 1, $m[0]);
+ $string = rcube_charset_convert($string, $charset, 'ISO-8859-1');
+ $res .= sprintf("%s{%d}\r\n%s", substr($str, $last, $m[1] - $last - 1), strlen($string), $string);
+ $last = $m[0] + $string_offset - 1;
+ }
+ if ($last < strlen($str))
+ $res .= substr($str, $last, strlen($str)-$last);
+ }
+ else // strings for conversion not found
+ $res = $str;
+
+ $results = $this->search($mbox_name, $res, 'ISO-8859-1', $sort_field);
}
- else if ($str && $criteria)
- {
- $search = (!empty($charset) ? "CHARSET $charset " : '') . sprintf("%s {%d}\r\n%s", $criteria, strlen($str), $str);
- $results = $this->_search_index($mailbox, $search);
- // try search with ISO charset (should be supported by server)
- if (empty($results) && !empty($charset) && $charset!='ISO-8859-1')
- $results = $this->search($mbox_name, $criteria, rcube_charset_convert($str, $charset, 'ISO-8859-1'), 'ISO-8859-1');
-
- $this->set_search_set($criteria, $str, $results, $charset);
- return $results;
- }
- else
- return $this->_search_index($mailbox, $criteria);
- }
+ $this->set_search_set($str, $results, $charset, $sort_field);
+
+ return $results;
+ }
/**
* @access private
* @see rcube_imap::search()
*/
- function _search_index($mailbox, $criteria='ALL')
+ function _search_index($mailbox, $criteria='ALL', $charset=NULL, $sort_field=NULL)
{
- $a_messages = iil_C_Search($this->conn, $mailbox, $criteria);
+ if ($sort_field && $this->get_capability('sort'))
+ {
+ $charset = $charset ? $charset : $this->default_charset;
+ $a_messages = iil_C_Sort($this->conn, $mailbox, $sort_field, $criteria, FALSE, $charset);
+ }
+ else
+ $a_messages = iil_C_Search($this->conn, $mailbox, ($charset ? "CHARSET $charset " : '') . $criteria);
+
// clean message list (there might be some empty entries)
if (is_array($a_messages))
{
*/
function refresh_search()
{
- if (!empty($this->search_subject) && !empty($this->search_string))
- $this->search_set = $this->search('', $this->search_subject, $this->search_string, $this->search_charset);
+ if (!empty($this->search_string))
+ $this->search_set = $this->search('', $this->search_string, $this->search_charset, $this->search_sort_field);
return $this->get_search_set();
}
* an object structure similar to the one generated by PEAR::Mail_mimeDecode
*
* @param int Message UID to fetch
- * @return object stdClass Message part tree or False on failure
+ * @return object rcube_message_part Message part tree or False on failure
*/
function &get_structure($uid)
{
$headers = &$this->get_cached_message($cache_key, $uid, true);
// return cached message structure
- if (is_object($headers) && is_object($headers->structure))
+ if (is_object($headers) && is_object($headers->structure)) {
return $headers->structure;
-
+ }
+
// resolve message sequence number
- if (!($msg_id = $this->_uid2id($uid)))
+ if (!($msg_id = $this->_uid2id($uid))) {
return FALSE;
+ }
- $structure_str = iil_C_FetchStructureString($this->conn, $this->mailbox, $msg_id);
+ $structure_str = iil_C_FetchStructureString($this->conn, $this->mailbox, $msg_id);
$structure = iml_GetRawStructureArray($structure_str);
$struct = false;
if ($this->caching_enabled)
$this->add_message_cache($cache_key, $msg_id, $headers, $struct);
}
-
+
return $struct;
}
if (empty($struct->disposition))
$struct->disposition = 'inline';
}
+
+ // fetch message headers if message/rfc822 or named part (could contain Content-Location header)
+ if ($struct->ctype_primary == 'message' || ($struct->ctype_parameters['name'] && !$struct->content_id)) {
+ $part_headers = iil_C_FetchPartHeader($this->conn, $this->mailbox, $this->_msg_id, $struct->mime_id);
+ $struct->headers = $this->_parse_headers($part_headers) + $struct->headers;
+ }
- // fetch message headers if message/rfc822
- if ($struct->ctype_primary=='message')
- {
- $headers = iil_C_FetchPartBody($this->conn, $this->mailbox, $this->_msg_id, $struct->mime_id.'.HEADER');
- $struct->headers = $this->_parse_headers($headers);
-
+ if ($struct->ctype_primary=='message') {
if (is_array($part[8]) && empty($struct->parts))
$struct->parts[] = $this->_structure_part($part[8], ++$count, $struct->mime_id);
- }
+ }
// normalize filename property
- if ($filename_mime = $struct->d_parameters['filename'] ? $struct->d_parameters['filename'] : $struct->ctype_parameters['name'])
- {
- $struct->filename = rcube_imap::decode_mime_string($filename_mime,
- $struct->charset ? $struct->charset : rc_detect_encoding($filename_mime, $this->default_charset));
- }
- else if ($filename_encoded = $struct->d_parameters['filename*'] ? $struct->d_parameters['filename*'] : $struct->ctype_parameters['name*'])
- {
- // decode filename according to RFC 2231, Section 4
- list($filename_charset,, $filename_urlencoded) = split('\'', $filename_encoded);
- $struct->filename = rcube_charset_convert(urldecode($filename_urlencoded), $filename_charset);
- }
- else if (!empty($struct->headers['content-description']))
- $struct->filename = rcube_imap::decode_mime_string($struct->headers['content-description'],
- $struct->charset ? $struct->charset : rc_detect_encoding($struct->headers['content-description'],$this->default_charset));
-
+ $this->_set_part_filename($struct);
+
return $struct;
}
+
+ /**
+ * Set attachment filename from message part structure
+ *
+ * @access private
+ * @param object rcube_message_part Part object
+ */
+ function _set_part_filename(&$part)
+ {
+ if (!empty($part->d_parameters['filename']))
+ $filename_mime = $part->d_parameters['filename'];
+ else if (!empty($part->d_parameters['filename*']))
+ $filename_encoded = $part->d_parameters['filename*'];
+ else if (!empty($part->ctype_parameters['name*']))
+ $filename_encoded = $part->ctype_parameters['name*'];
+ // RFC2231 value continuations
+ // TODO: this should be rewrited to support RFC2231 4.1 combinations
+ else if (!empty($part->d_parameters['filename*0'])) {
+ $i = 0;
+ while (isset($part->d_parameters['filename*'.$i])) {
+ $filename_mime .= $part->d_parameters['filename*'.$i];
+ $i++;
+ }
+ // some servers (eg. dovecot-1.x) have no support for parameter value continuations
+ // we must fetch and parse headers "manually"
+ //TODO: fetching headers for a second time is not effecient, this code should be moved somewhere earlier --tensor
+ if ($i<2) {
+ // TODO: fetch only Content-Type/Content-Disposition header
+ $headers = iil_C_FetchPartHeader($this->conn, $this->mailbox, $this->_msg_id, $part->mime_id);
+ $filename_mime = '';
+ $i = 0;
+ while (preg_match('/filename\*'.$i.'\s*=\s*"*([^"\n;]+)[";]*/', $headers, $matches)) {
+ $filename_mime .= $matches[1];
+ $i++;
+ }
+ }
+ }
+ else if (!empty($part->d_parameters['filename*0*'])) {
+ $i = 0;
+ while (isset($part->d_parameters['filename*'.$i.'*'])) {
+ $filename_encoded .= $part->d_parameters['filename*'.$i.'*'];
+ $i++;
+ }
+ if ($i<2) {
+ $headers = iil_C_FetchPartHeader($this->conn, $this->mailbox, $this->_msg_id, $part->mime_id);
+ $filename_encoded = '';
+ $i = 0; $matches = array();
+ while (preg_match('/filename\*'.$i.'\*\s*=\s*"*([^"\n;]+)[";]*/', $headers, $matches)) {
+ $filename_encoded .= $matches[1];
+ $i++;
+ }
+ }
+ }
+ else if (!empty($part->ctype_parameters['name*0'])) {
+ $i = 0;
+ while (isset($part->ctype_parameters['name*'.$i])) {
+ $filename_mime .= $part->ctype_parameters['name*'.$i];
+ $i++;
+ }
+ if ($i<2) {
+ $headers = iil_C_FetchPartHeader($this->conn, $this->mailbox, $this->_msg_id, $part->mime_id);
+ $filename_mime = '';
+ $i = 0; $matches = array();
+ while (preg_match('/\s+name\*'.$i.'\s*=\s*"*([^"\n;]+)[";]*/', $headers, $matches)) {
+ $filename_mime .= $matches[1];
+ $i++;
+ }
+ }
+ }
+ else if (!empty($part->ctype_parameters['name*0*'])) {
+ $i = 0;
+ while (isset($part->ctype_parameters['name*'.$i.'*'])) {
+ $filename_encoded .= $part->ctype_parameters['name*'.$i.'*'];
+ $i++;
+ }
+ if ($i<2) {
+ $headers = iil_C_FetchPartHeader($this->conn, $this->mailbox, $this->_msg_id, $part->mime_id);
+ $filename_encoded = '';
+ $i = 0; $matches = array();
+ while (preg_match('/\s+name\*'.$i.'\*\s*=\s*"*([^"\n;]+)[";]*/', $headers, $matches)) {
+ $filename_encoded .= $matches[1];
+ $i++;
+ }
+ }
+ }
+ // read 'name' after rfc2231 parameters as it may contains truncated filename (from Thunderbird)
+ else if (!empty($part->ctype_parameters['name']))
+ $filename_mime = $part->ctype_parameters['name'];
+ // Content-Disposition
+ else if (!empty($part->headers['content-description']))
+ $filename_mime = $part->headers['content-description'];
+ else
+ return;
+
+ // decode filename
+ if (!empty($filename_mime)) {
+ $part->filename = rcube_imap::decode_mime_string($filename_mime,
+ $part->charset ? $part->charset : rc_detect_encoding($filename_mime, $this->default_charset));
+ }
+ else if (!empty($filename_encoded)) {
+ // decode filename according to RFC 2231, Section 4
+ if (preg_match("/^([^']*)'[^']*'(.*)$/", $filename_encoded, $fmatches)) {
+ $filename_charset = $fmatches[1];
+ $filename_encoded = $fmatches[2];
+ }
+ $part->filename = rcube_charset_convert(urldecode($filename_encoded), $filename_charset);
+ }
+ }
+
/**
* Fetch message body of a specific message from the server
* @param string Part number
* @param object rcube_message_part Part object created by get_structure()
* @param mixed True to print part, ressource to write part contents in
+ * @param resource File pointer to save the message part
* @return string Message/part body if not printed
*/
- function &get_message_part($uid, $part=1, $o_part=NULL, $print=NULL)
+ function &get_message_part($uid, $part=1, $o_part=NULL, $print=NULL, $fp=NULL)
{
if (!($msg_id = $this->_uid2id($uid)))
return FALSE;
// TODO: Add caching for message parts
+ if (!$part) $part = 'TEXT';
+
if ($print)
{
$mode = $o_part->encoding == 'base64' ? 3 : ($o_part->encoding == 'quoted-printable' ? 1 : 2);
}
else
{
- $body = iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, $part, 1);
+ if ($fp && $o_part->encoding == 'base64')
+ return iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, $part, 3, $fp);
+ else
+ $body = iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, $part, 1);
// decode part body
if ($o_part->encoding)
$body = rcube_charset_convert($body, $o_part->charset);
}
+
+ if ($fp)
+ {
+ fwrite($fp, $body);
+ return true;
+ }
}
-
+
return $body;
}
if (!($msg_id = $this->_uid2id($uid)))
return FALSE;
- $body = iil_C_FetchPartHeader($this->conn, $this->mailbox, $msg_id, NULL);
- $body .= iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, NULL, 1);
+ return iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id);
+ }
+
- return $body;
+ /**
+ * Returns the message headers as string
+ *
+ * @param int Message UID
+ * @return string Message headers string
+ */
+ function &get_raw_headers($uid)
+ {
+ if (!($msg_id = $this->_uid2id($uid)))
+ return FALSE;
+
+ $headers = iil_C_FetchPartHeader($this->conn, $this->mailbox, $msg_id, NULL);
+
+ return $headers;
}
if (!($msg_id = $this->_uid2id($uid)))
return FALSE;
- print iil_C_FetchPartHeader($this->conn, $this->mailbox, $msg_id, NULL);
- flush();
iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, NULL, 2);
}
$result = iil_C_Undelete($this->conn, $this->mailbox, join(',', array_values($msg_ids)));
else if ($flag=='UNSEEN')
$result = iil_C_Unseen($this->conn, $this->mailbox, join(',', array_values($msg_ids)));
+ else if ($flag=='UNFLAGGED')
+ $result = iil_C_UnFlag($this->conn, $this->mailbox, join(',', array_values($msg_ids)), 'FLAGGED');
else
$result = iil_C_Flag($this->conn, $this->mailbox, join(',', array_values($msg_ids)), $flag);
$mailbox = $this->_mod_mailbox($mbox_name);
// make sure mailbox exists
- if (in_array($mailbox, $this->_list_mailboxes()))
+ if (($mailbox == 'INBOX') || in_array($mailbox, $this->_list_mailboxes()))
$saved = iil_C_Append($this->conn, $mailbox, $message);
if ($saved)
// send expunge command in order to have the moved message
// really deleted from the source mailbox
if ($moved) {
- $this->_expunge($from_mbox, FALSE);
- $this->_clear_messagecount($from_mbox);
- $this->_clear_messagecount($to_mbox);
+ // but only when flag_for_deletion is set to false
+ if (!rcmail::get_instance()->config->get('flag_for_deletion', false))
+ {
+ $this->_expunge($from_mbox, FALSE);
+ $this->_clear_messagecount($from_mbox);
+ $this->_clear_messagecount($to_mbox);
+ }
}
// moving failed
else if (rcmail::get_instance()->config->get('delete_always', false)) {
{
$this->_expunge($mailbox, FALSE);
$this->_clear_messagecount($mailbox);
+ unset($this->uid_id_map[$mailbox]);
}
// remove message ids from search set
{
$this->db->query(
"UPDATE ".get_table_name('cache')."
- SET created=".$this->db->now().",
- data=?
+ SET created=". $this->db->now().", data=?
WHERE user_id=?
AND cache_key=?",
$data,
/**
* @access private
*/
- function get_message_cache_index($key, $force=FALSE, $sort_col='idx', $sort_order='ASC')
+ function get_message_cache_index($key, $force=FALSE, $sort_field='idx', $sort_order='ASC')
{
static $sa_message_index = array();
FROM ".get_table_name('messages')."
WHERE user_id=?
AND cache_key=?
- ORDER BY ".$this->db->quote_identifier($sort_col)." ".$sort_order,
+ ORDER BY ".$this->db->quote_identifier($sort_field)." ".$sort_order,
$_SESSION['user_id'],
$key);
/**
* Decode a mime-encoded string to internal charset
*
- * @param string Header value
- * @param string Fallback charset if none specified
+ * @param string $input Header value
+ * @param string $fallback Fallback charset if none specified
+ *
* @return string Decoded string
* @static
*/
- function decode_mime_string($input, $fallback=null)
+ public static function decode_mime_string($input, $fallback=null)
{
+ // Initialize variable
$out = '';
- $pos = strpos($input, '=?');
- if ($pos !== false)
- {
- // rfc: all line breaks or other characters not found
- // in the Base64 Alphabet must be ignored by decoding software
- // delete all blanks between MIME-lines, differently we can
- // receive unnecessary blanks and broken utf-8 symbols
- $input = preg_replace("/\?=\s+=\?/", '?==?', $input);
+ // Iterate instead of recursing, this way if there are too many values we don't have stack overflows
+ // rfc: all line breaks or other characters not found
+ // in the Base64 Alphabet must be ignored by decoding software
+ // delete all blanks between MIME-lines, differently we can
+ // receive unnecessary blanks and broken utf-8 symbols
+ $input = preg_replace("/\?=\s+=\?/", '?==?', $input);
- $out = substr($input, 0, $pos);
-
- $end_cs_pos = strpos($input, "?", $pos+2);
- $end_en_pos = strpos($input, "?", $end_cs_pos+1);
- $end_pos = strpos($input, "?=", $end_en_pos+1);
-
- $encstr = substr($input, $pos+2, ($end_pos-$pos-2));
- $rest = substr($input, $end_pos+2);
+ // Check if there is stuff to decode
+ if (strpos($input, '=?') !== false) {
+ // Loop through the string to decode all occurences of =? ?= into the variable $out
+ while(($pos = strpos($input, '=?')) !== false) {
+ // Append everything that is before the text to be decoded
+ $out .= substr($input, 0, $pos);
- $out .= rcube_imap::_decode_mime_string_part($encstr);
- $out .= rcube_imap::decode_mime_string($rest, $fallback);
+ // Get the location of the text to decode
+ $end_cs_pos = strpos($input, "?", $pos+2);
+ $end_en_pos = strpos($input, "?", $end_cs_pos+1);
+ $end_pos = strpos($input, "?=", $end_en_pos+1);
- return $out;
+ // Extract the encoded string
+ $encstr = substr($input, $pos+2, ($end_pos-$pos-2));
+ // Extract the remaining string
+ $input = substr($input, $end_pos+2);
+
+ // Decode the string fragement
+ $out .= rcube_imap::_decode_mime_string_part($encstr);
}
+ // Deocde the rest (if any)
+ if (strlen($input) != 0)
+ $out .= rcube_imap::decode_mime_string($input, $fallback);
+
+ // return the results
+ return $out;
+ }
+
// no encoding information, use fallback
return rcube_charset_convert($input,
!empty($fallback) ? $fallback : rcmail::get_instance()->config->get('default_charset', 'ISO-8859-1'));
$folders[$folder] = rc_strtolower(rcube_charset_convert($folder, 'UTF-7'));
}
+ // sort folders and place defaults on the top
asort($folders, SORT_LOCALE_STRING);
ksort($a_defaults);
-
$folders = array_merge($a_defaults, array_keys($folders));
// finally we must rebuild the list to move
- // subfolders of default folders to their place
+ // subfolders of default folders to their place...
+ // ...also do this for the rest of folders because
+ // asort() is not properly sorting case sensitive names
while (list($key, $folder) = each($folders)) {
- $a_out[] = $folder;
+ // set the type of folder name variable (#1485527)
+ $a_out[] = (string) $folder;
unset($folders[$key]);
- if (in_array(strtolower($folder), $this->default_folders_lc)) {
- foreach ($folders as $idx => $f) {
- if (strpos($f, $folder.$delimiter) === 0) {
- $a_out[] = $f;
- unset($folders[$idx]);
- }
- }
- reset($folders);
- }
+ $this->_rsort($folder, $delimiter, $folders, $a_out);
}
return $a_out;
}
+
+ /**
+ * @access private
+ */
+ function _rsort($folder, $delimiter, &$list, &$out)
+ {
+ while (list($key, $name) = each($list)) {
+ if (strpos($name, $folder.$delimiter) === 0) {
+ // set the type of folder name variable (#1485527)
+ $out[] = (string) $name;
+ unset($list[$key]);
+ $this->_rsort($name, $delimiter, $list, $out);
+ }
+ }
+ reset($list);
+ }
+
+
/**
* @access private
*/
}
- /**
- * Parse string or array of server capabilities and put them in internal array
- * @access private
- */
- function _parse_capability($caps)
- {
- if (!is_array($caps))
- $cap_arr = explode(' ', $caps);
- else
- $cap_arr = $caps;
-
- foreach ($cap_arr as $cap)
- {
- if ($cap=='CAPABILITY')
- continue;
-
- if (strpos($cap, '=')>0)
- {
- list($key, $value) = explode('=', $cap);
- if (!is_array($this->capabilities[$key]))
- $this->capabilities[$key] = array();
-
- $this->capabilities[$key][] = $value;
- }
- else
- $this->capabilities[$cap] = TRUE;
- }
- }
-
-
/**
* Subscribe/unsubscribe a list of mailboxes and update local cache
* @access private
private $texts = array();
private $commands = array();
- public $task = '';
+ public $type = 'js';
public $ajax_call = true;
*/
public function __construct($task)
{
- $this->task = $task;
$this->config = rcmail::get_instance()->config;
}
}
/**
- * @ignore
+ * Issue command to set page title
+ *
+ * @param string New page title
*/
public function set_pagetitle($title)
{
- $name = $this->config->get('product_name');
- $this->command('set_pagetitle', JQ(empty($name) ? $title : $name.' :: '.$title));
+ $name = $this->config->get('product_name');
+ $this->command('set_pagetitle', JQ(empty($name) ? $title : $name.' :: '.$title));
}
/**
/**
* Delete all stored env variables and commands
*/
- public public function reset()
+ public function reset()
{
$this->env = array();
$this->texts = array();
$this->commands = array();
}
+ /**
+ * Redirect to a certain url
+ *
+ * @param mixed Either a string with the action or url parameters as key-value pairs
+ * @see rcmail::url()
+ */
+ public function redirect($p = array(), $delay = 1)
+ {
+ $location = rcmail::get_instance()->url($p);
+ $this->remote_response("window.setTimeout(\"location.href='{$location}'\", $delay);");
+ exit;
+ }
+
/**
* Send an AJAX response to the client.
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: rcube_ldap.php 1482 2008-06-06 09:42:31Z alec $
+ $Id: rcube_ldap.php 2157 2008-12-16 15:28:07Z thomasb $
*/
$this->connect();
}
- /**
- * PHP 4 object constructor
- *
- * @see rcube_ldap::__construct()
- */
- function rcube_ldap($p)
- {
- $this->__construct($p);
- }
-
/**
* Establish a connection to the LDAP server
*/
function connect()
{
+ global $RCMAIL;
+
if (!function_exists('ldap_connect'))
raise_error(array('type' => 'ldap', 'message' => "No ldap support in this installation of PHP"), true);
{
if ($lc = @ldap_connect($host, $this->prop['port']))
{
- if ($this->prop['use_tls']===true)
- if (!ldap_start_tls($lc))
- continue;
+ if ($this->prop['use_tls']===true)
+ if (!ldap_start_tls($lc))
+ continue;
ldap_set_option($lc, LDAP_OPT_PROTOCOL_VERSION, $this->prop['ldap_version']);
$this->prop['host'] = $host;
{
$this->ready = true;
+ // User specific access, generate the proper values to use.
if ($this->prop["user_specific"]) {
- // User specific access, generate the proper values to use.
- global $CONFIG, $RCMAIL;
+ // No password set, use the session password
if (empty($this->prop['bind_pass'])) {
- // No password set, use the users.
$this->prop['bind_pass'] = $RCMAIL->decrypt_passwd($_SESSION["password"]);
- } // end if
+ }
// Get the pieces needed for variable replacement.
- // See if the logged in username has an "@" in it.
- if (is_bool(strstr($_SESSION["username"], "@"))) {
- // It does not, use the global default.
- $fu = $_SESSION["username"]."@".$CONFIG["username_domain"];
- $u = $_SESSION["username"];
- $d = $CONFIG["username_domain"];
- } // end if
- else {
- // It does.
- $fu = $_SESSION["username"];
- // Get the pieces needed for username and domain.
- list($u, $d) = explode("@", $_SESSION["username"]);
- } # end else
-
- // Replace the bind_dn variables.
- $bind_dn = str_replace(array("%fu", "%u", "%d"),
- array($fu, $u, $d),
- $this->prop['bind_dn']);
- $this->prop['bind_dn'] = $bind_dn;
- // Replace the base_dn variables.
- $base_dn = str_replace(array("%fu", "%u", "%d"),
- array($fu, $u, $d),
- $this->prop['base_dn']);
- $this->prop['base_dn'] = $base_dn;
-
- $this->ready = $this->bind($this->prop['bind_dn'], $this->prop['bind_pass']);
- } // end if
- elseif (!empty($this->prop['bind_dn']) && !empty($this->prop['bind_pass']))
+ $fu = $RCMAIL->user->get_username();
+ list($u, $d) = explode('@', $fu);
+
+ // Replace the bind_dn and base_dn variables.
+ $replaces = array('%fu' => $fu, '%u' => $u, '%d' => $d);
+ $this->prop['bind_dn'] = strtr($this->prop['bind_dn'], $replaces);
+ $this->prop['base_dn'] = strtr($this->prop['base_dn'], $replaces);
+ }
+
+ if (!empty($this->prop['bind_dn']) && !empty($this->prop['bind_pass']))
$this->ready = $this->bind($this->prop['bind_dn'], $this->prop['bind_pass']);
}
else
return false;
}
- if (ldap_bind($this->conn, $dn, $pass)) {
+ if (@ldap_bind($this->conn, $dn, $pass)) {
return true;
}
function list_records($cols=null, $subset=0)
{
// add general filter to query
- if (!empty($this->prop['filter']))
+ if (!empty($this->prop['filter']) && empty($this->filter))
{
$filter = $this->prop['filter'];
$this->set_search_set($filter);
*/
function _exec_search()
{
- if ($this->conn && $this->filter)
+ if ($this->ready && $this->filter)
{
$function = $this->prop['scope'] == 'sub' ? 'ldap_search' : ($this->prop['scope'] == 'base' ? 'ldap_read' : 'ldap_list');
$this->ldap_result = $function($this->conn, $this->prop['base_dn'], $this->filter, array_values($this->fieldmap), 0, 0);
*/
class rcube_mail_mime extends Mail_mime
{
+
+ protected $mime_content;
+
/**
* Set build parameters
*/
$value = trim($value);
//This header contains non ASCII chars and should be encoded.
- if (preg_match('#[\x80-\xFF]{1}#', $value)) {
+ if (preg_match('/[\x80-\xFF]{1}/', $value)) {
$suffix = '';
// Don't encode e-mail address
if (preg_match('/(.+)\s(<.+@[a-z0-9\-\.]+>)$/Ui', $value, $matches)) {
default:
// quoted-printable encoding has been selected
$mode = 'Q';
- $encoded = preg_replace('/([\x2C\x3F\x80-\xFF])/e', "'='.sprintf('%02X', ord('\\1'))", $value);
- // replace spaces with _
- $encoded = str_replace(' ', '_', $encoded);
+ // replace ?, =, _ and spaces
+ $encoded = str_replace(array('=','_','?',' '), array('=3D','=5F','=3F','_'), $value);
+ $encoded = preg_replace('/([\x80-\xFF])/e', "'='.sprintf('%02X', ord('\\1'))", $encoded);
}
$value = '=?' . $params['head_charset'] . '?' . $mode . '?' . $encoded . '?=' . $suffix;
$result[] = substr($string, $p);
return $result;
}
+
+ /**
+ * Provides caching of body of constructed MIME Message to avoid
+ * duplicate construction of message and damage of MIME headers
+ *
+ * @return string The mime content
+ * @access public
+ * @override
+ */
+ public function &get($build_params = null)
+ {
+ if(empty($this->mime_content))
+ $this->mime_content = parent::get($build_params);
+ return $this->mime_content;
+ }
}
| Author: Lukas Kahwe Smith <smith@pooteeweet.org> |
+-----------------------------------------------------------------------+
- $Id: rcube_mdb2.php 1390 2008-05-15 11:15:58Z thomasb $
+ $Id: rcube_mdb2.php 1978 2008-10-14 12:49:44Z thomasb $
*/
}
- /**
- * PHP 4 object constructor
- *
- * @see rcube_mdb2::__construct
- */
- function rcube_db($db_dsnw,$db_dsnr='')
- {
- $this->__construct($db_dsnw,$db_dsnr);
- }
-
-
/**
* Connect to specific database
*
function dsn_connect($dsn)
{
// Use persistent connections if available
- $dbh = MDB2::connect($dsn, array(
+ $db_options = array(
'persistent' => $this->db_pconn,
'emulate_prepared' => $this->debug_mode,
'debug' => $this->debug_mode,
'debug_handler' => 'mdb2_debug_handler',
- 'portability' => MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL));
+ 'portability' => MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL);
+
+ if ($this->db_provider == 'pgsql') {
+ $db_options['disable_smart_seqname'] = true;
+ $db_options['seqname_format'] = '%s';
+ }
+
+ $dbh = MDB2::connect($dsn, $db_options);
if (MDB2::isError($dbh))
{
}
+ /**
+ * Return SQL statement for case insensitive LIKE
+ *
+ * @param string Field name
+ * @param string Search value
+ * @return string SQL statement to use in query
+ * @access public
+ */
+ function ilike($column, $value)
+ {
+ // TODO: use MDB2's matchPattern() function
+ switch($this->db_provider)
+ {
+ case 'pgsql':
+ return $this->quote_identifier($column).' ILIKE '.$this->quote($value);
+ default:
+ return $this->quote_identifier($column).' LIKE '.$this->quote($value);
+ }
+ }
+
+
/**
* Adds a query result and returns a handle ID
*
if (empty($file_name) || !is_string($file_name))
return;
- $data = '';
- if ($fd = fopen($file_name, 'r'))
- {
- $data = fread($fd, filesize($file_name));
- fclose($fd);
- }
+ $data = file_get_contents($file_name);
if (strlen($data))
sqlite_exec($dbh->connection, $data);
public $mime_parts = array();
public $attachments = array();
public $subject = '';
+ public $sender = null;
public $is_safe = false;
-
+
+ /**
+ * __construct
+ *
+ * Provide a uid, and parse message structure.
+ *
+ * @param string $uid The message UID.
+ *
+ * @uses rcmail::get_instance()
+ * @uses rcube_imap::decode_mime_string()
+ * @uses self::set_safe()
+ *
+ * @see self::$app, self::$imap, self::$opt, self::$structure
+ */
function __construct($uid)
{
$this->app = rcmail::get_instance();
$this->uid = $uid;
$this->headers = $this->imap->get_headers($uid);
$this->subject = rcube_imap::decode_mime_string($this->headers->subject, $this->headers->charset);
+ list(, $this->sender) = each($this->imap->decode_address_list($this->headers->from));
- $this->is_safe = (intval($_GET['_safe']) || $_SESSION['safe_messages'][$uid]) ? true : false;
- $_SESSION['safe_messages'][$uid] = $this->is_safe;
+ $this->set_safe((intval($_GET['_safe']) || $_SESSION['safe_messages'][$uid]));
$this->opt = array(
'safe' => $this->is_safe,
'prefer_html' => $this->app->config->get('prefer_html'),
'get_url' => rcmail_url('get', array('_mbox' => $this->imap->get_mailbox_name(), '_uid' => $uid))
);
-
+
if ($this->structure = $this->imap->get_structure($uid)) {
$this->get_mime_numbers($this->structure);
$this->parse_structure($this->structure);
return $raw ? $value : $this->imap->decode_header($value);
}
+ /**
+ * Set is_safe var and session data
+ *
+ * @param bool enable/disable
+ */
+ public function set_safe($safe = true)
+ {
+ $this->is_safe = $safe;
+ $_SESSION['safe_messages'][$this->uid] = $this->is_safe;
+ }
/**
* Compose a valid URL for getting a message part
* Get content of a specific part of this message
*
* @param string Part MIME-ID
+ * @param resource File pointer to save the message part
* @return string Part content
*/
- public function get_part_content($mime_id)
+ public function get_part_content($mime_id, $fp=NULL)
{
if ($part = $this->mime_parts[$mime_id])
- return $this->imap->get_message_part($this->uid, $mime_id, $part);
+ return $this->imap->get_message_part($this->uid, $mime_id, $part, NULL, $fp);
else
return null;
}
$structure->type = 'content';
$this->parts[] = &$structure;
}
+ // the same for pgp signed messages
+ else if ($message_ctype_primary == 'application' && $message_ctype_secondary == 'pgp' && !$recursive) {
+ $structure->type = 'content';
+ $this->parts[] = &$structure;
+ }
// message contains alternative parts
else if ($message_ctype_primary == 'multipart' && ($message_ctype_secondary == 'alternative') && is_array($structure->parts)) {
// get html/plaintext parts
$this->parts[] = $print_part;
}
// show plaintext warning
- else if ($html_part !== nullL && empty($this->parts)) {
+ else if ($html_part !== null && empty($this->parts)) {
$c = new stdClass;
$c->type = 'content';
$c->body = rcube_label('htmlmessage');
$mail_part->type = 'content';
$this->parts[] = $mail_part;
}
-
+
// list as attachment as well
if (!empty($mail_part->filename))
$this->attachments[] = $mail_part;
// part message/*
else if ($primary_type=='message') {
$this->parse_structure($mail_part, true);
+
+ // list as attachment as well (mostly .eml)
+ if (!empty($mail_part->filename))
+ $this->attachments[] = $mail_part;
}
// ignore "virtual" protocol parts
else if ($primary_type == 'protocol')
continue;
// part belongs to a related message
- if ($message_ctype_secondary == 'related' && $mail_part->headers['content-id']) {
- $mail_part->content_id = preg_replace(array('/^</', '/>$/'), '', $mail_part->headers['content-id']);
- $this->inline_parts[] = $mail_part;
- }
+ if ($message_ctype_secondary == 'related') {
+ if ($mail_part->headers['content-id'])
+ $mail_part->content_id = preg_replace(array('/^</', '/>$/'), '', $mail_part->headers['content-id']);
+ if ($mail_part->headers['content-location'])
+ $mail_part->content_location = $mail_part->headers['content-base'] . $mail_part->headers['content-location'];
+
+ if ($mail_part->content_id || $mail_part->content_location) {
+ $this->inline_parts[] = $mail_part;
+ }
+ }
// is regular attachment
else {
if (!$mail_part->filename)
$a_replaces = array();
foreach ($this->inline_parts as $inline_object) {
- $a_replaces['cid:'.$inline_object->content_id] = $this->get_part_url($inline_object->mime_id);
+ $part_url = $this->get_part_url($inline_object->mime_id);
+ if ($inline_object->content_id)
+ $a_replaces['cid:'.$inline_object->content_id] = $part_url;
+ if ($inline_object->content_location)
+ $a_replaces[$inline_object->content_location] = $part_url;
}
// add replace array to each content part
$this->first = (int)$f;
}
- function rcube_result_set($c=0, $f=0)
- {
- $this->__construct($c, $f);
- }
-
function add($rec)
{
$this->records[] = $rec;
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: rcube_shared.inc 1490 2008-06-07 18:48:59Z alec $
+ $Id: rcube_shared.inc 2147 2008-12-11 17:29:50Z alec $
*/
*/
-/**
- * Provide details about the client's browser
- *
- * @return array Key-value pairs of browser properties
- */
-function rcube_browser()
-{
- $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
-
- $bw['ver'] = 0;
- $bw['win'] = stristr($HTTP_USER_AGENT, 'win');
- $bw['mac'] = stristr($HTTP_USER_AGENT, 'mac');
- $bw['linux'] = stristr($HTTP_USER_AGENT, 'linux');
- $bw['unix'] = stristr($HTTP_USER_AGENT, 'unix');
-
- $bw['ns4'] = stristr($HTTP_USER_AGENT, 'mozilla/4') && !stristr($HTTP_USER_AGENT, 'msie');
- $bw['ns'] = ($bw['ns4'] || stristr($HTTP_USER_AGENT, 'netscape'));
- $bw['ie'] = stristr($HTTP_USER_AGENT, 'msie');
- $bw['mz'] = stristr($HTTP_USER_AGENT, 'mozilla/5');
- $bw['opera'] = stristr($HTTP_USER_AGENT, 'opera');
- $bw['safari'] = stristr($HTTP_USER_AGENT, 'safari');
-
- if($bw['ns'])
- {
- $test = eregi("mozilla\/([0-9\.]+)", $HTTP_USER_AGENT, $regs);
- $bw['ver'] = $test ? (float)$regs[1] : 0;
- }
- if($bw['mz'])
- {
- $test = ereg("rv:([0-9\.]+)", $HTTP_USER_AGENT, $regs);
- $bw['ver'] = $test ? (float)$regs[1] : 0;
- }
- if($bw['ie'])
- {
- $test = eregi("msie ([0-9\.]+)", $HTTP_USER_AGENT, $regs);
- $bw['ver'] = $test ? (float)$regs[1] : 0;
- }
- if($bw['opera'])
- {
- $test = eregi("opera ([0-9\.]+)", $HTTP_USER_AGENT, $regs);
- $bw['ver'] = $test ? (float)$regs[1] : 0;
- }
-
- if(eregi(" ([a-z]{2})-([a-z]{2})", $HTTP_USER_AGENT, $regs))
- $bw['lang'] = $regs[1];
- else
- $bw['lang'] = 'en';
-
- $bw['dom'] = ($bw['mz'] || $bw['safari'] || ($bw['ie'] && $bw['ver']>=5) || ($bw['opera'] && $bw['ver']>=7));
- $bw['pngalpha'] = $bw['mz'] || $bw['safari'] || ($bw['ie'] && $bw['ver']>=5.5) ||
- ($bw['ie'] && $bw['ver']>=5 && $bw['mac']) || ($bw['opera'] && $bw['ver']>=7) ? TRUE : FALSE;
-
- return $bw;
-}
-
-
/**
* Send HTTP headers to prevent caching this page
*/
header("Expires: ".gmdate("D, d M Y H:i:s")." GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
- header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
+ header("Cache-Control: private, must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
+
+ // We need to set the following headers to make downloads work using IE in HTTPS mode.
+ if (isset($_SERVER['HTTPS'])) {
+ header('Pragma: ');
+ header('Cache-Control: ');
+ }
}
}
+/**
+ * Returns whether an $str is a reserved word for any of the version of Javascript or ECMAScript
+ * @param str String to check
+ * @return boolean True if $str is a reserver word, False if not
+ */
+function is_js_reserved_word($str)
+{
+ return in_array($str, array(
+ // ECMASript ver 4 reserved words
+ 'as','break','case','catch','class','const','continue',
+ 'default','delete','do','else','export','extends','false','finally','for','function',
+ 'if','import','in','instanceof','is','namespace','new','null','package','private',
+ 'public','return','super','switch','this','throw','true','try','typeof','use','var',
+ 'void','while','with',
+ // ECMAScript ver 4 future reserved words
+ 'abstract','debugger','enum','goto','implements','interface','native','protected',
+ 'synchronized','throws','transient','volatile',
+ // special meaning in some contexts
+ 'get','set',
+ // were reserved in ECMAScript ver 3
+ 'boolean','byte','char','double','final','float','int','long','short','static'
+ ));
+}
+
+
/**
* Convert a variable into a javascript object notation
*
foreach ($var as $key => $value)
{
// enclose key with quotes if it is not variable-name conform
- if (!ereg("^[_a-zA-Z]{1}[_a-zA-Z0-9]*$", $key) /* || is_js_reserved_word($key) */)
+ if (!ereg("^[_a-zA-Z]{1}[_a-zA-Z0-9]*$", $key) || is_js_reserved_word($key))
$key = "'$key'";
$pairs[] = sprintf("%s%s", $is_assoc ? "$key:" : '', json_serialize($value));
return $brackets{0} . implode(',', $pairs) . $brackets{1};
}
}
- else if (is_numeric($var) && strval(intval($var)) === strval($var))
+ else if (!is_string($var) && strval(intval($var)) === strval($var))
return $var;
else if (is_bool($var))
return $var ? '1' : '0';
}
+
/**
* Function to convert an array to a javascript array
* Actually an alias function for json_serialize()
*/
function in_array_nocase($needle, $haystack)
{
+ $needle = rc_strtolower($needle);
foreach ($haystack as $value)
- if (strtolower($needle)===strtolower($value))
+ if ($needle===rc_strtolower($value))
return true;
return false;
if ($bytes > 1073741824)
{
$gb = $bytes/1073741824;
- $str = sprintf($gb>=10 ? "%d GB" : "%.1f GB", $gb);
+ $str = sprintf($gb>=10 ? "%d " : "%.1f ", $gb) . rcube_label('GB');
}
else if ($bytes > 1048576)
{
$mb = $bytes/1048576;
- $str = sprintf($mb>=10 ? "%d MB" : "%.1f MB", $mb);
+ $str = sprintf($mb>=10 ? "%d " : "%.1f ", $mb) . rcube_label('MB');
}
else if ($bytes > 1024)
- $str = sprintf("%d KB", round($bytes/1024));
+ $str = sprintf("%d ", round($bytes/1024)) . rcube_label('KB');
else
- $str = sprintf('%d B', $bytes);
+ $str = sprintf('%d ', $bytes) . rcube_label('B');
return $str;
}
return strtolower($str);
}
+/**
+ * Wrapper function for strtoupper
+ */
+function rc_strtoupper($str)
+{
+ if (function_exists('mb_strtoupper'))
+ return mb_strtoupper($str);
+ else
+ return strtoupper($str);
+}
+
/**
* Wrapper function for substr
*/
* @see http://de2.php.net/manual/en/ref.fileinfo.php
* @see http://de2.php.net/mime_content_type
*/
-function rc_mime_content_type($path, $failover = 'unknown/unknown')
+function rc_mime_content_type($path, $failover = 'application/octet-stream')
{
- global $CONFIG;
-
- $mime_magic = $CONFIG['mime_magic'];
+ $mime_type = null;
+ $mime_magic = rcmail::get_instance()->config->get('mime_magic');
- if (function_exists('mime_content_type')) {
- return mime_content_type($path);
+ if (!extension_loaded('fileinfo')) {
+ @dl('fileinfo.' . PHP_SHLIB_SUFFIX);
}
- if (!extension_loaded('fileinfo')) {
- if (!dl('fileinfo.' . PHP_SHLIB_SUFFIX)) {
- return $failover;
+
+ if (function_exists('finfo_open')) {
+ if ($finfo = finfo_open(FILEINFO_MIME, $mime_magic)) {
+ $mime_type = finfo_file($finfo, $path);
+ finfo_close($finfo);
}
}
- $finfo = finfo_open(FILEINFO_MIME, $mime_magic);
- if (!$finfo) {
- return $failover;
+ if (!$mime_type && function_exists('mime_content_type')) {
+ $mime_type = mime_content_type($path);
}
- $mime_type = finfo_file($finfo,$path);
+
if (!$mime_type) {
- return $failover;
+ $mime_type = $failover;
}
- finfo_close($finfo);
return $mime_type;
}
// FIXME: the order is important, because sometimes
// iso string is detected as euc-jp and etc.
$enc = array(
- 'UTF-8', 'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4',
- 'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8', 'ISO-8859-9',
- 'ISO-8859-10', 'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'ISO-8859-16',
- 'WINDOWS-1252', 'WINDOWS-1251', 'EUC-JP', 'EUC-TW', 'KOI8-R'
+ 'UTF-8', 'SJIS', 'BIG5', 'GB2312',
+ 'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4',
+ 'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8', 'ISO-8859-9',
+ 'ISO-8859-10', 'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'ISO-8859-16',
+ 'WINDOWS-1252', 'WINDOWS-1251', 'EUC-JP', 'EUC-TW', 'KOI8-R',
+ 'ISO-2022-KR', 'ISO-2022-JP'
);
$result = mb_detect_encoding($string, join(',', $enc));
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: rcube_smtp.inc 1360 2008-05-07 09:38:44Z thomasb $
+ $Id: rcube_smtp.inc 2155 2008-12-16 13:00:55Z alec $
*/
// create Net_SMTP object and connect to server
if (!is_object($SMTP_CONN))
{
- $helo_host = empty($CONFIG['smtp_helo_host']) ? (empty($_SERVER['SERVER_NAME']) ? 'localhost' : $_SERVER['SERVER_NAME']) : $CONFIG['smtp_helo_host'];
- $SMTP_CONN = new Net_SMTP($smtp_host, $smtp_port, $helo_host);
-
- // set debugging
- if ($CONFIG['debug_level'] & 8)
- $SMTP_CONN->setDebug(TRUE);
+ if (!empty($CONFIG['smtp_helo_host']))
+ $helo_host = $CONFIG['smtp_helo_host'];
+ else if (!empty($_SERVER['SERVER_NAME']))
+ $helo_host = preg_replace('/:\d+$/', '', $_SERVER['SERVER_NAME']);
+ else
+ $helo_host = 'localhost';
+ $SMTP_CONN = new Net_SMTP($smtp_host, $smtp_port, $helo_host);
// try to connect to server and exit on failure
$result = $SMTP_CONN->connect($smtp_timeout);
{
var $app;
var $config;
- var $task = '';
var $framed = false;
var $pagetitle = '';
var $env = array();
var $js_commands = array();
var $object_handlers = array();
+ public $type = 'html';
public $ajax_call = false;
/**
$this->app = rcmail::get_instance();
$this->config = $this->app->config->all();
+ $this->browser = new rcube_browser();
//$this->framed = $framed;
- $this->task = $task;
+ $this->set_env('task', $task);
+
+ // load the correct skin (in case user-defined)
+ $this->set_skin($this->config['skin']);
// add common javascripts
$javascript = 'var '.JS_OBJECT_NAME.' = new rcube_webmail();';
}
+ /**
+ * Getter for the current page title
+ *
+ * @return string The page title
+ */
+ public function get_pagetitle()
+ {
+ if (!empty($this->pagetitle)) {
+ $title = $this->pagetitle;
+ }
+ else if ($this->env['task'] == 'login') {
+ $title = rcube_label(array('name' => 'welcome', 'vars' => array('product' => $this->config['product_name'])));
+ }
+ else {
+ $title = ucfirst($this->env['task']);
+ }
+
+ return $title;
+ }
+
+
+ /**
+ * Set skin
+ */
+ public function set_skin($skin)
+ {
+ if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin))
+ $skin_path = 'skins/'.$skin;
+ else
+ $skin_path = $this->config['skin_path'] ? $this->config['skin_path'] : 'skins/default';
+
+ $this->app->config->set('skin_path', $skin_path);
+ $this->config['skin_path'] = $skin_path;
+ }
+
+ /**
+ * Check if a specific template exists
+ *
+ * @param string Template name
+ * @return boolean True if template exists
+ */
+ public function template_exists($name)
+ {
+ $filename = $this->config['skin_path'] . '/templates/' . $name . '.html';
+
+ return (is_file($filename) && is_readable($filename));
+ }
+
/**
* Register a template object handler
*
* @uses self::$js_commands
* @uses self::$object_handlers
*/
- public public function reset()
+ public function reset()
{
$this->env = array();
$this->js_env = array();
}
+ /**
+ * Redirect to a certain url
+ *
+ * @param mixed Either a string with the action or url parameters as key-value pairs
+ * @see rcmail::url()
+ */
+ public function redirect($p = array())
+ {
+ $location = $this->app->url($p);
+ header('Location: ' . $location);
+ exit;
+ }
+
+
/**
* Send the request output to the client.
* This will either parse a skin tempalte or send an AJAX response
private function parse($name = 'main', $exit = true)
{
$skin_path = $this->config['skin_path'];
-
- // read template file
- $templ = '';
$path = "$skin_path/templates/$name.html";
- if (($fp = fopen($path, 'r')) === false) {
- $message = '';
- ob_start();
- fopen($path, 'r');
- $message.= ob_get_contents();
- ob_end_clean();
+ // read template file
+ if (($templ = @file_get_contents($path)) === false) {
raise_error(array(
'code' => 501,
'type' => 'php',
'line' => __LINE__,
'file' => __FILE__,
- 'message' => 'Error loading template for '.$name.': '.$message
+ 'message' => 'Error loading template for '.$name
), true, true);
return false;
}
- $templ = fread($fp, filesize($path));
- fclose($fp);
// parse for specialtags
$output = $this->parse_conditions($templ);
// add debug console
if ($this->config['debug_level'] & 8) {
- $this->add_footer('<div style="position:absolute;top:5px;left:5px;width:400px;padding:0.2em;background:white;opacity:0.8;z-index:9000">
+ $this->add_footer('<div style="position:absolute;top:5px;left:5px;width:405px;padding:2px;background:white;opacity:0.8;filter:alpha(opacity=80);z-index:9000">
<a href="#toggle" onclick="con=document.getElementById(\'dbgconsole\');con.style.display=(con.style.display==\'none\'?\'block\':\'none\');return false">console</a>
- <form action="/" name="debugform"><textarea name="console" id="dbgconsole" rows="20" cols="40" wrap="off" style="display:none;width:400px;border:none;font-size:x-small"></textarea></form></div>'
+ <form action="/" name="debugform" style="display:inline"><textarea name="console" id="dbgconsole" rows="20" cols="40" wrap="off" style="display:none;width:400px;border:none;font-size:x-small" spellcheck="false"></textarea></form></div>'
);
}
$output = $this->parse_with_globals($output);
implode(',', $args)
);
}
- // add command to set page title
- if ($this->ajax_call && !empty($this->pagetitle)) {
- $out .= sprintf(
- "this.set_pagetitle('%s');\n",
- JQ((!empty($this->config['product_name']) ? $this->config['product_name'].' :: ' : '') . $this->pagetitle)
- );
- }
+
return $out;
}
* @todo Get rid off eval() once I understand what this does.
* @todo Extend this to allow real conditions, not just "set"
* @param string Condition statement
- * @return boolean True if condition is met, False is not
+ * @return boolean True if condition is met, False if not
*/
private function check_condition($condition)
{
- $condition = preg_replace(
+ return eval("return (".$this->parse_expression($condition).");");
+ }
+
+
+ /**
+ * Parses expression and replaces variables
+ *
+ * @param string Expression statement
+ * @return string Expression statement
+ */
+ private function parse_expression($expression)
+ {
+ return preg_replace(
array(
'/session:([a-z0-9_]+)/i',
- '/config:([a-z0-9_]+)/i',
+ '/config:([a-z0-9_]+)(:([a-z0-9_]+))?/i',
'/env:([a-z0-9_]+)/i',
- '/request:([a-z0-9_]+)/ie'
+ '/request:([a-z0-9_]+)/i',
+ '/cookie:([a-z0-9_]+)/i'
),
array(
"\$_SESSION['\\1']",
- "\$this->config['\\1']",
+ "\$this->app->config->get('\\1',get_boolean('\\3'))",
"\$this->env['\\1']",
- "get_input_value('\\1', RCUVE_INPUT_GPC)"
+ "get_input_value('\\1', RCUBE_INPUT_GPC)",
+ "\$_COOKIE['\\1']"
),
- $condition);
-
- return eval("return (".$condition.");");
+ $expression);
}
*
* @param string Input string to parse
* @return string Altered input string
+ * @todo Use DOM-parser to traverse template HTML
* @todo Maybe a cache.
*/
private function parse_xml($input)
{
- return preg_replace('/<roundcube:([-_a-z]+)\s+([^>]+)>/Uie', "\$this->xml_command('\\1', '\\2')", $input);
+ return preg_replace_callback('/<roundcube:([-_a-z]+)\s+([^>]+)>/Ui', array($this, 'xml_command_callback'), $input);
+ }
+
+
+ /**
+ * This is a callback function for preg_replace_callback (see #1485286)
+ * It's only purpose is to reconfigure parameters for xml_command, so that the signature isn't disturbed
+ */
+ private function xml_command_callback($matches)
+ {
+ $str_attrib = isset($matches[2]) ? $matches[2] : '';
+ $add_attrib = isset($matches[3]) ? $matches[3] : array();
+
+ $command = $matches[1];
+ //matches[0] is the entire matched portion of the string
+
+ return $this->xml_command($command, $str_attrib, $add_attrib);
}
// include a file
case 'include':
$path = realpath($this->config['skin_path'].$attrib['file']);
- if ($fsize = filesize($path)) {
+ if (is_readable($path)) {
if ($this->config['skin_include_php']) {
$incl = $this->include_php($path);
}
- else if ($fp = fopen($path, 'r')) {
- $incl = fread($fp, $fsize);
- fclose($fp);
- }
+ else {
+ $incl = file_get_contents($path);
+ }
return $this->parse_xml($incl);
}
break;
}
return $ver;
}
+ if ($object=='steptitle') {
+ return Q($this->get_pagetitle());
+ }
if ($object=='pagetitle') {
- $task = $this->task;
$title = !empty($this->config['product_name']) ? $this->config['product_name'].' :: ' : '';
-
- if (!empty($this->pagetitle)) {
- $title .= $this->pagetitle;
- }
- else if ($task == 'login') {
- $title = rcube_label(array('name' => 'welcome', 'vars' => array('product' => $this->config['product_name'])));
- }
- else {
- $title .= ucfirst($task);
- }
-
+ $title .= $this->get_pagetitle();
return Q($title);
}
break;
+
+ // return code for a specified eval expression
+ case 'exp':
+ $value = $this->parse_expression($attrib['expression']);
+ return eval("return Q($value);");
// return variable
case 'var':
case 'session':
$value = $_SESSION[$name];
break;
+ case 'cookie':
+ $value = htmlspecialchars($_COOKIE[$name]);
+ break;
}
if (is_array($value)) {
* @todo Remove all inline JS calls and use jQuery instead.
* @todo Remove all sprintf()'s - they are pretty, but also slow.
*/
- private function button($attrib)
+ public function button($attrib)
{
static $sa_buttons = array();
static $s_button_count = 100;
return '';
}
- $browser = new rcube_browser();
-
// try to find out the button type
if ($attrib['type']) {
$attrib['type'] = strtolower($attrib['type']);
$attrib = $sa_buttons[$command];
}
- // set border to 0 because of the link arround the button
- if ($attrib['type']=='image' && !isset($attrib['border'])) {
- $attrib['border'] = 0;
- }
if (!$attrib['id']) {
$attrib['id'] = sprintf('rcmbtn%d', $s_button_count++);
}
$attrib['alt'] = Q(rcube_label($attrib['alt']));
}
// set title to alt attribute for IE browsers
- if ($browser->ie && $attrib['title'] && !$attrib['alt']) {
+ if ($this->browser->ie && $attrib['title'] && !$attrib['alt']) {
$attrib['alt'] = $attrib['title'];
unset($attrib['title']);
}
// make valid href to specific buttons
if (in_array($attrib['command'], rcmail::$main_tasks)) {
- $attrib['href'] = Q(rcmail_url(null, null, $attrib['command']));
+ $attrib['href'] = rcmail_url(null, null, $attrib['command']);
}
else if (in_array($attrib['command'], $a_static_commands)) {
- $attrib['href'] = Q(rcmail_url($attrib['command']));
+ $attrib['href'] = rcmail_url($attrib['command']);
+ }
+ else if ($attrib['command'] == 'permaurl' && !empty($this->env['permaurl'])) {
+ $attrib['href'] = $this->env['permaurl'];
}
}
array(
'style', 'class', 'id', 'width',
'height', 'border', 'hspace',
- 'vspace', 'align', 'alt',
+ 'vspace', 'align', 'alt', 'tabindex'
)
);
$btn_content = sprintf('<img src="%s"%s />', $this->abs_url($attrib['image']), $attrib_str);
if ($attrib['label']) {
$btn_content .= ' '.$attrib['label'];
}
- $link_attrib = array('href', 'onclick', 'onmouseover', 'onmouseout', 'onmousedown', 'onmouseup', 'title');
+ $link_attrib = array('href', 'onclick', 'onmouseover', 'onmouseout', 'onmousedown', 'onmouseup', 'title', 'target');
}
else if ($attrib['type']=='link') {
$btn_content = $attrib['label'] ? $attrib['label'] : $attrib['command'];
- $link_attrib = array('href', 'onclick', 'title', 'id', 'class', 'style');
+ $link_attrib = array('href', 'onclick', 'title', 'id', 'class', 'style', 'tabindex', 'target');
}
else if ($attrib['type']=='input') {
$attrib['type'] = 'button';
$attrib,
array(
'type', 'value', 'onclick',
- 'id', 'class', 'style'
+ 'id', 'class', 'style', 'tabindex'
)
);
$out = sprintf('<input%s disabled="disabled" />', $attrib_str);
$_SESSION['temp'] = true;
- $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser', 'size' => 30, 'autocomplete' => 'off'));
- $input_pass = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd', 'size' => 30));
+ $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser', 'size' => 30) + $attrib);
+ $input_pass = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd', 'size' => 30) + $attrib);
$input_action = new html_hiddenfield(array('name' => '_action', 'value' => 'login'));
+ $input_tzone = new html_hiddenfield(array('name' => '_timezone', 'id' => 'rcmlogintz', 'value' => '_default_'));
$input_host = null;
if (is_array($default_host)) {
}
}
}
- else if (!strlen($default_host)) {
+ else if (empty($default_host)) {
$input_host = new html_inputfield(array('name' => '_host', 'id' => 'rcmloginhost', 'size' => 30));
}
$table = new html_table(array('cols' => 2));
$table->add('title', html::label('rcmloginuser', Q(rcube_label('username'))));
- $table->add(null, $input_user->show(get_input_value('_user', RCUVE_INPUT_POST)));
+ $table->add(null, $input_user->show(get_input_value('_user', RCUBE_INPUT_POST)));
$table->add('title', html::label('rcmloginpwd', Q(rcube_label('password'))));
$table->add(null, $input_pass->show());
// add host selection row
if (is_object($input_host)) {
$table->add('title', html::label('rcmloginhost', Q(rcube_label('server'))));
- $table->add(null, $input_host->show(get_input_value('_host', RCUVE_INPUT_POST)));
+ $table->add(null, $input_host->show(get_input_value('_host', RCUBE_INPUT_POST)));
}
$out = $input_action->show();
+ $out .= $input_tzone->show();
$out .= $table->show();
// surround html output with a form tag
if (empty($attrib['id'])) {
$attrib['id'] = 'rcmqsearchbox';
}
+ if ($attrib['type'] == 'search' && !$this->browser->khtml) {
+ unset($attrib['type'], $attrib['results']);
+ }
+
$input_q = new html_inputfield($attrib);
$out = $input_q->show();
| program/include/rcube_user.inc |
| |
| This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
{
public $ID = null;
public $data = null;
- public $language = 'en_US';
+ public $language = null;
private $db = null;
}
}
- /**
- * PHP 4 object constructor
- *
- * @see rcube_user::__construct
- */
- function rcube_user($id = null, $sql_arr = null)
- {
- $this->__construct($id, $sql_arr);
- }
-
-
+
/**
* Build a user name string (as e-mail address)
*
*/
function get_prefs()
{
+ if (!empty($this->language))
+ $prefs = array('language' => $this->language);
+
if ($this->ID && $this->data['preferences'])
- return array('language' => $this->language) + unserialize($this->data['preferences']);
- else
- return array();
+ $prefs += (array)unserialize($this->data['preferences']);
+
+ return $prefs;
}
/**
* Write the given user prefs to the user's record
*
- * @param mixed User prefs to save
+ * @param array User prefs to save
* @return boolean True on success, False on failure
*/
function save_prefs($a_user_prefs)
{
if (!$this->ID)
return false;
+
+ $config = rcmail::get_instance()->config;
+ $old_prefs = (array)$this->get_prefs();
// merge (partial) prefs array with existing settings
- $a_user_prefs += (array)$this->get_prefs();
- unset($a_user_prefs['language']);
-
+ $save_prefs = $a_user_prefs + $old_prefs;
+ unset($save_prefs['language']);
+
+ // don't save prefs with default values if they haven't been changed yet
+ foreach ($a_user_prefs as $key => $value) {
+ if (!isset($old_prefs[$key]) && ($value == $config->get($key)))
+ unset($save_prefs[$key]);
+ }
+
$this->db->query(
"UPDATE ".get_table_name('users')."
SET preferences=?,
language=?
WHERE user_id=?",
- serialize($a_user_prefs),
+ serialize($save_prefs),
$_SESSION['language'],
$this->ID);
$this->language = $_SESSION['language'];
- if ($this->db->affected_rows())
- {
- rcmail::get_instance()->config->merge($a_user_prefs);
+ if ($this->db->affected_rows()) {
+ $config->merge($a_user_prefs);
return true;
}
WHERE del<>1
AND user_id=?
$sql_add
- ORDER BY ".$this->db->quoteIdentifier('standard')." DESC, name ASC",
+ ORDER BY ".$this->db->quoteIdentifier('standard')." DESC, name ASC, identity_id ASC",
$this->ID);
return $sql_result;
{
$dbh = rcmail::get_instance()->get_dbh();
- // query if user already registered
- $sql_result = $dbh->query(
- "SELECT * FROM ".get_table_name('users')."
- WHERE mail_host=? AND (username=? OR alias=?)",
- $host,
- $user,
- $user);
-
+ // query for matching user name
+ $query = "SELECT * FROM ".get_table_name('users')." WHERE mail_host=? AND %s=?";
+ $sql_result = $dbh->query(sprintf($query, 'username'), $host, $user);
+
+ // query for matching alias
+ if (!($sql_arr = $dbh->fetch_assoc($sql_result))) {
+ $sql_result = $dbh->query(sprintf($query, 'alias'), $host, $user);
+ $sql_arr = $dbh->fetch_assoc($sql_result);
+ }
+
// user already registered -> overwrite username
- if ($sql_arr = $dbh->fetch_assoc($sql_result))
+ if ($sql_arr)
return new rcube_user($sql_arr['user_id'], $sql_arr);
else
return false;
if ($user_id = $dbh->insert_id(get_sequence_name('users')))
{
- $mail_domain = rcmail_mail_domain($host);
+ $mail_domain = $rcmail->config->mail_domain($host);
if ($user_email=='')
$user_email = strpos($user, '@') ? $user : sprintf('%s@%s', $user, $mail_domain);
$user_name = $user != $user_email ? $user : '';
// try to resolve the e-mail address from the virtuser table
- if ($virtuser_query = $rcmail->config->get('virtuser_query') &&
- ($sql_result = $dbh->query(preg_replace('/%u/', $dbh->escapeSimple($user), $virtuser_query))) &&
- ($dbh->num_rows() > 0))
+ if (($virtuser_query = $rcmail->config->get('virtuser_query'))
+ && ($sql_result = $dbh->query(preg_replace('/%u/', $dbh->escapeSimple($user), $virtuser_query)))
+ && ($dbh->num_rows() > 0))
{
+ $standard = 1;
while ($sql_arr = $dbh->fetch_array($sql_result))
{
$dbh->query(
"INSERT INTO ".get_table_name('identities')."
(user_id, del, standard, name, email)
- VALUES (?, 0, 1, ?, ?)",
+ VALUES (?, 0, ?, ?, ?)",
$user_id,
+ $standard,
strip_newlines($user_name),
preg_replace('/^@/', $user . '@', $sql_arr[0]));
+ $standard = 0;
}
}
else
static function email2user($email)
{
$user = $email;
- $r = rcmail_findinvirtual("^$email");
+ $r = self::findinvirtual('^' . quotemeta($email) . '[[:space:]]');
for ($i=0; $i<count($r); $i++)
{
- $data = $r[$i];
+ $data = trim($r[$i]);
$arr = preg_split('/\s+/', $data);
if (count($arr) > 0)
{
*/
static function user2email($user)
{
- $email = "";
- $r = rcmail_findinvirtual("$user$");
+ $email = '';
+ $r = self::findinvirtual('[[:space:]]' . quotemeta($user) . '[[:space:]]*$');
for ($i=0; $i<count($r); $i++)
{
return $email;
}
+
+
+ /**
+ * Find matches of the given pattern in virtuser table
+ *
+ * @param string Regular expression to search for
+ * @return array Matching entries
+ */
+ private static function findinvirtual($pattern)
+ {
+ $result = array();
+ $virtual = null;
+
+ if ($virtuser_file = rcmail::get_instance()->config->get('virtuser_file'))
+ $virtual = file($virtuser_file);
+
+ if (empty($virtual))
+ return $result;
+
+ // check each line for matches
+ foreach ($virtual as $line)
+ {
+ $line = trim($line);
+ if (empty($line) || $line{0}=='#')
+ continue;
+
+ if (eregi($pattern, $line))
+ $result[] = $line;
+ }
+
+ return $result;
+ }
+
}
--- /dev/null
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/include/rcube_vcard.php |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2008, RoundCube Dev. - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Logical representation of a vcard address record |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com> |
+ +-----------------------------------------------------------------------+
+
+ $Id: $
+
+*/
+
+
+/**
+ * Logical representation of a vcard-based address record
+ * Provides functions to parse and export vCard data format
+ *
+ * @package Addressbook
+ * @author Thomas Bruederli <roundcube@gmail.com>
+ */
+class rcube_vcard
+{
+ private $raw = array(
+ 'FN' => array(),
+ 'N' => array(array('','','','','')),
+ );
+
+ public $business = false;
+ public $displayname;
+ public $surname;
+ public $firstname;
+ public $middlename;
+ public $nickname;
+ public $organization;
+ public $notes;
+ public $email = array();
+
+
+ /**
+ * Constructor
+ */
+ public function __construct($vcard = null)
+ {
+ if (!empty($vcard))
+ $this->load($vcard);
+ }
+
+
+ /**
+ * Load record from (internal, unfolded) vcard 3.0 format
+ *
+ * @param string vCard string to parse
+ */
+ public function load($vcard)
+ {
+ $this->raw = self::vcard_decode($vcard);
+
+ // find well-known address fields
+ $this->displayname = $this->raw['FN'][0];
+ $this->surname = $this->raw['N'][0][0];
+ $this->firstname = $this->raw['N'][0][1];
+ $this->middlename = $this->raw['N'][0][2];
+ $this->nickname = $this->raw['NICKNAME'][0];
+ $this->organization = $this->raw['ORG'][0];
+ $this->business = ($this->raw['X-ABShowAs'][0] == 'COMPANY') || (join('', (array)$this->raw['N'][0]) == '' && !empty($this->organization));
+
+ foreach ((array)$this->raw['EMAIL'] as $i => $raw_email)
+ $this->email[$i] = is_array($raw_email) ? $raw_email[0] : $raw_email;
+
+ // make the pref e-mail address the first entry in $this->email
+ $pref_index = $this->get_type_index('EMAIL', 'pref');
+ if ($pref_index > 0) {
+ $tmp = $this->email[0];
+ $this->email[0] = $this->email[$pref_index];
+ $this->email[$pref_index] = $tmp;
+ }
+ }
+
+
+ /**
+ * Convert the data structure into a vcard 3.0 string
+ */
+ public function export()
+ {
+ return self::rfc2425_fold(self::vcard_encode($this->raw));
+ }
+
+
+ /**
+ * Setter for address record fields
+ *
+ * @param string Field name
+ * @param string Field value
+ * @param string Section name
+ */
+ public function set($field, $value, $section = 'HOME')
+ {
+ switch ($field) {
+ case 'name':
+ case 'displayname':
+ $this->raw['FN'][0] = $value;
+ break;
+
+ case 'firstname':
+ $this->raw['N'][0][1] = $value;
+ break;
+
+ case 'surname':
+ $this->raw['N'][0][0] = $value;
+ break;
+
+ case 'nickname':
+ $this->raw['NICKNAME'][0] = $value;
+ break;
+
+ case 'organization':
+ $this->raw['ORG'][0] = $value;
+ break;
+
+ case 'email':
+ $index = $this->get_type_index('EMAIL', $section);
+ if (!is_array($this->raw['EMAIL'][$index])) {
+ $this->raw['EMAIL'][$index] = array(0 => $value, 'type' => array('INTERNET', $section, 'pref'));
+ }
+ else {
+ $this->raw['EMAIL'][$index][0] = $value;
+ }
+ break;
+ }
+ }
+
+
+ /**
+ * Find index with the '$type' attribute
+ *
+ * @param string Field name
+ * @return int Field index having $type set
+ */
+ private function get_type_index($field, $type = 'pref')
+ {
+ $result = 0;
+ if ($this->raw[$field]) {
+ foreach ($this->raw[$field] as $i => $data) {
+ if (is_array($data['type']) && in_array_nocase('pref', $data['type']))
+ $result = $i;
+ }
+ }
+
+ return $result;
+ }
+
+
+ /**
+ * Factory method to import a vcard file
+ *
+ * @param string vCard file content
+ * @return array List of rcube_vcard objects
+ */
+ public static function import($data)
+ {
+ $out = array();
+
+ // detect charset and convert to utf-8
+ $encoding = self::detect_encoding($data);
+ if ($encoding && $encoding != RCMAIL_CHARSET) {
+ $data = rcube_charset_convert($data, $encoding);
+ $data = preg_replace(array('/^[\xFE\xFF]{2}/', '/^\xEF\xBB\xBF/', '/^\x00+/'), '', $data); // also remove BOM
+ }
+
+ $vcard_block = '';
+ $in_vcard_block = false;
+
+ foreach (preg_split("/[\r\n]+/", $data) as $i => $line) {
+ if ($in_vcard_block && !empty($line))
+ $vcard_block .= $line . "\n";
+
+ if (trim($line) == 'END:VCARD') {
+ // parse vcard
+ $obj = new rcube_vcard(self::cleanup($vcard_block));
+ if (!empty($obj->displayname))
+ $out[] = $obj;
+
+ $in_vcard_block = false;
+ }
+ else if (trim($line) == 'BEGIN:VCARD') {
+ $vcard_block = $line . "\n";
+ $in_vcard_block = true;
+ }
+ }
+
+ return $out;
+ }
+
+
+ /**
+ * Normalize vcard data for better parsing
+ *
+ * @param string vCard block
+ * @return string Cleaned vcard block
+ */
+ private static function cleanup($vcard)
+ {
+ // Convert special types (like Skype) to normal type='skype' classes with this simple regex ;)
+ $vcard = preg_replace(
+ '/item(\d+)\.(TEL|URL)([^:]*?):(.*?)item\1.X-ABLabel:(?:_\$!<)?([\w-() ]*)(?:>!\$_)?./s',
+ '\2;type=\5\3:\4',
+ $vcard);
+
+ // Remove cruft like item1.X-AB*, item1.ADR instead of ADR, and empty lines
+ $vcard = preg_replace(array('/^item\d*\.X-AB.*$/m', '/^item\d*\./m', "/\n+/"), array('', '', "\n"), $vcard);
+
+ // remove vcard 2.1 charset definitions
+ $vcard = preg_replace('/;CHARSET=[^:;]+/', '', $vcard);
+
+ // if N doesn't have any semicolons, add some
+ $vcard = preg_replace('/^(N:[^;\R]*)$/m', '\1;;;;', $vcard);
+
+ return $vcard;
+ }
+
+
+ private static function rfc2425_fold($val)
+ {
+ return preg_replace('/:([^\n]{72,})/e', '":\n ".rtrim(chunk_split("\\1", 72, "\n "))', $val) . "\n";
+ }
+
+
+ /**
+ * Decodes a vcard block (vcard 3.0 format, unfolded)
+ * into an array structure
+ *
+ * @param string vCard block to parse
+ * @return array Raw data structure
+ */
+ private static function vcard_decode($vcard)
+ {
+ // Perform RFC2425 line unfolding
+ $vcard = preg_replace(array("/\r/", "/\n\s+/"), '', $vcard);
+
+ $lines = preg_split('/\r?\n/', $vcard);
+ $data = array();
+
+ for ($i=0; $i < count($lines); $i++) {
+ if (!preg_match('/^([^\\:]*):(.+)$/', $lines[$i], $line))
+ continue;
+
+ // convert 2.1-style "EMAIL;internet;home:" to 3.0-style "EMAIL;TYPE=internet;TYPE=home:"
+ if (($data['VERSION'][0] == "2.1") && preg_match('/^([^;]+);([^:]+)/', $line[1], $regs2) && !preg_match('/^TYPE=/i', $regs2[2])) {
+ $line[1] = $regs2[1];
+ foreach (explode(';', $regs2[2]) as $prop)
+ $line[1] .= ';' . (strpos($prop, '=') ? $prop : 'TYPE='.$prop);
+ }
+
+ if (!preg_match('/^(BEGIN|END)$/', $line[1]) && preg_match_all('/([^\\;]+);?/', $line[1], $regs2)) {
+ $entry = array('');
+ $field = $regs2[1][0];
+
+ foreach($regs2[1] as $attrid => $attr) {
+ if ((list($key, $value) = explode('=', $attr)) && $value) {
+ if ($key == 'ENCODING') {
+ # add next line(s) to value string if QP line end detected
+ while ($value == 'QUOTED-PRINTABLE' && ereg('=$', $lines[$i]))
+ $line[2] .= "\n" . $lines[++$i];
+
+ $line[2] = self::decode_value($line[2], $value);
+ }
+ else
+ $entry[strtolower($key)] = array_merge((array)$entry[strtolower($key)], (array)self::vcard_unquote($value, ','));
+ }
+ else if ($attrid > 0) {
+ $entry[$key] = true; # true means attr without =value
+ }
+ }
+
+ $entry[0] = self::vcard_unquote($line[2]);
+ $data[$field][] = count($entry) > 1 ? $entry : $entry[0];
+ }
+ }
+
+ unset($data['VERSION']);
+
+ return $data;
+ }
+
+
+ /**
+ * Split quoted string
+ *
+ * @param string vCard string to split
+ * @param string Separator char/string
+ * @return array List with splitted values
+ */
+ private static function vcard_unquote($s, $sep = ';')
+ {
+ // break string into parts separated by $sep, but leave escaped $sep alone
+ if (count($parts = explode($sep, strtr($s, array("\\$sep" => "\007")))) > 1) {
+ foreach($parts as $s) {
+ $result[] = self::vcard_unquote(strtr($s, array("\007" => "\\$sep")), $sep);
+ }
+ return $result;
+ }
+ else {
+ return strtr($s, array("\r" => '', '\\\\' => '\\', '\n' => "\n", '\,' => ',', '\;' => ';', '\:' => ':'));
+ }
+ }
+
+
+ /**
+ * Decode a given string with the encoding rule from ENCODING attributes
+ *
+ * @param string String to decode
+ * @param string Encoding type (quoted-printable and base64 supported)
+ * @return string Decoded 8bit value
+ */
+ private static function decode_value($value, $encoding)
+ {
+ switch (strtolower($encoding)) {
+ case 'quoted-printable':
+ return quoted_printable_decode($value);
+
+ case 'base64':
+ return base64_decode($value);
+
+ default:
+ return $value;
+ }
+ }
+
+
+ /**
+ * Encodes an entry for storage in our database (vcard 3.0 format, unfolded)
+ *
+ * @param array Raw data structure to encode
+ * @return string vCard encoded string
+ */
+ static function vcard_encode($data)
+ {
+ foreach((array)$data as $type => $entries) {
+ /* valid N has 5 properties */
+ while ($type == "N" && is_array($entries[0]) && count($entries[0]) < 5)
+ $entries[0][] = "";
+
+ foreach((array)$entries as $entry) {
+ $attr = '';
+ if (is_array($entry)) {
+ $value = array();
+ foreach($entry as $attrname => $attrvalues) {
+ if (is_int($attrname))
+ $value[] = $attrvalues;
+ elseif ($attrvalues === true)
+ $attr .= ";$attrname"; # true means just tag, not tag=value, as in PHOTO;BASE64:...
+ else {
+ foreach((array)$attrvalues as $attrvalue)
+ $attr .= ";$attrname=" . self::vcard_quote($attrvalue, ',');
+ }
+ }
+ }
+ else {
+ $value = $entry;
+ }
+
+ $vcard .= self::vcard_quote($type) . $attr . ':' . self::vcard_quote($value) . "\n";
+ }
+ }
+
+ return "BEGIN:VCARD\nVERSION:3.0\n{$vcard}END:VCARD";
+ }
+
+
+ /**
+ * Join indexed data array to a vcard quoted string
+ *
+ * @param array Field data
+ * @param string Separator
+ * @return string Joined and quoted string
+ */
+ private static function vcard_quote($s, $sep = ';')
+ {
+ if (is_array($s)) {
+ foreach($s as $part) {
+ $r[] = self::vcard_quote($part, $sep);
+ }
+ return(implode($sep, (array)$r));
+ }
+ else {
+ return strtr($s, array('\\' => '\\\\', "\r" => '', "\n" => '\n', ';' => '\;', ':' => '\:'));
+ }
+ }
+
+
+ /**
+ * Returns UNICODE type based on BOM (Byte Order Mark)
+ *
+ * @param string Input string to test
+ * @return string Detected encoding
+ */
+ private static function detect_encoding($string)
+ {
+ if (substr($string, 0, 4) == "\0\0\xFE\xFF") return 'UTF-32BE'; // Big Endian
+ if (substr($string, 0, 4) == "\xFF\xFE\0\0") return 'UTF-32LE'; // Little Endian
+ if (substr($string, 0, 2) == "\xFE\xFF") return 'UTF-16BE'; // Big Endian
+ if (substr($string, 0, 2) == "\xFF\xFE") return 'UTF-16LE'; // Little Endian
+ if (substr($string, 0, 3) == "\xEF\xBB\xBF") return 'UTF-8';
+
+ // use mb_detect_encoding()
+ $encodings = array('UTF-8', 'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3',
+ 'ISO-8859-4', 'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8', 'ISO-8859-9',
+ 'ISO-8859-10', 'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'ISO-8859-16',
+ 'WINDOWS-1252', 'WINDOWS-1251', 'BIG5', 'GB2312');
+
+ if (function_exists('mb_detect_encoding') && ($enc = mb_detect_encoding($string, $encodings)))
+ return $enc;
+
+ // No match, check for UTF-8
+ // from http://w3.org/International/questions/qa-forms-utf-8.html
+ if (preg_match('/\A(
+ [\x09\x0A\x0D\x20-\x7E]
+ | [\xC2-\xDF][\x80-\xBF]
+ | \xE0[\xA0-\xBF][\x80-\xBF]
+ | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}
+ | \xED[\x80-\x9F][\x80-\xBF]
+ | \xF0[\x90-\xBF][\x80-\xBF]{2}
+ | [\xF1-\xF3][\x80-\xBF]{3}
+ | \xF4[\x80-\x8F][\x80-\xBF]{2}
+ )*\z/xs', substr($string, 0, 2048)))
+ return 'UTF-8';
+
+ return rcmail::get_instance()->config->get('default_charset', 'ISO-8859-1'); # fallback to Latin-1
+ }
+
+}
+
+
| program/include/session.inc |
| |
| This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: session.inc 1400 2008-05-17 17:46:43Z thomasb $
+ $Id: session.inc 2084 2008-11-23 13:24:49Z thomasb $
*/
-function sess_open($save_path, $session_name)
- {
- return TRUE;
- }
+function rcube_sess_open($save_path, $session_name)
+{
+ return true;
+}
-function sess_close()
- {
- return TRUE;
- }
+function rcube_sess_close()
+{
+ return true;
+}
// read session data
-function sess_read($key)
- {
- global $DB, $SESS_CHANGED, $SESS_CLIENT_IP;
+function rcube_sess_read($key)
+{
+ global $SESS_CHANGED, $SESS_CLIENT_IP;
- if ($DB->is_error())
- return FALSE;
+ $DB = rcmail::get_instance()->get_dbh();
- $sql_result = $DB->query("SELECT vars, ip, ".$DB->unixtimestamp('changed')." AS changed
- FROM ".get_table_name('session')."
- WHERE sess_id=?",
- $key);
+ if ($DB->is_error()) {
+ return false;
+ }
+
+ $sql_result = $DB->query(
+ "SELECT vars, ip, " . $DB->unixtimestamp('changed') . " AS changed
+ FROM " . get_table_name('session') . "
+ WHERE sess_id=?",
+ $key);
- if ($sql_arr = $DB->fetch_assoc($sql_result))
- {
+ if ($sql_arr = $DB->fetch_assoc($sql_result)) {
$SESS_CHANGED = $sql_arr['changed'];
$SESS_CLIENT_IP = $sql_arr['ip'];
if (strlen($sql_arr['vars']))
return $sql_arr['vars'];
- }
-
- return FALSE;
}
+
+ return false;
+}
// save session data
-function sess_write($key, $vars)
- {
- global $DB;
+function rcube_sess_write($key, $vars)
+{
+ $DB = rcmail::get_instance()->get_dbh();
- if ($DB->is_error())
- return FALSE;
-
- $sql_result = $DB->query("SELECT 1
- FROM ".get_table_name('session')."
- WHERE sess_id=?",
- $key);
-
- if ($DB->num_rows($sql_result))
- {
- session_decode($vars);
- $DB->query("UPDATE ".get_table_name('session')."
- SET vars=?,
- changed=".$DB->now()."
- WHERE sess_id=?",
- $vars,
- $key);
- }
- else
- {
- $DB->query("INSERT INTO ".get_table_name('session')."
- (sess_id, vars, ip, created, changed)
- VALUES (?, ?, ?, ".$DB->now().", ".$DB->now().")",
- $key,
- $vars,
- (string)$_SERVER['REMOTE_ADDR']);
- }
-
- return TRUE;
+ if ($DB->is_error()) {
+ return false;
}
+ $sql_result = $DB->query(
+ "SELECT 1 FROM " . get_table_name('session') . "
+ WHERE sess_id=?",
+ $key);
+
+ $now = $DB->fromunixtime(time());
+
+ if ($DB->num_rows($sql_result)) {
+ $DB->query(
+ "UPDATE " . get_table_name('session') . "
+ SET vars=?, changed= " . $now . "
+ WHERE sess_id=?",
+ $vars,
+ $key);
+ }
+ else {
+ $DB->query(
+ "INSERT INTO " . get_table_name('session') . "
+ (sess_id, vars, ip, created, changed)
+ VALUES (?, ?, ?, " . $now . ", " . $now .")",
+ $key,
+ $vars,
+ (string)$_SERVER['REMOTE_ADDR']);
+ }
+
+ return true;
+}
+
// handler for session_destroy()
-function sess_destroy($key)
- {
- global $DB, $CONFIG;
+function rcube_sess_destroy($key)
+{
+ $rcmail = rcmail::get_instance();
+ $DB = $rcmail->get_dbh();
- if ($DB->is_error())
- return FALSE;
-
- if ($CONFIG['enable_caching'])
- {
- // delete session entries in cache table
- $DB->query("DELETE FROM ".get_table_name('cache')."
- WHERE session_id=?",
- $key);
- }
-
- $DB->query("DELETE FROM ".get_table_name('session')."
- WHERE sess_id=?",
- $key);
-
- return TRUE;
+ if ($DB->is_error()) {
+ return false;
}
+ $DB->query("DELETE FROM " . get_table_name('session') . " WHERE sess_id=?", $key);
+
+ return true;
+}
+
// garbage collecting function
-function sess_gc($maxlifetime)
- {
- global $DB, $CONFIG;
-
- if ($DB->is_error())
- return FALSE;
-
- // get all expired sessions
- $sql_result = $DB->query("SELECT sess_id
- FROM ".get_table_name('session')."
- WHERE ".$DB->unixtimestamp($DB->now())."-".$DB->unixtimestamp('changed')." > ?",
- $maxlifetime);
-
- $a_exp_sessions = array();
- while ($sql_arr = $DB->fetch_assoc($sql_result))
- $a_exp_sessions[] = $sql_arr['sess_id'];
-
- if (sizeof($a_exp_sessions))
- {
- if ($CONFIG['enable_caching'])
- {
- // delete session cache records
- $DB->query("DELETE FROM ".get_table_name('cache')."
- WHERE session_id IN ('".join("','", $a_exp_sessions)."')");
- }
-
- // delete session records
- $DB->query("DELETE FROM ".get_table_name('session')."
- WHERE sess_id IN ('".join("','", $a_exp_sessions)."')");
- }
-
- // also run message cache GC
- if ($CONFIG['enable_caching'])
- rcmail_message_cache_gc();
- rcmail_temp_gc();
+function rcube_sess_gc($maxlifetime)
+{
+ $rcmail = rcmail::get_instance();
+ $DB = $rcmail->get_dbh();
- return TRUE;
+ if ($DB->is_error()) {
+ return false;
}
+ // just delete all expired sessions
+ $DB->query("DELETE FROM " . get_table_name('session') . "
+ WHERE changed < " . $DB->fromunixtime(time() - $maxlifetime));
+
+ if ($rcmail->config->get('enable_caching'))
+ rcmail_cache_gc();
+
+ rcmail_temp_gc();
+
+ return true;
+}
+
-function sess_regenerate_id()
- {
- $randlen = 32;
+function rcube_sess_regenerate_id()
+{
$randval = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
- $random = "";
- for ($i=1; $i <= $randlen; $i++)
+
+ for ($random = "", $i=1; $i <= 32; $i++) {
$random .= substr($randval, rand(0,(strlen($randval) - 1)), 1);
+ }
// use md5 value for id or remove capitals from string $randval
$random = md5($random);
// delete old session record
- sess_destroy(session_id());
+ rcube_sess_destroy(session_id());
session_id($random);
- $cookie = session_get_cookie_params();
- $_lifetime = $cookie['lifetime'] ? time() + $cookie['lifetime'] : 0;
+ $cookie = session_get_cookie_params();
+ $lifetime = $cookie['lifetime'] ? time() + $cookie['lifetime'] : 0;
- setcookie(session_name(), '', time() - 3600);
- setcookie(session_name(), $random, $_lifetime, $cookie['path'],
- $cookie['domain']);
+ rcmail::setcookie(session_name(), $random, $lifetime);
return true;
- }
+}
// set custom functions for PHP session management
-session_set_save_handler('sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy', 'sess_gc');
+session_set_save_handler('rcube_sess_open', 'rcube_sess_close', 'rcube_sess_read', 'rcube_sess_write', 'rcube_sess_destroy', 'rcube_sess_gc');
?>
-/*
- +-----------------------------------------------------------------------+
- | RoundCube Webmail Client Script |
- | |
- | This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev, - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Authors: Thomas Bruederli <roundcube@gmail.com> |
- | Charles McNulty <charles@charlesmcnulty.com> |
- +-----------------------------------------------------------------------+
- | Requires: common.js, list.js |
- +-----------------------------------------------------------------------+
-
- $Id: app.js 1464 2008-06-02 12:24:31Z alec $
-*/
-
-
var rcube_webmail_client;
-
-function rcube_webmail()
- {
- this.env = new Object();
- this.labels = new Object();
- this.buttons = new Object();
- this.gui_objects = new Object();
- this.commands = new Object();
- this.onloads = new Array();
-
- // create protected reference to myself
- rcube_webmail_client = this;
- this.ref = 'rcube_webmail_client';
- var ref = this;
-
- // webmail client settings
- this.dblclick_time = 500;
- this.message_time = 3000;
-
- this.identifier_expr = new RegExp('[^0-9a-z\-_]', 'gi');
-
- // mimetypes supported by the browser (default settings)
- this.mimetypes = new Array('text/plain', 'text/html', 'text/xml',
- 'image/jpeg', 'image/gif', 'image/png',
- 'application/x-javascript', 'application/pdf',
- 'application/x-shockwave-flash');
-
- // default environment vars
- this.env.keep_alive = 60; // seconds
- this.env.request_timeout = 180; // seconds
- this.env.draft_autosave = 0; // seconds
- this.env.comm_path = './';
- this.env.bin_path = './bin/';
- this.env.blankpage = 'program/blank.gif';
-
-
- // set environment variable(s)
- this.set_env = function(p, value)
- {
- if (p != null && typeof(p) == 'object' && !value)
- for (var n in p)
- this.env[n] = p[n];
- else
- this.env[p] = value;
- };
-
-
- // add a localized label to the client environment
- this.add_label = function(key, value)
- {
- this.labels[key] = value;
- };
-
-
- // add a button to the button list
- this.register_button = function(command, id, type, act, sel, over)
- {
- if (!this.buttons[command])
- this.buttons[command] = new Array();
-
- var button_prop = {id:id, type:type};
- if (act) button_prop.act = act;
- if (sel) button_prop.sel = sel;
- if (over) button_prop.over = over;
-
- this.buttons[command][this.buttons[command].length] = button_prop;
- };
-
- // register a specific gui object
- this.gui_object = function(name, id)
- {
- this.gui_objects[name] = id;
- };
-
- // execute the given script on load
- this.add_onload = function(f)
- {
- this.onloads[this.onloads.length] = f;
- };
-
- // initialize webmail client
- this.init = function()
- {
- var p = this;
- this.task = this.env.task;
-
- // check browser
- if (!bw.dom || !bw.xmlhttp_test())
- {
- this.goto_url('error', '_code=0x199');
- return;
- }
-
- // find all registered gui objects
- for (var n in this.gui_objects)
- this.gui_objects[n] = rcube_find_object(this.gui_objects[n]);
-
- // tell parent window that this frame is loaded
- if (this.env.framed && parent.rcmail && parent.rcmail.set_busy)
- parent.rcmail.set_busy(false);
-
- // enable general commands
- this.enable_command('logout', 'mail', 'addressbook', 'settings', true);
-
- switch (this.task)
- {
- case 'mail':
- if (this.gui_objects.messagelist)
- {
- this.message_list = new rcube_list_widget(this.gui_objects.messagelist, {multiselect:true, draggable:true, keyboard:true, dblclick_time:this.dblclick_time});
- this.message_list.row_init = function(o){ p.init_message_row(o); };
- this.message_list.addEventListener('dblclick', function(o){ p.msglist_dbl_click(o); });
- this.message_list.addEventListener('keypress', function(o){ p.msglist_keypress(o); });
- this.message_list.addEventListener('select', function(o){ p.msglist_select(o); });
- this.message_list.addEventListener('dragstart', function(o){ p.drag_active = true; if (p.preview_timer) clearTimeout(p.preview_timer); });
- this.message_list.addEventListener('dragend', function(o){ p.drag_active = false; });
-
- this.message_list.init();
- this.enable_command('toggle_status', true);
-
- if (this.gui_objects.mailcontframe)
- {
- this.gui_objects.mailcontframe.onmousedown = function(e){ return p.click_on_list(e); };
- document.onmouseup = function(e){ return p.doc_mouse_up(e); };
- }
- else
- this.message_list.focus();
- }
-
- if (this.env.coltypes)
- this.set_message_coltypes(this.env.coltypes);
-
- // enable mail commands
- this.enable_command('list', 'checkmail', 'compose', 'add-contact', 'search', 'reset-search', true);
-
- if (this.env.search_text != null && document.getElementById('quicksearchbox') != null)
- document.getElementById('quicksearchbox').value = this.env.search_text;
-
- if (this.env.action=='show' || this.env.action=='preview')
- {
- this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete', 'mark', 'viewsource', 'print', 'load-attachment', true);
- if (this.env.next_uid)
- {
- this.enable_command('nextmessage', true);
- this.enable_command('lastmessage', true);
- }
- if (this.env.prev_uid)
- {
- this.enable_command('previousmessage', true);
- this.enable_command('firstmessage', true);
- }
- }
-
- if (this.env.trash_mailbox && this.env.mailbox != this.env.trash_mailbox)
- this.set_alttext('delete', 'movemessagetotrash');
-
- // make preview/message frame visible
- if (this.env.action == 'preview' && this.env.framed && parent.rcmail)
- {
- this.enable_command('compose', 'add-contact', false);
- parent.rcmail.show_contentframe(true);
- }
-
- if ((this.env.action=='show' || this.env.action=='preview') && this.env.blockedobjects)
- {
- if (this.gui_objects.remoteobjectsmsg)
- this.gui_objects.remoteobjectsmsg.style.display = 'block';
- this.enable_command('load-images', true);
- }
-
- if (this.env.action=='compose')
- {
- this.enable_command('add-attachment', 'send-attachment', 'remove-attachment', 'send', true);
- if (this.env.spellcheck)
- {
- this.env.spellcheck.spelling_state_observer = function(s){ ref.set_spellcheck_state(s); };
- this.set_spellcheck_state('ready');
- }
- if (this.env.drafts_mailbox)
- this.enable_command('savedraft', true);
- }
-
- if (this.env.messagecount)
- this.enable_command('select-all', 'select-none', 'expunge', true);
-
- if (this.env.messagecount && (this.env.mailbox==this.env.trash_mailbox || this.env.mailbox==this.env.junk_mailbox))
- this.enable_command('purge', true);
-
- this.set_page_buttons();
-
- // focus main window
- if (this.env.framed && window.parent)
- window.parent.focus();
- else
- window.focus();
-
- // init message compose form
- if (this.env.action=='compose')
- this.init_messageform();
-
- // show printing dialog
- if (this.env.action=='print')
- window.print();
-
- // get unread count for each mailbox
- if (this.gui_objects.mailboxlist)
- {
- this.gui_objects.folderlist = this.gui_objects.mailboxlist;
- this.http_request('getunread', '');
- }
-
- // ask user to send MDN
- if (this.env.mdn_request && this.env.uid)
- {
- var mdnurl = '_uid='+this.env.uid+'&_mbox='+urlencode(this.env.mailbox);
- if (confirm(this.get_label('mdnrequest')))
- this.http_post('sendmdn', mdnurl);
- else
- this.http_post('mark', mdnurl+'&_flag=mdnsent');
- }
-
- break;
-
-
- case 'addressbook':
- if (this.gui_objects.contactslist)
- {
- this.contact_list = new rcube_list_widget(this.gui_objects.contactslist, {multiselect:true, draggable:true, keyboard:true});
- this.contact_list.addEventListener('keypress', function(o){ p.contactlist_keypress(o); });
- this.contact_list.addEventListener('select', function(o){ p.contactlist_select(o); });
- this.contact_list.addEventListener('dragstart', function(o){ p.drag_active = true; });
- this.contact_list.addEventListener('dragend', function(o){ p.drag_active = false; });
- this.contact_list.init();
-
- if (this.env.cid)
- this.contact_list.highlight_row(this.env.cid);
-
- if (this.gui_objects.contactslist.parentNode)
- {
- this.gui_objects.contactslist.parentNode.onmousedown = function(e){ return p.click_on_list(e); };
- document.onmouseup = function(e){ return p.doc_mouse_up(e); };
- }
- else
- this.contact_list.focus();
- }
-
- this.set_page_buttons();
-
- if (this.env.address_sources && !this.env.address_sources[this.env.source].readonly)
- this.enable_command('add', true);
-
- if (this.env.cid)
- this.enable_command('show', 'edit', true);
-
- if ((this.env.action=='add' || this.env.action=='edit') && this.gui_objects.editform)
- this.enable_command('save', true);
- else
- this.enable_command('search', 'reset-search', 'moveto', true);
-
- this.enable_command('list', true);
- break;
-
-
- case 'settings':
- this.enable_command('preferences', 'identities', 'save', 'folders', true);
-
- if (this.env.action=='identities' || this.env.action=='edit-identity' || this.env.action=='add-identity')
- this.enable_command('edit', 'add', 'delete', true);
-
- if (this.env.action=='edit-identity' || this.env.action=='add-identity')
- this.enable_command('save', true);
-
- if (this.env.action=='folders')
- this.enable_command('subscribe', 'unsubscribe', 'create-folder', 'rename-folder', 'delete-folder', true);
-
- if (this.gui_objects.identitieslist)
- {
- this.identity_list = new rcube_list_widget(this.gui_objects.identitieslist, {multiselect:false, draggable:false, keyboard:false});
- this.identity_list.addEventListener('select', function(o){ p.identity_select(o); });
- this.identity_list.init();
- this.identity_list.focus();
-
- if (this.env.iid)
- this.identity_list.highlight_row(this.env.iid);
- }
-
- if (this.gui_objects.subscriptionlist)
- this.init_subscription_list();
-
- break;
-
- case 'login':
- var input_user = rcube_find_object('rcmloginuser');
- var input_pass = rcube_find_object('rcmloginpwd');
- if (input_user)
- input_user.onkeyup = function(e){ return rcmail.login_user_keyup(e); };
- if (input_user && input_user.value=='')
- input_user.focus();
- else if (input_pass)
- input_pass.focus();
-
- this.enable_command('login', true);
- break;
-
- default:
- break;
- }
-
-
- // enable basic commands
- this.enable_command('logout', true);
-
- // flag object as complete
- this.loaded = true;
-
- // show message
- if (this.pending_message)
- this.display_message(this.pending_message[0], this.pending_message[1]);
-
- // start keep-alive interval
- this.start_keepalive();
-
-
- // execute all foreign onload scripts
- for (var i=0; i<this.onloads.length; i++)
- {
- if (typeof(this.onloads[i]) == 'string')
- eval(this.onloads[i]);
- else if (typeof(this.onloads[i]) == 'function')
- this.onloads[i]();
- }
- };
-
-
- // start interval for keep-alive/recent_check signal
- this.start_keepalive = function()
- {
- if (this.env.keep_alive && !this.env.framed && this.task=='mail' && this.gui_objects.mailboxlist)
- this._int = setInterval(function(){ ref.check_for_recent(); }, this.env.keep_alive * 1000);
- else if (this.env.keep_alive && !this.env.framed && this.task!='login')
- this._int = setInterval(function(){ ref.send_keep_alive(); }, this.env.keep_alive * 1000);
- }
-
-
- this.init_message_row = function(row)
- {
- var uid = row.uid;
- if (uid && this.env.messages[uid])
- {
- row.deleted = this.env.messages[uid].deleted ? true : false;
- row.unread = this.env.messages[uid].unread ? true : false;
- row.replied = this.env.messages[uid].replied ? true : false;
- }
-
- // set eventhandler to message icon
- if ((row.icon = row.obj.cells[0].childNodes[0]) && row.icon.nodeName=='IMG')
- {
- var p = this;
- row.icon.id = 'msgicn_'+row.uid;
- row.icon._row = row.obj;
- row.icon.onmousedown = function(e) { p.command('toggle_status', this); };
- }
- };
-
-
- // init message compose form: set focus and eventhandlers
- this.init_messageform = function()
- {
- if (!this.gui_objects.messageform)
- return false;
-
- //this.messageform = this.gui_objects.messageform;
- var input_from = rcube_find_object('_from');
- var input_to = rcube_find_object('_to');
- var input_cc = rcube_find_object('_cc');
- var input_bcc = rcube_find_object('_bcc');
- var input_replyto = rcube_find_object('_replyto');
- var input_subject = rcube_find_object('_subject');
- var input_message = rcube_find_object('_message');
-
- // init live search events
- if (input_to)
- this.init_address_input_events(input_to);
- if (input_cc)
- this.init_address_input_events(input_cc);
- if (input_bcc)
- this.init_address_input_events(input_bcc);
-
- // add signature according to selected identity
- if (input_from && input_from.type=='select-one')
- this.change_identity(input_from);
-
- if (input_to && input_to.value=='')
- input_to.focus();
- else if (input_subject && input_subject.value=='')
- input_subject.focus();
- else if (input_message)
- this.set_caret2start(input_message);
-
- // get summary of all field values
- this.compose_field_hash(true);
-
- // start the auto-save timer
- this.auto_save_start();
- };
-
- this.init_address_input_events = function(obj)
- {
- var handler = function(e){ return ref.ksearch_keypress(e,this); };
- var handler2 = function(e){ return ref.ksearch_blur(e,this); };
-
- if (obj.addEventListener)
- {
- obj.addEventListener(bw.safari ? 'keydown' : 'keypress', handler, false);
- obj.addEventListener('blur', handler2, false);
- }
- else
- {
- obj.onkeydown = handler;
- obj.onblur = handler2;
- }
-
- obj.setAttribute('autocomplete', 'off');
- };
-
-
-
- /*********************************************************/
- /********* client command interface *********/
- /*********************************************************/
-
-
- // execute a specific command on the web client
- this.command = function(command, props, obj)
- {
- if (obj && obj.blur)
- obj.blur();
-
- if (this.busy)
- return false;
-
- // command not supported or allowed
- if (!this.commands[command])
- {
- // pass command to parent window
- if (this.env.framed && parent.rcmail && parent.rcmail.command)
- parent.rcmail.command(command, props);
-
- return false;
- }
-
-
- // check input before leaving compose step
- if (this.task=='mail' && this.env.action=='compose' && (command=='list' || command=='mail' || command=='addressbook' || command=='settings'))
- {
- if (this.cmp_hash != this.compose_field_hash() && !confirm(this.get_label('notsentwarning')))
- return false;
- }
-
-
- // process command
- switch (command)
- {
- case 'login':
- if (this.gui_objects.loginform)
- this.gui_objects.loginform.submit();
- break;
-
- case 'logout':
- this.goto_url('logout', '', true);
- break;
-
- // commands to switch task
- case 'mail':
- case 'addressbook':
- case 'settings':
- this.switch_task(command);
- break;
-
-
- // misc list commands
- case 'list':
- if (this.task=='mail')
- {
- if (this.env.search_request<0 || (props != '' && (this.env.search_request && props != this.env.mailbox)))
- this.reset_qsearch();
-
- this.list_mailbox(props);
-
- if (this.env.trash_mailbox)
- this.set_alttext('delete', this.env.mailbox != this.env.trash_mailbox ? 'movemessagetotrash' : 'deletemessage');
- }
- else if (this.task=='addressbook')
- {
- if (this.env.search_request<0 || (this.env.search_request && props != this.env.source))
- this.reset_qsearch();
-
- this.list_contacts(props);
- this.enable_command('add', (this.env.address_sources && !this.env.address_sources[props].readonly));
- }
- break;
-
-
- case 'sort':
- // get the type of sorting
- var a_sort = props.split('_');
- var sort_col = a_sort[0];
- var sort_order = a_sort[1] ? a_sort[1].toUpperCase() : null;
- var header;
-
- // no sort order specified: toggle
- if (sort_order==null)
- {
- if (this.env.sort_col==sort_col)
- sort_order = this.env.sort_order=='ASC' ? 'DESC' : 'ASC';
- else
- sort_order = this.env.sort_order;
- }
-
- if (this.env.sort_col==sort_col && this.env.sort_order==sort_order)
- break;
-
- // set table header class
- if (header = document.getElementById('rcmHead'+this.env.sort_col))
- this.set_classname(header, 'sorted'+(this.env.sort_order.toUpperCase()), false);
- if (header = document.getElementById('rcmHead'+sort_col))
- this.set_classname(header, 'sorted'+sort_order, true);
-
- // save new sort properties
- this.env.sort_col = sort_col;
- this.env.sort_order = sort_order;
-
- // reload message list
- this.list_mailbox('', '', sort_col+'_'+sort_order);
- break;
-
- case 'nextpage':
- this.list_page('next');
- break;
-
- case 'lastpage':
- this.list_page('last');
- break;
-
- case 'previouspage':
- this.list_page('prev');
- break;
-
- case 'firstpage':
- this.list_page('first');
- break;
-
- case 'expunge':
- if (this.env.messagecount)
- this.expunge_mailbox(this.env.mailbox);
- break;
-
- case 'purge':
- case 'empty-mailbox':
- if (this.env.messagecount)
- this.purge_mailbox(this.env.mailbox);
- break;
-
-
- // common commands used in multiple tasks
- case 'show':
- if (this.task=='mail')
- {
- var uid = this.get_single_uid();
- if (uid && (!this.env.uid || uid != this.env.uid))
- {
- if (this.env.mailbox == this.env.drafts_mailbox)
- this.goto_url('compose', '_draft_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true);
- else
- this.show_message(uid);
- }
- }
- else if (this.task=='addressbook')
- {
- var cid = props ? props : this.get_single_cid();
- if (cid && !(this.env.action=='show' && cid==this.env.cid))
- this.load_contact(cid, 'show');
- }
- break;
-
- case 'add':
- if (this.task=='addressbook')
- this.load_contact(0, 'add');
- else if (this.task=='settings')
- {
- this.identity_list.clear_selection();
- this.load_identity(0, 'add-identity');
- }
- break;
-
- case 'edit':
- var cid;
- if (this.task=='addressbook' && (cid = this.get_single_cid()))
- this.load_contact(cid, 'edit');
- else if (this.task=='settings' && props)
- this.load_identity(props, 'edit-identity');
- break;
-
- case 'save-identity':
- case 'save':
- if (this.gui_objects.editform)
- {
- var input_pagesize = rcube_find_object('_pagesize');
- var input_name = rcube_find_object('_name');
- var input_email = rcube_find_object('_email');
-
- // user prefs
- if (input_pagesize && isNaN(parseInt(input_pagesize.value)))
- {
- alert(this.get_label('nopagesizewarning'));
- input_pagesize.focus();
- break;
- }
- // contacts/identities
- else
- {
- if (input_name && input_name.value == '')
- {
- alert(this.get_label('nonamewarning'));
- input_name.focus();
- break;
- }
- else if (input_email && !rcube_check_email(input_email.value))
- {
- alert(this.get_label('noemailwarning'));
- input_email.focus();
- break;
- }
- }
-
- this.gui_objects.editform.submit();
- }
- break;
-
- case 'delete':
- // mail task
- if (this.task=='mail')
- this.delete_messages();
- // addressbook task
- else if (this.task=='addressbook')
- this.delete_contacts();
- // user settings task
- else if (this.task=='settings')
- this.delete_identity();
- break;
-
-
- // mail task commands
- case 'move':
- case 'moveto':
- if (this.task == 'mail')
- this.move_messages(props);
- else if (this.task == 'addressbook' && this.drag_active)
- this.copy_contact(null, props);
- break;
-
- case 'mark':
- if (props)
- this.mark_message(props);
- break;
-
- case 'toggle_status':
- if (props && !props._row)
- break;
-
- var uid;
- var flag = 'read';
-
- if (props._row.uid)
- {
- uid = props._row.uid;
-
- // toggle read/unread
- if (this.message_list.rows[uid].deleted) {
- flag = 'undelete';
- } else if (!this.message_list.rows[uid].unread)
- flag = 'unread';
- }
-
- this.mark_message(flag, uid);
- break;
-
- case 'load-images':
- if (this.env.uid)
- this.show_message(this.env.uid, true, this.env.action=='preview');
- break;
-
- case 'load-attachment':
- var qstring = '_mbox='+urlencode(this.env.mailbox)+'&_uid='+this.env.uid+'&_part='+props.part;
-
- // open attachment in frame if it's of a supported mimetype
- if (this.env.uid && props.mimetype && find_in_array(props.mimetype, this.mimetypes)>=0)
- {
- if (props.mimetype == 'text/html')
- qstring += '&_safe=1';
- this.attachment_win = window.open(this.env.comm_path+'&_action=get&'+qstring+'&_frame=1', 'rcubemailattachment');
- if (this.attachment_win)
- {
- window.setTimeout(function(){ ref.attachment_win.focus(); }, 10);
- break;
- }
- }
-
- this.goto_url('get', qstring+'&_download=1', false);
- break;
-
- case 'select-all':
- this.message_list.select_all(props);
- break;
-
- case 'select-none':
- this.message_list.clear_selection();
- break;
-
- case 'nextmessage':
- if (this.env.next_uid)
- this.show_message(this.env.next_uid, false, this.env.action=='preview');
- break;
-
- case 'lastmessage':
- if (this.env.last_uid)
- this.show_message(this.env.last_uid);
- break;
-
- case 'previousmessage':
- if (this.env.prev_uid)
- this.show_message(this.env.prev_uid, false, this.env.action=='preview');
- break;
-
- case 'firstmessage':
- if (this.env.first_uid)
- this.show_message(this.env.first_uid);
- break;
-
- case 'checkmail':
- this.check_for_recent();
- break;
-
- case 'compose':
- var url = this.env.comm_path+'&_action=compose';
-
- if (this.task=='mail' && this.env.mailbox==this.env.drafts_mailbox)
- {
- var uid;
- if (uid = this.get_single_uid())
- url += '&_draft_uid='+uid+'&_mbox='+urlencode(this.env.mailbox);
- }
- // modify url if we're in addressbook
- else if (this.task=='addressbook')
- {
- // switch to mail compose step directly
- if (props && props.indexOf('@') > 0)
- {
- url = this.get_task_url('mail', url);
- this.redirect(url + '&_to='+urlencode(props));
- break;
- }
-
- // use contact_id passed as command parameter
- var a_cids = new Array();
- if (props)
- a_cids[a_cids.length] = props;
- // get selected contacts
- else if (this.contact_list)
- {
- var selection = this.contact_list.get_selection();
- for (var n=0; n<selection.length; n++)
- a_cids[a_cids.length] = selection[n];
- }
-
- if (a_cids.length)
- this.http_request('mailto', '_cid='+urlencode(a_cids.join(','))+'&_source='+urlencode(this.env.source), true);
-
- break;
- }
- else if (props)
- url += '&_to='+urlencode(props);
-
- // don't know if this is necessary...
- url = url.replace(/&_framed=1/, "");
-
- this.redirect(url);
- break;
-
- case 'spellcheck':
- if (this.env.spellcheck && this.env.spellcheck.spellCheck && this.spellcheck_ready)
- {
- this.env.spellcheck.spellCheck(this.env.spellcheck.check_link);
- this.set_spellcheck_state('checking');
- }
- break;
-
- case 'savedraft':
- // Reset the auto-save timer
- self.clearTimeout(this.save_timer);
-
- if (!this.gui_objects.messageform)
- break;
-
- // if saving Drafts is disabled in main.inc.php
- // or if compose form did not change
- if (!this.env.drafts_mailbox || this.cmp_hash == this.compose_field_hash())
- break;
-
- this.set_busy(true, 'savingmessage');
- var form = this.gui_objects.messageform;
- form.target = "savetarget";
- form._draft.value = '1';
- form.submit();
- break;
-
- case 'send':
- if (!this.gui_objects.messageform)
- break;
-
- if (!this.check_compose_input())
- break;
-
- // Reset the auto-save timer
- self.clearTimeout(this.save_timer);
-
- // all checks passed, send message
- this.set_busy(true, 'sendingmessage');
- var form = this.gui_objects.messageform;
- form.target = "savetarget";
- form._draft.value = '';
- form.submit();
-
- // clear timeout (sending could take longer)
- clearTimeout(this.request_timer);
- break;
-
- case 'add-attachment':
- this.show_attachment_form(true);
-
- case 'send-attachment':
- // Reset the auto-save timer
- self.clearTimeout(this.save_timer);
-
- this.upload_file(props)
- break;
-
- case 'remove-attachment':
- this.remove_attachment(props);
- break;
-
- case 'reply-all':
- case 'reply':
- var uid;
- if (uid = this.get_single_uid())
- this.goto_url('compose', '_reply_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(command=='reply-all' ? '&_all=1' : ''), true);
- break;
-
- case 'forward':
- var uid;
- if (uid = this.get_single_uid())
- this.goto_url('compose', '_forward_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true);
- break;
-
- case 'print':
- var uid;
- if (uid = this.get_single_uid())
- {
- ref.printwin = window.open(this.env.comm_path+'&_action=print&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(this.env.safemode ? '&_safe=1' : ''));
- if (this.printwin)
- {
- window.setTimeout(function(){ ref.printwin.focus(); }, 20);
- if (this.env.action != 'show')
- this.mark_message('read', uid);
- }
- }
- break;
-
- case 'viewsource':
- var uid;
- if (uid = this.get_single_uid())
- {
- ref.sourcewin = window.open(this.env.comm_path+'&_action=viewsource&_uid='+this.env.uid+'&_mbox='+urlencode(this.env.mailbox));
- if (this.sourcewin)
- window.setTimeout(function(){ ref.sourcewin.focus(); }, 20);
- }
- break;
-
- case 'add-contact':
- this.add_contact(props);
- break;
-
- // quicksearch
- case 'search':
- if (!props && this.gui_objects.qsearchbox)
- props = this.gui_objects.qsearchbox.value;
- if (props)
- {
- this.qsearch(props);
- break;
- }
-
- // reset quicksearch
- case 'reset-search':
- var s = this.env.search_request;
- this.reset_qsearch();
-
- if (s && this.env.mailbox)
- this.list_mailbox(this.env.mailbox);
- else if (s && this.task == 'addressbook')
- this.list_contacts(this.env.source);
- break;
-
-
- // user settings commands
- case 'preferences':
- this.goto_url('');
- break;
-
- case 'identities':
- this.goto_url('identities');
- break;
-
- case 'delete-identity':
- this.delete_identity();
-
- case 'folders':
- this.goto_url('folders');
- break;
-
- case 'subscribe':
- this.subscribe_folder(props);
- break;
-
- case 'unsubscribe':
- this.unsubscribe_folder(props);
- break;
-
- case 'create-folder':
- this.create_folder(props);
- break;
-
- case 'rename-folder':
- this.rename_folder(props);
- break;
-
- case 'delete-folder':
- this.delete_folder(props);
- break;
-
- }
-
- return obj ? false : true;
- };
-
-
- // set command enabled or disabled
- this.enable_command = function()
- {
- var args = arguments;
- if(!args.length) return -1;
-
- var command;
- var enable = args[args.length-1];
-
- for(var n=0; n<args.length-1; n++)
- {
- command = args[n];
- this.commands[command] = enable;
- this.set_button(command, (enable ? 'act' : 'pas'));
- }
- return true;
- };
-
-
- // lock/unlock interface
- this.set_busy = function(a, message)
- {
- if (a && message)
- {
- var msg = this.get_label(message);
- if (msg==message)
- msg = 'Loading...';
-
- this.display_message(msg, 'loading', true);
- }
- else if (!a)
- this.hide_message();
-
- this.busy = a;
- //document.body.style.cursor = a ? 'wait' : 'default';
-
- if (this.gui_objects.editform)
- this.lock_form(this.gui_objects.editform, a);
-
- // clear pending timer
- if (this.request_timer)
- clearTimeout(this.request_timer);
-
- // set timer for requests
- if (a && this.env.request_timeout)
- this.request_timer = window.setTimeout(function(){ ref.request_timed_out(); }, this.env.request_timeout * 1000);
- };
-
-
- // return a localized string
- this.get_label = function(name)
- {
- if (this.labels[name])
- return this.labels[name];
- else
- return name;
- };
-
-
- // switch to another application task
- this.switch_task = function(task)
- {
- if (this.task===task && task!='mail')
- return;
-
- var url = this.get_task_url(task);
- if (task=='mail')
- url += '&_mbox=INBOX';
-
- this.redirect(url);
- };
-
-
- this.get_task_url = function(task, url)
- {
- if (!url)
- url = this.env.comm_path;
-
- return url.replace(/_task=[a-z]+/, '_task='+task);
- };
-
-
- // called when a request timed out
- this.request_timed_out = function()
- {
- this.set_busy(false);
- this.display_message('Request timed out!', 'error');
- };
-
-
- /*********************************************************/
- /********* event handling methods *********/
- /*********************************************************/
-
-
- this.doc_mouse_up = function(e)
- {
- if (this.message_list)
- this.message_list.blur();
- else if (this.contact_list)
- this.contact_list.blur();
- };
-
- this.focus_folder = function(id)
- {
- var li;
- if (this.drag_active && this.check_droptarget(id) && (li = this.get_folder_li(id)))
- this.set_classname(li, 'droptarget', true);
- }
-
- this.unfocus_folder = function(id)
- {
- var li;
- if (this.drag_active && (li = this.get_folder_li(id)))
- this.set_classname(li, 'droptarget', false);
- }
-
- // onmouseup handler for folder list item
- this.folder_mouse_up = function(id)
- {
- if (this.drag_active)
- {
- this.unfocus_folder(id);
- this.command('moveto', id);
- }
- };
-
- this.click_on_list = function(e)
- {
- if (this.message_list)
- this.message_list.focus();
- else if (this.contact_list)
- this.contact_list.focus();
-
- var mbox_li;
- if (mbox_li = this.get_folder_li())
- this.set_classname(mbox_li, 'unfocused', true);
-
- rcube_event.cancel(e);
- };
-
-
- this.msglist_select = function(list)
- {
- if (this.preview_timer)
- clearTimeout(this.preview_timer);
-
- var selected = list.selection.length==1;
-
- // Hide certain command buttons when Drafts folder is selected
- if (this.env.mailbox == this.env.drafts_mailbox)
- {
- this.enable_command('reply', 'reply-all', 'forward', false);
- this.enable_command('show', selected);
- this.enable_command('delete', 'moveto', 'mark', (list.selection.length > 0 ? true : false));
- }
- else
- {
- this.enable_command('show', 'reply', 'reply-all', 'forward', 'print', selected);
- this.enable_command('delete', 'moveto', 'mark', (list.selection.length > 0 ? true : false));
- }
-
- // start timer for message preview (wait for double click)
- if (selected && this.env.contentframe && !list.multi_selecting)
- this.preview_timer = window.setTimeout(function(){ ref.msglist_get_preview(); }, this.dblclick_time + 10);
- else if (this.env.contentframe)
- this.show_contentframe(false);
- };
-
-
- this.msglist_dbl_click = function(list)
- {
- if (this.preview_timer)
- clearTimeout(this.preview_timer);
-
- var uid = list.get_single_selection();
- if (uid && this.env.mailbox == this.env.drafts_mailbox)
- this.goto_url('compose', '_draft_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true);
- else if (uid)
- this.show_message(uid, false, false);
- };
-
-
- this.msglist_keypress = function(list)
- {
- if (list.key_pressed == list.ENTER_KEY)
- this.command('show');
- else if (list.key_pressed == list.DELETE_KEY)
- this.command('delete');
- else
- list.shiftkey = false;
- };
-
-
- this.msglist_get_preview = function()
- {
- var uid = this.get_single_uid();
- if (uid && this.env.contentframe && !this.drag_active)
- this.show_message(uid, false, true);
- else if (this.env.contentframe)
- this.show_contentframe(false);
- };
-
-
- this.check_droptarget = function(id)
- {
- if (this.task == 'mail')
- return (id != this.env.mailbox);
- else if (this.task == 'addressbook')
- return (id != this.env.source && this.env.address_sources[id] && !this.env.address_sources[id].readonly);
- else if (this.task == 'settings')
- return (id != this.env.folder);
- };
-
-
- /*********************************************************/
- /********* (message) list functionality *********/
- /*********************************************************/
-
-
- // when user doble-clicks on a row
- this.show_message = function(id, safe, preview)
- {
- var add_url = '';
- var action = preview ? 'preview': 'show';
- var target = window;
- if (preview && this.env.contentframe && window.frames && window.frames[this.env.contentframe])
- {
- target = window.frames[this.env.contentframe];
- add_url = '&_framed=1';
- }
-
- if (safe)
- add_url = '&_safe=1';
-
- // also send search request to get the right messages
- if (this.env.search_request)
- add_url += '&_search='+this.env.search_request;
-
- if (id)
- {
- var url = '&_action='+action+'&_uid='+id+'&_mbox='+urlencode(this.env.mailbox)+add_url;
- if (action == 'preview' && String(target.location.href).indexOf(url) >= 0)
- this.show_contentframe(true);
- else
- {
- this.set_busy(true, 'loading');
- target.location.href = this.env.comm_path+url;
- }
- }
- };
-
-
- this.show_contentframe = function(show)
- {
- var frm;
- if (this.env.contentframe && (frm = rcube_find_object(this.env.contentframe)))
- {
- if (!show && window.frames[this.env.contentframe])
- {
- if (window.frames[this.env.contentframe].location.href.indexOf(this.env.blankpage)<0)
- window.frames[this.env.contentframe].location.href = this.env.blankpage;
- }
- else if (!bw.safari)
- frm.style.display = show ? 'block' : 'none';
- }
-
- if (!show && this.busy)
- this.set_busy(false);
- };
-
-
- // list a specific page
- this.list_page = function(page)
- {
- if (page=='next')
- page = this.env.current_page+1;
- if (page=='last')
- page = this.env.pagecount;
- if (page=='prev' && this.env.current_page>1)
- page = this.env.current_page-1;
- if (page=='first' && this.env.current_page>1)
- page = 1;
-
- if (page > 0 && page <= this.env.pagecount)
- {
- this.env.current_page = page;
-
- if (this.task=='mail')
- this.list_mailbox(this.env.mailbox, page);
- else if (this.task=='addressbook')
- this.list_contacts(this.env.source, page);
- }
- };
-
-
- // list messages of a specific mailbox
- this.list_mailbox = function(mbox, page, sort)
- {
- this.last_selected = 0;
- var add_url = '';
- var target = window;
-
- if (!mbox)
- mbox = this.env.mailbox;
-
- // add sort to url if set
- if (sort)
- add_url += '&_sort=' + sort;
-
- // also send search request to get the right messages
- if (this.env.search_request)
- add_url += '&_search='+this.env.search_request;
-
- // set page=1 if changeing to another mailbox
- if (!page && mbox != this.env.mailbox)
- {
- page = 1;
- this.env.current_page = page;
- if (this.message_list)
- this.message_list.clear_selection();
- this.show_contentframe(false);
- }
-
- if (mbox != this.env.mailbox || (mbox == this.env.mailbox && !page && !sort))
- add_url += '&_refresh=1';
-
- this.select_folder(mbox, this.env.mailbox);
- this.env.mailbox = mbox;
-
- // load message list remotely
- if (this.gui_objects.messagelist)
- {
- this.list_mailbox_remote(mbox, page, add_url);
- return;
- }
-
- if (this.env.contentframe && window.frames && window.frames[this.env.contentframe])
- {
- target = window.frames[this.env.contentframe];
- add_url += '&_framed=1';
- }
-
- // load message list to target frame/window
- if (mbox)
- {
- this.set_busy(true, 'loading');
- target.location.href = this.env.comm_path+'&_mbox='+urlencode(mbox)+(page ? '&_page='+page : '')+add_url;
- }
- };
-
-
- // send remote request to load message list
- this.list_mailbox_remote = function(mbox, page, add_url)
- {
- // clear message list first
- this.message_list.clear();
-
- // send request to server
- var url = '_mbox='+urlencode(mbox)+(page ? '&_page='+page : '');
- this.set_busy(true, 'loading');
- this.http_request('list', url+add_url, true);
- };
-
-
- this.expunge_mailbox = function(mbox)
- {
- var lock = false;
- var add_url = '';
-
- // lock interface if it's the active mailbox
- if (mbox == this.env.mailbox)
- {
- lock = true;
- this.set_busy(true, 'loading');
- add_url = '&_reload=1';
- }
-
- // send request to server
- var url = '_mbox='+urlencode(mbox);
- this.http_post('expunge', url+add_url, lock);
- };
-
-
- this.purge_mailbox = function(mbox)
- {
- var lock = false;
- var add_url = '';
-
- if (!confirm(this.get_label('purgefolderconfirm')))
- return false;
-
- // lock interface if it's the active mailbox
- if (mbox == this.env.mailbox)
- {
- lock = true;
- this.set_busy(true, 'loading');
- add_url = '&_reload=1';
- }
-
- // send request to server
- var url = '_mbox='+urlencode(mbox);
- this.http_post('purge', url+add_url, lock);
- return true;
- };
-
-
- // move selected messages to the specified mailbox
- this.move_messages = function(mbox)
- {
- // exit if current or no mailbox specified or if selection is empty
- if (!mbox || mbox == this.env.mailbox || (!this.env.uid && (!this.message_list || !this.message_list.get_selection().length)))
- return;
-
- var lock = false;
- var add_url = '&_target_mbox='+urlencode(mbox)+'&_from='+(this.env.action ? this.env.action : '');
-
- // show wait message
- if (this.env.action=='show')
- {
- lock = true;
- this.set_busy(true, 'movingmessage');
- }
- else
- this.show_contentframe(false);
-
- // Hide message command buttons until a message is selected
- this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', false);
-
- this._with_selected_messages('moveto', lock, add_url);
- };
-
- // delete selected messages from the current mailbox
- this.delete_messages = function()
- {
- var selection = this.message_list ? this.message_list.get_selection() : new Array();
-
- // exit if no mailbox specified or if selection is empty
- if (!this.env.uid && !selection.length)
- return;
-
- // if there is a trash mailbox defined and we're not currently in it:
- if (this.env.trash_mailbox && String(this.env.mailbox).toLowerCase() != String(this.env.trash_mailbox).toLowerCase())
- {
- // if shift was pressed delete it immediately
- if (this.message_list && this.message_list.shiftkey)
- {
- if (confirm(this.get_label('deletemessagesconfirm')))
- this.permanently_remove_messages();
- }
- else
- this.move_messages(this.env.trash_mailbox);
- }
- // if there is a trash mailbox defined but we *are* in it:
- else if (this.env.trash_mailbox && String(this.env.mailbox).toLowerCase() == String(this.env.trash_mailbox).toLowerCase())
- this.permanently_remove_messages();
- // if there isn't a defined trash mailbox and the config is set to flag for deletion
- else if (!this.env.trash_mailbox && this.env.flag_for_deletion)
- {
- this.mark_message('delete');
- if(this.env.action=="show")
- this.command('nextmessage','',this);
- else if (selection.length == 1)
- this.message_list.select_next();
- }
- // if there isn't a defined trash mailbox and the config is set NOT to flag for deletion
- else if (!this.env.trash_mailbox)
- this.permanently_remove_messages();
- };
-
-
- // delete the selected messages permanently
- this.permanently_remove_messages = function()
- {
- // exit if no mailbox specified or if selection is empty
- if (!this.env.uid && (!this.message_list || !this.message_list.get_selection().length))
- return;
-
- this.show_contentframe(false);
- this._with_selected_messages('delete', false, '&_from='+(this.env.action ? this.env.action : ''));
- };
-
- // Send a specifc request with UIDs of all selected messages
- // @private
- this._with_selected_messages = function(action, lock, add_url)
- {
- var a_uids = new Array();
-
- if (this.env.uid)
- a_uids[0] = this.env.uid;
- else
- {
- var selection = this.message_list.get_selection();
- var id;
- for (var n=0; n<selection.length; n++)
- {
- id = selection[n];
- a_uids[a_uids.length] = id;
-
- this.message_list.remove_row(id, (n == selection.length-1));
- }
- }
-
- // also send search request to get the right messages
- if (this.env.search_request)
- add_url += '&_search='+this.env.search_request;
-
- // send request to server
- this.http_post(action, '_uid='+a_uids.join(',')+'&_mbox='+urlencode(this.env.mailbox)+add_url, lock);
- };
-
-
- // set a specific flag to one or more messages
- this.mark_message = function(flag, uid)
- {
- var a_uids = new Array();
- var r_uids = new Array();
- var selection = this.message_list ? this.message_list.get_selection() : new Array();
-
- if (uid)
- a_uids[0] = uid;
- else if (this.env.uid)
- a_uids[0] = this.env.uid;
- else if (this.message_list)
- {
- for (var n=0; n<selection.length; n++)
- {
- a_uids[a_uids.length] = selection[n];
- }
- }
-
- if (!this.message_list)
- r_uids = a_uids;
- else
- for (var id, n=0; n<a_uids.length; n++)
- {
- id = a_uids[n];
- if ((flag=='read' && this.message_list.rows[id].unread)
- || (flag=='unread' && !this.message_list.rows[id].unread)
- || (flag=='delete' && !this.message_list.rows[id].deleted)
- || (flag=='undelete' && this.message_list.rows[id].deleted))
- {
- r_uids[r_uids.length] = id;
- }
- }
-
- // nothing to do
- if (!r_uids.length)
- return;
-
- switch (flag)
- {
- case 'read':
- case 'unread':
- this.toggle_read_status(flag, r_uids);
- break;
- case 'delete':
- case 'undelete':
- this.toggle_delete_status(r_uids);
- break;
- }
- };
-
- // set class to read/unread
- this.toggle_read_status = function(flag, a_uids)
- {
- // mark all message rows as read/unread
- var icn_src;
- var rows = this.message_list.rows;
- for (var i=0; i<a_uids.length; i++)
- {
- uid = a_uids[i];
- if (rows[uid])
- {
- rows[uid].unread = (flag=='unread' ? true : false);
-
- if (rows[uid].classname.indexOf('unread')<0 && rows[uid].unread)
- {
- rows[uid].classname += ' unread';
- this.set_classname(rows[uid].obj, 'unread', true);
-
- if (this.env.unreadicon)
- icn_src = this.env.unreadicon;
- }
- else if (!rows[uid].unread)
- {
- rows[uid].classname = rows[uid].classname.replace(/\s*unread/, '');
- this.set_classname(rows[uid].obj, 'unread', false);
-
- if (this.env.messageicon)
- icn_src = this.env.messageicon;
- }
-
- if (rows[uid].icon && icn_src
- && !(rows[uid].replied && this.env.repliedicon)
- && !(rows[uid].deleted && this.env.deletedicon))
- rows[uid].icon.src = icn_src;
- }
- }
-
- this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag='+flag);
- };
-
- // set class to read/unread
- this.mark_as_read_from_preview = function(uid)
- {
- var icn_src;
- var rows = parent.rcmail.message_list.rows;
- if(rows[uid].unread)
- {
- rows[uid].unread = false;
- rows[uid].classname = rows[uid].classname.replace(/\s*unread/, '');
- parent.rcmail.set_classname(rows[uid].obj, 'unread', false);
-
- if (rows[uid].replied && parent.rcmail.env.repliedicon)
- icn_src = parent.rcmail.env.repliedicon;
- else if (rows[uid].deleted && parent.rcmail.env.deletedicon)
- icn_src = parent.rcmail.env.deletedicon;
- else if (parent.rcmail.env.messageicon)
- icn_src = parent.rcmail.env.messageicon;
-
- if (rows[uid].icon && icn_src)
- rows[uid].icon.src = icn_src;
- }
- }
-
-
- // mark all message rows as deleted/undeleted
- this.toggle_delete_status = function(a_uids)
- {
- var rows = this.message_list ? this.message_list.rows : new Array();
-
- if (a_uids.length==1)
- {
- if (!rows.length || (rows[a_uids[0]] && rows[a_uids[0]].classname.indexOf('deleted') < 0))
- this.flag_as_deleted(a_uids);
- else
- this.flag_as_undeleted(a_uids);
-
- return true;
- }
-
- var all_deleted = true;
- for (var i=0; i<a_uids.length; i++)
- {
- uid = a_uids[i];
- if (rows[uid]) {
- if (rows[uid].classname.indexOf('deleted')<0)
- {
- all_deleted = false;
- break;
- }
- }
- }
-
- if (all_deleted)
- this.flag_as_undeleted(a_uids);
- else
- this.flag_as_deleted(a_uids);
-
- return true;
- };
-
-
- this.flag_as_undeleted = function(a_uids)
- {
- var icn_src;
- var rows = this.message_list ? this.message_list.rows : new Array();
-
- for (var i=0; i<a_uids.length; i++)
- {
- uid = a_uids[i];
- if (rows[uid]) {
- rows[uid].deleted = false;
-
- if (rows[uid].classname.indexOf('deleted') > 0)
- {
- rows[uid].classname = rows[uid].classname.replace(/\s*deleted/, '');
- this.set_classname(rows[uid].obj, 'deleted', false);
- }
- if (rows[uid].unread && this.env.unreadicon)
- icn_src = this.env.unreadicon;
- else if (rows[uid].replied && this.env.repliedicon)
- icn_src = this.env.repliedicon;
- else if (this.env.messageicon)
- icn_src = this.env.messageicon;
-
- if (rows[uid].icon && icn_src)
- rows[uid].icon.src = icn_src;
- }
- }
-
- this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag=undelete');
- return true;
- };
-
-
- this.flag_as_deleted = function(a_uids)
- {
- var add_url = '';
- var r_uids = new Array();
- var rows = this.message_list ? this.message_list.rows : new Array();
-
- for (var i=0; i<a_uids.length; i++)
- {
- uid = a_uids[i];
- if (rows[uid])
- {
- rows[uid].deleted = true;
-
- if (rows[uid].classname.indexOf('deleted')<0)
- {
- rows[uid].classname += ' deleted';
- this.set_classname(rows[uid].obj, 'deleted', true);
- }
-
- if (rows[uid].icon && this.env.deletedicon)
- rows[uid].icon.src = this.env.deletedicon;
-
- if (rows[uid].unread)
- r_uids[r_uids.length] = uid;
- }
- }
-
- if (r_uids.length)
- add_url = '&_ruid='+r_uids.join(',');
-
- this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag=delete'+add_url);
- return true;
- };
-
-
- // flag as read without mark request (called from backend)
- // argument should be a coma-separated list of uids
- this.flag_deleted_as_read = function(uids)
- {
- var icn_src;
- var rows = this.message_list ? this.message_list.rows : new Array();
- var str = String(uids);
- var a_uids = new Array();
-
- a_uids = str.split(',');
-
- for (var uid, i=0; i<a_uids.length; i++)
- {
- uid = a_uids[i];
- if (rows[uid])
- {
- rows[uid].unread = false;
- rows[uid].read = true;
-
- rows[uid].classname = rows[uid].classname.replace(/\s*unread/, '');
- this.set_classname(rows[uid].obj, 'unread', false);
-
- if (rows[uid].icon)
- rows[uid].icon.src = this.env.deletedicon;
- }
- }
- };
-
- /*********************************************************/
- /********* login form methods *********/
- /*********************************************************/
-
- // handler for keyboard events on the _user field
- this.login_user_keyup = function(e)
- {
- var key = rcube_event.get_keycode(e);
- var elm;
-
- // enter
- if ((key==13) && (elm = rcube_find_object('_pass')))
- {
- elm.focus();
- return false;
- }
- };
-
-
- /*********************************************************/
- /********* message compose methods *********/
- /*********************************************************/
-
-
- // checks the input fields before sending a message
- this.check_compose_input = function()
- {
- // check input fields
- var input_to = rcube_find_object('_to');
- var input_cc = rcube_find_object('_cc');
- var input_bcc = rcube_find_object('_bcc');
- var input_subject = rcube_find_object('_subject');
- var input_message = rcube_find_object('_message');
-
- // check for empty recipient
- var recipients = input_to.value ? input_to.value : (input_cc.value ? input_cc.value : input_bcc.value);
- if (!rcube_check_email(recipients.replace(/^\s+/, '').replace(/[\s,;]+$/, ''), true))
- {
- alert(this.get_label('norecipientwarning'));
- input_to.focus();
- return false;
- }
-
- // display localized warning for missing subject
- if (input_subject && input_subject.value == '')
- {
- var subject = prompt(this.get_label('nosubjectwarning'), this.get_label('nosubject'));
-
- // user hit cancel, so don't send
- if (!subject && subject !== '')
- {
- input_subject.focus();
- return false;
- }
- else
- {
- input_subject.value = subject ? subject : this.get_label('nosubject');
- }
- }
-
- // check for empty body
- if ((input_message.value == '' &&
- (!window.tinyMCE || tinyMCE.get('compose-body').getContent() == '')) &&
- !confirm(this.get_label('nobodywarning')))
- {
- input_message.focus();
- return false;
- }
-
- return true;
- };
-
-
- this.set_spellcheck_state = function(s)
- {
- this.spellcheck_ready = (s=='check_spelling' || s=='ready');
- this.enable_command('spellcheck', this.spellcheck_ready);
- };
-
-
- this.set_draft_id = function(id)
- {
- var f;
- if (f = rcube_find_object('_draft_saveid'))
- f.value = id;
- };
-
- this.auto_save_start = function()
- {
- if (this.env.draft_autosave)
- this.save_timer = self.setTimeout(function(){ ref.command("savedraft"); }, this.env.draft_autosave * 1000);
-
- // Unlock interface now that saving is complete
- this.busy = false;
- };
-
-
- this.compose_field_hash = function(save)
- {
- // check input fields
- var input_to = rcube_find_object('_to');
- var input_cc = rcube_find_object('_cc');
- var input_bcc = rcube_find_object('_bcc');
- var input_subject = rcube_find_object('_subject');
- var editor, input_message;
- var str = '';
-
- if (input_to && input_to.value)
- str += input_to.value+':';
- if (input_cc && input_cc.value)
- str += input_cc.value+':';
- if (input_bcc && input_bcc.value)
- str += input_bcc.value+':';
- if (input_subject && input_subject.value)
- str += input_subject.value+':';
-
- if (editor = tinyMCE.get('compose-body'))
- str += editor.getContent();
- else
- {
- input_message = rcube_find_object('_message');
- str += input_message.value;
- }
-
- if (save)
- this.cmp_hash = str;
-
- return str;
- };
-
-
- this.change_identity = function(obj)
- {
- if (!obj || !obj.options)
- return false;
-
- var id = obj.options[obj.selectedIndex].value;
- var input_message = rcube_find_object('_message');
- var message = input_message ? input_message.value : '';
- var is_html = (rcube_find_object('_is_html').value == '1');
- var sig, p;
-
- if (!this.env.identity)
- this.env.identity = id
-
- if (!is_html)
- {
- // remove the 'old' signature
- if (this.env.identity && this.env.signatures && this.env.signatures[this.env.identity])
- {
- sig = this.env.signatures[this.env.identity]['text'];
- if (sig.indexOf('-- ')!=0)
- sig = '-- \n'+sig;
-
- p = message.lastIndexOf(sig);
- if (p>=0)
- message = message.substring(0, p-1) + message.substring(p+sig.length, message.length);
- }
-
- // add the new signature string
- if (this.env.signatures && this.env.signatures[id])
- {
- sig = this.env.signatures[id]['text'];
- if (this.env.signatures[id]['is_html'])
- {
- sig = this.env.signatures[id]['plain_text'];
- }
- if (sig.indexOf('-- ')!=0)
- sig = '-- \n'+sig;
- message += '\n'+sig;
- }
- }
- else
- {
- var editor = tinyMCE.get('compose-body');
-
- if (this.env.signatures && this.env.signatures[id])
- {
- // Append the signature as a span within the body
- var sigElem = editor.dom.get("_rc_sig");
- if (!sigElem)
- {
- sigElem = editor.getDoc().createElement("span");
- sigElem.setAttribute("id", "_rc_sig");
- editor.getBody().appendChild(sigElem);
- }
- if (this.env.signatures[id]['is_html'])
- {
- sigElem.innerHTML = this.env.signatures[id]['text'];
- }
- else
- {
- sigElem.innerHTML = '<pre>' + this.env.signatures[id]['text'] + '</pre>';
- }
- }
- }
-
- if (input_message)
- input_message.value = message;
-
- this.env.identity = id;
- return true;
- };
-
-
- this.show_attachment_form = function(a)
- {
- if (!this.gui_objects.uploadbox)
- return false;
-
- var elm, list;
- if (elm = this.gui_objects.uploadbox)
- {
- if (a && (list = this.gui_objects.attachmentlist))
- {
- var pos = rcube_get_object_pos(list);
- var left = pos.x;
- var top = pos.y + list.offsetHeight + 10;
-
- elm.style.top = top+'px';
- elm.style.left = left+'px';
- }
-
- elm.style.visibility = a ? 'visible' : 'hidden';
- }
-
- // clear upload form
- try {
- if (!a && this.gui_objects.attachmentform != this.gui_objects.messageform)
- this.gui_objects.attachmentform.reset();
- }
- catch(e){} // ignore errors
-
- return true;
- };
-
-
- // upload attachment file
- this.upload_file = function(form)
- {
- if (!form)
- return false;
-
- // get file input fields
- var send = false;
- for (var n=0; n<form.elements.length; n++)
- if (form.elements[n].type=='file' && form.elements[n].value)
- {
- send = true;
- break;
- }
-
- // create hidden iframe and post upload form
- if (send)
- {
- var ts = new Date().getTime();
- var frame_name = 'rcmupload'+ts;
-
- // have to do it this way for IE
- // otherwise the form will be posted to a new window
- if(document.all)
- {
- var html = '<iframe name="'+frame_name+'" src="program/blank.gif" style="width:0;height:0;visibility:hidden;"></iframe>';
- document.body.insertAdjacentHTML('BeforeEnd',html);
- }
- else // for standards-compilant browsers
- {
- var frame = document.createElement('IFRAME');
- frame.name = frame_name;
- frame.style.border = 'none';
- frame.style.width = 0;
- frame.style.height = 0;
- frame.style.visibility = 'hidden';
- document.body.appendChild(frame);
- }
-
- form.target = frame_name;
- form.action = this.env.comm_path+'&_action=upload';
- form.setAttribute('enctype', 'multipart/form-data');
- form.submit();
- }
-
- // set reference to the form object
- this.gui_objects.attachmentform = form;
- return true;
- };
-
-
- // add file name to attachment list
- // called from upload page
- this.add2attachment_list = function(name, content)
- {
- if (!this.gui_objects.attachmentlist)
- return false;
-
- var li = document.createElement('LI');
- li.id = name;
- li.innerHTML = content;
- this.gui_objects.attachmentlist.appendChild(li);
- return true;
- };
-
- this.remove_from_attachment_list = function(name)
- {
- if (!this.gui_objects.attachmentlist)
- return false;
-
- var list = this.gui_objects.attachmentlist.getElementsByTagName("li");
- for (i=0;i<list.length;i++)
- if (list[i].id == name)
- this.gui_objects.attachmentlist.removeChild(list[i]);
- };
-
- this.remove_attachment = function(name)
- {
- if (name)
- this.http_post('remove-attachment', '_file='+urlencode(name));
-
- return true;
- };
-
- // send remote request to add a new contact
- this.add_contact = function(value)
- {
- if (value)
- this.http_post('addcontact', '_address='+value);
-
- return true;
- };
-
- // send remote request to search mail or contacts
- this.qsearch = function(value)
- {
- if (value != '')
- {
- if (this.message_list)
- this.message_list.clear();
- else if (this.contact_list) {
- this.contact_list.clear(true);
- this.show_contentframe(false);
- }
-
- // reset vars
- this.env.current_page = 1;
- this.set_busy(true, 'searching');
- this.http_request('search', '_q='+urlencode(value)+(this.env.mailbox ? '&_mbox='+urlencode(this.env.mailbox) : '')+(this.env.source ? '&_source='+urlencode(this.env.source) : ''), true);
- }
- return true;
- };
-
- // reset quick-search form
- this.reset_qsearch = function()
- {
- if (this.gui_objects.qsearchbox)
- this.gui_objects.qsearchbox.value = '';
-
- this.env.search_request = null;
- return true;
- };
-
-
- this.sent_successfully = function(msg)
- {
- this.list_mailbox();
- this.display_message(msg, 'confirmation', true);
- }
-
-
- /*********************************************************/
- /********* keyboard live-search methods *********/
- /*********************************************************/
-
-
- // handler for keyboard events on address-fields
- this.ksearch_keypress = function(e, obj)
- {
- if (typeof(this.env.contacts)!='object' || !this.env.contacts.length)
- return true;
-
- if (this.ksearch_timer)
- clearTimeout(this.ksearch_timer);
-
- var highlight;
- var key = rcube_event.get_keycode(e);
- var mod = rcube_event.get_modifier(e);
-
- switch (key)
- {
- case 38: // key up
- case 40: // key down
- if (!this.ksearch_pane)
- break;
-
- var dir = key==38 ? 1 : 0;
- var next;
-
- highlight = document.getElementById('rcmksearchSelected');
- if (!highlight)
- highlight = this.ksearch_pane.ul.firstChild;
-
- if (highlight && (next = dir ? highlight.previousSibling : highlight.nextSibling))
- {
- highlight.removeAttribute('id');
- this.set_classname(highlight, 'selected', false);
- }
-
- if (next)
- {
- next.setAttribute('id', 'rcmksearchSelected');
- this.set_classname(next, 'selected', true);
- this.ksearch_selected = next._rcm_id;
- }
-
- return rcube_event.cancel(e);
-
- case 9: // tab
- if(mod == SHIFT_KEY)
- break;
-
- case 13: // enter
- if (this.ksearch_selected===null || !this.ksearch_input || !this.ksearch_value)
- break;
-
- // insert selected address and hide ksearch pane
- this.insert_recipient(this.ksearch_selected);
- this.ksearch_hide();
-
- return rcube_event.cancel(e);
-
- case 27: // escape
- this.ksearch_hide();
- break;
-
- }
-
- // start timer
- this.ksearch_timer = window.setTimeout(function(){ ref.ksearch_get_results(); }, 200);
- this.ksearch_input = obj;
-
- return true;
- };
-
-
- this.insert_recipient = function(id)
- {
- if (!this.env.contacts[id] || !this.ksearch_input)
- return;
-
- // get cursor pos
- var inp_value = this.ksearch_input.value.toLowerCase();
- var cpos = this.get_caret_pos(this.ksearch_input);
- var p = inp_value.lastIndexOf(this.ksearch_value, cpos);
-
- // replace search string with full address
- var pre = this.ksearch_input.value.substring(0, p);
- var end = this.ksearch_input.value.substring(p+this.ksearch_value.length, this.ksearch_input.value.length);
- var insert = this.env.contacts[id]+', ';
- this.ksearch_input.value = pre + insert + end;
-
- // set caret to insert pos
- cpos = p+insert.length;
- if (this.ksearch_input.setSelectionRange)
- this.ksearch_input.setSelectionRange(cpos, cpos);
- };
-
-
- // address search processor
- this.ksearch_get_results = function()
- {
- var inp_value = this.ksearch_input ? this.ksearch_input.value : null;
- if (inp_value===null)
- return;
-
- // get string from current cursor pos to last comma
- var cpos = this.get_caret_pos(this.ksearch_input);
- var p = inp_value.lastIndexOf(',', cpos-1);
- var q = inp_value.substring(p+1, cpos);
-
- // trim query string
- q = q.replace(/(^\s+|\s+$)/g, '').toLowerCase();
-
- if (!q.length || q==this.ksearch_value)
- {
- if (!q.length && this.ksearch_pane && this.ksearch_pane.visible)
- this.ksearch_pane.show(0);
-
- return;
- }
-
- this.ksearch_value = q;
-
- // start searching the contact list
- var a_results = new Array();
- var a_result_ids = new Array();
- var c=0;
- for (var i=0; i<this.env.contacts.length; i++)
- {
- if (this.env.contacts[i].toLowerCase().indexOf(q)>=0)
- {
- a_results[c] = this.env.contacts[i];
- a_result_ids[c++] = i;
-
- if (c==15) // limit search results
- break;
- }
- }
-
- // display search results
- if (c && a_results.length)
- {
- var p, ul, li;
-
- // create results pane if not present
- if (!this.ksearch_pane)
- {
- ul = document.createElement('UL');
- this.ksearch_pane = new rcube_layer('rcmKSearchpane', {vis:0, zindex:30000});
- this.ksearch_pane.elm.appendChild(ul);
- this.ksearch_pane.ul = ul;
- }
- else
- ul = this.ksearch_pane.ul;
-
- // remove all search results
- ul.innerHTML = '';
-
- // add each result line to list
- for (i=0; i<a_results.length; i++)
- {
- li = document.createElement('LI');
- li.innerHTML = a_results[i].replace(/</, '<').replace(/>/, '>');
- li._rcm_id = a_result_ids[i];
- ul.appendChild(li);
- }
-
- // check if last selected item is still in result list
- if (this.ksearch_selected!==null)
- {
- p = find_in_array(this.ksearch_selected, a_result_ids);
- if (p>=0 && ul.childNodes)
- {
- ul.childNodes[p].setAttribute('id', 'rcmksearchSelected');
- this.set_classname(ul.childNodes[p], 'selected', true);
- }
- else
- this.ksearch_selected = null;
- }
-
- // if no item selected, select the first one
- if (this.ksearch_selected===null)
- {
- ul.firstChild.setAttribute('id', 'rcmksearchSelected');
- this.set_classname(ul.firstChild, 'selected', true);
- this.ksearch_selected = a_result_ids[0];
- }
-
- // move the results pane right under the input box and make it visible
- var pos = rcube_get_object_pos(this.ksearch_input);
- this.ksearch_pane.move(pos.x, pos.y+this.ksearch_input.offsetHeight);
- this.ksearch_pane.show(1);
- }
- // hide results pane
- else
- this.ksearch_hide();
- };
-
-
- this.ksearch_blur = function(e, obj)
- {
- if (this.ksearch_timer)
- clearTimeout(this.ksearch_timer);
-
- this.ksearch_value = '';
- this.ksearch_input = null;
-
- this.ksearch_hide();
- };
-
-
- this.ksearch_hide = function()
- {
- this.ksearch_selected = null;
-
- if (this.ksearch_pane)
- this.ksearch_pane.show(0);
- };
-
-
-
- /*********************************************************/
- /********* address book methods *********/
- /*********************************************************/
-
-
- this.contactlist_keypress = function(list)
- {
- if (list.key_pressed == list.DELETE_KEY)
- this.command('delete');
- };
-
-
- this.contactlist_select = function(list)
- {
- if (this.preview_timer)
- clearTimeout(this.preview_timer);
-
- var id, frame, ref = this;
- if (id = list.get_single_selection())
- this.preview_timer = window.setTimeout(function(){ ref.load_contact(id, 'show'); }, this.dblclick_time + 10);
- else if (this.env.contentframe)
- this.show_contentframe(false);
-
- this.enable_command('edit', id?true:false);
- this.enable_command('compose', list.selection.length > 0);
- this.enable_command('delete', list.selection.length && this.env.address_sources && !this.env.address_sources[this.env.source].readonly);
-
- return false;
- };
-
-
- this.list_contacts = function(src, page)
- {
- var add_url = '';
- var target = window;
-
- if (!src)
- src = this.env.source;
-
- if (page && this.current_page==page && src == this.env.source)
- return false;
-
- if (src != this.env.source)
- {
- page = 1;
- this.env.current_page = page;
- this.reset_qsearch();
- }
-
- this.select_folder(src, this.env.source);
- this.env.source = src;
-
- // load contacts remotely
- if (this.gui_objects.contactslist)
- {
- this.list_contacts_remote(src, page);
- return;
- }
-
- if (this.env.contentframe && window.frames && window.frames[this.env.contentframe])
- {
- target = window.frames[this.env.contentframe];
- add_url = '&_framed=1';
- }
-
- // also send search request to get the correct listing
- if (this.env.search_request)
- add_url += '&_search='+this.env.search_request;
-
- this.set_busy(true, 'loading');
- target.location.href = this.env.comm_path+(src ? '&_source='+urlencode(src) : '')+(page ? '&_page='+page : '')+add_url;
- };
-
-
- // send remote request to load contacts list
- this.list_contacts_remote = function(src, page)
- {
- // clear message list first
- this.contact_list.clear(true);
- this.show_contentframe(false);
- this.enable_command('delete', 'compose', false);
-
- // send request to server
- var url = (src ? '_source='+urlencode(src) : '') + (page ? (src?'&':'') + '_page='+page : '');
- this.env.source = src;
-
- // also send search request to get the right messages
- if (this.env.search_request)
- url += '&_search='+this.env.search_request;
-
- this.set_busy(true, 'loading');
- this.http_request('list', url, true);
- };
-
-
- // load contact record
- this.load_contact = function(cid, action, framed)
- {
- var add_url = '';
- var target = window;
- if (this.env.contentframe && window.frames && window.frames[this.env.contentframe])
- {
- add_url = '&_framed=1';
- target = window.frames[this.env.contentframe];
- this.show_contentframe(true);
- }
- else if (framed)
- return false;
-
- if (action && (cid || action=='add') && !this.drag_active)
- {
- this.set_busy(true);
- target.location.href = this.env.comm_path+'&_action='+action+'&_source='+urlencode(this.env.source)+'&_cid='+urlencode(cid) + add_url;
- }
- return true;
- };
-
- // copy a contact to the specified target (group or directory)
- this.copy_contact = function(cid, to)
- {
- if (!cid)
- cid = this.contact_list.get_selection().join(',');
-
- if (to != this.env.source && cid && this.env.address_sources[to] && !this.env.address_sources[to].readonly)
- this.http_post('copy', '_cid='+urlencode(cid)+'&_source='+urlencode(this.env.source)+'&_to='+urlencode(to));
- };
-
-
- this.delete_contacts = function()
- {
- // exit if no mailbox specified or if selection is empty
- var selection = this.contact_list.get_selection();
- if (!(selection.length || this.env.cid) || !confirm(this.get_label('deletecontactconfirm')))
- return;
-
- var a_cids = new Array();
- var qs = '';
-
- if (this.env.cid)
- a_cids[a_cids.length] = this.env.cid;
- else
- {
- var id;
- for (var n=0; n<selection.length; n++)
- {
- id = selection[n];
- a_cids[a_cids.length] = id;
- this.contact_list.remove_row(id, (n == selection.length-1));
- }
-
- // hide content frame if we delete the currently displayed contact
- if (selection.length == 1)
- this.show_contentframe(false);
- }
-
- // also send search request to get the right records from the next page
- if (this.env.search_request)
- qs += '&_search='+this.env.search_request;
-
- // send request to server
- this.http_post('delete', '_cid='+urlencode(a_cids.join(','))+'&_source='+urlencode(this.env.source)+'&_from='+(this.env.action ? this.env.action : '')+qs);
- return true;
- };
-
-
- // update a contact record in the list
- this.update_contact_row = function(cid, cols_arr)
- {
- var row;
- if (this.contact_list.rows[cid] && (row = this.contact_list.rows[cid].obj))
- {
- for (var c=0; c<cols_arr.length; c++)
- if (row.cells[c])
- row.cells[c].innerHTML = cols_arr[c];
-
- return true;
- }
-
- return false;
- };
-
-
- /*********************************************************/
- /********* user settings methods *********/
- /*********************************************************/
-
- this.init_subscription_list = function()
- {
- var p = this;
- this.subscription_list = new rcube_list_widget(this.gui_objects.subscriptionlist, {multiselect:false, draggable:true, keyboard:false, toggleselect:true});
- this.subscription_list.addEventListener('select', function(o){ p.subscription_select(o); });
- this.subscription_list.addEventListener('dragstart', function(o){ p.drag_active = true; });
- this.subscription_list.addEventListener('dragend', function(o){ p.subscription_move_folder(o); });
- this.subscription_list.row_init = function (row)
- {
- var anchors = row.obj.getElementsByTagName('A');
- if (anchors[0])
- anchors[0].onclick = function() { p.rename_folder(row.id); return false; };
- if (anchors[1])
- anchors[1].onclick = function() { p.delete_folder(row.id); return false; };
- row.obj.onmouseover = function() { p.focus_subscription(row.id); };
- row.obj.onmouseout = function() { p.unfocus_subscription(row.id); };
- }
- this.subscription_list.init();
- }
-
- this.identity_select = function(list)
- {
- var id;
- if (id = list.get_single_selection())
- this.load_identity(id, 'edit-identity');
- };
-
- // load contact record
- this.load_identity = function(id, action)
- {
- if (action=='edit-identity' && (!id || id==this.env.iid))
- return false;
-
- var add_url = '';
- var target = window;
- if (this.env.contentframe && window.frames && window.frames[this.env.contentframe])
- {
- add_url = '&_framed=1';
- target = window.frames[this.env.contentframe];
- document.getElementById(this.env.contentframe).style.visibility = 'inherit';
- }
-
- if (action && (id || action=='add-identity'))
- {
- this.set_busy(true);
- target.location.href = this.env.comm_path+'&_action='+action+'&_iid='+id+add_url;
- }
- return true;
- };
-
-
- this.delete_identity = function(id)
- {
- // exit if no mailbox specified or if selection is empty
- var selection = this.identity_list.get_selection();
- if (!(selection.length || this.env.iid))
- return;
-
- if (!id)
- id = this.env.iid ? this.env.iid : selection[0];
-
- // if (this.env.framed && id)
- this.goto_url('delete-identity', '_iid='+id, true);
- return true;
- };
-
-
- this.focus_subscription = function(id)
- {
- var row, folder;
- var reg = RegExp('['+RegExp.escape(this.env.delimiter)+']?[^'+RegExp.escape(this.env.delimiter)+']+$');
-
- if (this.drag_active && this.env.folder && (row = document.getElementById(id)))
- if (this.env.subscriptionrows[id] &&
- (folder = this.env.subscriptionrows[id][0]))
- {
- if (this.check_droptarget(folder) &&
- !this.env.subscriptionrows[this.get_folder_row_id(this.env.folder)][2] &&
- (folder != this.env.folder.replace(reg, '')) &&
- (!folder.match(new RegExp('^'+RegExp.escape(this.env.folder+this.env.delimiter)))))
- {
- this.set_env('dstfolder', folder);
- this.set_classname(row, 'droptarget', true);
- }
- }
- else if (this.env.folder.match(new RegExp(RegExp.escape(this.env.delimiter))))
- {
- this.set_env('dstfolder', this.env.delimiter);
- this.set_classname(this.subscription_list.frame, 'droptarget', true);
- }
- }
-
-
- this.unfocus_subscription = function(id)
- {
- var row;
- this.set_env('dstfolder', null);
- if (this.env.subscriptionrows[id] &&
- (row = document.getElementById(id)))
- this.set_classname(row, 'droptarget', false);
- else
- this.set_classname(this.subscription_list.frame, 'droptarget', false);
- }
-
-
- this.subscription_select = function(list)
- {
- var id, folder;
- if ((id = list.get_single_selection()) &&
- this.env.subscriptionrows['rcmrow'+id] &&
- (folder = this.env.subscriptionrows['rcmrow'+id][0]))
- this.set_env('folder', folder);
- else
- this.set_env('folder', null);
-
- if (this.gui_objects.createfolderhint)
- this.gui_objects.createfolderhint.innerHTML = this.env.folder ? this.get_label('addsubfolderhint') : '';
- };
-
-
- this.subscription_move_folder = function(list)
- {
- var reg = RegExp('['+RegExp.escape(this.env.delimiter)+']?[^'+RegExp.escape(this.env.delimiter)+']+$');
- if (this.env.folder && this.env.dstfolder && (this.env.dstfolder != this.env.folder) &&
- (this.env.dstfolder != this.env.folder.replace(reg, '')))
- {
- var reg = new RegExp('[^'+RegExp.escape(this.env.delimiter)+']*['+RegExp.escape(this.env.delimiter)+']', 'g');
- var basename = this.env.folder.replace(reg, '');
- var newname = this.env.dstfolder==this.env.delimiter ? basename : this.env.dstfolder+this.env.delimiter+basename;
- this.http_post('rename-folder', '_folder_oldname='+urlencode(this.env.folder)+'&_folder_newname='+urlencode(newname));
- }
- this.drag_active = false;
- this.unfocus_subscription(this.get_folder_row_id(this.env.dstfolder));
- };
-
-
- // tell server to create and subscribe a new mailbox
- this.create_folder = function(name)
- {
- if (this.edit_folder)
- this.reset_folder_rename();
-
- var form;
- if ((form = this.gui_objects.editform) && form.elements['_folder_name'])
- {
- name = form.elements['_folder_name'].value;
-
- if (name.indexOf(this.env.delimiter)>=0)
- {
- alert(this.get_label('forbiddencharacter')+' ('+this.env.delimiter+')');
- return false;
- }
-
- if (this.env.folder && name != '')
- name = this.env.folder+this.env.delimiter+name;
-
- this.http_post('create-folder', '_name='+urlencode(name), true);
- }
- else if (form.elements['_folder_name'])
- form.elements['_folder_name'].focus();
- };
-
-
- // start renaming the mailbox name.
- // this will replace the name string with an input field
- this.rename_folder = function(id)
- {
- var temp, row, form;
-
- // reset current renaming
- if (temp = this.edit_folder)
- {
- this.reset_folder_rename();
- if (temp == id)
- return;
- }
-
- if (id && this.env.subscriptionrows[id] && (row = document.getElementById(id)))
- {
- var reg = new RegExp('.*['+RegExp.escape(this.env.delimiter)+']');
- this.name_input = document.createElement('INPUT');
- this.name_input.value = this.env.subscriptionrows[id][0].replace(reg, '');
- this.name_input.style.width = '100%';
-
- reg = new RegExp('['+RegExp.escape(this.env.delimiter)+']?[^'+RegExp.escape(this.env.delimiter)+']+$');
- this.name_input.__parent = this.env.subscriptionrows[id][0].replace(reg, '');
- this.name_input.onkeypress = function(e){ rcmail.name_input_keypress(e); };
-
- row.cells[0].replaceChild(this.name_input, row.cells[0].firstChild);
- this.edit_folder = id;
- this.name_input.select();
-
- if (form = this.gui_objects.editform)
- form.onsubmit = function(){ return false; };
- }
- };
-
-
- // remove the input field and write the current mailbox name to the table cell
- this.reset_folder_rename = function()
- {
- var cell = this.name_input ? this.name_input.parentNode : null;
-
- if (cell && this.edit_folder && this.env.subscriptionrows[this.edit_folder])
- cell.innerHTML = this.env.subscriptionrows[this.edit_folder][1];
-
- this.edit_folder = null;
- };
-
-
- // handler for keyboard events on the input field
- this.name_input_keypress = function(e)
- {
- var key = rcube_event.get_keycode(e);
-
- // enter
- if (key==13)
- {
- var newname = this.name_input ? this.name_input.value : null;
- if (this.edit_folder && newname)
- {
- if (newname.indexOf(this.env.delimiter)>=0)
- {
- alert(this.get_label('forbiddencharacter')+' ('+this.env.delimiter+')');
- return false;
- }
-
- if (this.name_input.__parent)
- newname = this.name_input.__parent + this.env.delimiter + newname;
-
- this.http_post('rename-folder', '_folder_oldname='+urlencode(this.env.subscriptionrows[this.edit_folder][0])+'&_folder_newname='+urlencode(newname));
- }
- }
- // escape
- else if (key==27)
- this.reset_folder_rename();
- };
-
-
- // delete a specific mailbox with all its messages
- this.delete_folder = function(id)
- {
- var folder = this.env.subscriptionrows[id][0];
-
- if (this.edit_folder)
- this.reset_folder_rename();
-
- if (folder && confirm(this.get_label('deletefolderconfirm')))
- {
- this.http_post('delete-folder', '_mboxes='+urlencode(folder));
- this.set_env('folder', null);
-
- if (this.gui_objects.createfolderhint)
- this.gui_objects.createfolderhint.innerHTML = '';
- }
- };
-
-
- // add a new folder to the subscription list by cloning a folder row
- this.add_folder_row = function(name, display_name, replace, before)
- {
- if (!this.gui_objects.subscriptionlist)
- return false;
-
- // find not protected folder
- for (var refid in this.env.subscriptionrows)
- if (this.env.subscriptionrows[refid]!=null && !this.env.subscriptionrows[refid][2])
- break;
-
- var refrow, form;
- var tbody = this.gui_objects.subscriptionlist.tBodies[0];
- var id = 'rcmrow'+(tbody.childNodes.length+1);
- var selection = this.subscription_list.get_single_selection();
-
- if (replace && replace.id)
- {
- id = replace.id;
- refid = replace.id;
- }
-
- if (!id || !(refrow = document.getElementById(refid)))
- {
- // Refresh page if we don't have a table row to clone
- this.goto_url('folders');
- }
- else
- {
- // clone a table row if there are existing rows
- var row = this.clone_table_row(refrow);
- row.id = id;
-
- if (before && (before = this.get_folder_row_id(before)))
- tbody.insertBefore(row, document.getElementById(before));
- else
- tbody.appendChild(row);
-
- if (replace)
- tbody.removeChild(replace);
- }
-
- // add to folder/row-ID map
- this.env.subscriptionrows[row.id] = [name, display_name, 0];
-
- // set folder name
- row.cells[0].innerHTML = display_name;
-
- // set messages count to zero
- if (!replace)
- row.cells[1].innerHTML = '*';
-
- if (!replace && row.cells[2] && row.cells[2].firstChild.tagName=='INPUT')
- {
- row.cells[2].firstChild.value = name;
- row.cells[2].firstChild.checked = true;
- }
-
- // add new folder to rename-folder list and clear input field
- if (!replace && (form = this.gui_objects.editform))
- {
- if (form.elements['_folder_oldname'])
- form.elements['_folder_oldname'].options[form.elements['_folder_oldname'].options.length] = new Option(name,name);
- if (form.elements['_folder_name'])
- form.elements['_folder_name'].value = '';
- }
-
- this.init_subscription_list();
- if (selection && document.getElementById('rcmrow'+selection))
- this.subscription_list.select_row(selection);
-
- if (document.getElementById(id).scrollIntoView)
- document.getElementById(id).scrollIntoView();
- };
-
-
- // replace an existing table row with a new folder line
- this.replace_folder_row = function(oldfolder, newfolder, display_name, before)
- {
- var id = this.get_folder_row_id(oldfolder);
- var row = document.getElementById(id);
-
- // replace an existing table row (if found)
- this.add_folder_row(newfolder, display_name, row, before);
-
- // rename folder in rename-folder dropdown
- var form, elm;
- if ((form = this.gui_objects.editform) && (elm = form.elements['_folder_oldname']))
- {
- for (var i=0;i<elm.options.length;i++)
- {
- if (elm.options[i].value == oldfolder)
- {
- elm.options[i].text = display_name;
- elm.options[i].value = newfolder;
- break;
- }
- }
-
- form.elements['_folder_newname'].value = '';
- }
- };
-
-
- // remove the table row of a specific mailbox from the table
- // (the row will not be removed, just hidden)
- this.remove_folder_row = function(folder)
- {
- var row;
- var id = this.get_folder_row_id(folder);
- if (id && (row = document.getElementById(id)))
- row.style.display = 'none';
-
- // remove folder from rename-folder list
- var form;
- if ((form = this.gui_objects.editform) && form.elements['_folder_oldname'])
- {
- for (var i=0;i<form.elements['_folder_oldname'].options.length;i++)
- {
- if (form.elements['_folder_oldname'].options[i].value == folder)
- {
- form.elements['_folder_oldname'].options[i] = null;
- break;
- }
- }
- }
-
- if (form && form.elements['_folder_newname'])
- form.elements['_folder_newname'].value = '';
- };
-
-
- this.subscribe_folder = function(folder)
- {
- if (folder)
- this.http_post('subscribe', '_mbox='+urlencode(folder));
- };
-
-
- this.unsubscribe_folder = function(folder)
- {
- if (folder)
- this.http_post('unsubscribe', '_mbox='+urlencode(folder));
- };
-
-
- // helper method to find a specific mailbox row ID
- this.get_folder_row_id = function(folder)
- {
- for (var id in this.env.subscriptionrows)
- if (this.env.subscriptionrows[id] && this.env.subscriptionrows[id][0] == folder)
- break;
-
- return id;
- };
-
- // duplicate a specific table row
- this.clone_table_row = function(row)
- {
- var cell, td;
- var new_row = document.createElement('TR');
- for(var n=0; n<row.childNodes.length; n++)
- {
- cell = row.childNodes[n];
- td = document.createElement('TD');
-
- if (cell.className)
- td.className = cell.className;
- if (cell.align)
- td.setAttribute('align', cell.align);
-
- td.innerHTML = cell.innerHTML;
- new_row.appendChild(td);
- }
-
- return new_row;
- };
-
-
- /*********************************************************/
- /********* GUI functionality *********/
- /*********************************************************/
-
-
- // eable/disable buttons for page shifting
- this.set_page_buttons = function()
- {
- this.enable_command('nextpage', (this.env.pagecount > this.env.current_page));
- this.enable_command('lastpage', (this.env.pagecount > this.env.current_page));
- this.enable_command('previouspage', (this.env.current_page > 1));
- this.enable_command('firstpage', (this.env.current_page > 1));
- }
-
-
- // set button to a specific state
- this.set_button = function(command, state)
- {
- var a_buttons = this.buttons[command];
- var button, obj;
-
- if(!a_buttons || !a_buttons.length)
- return false;
-
- for(var n=0; n<a_buttons.length; n++)
- {
- button = a_buttons[n];
- obj = document.getElementById(button.id);
-
- // get default/passive setting of the button
- if (obj && button.type=='image' && !button.status) {
- button.pas = obj._original_src ? obj._original_src : obj.src;
- // respect PNG fix on IE browsers
- if (obj.runtimeStyle && obj.runtimeStyle.filter && obj.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/))
- button.pas = RegExp.$1;
- }
- else if (obj && !button.status)
- button.pas = String(obj.className);
-
- // set image according to button state
- if (obj && button.type=='image' && button[state])
- {
- button.status = state;
- obj.src = button[state];
- }
- // set class name according to button state
- else if (obj && typeof(button[state])!='undefined')
- {
- button.status = state;
- obj.className = button[state];
- }
- // disable/enable input buttons
- if (obj && button.type=='input')
- {
- button.status = state;
- obj.disabled = !state;
- }
- }
- };
-
- // display a specific alttext
- this.set_alttext = function(command, label)
- {
- if (!this.buttons[command] || !this.buttons[command].length)
- return;
-
- var button, obj, link;
- for (var n=0; n<this.buttons[command].length; n++)
- {
- button = this.buttons[command][n];
- obj = document.getElementById(button.id);
-
- if (button.type=='image' && obj)
- {
- obj.setAttribute('alt', this.get_label(label));
- if ((link = obj.parentNode) && link.tagName == 'A')
- link.setAttribute('title', this.get_label(label));
- }
- else if (obj)
- obj.setAttribute('title', this.get_label(label));
- }
- };
-
- // mouse over button
- this.button_over = function(command, id)
- {
- var a_buttons = this.buttons[command];
- var button, img;
-
- if(!a_buttons || !a_buttons.length)
- return false;
-
- for(var n=0; n<a_buttons.length; n++)
- {
- button = a_buttons[n];
- if(button.id==id && button.status=='act')
- {
- img = document.getElementById(button.id);
- if (img && button.over)
- img.src = button.over;
- }
- }
-
- };
-
- // mouse down on button
- this.button_sel = function(command, id)
- {
- var a_buttons = this.buttons[command];
- var button, img;
-
- if(!a_buttons || !a_buttons.length)
- return;
-
- for(var n=0; n<a_buttons.length; n++)
- {
- button = a_buttons[n];
- if(button.id==id && button.status=='act')
- {
- img = document.getElementById(button.id);
- if (img && button.sel)
- img.src = button.sel;
- }
- }
- };
-
- // mouse out of button
- this.button_out = function(command, id)
- {
- var a_buttons = this.buttons[command];
- var button, img;
-
- if(!a_buttons || !a_buttons.length)
- return;
-
- for(var n=0; n<a_buttons.length; n++)
- {
- button = a_buttons[n];
- if(button.id==id && button.status=='act')
- {
- img = document.getElementById(button.id);
- if (img && button.act)
- img.src = button.act;
- }
- }
- };
-
-
- // set/unset a specific class name
- this.set_classname = function(obj, classname, set)
- {
- var reg = new RegExp('\s*'+classname, 'i');
- if (!set && obj.className.match(reg))
- obj.className = obj.className.replace(reg, '');
- else if (set && !obj.className.match(reg))
- obj.className += ' '+classname;
- };
-
-
- // write to the document/window title
- this.set_pagetitle = function(title)
- {
- if (title && document.title)
- document.title = title;
- }
-
-
- // display a system message
- this.display_message = function(msg, type, hold)
- {
- if (!this.loaded) // save message in order to display after page loaded
- {
- this.pending_message = new Array(msg, type);
- return true;
- }
-
- // pass command to parent window
- if (this.env.framed && parent.rcmail)
- return parent.rcmail.display_message(msg, type, hold);
-
- if (!this.gui_objects.message)
- return false;
-
- if (this.message_timer)
- clearTimeout(this.message_timer);
-
- var cont = msg;
- if (type)
- cont = '<div class="'+type+'">'+cont+'</div>';
-
- var _rcube = this;
- this.gui_objects.message.innerHTML = cont;
- this.gui_objects.message.style.display = 'block';
-
- if (type!='loading')
- this.gui_objects.message.onmousedown = function(){ _rcube.hide_message(); return true; };
-
- if (!hold)
- this.message_timer = window.setTimeout(function(){ ref.hide_message(); }, this.message_time);
- };
-
-
- // make a message row disapear
- this.hide_message = function()
- {
- if (this.gui_objects.message)
- {
- this.gui_objects.message.style.display = 'none';
- this.gui_objects.message.onmousedown = null;
- }
- };
-
-
- // mark a mailbox as selected and set environment variable
- this.select_folder = function(name, old)
- {
- if (this.gui_objects.folderlist)
- {
- var current_li, target_li;
-
- if ((current_li = this.get_folder_li(old)))
- {
- this.set_classname(current_li, 'selected', false);
- this.set_classname(current_li, 'unfocused', false);
- }
-
- if ((target_li = this.get_folder_li(name)))
- {
- this.set_classname(target_li, 'unfocused', false);
- this.set_classname(target_li, 'selected', true);
- }
- }
- };
-
- // helper method to find a folder list item
- this.get_folder_li = function(name)
- {
- if (this.gui_objects.folderlist)
- {
- name = String(name).replace(this.identifier_expr, '');
- return document.getElementById('rcmli'+name);
- }
-
- return null;
- };
-
-
- // for reordering column array, Konqueror workaround
- this.set_message_coltypes = function(coltypes)
- {
- this.coltypes = coltypes;
-
- // set correct list titles
- var cell, col;
- var thead = this.gui_objects.messagelist ? this.gui_objects.messagelist.tHead : null;
- for (var n=0; thead && n<this.coltypes.length; n++)
- {
- col = this.coltypes[n];
- if ((cell = thead.rows[0].cells[n+1]) && (col=='from' || col=='to'))
- {
- // if we have links for sorting, it's a bit more complicated...
- if (cell.firstChild && cell.firstChild.tagName=='A')
- {
- cell.firstChild.innerHTML = this.get_label(this.coltypes[n]);
- cell.firstChild.onclick = function(){ return rcmail.command('sort', this.__col, this); };
- cell.firstChild.__col = col;
- }
- else
- cell.innerHTML = this.get_label(this.coltypes[n]);
-
- cell.id = 'rcmHead'+col;
- }
-
- if (col == 'subject' && this.message_list)
- this.message_list.subject_col = n+1;
- }
- };
-
- // create a table row in the message list
- this.add_message_row = function(uid, cols, flags, attachment, attop)
- {
- if (!this.gui_objects.messagelist || !this.message_list)
- return false;
-
- var tbody = this.gui_objects.messagelist.tBodies[0];
- var rowcount = tbody.rows.length;
- var even = rowcount%2;
-
- this.env.messages[uid] = {deleted:flags.deleted?1:0,
- replied:flags.replied?1:0,
- unread:flags.unread?1:0};
-
- var row = document.createElement('TR');
- row.id = 'rcmrow'+uid;
- row.className = 'message '+(even ? 'even' : 'odd')+(flags.unread ? ' unread' : '')+(flags.deleted ? ' deleted' : '');
-
- if (this.message_list.in_selection(uid))
- row.className += ' selected';
-
- var icon = flags.deleted && this.env.deletedicon ? this.env.deletedicon:
- (flags.unread && this.env.unreadicon ? this.env.unreadicon :
- (flags.replied && this.env.repliedicon ? this.env.repliedicon : this.env.messageicon));
-
- var col = document.createElement('TD');
- col.className = 'icon';
- col.innerHTML = icon ? '<img src="'+icon+'" alt="" border="0" />' : '';
- row.appendChild(col);
-
- // add each submitted col
- for (var n = 0; n < this.coltypes.length; n++)
- {
- var c = this.coltypes[n];
- col = document.createElement('TD');
- col.className = String(c).toLowerCase();
- col.innerHTML = cols[c];
- row.appendChild(col);
- }
-
- col = document.createElement('TD');
- col.className = 'icon';
- col.innerHTML = attachment && this.env.attachmenticon ? '<img src="'+this.env.attachmenticon+'" alt="" border="0" />' : '';
- row.appendChild(col);
-
- this.message_list.insert_row(row, attop);
- };
-
-
- // replace content of row count display
- this.set_rowcount = function(text)
- {
- if (this.gui_objects.countdisplay)
- this.gui_objects.countdisplay.innerHTML = text;
-
- // update page navigation buttons
- this.set_page_buttons();
- };
-
-
- // replace content of quota display
- this.set_quota = function(content)
- {
- if (this.gui_objects.quotadisplay && content)
- this.gui_objects.quotadisplay.innerHTML = content;
- };
-
-
- // update the mailboxlist
- this.set_unread_count = function(mbox, count, set_title)
- {
- if (!this.gui_objects.mailboxlist)
- return false;
-
- var reg, text_obj, item;
- if (item = this.get_folder_li(mbox))
- {
- // set new text
- text_obj = item.firstChild;
- reg = /\s+\([0-9]+\)$/i;
-
- if (count && text_obj.innerHTML.match(reg))
- text_obj.innerHTML = text_obj.innerHTML.replace(reg, ' ('+count+')');
- else if (count)
- text_obj.innerHTML += ' ('+count+')';
- else
- text_obj.innerHTML = text_obj.innerHTML.replace(reg, '');
-
- // set the right classes
- this.set_classname(item, 'unread', count>0 ? true : false);
- }
-
- // set unread count to window title
- reg = /^\([0-9]+\)\s+/i;
- if (set_title && document.title)
- {
- var doc_title = String(document.title);
- var new_title = "";
-
- if (count && doc_title.match(reg))
- new_title = doc_title.replace(reg, '('+count+') ');
- else if (count)
- new_title = '('+count+') '+doc_title;
- else
- new_title = doc_title.replace(reg, '');
-
- this.set_pagetitle(new_title);
- }
- };
-
- // update parent's mailboxlist (from preview)
- this.set_unread_count_from_preview = function(mbox, count, set_title)
- {
- parent.rcmail.set_unread_count(mbox, count, set_title);
- }
-
- // add row to contacts list
- this.add_contact_row = function(cid, cols, select)
- {
- if (!this.gui_objects.contactslist || !this.gui_objects.contactslist.tBodies[0])
- return false;
-
- var tbody = this.gui_objects.contactslist.tBodies[0];
- var rowcount = tbody.rows.length;
- var even = rowcount%2;
-
- var row = document.createElement('TR');
- row.id = 'rcmrow'+cid;
- row.className = 'contact '+(even ? 'even' : 'odd');
-
- if (this.contact_list.in_selection(cid))
- row.className += ' selected';
-
- // add each submitted col
- for (var c in cols)
- {
- col = document.createElement('TD');
- col.className = String(c).toLowerCase();
- col.innerHTML = cols[c];
- row.appendChild(col);
- }
-
- this.contact_list.insert_row(row);
- };
-
-
- this.toggle_editor = function(checkbox, textAreaId)
- {
- var ischecked = checkbox.checked;
- if (ischecked)
- {
- tinyMCE.execCommand('mceAddControl', true, textAreaId);
- }
- else
- {
- tinyMCE.execCommand('mceRemoveControl', true, textAreaId);
- }
- };
-
-
-
- /********************************************************/
- /********* remote request methods *********/
- /********************************************************/
-
- this.redirect = function(url, lock)
- {
- if (lock || lock === null)
- this.set_busy(true);
-
- if (this.env.framed && window.parent)
- parent.location.href = url;
- else
- location.href = url;
- };
-
- this.goto_url = function(action, query, lock)
- {
- var querystring = query ? '&'+query : '';
- this.redirect(this.env.comm_path+'&_action='+action+querystring, lock);
- };
-
-
- this.http_sockets = new Array();
-
- // find a non-busy socket or create a new one
- this.get_request_obj = function()
- {
- for (var n=0; n<this.http_sockets.length; n++)
- {
- if (!this.http_sockets[n].busy)
- return this.http_sockets[n];
- }
-
- // create a new XMLHTTP object
- var i = this.http_sockets.length;
- this.http_sockets[i] = new rcube_http_request();
-
- return this.http_sockets[i];
- };
-
-
- // send a http request to the server
- this.http_request = function(action, querystring, lock)
- {
- var request_obj = this.get_request_obj();
- querystring += (querystring ? '&' : '') + '_remote=1';
-
- // add timestamp to request url to avoid cacheing problems in Safari
- if (bw.safari)
- querystring += '&_ts='+(new Date().getTime());
-
- // send request
- if (request_obj)
- {
- console.log('HTTP request: '+this.env.comm_path+'&_action='+action+'&'+querystring);
-
- if (lock)
- this.set_busy(true);
-
- var rcm = this;
- request_obj.__lock = lock ? true : false;
- request_obj.__action = action;
- request_obj.onerror = function(o){ ref.http_error(o); };
- request_obj.oncomplete = function(o){ ref.http_response(o); };
- request_obj.GET(this.env.comm_path+'&_action='+action+'&'+querystring);
- }
- };
-
- // send a http POST request to the server
- this.http_post = function(action, postdata, lock)
- {
- var request_obj;
- if (postdata && typeof(postdata) == 'object')
- postdata._remote = 1;
- else
- postdata += (postdata ? '&' : '') + '_remote=1';
-
- // send request
- if (request_obj = this.get_request_obj())
- {
- console.log('HTTP POST: '+this.env.comm_path+'&_action='+action);
-
- if (lock)
- this.set_busy(true);
-
- var rcm = this;
- request_obj.__lock = lock ? true : false;
- request_obj.__action = action;
- request_obj.onerror = function(o){ rcm.http_error(o); };
- request_obj.oncomplete = function(o){ rcm.http_response(o); };
- request_obj.POST(this.env.comm_path+'&_action='+action, postdata);
- }
- };
-
- // handle HTTP response
- this.http_response = function(request_obj)
- {
- var ctype = request_obj.get_header('Content-Type');
- if (ctype){
- ctype = String(ctype).toLowerCase();
- var ctype_array=ctype.split(";");
- ctype = ctype_array[0];
- }
-
- if (request_obj.__lock)
- this.set_busy(false);
-
- console.log(request_obj.get_text());
-
- // if we get javascript code from server -> execute it
- if (request_obj.get_text() && (ctype=='text/javascript' || ctype=='application/x-javascript'))
- eval(request_obj.get_text());
-
- // process the response data according to the sent action
- switch (request_obj.__action)
- {
-
- case 'delete':
- case 'moveto':
- if (this.env.action=='show')
- this.command('list');
- else if (this.message_list)
- this.message_list.init();
-
- case 'purge':
- case 'expunge':
- if (!this.env.messagecount)
- {
- // clear preview pane content
- if (this.env.contentframe)
- this.show_contentframe(false);
- // disable commands useless when mailbox is empty
- this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete', 'mark', 'viewsource',
- 'print', 'load-attachment', 'purge', 'expunge', 'select-all', 'select-none', 'sort', false);
- }
-
- break;
-
- case 'list':
- this.msglist_select(this.message_list);
-
- case 'check-recent':
- case 'getunread':
- this.enable_command('show', 'expunge', 'select-all', 'select-none', 'sort', (this.env.messagecount > 0));
- this.enable_command('purge', (this.env.messagecount && (this.env.mailbox==this.env.trash_mailbox || this.env.mailbox==this.env.junk_mailbox)));
-
- break;
-
- }
-
- request_obj.reset();
- };
-
-
- // handle HTTP request errors
- this.http_error = function(request_obj)
- {
- //alert('Error sending request: '+request_obj.url);
-
- if (request_obj.__lock)
- this.set_busy(false);
-
- request_obj.reset();
- request_obj.__lock = false;
- };
-
-
- // use an image to send a keep-alive siganl to the server
- this.send_keep_alive = function()
- {
- var d = new Date();
- this.http_request('keep-alive', '_t='+d.getTime());
- };
-
-
- // send periodic request to check for recent messages
- this.check_for_recent = function()
- {
- if (this.busy)
- return;
-
- this.set_busy(true, 'checkingmail');
- this.http_request('check-recent', (this.env.search_request ? '_search='+this.env.search_request+'&' : '') + '_t='+(new Date().getTime()), true);
- };
-
-
- /********************************************************/
- /********* helper methods *********/
- /********************************************************/
-
- // check if we're in show mode or if we have a unique selection
- // and return the message uid
- this.get_single_uid = function()
- {
- return this.env.uid ? this.env.uid : (this.message_list ? this.message_list.get_single_selection() : null);
- };
-
- // same as above but for contacts
- this.get_single_cid = function()
- {
- return this.env.cid ? this.env.cid : (this.contact_list ? this.contact_list.get_single_selection() : null);
- };
-
-
- this.get_caret_pos = function(obj)
- {
- if (typeof(obj.selectionEnd)!='undefined')
- return obj.selectionEnd;
-
- else if (document.selection && document.selection.createRange)
- {
- var range = document.selection.createRange();
- if (range.parentElement()!=obj)
- return 0;
-
- var gm = range.duplicate();
- if (obj.tagName=='TEXTAREA')
- gm.moveToElementText(obj);
- else
- gm.expand('textedit');
-
- gm.setEndPoint('EndToStart', range);
- var p = gm.text.length;
-
- return p<=obj.value.length ? p : -1;
- }
-
- else
- return obj.value.length;
- };
-
-
- this.set_caret2start = function(obj)
- {
- if (obj.createTextRange)
- {
- var range = obj.createTextRange();
- range.collapse(true);
- range.select();
- }
- else if (obj.setSelectionRange)
- obj.setSelectionRange(0,0);
-
- obj.focus();
- };
-
-
- // set all fields of a form disabled
- this.lock_form = function(form, lock)
- {
- if (!form || !form.elements)
- return;
-
- var type;
- for (var n=0; n<form.elements.length; n++)
- {
- type = form.elements[n];
- if (type=='hidden')
- continue;
-
- form.elements[n].disabled = lock;
- }
- };
-
- } // end object rcube_webmail
-
-
-
-/**
- * Class for sending HTTP requests
- * @constructor
- */
-function rcube_http_request()
- {
- this.url = '';
- this.busy = false;
- this.xmlhttp = null;
-
-
- // reset object properties
- this.reset = function()
- {
- // set unassigned event handlers
- this.onloading = function(){ };
- this.onloaded = function(){ };
- this.oninteractive = function(){ };
- this.oncomplete = function(){ };
- this.onabort = function(){ };
- this.onerror = function(){ };
-
- this.url = '';
- this.busy = false;
- this.xmlhttp = null;
- }
-
-
- // create HTMLHTTP object
- this.build = function()
- {
- if (window.XMLHttpRequest)
- this.xmlhttp = new XMLHttpRequest();
- else if (window.ActiveXObject)
- {
- try { this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
- catch(e) { this.xmlhttp = null; }
- }
- else
- {
-
- }
- }
-
- // send GET request
- this.GET = function(url)
- {
- this.build();
-
- if (!this.xmlhttp)
- {
- this.onerror(this);
- return false;
- }
-
- var _ref = this;
- this.url = url;
- this.busy = true;
-
- this.xmlhttp.onreadystatechange = function(){ _ref.xmlhttp_onreadystatechange(); };
- this.xmlhttp.open('GET', url);
- this.xmlhttp.setRequestHeader('X-RoundCube-Referer', bw.get_cookie('roundcube_sessid'));
- this.xmlhttp.send(null);
- };
-
-
- this.POST = function(url, body, contentType)
- {
- // default value for contentType if not provided
- if (typeof(contentType) == 'undefined')
- contentType = 'application/x-www-form-urlencoded';
-
- this.build();
-
- if (!this.xmlhttp)
- {
- this.onerror(this);
- return false;
- }
-
- var req_body = body;
- if (typeof(body) == 'object')
- {
- req_body = '';
- for (var p in body)
- req_body += (req_body ? '&' : '') + p+'='+urlencode(body[p]);
- }
-
- var ref = this;
- this.url = url;
- this.busy = true;
-
- this.xmlhttp.onreadystatechange = function() { ref.xmlhttp_onreadystatechange(); };
- this.xmlhttp.open('POST', url, true);
- this.xmlhttp.setRequestHeader('Content-Type', contentType);
- this.xmlhttp.setRequestHeader('X-RoundCube-Referer', bw.get_cookie('roundcube_sessid'));
- this.xmlhttp.send(req_body);
- };
-
-
- // handle onreadystatechange event
- this.xmlhttp_onreadystatechange = function()
- {
- if(this.xmlhttp.readyState == 1)
- this.onloading(this);
-
- else if(this.xmlhttp.readyState == 2)
- this.onloaded(this);
-
- else if(this.xmlhttp.readyState == 3)
- this.oninteractive(this);
-
- else if(this.xmlhttp.readyState == 4)
- {
- try {
- if (this.xmlhttp.status == 0)
- this.onabort(this);
- else if(this.xmlhttp.status == 200)
- this.oncomplete(this);
- else
- this.onerror(this);
-
- this.busy = false;
- }
- catch(err)
- {
- this.onerror(this);
- this.busy = false;
- }
- }
- }
-
- // getter method for HTTP headers
- this.get_header = function(name)
- {
- return this.xmlhttp.getResponseHeader(name);
- };
-
- this.get_text = function()
- {
- return this.xmlhttp.responseText;
- };
-
- this.get_xml = function()
- {
- return this.xmlhttp.responseXML;
- };
-
- this.reset();
-
- } // end class rcube_http_request
-
-
-// helper function to call the init method with a delay
-function call_init(o)
- {
- window.setTimeout('if (window[\''+o+'\'] && window[\''+o+'\'].init) { '+o+'.init(); }',
- bw.win ? 500 : 200);
- }
+function rcube_webmail(){
+this.env=new Object();
+this.labels=new Object();
+this.buttons=new Object();
+this.gui_objects=new Object();
+this.commands=new Object();
+this.onloads=new Array();
+rcube_webmail_client=this;
+this.ref="rcube_webmail_client";
+var _1=this;
+this.dblclick_time=500;
+this.message_time=3000;
+this.identifier_expr=new RegExp("[^0-9a-z-_]","gi");
+this.mimetypes=new Array("text/plain","text/html","text/xml","image/jpeg","image/gif","image/png","application/x-javascript","application/pdf","application/x-shockwave-flash");
+this.env.keep_alive=60;
+this.env.request_timeout=180;
+this.env.draft_autosave=0;
+this.env.comm_path="./";
+this.env.bin_path="./bin/";
+this.env.blankpage="program/blank.gif";
+this.set_env=function(p,_3){
+if(p!=null&&typeof (p)=="object"&&!_3){
+for(var n in p){
+this.env[n]=p[n];
+}
+}else{
+this.env[p]=_3;
+}
+};
+this.add_label=function(_5,_6){
+this.labels[_5]=_6;
+};
+this.register_button=function(_7,id,_9,_a,_b,_c){
+if(!this.buttons[_7]){
+this.buttons[_7]=new Array();
+}
+var _d={id:id,type:_9};
+if(_a){
+_d.act=_a;
+}
+if(_b){
+_d.sel=_b;
+}
+if(_c){
+_d.over=_c;
+}
+this.buttons[_7][this.buttons[_7].length]=_d;
+};
+this.gui_object=function(_e,id){
+this.gui_objects[_e]=id;
+};
+this.add_onload=function(f){
+this.onloads[this.onloads.length]=f;
+};
+this.init=function(){
+var p=this;
+this.task=this.env.task;
+if(!bw.dom||!bw.xmlhttp_test()){
+this.goto_url("error","_code=0x199");
+return;
+}
+for(var n in this.gui_objects){
+this.gui_objects[n]=rcube_find_object(this.gui_objects[n]);
+}
+if(this.env.framed&&parent.rcmail&&parent.rcmail.set_busy){
+parent.rcmail.set_busy(false);
+}
+this.enable_command("logout","mail","addressbook","settings",true);
+if(this.env.permaurl){
+this.enable_command("permaurl",true);
+}
+switch(this.task){
+case "mail":
+if(this.gui_objects.messagelist){
+this.message_list=new rcube_list_widget(this.gui_objects.messagelist,{multiselect:true,draggable:true,keyboard:true,dblclick_time:this.dblclick_time});
+this.message_list.row_init=function(o){
+p.init_message_row(o);
+};
+this.message_list.addEventListener("dblclick",function(o){
+p.msglist_dbl_click(o);
+});
+this.message_list.addEventListener("keypress",function(o){
+p.msglist_keypress(o);
+});
+this.message_list.addEventListener("select",function(o){
+p.msglist_select(o);
+});
+this.message_list.addEventListener("dragstart",function(o){
+p.drag_start(o);
+});
+this.message_list.addEventListener("dragmove",function(o,e){
+p.drag_move(e);
+});
+this.message_list.addEventListener("dragend",function(o){
+p.drag_active=false;
+});
+this.message_list.init();
+this.enable_command("toggle_status","toggle_flag",true);
+if(this.gui_objects.mailcontframe){
+this.gui_objects.mailcontframe.onmousedown=function(e){
+return p.click_on_list(e);
+};
+document.onmouseup=function(e){
+return p.doc_mouse_up(e);
+};
+}else{
+this.message_list.focus();
+}
+}
+if(this.env.coltypes){
+this.set_message_coltypes(this.env.coltypes);
+}
+this.enable_command("list","checkmail","compose","add-contact","search","reset-search","collapse-folder",true);
+if(this.env.search_text!=null&&document.getElementById("quicksearchbox")!=null){
+document.getElementById("quicksearchbox").value=this.env.search_text;
+}
+if(this.env.action=="show"||this.env.action=="preview"){
+this.enable_command("show","reply","reply-all","forward","moveto","delete","mark","viewsource","print","load-attachment","load-headers",true);
+if(this.env.next_uid){
+this.enable_command("nextmessage",true);
+this.enable_command("lastmessage",true);
+}
+if(this.env.prev_uid){
+this.enable_command("previousmessage",true);
+this.enable_command("firstmessage",true);
+}
+}
+if(this.env.trash_mailbox&&this.env.mailbox!=this.env.trash_mailbox){
+this.set_alttext("delete","movemessagetotrash");
+}
+if(this.env.action=="preview"&&this.env.framed&&parent.rcmail){
+this.enable_command("compose","add-contact",false);
+parent.rcmail.show_contentframe(true);
+}
+if((this.env.action=="show"||this.env.action=="preview")&&this.env.blockedobjects){
+if(this.gui_objects.remoteobjectsmsg){
+this.gui_objects.remoteobjectsmsg.style.display="block";
+}
+this.enable_command("load-images","always-load",true);
+}
+if(this.env.action=="compose"){
+this.enable_command("add-attachment","send-attachment","remove-attachment","send",true);
+if(this.env.spellcheck){
+this.env.spellcheck.spelling_state_observer=function(s){
+_1.set_spellcheck_state(s);
+};
+this.set_spellcheck_state("ready");
+if(rcube_find_object("_is_html").value=="1"){
+this.display_spellcheck_controls(false);
+}
+}
+if(this.env.drafts_mailbox){
+this.enable_command("savedraft",true);
+}
+document.onmouseup=function(e){
+return p.doc_mouse_up(e);
+};
+}
+if(this.env.messagecount){
+this.enable_command("select-all","select-none","expunge",true);
+}
+if(this.purge_mailbox_test()){
+this.enable_command("purge",true);
+}
+this.set_page_buttons();
+if(this.env.action=="compose"){
+this.init_messageform();
+}
+if(this.env.action=="print"){
+window.print();
+}
+if(this.gui_objects.mailboxlist){
+this.env.unread_counts={};
+this.gui_objects.folderlist=this.gui_objects.mailboxlist;
+this.http_request("getunread","");
+}
+if(this.env.mdn_request&&this.env.uid){
+var _1f="_uid="+this.env.uid+"&_mbox="+urlencode(this.env.mailbox);
+if(confirm(this.get_label("mdnrequest"))){
+this.http_post("sendmdn",_1f);
+}else{
+this.http_post("mark",_1f+"&_flag=mdnsent");
+}
+}
+break;
+case "addressbook":
+if(this.gui_objects.contactslist){
+this.contact_list=new rcube_list_widget(this.gui_objects.contactslist,{multiselect:true,draggable:true,keyboard:true});
+this.contact_list.addEventListener("keypress",function(o){
+p.contactlist_keypress(o);
+});
+this.contact_list.addEventListener("select",function(o){
+p.contactlist_select(o);
+});
+this.contact_list.addEventListener("dragstart",function(o){
+p.drag_start(o);
+});
+this.contact_list.addEventListener("dragmove",function(o,e){
+p.drag_move(e);
+});
+this.contact_list.addEventListener("dragend",function(o){
+p.drag_active=false;
+});
+this.contact_list.init();
+if(this.env.cid){
+this.contact_list.highlight_row(this.env.cid);
+}
+if(this.gui_objects.contactslist.parentNode){
+this.gui_objects.contactslist.parentNode.onmousedown=function(e){
+return p.click_on_list(e);
+};
+document.onmouseup=function(e){
+return p.doc_mouse_up(e);
+};
+}else{
+this.contact_list.focus();
+}
+}
+this.set_page_buttons();
+if(this.env.address_sources&&this.env.address_sources[this.env.source]&&!this.env.address_sources[this.env.source].readonly){
+this.enable_command("add",true);
+}
+if(this.env.cid){
+this.enable_command("show","edit",true);
+}
+if((this.env.action=="add"||this.env.action=="edit")&&this.gui_objects.editform){
+this.enable_command("save",true);
+}else{
+this.enable_command("search","reset-search","moveto","import",true);
+}
+if(this.contact_list&&this.contact_list.rowcount>0){
+this.enable_command("export",true);
+}
+this.enable_command("list",true);
+break;
+case "settings":
+this.enable_command("preferences","identities","save","folders",true);
+if(this.env.action=="identities"||this.env.action=="edit-identity"||this.env.action=="add-identity"){
+this.enable_command("add",this.env.identities_level<2);
+this.enable_command("delete","edit",true);
+}
+if(this.env.action=="edit-identity"||this.env.action=="add-identity"){
+this.enable_command("save",true);
+}
+if(this.env.action=="folders"){
+this.enable_command("subscribe","unsubscribe","create-folder","rename-folder","delete-folder",true);
+}
+if(this.gui_objects.identitieslist){
+this.identity_list=new rcube_list_widget(this.gui_objects.identitieslist,{multiselect:false,draggable:false,keyboard:false});
+this.identity_list.addEventListener("select",function(o){
+p.identity_select(o);
+});
+this.identity_list.init();
+this.identity_list.focus();
+if(this.env.iid){
+this.identity_list.highlight_row(this.env.iid);
+}
+}
+if(this.gui_objects.subscriptionlist){
+this.init_subscription_list();
+}
+break;
+case "login":
+var _29=rcube_find_object("rcmloginuser");
+var _2a=rcube_find_object("rcmloginpwd");
+var _2b=rcube_find_object("rcmlogintz");
+if(_29){
+_29.onkeyup=function(e){
+return rcmail.login_user_keyup(e);
+};
+}
+if(_29&&_29.value==""){
+_29.focus();
+}else{
+if(_2a){
+_2a.focus();
+}
+}
+if(_2b){
+_2b.value=new Date().getTimezoneOffset()/-60;
+}
+this.enable_command("login",true);
+break;
+default:
+break;
+}
+this.enable_command("logout",true);
+this.loaded=true;
+if(this.pending_message){
+this.display_message(this.pending_message[0],this.pending_message[1]);
+}
+this.start_keepalive();
+for(var i=0;i<this.onloads.length;i++){
+if(typeof (this.onloads[i])=="string"){
+eval(this.onloads[i]);
+}else{
+if(typeof (this.onloads[i])=="function"){
+this.onloads[i]();
+}
+}
+}
+};
+this.start_keepalive=function(){
+if(this.env.keep_alive&&!this.env.framed&&this.task=="mail"&&this.gui_objects.mailboxlist){
+this._int=setInterval(function(){
+_1.check_for_recent(false);
+},this.env.keep_alive*1000);
+}else{
+if(this.env.keep_alive&&!this.env.framed&&this.task!="login"){
+this._int=setInterval(function(){
+_1.send_keep_alive();
+},this.env.keep_alive*1000);
+}
+}
+};
+this.init_message_row=function(row){
+var uid=row.uid;
+if(uid&&this.env.messages[uid]){
+row.deleted=this.env.messages[uid].deleted?true:false;
+row.unread=this.env.messages[uid].unread?true:false;
+row.replied=this.env.messages[uid].replied?true:false;
+row.flagged=this.env.messages[uid].flagged?true:false;
+row.forwarded=this.env.messages[uid].forwarded?true:false;
+}
+if((row.icon=row.obj.cells[0].childNodes[0])&&row.icon.nodeName=="IMG"){
+var p=this;
+row.icon.id="msgicn_"+row.uid;
+row.icon._row=row.obj;
+row.icon.onmousedown=function(e){
+p.command("toggle_status",this);
+};
+}
+if(!this.env.flagged_col&&this.env.coltypes){
+var _32;
+if((_32=find_in_array("flag",this.env.coltypes))>=0){
+this.set_env("flagged_col",_32+1);
+}
+}
+if(this.env.flagged_col&&(row.flagged_icon=row.obj.cells[this.env.flagged_col].childNodes[0])&&row.flagged_icon.nodeName=="IMG"){
+var p=this;
+row.flagged_icon.id="flaggedicn_"+row.uid;
+row.flagged_icon._row=row.obj;
+row.flagged_icon.onmousedown=function(e){
+p.command("toggle_flag",this);
+};
+}
+};
+this.init_messageform=function(){
+if(!this.gui_objects.messageform){
+return false;
+}
+var _34=rcube_find_object("_from");
+var _35=rcube_find_object("_to");
+var _36=rcube_find_object("_cc");
+var _37=rcube_find_object("_bcc");
+var _38=rcube_find_object("_replyto");
+var _39=rcube_find_object("_subject");
+var _3a=rcube_find_object("_message");
+var _3b=rcube_find_object("_draft_saveid");
+if(_35){
+this.init_address_input_events(_35);
+}
+if(_36){
+this.init_address_input_events(_36);
+}
+if(_37){
+this.init_address_input_events(_37);
+}
+if(_34&&_34.type=="select-one"&&(!_3b||_3b.value=="")&&rcube_find_object("_is_html").value!="1"){
+this.change_identity(_34);
+}
+if(_35&&_35.value==""){
+_35.focus();
+}else{
+if(_39&&_39.value==""){
+_39.focus();
+}else{
+if(_3a){
+this.set_caret2start(_3a);
+}
+}
+}
+this.compose_field_hash(true);
+this.auto_save_start();
+};
+this.init_address_input_events=function(obj){
+var _3d=function(e){
+return _1.ksearch_keypress(e,this);
+};
+if(obj.addEventListener){
+obj.addEventListener(bw.safari?"keydown":"keypress",_3d,false);
+}else{
+obj.onkeydown=_3d;
+}
+obj.setAttribute("autocomplete","off");
+};
+this.command=function(_3f,_40,obj){
+if(obj&&obj.blur){
+obj.blur();
+}
+if(this.busy){
+return false;
+}
+if(!this.commands[_3f]){
+if(this.env.framed&&parent.rcmail&&parent.rcmail.command){
+parent.rcmail.command(_3f,_40);
+}
+return false;
+}
+if(this.task=="mail"&&this.env.action=="compose"&&(_3f=="list"||_3f=="mail"||_3f=="addressbook"||_3f=="settings")){
+if(this.cmp_hash!=this.compose_field_hash()&&!confirm(this.get_label("notsentwarning"))){
+return false;
+}
+}
+switch(_3f){
+case "login":
+if(this.gui_objects.loginform){
+this.gui_objects.loginform.submit();
+}
+break;
+case "logout":
+this.goto_url("logout","",true);
+break;
+case "mail":
+case "addressbook":
+case "settings":
+this.switch_task(_3f);
+break;
+case "permaurl":
+if(obj&&obj.href&&obj.target){
+return true;
+}else{
+if(this.env.permaurl){
+parent.location.href=this.env.permaurl;
+}
+}
+break;
+case "list":
+if(this.task=="mail"){
+if(this.env.search_request<0||(_40!=""&&(this.env.search_request&&_40!=this.env.mailbox))){
+this.reset_qsearch();
+}
+this.list_mailbox(_40);
+if(this.env.trash_mailbox){
+this.set_alttext("delete",this.env.mailbox!=this.env.trash_mailbox?"movemessagetotrash":"deletemessage");
+}
+}else{
+if(this.task=="addressbook"){
+if(this.env.search_request<0||(this.env.search_request&&_40!=this.env.source)){
+this.reset_qsearch();
+}
+this.list_contacts(_40);
+this.enable_command("add",(this.env.address_sources&&!this.env.address_sources[_40].readonly));
+}
+}
+break;
+case "load-headers":
+this.load_headers(obj);
+break;
+case "sort":
+var _42=_40.split("_");
+var _43=_42[0];
+var _44=_42[1]?_42[1].toUpperCase():null;
+var _45;
+if(_44==null){
+if(this.env.sort_col==_43){
+_44=this.env.sort_order=="ASC"?"DESC":"ASC";
+}else{
+_44=this.env.sort_order;
+}
+}
+if(this.env.sort_col==_43&&this.env.sort_order==_44){
+break;
+}
+if(_45=document.getElementById("rcm"+this.env.sort_col)){
+this.set_classname(_45,"sorted"+(this.env.sort_order.toUpperCase()),false);
+}
+if(_45=document.getElementById("rcm"+_43)){
+this.set_classname(_45,"sorted"+_44,true);
+}
+this.env.sort_col=_43;
+this.env.sort_order=_44;
+this.list_mailbox("","",_43+"_"+_44);
+break;
+case "nextpage":
+this.list_page("next");
+break;
+case "lastpage":
+this.list_page("last");
+break;
+case "previouspage":
+this.list_page("prev");
+break;
+case "firstpage":
+this.list_page("first");
+break;
+case "expunge":
+if(this.env.messagecount){
+this.expunge_mailbox(this.env.mailbox);
+}
+break;
+case "purge":
+case "empty-mailbox":
+if(this.env.messagecount){
+this.purge_mailbox(this.env.mailbox);
+}
+break;
+case "show":
+if(this.task=="mail"){
+var uid=this.get_single_uid();
+if(uid&&(!this.env.uid||uid!=this.env.uid)){
+if(this.env.mailbox==this.env.drafts_mailbox){
+this.goto_url("compose","_draft_uid="+uid+"&_mbox="+urlencode(this.env.mailbox),true);
+}else{
+this.show_message(uid);
+}
+}
+}else{
+if(this.task=="addressbook"){
+var cid=_40?_40:this.get_single_cid();
+if(cid&&!(this.env.action=="show"&&cid==this.env.cid)){
+this.load_contact(cid,"show");
+}
+}
+}
+break;
+case "add":
+if(this.task=="addressbook"){
+this.load_contact(0,"add");
+}else{
+if(this.task=="settings"){
+this.identity_list.clear_selection();
+this.load_identity(0,"add-identity");
+}
+}
+break;
+case "edit":
+var cid;
+if(this.task=="addressbook"&&(cid=this.get_single_cid())){
+this.load_contact(cid,"edit");
+}else{
+if(this.task=="settings"&&_40){
+this.load_identity(_40,"edit-identity");
+}
+}
+break;
+case "save-identity":
+case "save":
+if(this.gui_objects.editform){
+var _48=rcube_find_object("_pagesize");
+var _49=rcube_find_object("_name");
+var _4a=rcube_find_object("_email");
+if(_48&&isNaN(parseInt(_48.value))){
+alert(this.get_label("nopagesizewarning"));
+_48.focus();
+break;
+}else{
+if(_49&&_49.value==""){
+alert(this.get_label("nonamewarning"));
+_49.focus();
+break;
+}else{
+if(_4a&&!rcube_check_email(_4a.value)){
+alert(this.get_label("noemailwarning"));
+_4a.focus();
+break;
+}
+}
+}
+this.gui_objects.editform.submit();
+}
+break;
+case "delete":
+if(this.task=="mail"){
+this.delete_messages();
+}else{
+if(this.task=="addressbook"){
+this.delete_contacts();
+}else{
+if(this.task=="settings"){
+this.delete_identity();
+}
+}
+}
+break;
+case "move":
+case "moveto":
+if(this.task=="mail"){
+this.move_messages(_40);
+}else{
+if(this.task=="addressbook"&&this.drag_active){
+this.copy_contact(null,_40);
+}
+}
+break;
+case "mark":
+if(_40){
+this.mark_message(_40);
+}
+break;
+case "toggle_status":
+if(_40&&!_40._row){
+break;
+}
+var uid;
+var _4b="read";
+if(_40._row.uid){
+uid=_40._row.uid;
+if(this.message_list.rows[uid].deleted){
+_4b="undelete";
+}else{
+if(!this.message_list.rows[uid].unread){
+_4b="unread";
+}
+}
+}
+this.mark_message(_4b,uid);
+break;
+case "toggle_flag":
+if(_40&&!_40._row){
+break;
+}
+var uid;
+var _4b="flagged";
+if(_40._row.uid){
+uid=_40._row.uid;
+if(this.message_list.rows[uid].flagged){
+_4b="unflagged";
+}
+}
+this.mark_message(_4b,uid);
+break;
+case "always-load":
+if(this.env.uid&&this.env.sender){
+this.add_contact(urlencode(this.env.sender));
+window.setTimeout(function(){
+_1.command("load-images");
+},300);
+break;
+}
+case "load-images":
+if(this.env.uid){
+this.show_message(this.env.uid,true,this.env.action=="preview");
+}
+break;
+case "load-attachment":
+var _4c="_mbox="+urlencode(this.env.mailbox)+"&_uid="+this.env.uid+"&_part="+_40.part;
+if(this.env.uid&&_40.mimetype&&find_in_array(_40.mimetype,this.mimetypes)>=0){
+if(_40.mimetype=="text/html"){
+_4c+="&_safe=1";
+}
+this.attachment_win=window.open(this.env.comm_path+"&_action=get&"+_4c+"&_frame=1","rcubemailattachment");
+if(this.attachment_win){
+window.setTimeout(function(){
+_1.attachment_win.focus();
+},10);
+break;
+}
+}
+this.goto_url("get",_4c+"&_download=1",false);
+break;
+case "select-all":
+this.message_list.select_all(_40);
+break;
+case "select-none":
+this.message_list.clear_selection();
+break;
+case "nextmessage":
+if(this.env.next_uid){
+this.show_message(this.env.next_uid,false,this.env.action=="preview");
+}
+break;
+case "lastmessage":
+if(this.env.last_uid){
+this.show_message(this.env.last_uid);
+}
+break;
+case "previousmessage":
+if(this.env.prev_uid){
+this.show_message(this.env.prev_uid,false,this.env.action=="preview");
+}
+break;
+case "firstmessage":
+if(this.env.first_uid){
+this.show_message(this.env.first_uid);
+}
+break;
+case "checkmail":
+this.check_for_recent(true);
+break;
+case "compose":
+var url=this.env.comm_path+"&_action=compose";
+if(this.task=="mail"){
+url+="&_mbox="+urlencode(this.env.mailbox);
+if(this.env.mailbox==this.env.drafts_mailbox){
+var uid;
+if(uid=this.get_single_uid()){
+url+="&_draft_uid="+uid;
+}
+}else{
+if(_40){
+url+="&_to="+urlencode(_40);
+}
+}
+}else{
+if(this.task=="addressbook"){
+if(_40&&_40.indexOf("@")>0){
+url=this.get_task_url("mail",url);
+this.redirect(url+"&_to="+urlencode(_40));
+break;
+}
+var _4e=new Array();
+if(_40){
+_4e[_4e.length]=_40;
+}else{
+if(this.contact_list){
+var _4f=this.contact_list.get_selection();
+for(var n=0;n<_4f.length;n++){
+_4e[_4e.length]=_4f[n];
+}
+}
+}
+if(_4e.length){
+this.http_request("mailto","_cid="+urlencode(_4e.join(","))+"&_source="+urlencode(this.env.source),true);
+}
+break;
+}
+}
+url=url.replace(/&_framed=1/,"");
+this.redirect(url);
+break;
+case "spellcheck":
+if(window.tinyMCE&&tinyMCE.get("compose-body")){
+tinyMCE.execCommand("mceSpellCheck",true);
+}else{
+if(this.env.spellcheck&&this.env.spellcheck.spellCheck&&this.spellcheck_ready){
+this.env.spellcheck.spellCheck(this.env.spellcheck.check_link);
+this.set_spellcheck_state("checking");
+}
+}
+break;
+case "savedraft":
+self.clearTimeout(this.save_timer);
+if(!this.gui_objects.messageform){
+break;
+}
+if(!this.env.drafts_mailbox||this.cmp_hash==this.compose_field_hash()){
+break;
+}
+this.set_busy(true,"savingmessage");
+var _51=this.gui_objects.messageform;
+_51.target="savetarget";
+_51._draft.value="1";
+_51.submit();
+break;
+case "send":
+if(!this.gui_objects.messageform){
+break;
+}
+if(!this.check_compose_input()){
+break;
+}
+self.clearTimeout(this.save_timer);
+this.set_busy(true,"sendingmessage");
+var _51=this.gui_objects.messageform;
+_51.target="savetarget";
+_51._draft.value="";
+_51.submit();
+clearTimeout(this.request_timer);
+break;
+case "add-attachment":
+this.show_attachment_form(true);
+case "send-attachment":
+self.clearTimeout(this.save_timer);
+this.upload_file(_40);
+break;
+case "remove-attachment":
+this.remove_attachment(_40);
+break;
+case "reply-all":
+case "reply":
+var uid;
+if(uid=this.get_single_uid()){
+this.goto_url("compose","_reply_uid="+uid+"&_mbox="+urlencode(this.env.mailbox)+(_3f=="reply-all"?"&_all=1":""),true);
+}
+break;
+case "forward":
+var uid;
+if(uid=this.get_single_uid()){
+this.goto_url("compose","_forward_uid="+uid+"&_mbox="+urlencode(this.env.mailbox),true);
+}
+break;
+case "print":
+var uid;
+if(uid=this.get_single_uid()){
+_1.printwin=window.open(this.env.comm_path+"&_action=print&_uid="+uid+"&_mbox="+urlencode(this.env.mailbox)+(this.env.safemode?"&_safe=1":""));
+if(this.printwin){
+window.setTimeout(function(){
+_1.printwin.focus();
+},20);
+if(this.env.action!="show"){
+this.mark_message("read",uid);
+}
+}
+}
+break;
+case "viewsource":
+var uid;
+if(uid=this.get_single_uid()){
+_1.sourcewin=window.open(this.env.comm_path+"&_action=viewsource&_uid="+this.env.uid+"&_mbox="+urlencode(this.env.mailbox));
+if(this.sourcewin){
+window.setTimeout(function(){
+_1.sourcewin.focus();
+},20);
+}
+}
+break;
+case "add-contact":
+this.add_contact(_40);
+break;
+case "search":
+if(!_40&&this.gui_objects.qsearchbox){
+_40=this.gui_objects.qsearchbox.value;
+}
+if(_40){
+this.qsearch(_40);
+break;
+}
+case "reset-search":
+var s=this.env.search_request;
+this.reset_qsearch();
+if(s&&this.env.mailbox){
+this.list_mailbox(this.env.mailbox);
+}else{
+if(s&&this.task=="addressbook"){
+this.list_contacts(this.env.source);
+}
+}
+break;
+case "import":
+if(this.env.action=="import"&&this.gui_objects.importform){
+var _53=document.getElementById("rcmimportfile");
+if(_53&&!_53.value){
+alert(this.get_label("selectimportfile"));
+break;
+}
+this.gui_objects.importform.submit();
+this.set_busy(true,"importwait");
+this.lock_form(this.gui_objects.importform,true);
+}else{
+this.goto_url("import");
+}
+break;
+case "export":
+if(this.contact_list.rowcount>0){
+var _54=(this.env.source?"_source="+urlencode(this.env.source)+"&":"");
+if(this.env.search_request){
+_54+="_search="+this.env.search_request;
+}
+this.goto_url("export",_54);
+}
+break;
+case "collapse-folder":
+if(_40){
+this.collapse_folder(_40);
+}
+break;
+case "preferences":
+this.goto_url("");
+break;
+case "identities":
+this.goto_url("identities");
+break;
+case "delete-identity":
+this.delete_identity();
+case "folders":
+this.goto_url("folders");
+break;
+case "subscribe":
+this.subscribe_folder(_40);
+break;
+case "unsubscribe":
+this.unsubscribe_folder(_40);
+break;
+case "create-folder":
+this.create_folder(_40);
+break;
+case "rename-folder":
+this.rename_folder(_40);
+break;
+case "delete-folder":
+this.delete_folder(_40);
+break;
+}
+return obj?false:true;
+};
+this.enable_command=function(){
+var _55=arguments;
+if(!_55.length){
+return -1;
+}
+var _56;
+var _57=_55[_55.length-1];
+for(var n=0;n<_55.length-1;n++){
+_56=_55[n];
+this.commands[_56]=_57;
+this.set_button(_56,(_57?"act":"pas"));
+}
+return true;
+};
+this.set_busy=function(a,_5a){
+if(a&&_5a){
+var msg=this.get_label(_5a);
+if(msg==_5a){
+msg="Loading...";
+}
+this.display_message(msg,"loading",true);
+}else{
+if(!a){
+this.hide_message();
+}
+}
+this.busy=a;
+if(this.gui_objects.editform){
+this.lock_form(this.gui_objects.editform,a);
+}
+if(this.request_timer){
+clearTimeout(this.request_timer);
+}
+if(a&&this.env.request_timeout){
+this.request_timer=window.setTimeout(function(){
+_1.request_timed_out();
+},this.env.request_timeout*1000);
+}
+};
+this.get_label=function(_5c){
+if(this.labels[_5c]){
+return this.labels[_5c];
+}else{
+return _5c;
+}
+};
+this.switch_task=function(_5d){
+if(this.task===_5d&&_5d!="mail"){
+return;
+}
+var url=this.get_task_url(_5d);
+if(_5d=="mail"){
+url+="&_mbox=INBOX";
+}
+this.redirect(url);
+};
+this.get_task_url=function(_5f,url){
+if(!url){
+url=this.env.comm_path;
+}
+return url.replace(/_task=[a-z]+/,"_task="+_5f);
+};
+this.request_timed_out=function(){
+this.set_busy(false);
+this.display_message("Request timed out!","error");
+};
+this.doc_mouse_up=function(e){
+var _62,li;
+if(this.message_list){
+this.message_list.blur();
+_62=this.env.mailboxes;
+}else{
+if(this.contact_list){
+this.contact_list.blur();
+_62=this.env.address_sources;
+}else{
+if(this.ksearch_value){
+this.ksearch_blur();
+}
+}
+}
+if(this.drag_active&&_62&&this.env.last_folder_target){
+this.set_classname(this.get_folder_li(this.env.last_folder_target),"droptarget",false);
+this.command("moveto",_62[this.env.last_folder_target].id);
+this.env.last_folder_target=null;
+}
+};
+this.drag_start=function(_64){
+var _65=this.task=="mail"?this.env.mailboxes:this.env.address_sources;
+this.drag_active=true;
+if(this.preview_timer){
+clearTimeout(this.preview_timer);
+}
+if(this.gui_objects.folderlist&&_65){
+var li,pos,_64,_68;
+_64=rcube_find_object(this.task=="mail"?"mailboxlist":"directorylist");
+pos=rcube_get_object_pos(_64);
+this.env.folderlist_coords={x1:pos.x,y1:pos.y,x2:pos.x+_64.offsetWidth,y2:pos.y+_64.offsetHeight};
+this.env.folder_coords=new Array();
+for(var k in _65){
+if(li=this.get_folder_li(k)){
+pos=rcube_get_object_pos(li.firstChild);
+if(_68=li.firstChild.offsetHeight){
+this.env.folder_coords[k]={x1:pos.x,y1:pos.y,x2:pos.x+li.firstChild.offsetWidth,y2:pos.y+_68};
+}
+}
+}
+}
+};
+this.drag_move=function(e){
+if(this.gui_objects.folderlist&&this.env.folder_coords){
+var li,pos,_6d;
+_6d=rcube_event.get_mouse_pos(e);
+pos=this.env.folderlist_coords;
+if(_6d.x<pos.x1||_6d.x>=pos.x2||_6d.y<pos.y1||_6d.y>=pos.y2){
+if(this.env.last_folder_target){
+this.set_classname(this.get_folder_li(this.env.last_folder_target),"droptarget",false);
+this.env.last_folder_target=null;
+}
+return;
+}
+for(var k in this.env.folder_coords){
+pos=this.env.folder_coords[k];
+if(this.check_droptarget(k)&&((_6d.x>=pos.x1)&&(_6d.x<pos.x2)&&(_6d.y>=pos.y1)&&(_6d.y<pos.y2))){
+this.set_classname(this.get_folder_li(k),"droptarget",true);
+this.env.last_folder_target=k;
+}else{
+this.set_classname(this.get_folder_li(k),"droptarget",false);
+}
+}
+}
+};
+this.collapse_folder=function(id){
+var div;
+if((li=this.get_folder_li(id))&&(div=li.getElementsByTagName("div")[0])&&(div.className.match(/collapsed/)||div.className.match(/expanded/))){
+var ul=li.getElementsByTagName("ul")[0];
+if(div.className.match(/collapsed/)){
+ul.style.display="";
+this.set_classname(div,"collapsed",false);
+this.set_classname(div,"expanded",true);
+var reg=new RegExp("&"+urlencode(id)+"&");
+this.set_env("collapsed_folders",this.env.collapsed_folders.replace(reg,""));
+}else{
+ul.style.display="none";
+this.set_classname(div,"expanded",false);
+this.set_classname(div,"collapsed",true);
+this.set_env("collapsed_folders",this.env.collapsed_folders+"&"+urlencode(id)+"&");
+if(this.env.mailbox.indexOf(id+this.env.delimiter)==0){
+this.command("list",id);
+}
+}
+if((bw.ie6||bw.ie7)&&li.nextSibling&&(li.nextSibling.getElementsByTagName("ul").length>0)&&li.nextSibling.getElementsByTagName("ul")[0].style&&(li.nextSibling.getElementsByTagName("ul")[0].style.display!="none")){
+li.nextSibling.getElementsByTagName("ul")[0].style.display="none";
+li.nextSibling.getElementsByTagName("ul")[0].style.display="";
+}
+this.http_post("save-pref","_name=collapsed_folders&_value="+urlencode(this.env.collapsed_folders));
+this.set_unread_count_display(id,false);
+}
+};
+this.click_on_list=function(e){
+if(this.message_list){
+this.message_list.focus();
+}else{
+if(this.contact_list){
+this.contact_list.focus();
+}
+}
+var _74;
+if(_74=this.get_folder_li()){
+this.set_classname(_74,"unfocused",true);
+}
+return rcube_event.get_button(e)==2?true:rcube_event.cancel(e);
+};
+this.msglist_select=function(_75){
+if(this.preview_timer){
+clearTimeout(this.preview_timer);
+}
+var _76=_75.selection.length==1;
+if(this.env.mailbox==this.env.drafts_mailbox){
+this.enable_command("reply","reply-all","forward",false);
+this.enable_command("show",_76);
+this.enable_command("delete","moveto","mark",(_75.selection.length>0?true:false));
+}else{
+this.enable_command("show","reply","reply-all","forward","print",_76);
+this.enable_command("delete","moveto","mark",(_75.selection.length>0?true:false));
+}
+if(_76&&this.env.contentframe&&!_75.multi_selecting){
+this.preview_timer=window.setTimeout(function(){
+_1.msglist_get_preview();
+},200);
+}else{
+if(this.env.contentframe){
+this.show_contentframe(false);
+}
+}
+};
+this.msglist_dbl_click=function(_77){
+if(this.preview_timer){
+clearTimeout(this.preview_timer);
+}
+var uid=_77.get_single_selection();
+if(uid&&this.env.mailbox==this.env.drafts_mailbox){
+this.goto_url("compose","_draft_uid="+uid+"&_mbox="+urlencode(this.env.mailbox),true);
+}else{
+if(uid){
+this.show_message(uid,false,false);
+}
+}
+};
+this.msglist_keypress=function(_79){
+if(_79.key_pressed==_79.ENTER_KEY){
+this.command("show");
+}else{
+if(_79.key_pressed==_79.DELETE_KEY){
+this.command("delete");
+}else{
+if(_79.key_pressed==_79.BACKSPACE_KEY){
+this.command("delete");
+}else{
+_79.shiftkey=false;
+}
+}
+}
+};
+this.msglist_get_preview=function(){
+var uid=this.get_single_uid();
+if(uid&&this.env.contentframe&&!this.drag_active){
+this.show_message(uid,false,true);
+}else{
+if(this.env.contentframe){
+this.show_contentframe(false);
+}
+}
+};
+this.check_droptarget=function(id){
+if(this.task=="mail"){
+return (this.env.mailboxes[id]&&this.env.mailboxes[id].id!=this.env.mailbox&&!this.env.mailboxes[id].virtual);
+}else{
+if(this.task=="addressbook"){
+return (id!=this.env.source&&this.env.address_sources[id]&&!this.env.address_sources[id].readonly);
+}else{
+if(this.task=="settings"){
+return (id!=this.env.folder);
+}
+}
+}
+};
+this.show_message=function(id,_7d,_7e){
+if(!id){
+return;
+}
+var _7f="";
+var _80=_7e?"preview":"show";
+var _81=window;
+if(_7e&&this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){
+_81=window.frames[this.env.contentframe];
+_7f="&_framed=1";
+}
+if(_7d){
+_7f="&_safe=1";
+}
+if(this.env.search_request){
+_7f+="&_search="+this.env.search_request;
+}
+var url="&_action="+_80+"&_uid="+id+"&_mbox="+urlencode(this.env.mailbox)+_7f;
+if(_80=="preview"&&String(_81.location.href).indexOf(url)>=0){
+this.show_contentframe(true);
+}else{
+this.set_busy(true,"loading");
+_81.location.href=this.env.comm_path+url;
+if(_80=="preview"&&this.message_list&&this.message_list.rows[id]&&this.message_list.rows[id].unread){
+this.set_message(id,"unread",false);
+if(this.env.unread_counts[this.env.mailbox]){
+this.env.unread_counts[this.env.mailbox]-=1;
+this.set_unread_count(this.env.mailbox,this.env.unread_counts[this.env.mailbox],this.env.mailbox=="INBOX");
+}
+}
+}
+};
+this.show_contentframe=function(_83){
+var frm;
+if(this.env.contentframe&&(frm=rcube_find_object(this.env.contentframe))){
+if(!_83&&window.frames[this.env.contentframe]){
+if(window.frames[this.env.contentframe].location.href.indexOf(this.env.blankpage)<0){
+window.frames[this.env.contentframe].location.href=this.env.blankpage;
+}
+}else{
+if(!bw.safari){
+frm.style.display=_83?"block":"none";
+}
+}
+}
+if(!_83&&this.busy){
+this.set_busy(false);
+}
+};
+this.list_page=function(_85){
+if(_85=="next"){
+_85=this.env.current_page+1;
+}
+if(_85=="last"){
+_85=this.env.pagecount;
+}
+if(_85=="prev"&&this.env.current_page>1){
+_85=this.env.current_page-1;
+}
+if(_85=="first"&&this.env.current_page>1){
+_85=1;
+}
+if(_85>0&&_85<=this.env.pagecount){
+this.env.current_page=_85;
+if(this.task=="mail"){
+this.list_mailbox(this.env.mailbox,_85);
+}else{
+if(this.task=="addressbook"){
+this.list_contacts(this.env.source,_85);
+}
+}
+}
+};
+this.filter_mailbox=function(_86){
+var _87;
+if(this.gui_objects.qsearchbox){
+_87=this.gui_objects.qsearchbox.value;
+}
+this.message_list.clear();
+this.env.current_page=1;
+this.set_busy(true,"searching");
+this.http_request("search","_filter="+_86+(_87?"&_q="+urlencode(_87):"")+(this.env.mailbox?"&_mbox="+urlencode(this.env.mailbox):""),true);
+};
+this.list_mailbox=function(_88,_89,_8a){
+this.last_selected=0;
+var _8b="";
+var _8c=window;
+if(!_88){
+_88=this.env.mailbox;
+}
+if(_8a){
+_8b+="&_sort="+_8a;
+}
+if(this.env.search_request){
+_8b+="&_search="+this.env.search_request;
+}
+if(!_89&&_88!=this.env.mailbox){
+_89=1;
+this.env.current_page=_89;
+if(this.message_list){
+this.message_list.clear_selection();
+}
+this.show_contentframe(false);
+}
+if(_88!=this.env.mailbox||(_88==this.env.mailbox&&!_89&&!_8a)){
+_8b+="&_refresh=1";
+}
+this.select_folder(_88,this.env.mailbox);
+this.env.mailbox=_88;
+if(this.gui_objects.messagelist){
+this.list_mailbox_remote(_88,_89,_8b);
+return;
+}
+if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){
+_8c=window.frames[this.env.contentframe];
+_8b+="&_framed=1";
+}
+if(_88){
+this.set_busy(true,"loading");
+_8c.location.href=this.env.comm_path+"&_mbox="+urlencode(_88)+(_89?"&_page="+_89:"")+_8b;
+}
+};
+this.list_mailbox_remote=function(_8d,_8e,_8f){
+this.message_list.clear();
+var url="_mbox="+urlencode(_8d)+(_8e?"&_page="+_8e:"");
+this.set_busy(true,"loading");
+this.http_request("list",url+_8f,true);
+};
+this.expunge_mailbox=function(_91){
+var _92=false;
+var _93="";
+if(_91==this.env.mailbox){
+_92=true;
+this.set_busy(true,"loading");
+_93="&_reload=1";
+}
+var url="_mbox="+urlencode(_91);
+this.http_post("expunge",url+_93,_92);
+};
+this.purge_mailbox=function(_95){
+var _96=false;
+var _97="";
+if(!confirm(this.get_label("purgefolderconfirm"))){
+return false;
+}
+if(_95==this.env.mailbox){
+_96=true;
+this.set_busy(true,"loading");
+_97="&_reload=1";
+}
+var url="_mbox="+urlencode(_95);
+this.http_post("purge",url+_97,_96);
+return true;
+};
+this.purge_mailbox_test=function(){
+return (this.env.messagecount&&(this.env.mailbox==this.env.trash_mailbox||this.env.mailbox==this.env.junk_mailbox||this.env.mailbox.match("^"+RegExp.escape(this.env.trash_mailbox)+RegExp.escape(this.env.delimiter))||this.env.mailbox.match("^"+RegExp.escape(this.env.junk_mailbox)+RegExp.escape(this.env.delimiter))));
+};
+this.set_message_icon=function(uid){
+var _9a;
+var _9b=this.message_list.rows;
+if(!_9b[uid]){
+return false;
+}
+if(_9b[uid].deleted&&this.env.deletedicon){
+_9a=this.env.deletedicon;
+}else{
+if(_9b[uid].replied&&this.env.repliedicon){
+if(_9b[uid].forwarded&&this.env.forwardedrepliedicon){
+_9a=this.env.forwardedrepliedicon;
+}else{
+_9a=this.env.repliedicon;
+}
+}else{
+if(_9b[uid].forwarded&&this.env.forwardedicon){
+_9a=this.env.forwardedicon;
+}else{
+if(_9b[uid].unread&&this.env.unreadicon){
+_9a=this.env.unreadicon;
+}else{
+if(this.env.messageicon){
+_9a=this.env.messageicon;
+}
+}
+}
+}
+}
+if(_9a&&_9b[uid].icon){
+_9b[uid].icon.src=_9a;
+}
+_9a="";
+if(_9b[uid].flagged&&this.env.flaggedicon){
+_9a=this.env.flaggedicon;
+}else{
+if(!_9b[uid].flagged&&this.env.unflaggedicon){
+_9a=this.env.unflaggedicon;
+}
+}
+if(_9b[uid].flagged_icon&&_9a){
+_9b[uid].flagged_icon.src=_9a;
+}
+};
+this.set_message_status=function(uid,_9d,_9e){
+var _9f=this.message_list.rows;
+if(!_9f[uid]){
+return false;
+}
+if(_9d=="unread"){
+_9f[uid].unread=_9e;
+}else{
+if(_9d=="deleted"){
+_9f[uid].deleted=_9e;
+}else{
+if(_9d=="replied"){
+_9f[uid].replied=_9e;
+}else{
+if(_9d=="forwarded"){
+_9f[uid].forwarded=_9e;
+}else{
+if(_9d=="flagged"){
+_9f[uid].flagged=_9e;
+}
+}
+}
+}
+}
+this.env.messages[uid]=_9f[uid];
+};
+this.set_message=function(uid,_a1,_a2){
+var _a3=this.message_list.rows;
+if(!_a3[uid]){
+return false;
+}
+if(_a1){
+this.set_message_status(uid,_a1,_a2);
+}
+if(_a3[uid].unread&&_a3[uid].classname.indexOf("unread")<0){
+_a3[uid].classname+=" unread";
+this.set_classname(_a3[uid].obj,"unread",true);
+}else{
+if(!_a3[uid].unread&&_a3[uid].classname.indexOf("unread")>=0){
+_a3[uid].classname=_a3[uid].classname.replace(/\s*unread/,"");
+this.set_classname(_a3[uid].obj,"unread",false);
+}
+}
+if(_a3[uid].deleted&&_a3[uid].classname.indexOf("deleted")<0){
+_a3[uid].classname+=" deleted";
+this.set_classname(_a3[uid].obj,"deleted",true);
+}else{
+if(!_a3[uid].deleted&&_a3[uid].classname.indexOf("deleted")>=0){
+_a3[uid].classname=_a3[uid].classname.replace(/\s*deleted/,"");
+this.set_classname(_a3[uid].obj,"deleted",false);
+}
+}
+if(_a3[uid].flagged&&_a3[uid].classname.indexOf("flagged")<0){
+_a3[uid].classname+=" flagged";
+this.set_classname(_a3[uid].obj,"flagged",true);
+}else{
+if(!_a3[uid].flagged&&_a3[uid].classname.indexOf("flagged")>=0){
+_a3[uid].classname=_a3[uid].classname.replace(/\s*flagged/,"");
+this.set_classname(_a3[uid].obj,"flagged",false);
+}
+}
+this.set_message_icon(uid);
+};
+this.move_messages=function(_a4){
+if(!_a4||_a4==this.env.mailbox||(!this.env.uid&&(!this.message_list||!this.message_list.get_selection().length))){
+return;
+}
+var _a5=false;
+var _a6="&_target_mbox="+urlencode(_a4)+"&_from="+(this.env.action?this.env.action:"");
+if(this.env.action=="show"){
+_a5=true;
+this.set_busy(true,"movingmessage");
+}else{
+if(!this.env.flag_for_deletion){
+this.show_contentframe(false);
+}
+}
+this.enable_command("reply","reply-all","forward","delete","mark","print",false);
+this._with_selected_messages("moveto",_a5,_a6,(this.env.flag_for_deletion?false:true));
+};
+this.delete_messages=function(){
+var _a7=this.message_list?this.message_list.get_selection():new Array();
+if(!this.env.uid&&!_a7.length){
+return;
+}
+if(this.env.trash_mailbox&&String(this.env.mailbox).toLowerCase()!=String(this.env.trash_mailbox).toLowerCase()){
+if(this.message_list&&this.message_list.shiftkey){
+if(confirm(this.get_label("deletemessagesconfirm"))){
+this.permanently_remove_messages();
+}
+}else{
+this.move_messages(this.env.trash_mailbox);
+}
+}else{
+if(this.env.trash_mailbox&&String(this.env.mailbox).toLowerCase()==String(this.env.trash_mailbox).toLowerCase()){
+this.permanently_remove_messages();
+}else{
+if(!this.env.trash_mailbox&&this.env.flag_for_deletion){
+this.mark_message("delete");
+if(this.env.action=="show"){
+this.command("nextmessage","",this);
+}else{
+if(_a7.length==1){
+this.message_list.select_next();
+}
+}
+}else{
+if(!this.env.trash_mailbox){
+this.permanently_remove_messages();
+}
+}
+}
+}
+};
+this.permanently_remove_messages=function(){
+if(!this.env.uid&&(!this.message_list||!this.message_list.get_selection().length)){
+return;
+}
+this.show_contentframe(false);
+this._with_selected_messages("delete",false,"&_from="+(this.env.action?this.env.action:""),true);
+};
+this._with_selected_messages=function(_a8,_a9,_aa,_ab){
+var _ac=new Array();
+if(this.env.uid){
+_ac[0]=this.env.uid;
+}else{
+var _ad=this.message_list.get_selection();
+var _ae=this.message_list.rows;
+var id;
+for(var n=0;n<_ad.length;n++){
+id=_ad[n];
+_ac[_ac.length]=id;
+if(_ab){
+this.message_list.remove_row(id,(n==_ad.length-1));
+}else{
+this.set_message_status(id,"deleted",true);
+if(this.env.read_when_deleted){
+this.set_message_status(id,"unread",false);
+}
+this.set_message(id);
+}
+}
+}
+if(this.env.search_request){
+_aa+="&_search="+this.env.search_request;
+}
+this.http_post(_a8,"_uid="+_ac.join(",")+"&_mbox="+urlencode(this.env.mailbox)+_aa,_a9);
+};
+this.mark_message=function(_b1,uid){
+var _b3=new Array();
+var _b4=new Array();
+var _b5=this.message_list?this.message_list.get_selection():new Array();
+if(uid){
+_b3[0]=uid;
+}else{
+if(this.env.uid){
+_b3[0]=this.env.uid;
+}else{
+if(this.message_list){
+for(var n=0;n<_b5.length;n++){
+_b3[_b3.length]=_b5[n];
+}
+}
+}
+}
+if(!this.message_list){
+_b4=_b3;
+}else{
+for(var id,n=0;n<_b3.length;n++){
+id=_b3[n];
+if((_b1=="read"&&this.message_list.rows[id].unread)||(_b1=="unread"&&!this.message_list.rows[id].unread)||(_b1=="delete"&&!this.message_list.rows[id].deleted)||(_b1=="undelete"&&this.message_list.rows[id].deleted)||(_b1=="flagged"&&!this.message_list.rows[id].flagged)||(_b1=="unflagged"&&this.message_list.rows[id].flagged)){
+_b4[_b4.length]=id;
+}
+}
+}
+if(!_b4.length){
+return;
+}
+switch(_b1){
+case "read":
+case "unread":
+this.toggle_read_status(_b1,_b4);
+break;
+case "delete":
+case "undelete":
+this.toggle_delete_status(_b4);
+break;
+case "flagged":
+case "unflagged":
+this.toggle_flagged_status(_b1,_b3);
+break;
+}
+};
+this.toggle_read_status=function(_b8,_b9){
+for(var i=0;i<_b9.length;i++){
+this.set_message(_b9[i],"unread",(_b8=="unread"?true:false));
+}
+this.http_post("mark","_uid="+_b9.join(",")+"&_flag="+_b8);
+};
+this.toggle_flagged_status=function(_bb,_bc){
+for(var i=0;i<_bc.length;i++){
+this.set_message(_bc[i],"flagged",(_bb=="flagged"?true:false));
+}
+this.http_post("mark","_uid="+_bc.join(",")+"&_flag="+_bb);
+};
+this.toggle_delete_status=function(_be){
+var _bf=this.message_list?this.message_list.rows:new Array();
+if(_be.length==1){
+if(!_bf.length||(_bf[_be[0]]&&!_bf[_be[0]].deleted)){
+this.flag_as_deleted(_be);
+}else{
+this.flag_as_undeleted(_be);
+}
+return true;
+}
+var _c0=true;
+for(var i=0;i<_be.length;i++){
+uid=_be[i];
+if(_bf[uid]){
+if(!_bf[uid].deleted){
+_c0=false;
+break;
+}
+}
+}
+if(_c0){
+this.flag_as_undeleted(_be);
+}else{
+this.flag_as_deleted(_be);
+}
+return true;
+};
+this.flag_as_undeleted=function(_c2){
+for(var i=0;i<_c2.length;i++){
+this.set_message(_c2[i],"deleted",false);
+}
+this.http_post("mark","_uid="+_c2.join(",")+"&_flag=undelete");
+return true;
+};
+this.flag_as_deleted=function(_c4){
+var _c5="";
+var _c6=new Array();
+var _c7=this.message_list?this.message_list.rows:new Array();
+for(var i=0;i<_c4.length;i++){
+uid=_c4[i];
+if(_c7[uid]){
+this.set_message(uid,"deleted",true);
+if(_c7[uid].unread){
+_c6[_c6.length]=uid;
+}
+}
+}
+if(_c6.length){
+_c5="&_ruid="+_c6.join(",");
+}
+this.http_post("mark","_uid="+_c4.join(",")+"&_flag=delete"+_c5);
+return true;
+};
+this.flag_deleted_as_read=function(_c9){
+var _ca;
+var _cb=this.message_list?this.message_list.rows:new Array();
+var str=String(_c9);
+var _cd=new Array();
+_cd=str.split(",");
+for(var uid,i=0;i<_cd.length;i++){
+uid=_cd[i];
+if(_cb[uid]){
+this.set_message(uid,"unread",false);
+}
+}
+};
+this.login_user_keyup=function(e){
+var key=rcube_event.get_keycode(e);
+var elm;
+if((key==13)&&(elm=rcube_find_object("_pass"))){
+elm.focus();
+return false;
+}
+};
+this.check_compose_input=function(){
+var _d3=rcube_find_object("_to");
+var _d4=rcube_find_object("_cc");
+var _d5=rcube_find_object("_bcc");
+var _d6=rcube_find_object("_from");
+var _d7=rcube_find_object("_subject");
+var _d8=rcube_find_object("_message");
+if(_d6.type=="text"&&!rcube_check_email(_d6.value,true)){
+alert(this.get_label("nosenderwarning"));
+_d6.focus();
+return false;
+}
+var _d9=_d3.value?_d3.value:(_d4.value?_d4.value:_d5.value);
+if(!rcube_check_email(_d9.replace(/^\s+/,"").replace(/[\s,;]+$/,""),true)){
+alert(this.get_label("norecipientwarning"));
+_d3.focus();
+return false;
+}
+if(_d7&&_d7.value==""){
+var _da=prompt(this.get_label("nosubjectwarning"),this.get_label("nosubject"));
+if(!_da&&_da!==""){
+_d7.focus();
+return false;
+}else{
+_d7.value=_da?_da:this.get_label("nosubject");
+}
+}
+if((!window.tinyMCE||!tinyMCE.get("compose-body"))&&_d8.value==""&&!confirm(this.get_label("nobodywarning"))){
+_d8.focus();
+return false;
+}else{
+if(window.tinyMCE&&tinyMCE.get("compose-body")&&!tinyMCE.get("compose-body").getContent()&&!confirm(this.get_label("nobodywarning"))){
+tinyMCE.get("compose-body").focus();
+return false;
+}
+}
+this.stop_spellchecking();
+return true;
+};
+this.stop_spellchecking=function(){
+if(this.env.spellcheck&&!this.spellcheck_ready){
+exec_event(this.env.spellcheck.check_link,"click");
+this.set_spellcheck_state("ready");
+}
+};
+this.display_spellcheck_controls=function(vis){
+if(this.env.spellcheck){
+if(!vis){
+this.stop_spellchecking();
+}
+this.env.spellcheck.check_link.style.visibility=vis?"visible":"hidden";
+this.env.spellcheck.switch_lan_pic.style.visibility=vis?"visible":"hidden";
+}
+};
+this.set_spellcheck_state=function(s){
+this.spellcheck_ready=(s=="check_spelling"||s=="ready");
+this.enable_command("spellcheck",this.spellcheck_ready);
+};
+this.set_draft_id=function(id){
+var f;
+if(f=rcube_find_object("_draft_saveid")){
+f.value=id;
+}
+};
+this.auto_save_start=function(){
+if(this.env.draft_autosave){
+this.save_timer=self.setTimeout(function(){
+_1.command("savedraft");
+},this.env.draft_autosave*1000);
+}
+this.busy=false;
+};
+this.compose_field_hash=function(_df){
+var _e0=rcube_find_object("_to");
+var _e1=rcube_find_object("_cc");
+var _e2=rcube_find_object("_bcc");
+var _e3=rcube_find_object("_subject");
+var _e4,_e5;
+var str="";
+if(_e0&&_e0.value){
+str+=_e0.value+":";
+}
+if(_e1&&_e1.value){
+str+=_e1.value+":";
+}
+if(_e2&&_e2.value){
+str+=_e2.value+":";
+}
+if(_e3&&_e3.value){
+str+=_e3.value+":";
+}
+if(_e4=tinyMCE.get("compose-body")){
+str+=_e4.getContent();
+}else{
+_e5=rcube_find_object("_message");
+str+=_e5.value;
+}
+if(_df){
+this.cmp_hash=str;
+}
+return str;
+};
+this.change_identity=function(obj){
+if(!obj||!obj.options){
+return false;
+}
+var id=obj.options[obj.selectedIndex].value;
+var _e9=rcube_find_object("_message");
+var _ea=_e9?_e9.value:"";
+var _eb=(rcube_find_object("_is_html").value=="1");
+var sig,p;
+if(!this.env.identity){
+this.env.identity=id;
+}
+if(!_eb){
+if(this.env.identity&&this.env.signatures&&this.env.signatures[this.env.identity]){
+if(this.env.signatures[this.env.identity]["is_html"]){
+sig=this.env.signatures[this.env.identity]["plain_text"];
+}else{
+sig=this.env.signatures[this.env.identity]["text"];
+}
+if(sig.indexOf("-- ")!=0){
+sig="-- \n"+sig;
+}
+p=_ea.lastIndexOf(sig);
+if(p>=0){
+_ea=_ea.substring(0,p-1)+_ea.substring(p+sig.length,_ea.length);
+}
+}
+_ea=_ea.replace(/[\r\n]+$/,"");
+if(this.env.signatures&&this.env.signatures[id]){
+sig=this.env.signatures[id]["text"];
+if(this.env.signatures[id]["is_html"]){
+sig=this.env.signatures[id]["plain_text"];
+}
+if(sig.indexOf("-- ")!=0){
+sig="-- \n"+sig;
+}
+_ea+="\n\n"+sig;
+}
+}else{
+var _ee=tinyMCE.get("compose-body");
+if(this.env.signatures){
+var _ef=_ee.dom.get("_rc_sig");
+var _f0="";
+var _f1=true;
+if(!_ef){
+if(bw.ie){
+_ee.getBody().appendChild(_ee.getDoc().createElement("br"));
+}
+_ef=_ee.getDoc().createElement("div");
+_ef.setAttribute("id","_rc_sig");
+_ee.getBody().appendChild(_ef);
+}
+if(this.env.signatures[id]){
+_f0=this.env.signatures[id]["text"];
+_f1=this.env.signatures[id]["is_html"];
+}
+if(_f1){
+_ef.innerHTML=_f0;
+}else{
+_ef.innerHTML="<pre>"+_f0+"</pre>";
+}
+}
+}
+if(_e9){
+_e9.value=_ea;
+}
+this.env.identity=id;
+return true;
+};
+this.show_attachment_form=function(a){
+if(!this.gui_objects.uploadbox){
+return false;
+}
+var elm,_f4;
+if(elm=this.gui_objects.uploadbox){
+if(a&&(_f4=this.gui_objects.attachmentlist)){
+var pos=rcube_get_object_pos(_f4);
+var _f6=pos.x;
+var top=pos.y+_f4.offsetHeight+10;
+elm.style.top=top+"px";
+elm.style.left=_f6+"px";
+}
+elm.style.visibility=a?"visible":"hidden";
+}
+try{
+if(!a&&this.gui_objects.attachmentform!=this.gui_objects.messageform){
+this.gui_objects.attachmentform.reset();
+}
+}
+catch(e){
+}
+return true;
+};
+this.upload_file=function(_f8){
+if(!_f8){
+return false;
+}
+var _f9=false;
+for(var n=0;n<_f8.elements.length;n++){
+if(_f8.elements[n].type=="file"&&_f8.elements[n].value){
+_f9=true;
+break;
+}
+}
+if(_f9){
+var ts=new Date().getTime();
+var _fc="rcmupload"+ts;
+if(document.all){
+var _fd="<iframe name=\""+_fc+"\" src=\"program/blank.gif\" style=\"width:0;height:0;visibility:hidden;\"></iframe>";
+document.body.insertAdjacentHTML("BeforeEnd",_fd);
+}else{
+var _fe=document.createElement("IFRAME");
+_fe.name=_fc;
+_fe.style.border="none";
+_fe.style.width=0;
+_fe.style.height=0;
+_fe.style.visibility="hidden";
+document.body.appendChild(_fe);
+}
+_f8.target=_fc;
+_f8.action=this.env.comm_path+"&_action=upload";
+_f8.setAttribute("enctype","multipart/form-data");
+_f8.submit();
+}
+this.gui_objects.attachmentform=_f8;
+return true;
+};
+this.add2attachment_list=function(_ff,_100){
+if(!this.gui_objects.attachmentlist){
+return false;
+}
+var li=document.createElement("LI");
+li.id=_ff;
+li.innerHTML=_100;
+this.gui_objects.attachmentlist.appendChild(li);
+return true;
+};
+this.remove_from_attachment_list=function(name){
+if(!this.gui_objects.attachmentlist){
+return false;
+}
+var list=this.gui_objects.attachmentlist.getElementsByTagName("li");
+for(i=0;i<list.length;i++){
+if(list[i].id==name){
+this.gui_objects.attachmentlist.removeChild(list[i]);
+}
+}
+};
+this.remove_attachment=function(name){
+if(name){
+this.http_post("remove-attachment","_file="+urlencode(name));
+}
+return true;
+};
+this.add_contact=function(_105){
+if(_105){
+this.http_post("addcontact","_address="+_105);
+}
+return true;
+};
+this.qsearch=function(_106,_107){
+if(_106!=""){
+if(this.message_list){
+this.message_list.clear();
+}else{
+if(this.contact_list){
+this.contact_list.clear(true);
+this.show_contentframe(false);
+}
+}
+if(this.gui_objects.search_filter){
+_107="&_filter="+this.gui_objects.search_filter.value;
+}
+this.env.current_page=1;
+this.set_busy(true,"searching");
+this.http_request("search","_q="+urlencode(_106)+(this.env.mailbox?"&_mbox="+urlencode(this.env.mailbox):"")+(this.env.source?"&_source="+urlencode(this.env.source):"")+(_107?_107:""),true);
+}
+return true;
+};
+this.reset_qsearch=function(){
+if(this.gui_objects.qsearchbox){
+this.gui_objects.qsearchbox.value="";
+}
+this.env.search_request=null;
+return true;
+};
+this.sent_successfully=function(type,msg){
+this.list_mailbox();
+this.display_message(msg,type,true);
+};
+this.ksearch_keypress=function(e,obj){
+if(this.ksearch_timer){
+clearTimeout(this.ksearch_timer);
+}
+var _10c;
+var key=rcube_event.get_keycode(e);
+var mod=rcube_event.get_modifier(e);
+switch(key){
+case 38:
+case 40:
+if(!this.ksearch_pane){
+break;
+}
+var dir=key==38?1:0;
+_10c=document.getElementById("rcmksearchSelected");
+if(!_10c){
+_10c=this.ksearch_pane.ul.firstChild;
+}
+if(_10c){
+this.ksearch_select(dir?_10c.previousSibling:_10c.nextSibling);
+}
+return rcube_event.cancel(e);
+case 9:
+if(mod==SHIFT_KEY){
+break;
+}
+case 13:
+if(this.ksearch_selected===null||!this.ksearch_input||!this.ksearch_value){
+break;
+}
+this.insert_recipient(this.ksearch_selected);
+this.ksearch_hide();
+return rcube_event.cancel(e);
+case 27:
+this.ksearch_hide();
+break;
+}
+this.ksearch_timer=window.setTimeout(function(){
+_1.ksearch_get_results();
+},200);
+this.ksearch_input=obj;
+return true;
+};
+this.ksearch_select=function(node){
+var _111=document.getElementById("rcmksearchSelected");
+if(_111&&node){
+_111.removeAttribute("id");
+this.set_classname(_111,"selected",false);
+}
+if(node){
+node.setAttribute("id","rcmksearchSelected");
+this.set_classname(node,"selected",true);
+this.ksearch_selected=node._rcm_id;
+}
+};
+this.insert_recipient=function(id){
+if(!this.env.contacts[id]||!this.ksearch_input){
+return;
+}
+var _113=this.ksearch_input.value.toLowerCase();
+var cpos=this.get_caret_pos(this.ksearch_input);
+var p=_113.lastIndexOf(this.ksearch_value,cpos);
+var pre=this.ksearch_input.value.substring(0,p);
+var end=this.ksearch_input.value.substring(p+this.ksearch_value.length,this.ksearch_input.value.length);
+var _118=this.env.contacts[id]+", ";
+this.ksearch_input.value=pre+_118+end;
+cpos=p+_118.length;
+if(this.ksearch_input.setSelectionRange){
+this.ksearch_input.setSelectionRange(cpos,cpos);
+}
+};
+this.ksearch_get_results=function(){
+var _119=this.ksearch_input?this.ksearch_input.value:null;
+if(_119===null){
+return;
+}
+if(this.ksearch_pane&&this.ksearch_pane.visible){
+this.ksearch_pane.show(0);
+}
+var cpos=this.get_caret_pos(this.ksearch_input);
+var p=_119.lastIndexOf(",",cpos-1);
+var q=_119.substring(p+1,cpos);
+q=q.replace(/(^\s+|\s+$)/g,"").toLowerCase();
+if(!q.length||q==this.ksearch_value){
+return;
+}
+this.ksearch_value=q;
+this.display_message(this.get_label("searching"),"loading",true);
+this.http_post("autocomplete","_search="+q);
+};
+this.ksearch_query_results=function(_11d){
+this.hide_message();
+this.env.contacts=_11d?_11d:[];
+var _11e=new Array();
+var c=0;
+for(var i=0;i<this.env.contacts.length;i++){
+_11e[c++]=i;
+if(c==15){
+break;
+}
+}
+this.ksearch_display_results(this.env.contacts,_11e,c);
+};
+this.ksearch_display_results=function(_121,_122,c){
+if(c&&_121.length&&this.ksearch_input){
+var p,ul,li;
+if(!this.ksearch_pane){
+ul=document.createElement("UL");
+this.ksearch_pane=new rcube_layer("rcmKSearchpane",{vis:0,zindex:30000});
+this.ksearch_pane.elm.appendChild(ul);
+this.ksearch_pane.ul=ul;
+}else{
+ul=this.ksearch_pane.ul;
+}
+ul.innerHTML="";
+for(i=0;i<_121.length;i++){
+li=document.createElement("LI");
+li.innerHTML=_121[i].replace(new RegExp("("+this.ksearch_value+")","ig"),"##$1%%").replace(/</g,"<").replace(/>/g,">").replace(/##([^%]+)%%/g,"<b>$1</b>");
+li.onmouseover=function(){
+_1.ksearch_select(this);
+};
+li.onmouseup=function(){
+_1.ksearch_click(this);
+};
+li._rcm_id=_122[i];
+ul.appendChild(li);
+}
+if(this.ksearch_selected!==null){
+p=find_in_array(this.ksearch_selected,_122);
+if(p>=0&&ul.childNodes){
+ul.childNodes[p].setAttribute("id","rcmksearchSelected");
+this.set_classname(ul.childNodes[p],"selected",true);
+}else{
+this.ksearch_selected=null;
+}
+}
+if(this.ksearch_selected===null){
+ul.firstChild.setAttribute("id","rcmksearchSelected");
+this.set_classname(ul.firstChild,"selected",true);
+this.ksearch_selected=_122[0];
+}
+var pos=rcube_get_object_pos(this.ksearch_input);
+this.ksearch_pane.move(pos.x,pos.y+this.ksearch_input.offsetHeight);
+this.ksearch_pane.show(1);
+}else{
+this.ksearch_hide();
+}
+};
+this.ksearch_click=function(node){
+this.insert_recipient(node._rcm_id);
+this.ksearch_hide();
+if(_1.ksearch_input){
+this.ksearch_input.focus();
+}
+};
+this.ksearch_blur=function(){
+if(this.ksearch_timer){
+clearTimeout(this.ksearch_timer);
+}
+this.ksearch_value="";
+this.ksearch_input=null;
+this.ksearch_hide();
+};
+this.ksearch_hide=function(){
+this.ksearch_selected=null;
+if(this.ksearch_pane){
+this.ksearch_pane.show(0);
+}
+};
+this.contactlist_keypress=function(list){
+if(list.key_pressed==list.DELETE_KEY){
+this.command("delete");
+}
+};
+this.contactlist_select=function(list){
+if(this.preview_timer){
+clearTimeout(this.preview_timer);
+}
+var id,_12c,_1=this;
+if(id=list.get_single_selection()){
+this.preview_timer=window.setTimeout(function(){
+_1.load_contact(id,"show");
+},200);
+}else{
+if(this.env.contentframe){
+this.show_contentframe(false);
+}
+}
+this.enable_command("compose",list.selection.length>0);
+this.enable_command("edit",(id&&this.env.address_sources&&!this.env.address_sources[this.env.source].readonly)?true:false);
+this.enable_command("delete",list.selection.length&&this.env.address_sources&&!this.env.address_sources[this.env.source].readonly);
+return false;
+};
+this.list_contacts=function(src,page){
+var _12f="";
+var _130=window;
+if(!src){
+src=this.env.source;
+}
+if(page&&this.current_page==page&&src==this.env.source){
+return false;
+}
+if(src!=this.env.source){
+page=1;
+this.env.current_page=page;
+this.reset_qsearch();
+}
+this.select_folder(src,this.env.source);
+this.env.source=src;
+if(this.gui_objects.contactslist){
+this.list_contacts_remote(src,page);
+return;
+}
+if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){
+_130=window.frames[this.env.contentframe];
+_12f="&_framed=1";
+}
+if(this.env.search_request){
+_12f+="&_search="+this.env.search_request;
+}
+this.set_busy(true,"loading");
+_130.location.href=this.env.comm_path+(src?"&_source="+urlencode(src):"")+(page?"&_page="+page:"")+_12f;
+};
+this.list_contacts_remote=function(src,page){
+this.contact_list.clear(true);
+this.show_contentframe(false);
+this.enable_command("delete","compose",false);
+var url=(src?"_source="+urlencode(src):"")+(page?(src?"&":"")+"_page="+page:"");
+this.env.source=src;
+if(this.env.search_request){
+url+="&_search="+this.env.search_request;
+}
+this.set_busy(true,"loading");
+this.http_request("list",url,true);
+};
+this.load_contact=function(cid,_135,_136){
+var _137="";
+var _138=window;
+if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){
+_137="&_framed=1";
+_138=window.frames[this.env.contentframe];
+this.show_contentframe(true);
+}else{
+if(_136){
+return false;
+}
+}
+if(_135&&(cid||_135=="add")&&!this.drag_active){
+this.set_busy(true);
+_138.location.href=this.env.comm_path+"&_action="+_135+"&_source="+urlencode(this.env.source)+"&_cid="+urlencode(cid)+_137;
+}
+return true;
+};
+this.copy_contact=function(cid,to){
+if(!cid){
+cid=this.contact_list.get_selection().join(",");
+}
+if(to!=this.env.source&&cid&&this.env.address_sources[to]&&!this.env.address_sources[to].readonly){
+this.http_post("copy","_cid="+urlencode(cid)+"&_source="+urlencode(this.env.source)+"&_to="+urlencode(to));
+}
+};
+this.delete_contacts=function(){
+var _13b=this.contact_list.get_selection();
+if(!(_13b.length||this.env.cid)||!confirm(this.get_label("deletecontactconfirm"))){
+return;
+}
+var _13c=new Array();
+var qs="";
+if(this.env.cid){
+_13c[_13c.length]=this.env.cid;
+}else{
+var id;
+for(var n=0;n<_13b.length;n++){
+id=_13b[n];
+_13c[_13c.length]=id;
+this.contact_list.remove_row(id,(n==_13b.length-1));
+}
+if(_13b.length==1){
+this.show_contentframe(false);
+}
+}
+if(this.env.search_request){
+qs+="&_search="+this.env.search_request;
+}
+this.http_post("delete","_cid="+urlencode(_13c.join(","))+"&_source="+urlencode(this.env.source)+"&_from="+(this.env.action?this.env.action:"")+qs);
+return true;
+};
+this.update_contact_row=function(cid,_141){
+var row;
+if(this.contact_list.rows[cid]&&(row=this.contact_list.rows[cid].obj)){
+for(var c=0;c<_141.length;c++){
+if(row.cells[c]){
+row.cells[c].innerHTML=_141[c];
+}
+}
+return true;
+}
+return false;
+};
+this.init_subscription_list=function(){
+var p=this;
+this.subscription_list=new rcube_list_widget(this.gui_objects.subscriptionlist,{multiselect:false,draggable:true,keyboard:false,toggleselect:true});
+this.subscription_list.addEventListener("select",function(o){
+p.subscription_select(o);
+});
+this.subscription_list.addEventListener("dragstart",function(o){
+p.drag_active=true;
+});
+this.subscription_list.addEventListener("dragend",function(o){
+p.subscription_move_folder(o);
+});
+this.subscription_list.row_init=function(row){
+var _149=row.obj.getElementsByTagName("A");
+if(_149[0]){
+_149[0].onclick=function(){
+p.rename_folder(row.id);
+return false;
+};
+}
+if(_149[1]){
+_149[1].onclick=function(){
+p.delete_folder(row.id);
+return false;
+};
+}
+row.obj.onmouseover=function(){
+p.focus_subscription(row.id);
+};
+row.obj.onmouseout=function(){
+p.unfocus_subscription(row.id);
+};
+};
+this.subscription_list.init();
+};
+this.identity_select=function(list){
+var id;
+if(id=list.get_single_selection()){
+this.load_identity(id,"edit-identity");
+}
+};
+this.load_identity=function(id,_14d){
+if(_14d=="edit-identity"&&(!id||id==this.env.iid)){
+return false;
+}
+var _14e="";
+var _14f=window;
+if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){
+_14e="&_framed=1";
+_14f=window.frames[this.env.contentframe];
+document.getElementById(this.env.contentframe).style.visibility="inherit";
+}
+if(_14d&&(id||_14d=="add-identity")){
+this.set_busy(true);
+_14f.location.href=this.env.comm_path+"&_action="+_14d+"&_iid="+id+_14e;
+}
+return true;
+};
+this.delete_identity=function(id){
+var _151=this.identity_list.get_selection();
+if(!(_151.length||this.env.iid)){
+return;
+}
+if(!id){
+id=this.env.iid?this.env.iid:_151[0];
+}
+this.goto_url("delete-identity","_iid="+id,true);
+return true;
+};
+this.focus_subscription=function(id){
+var row,_154;
+var reg=RegExp("["+RegExp.escape(this.env.delimiter)+"]?[^"+RegExp.escape(this.env.delimiter)+"]+$");
+if(this.drag_active&&this.env.folder&&(row=document.getElementById(id))){
+if(this.env.subscriptionrows[id]&&(_154=this.env.subscriptionrows[id][0])){
+if(this.check_droptarget(_154)&&!this.env.subscriptionrows[this.get_folder_row_id(this.env.folder)][2]&&(_154!=this.env.folder.replace(reg,""))&&(!_154.match(new RegExp("^"+RegExp.escape(this.env.folder+this.env.delimiter))))){
+this.set_env("dstfolder",_154);
+this.set_classname(row,"droptarget",true);
+}
+}else{
+if(this.env.folder.match(new RegExp(RegExp.escape(this.env.delimiter)))){
+this.set_env("dstfolder",this.env.delimiter);
+this.set_classname(this.subscription_list.frame,"droptarget",true);
+}
+}
+}
+};
+this.unfocus_subscription=function(id){
+var row;
+this.set_env("dstfolder",null);
+if(this.env.subscriptionrows[id]&&(row=document.getElementById(id))){
+this.set_classname(row,"droptarget",false);
+}else{
+this.set_classname(this.subscription_list.frame,"droptarget",false);
+}
+};
+this.subscription_select=function(list){
+var id,_15a;
+if((id=list.get_single_selection())&&this.env.subscriptionrows["rcmrow"+id]&&(_15a=this.env.subscriptionrows["rcmrow"+id][0])){
+this.set_env("folder",_15a);
+}else{
+this.set_env("folder",null);
+}
+if(this.gui_objects.createfolderhint){
+this.gui_objects.createfolderhint.innerHTML=this.env.folder?this.get_label("addsubfolderhint"):"";
+}
+};
+this.subscription_move_folder=function(list){
+var reg=RegExp("["+RegExp.escape(this.env.delimiter)+"]?[^"+RegExp.escape(this.env.delimiter)+"]+$");
+if(this.env.folder&&this.env.dstfolder&&(this.env.dstfolder!=this.env.folder)&&(this.env.dstfolder!=this.env.folder.replace(reg,""))){
+var reg=new RegExp("[^"+RegExp.escape(this.env.delimiter)+"]*["+RegExp.escape(this.env.delimiter)+"]","g");
+var _15d=this.env.folder.replace(reg,"");
+var _15e=this.env.dstfolder==this.env.delimiter?_15d:this.env.dstfolder+this.env.delimiter+_15d;
+this.set_busy(true,"foldermoving");
+this.http_post("rename-folder","_folder_oldname="+urlencode(this.env.folder)+"&_folder_newname="+urlencode(_15e),true);
+}
+this.drag_active=false;
+this.unfocus_subscription(this.get_folder_row_id(this.env.dstfolder));
+};
+this.create_folder=function(name){
+if(this.edit_folder){
+this.reset_folder_rename();
+}
+var form;
+if((form=this.gui_objects.editform)&&form.elements["_folder_name"]){
+name=form.elements["_folder_name"].value;
+if(name.indexOf(this.env.delimiter)>=0){
+alert(this.get_label("forbiddencharacter")+" ("+this.env.delimiter+")");
+return false;
+}
+if(this.env.folder&&name!=""){
+name=this.env.folder+this.env.delimiter+name;
+}
+this.set_busy(true,"foldercreating");
+this.http_post("create-folder","_name="+urlencode(name),true);
+}else{
+if(form.elements["_folder_name"]){
+form.elements["_folder_name"].focus();
+}
+}
+};
+this.rename_folder=function(id){
+var temp,row,form;
+if(temp=this.edit_folder){
+this.reset_folder_rename();
+if(temp==id){
+return;
+}
+}
+if(id&&this.env.subscriptionrows[id]&&(row=document.getElementById(id))){
+var reg=new RegExp(".*["+RegExp.escape(this.env.delimiter)+"]");
+this.name_input=document.createElement("INPUT");
+this.name_input.value=this.env.subscriptionrows[id][0].replace(reg,"");
+this.name_input.style.width="100%";
+reg=new RegExp("["+RegExp.escape(this.env.delimiter)+"]?[^"+RegExp.escape(this.env.delimiter)+"]+$");
+this.name_input.__parent=this.env.subscriptionrows[id][0].replace(reg,"");
+this.name_input.onkeypress=function(e){
+rcmail.name_input_keypress(e);
+};
+row.cells[0].replaceChild(this.name_input,row.cells[0].firstChild);
+this.edit_folder=id;
+this.name_input.select();
+if(form=this.gui_objects.editform){
+form.onsubmit=function(){
+return false;
+};
+}
+}
+};
+this.reset_folder_rename=function(){
+var cell=this.name_input?this.name_input.parentNode:null;
+if(cell&&this.edit_folder&&this.env.subscriptionrows[this.edit_folder]){
+cell.innerHTML=this.env.subscriptionrows[this.edit_folder][1];
+}
+this.edit_folder=null;
+};
+this.name_input_keypress=function(e){
+var key=rcube_event.get_keycode(e);
+if(key==13){
+var _16a=this.name_input?this.name_input.value:null;
+if(this.edit_folder&&_16a){
+if(_16a.indexOf(this.env.delimiter)>=0){
+alert(this.get_label("forbiddencharacter")+" ("+this.env.delimiter+")");
+return false;
+}
+if(this.name_input.__parent){
+_16a=this.name_input.__parent+this.env.delimiter+_16a;
+}
+this.set_busy(true,"folderrenaming");
+this.http_post("rename-folder","_folder_oldname="+urlencode(this.env.subscriptionrows[this.edit_folder][0])+"&_folder_newname="+urlencode(_16a),true);
+}
+}else{
+if(key==27){
+this.reset_folder_rename();
+}
+}
+};
+this.delete_folder=function(id){
+var _16c=this.env.subscriptionrows[id][0];
+if(this.edit_folder){
+this.reset_folder_rename();
+}
+if(_16c&&confirm(this.get_label("deletefolderconfirm"))){
+this.set_busy(true,"folderdeleting");
+this.http_post("delete-folder","_mboxes="+urlencode(_16c),true);
+this.set_env("folder",null);
+if(this.gui_objects.createfolderhint){
+this.gui_objects.createfolderhint.innerHTML="";
+}
+}
+};
+this.add_folder_row=function(name,_16e,_16f,_170){
+if(!this.gui_objects.subscriptionlist){
+return false;
+}
+for(var _171 in this.env.subscriptionrows){
+if(this.env.subscriptionrows[_171]!=null&&!this.env.subscriptionrows[_171][2]){
+break;
+}
+}
+var _172,form;
+var _174=this.gui_objects.subscriptionlist.tBodies[0];
+var id="rcmrow"+(_174.childNodes.length+1);
+var _176=this.subscription_list.get_single_selection();
+if(_16f&&_16f.id){
+id=_16f.id;
+_171=_16f.id;
+}
+if(!id||!(_172=document.getElementById(_171))){
+this.goto_url("folders");
+}else{
+var row=this.clone_table_row(_172);
+row.id=id;
+if(_170&&(_170=this.get_folder_row_id(_170))){
+_174.insertBefore(row,document.getElementById(_170));
+}else{
+_174.appendChild(row);
+}
+if(_16f){
+_174.removeChild(_16f);
+}
+}
+this.env.subscriptionrows[row.id]=[name,_16e,0];
+row.cells[0].innerHTML=_16e;
+if(!_16f){
+row.cells[1].innerHTML="*";
+}
+if(!_16f&&row.cells[2]&&row.cells[2].firstChild.tagName=="INPUT"){
+row.cells[2].firstChild.value=name;
+row.cells[2].firstChild.checked=true;
+}
+if(!_16f&&(form=this.gui_objects.editform)){
+if(form.elements["_folder_oldname"]){
+form.elements["_folder_oldname"].options[form.elements["_folder_oldname"].options.length]=new Option(name,name);
+}
+if(form.elements["_folder_name"]){
+form.elements["_folder_name"].value="";
+}
+}
+this.init_subscription_list();
+if(_176&&document.getElementById("rcmrow"+_176)){
+this.subscription_list.select_row(_176);
+}
+if(document.getElementById(id).scrollIntoView){
+document.getElementById(id).scrollIntoView();
+}
+};
+this.replace_folder_row=function(_178,_179,_17a,_17b){
+var id=this.get_folder_row_id(_178);
+var row=document.getElementById(id);
+this.add_folder_row(_179,_17a,row,_17b);
+var form,elm;
+if((form=this.gui_objects.editform)&&(elm=form.elements["_folder_oldname"])){
+for(var i=0;i<elm.options.length;i++){
+if(elm.options[i].value==_178){
+elm.options[i].text=_17a;
+elm.options[i].value=_179;
+break;
+}
+}
+form.elements["_folder_newname"].value="";
+}
+};
+this.remove_folder_row=function(_181){
+var row;
+var id=this.get_folder_row_id(_181);
+if(id&&(row=document.getElementById(id))){
+row.style.display="none";
+}
+var form;
+if((form=this.gui_objects.editform)&&form.elements["_folder_oldname"]){
+for(var i=0;i<form.elements["_folder_oldname"].options.length;i++){
+if(form.elements["_folder_oldname"].options[i].value==_181){
+form.elements["_folder_oldname"].options[i]=null;
+break;
+}
+}
+}
+if(form&&form.elements["_folder_newname"]){
+form.elements["_folder_newname"].value="";
+}
+};
+this.subscribe_folder=function(_186){
+if(_186){
+this.http_post("subscribe","_mbox="+urlencode(_186));
+}
+};
+this.unsubscribe_folder=function(_187){
+if(_187){
+this.http_post("unsubscribe","_mbox="+urlencode(_187));
+}
+};
+this.get_folder_row_id=function(_188){
+for(var id in this.env.subscriptionrows){
+if(this.env.subscriptionrows[id]&&this.env.subscriptionrows[id][0]==_188){
+break;
+}
+}
+return id;
+};
+this.clone_table_row=function(row){
+var cell,td;
+var _18d=document.createElement("TR");
+for(var n=0;n<row.cells.length;n++){
+cell=row.cells[n];
+td=document.createElement("TD");
+if(cell.className){
+td.className=cell.className;
+}
+if(cell.align){
+td.setAttribute("align",cell.align);
+}
+td.innerHTML=cell.innerHTML;
+_18d.appendChild(td);
+}
+return _18d;
+};
+this.set_page_buttons=function(){
+this.enable_command("nextpage",(this.env.pagecount>this.env.current_page));
+this.enable_command("lastpage",(this.env.pagecount>this.env.current_page));
+this.enable_command("previouspage",(this.env.current_page>1));
+this.enable_command("firstpage",(this.env.current_page>1));
+};
+this.set_button=function(_18f,_190){
+var _191=this.buttons[_18f];
+var _192,obj;
+if(!_191||!_191.length){
+return false;
+}
+for(var n=0;n<_191.length;n++){
+_192=_191[n];
+obj=document.getElementById(_192.id);
+if(obj&&_192.type=="image"&&!_192.status){
+_192.pas=obj._original_src?obj._original_src:obj.src;
+if(obj.runtimeStyle&&obj.runtimeStyle.filter&&obj.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/)){
+_192.pas=RegExp.$1;
+}
+}else{
+if(obj&&!_192.status){
+_192.pas=String(obj.className);
+}
+}
+if(obj&&_192.type=="image"&&_192[_190]){
+_192.status=_190;
+obj.src=_192[_190];
+}else{
+if(obj&&typeof (_192[_190])!="undefined"){
+_192.status=_190;
+obj.className=_192[_190];
+}
+}
+if(obj&&_192.type=="input"){
+_192.status=_190;
+obj.disabled=!_190;
+}
+}
+};
+this.set_alttext=function(_195,_196){
+if(!this.buttons[_195]||!this.buttons[_195].length){
+return;
+}
+var _197,obj,link;
+for(var n=0;n<this.buttons[_195].length;n++){
+_197=this.buttons[_195][n];
+obj=document.getElementById(_197.id);
+if(_197.type=="image"&&obj){
+obj.setAttribute("alt",this.get_label(_196));
+if((link=obj.parentNode)&&link.tagName=="A"){
+link.setAttribute("title",this.get_label(_196));
+}
+}else{
+if(obj){
+obj.setAttribute("title",this.get_label(_196));
+}
+}
+}
+};
+this.button_over=function(_19b,id){
+var _19d=this.buttons[_19b];
+var _19e,img;
+if(!_19d||!_19d.length){
+return false;
+}
+for(var n=0;n<_19d.length;n++){
+_19e=_19d[n];
+if(_19e.id==id&&_19e.status=="act"){
+img=document.getElementById(_19e.id);
+if(img&&_19e.over){
+img.src=_19e.over;
+}
+}
+}
+};
+this.button_sel=function(_1a1,id){
+var _1a3=this.buttons[_1a1];
+var _1a4,img;
+if(!_1a3||!_1a3.length){
+return;
+}
+for(var n=0;n<_1a3.length;n++){
+_1a4=_1a3[n];
+if(_1a4.id==id&&_1a4.status=="act"){
+img=document.getElementById(_1a4.id);
+if(img&&_1a4.sel){
+img.src=_1a4.sel;
+}
+}
+}
+};
+this.button_out=function(_1a7,id){
+var _1a9=this.buttons[_1a7];
+var _1aa,img;
+if(!_1a9||!_1a9.length){
+return;
+}
+for(var n=0;n<_1a9.length;n++){
+_1aa=_1a9[n];
+if(_1aa.id==id&&_1aa.status=="act"){
+img=document.getElementById(_1aa.id);
+if(img&&_1aa.act){
+img.src=_1aa.act;
+}
+}
+}
+};
+this.set_classname=function(obj,_1ae,set){
+var reg=new RegExp("s*"+_1ae,"i");
+if(!set&&obj.className.match(reg)){
+obj.className=obj.className.replace(reg,"");
+}else{
+if(set&&!obj.className.match(reg)){
+obj.className+=" "+_1ae;
+}
+}
+};
+this.set_pagetitle=function(_1b1){
+if(_1b1&&document.title){
+document.title=_1b1;
+}
+};
+this.display_message=function(msg,type,hold){
+if(!this.loaded){
+this.pending_message=new Array(msg,type);
+return true;
+}
+if(this.env.framed&&parent.rcmail){
+return parent.rcmail.display_message(msg,type,hold);
+}
+if(!this.gui_objects.message){
+return false;
+}
+if(this.message_timer){
+clearTimeout(this.message_timer);
+}
+var cont=msg;
+if(type){
+cont="<div class=\""+type+"\">"+cont+"</div>";
+}
+var _1b6=this;
+this.gui_objects.message.innerHTML=cont;
+this.gui_objects.message.style.display="block";
+if(type!="loading"){
+this.gui_objects.message.onmousedown=function(){
+_1b6.hide_message();
+return true;
+};
+}
+if(!hold){
+this.message_timer=window.setTimeout(function(){
+_1.hide_message();
+},this.message_time);
+}
+};
+this.hide_message=function(){
+if(this.gui_objects.message){
+this.gui_objects.message.style.display="none";
+this.gui_objects.message.onmousedown=null;
+}
+};
+this.select_folder=function(name,old){
+if(this.gui_objects.folderlist){
+var _1b9,_1ba;
+if((_1b9=this.get_folder_li(old))){
+this.set_classname(_1b9,"selected",false);
+this.set_classname(_1b9,"unfocused",false);
+}
+if((_1ba=this.get_folder_li(name))){
+this.set_classname(_1ba,"unfocused",false);
+this.set_classname(_1ba,"selected",true);
+}
+}
+};
+this.get_folder_li=function(name){
+if(this.gui_objects.folderlist){
+name=String(name).replace(this.identifier_expr,"");
+return document.getElementById("rcmli"+name);
+}
+return null;
+};
+this.set_message_coltypes=function(_1bc){
+this.coltypes=_1bc;
+var cell,col;
+var _1bf=this.gui_objects.messagelist?this.gui_objects.messagelist.tHead:null;
+for(var n=0;_1bf&&n<this.coltypes.length;n++){
+col=this.coltypes[n];
+if((cell=_1bf.rows[0].cells[n+1])&&(col=="from"||col=="to")){
+if(cell.firstChild&&cell.firstChild.tagName=="A"){
+cell.firstChild.innerHTML=this.get_label(this.coltypes[n]);
+cell.firstChild.onclick=function(){
+return rcmail.command("sort",this.__col,this);
+};
+cell.firstChild.__col=col;
+}else{
+cell.innerHTML=this.get_label(this.coltypes[n]);
+}
+cell.id="rcm"+col;
+}else{
+if(col=="subject"&&this.message_list){
+this.message_list.subject_col=n+1;
+}
+}
+}
+};
+this.add_message_row=function(uid,cols,_1c3,_1c4,_1c5){
+if(!this.gui_objects.messagelist||!this.message_list){
+return false;
+}
+var _1c6=this.gui_objects.messagelist.tBodies[0];
+var _1c7=_1c6.rows.length;
+var even=_1c7%2;
+this.env.messages[uid]={deleted:_1c3.deleted?1:0,replied:_1c3.replied?1:0,unread:_1c3.unread?1:0,forwarded:_1c3.forwarded?1:0,flagged:_1c3.flagged?1:0};
+var row=document.createElement("TR");
+row.id="rcmrow"+uid;
+row.className="message"+(even?" even":" odd")+(_1c3.unread?" unread":"")+(_1c3.deleted?" deleted":"")+(_1c3.flagged?" flagged":"");
+if(this.message_list.in_selection(uid)){
+row.className+=" selected";
+}
+var icon=this.env.messageicon;
+if(_1c3.deleted&&this.env.deletedicon){
+icon=this.env.deletedicon;
+}else{
+if(_1c3.replied&&this.env.repliedicon){
+if(_1c3.forwarded&&this.env.forwardedrepliedicon){
+icon=this.env.forwardedrepliedicon;
+}else{
+icon=this.env.repliedicon;
+}
+}else{
+if(_1c3.forwarded&&this.env.forwardedicon){
+icon=this.env.forwardedicon;
+}else{
+if(_1c3.unread&&this.env.unreadicon){
+icon=this.env.unreadicon;
+}
+}
+}
+}
+var col=document.createElement("TD");
+col.className="icon";
+col.innerHTML=icon?"<img src=\""+icon+"\" alt=\"\" />":"";
+row.appendChild(col);
+for(var n=0;n<this.coltypes.length;n++){
+var c=this.coltypes[n];
+col=document.createElement("TD");
+col.className=String(c).toLowerCase();
+if(c=="flag"){
+if(_1c3.flagged&&this.env.flaggedicon){
+col.innerHTML="<img src=\""+this.env.flaggedicon+"\" alt=\"\" />";
+}else{
+if(!_1c3.flagged&&this.env.unflaggedicon){
+col.innerHTML="<img src=\""+this.env.unflaggedicon+"\" alt=\"\" />";
+}
+}
+}else{
+if(c=="attachment"){
+col.innerHTML=_1c4&&this.env.attachmenticon?"<img src=\""+this.env.attachmenticon+"\" alt=\"\" />":" ";
+}else{
+col.innerHTML=cols[c];
+}
+}
+row.appendChild(col);
+}
+this.message_list.insert_row(row,_1c5);
+if(_1c5&&this.env.pagesize&&this.message_list.rowcount>this.env.pagesize){
+var uid=this.message_list.get_last_row();
+this.message_list.remove_row(uid);
+this.message_list.clear_selection(uid);
+}
+};
+this.set_rowcount=function(text){
+if(this.gui_objects.countdisplay){
+this.gui_objects.countdisplay.innerHTML=text;
+}
+this.set_page_buttons();
+};
+this.set_mailboxname=function(_1cf){
+if(this.gui_objects.mailboxname&&_1cf){
+this.gui_objects.mailboxname.innerHTML=_1cf;
+}
+};
+this.set_quota=function(_1d0){
+if(this.gui_objects.quotadisplay&&_1d0){
+this.gui_objects.quotadisplay.innerHTML=_1d0;
+}
+};
+this.set_unread_count=function(mbox,_1d2,_1d3){
+if(!this.gui_objects.mailboxlist){
+return false;
+}
+this.env.unread_counts[mbox]=_1d2;
+this.set_unread_count_display(mbox,_1d3);
+};
+this.set_unread_count_display=function(mbox,_1d5){
+var reg,_1d7,item,_1d9,_1da,div;
+if(item=this.get_folder_li(mbox)){
+_1d9=this.env.unread_counts[mbox]?this.env.unread_counts[mbox]:0;
+_1d7=item.getElementsByTagName("a")[0];
+reg=/\s+\([0-9]+\)$/i;
+_1da=0;
+if((div=item.getElementsByTagName("div")[0])&&div.className.match(/collapsed/)){
+for(var k in this.env.unread_counts){
+if(k.indexOf(mbox+this.env.delimiter)==0){
+_1da+=this.env.unread_counts[k];
+}
+}
+}
+if(_1d9&&_1d7.innerHTML.match(reg)){
+_1d7.innerHTML=_1d7.innerHTML.replace(reg," ("+_1d9+")");
+}else{
+if(_1d9){
+_1d7.innerHTML+=" ("+_1d9+")";
+}else{
+_1d7.innerHTML=_1d7.innerHTML.replace(reg,"");
+}
+}
+reg=new RegExp(RegExp.escape(this.env.delimiter)+"[^"+RegExp.escape(this.env.delimiter)+"]+$");
+if(mbox.match(reg)){
+this.set_unread_count_display(mbox.replace(reg,""),false);
+}
+this.set_classname(item,"unread",(_1d9+_1da)>0?true:false);
+}
+reg=/^\([0-9]+\)\s+/i;
+if(_1d5&&document.title){
+var _1dd=String(document.title);
+var _1de="";
+if(_1d9&&_1dd.match(reg)){
+_1de=_1dd.replace(reg,"("+_1d9+") ");
+}else{
+if(_1d9){
+_1de="("+_1d9+") "+_1dd;
+}else{
+_1de=_1dd.replace(reg,"");
+}
+}
+this.set_pagetitle(_1de);
+}
+};
+this.new_message_focus=function(){
+if(this.env.framed&&window.parent){
+window.parent.focus();
+}else{
+window.focus();
+}
+};
+this.add_contact_row=function(cid,cols,_1e1){
+if(!this.gui_objects.contactslist||!this.gui_objects.contactslist.tBodies[0]){
+return false;
+}
+var _1e2=this.gui_objects.contactslist.tBodies[0];
+var _1e3=_1e2.rows.length;
+var even=_1e3%2;
+var row=document.createElement("TR");
+row.id="rcmrow"+cid;
+row.className="contact "+(even?"even":"odd");
+if(this.contact_list.in_selection(cid)){
+row.className+=" selected";
+}
+for(var c in cols){
+col=document.createElement("TD");
+col.className=String(c).toLowerCase();
+col.innerHTML=cols[c];
+row.appendChild(col);
+}
+this.contact_list.insert_row(row);
+this.enable_command("export",(this.contact_list.rowcount>0));
+};
+this.toggle_prefer_html=function(_1e7){
+var _1e8;
+if(_1e8=document.getElementById("rcmfd_addrbook_show_images")){
+_1e8.disabled=!_1e7.checked;
+}
+};
+this.set_headers=function(_1e9){
+if(this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&_1e9){
+var box=this.gui_objects.all_headers_box;
+box.innerHTML=_1e9;
+box.style.display="block";
+if(this.env.framed&&parent.rcmail){
+parent.rcmail.set_busy(false);
+}else{
+this.set_busy(false);
+}
+}
+};
+this.load_headers=function(elem){
+if(!this.gui_objects.all_headers_row||!this.gui_objects.all_headers_box||!this.env.uid){
+return;
+}
+this.set_classname(elem,"show-headers",false);
+this.set_classname(elem,"hide-headers",true);
+this.gui_objects.all_headers_row.style.display=bw.ie?"block":"table-row";
+elem.onclick=function(){
+rcmail.hide_headers(elem);
+};
+if(!this.gui_objects.all_headers_box.innerHTML){
+this.display_message(this.get_label("loading"),"loading",true);
+this.http_post("headers","_uid="+this.env.uid);
+}
+};
+this.hide_headers=function(elem){
+if(!this.gui_objects.all_headers_row||!this.gui_objects.all_headers_box){
+return;
+}
+this.set_classname(elem,"hide-headers",false);
+this.set_classname(elem,"show-headers",true);
+this.gui_objects.all_headers_row.style.display="none";
+elem.onclick=function(){
+rcmail.load_headers(elem);
+};
+};
+this.html2plain=function(_1ed,id){
+var _1ef=new rcube_http_request();
+var url=this.env.bin_path+"html2text.php";
+var _1f1=this;
+this.set_busy(true,"converting");
+_1ef.onerror=function(o){
+_1f1.http_error(o);
+};
+_1ef.oncomplete=function(o){
+_1f1.set_text_value(o,id);
+};
+_1ef.POST(url,_1ed,"application/octet-stream");
+};
+this.set_text_value=function(_1f4,id){
+this.set_busy(false);
+document.getElementById(id).value=_1f4.get_text();
+};
+this.redirect=function(url,lock){
+if(lock||lock===null){
+this.set_busy(true);
+}
+if(this.env.framed&&window.parent){
+parent.location.href=url;
+}else{
+location.href=url;
+}
+};
+this.goto_url=function(_1f8,_1f9,lock){
+var _1fb=_1f9?"&"+_1f9:"";
+this.redirect(this.env.comm_path+"&_action="+_1f8+_1fb,lock);
+};
+this.http_sockets=new Array();
+this.get_request_obj=function(){
+for(var n=0;n<this.http_sockets.length;n++){
+if(!this.http_sockets[n].busy){
+return this.http_sockets[n];
+}
+}
+var i=this.http_sockets.length;
+this.http_sockets[i]=new rcube_http_request();
+return this.http_sockets[i];
+};
+this.http_request=function(_1fe,_1ff,lock){
+var _201=this.get_request_obj();
+_1ff+=(_1ff?"&":"")+"_remote=1";
+if(bw.safari){
+_1ff+="&_ts="+(new Date().getTime());
+}
+if(_201){
+if(lock){
+this.set_busy(true);
+}
+var rcm=this;
+_201.__lock=lock?true:false;
+_201.__action=_1fe;
+_201.onerror=function(o){
+_1.http_error(o);
+};
+_201.oncomplete=function(o){
+_1.http_response(o);
+};
+_201.GET(this.env.comm_path+"&_action="+_1fe+"&"+_1ff);
+}
+};
+this.http_post=function(_205,_206,lock){
+var _208;
+if(_206&&typeof (_206)=="object"){
+_206._remote=1;
+}else{
+_206+=(_206?"&":"")+"_remote=1";
+}
+if(_208=this.get_request_obj()){
+if(lock){
+this.set_busy(true);
+}
+var rcm=this;
+_208.__lock=lock?true:false;
+_208.__action=_205;
+_208.onerror=function(o){
+rcm.http_error(o);
+};
+_208.oncomplete=function(o){
+rcm.http_response(o);
+};
+_208.POST(this.env.comm_path+"&_action="+_205,_206);
+}
+};
+this.http_response=function(_20c){
+var _20d=_20c.get_header("Content-Type");
+if(_20d){
+_20d=String(_20d).toLowerCase();
+var _20e=_20d.split(";");
+_20d=_20e[0];
+}
+if(_20c.__lock){
+this.set_busy(false);
+}
+if(_20c.get_text()&&(_20d=="text/javascript"||_20d=="application/x-javascript")){
+eval(_20c.get_text());
+}
+switch(_20c.__action){
+case "delete":
+if(this.task=="addressbook"){
+var uid=this.contact_list.get_selection();
+this.enable_command("compose",(uid&&this.contact_list.rows[uid]));
+this.enable_command("delete","edit",(uid&&this.contact_list.rows[uid]&&this.env.address_sources&&!this.env.address_sources[this.env.source].readonly));
+this.enable_command("export",(this.contact_list&&this.contact_list.rowcount>0));
+}
+case "moveto":
+if(this.env.action=="show"){
+this.command("list");
+}else{
+if(this.message_list){
+this.message_list.init();
+}
+}
+break;
+case "purge":
+case "expunge":
+if(!this.env.messagecount&&this.task=="mail"){
+if(this.env.contentframe){
+this.show_contentframe(false);
+}
+this.enable_command("show","reply","reply-all","forward","moveto","delete","mark","viewsource","print","load-attachment","purge","expunge","select-all","select-none","sort",false);
+}
+break;
+case "check-recent":
+case "getunread":
+case "list":
+if(this.task=="mail"){
+if(this.message_list&&_20c.__action=="list"){
+this.msglist_select(this.message_list);
+}
+this.enable_command("show","expunge","select-all","select-none","sort",(this.env.messagecount>0));
+this.enable_command("purge",this.purge_mailbox_test());
+}else{
+if(this.task=="addressbook"){
+this.enable_command("export",(this.contact_list&&this.contact_list.rowcount>0));
+}
+}
+break;
+}
+_20c.reset();
+};
+this.http_error=function(_210){
+if(_210.__lock){
+this.set_busy(false);
+}
+_210.reset();
+_210.__lock=false;
+this.display_message("Unknown Server Error!","error");
+};
+this.send_keep_alive=function(){
+var d=new Date();
+this.http_request("keep-alive","_t="+d.getTime());
+};
+this.check_for_recent=function(_212){
+if(this.busy){
+return;
+}
+if(_212){
+this.set_busy(true,"checkingmail");
+}
+this.http_request("check-recent",(this.env.search_request?"_search="+this.env.search_request+"&":"")+"_t="+(new Date().getTime()),true);
+};
+this.get_single_uid=function(){
+return this.env.uid?this.env.uid:(this.message_list?this.message_list.get_single_selection():null);
+};
+this.get_single_cid=function(){
+return this.env.cid?this.env.cid:(this.contact_list?this.contact_list.get_single_selection():null);
+};
+this.get_caret_pos=function(obj){
+if(typeof (obj.selectionEnd)!="undefined"){
+return obj.selectionEnd;
+}else{
+if(document.selection&&document.selection.createRange){
+var _214=document.selection.createRange();
+if(_214.parentElement()!=obj){
+return 0;
+}
+var gm=_214.duplicate();
+if(obj.tagName=="TEXTAREA"){
+gm.moveToElementText(obj);
+}else{
+gm.expand("textedit");
+}
+gm.setEndPoint("EndToStart",_214);
+var p=gm.text.length;
+return p<=obj.value.length?p:-1;
+}else{
+return obj.value.length;
+}
+}
+};
+this.set_caret2start=function(obj){
+if(obj.createTextRange){
+var _218=obj.createTextRange();
+_218.collapse(true);
+_218.select();
+}else{
+if(obj.setSelectionRange){
+obj.setSelectionRange(0,0);
+}
+}
+obj.focus();
+};
+this.lock_form=function(form,lock){
+if(!form||!form.elements){
+return;
+}
+var type;
+for(var n=0;n<form.elements.length;n++){
+type=form.elements[n];
+if(type=="hidden"){
+continue;
+}
+form.elements[n].disabled=lock;
+}
+};
+};
+function rcube_http_request(){
+this.url="";
+this.busy=false;
+this.xmlhttp=null;
+this.reset=function(){
+this.onloading=function(){
+};
+this.onloaded=function(){
+};
+this.oninteractive=function(){
+};
+this.oncomplete=function(){
+};
+this.onabort=function(){
+};
+this.onerror=function(){
+};
+this.url="";
+this.busy=false;
+this.xmlhttp=null;
+};
+this.build=function(){
+if(window.XMLHttpRequest){
+this.xmlhttp=new XMLHttpRequest();
+}else{
+if(window.ActiveXObject){
+try{
+this.xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
+}
+catch(e){
+this.xmlhttp=null;
+}
+}else{
+}
+}
+};
+this.GET=function(url){
+this.build();
+if(!this.xmlhttp){
+this.onerror(this);
+return false;
+}
+var _ref=this;
+this.url=url;
+this.busy=true;
+this.xmlhttp.onreadystatechange=function(){
+_ref.xmlhttp_onreadystatechange();
+};
+this.xmlhttp.open("GET",url,true);
+this.xmlhttp.setRequestHeader("X-RoundCube-Referer",bw.get_cookie("roundcube_sessid"));
+this.xmlhttp.send(null);
+};
+this.POST=function(url,body,_221){
+if(typeof (_221)=="undefined"){
+_221="application/x-www-form-urlencoded";
+}
+this.build();
+if(!this.xmlhttp){
+this.onerror(this);
+return false;
+}
+var _222=body;
+if(typeof (body)=="object"){
+_222="";
+for(var p in body){
+_222+=(_222?"&":"")+p+"="+urlencode(body[p]);
+}
+}
+var ref=this;
+this.url=url;
+this.busy=true;
+this.xmlhttp.onreadystatechange=function(){
+ref.xmlhttp_onreadystatechange();
+};
+this.xmlhttp.open("POST",url,true);
+this.xmlhttp.setRequestHeader("Content-Type",_221);
+this.xmlhttp.setRequestHeader("X-RoundCube-Referer",bw.get_cookie("roundcube_sessid"));
+this.xmlhttp.send(_222);
+};
+this.xmlhttp_onreadystatechange=function(){
+if(this.xmlhttp.readyState==1){
+this.onloading(this);
+}else{
+if(this.xmlhttp.readyState==2){
+this.onloaded(this);
+}else{
+if(this.xmlhttp.readyState==3){
+this.oninteractive(this);
+}else{
+if(this.xmlhttp.readyState==4){
+try{
+if(this.xmlhttp.status==0){
+this.onabort(this);
+}else{
+if(this.xmlhttp.status==200){
+this.oncomplete(this);
+}else{
+this.onerror(this);
+}
+}
+this.busy=false;
+}
+catch(err){
+this.onerror(this);
+this.busy=false;
+}
+}
+}
+}
+}
+};
+this.get_header=function(name){
+return this.xmlhttp.getResponseHeader(name);
+};
+this.get_text=function(){
+return this.xmlhttp.responseText;
+};
+this.get_xml=function(){
+return this.xmlhttp.responseXML;
+};
+this.reset();
+};
+function call_init(o){
+window.setTimeout("if (window['"+o+"'] && window['"+o+"'].init) { "+o+".init(); }",bw.win?500:200);
+};
--- /dev/null
+/*
+ +-----------------------------------------------------------------------+
+ | RoundCube Webmail Client Script |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2005-2008, RoundCube Dev, - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ +-----------------------------------------------------------------------+
+ | Authors: Thomas Bruederli <roundcube@gmail.com> |
+ | Charles McNulty <charles@charlesmcnulty.com> |
+ +-----------------------------------------------------------------------+
+ | Requires: common.js, list.js |
+ +-----------------------------------------------------------------------+
+
+ $Id: app.js 2203 2008-12-30 15:22:35Z thomasb $
+*/
+
+
+var rcube_webmail_client;
+
+function rcube_webmail()
+ {
+ this.env = new Object();
+ this.labels = new Object();
+ this.buttons = new Object();
+ this.gui_objects = new Object();
+ this.commands = new Object();
+ this.onloads = new Array();
+
+ // create protected reference to myself
+ rcube_webmail_client = this;
+ this.ref = 'rcube_webmail_client';
+ var ref = this;
+
+ // webmail client settings
+ this.dblclick_time = 500;
+ this.message_time = 3000;
+
+ this.identifier_expr = new RegExp('[^0-9a-z\-_]', 'gi');
+
+ // mimetypes supported by the browser (default settings)
+ this.mimetypes = new Array('text/plain', 'text/html', 'text/xml',
+ 'image/jpeg', 'image/gif', 'image/png',
+ 'application/x-javascript', 'application/pdf',
+ 'application/x-shockwave-flash');
+
+ // default environment vars
+ this.env.keep_alive = 60; // seconds
+ this.env.request_timeout = 180; // seconds
+ this.env.draft_autosave = 0; // seconds
+ this.env.comm_path = './';
+ this.env.bin_path = './bin/';
+ this.env.blankpage = 'program/blank.gif';
+
+
+ // set environment variable(s)
+ this.set_env = function(p, value)
+ {
+ if (p != null && typeof(p) == 'object' && !value)
+ for (var n in p)
+ this.env[n] = p[n];
+ else
+ this.env[p] = value;
+ };
+
+ // add a localized label to the client environment
+ this.add_label = function(key, value)
+ {
+ this.labels[key] = value;
+ };
+
+ // add a button to the button list
+ this.register_button = function(command, id, type, act, sel, over)
+ {
+ if (!this.buttons[command])
+ this.buttons[command] = new Array();
+
+ var button_prop = {id:id, type:type};
+ if (act) button_prop.act = act;
+ if (sel) button_prop.sel = sel;
+ if (over) button_prop.over = over;
+
+ this.buttons[command][this.buttons[command].length] = button_prop;
+ };
+
+ // register a specific gui object
+ this.gui_object = function(name, id)
+ {
+ this.gui_objects[name] = id;
+ };
+
+ // execute the given script on load
+ this.add_onload = function(f)
+ {
+ this.onloads[this.onloads.length] = f;
+ };
+
+ // initialize webmail client
+ this.init = function()
+ {
+ var p = this;
+ this.task = this.env.task;
+
+ // check browser
+ if (!bw.dom || !bw.xmlhttp_test())
+ {
+ this.goto_url('error', '_code=0x199');
+ return;
+ }
+
+ // find all registered gui objects
+ for (var n in this.gui_objects)
+ this.gui_objects[n] = rcube_find_object(this.gui_objects[n]);
+
+ // tell parent window that this frame is loaded
+ if (this.env.framed && parent.rcmail && parent.rcmail.set_busy)
+ parent.rcmail.set_busy(false);
+
+ // enable general commands
+ this.enable_command('logout', 'mail', 'addressbook', 'settings', true);
+
+ if (this.env.permaurl)
+ this.enable_command('permaurl', true);
+
+ switch (this.task)
+ {
+ case 'mail':
+ if (this.gui_objects.messagelist)
+ {
+ this.message_list = new rcube_list_widget(this.gui_objects.messagelist, {multiselect:true, draggable:true, keyboard:true, dblclick_time:this.dblclick_time});
+ this.message_list.row_init = function(o){ p.init_message_row(o); };
+ this.message_list.addEventListener('dblclick', function(o){ p.msglist_dbl_click(o); });
+ this.message_list.addEventListener('keypress', function(o){ p.msglist_keypress(o); });
+ this.message_list.addEventListener('select', function(o){ p.msglist_select(o); });
+ this.message_list.addEventListener('dragstart', function(o){ p.drag_start(o); });
+ this.message_list.addEventListener('dragmove', function(o, e){ p.drag_move(e); });
+ this.message_list.addEventListener('dragend', function(o){ p.drag_active = false; });
+
+ this.message_list.init();
+ this.enable_command('toggle_status', 'toggle_flag', true);
+
+ if (this.gui_objects.mailcontframe)
+ {
+ this.gui_objects.mailcontframe.onmousedown = function(e){ return p.click_on_list(e); };
+ document.onmouseup = function(e){ return p.doc_mouse_up(e); };
+ }
+ else
+ this.message_list.focus();
+ }
+
+ if (this.env.coltypes)
+ this.set_message_coltypes(this.env.coltypes);
+
+ // enable mail commands
+ this.enable_command('list', 'checkmail', 'compose', 'add-contact', 'search', 'reset-search', 'collapse-folder', true);
+
+ if (this.env.search_text != null && document.getElementById('quicksearchbox') != null)
+ document.getElementById('quicksearchbox').value = this.env.search_text;
+
+ if (this.env.action=='show' || this.env.action=='preview')
+ {
+ this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete', 'mark', 'viewsource', 'print', 'load-attachment', 'load-headers', true);
+ if (this.env.next_uid)
+ {
+ this.enable_command('nextmessage', true);
+ this.enable_command('lastmessage', true);
+ }
+ if (this.env.prev_uid)
+ {
+ this.enable_command('previousmessage', true);
+ this.enable_command('firstmessage', true);
+ }
+ }
+
+ if (this.env.trash_mailbox && this.env.mailbox != this.env.trash_mailbox)
+ this.set_alttext('delete', 'movemessagetotrash');
+
+ // make preview/message frame visible
+ if (this.env.action == 'preview' && this.env.framed && parent.rcmail)
+ {
+ this.enable_command('compose', 'add-contact', false);
+ parent.rcmail.show_contentframe(true);
+ }
+
+ if ((this.env.action=='show' || this.env.action=='preview') && this.env.blockedobjects)
+ {
+ if (this.gui_objects.remoteobjectsmsg)
+ this.gui_objects.remoteobjectsmsg.style.display = 'block';
+ this.enable_command('load-images', 'always-load', true);
+ }
+
+ if (this.env.action=='compose')
+ {
+ this.enable_command('add-attachment', 'send-attachment', 'remove-attachment', 'send', true);
+ if (this.env.spellcheck)
+ {
+ this.env.spellcheck.spelling_state_observer = function(s){ ref.set_spellcheck_state(s); };
+ this.set_spellcheck_state('ready');
+ if (rcube_find_object('_is_html').value == '1')
+ this.display_spellcheck_controls(false);
+ }
+ if (this.env.drafts_mailbox)
+ this.enable_command('savedraft', true);
+
+ document.onmouseup = function(e){ return p.doc_mouse_up(e); };
+ }
+
+ if (this.env.messagecount)
+ this.enable_command('select-all', 'select-none', 'expunge', true);
+
+ if (this.purge_mailbox_test())
+ this.enable_command('purge', true);
+
+ this.set_page_buttons();
+
+ // init message compose form
+ if (this.env.action=='compose')
+ this.init_messageform();
+
+ // show printing dialog
+ if (this.env.action=='print')
+ window.print();
+
+ // get unread count for each mailbox
+ if (this.gui_objects.mailboxlist)
+ {
+ this.env.unread_counts = {};
+ this.gui_objects.folderlist = this.gui_objects.mailboxlist;
+ this.http_request('getunread', '');
+ }
+
+ // ask user to send MDN
+ if (this.env.mdn_request && this.env.uid)
+ {
+ var mdnurl = '_uid='+this.env.uid+'&_mbox='+urlencode(this.env.mailbox);
+ if (confirm(this.get_label('mdnrequest')))
+ this.http_post('sendmdn', mdnurl);
+ else
+ this.http_post('mark', mdnurl+'&_flag=mdnsent');
+ }
+
+ break;
+
+
+ case 'addressbook':
+ if (this.gui_objects.contactslist)
+ {
+ this.contact_list = new rcube_list_widget(this.gui_objects.contactslist, {multiselect:true, draggable:true, keyboard:true});
+ this.contact_list.addEventListener('keypress', function(o){ p.contactlist_keypress(o); });
+ this.contact_list.addEventListener('select', function(o){ p.contactlist_select(o); });
+ this.contact_list.addEventListener('dragstart', function(o){ p.drag_start(o); });
+ this.contact_list.addEventListener('dragmove', function(o, e){ p.drag_move(e); });
+ this.contact_list.addEventListener('dragend', function(o){ p.drag_active = false; });
+ this.contact_list.init();
+
+ if (this.env.cid)
+ this.contact_list.highlight_row(this.env.cid);
+
+ if (this.gui_objects.contactslist.parentNode)
+ {
+ this.gui_objects.contactslist.parentNode.onmousedown = function(e){ return p.click_on_list(e); };
+ document.onmouseup = function(e){ return p.doc_mouse_up(e); };
+ }
+ else
+ this.contact_list.focus();
+ }
+
+ this.set_page_buttons();
+
+ if (this.env.address_sources && this.env.address_sources[this.env.source] && !this.env.address_sources[this.env.source].readonly)
+ this.enable_command('add', true);
+
+ if (this.env.cid)
+ this.enable_command('show', 'edit', true);
+
+ if ((this.env.action=='add' || this.env.action=='edit') && this.gui_objects.editform)
+ this.enable_command('save', true);
+ else
+ this.enable_command('search', 'reset-search', 'moveto', 'import', true);
+
+ if (this.contact_list && this.contact_list.rowcount > 0)
+ this.enable_command('export', true);
+
+ this.enable_command('list', true);
+ break;
+
+
+ case 'settings':
+ this.enable_command('preferences', 'identities', 'save', 'folders', true);
+
+ if (this.env.action=='identities' || this.env.action=='edit-identity' || this.env.action=='add-identity') {
+ this.enable_command('add', this.env.identities_level < 2);
+ this.enable_command('delete', 'edit', true);
+ }
+
+ if (this.env.action=='edit-identity' || this.env.action=='add-identity')
+ this.enable_command('save', true);
+
+ if (this.env.action=='folders')
+ this.enable_command('subscribe', 'unsubscribe', 'create-folder', 'rename-folder', 'delete-folder', true);
+
+ if (this.gui_objects.identitieslist)
+ {
+ this.identity_list = new rcube_list_widget(this.gui_objects.identitieslist, {multiselect:false, draggable:false, keyboard:false});
+ this.identity_list.addEventListener('select', function(o){ p.identity_select(o); });
+ this.identity_list.init();
+ this.identity_list.focus();
+
+ if (this.env.iid)
+ this.identity_list.highlight_row(this.env.iid);
+ }
+
+ if (this.gui_objects.subscriptionlist)
+ this.init_subscription_list();
+
+ break;
+
+ case 'login':
+ var input_user = rcube_find_object('rcmloginuser');
+ var input_pass = rcube_find_object('rcmloginpwd');
+ var input_tz = rcube_find_object('rcmlogintz');
+
+ if (input_user)
+ input_user.onkeyup = function(e){ return rcmail.login_user_keyup(e); };
+ if (input_user && input_user.value=='')
+ input_user.focus();
+ else if (input_pass)
+ input_pass.focus();
+
+ // detect client timezone
+ if (input_tz)
+ input_tz.value = new Date().getTimezoneOffset() / -60;
+
+ this.enable_command('login', true);
+ break;
+
+ default:
+ break;
+ }
+
+ // enable basic commands
+ this.enable_command('logout', true);
+
+ // flag object as complete
+ this.loaded = true;
+
+ // show message
+ if (this.pending_message)
+ this.display_message(this.pending_message[0], this.pending_message[1]);
+
+ // start keep-alive interval
+ this.start_keepalive();
+
+ // execute all foreign onload scripts
+ for (var i=0; i<this.onloads.length; i++)
+ {
+ if (typeof(this.onloads[i]) == 'string')
+ eval(this.onloads[i]);
+ else if (typeof(this.onloads[i]) == 'function')
+ this.onloads[i]();
+ }
+ };
+
+ // start interval for keep-alive/recent_check signal
+ this.start_keepalive = function()
+ {
+ if (this.env.keep_alive && !this.env.framed && this.task=='mail' && this.gui_objects.mailboxlist)
+ this._int = setInterval(function(){ ref.check_for_recent(false); }, this.env.keep_alive * 1000);
+ else if (this.env.keep_alive && !this.env.framed && this.task!='login')
+ this._int = setInterval(function(){ ref.send_keep_alive(); }, this.env.keep_alive * 1000);
+ }
+
+ this.init_message_row = function(row)
+ {
+ var uid = row.uid;
+ if (uid && this.env.messages[uid])
+ {
+ row.deleted = this.env.messages[uid].deleted ? true : false;
+ row.unread = this.env.messages[uid].unread ? true : false;
+ row.replied = this.env.messages[uid].replied ? true : false;
+ row.flagged = this.env.messages[uid].flagged ? true : false;
+ row.forwarded = this.env.messages[uid].forwarded ? true : false;
+ }
+
+ // set eventhandler to message icon
+ if ((row.icon = row.obj.cells[0].childNodes[0]) && row.icon.nodeName=='IMG')
+ {
+ var p = this;
+ row.icon.id = 'msgicn_'+row.uid;
+ row.icon._row = row.obj;
+ row.icon.onmousedown = function(e) { p.command('toggle_status', this); };
+ }
+
+ // global variable 'flagged_col' may be not defined yet
+ if (!this.env.flagged_col && this.env.coltypes)
+ {
+ var found;
+ if((found = find_in_array('flag', this.env.coltypes)) >= 0)
+ this.set_env('flagged_col', found+1);
+ }
+
+ // set eventhandler to flag icon, if icon found
+ if (this.env.flagged_col && (row.flagged_icon = row.obj.cells[this.env.flagged_col].childNodes[0])
+ && row.flagged_icon.nodeName=='IMG')
+ {
+ var p = this;
+ row.flagged_icon.id = 'flaggedicn_'+row.uid;
+ row.flagged_icon._row = row.obj;
+ row.flagged_icon.onmousedown = function(e) { p.command('toggle_flag', this); };
+ }
+ };
+
+ // init message compose form: set focus and eventhandlers
+ this.init_messageform = function()
+ {
+ if (!this.gui_objects.messageform)
+ return false;
+
+ //this.messageform = this.gui_objects.messageform;
+ var input_from = rcube_find_object('_from');
+ var input_to = rcube_find_object('_to');
+ var input_cc = rcube_find_object('_cc');
+ var input_bcc = rcube_find_object('_bcc');
+ var input_replyto = rcube_find_object('_replyto');
+ var input_subject = rcube_find_object('_subject');
+ var input_message = rcube_find_object('_message');
+ var draftid = rcube_find_object('_draft_saveid');
+
+ // init live search events
+ if (input_to)
+ this.init_address_input_events(input_to);
+ if (input_cc)
+ this.init_address_input_events(input_cc);
+ if (input_bcc)
+ this.init_address_input_events(input_bcc);
+
+ // add signature according to selected identity
+ if (input_from && input_from.type=='select-one' && (!draftid || draftid.value=='')
+ // if we have HTML editor, signature is added in callback
+ && rcube_find_object('_is_html').value != '1')
+ {
+ this.change_identity(input_from);
+ }
+
+ if (input_to && input_to.value=='')
+ input_to.focus();
+ else if (input_subject && input_subject.value=='')
+ input_subject.focus();
+ else if (input_message)
+ this.set_caret2start(input_message);
+
+ // get summary of all field values
+ this.compose_field_hash(true);
+
+ // start the auto-save timer
+ this.auto_save_start();
+ };
+
+ this.init_address_input_events = function(obj)
+ {
+ var handler = function(e){ return ref.ksearch_keypress(e,this); };
+
+ if (obj.addEventListener)
+ obj.addEventListener(bw.safari ? 'keydown' : 'keypress', handler, false);
+ else
+ obj.onkeydown = handler;
+
+ obj.setAttribute('autocomplete', 'off');
+ };
+
+
+ /*********************************************************/
+ /********* client command interface *********/
+ /*********************************************************/
+
+ // execute a specific command on the web client
+ this.command = function(command, props, obj)
+ {
+ if (obj && obj.blur)
+ obj.blur();
+
+ if (this.busy)
+ return false;
+
+ // command not supported or allowed
+ if (!this.commands[command])
+ {
+ // pass command to parent window
+ if (this.env.framed && parent.rcmail && parent.rcmail.command)
+ parent.rcmail.command(command, props);
+
+ return false;
+ }
+
+ // check input before leaving compose step
+ if (this.task=='mail' && this.env.action=='compose' && (command=='list' || command=='mail' || command=='addressbook' || command=='settings'))
+ {
+ if (this.cmp_hash != this.compose_field_hash() && !confirm(this.get_label('notsentwarning')))
+ return false;
+ }
+
+ // process command
+ switch (command)
+ {
+ case 'login':
+ if (this.gui_objects.loginform)
+ this.gui_objects.loginform.submit();
+ break;
+
+ case 'logout':
+ this.goto_url('logout', '', true);
+ break;
+
+ // commands to switch task
+ case 'mail':
+ case 'addressbook':
+ case 'settings':
+ this.switch_task(command);
+ break;
+
+ case 'permaurl':
+ if (obj && obj.href && obj.target)
+ return true;
+ else if (this.env.permaurl)
+ parent.location.href = this.env.permaurl;
+ break;
+
+ // misc list commands
+ case 'list':
+ if (this.task=='mail')
+ {
+ if (this.env.search_request<0 || (props != '' && (this.env.search_request && props != this.env.mailbox)))
+ this.reset_qsearch();
+
+ this.list_mailbox(props);
+
+ if (this.env.trash_mailbox)
+ this.set_alttext('delete', this.env.mailbox != this.env.trash_mailbox ? 'movemessagetotrash' : 'deletemessage');
+ }
+ else if (this.task=='addressbook')
+ {
+ if (this.env.search_request<0 || (this.env.search_request && props != this.env.source))
+ this.reset_qsearch();
+
+ this.list_contacts(props);
+ this.enable_command('add', (this.env.address_sources && !this.env.address_sources[props].readonly));
+ }
+ break;
+
+
+ case 'load-headers':
+ this.load_headers(obj);
+ break;
+
+
+ case 'sort':
+ // get the type of sorting
+ var a_sort = props.split('_');
+ var sort_col = a_sort[0];
+ var sort_order = a_sort[1] ? a_sort[1].toUpperCase() : null;
+ var header;
+
+ // no sort order specified: toggle
+ if (sort_order==null)
+ {
+ if (this.env.sort_col==sort_col)
+ sort_order = this.env.sort_order=='ASC' ? 'DESC' : 'ASC';
+ else
+ sort_order = this.env.sort_order;
+ }
+
+ if (this.env.sort_col==sort_col && this.env.sort_order==sort_order)
+ break;
+
+ // set table header class
+ if (header = document.getElementById('rcm'+this.env.sort_col))
+ this.set_classname(header, 'sorted'+(this.env.sort_order.toUpperCase()), false);
+ if (header = document.getElementById('rcm'+sort_col))
+ this.set_classname(header, 'sorted'+sort_order, true);
+
+ // save new sort properties
+ this.env.sort_col = sort_col;
+ this.env.sort_order = sort_order;
+
+ // reload message list
+ this.list_mailbox('', '', sort_col+'_'+sort_order);
+ break;
+
+ case 'nextpage':
+ this.list_page('next');
+ break;
+
+ case 'lastpage':
+ this.list_page('last');
+ break;
+
+ case 'previouspage':
+ this.list_page('prev');
+ break;
+
+ case 'firstpage':
+ this.list_page('first');
+ break;
+
+ case 'expunge':
+ if (this.env.messagecount)
+ this.expunge_mailbox(this.env.mailbox);
+ break;
+
+ case 'purge':
+ case 'empty-mailbox':
+ if (this.env.messagecount)
+ this.purge_mailbox(this.env.mailbox);
+ break;
+
+
+ // common commands used in multiple tasks
+ case 'show':
+ if (this.task=='mail')
+ {
+ var uid = this.get_single_uid();
+ if (uid && (!this.env.uid || uid != this.env.uid))
+ {
+ if (this.env.mailbox == this.env.drafts_mailbox)
+ this.goto_url('compose', '_draft_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true);
+ else
+ this.show_message(uid);
+ }
+ }
+ else if (this.task=='addressbook')
+ {
+ var cid = props ? props : this.get_single_cid();
+ if (cid && !(this.env.action=='show' && cid==this.env.cid))
+ this.load_contact(cid, 'show');
+ }
+ break;
+
+ case 'add':
+ if (this.task=='addressbook')
+ this.load_contact(0, 'add');
+ else if (this.task=='settings')
+ {
+ this.identity_list.clear_selection();
+ this.load_identity(0, 'add-identity');
+ }
+ break;
+
+ case 'edit':
+ var cid;
+ if (this.task=='addressbook' && (cid = this.get_single_cid()))
+ this.load_contact(cid, 'edit');
+ else if (this.task=='settings' && props)
+ this.load_identity(props, 'edit-identity');
+ break;
+
+ case 'save-identity':
+ case 'save':
+ if (this.gui_objects.editform)
+ {
+ var input_pagesize = rcube_find_object('_pagesize');
+ var input_name = rcube_find_object('_name');
+ var input_email = rcube_find_object('_email');
+
+ // user prefs
+ if (input_pagesize && isNaN(parseInt(input_pagesize.value)))
+ {
+ alert(this.get_label('nopagesizewarning'));
+ input_pagesize.focus();
+ break;
+ }
+ // contacts/identities
+ else
+ {
+ if (input_name && input_name.value == '')
+ {
+ alert(this.get_label('nonamewarning'));
+ input_name.focus();
+ break;
+ }
+ else if (input_email && !rcube_check_email(input_email.value))
+ {
+ alert(this.get_label('noemailwarning'));
+ input_email.focus();
+ break;
+ }
+ }
+
+ this.gui_objects.editform.submit();
+ }
+ break;
+
+ case 'delete':
+ // mail task
+ if (this.task=='mail')
+ this.delete_messages();
+ // addressbook task
+ else if (this.task=='addressbook')
+ this.delete_contacts();
+ // user settings task
+ else if (this.task=='settings')
+ this.delete_identity();
+ break;
+
+
+ // mail task commands
+ case 'move':
+ case 'moveto':
+ if (this.task == 'mail')
+ this.move_messages(props);
+ else if (this.task == 'addressbook' && this.drag_active)
+ this.copy_contact(null, props);
+ break;
+
+ case 'mark':
+ if (props)
+ this.mark_message(props);
+ break;
+
+ case 'toggle_status':
+ if (props && !props._row)
+ break;
+
+ var uid;
+ var flag = 'read';
+
+ if (props._row.uid)
+ {
+ uid = props._row.uid;
+
+ // toggle read/unread
+ if (this.message_list.rows[uid].deleted) {
+ flag = 'undelete';
+ } else if (!this.message_list.rows[uid].unread)
+ flag = 'unread';
+ }
+
+ this.mark_message(flag, uid);
+ break;
+
+ case 'toggle_flag':
+ if (props && !props._row)
+ break;
+
+ var uid;
+ var flag = 'flagged';
+
+ if (props._row.uid)
+ {
+ uid = props._row.uid;
+ // toggle flagged/unflagged
+ if (this.message_list.rows[uid].flagged)
+ flag = 'unflagged';
+ }
+ this.mark_message(flag, uid);
+ break;
+
+ case 'always-load':
+ if (this.env.uid && this.env.sender) {
+ this.add_contact(urlencode(this.env.sender));
+ window.setTimeout(function(){ ref.command('load-images'); }, 300);
+ break;
+ }
+
+ case 'load-images':
+ if (this.env.uid)
+ this.show_message(this.env.uid, true, this.env.action=='preview');
+ break;
+
+ case 'load-attachment':
+ var qstring = '_mbox='+urlencode(this.env.mailbox)+'&_uid='+this.env.uid+'&_part='+props.part;
+
+ // open attachment in frame if it's of a supported mimetype
+ if (this.env.uid && props.mimetype && find_in_array(props.mimetype, this.mimetypes)>=0)
+ {
+ if (props.mimetype == 'text/html')
+ qstring += '&_safe=1';
+ this.attachment_win = window.open(this.env.comm_path+'&_action=get&'+qstring+'&_frame=1', 'rcubemailattachment');
+ if (this.attachment_win)
+ {
+ window.setTimeout(function(){ ref.attachment_win.focus(); }, 10);
+ break;
+ }
+ }
+
+ this.goto_url('get', qstring+'&_download=1', false);
+ break;
+
+ case 'select-all':
+ this.message_list.select_all(props);
+ break;
+
+ case 'select-none':
+ this.message_list.clear_selection();
+ break;
+
+ case 'nextmessage':
+ if (this.env.next_uid)
+ this.show_message(this.env.next_uid, false, this.env.action=='preview');
+ break;
+
+ case 'lastmessage':
+ if (this.env.last_uid)
+ this.show_message(this.env.last_uid);
+ break;
+
+ case 'previousmessage':
+ if (this.env.prev_uid)
+ this.show_message(this.env.prev_uid, false, this.env.action=='preview');
+ break;
+
+ case 'firstmessage':
+ if (this.env.first_uid)
+ this.show_message(this.env.first_uid);
+ break;
+
+ case 'checkmail':
+ this.check_for_recent(true);
+ break;
+
+ case 'compose':
+ var url = this.env.comm_path+'&_action=compose';
+
+ if (this.task=='mail')
+ {
+ url += '&_mbox='+urlencode(this.env.mailbox);
+
+ if (this.env.mailbox==this.env.drafts_mailbox)
+ {
+ var uid;
+ if (uid = this.get_single_uid())
+ url += '&_draft_uid='+uid;
+ }
+ else if (props)
+ url += '&_to='+urlencode(props);
+ }
+ // modify url if we're in addressbook
+ else if (this.task=='addressbook')
+ {
+ // switch to mail compose step directly
+ if (props && props.indexOf('@') > 0)
+ {
+ url = this.get_task_url('mail', url);
+ this.redirect(url + '&_to='+urlencode(props));
+ break;
+ }
+
+ // use contact_id passed as command parameter
+ var a_cids = new Array();
+ if (props)
+ a_cids[a_cids.length] = props;
+ // get selected contacts
+ else if (this.contact_list)
+ {
+ var selection = this.contact_list.get_selection();
+ for (var n=0; n<selection.length; n++)
+ a_cids[a_cids.length] = selection[n];
+ }
+
+ if (a_cids.length)
+ this.http_request('mailto', '_cid='+urlencode(a_cids.join(','))+'&_source='+urlencode(this.env.source), true);
+
+ break;
+ }
+
+ // don't know if this is necessary...
+ url = url.replace(/&_framed=1/, "");
+
+ this.redirect(url);
+ break;
+
+ case 'spellcheck':
+ if (window.tinyMCE && tinyMCE.get('compose-body')) {
+ tinyMCE.execCommand('mceSpellCheck', true);
+ }
+ else if (this.env.spellcheck && this.env.spellcheck.spellCheck && this.spellcheck_ready) {
+ this.env.spellcheck.spellCheck(this.env.spellcheck.check_link);
+ this.set_spellcheck_state('checking');
+ }
+ break;
+
+ case 'savedraft':
+ // Reset the auto-save timer
+ self.clearTimeout(this.save_timer);
+
+ if (!this.gui_objects.messageform)
+ break;
+
+ // if saving Drafts is disabled in main.inc.php
+ // or if compose form did not change
+ if (!this.env.drafts_mailbox || this.cmp_hash == this.compose_field_hash())
+ break;
+
+ this.set_busy(true, 'savingmessage');
+ var form = this.gui_objects.messageform;
+ form.target = "savetarget";
+ form._draft.value = '1';
+ form.submit();
+ break;
+
+ case 'send':
+ if (!this.gui_objects.messageform)
+ break;
+
+ if (!this.check_compose_input())
+ break;
+
+ // Reset the auto-save timer
+ self.clearTimeout(this.save_timer);
+
+ // all checks passed, send message
+ this.set_busy(true, 'sendingmessage');
+ var form = this.gui_objects.messageform;
+ form.target = "savetarget";
+ form._draft.value = '';
+ form.submit();
+
+ // clear timeout (sending could take longer)
+ clearTimeout(this.request_timer);
+ break;
+
+ case 'add-attachment':
+ this.show_attachment_form(true);
+
+ case 'send-attachment':
+ // Reset the auto-save timer
+ self.clearTimeout(this.save_timer);
+
+ this.upload_file(props)
+ break;
+
+ case 'remove-attachment':
+ this.remove_attachment(props);
+ break;
+
+ case 'reply-all':
+ case 'reply':
+ var uid;
+ if (uid = this.get_single_uid())
+ this.goto_url('compose', '_reply_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(command=='reply-all' ? '&_all=1' : ''), true);
+ break;
+
+ case 'forward':
+ var uid;
+ if (uid = this.get_single_uid())
+ this.goto_url('compose', '_forward_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true);
+ break;
+
+ case 'print':
+ var uid;
+ if (uid = this.get_single_uid())
+ {
+ ref.printwin = window.open(this.env.comm_path+'&_action=print&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(this.env.safemode ? '&_safe=1' : ''));
+ if (this.printwin)
+ {
+ window.setTimeout(function(){ ref.printwin.focus(); }, 20);
+ if (this.env.action != 'show')
+ this.mark_message('read', uid);
+ }
+ }
+ break;
+
+ case 'viewsource':
+ var uid;
+ if (uid = this.get_single_uid())
+ {
+ ref.sourcewin = window.open(this.env.comm_path+'&_action=viewsource&_uid='+this.env.uid+'&_mbox='+urlencode(this.env.mailbox));
+ if (this.sourcewin)
+ window.setTimeout(function(){ ref.sourcewin.focus(); }, 20);
+ }
+ break;
+
+ case 'add-contact':
+ this.add_contact(props);
+ break;
+
+ // quicksearch
+ case 'search':
+ if (!props && this.gui_objects.qsearchbox)
+ props = this.gui_objects.qsearchbox.value;
+ if (props)
+ {
+ this.qsearch(props);
+ break;
+ }
+
+ // reset quicksearch
+ case 'reset-search':
+ var s = this.env.search_request;
+ this.reset_qsearch();
+
+ if (s && this.env.mailbox)
+ this.list_mailbox(this.env.mailbox);
+ else if (s && this.task == 'addressbook')
+ this.list_contacts(this.env.source);
+ break;
+
+ case 'import':
+ if (this.env.action == 'import' && this.gui_objects.importform) {
+ var file = document.getElementById('rcmimportfile');
+ if (file && !file.value) {
+ alert(this.get_label('selectimportfile'));
+ break;
+ }
+ this.gui_objects.importform.submit();
+ this.set_busy(true, 'importwait');
+ this.lock_form(this.gui_objects.importform, true);
+ }
+ else
+ this.goto_url('import');
+ break;
+
+ case 'export':
+ if (this.contact_list.rowcount > 0) {
+ var add_url = (this.env.source ? '_source='+urlencode(this.env.source)+'&' : '');
+ if (this.env.search_request)
+ add_url += '_search='+this.env.search_request;
+
+ this.goto_url('export', add_url);
+ }
+ break;
+
+ // collapse/expand folder
+ case 'collapse-folder':
+ if (props)
+ this.collapse_folder(props);
+ break;
+
+ // user settings commands
+ case 'preferences':
+ this.goto_url('');
+ break;
+
+ case 'identities':
+ this.goto_url('identities');
+ break;
+
+ case 'delete-identity':
+ this.delete_identity();
+
+ case 'folders':
+ this.goto_url('folders');
+ break;
+
+ case 'subscribe':
+ this.subscribe_folder(props);
+ break;
+
+ case 'unsubscribe':
+ this.unsubscribe_folder(props);
+ break;
+
+ case 'create-folder':
+ this.create_folder(props);
+ break;
+
+ case 'rename-folder':
+ this.rename_folder(props);
+ break;
+
+ case 'delete-folder':
+ this.delete_folder(props);
+ break;
+
+ }
+
+ return obj ? false : true;
+ };
+
+ // set command enabled or disabled
+ this.enable_command = function()
+ {
+ var args = arguments;
+ if(!args.length) return -1;
+
+ var command;
+ var enable = args[args.length-1];
+
+ for(var n=0; n<args.length-1; n++)
+ {
+ command = args[n];
+ this.commands[command] = enable;
+ this.set_button(command, (enable ? 'act' : 'pas'));
+ }
+ return true;
+ };
+
+ // lock/unlock interface
+ this.set_busy = function(a, message)
+ {
+ if (a && message)
+ {
+ var msg = this.get_label(message);
+ if (msg==message)
+ msg = 'Loading...';
+
+ this.display_message(msg, 'loading', true);
+ }
+ else if (!a)
+ this.hide_message();
+
+ this.busy = a;
+ //document.body.style.cursor = a ? 'wait' : 'default';
+
+ if (this.gui_objects.editform)
+ this.lock_form(this.gui_objects.editform, a);
+
+ // clear pending timer
+ if (this.request_timer)
+ clearTimeout(this.request_timer);
+
+ // set timer for requests
+ if (a && this.env.request_timeout)
+ this.request_timer = window.setTimeout(function(){ ref.request_timed_out(); }, this.env.request_timeout * 1000);
+ };
+
+ // return a localized string
+ this.get_label = function(name)
+ {
+ if (this.labels[name])
+ return this.labels[name];
+ else
+ return name;
+ };
+
+ // switch to another application task
+ this.switch_task = function(task)
+ {
+ if (this.task===task && task!='mail')
+ return;
+
+ var url = this.get_task_url(task);
+ if (task=='mail')
+ url += '&_mbox=INBOX';
+
+ this.redirect(url);
+ };
+
+ this.get_task_url = function(task, url)
+ {
+ if (!url)
+ url = this.env.comm_path;
+
+ return url.replace(/_task=[a-z]+/, '_task='+task);
+ };
+
+ // called when a request timed out
+ this.request_timed_out = function()
+ {
+ this.set_busy(false);
+ this.display_message('Request timed out!', 'error');
+ };
+
+
+ /*********************************************************/
+ /********* event handling methods *********/
+ /*********************************************************/
+
+ this.doc_mouse_up = function(e)
+ {
+ var model, li;
+
+ if (this.message_list) {
+ this.message_list.blur();
+ model = this.env.mailboxes;
+ }
+ else if (this.contact_list) {
+ this.contact_list.blur();
+ model = this.env.address_sources;
+ }
+ else if (this.ksearch_value) {
+ this.ksearch_blur();
+ }
+
+ // handle mouse release when dragging
+ if (this.drag_active && model && this.env.last_folder_target) {
+ this.set_classname(this.get_folder_li(this.env.last_folder_target), 'droptarget', false);
+ this.command('moveto', model[this.env.last_folder_target].id);
+ this.env.last_folder_target = null;
+ }
+ };
+
+ this.drag_start = function(list)
+ {
+ var model = this.task == 'mail' ? this.env.mailboxes : this.env.address_sources;
+
+ this.drag_active = true;
+ if (this.preview_timer)
+ clearTimeout(this.preview_timer);
+
+ // save folderlist and folders location/sizes for droptarget calculation in drag_move()
+ if (this.gui_objects.folderlist && model)
+ {
+ var li, pos, list, height;
+ list = rcube_find_object(this.task == 'mail' ? 'mailboxlist' : 'directorylist');
+ pos = rcube_get_object_pos(list);
+ this.env.folderlist_coords = {x1:pos.x, y1:pos.y, x2:pos.x + list.offsetWidth, y2:pos.y + list.offsetHeight};
+
+ this.env.folder_coords = new Array();
+ for (var k in model) {
+ if (li = this.get_folder_li(k))
+ {
+ pos = rcube_get_object_pos(li.firstChild);
+ // only visible folders
+ if (height = li.firstChild.offsetHeight)
+ this.env.folder_coords[k] = {x1:pos.x, y1:pos.y, x2:pos.x + li.firstChild.offsetWidth, y2:pos.y + height};
+ }
+ }
+ }
+ };
+
+ this.drag_move = function(e)
+ {
+ if (this.gui_objects.folderlist && this.env.folder_coords)
+ {
+ var li, pos, mouse;
+ mouse = rcube_event.get_mouse_pos(e);
+ pos = this.env.folderlist_coords;
+
+ // if mouse pointer is outside of folderlist
+ if (mouse.x < pos.x1 || mouse.x >= pos.x2
+ || mouse.y < pos.y1 || mouse.y >= pos.y2)
+ {
+ if (this.env.last_folder_target) {
+ this.set_classname(this.get_folder_li(this.env.last_folder_target), 'droptarget', false);
+ this.env.last_folder_target = null;
+ }
+ return;
+ }
+
+ // over the folders
+ for (var k in this.env.folder_coords)
+ {
+ pos = this.env.folder_coords[k];
+ if (this.check_droptarget(k) && ((mouse.x >= pos.x1) && (mouse.x < pos.x2)
+ && (mouse.y >= pos.y1) && (mouse.y < pos.y2)))
+ {
+ this.set_classname(this.get_folder_li(k), 'droptarget', true);
+ this.env.last_folder_target = k;
+ }
+ else
+ this.set_classname(this.get_folder_li(k), 'droptarget', false);
+ }
+ }
+ };
+
+ this.collapse_folder = function(id)
+ {
+ var div;
+ if ((li = this.get_folder_li(id)) &&
+ (div = li.getElementsByTagName("div")[0]) &&
+ (div.className.match(/collapsed/) || div.className.match(/expanded/)))
+ {
+ var ul = li.getElementsByTagName("ul")[0];
+ if (div.className.match(/collapsed/))
+ {
+ ul.style.display = '';
+ this.set_classname(div, 'collapsed', false);
+ this.set_classname(div, 'expanded', true);
+ var reg = new RegExp('&'+urlencode(id)+'&');
+ this.set_env('collapsed_folders', this.env.collapsed_folders.replace(reg, ''));
+ }
+ else
+ {
+ ul.style.display = 'none';
+ this.set_classname(div, 'expanded', false);
+ this.set_classname(div, 'collapsed', true);
+ this.set_env('collapsed_folders', this.env.collapsed_folders+'&'+urlencode(id)+'&');
+
+ // select parent folder if one of its childs is currently selected
+ if (this.env.mailbox.indexOf(id + this.env.delimiter) == 0)
+ this.command('list', id);
+ }
+
+ // Work around a bug in IE6 and IE7, see #1485309
+ if ((bw.ie6 || bw.ie7) &&
+ li.nextSibling &&
+ (li.nextSibling.getElementsByTagName("ul").length>0) &&
+ li.nextSibling.getElementsByTagName("ul")[0].style &&
+ (li.nextSibling.getElementsByTagName("ul")[0].style.display!='none'))
+ {
+ li.nextSibling.getElementsByTagName("ul")[0].style.display = 'none';
+ li.nextSibling.getElementsByTagName("ul")[0].style.display = '';
+ }
+
+ this.http_post('save-pref', '_name=collapsed_folders&_value='+urlencode(this.env.collapsed_folders));
+ this.set_unread_count_display(id, false);
+ }
+ }
+
+ this.click_on_list = function(e)
+ {
+ if (this.message_list)
+ this.message_list.focus();
+ else if (this.contact_list)
+ this.contact_list.focus();
+
+ var mbox_li;
+ if (mbox_li = this.get_folder_li())
+ this.set_classname(mbox_li, 'unfocused', true);
+
+ return rcube_event.get_button(e) == 2 ? true : rcube_event.cancel(e);
+ };
+
+ this.msglist_select = function(list)
+ {
+ if (this.preview_timer)
+ clearTimeout(this.preview_timer);
+
+ var selected = list.selection.length==1;
+
+ // Hide certain command buttons when Drafts folder is selected
+ if (this.env.mailbox == this.env.drafts_mailbox)
+ {
+ this.enable_command('reply', 'reply-all', 'forward', false);
+ this.enable_command('show', selected);
+ this.enable_command('delete', 'moveto', 'mark', (list.selection.length > 0 ? true : false));
+ }
+ else
+ {
+ this.enable_command('show', 'reply', 'reply-all', 'forward', 'print', selected);
+ this.enable_command('delete', 'moveto', 'mark', (list.selection.length > 0 ? true : false));
+ }
+
+ // start timer for message preview (wait for double click)
+ if (selected && this.env.contentframe && !list.multi_selecting)
+ this.preview_timer = window.setTimeout(function(){ ref.msglist_get_preview(); }, 200);
+ else if (this.env.contentframe)
+ this.show_contentframe(false);
+ };
+
+ this.msglist_dbl_click = function(list)
+ {
+ if (this.preview_timer)
+ clearTimeout(this.preview_timer);
+
+ var uid = list.get_single_selection();
+ if (uid && this.env.mailbox == this.env.drafts_mailbox)
+ this.goto_url('compose', '_draft_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true);
+ else if (uid)
+ this.show_message(uid, false, false);
+ };
+
+ this.msglist_keypress = function(list)
+ {
+ if (list.key_pressed == list.ENTER_KEY)
+ this.command('show');
+ else if (list.key_pressed == list.DELETE_KEY)
+ this.command('delete');
+ else if (list.key_pressed == list.BACKSPACE_KEY)
+ this.command('delete');
+ else
+ list.shiftkey = false;
+ };
+
+ this.msglist_get_preview = function()
+ {
+ var uid = this.get_single_uid();
+ if (uid && this.env.contentframe && !this.drag_active)
+ this.show_message(uid, false, true);
+ else if (this.env.contentframe)
+ this.show_contentframe(false);
+ };
+
+ this.check_droptarget = function(id)
+ {
+ if (this.task == 'mail')
+ return (this.env.mailboxes[id] && this.env.mailboxes[id].id != this.env.mailbox && !this.env.mailboxes[id].virtual);
+ else if (this.task == 'addressbook')
+ return (id != this.env.source && this.env.address_sources[id] && !this.env.address_sources[id].readonly);
+ else if (this.task == 'settings')
+ return (id != this.env.folder);
+ };
+
+
+ /*********************************************************/
+ /********* (message) list functionality *********/
+ /*********************************************************/
+
+ // when user doble-clicks on a row
+ this.show_message = function(id, safe, preview)
+ {
+ if (!id) return;
+
+ var add_url = '';
+ var action = preview ? 'preview': 'show';
+ var target = window;
+
+ if (preview && this.env.contentframe && window.frames && window.frames[this.env.contentframe])
+ {
+ target = window.frames[this.env.contentframe];
+ add_url = '&_framed=1';
+ }
+
+ if (safe)
+ add_url = '&_safe=1';
+
+ // also send search request to get the right messages
+ if (this.env.search_request)
+ add_url += '&_search='+this.env.search_request;
+ var url = '&_action='+action+'&_uid='+id+'&_mbox='+urlencode(this.env.mailbox)+add_url;
+ if (action == 'preview' && String(target.location.href).indexOf(url) >= 0)
+ this.show_contentframe(true);
+ else
+ {
+ this.set_busy(true, 'loading');
+ target.location.href = this.env.comm_path+url;
+ // mark as read and change mbox unread counter
+ if (action == 'preview' && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread)
+ {
+ this.set_message(id, 'unread', false);
+ if (this.env.unread_counts[this.env.mailbox])
+ {
+ this.env.unread_counts[this.env.mailbox] -= 1;
+ this.set_unread_count(this.env.mailbox, this.env.unread_counts[this.env.mailbox], this.env.mailbox == 'INBOX');
+ }
+ }
+ }
+ };
+
+ this.show_contentframe = function(show)
+ {
+ var frm;
+ if (this.env.contentframe && (frm = rcube_find_object(this.env.contentframe)))
+ {
+ if (!show && window.frames[this.env.contentframe])
+ {
+ if (window.frames[this.env.contentframe].location.href.indexOf(this.env.blankpage)<0)
+ window.frames[this.env.contentframe].location.href = this.env.blankpage;
+ }
+ else if (!bw.safari)
+ frm.style.display = show ? 'block' : 'none';
+ }
+
+ if (!show && this.busy)
+ this.set_busy(false);
+ };
+
+ // list a specific page
+ this.list_page = function(page)
+ {
+ if (page=='next')
+ page = this.env.current_page+1;
+ if (page=='last')
+ page = this.env.pagecount;
+ if (page=='prev' && this.env.current_page>1)
+ page = this.env.current_page-1;
+ if (page=='first' && this.env.current_page>1)
+ page = 1;
+
+ if (page > 0 && page <= this.env.pagecount)
+ {
+ this.env.current_page = page;
+
+ if (this.task=='mail')
+ this.list_mailbox(this.env.mailbox, page);
+ else if (this.task=='addressbook')
+ this.list_contacts(this.env.source, page);
+ }
+ };
+
+ // list messages of a specific mailbox using filter
+ this.filter_mailbox = function(filter)
+ {
+ var search;
+ if (this.gui_objects.qsearchbox)
+ search = this.gui_objects.qsearchbox.value;
+
+ this.message_list.clear();
+
+ // reset vars
+ this.env.current_page = 1;
+ this.set_busy(true, 'searching');
+ this.http_request('search', '_filter='+filter
+ + (search ? '&_q='+urlencode(search) : '')
+ + (this.env.mailbox ? '&_mbox='+urlencode(this.env.mailbox) : ''), true);
+ }
+
+
+ // list messages of a specific mailbox
+ this.list_mailbox = function(mbox, page, sort)
+ {
+ this.last_selected = 0;
+ var add_url = '';
+ var target = window;
+
+ if (!mbox)
+ mbox = this.env.mailbox;
+
+ // add sort to url if set
+ if (sort)
+ add_url += '&_sort=' + sort;
+
+ // also send search request to get the right messages
+ if (this.env.search_request)
+ add_url += '&_search='+this.env.search_request;
+
+ // set page=1 if changeing to another mailbox
+ if (!page && mbox != this.env.mailbox)
+ {
+ page = 1;
+ this.env.current_page = page;
+ if (this.message_list)
+ this.message_list.clear_selection();
+ this.show_contentframe(false);
+ }
+
+ if (mbox != this.env.mailbox || (mbox == this.env.mailbox && !page && !sort))
+ add_url += '&_refresh=1';
+
+ this.select_folder(mbox, this.env.mailbox);
+ this.env.mailbox = mbox;
+
+ // load message list remotely
+ if (this.gui_objects.messagelist)
+ {
+ this.list_mailbox_remote(mbox, page, add_url);
+ return;
+ }
+
+ if (this.env.contentframe && window.frames && window.frames[this.env.contentframe])
+ {
+ target = window.frames[this.env.contentframe];
+ add_url += '&_framed=1';
+ }
+
+ // load message list to target frame/window
+ if (mbox)
+ {
+ this.set_busy(true, 'loading');
+ target.location.href = this.env.comm_path+'&_mbox='+urlencode(mbox)+(page ? '&_page='+page : '')+add_url;
+ }
+ };
+
+ // send remote request to load message list
+ this.list_mailbox_remote = function(mbox, page, add_url)
+ {
+ // clear message list first
+ this.message_list.clear();
+
+ // send request to server
+ var url = '_mbox='+urlencode(mbox)+(page ? '&_page='+page : '');
+ this.set_busy(true, 'loading');
+ this.http_request('list', url+add_url, true);
+ };
+
+ this.expunge_mailbox = function(mbox)
+ {
+ var lock = false;
+ var add_url = '';
+
+ // lock interface if it's the active mailbox
+ if (mbox == this.env.mailbox)
+ {
+ lock = true;
+ this.set_busy(true, 'loading');
+ add_url = '&_reload=1';
+ }
+
+ // send request to server
+ var url = '_mbox='+urlencode(mbox);
+ this.http_post('expunge', url+add_url, lock);
+ };
+
+ this.purge_mailbox = function(mbox)
+ {
+ var lock = false;
+ var add_url = '';
+
+ if (!confirm(this.get_label('purgefolderconfirm')))
+ return false;
+
+ // lock interface if it's the active mailbox
+ if (mbox == this.env.mailbox)
+ {
+ lock = true;
+ this.set_busy(true, 'loading');
+ add_url = '&_reload=1';
+ }
+
+ // send request to server
+ var url = '_mbox='+urlencode(mbox);
+ this.http_post('purge', url+add_url, lock);
+ return true;
+ };
+
+ // test if purge command is allowed
+ this.purge_mailbox_test = function()
+ {
+ return (this.env.messagecount && (this.env.mailbox == this.env.trash_mailbox || this.env.mailbox == this.env.junk_mailbox
+ || this.env.mailbox.match('^' + RegExp.escape(this.env.trash_mailbox) + RegExp.escape(this.env.delimiter))
+ || this.env.mailbox.match('^' + RegExp.escape(this.env.junk_mailbox) + RegExp.escape(this.env.delimiter))));
+ };
+
+ // set message icon
+ this.set_message_icon = function(uid)
+ {
+ var icn_src;
+ var rows = this.message_list.rows;
+
+ if (!rows[uid])
+ return false;
+
+ if (rows[uid].deleted && this.env.deletedicon)
+ icn_src = this.env.deletedicon;
+ else if (rows[uid].replied && this.env.repliedicon)
+ {
+ if (rows[uid].forwarded && this.env.forwardedrepliedicon)
+ icn_src = this.env.forwardedrepliedicon;
+ else
+ icn_src = this.env.repliedicon;
+ }
+ else if (rows[uid].forwarded && this.env.forwardedicon)
+ icn_src = this.env.forwardedicon;
+ else if (rows[uid].unread && this.env.unreadicon)
+ icn_src = this.env.unreadicon;
+ else if (this.env.messageicon)
+ icn_src = this.env.messageicon;
+
+ if (icn_src && rows[uid].icon)
+ rows[uid].icon.src = icn_src;
+
+ icn_src = '';
+
+ if (rows[uid].flagged && this.env.flaggedicon)
+ icn_src = this.env.flaggedicon;
+ else if (!rows[uid].flagged && this.env.unflaggedicon)
+ icn_src = this.env.unflaggedicon;
+
+ if (rows[uid].flagged_icon && icn_src)
+ rows[uid].flagged_icon.src = icn_src;
+ }
+
+ // set message status
+ this.set_message_status = function(uid, flag, status)
+ {
+ var rows = this.message_list.rows;
+
+ if (!rows[uid]) return false;
+
+ if (flag == 'unread')
+ rows[uid].unread = status;
+ else if(flag == 'deleted')
+ rows[uid].deleted = status;
+ else if (flag == 'replied')
+ rows[uid].replied = status;
+ else if (flag == 'forwarded')
+ rows[uid].forwarded = status;
+ else if (flag == 'flagged')
+ rows[uid].flagged = status;
+
+ this.env.messages[uid] = rows[uid];
+ }
+
+ // set message row status, class and icon
+ this.set_message = function(uid, flag, status)
+ {
+ var rows = this.message_list.rows;
+
+ if (!rows[uid]) return false;
+
+ if (flag)
+ this.set_message_status(uid, flag, status);
+
+ if (rows[uid].unread && rows[uid].classname.indexOf('unread')<0)
+ {
+ rows[uid].classname += ' unread';
+ this.set_classname(rows[uid].obj, 'unread', true);
+ }
+ else if (!rows[uid].unread && rows[uid].classname.indexOf('unread')>=0)
+ {
+ rows[uid].classname = rows[uid].classname.replace(/\s*unread/, '');
+ this.set_classname(rows[uid].obj, 'unread', false);
+ }
+
+ if (rows[uid].deleted && rows[uid].classname.indexOf('deleted')<0)
+ {
+ rows[uid].classname += ' deleted';
+ this.set_classname(rows[uid].obj, 'deleted', true);
+ }
+ else if (!rows[uid].deleted && rows[uid].classname.indexOf('deleted')>=0)
+ {
+ rows[uid].classname = rows[uid].classname.replace(/\s*deleted/, '');
+ this.set_classname(rows[uid].obj, 'deleted', false);
+ }
+
+ if (rows[uid].flagged && rows[uid].classname.indexOf('flagged')<0)
+ {
+ rows[uid].classname += ' flagged';
+ this.set_classname(rows[uid].obj, 'flagged', true);
+ }
+ else if (!rows[uid].flagged && rows[uid].classname.indexOf('flagged')>=0)
+ {
+ rows[uid].classname = rows[uid].classname.replace(/\s*flagged/, '');
+ this.set_classname(rows[uid].obj, 'flagged', false);
+ }
+
+ this.set_message_icon(uid);
+ }
+
+ // move selected messages to the specified mailbox
+ this.move_messages = function(mbox)
+ {
+ // exit if current or no mailbox specified or if selection is empty
+ if (!mbox || mbox == this.env.mailbox || (!this.env.uid && (!this.message_list || !this.message_list.get_selection().length)))
+ return;
+
+ var lock = false;
+ var add_url = '&_target_mbox='+urlencode(mbox)+'&_from='+(this.env.action ? this.env.action : '');
+
+ // show wait message
+ if (this.env.action=='show')
+ {
+ lock = true;
+ this.set_busy(true, 'movingmessage');
+ }
+ else if (!this.env.flag_for_deletion)
+ this.show_contentframe(false);
+
+ // Hide message command buttons until a message is selected
+ this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', false);
+
+ this._with_selected_messages('moveto', lock, add_url, (this.env.flag_for_deletion ? false : true));
+ };
+
+ // delete selected messages from the current mailbox
+ this.delete_messages = function()
+ {
+ var selection = this.message_list ? this.message_list.get_selection() : new Array();
+
+ // exit if no mailbox specified or if selection is empty
+ if (!this.env.uid && !selection.length)
+ return;
+
+ // if there is a trash mailbox defined and we're not currently in it:
+ if (this.env.trash_mailbox && String(this.env.mailbox).toLowerCase() != String(this.env.trash_mailbox).toLowerCase())
+ {
+ // if shift was pressed delete it immediately
+ if (this.message_list && this.message_list.shiftkey)
+ {
+ if (confirm(this.get_label('deletemessagesconfirm')))
+ this.permanently_remove_messages();
+ }
+ else
+ this.move_messages(this.env.trash_mailbox);
+ }
+ // if there is a trash mailbox defined but we *are* in it:
+ else if (this.env.trash_mailbox && String(this.env.mailbox).toLowerCase() == String(this.env.trash_mailbox).toLowerCase())
+ this.permanently_remove_messages();
+ // if there isn't a defined trash mailbox and the config is set to flag for deletion
+ else if (!this.env.trash_mailbox && this.env.flag_for_deletion)
+ {
+ this.mark_message('delete');
+ if(this.env.action=="show")
+ this.command('nextmessage','',this);
+ else if (selection.length == 1)
+ this.message_list.select_next();
+ }
+ // if there isn't a defined trash mailbox and the config is set NOT to flag for deletion
+ else if (!this.env.trash_mailbox)
+ this.permanently_remove_messages();
+ };
+
+ // delete the selected messages permanently
+ this.permanently_remove_messages = function()
+ {
+ // exit if no mailbox specified or if selection is empty
+ if (!this.env.uid && (!this.message_list || !this.message_list.get_selection().length))
+ return;
+
+ this.show_contentframe(false);
+ this._with_selected_messages('delete', false, '&_from='+(this.env.action ? this.env.action : ''), true);
+ };
+
+ // Send a specifc request with UIDs of all selected messages
+ // @private
+ this._with_selected_messages = function(action, lock, add_url, remove)
+ {
+ var a_uids = new Array();
+
+ if (this.env.uid)
+ a_uids[0] = this.env.uid;
+ else
+ {
+ var selection = this.message_list.get_selection();
+ var rows = this.message_list.rows;
+ var id;
+ for (var n=0; n<selection.length; n++)
+ {
+ id = selection[n];
+ a_uids[a_uids.length] = id;
+
+ if (remove)
+ this.message_list.remove_row(id, (n == selection.length-1));
+ else
+ {
+ this.set_message_status(id, 'deleted', true);
+ if (this.env.read_when_deleted)
+ this.set_message_status(id, 'unread', false);
+ this.set_message(id);
+ }
+ }
+ }
+
+ // also send search request to get the right messages
+ if (this.env.search_request)
+ add_url += '&_search='+this.env.search_request;
+
+ // send request to server
+ this.http_post(action, '_uid='+a_uids.join(',')+'&_mbox='+urlencode(this.env.mailbox)+add_url, lock);
+ };
+
+ // set a specific flag to one or more messages
+ this.mark_message = function(flag, uid)
+ {
+ var a_uids = new Array();
+ var r_uids = new Array();
+ var selection = this.message_list ? this.message_list.get_selection() : new Array();
+
+ if (uid)
+ a_uids[0] = uid;
+ else if (this.env.uid)
+ a_uids[0] = this.env.uid;
+ else if (this.message_list)
+ {
+ for (var n=0; n<selection.length; n++)
+ {
+ a_uids[a_uids.length] = selection[n];
+ }
+ }
+
+ if (!this.message_list)
+ r_uids = a_uids;
+ else
+ for (var id, n=0; n<a_uids.length; n++)
+ {
+ id = a_uids[n];
+ if ((flag=='read' && this.message_list.rows[id].unread)
+ || (flag=='unread' && !this.message_list.rows[id].unread)
+ || (flag=='delete' && !this.message_list.rows[id].deleted)
+ || (flag=='undelete' && this.message_list.rows[id].deleted)
+ || (flag=='flagged' && !this.message_list.rows[id].flagged)
+ || (flag=='unflagged' && this.message_list.rows[id].flagged))
+ {
+ r_uids[r_uids.length] = id;
+ }
+ }
+
+ // nothing to do
+ if (!r_uids.length)
+ return;
+
+ switch (flag)
+ {
+ case 'read':
+ case 'unread':
+ this.toggle_read_status(flag, r_uids);
+ break;
+ case 'delete':
+ case 'undelete':
+ this.toggle_delete_status(r_uids);
+ break;
+ case 'flagged':
+ case 'unflagged':
+ this.toggle_flagged_status(flag, a_uids);
+ break;
+ }
+ };
+
+ // set class to read/unread
+ this.toggle_read_status = function(flag, a_uids)
+ {
+ // mark all message rows as read/unread
+ for (var i=0; i<a_uids.length; i++)
+ this.set_message(a_uids[i], 'unread', (flag=='unread' ? true : false));
+
+ this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag='+flag);
+ };
+
+ // set image to flagged or unflagged
+ this.toggle_flagged_status = function(flag, a_uids)
+ {
+ // mark all message rows as flagged/unflagged
+ for (var i=0; i<a_uids.length; i++)
+ this.set_message(a_uids[i], 'flagged', (flag=='flagged' ? true : false));
+
+ this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag='+flag);
+ };
+
+ // mark all message rows as deleted/undeleted
+ this.toggle_delete_status = function(a_uids)
+ {
+ var rows = this.message_list ? this.message_list.rows : new Array();
+
+ if (a_uids.length==1)
+ {
+ if (!rows.length || (rows[a_uids[0]] && !rows[a_uids[0]].deleted))
+ this.flag_as_deleted(a_uids);
+ else
+ this.flag_as_undeleted(a_uids);
+
+ return true;
+ }
+
+ var all_deleted = true;
+ for (var i=0; i<a_uids.length; i++)
+ {
+ uid = a_uids[i];
+ if (rows[uid]) {
+ if (!rows[uid].deleted)
+ {
+ all_deleted = false;
+ break;
+ }
+ }
+ }
+
+ if (all_deleted)
+ this.flag_as_undeleted(a_uids);
+ else
+ this.flag_as_deleted(a_uids);
+
+ return true;
+ };
+
+ this.flag_as_undeleted = function(a_uids)
+ {
+ for (var i=0; i<a_uids.length; i++)
+ this.set_message(a_uids[i], 'deleted', false);
+
+ this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag=undelete');
+ return true;
+ };
+
+ this.flag_as_deleted = function(a_uids)
+ {
+ var add_url = '';
+ var r_uids = new Array();
+ var rows = this.message_list ? this.message_list.rows : new Array();
+
+ for (var i=0; i<a_uids.length; i++)
+ {
+ uid = a_uids[i];
+ if (rows[uid])
+ {
+ this.set_message(uid, 'deleted', true);
+ if (rows[uid].unread)
+ r_uids[r_uids.length] = uid;
+ }
+ }
+
+ if (r_uids.length)
+ add_url = '&_ruid='+r_uids.join(',');
+
+ this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag=delete'+add_url);
+ return true;
+ };
+
+ // flag as read without mark request (called from backend)
+ // argument should be a coma-separated list of uids
+ this.flag_deleted_as_read = function(uids)
+ {
+ var icn_src;
+ var rows = this.message_list ? this.message_list.rows : new Array();
+ var str = String(uids);
+ var a_uids = new Array();
+
+ a_uids = str.split(',');
+
+ for (var uid, i=0; i<a_uids.length; i++)
+ {
+ uid = a_uids[i];
+ if (rows[uid])
+ this.set_message(uid, 'unread', false);
+ }
+ };
+
+
+ /*********************************************************/
+ /********* login form methods *********/
+ /*********************************************************/
+
+ // handler for keyboard events on the _user field
+ this.login_user_keyup = function(e)
+ {
+ var key = rcube_event.get_keycode(e);
+ var elm;
+
+ // enter
+ if ((key==13) && (elm = rcube_find_object('_pass')))
+ {
+ elm.focus();
+ return false;
+ }
+ };
+
+
+ /*********************************************************/
+ /********* message compose methods *********/
+ /*********************************************************/
+
+ // checks the input fields before sending a message
+ this.check_compose_input = function()
+ {
+ // check input fields
+ var input_to = rcube_find_object('_to');
+ var input_cc = rcube_find_object('_cc');
+ var input_bcc = rcube_find_object('_bcc');
+ var input_from = rcube_find_object('_from');
+ var input_subject = rcube_find_object('_subject');
+ var input_message = rcube_find_object('_message');
+
+ // check sender (if have no identities)
+ if (input_from.type == 'text' && !rcube_check_email(input_from.value, true))
+ {
+ alert(this.get_label('nosenderwarning'));
+ input_from.focus();
+ return false;
+ }
+
+ // check for empty recipient
+ var recipients = input_to.value ? input_to.value : (input_cc.value ? input_cc.value : input_bcc.value);
+ if (!rcube_check_email(recipients.replace(/^\s+/, '').replace(/[\s,;]+$/, ''), true))
+ {
+ alert(this.get_label('norecipientwarning'));
+ input_to.focus();
+ return false;
+ }
+
+ // display localized warning for missing subject
+ if (input_subject && input_subject.value == '')
+ {
+ var subject = prompt(this.get_label('nosubjectwarning'), this.get_label('nosubject'));
+
+ // user hit cancel, so don't send
+ if (!subject && subject !== '')
+ {
+ input_subject.focus();
+ return false;
+ }
+ else
+ {
+ input_subject.value = subject ? subject : this.get_label('nosubject');
+ }
+ }
+
+ // check for empty body
+ if ((!window.tinyMCE || !tinyMCE.get('compose-body')) && input_message.value == '' && !confirm(this.get_label('nobodywarning')))
+ {
+ input_message.focus();
+ return false;
+ }
+ else if (window.tinyMCE && tinyMCE.get('compose-body') && !tinyMCE.get('compose-body').getContent() && !confirm(this.get_label('nobodywarning')))
+ {
+ tinyMCE.get('compose-body').focus();
+ return false;
+ }
+
+ // Apply spellcheck changes if spell checker is active
+ this.stop_spellchecking();
+
+ return true;
+ };
+
+ this.stop_spellchecking = function()
+ {
+ if (this.env.spellcheck && !this.spellcheck_ready) {
+ exec_event(this.env.spellcheck.check_link, 'click');
+ this.set_spellcheck_state('ready');
+ }
+ };
+
+ this.display_spellcheck_controls = function(vis)
+ {
+ if (this.env.spellcheck) {
+ // stop spellchecking process
+ if (!vis)
+ this.stop_spellchecking();
+
+ this.env.spellcheck.check_link.style.visibility = vis ? 'visible' : 'hidden';
+ this.env.spellcheck.switch_lan_pic.style.visibility = vis ? 'visible' : 'hidden';
+ }
+ };
+
+ this.set_spellcheck_state = function(s)
+ {
+ this.spellcheck_ready = (s=='check_spelling' || s=='ready');
+ this.enable_command('spellcheck', this.spellcheck_ready);
+ };
+
+ this.set_draft_id = function(id)
+ {
+ var f;
+ if (f = rcube_find_object('_draft_saveid'))
+ f.value = id;
+ };
+
+ this.auto_save_start = function()
+ {
+ if (this.env.draft_autosave)
+ this.save_timer = self.setTimeout(function(){ ref.command("savedraft"); }, this.env.draft_autosave * 1000);
+
+ // Unlock interface now that saving is complete
+ this.busy = false;
+ };
+
+ this.compose_field_hash = function(save)
+ {
+ // check input fields
+ var input_to = rcube_find_object('_to');
+ var input_cc = rcube_find_object('_cc');
+ var input_bcc = rcube_find_object('_bcc');
+ var input_subject = rcube_find_object('_subject');
+ var editor, input_message;
+ var str = '';
+
+ if (input_to && input_to.value)
+ str += input_to.value+':';
+ if (input_cc && input_cc.value)
+ str += input_cc.value+':';
+ if (input_bcc && input_bcc.value)
+ str += input_bcc.value+':';
+ if (input_subject && input_subject.value)
+ str += input_subject.value+':';
+
+ if (editor = tinyMCE.get('compose-body'))
+ str += editor.getContent();
+ else
+ {
+ input_message = rcube_find_object('_message');
+ str += input_message.value;
+ }
+
+ if (save)
+ this.cmp_hash = str;
+
+ return str;
+ };
+
+ this.change_identity = function(obj)
+ {
+ if (!obj || !obj.options)
+ return false;
+
+ var id = obj.options[obj.selectedIndex].value;
+ var input_message = rcube_find_object('_message');
+ var message = input_message ? input_message.value : '';
+ var is_html = (rcube_find_object('_is_html').value == '1');
+ var sig, p;
+
+ if (!this.env.identity)
+ this.env.identity = id
+
+ if (!is_html)
+ {
+ // remove the 'old' signature
+ if (this.env.identity && this.env.signatures && this.env.signatures[this.env.identity])
+ {
+ if (this.env.signatures[this.env.identity]['is_html'])
+ sig = this.env.signatures[this.env.identity]['plain_text'];
+ else
+ sig = this.env.signatures[this.env.identity]['text'];
+
+ if (sig.indexOf('-- ')!=0)
+ sig = '-- \n'+sig;
+
+ p = message.lastIndexOf(sig);
+ if (p>=0)
+ message = message.substring(0, p-1) + message.substring(p+sig.length, message.length);
+ }
+
+ message = message.replace(/[\r\n]+$/, '');
+
+ // add the new signature string
+ if (this.env.signatures && this.env.signatures[id])
+ {
+ sig = this.env.signatures[id]['text'];
+ if (this.env.signatures[id]['is_html'])
+ {
+ sig = this.env.signatures[id]['plain_text'];
+ }
+ if (sig.indexOf('-- ')!=0)
+ sig = '-- \n'+sig;
+ message += '\n\n'+sig;
+ }
+ }
+ else
+ {
+ var editor = tinyMCE.get('compose-body');
+
+ if (this.env.signatures)
+ {
+ // Append the signature as a div within the body
+ var sigElem = editor.dom.get('_rc_sig');
+ var newsig = '';
+ var htmlsig = true;
+
+ if (!sigElem)
+ {
+ // add empty line before signature on IE
+ if (bw.ie)
+ editor.getBody().appendChild(editor.getDoc().createElement('br'));
+
+ sigElem = editor.getDoc().createElement('div');
+ sigElem.setAttribute('id', '_rc_sig');
+ editor.getBody().appendChild(sigElem);
+ }
+
+ if (this.env.signatures[id])
+ {
+ newsig = this.env.signatures[id]['text'];
+ htmlsig = this.env.signatures[id]['is_html'];
+ }
+
+ if (htmlsig)
+ sigElem.innerHTML = newsig;
+ else
+ sigElem.innerHTML = '<pre>' + newsig + '</pre>';
+ }
+ }
+
+ if (input_message)
+ input_message.value = message;
+
+ this.env.identity = id;
+ return true;
+ };
+
+ this.show_attachment_form = function(a)
+ {
+ if (!this.gui_objects.uploadbox)
+ return false;
+
+ var elm, list;
+ if (elm = this.gui_objects.uploadbox)
+ {
+ if (a && (list = this.gui_objects.attachmentlist))
+ {
+ var pos = rcube_get_object_pos(list);
+ var left = pos.x;
+ var top = pos.y + list.offsetHeight + 10;
+
+ elm.style.top = top+'px';
+ elm.style.left = left+'px';
+ }
+
+ elm.style.visibility = a ? 'visible' : 'hidden';
+ }
+
+ // clear upload form
+ try {
+ if (!a && this.gui_objects.attachmentform != this.gui_objects.messageform)
+ this.gui_objects.attachmentform.reset();
+ }
+ catch(e){} // ignore errors
+
+ return true;
+ };
+
+ // upload attachment file
+ this.upload_file = function(form)
+ {
+ if (!form)
+ return false;
+
+ // get file input fields
+ var send = false;
+ for (var n=0; n<form.elements.length; n++)
+ if (form.elements[n].type=='file' && form.elements[n].value)
+ {
+ send = true;
+ break;
+ }
+
+ // create hidden iframe and post upload form
+ if (send)
+ {
+ var ts = new Date().getTime();
+ var frame_name = 'rcmupload'+ts;
+
+ // have to do it this way for IE
+ // otherwise the form will be posted to a new window
+ if(document.all)
+ {
+ var html = '<iframe name="'+frame_name+'" src="program/blank.gif" style="width:0;height:0;visibility:hidden;"></iframe>';
+ document.body.insertAdjacentHTML('BeforeEnd',html);
+ }
+ else // for standards-compilant browsers
+ {
+ var frame = document.createElement('IFRAME');
+ frame.name = frame_name;
+ frame.style.border = 'none';
+ frame.style.width = 0;
+ frame.style.height = 0;
+ frame.style.visibility = 'hidden';
+ document.body.appendChild(frame);
+ }
+
+ form.target = frame_name;
+ form.action = this.env.comm_path+'&_action=upload';
+ form.setAttribute('enctype', 'multipart/form-data');
+ form.submit();
+ }
+
+ // set reference to the form object
+ this.gui_objects.attachmentform = form;
+ return true;
+ };
+
+ // add file name to attachment list
+ // called from upload page
+ this.add2attachment_list = function(name, content)
+ {
+ if (!this.gui_objects.attachmentlist)
+ return false;
+
+ var li = document.createElement('LI');
+ li.id = name;
+ li.innerHTML = content;
+ this.gui_objects.attachmentlist.appendChild(li);
+ return true;
+ };
+
+ this.remove_from_attachment_list = function(name)
+ {
+ if (!this.gui_objects.attachmentlist)
+ return false;
+
+ var list = this.gui_objects.attachmentlist.getElementsByTagName("li");
+ for (i=0;i<list.length;i++)
+ if (list[i].id == name)
+ this.gui_objects.attachmentlist.removeChild(list[i]);
+ };
+
+ this.remove_attachment = function(name)
+ {
+ if (name)
+ this.http_post('remove-attachment', '_file='+urlencode(name));
+
+ return true;
+ };
+
+ // send remote request to add a new contact
+ this.add_contact = function(value)
+ {
+ if (value)
+ this.http_post('addcontact', '_address='+value);
+
+ return true;
+ };
+
+ // send remote request to search mail or contacts
+ this.qsearch = function(value, addurl)
+ {
+ if (value != '')
+ {
+ if (this.message_list)
+ this.message_list.clear();
+ else if (this.contact_list) {
+ this.contact_list.clear(true);
+ this.show_contentframe(false);
+ }
+
+ if (this.gui_objects.search_filter)
+ addurl = '&_filter=' + this.gui_objects.search_filter.value;
+
+ // reset vars
+ this.env.current_page = 1;
+ this.set_busy(true, 'searching');
+ this.http_request('search', '_q='+urlencode(value)
+ + (this.env.mailbox ? '&_mbox='+urlencode(this.env.mailbox) : '')
+ + (this.env.source ? '&_source='+urlencode(this.env.source) : '')
+ + (addurl ? addurl : ''), true);
+ }
+ return true;
+ };
+
+ // reset quick-search form
+ this.reset_qsearch = function()
+ {
+ if (this.gui_objects.qsearchbox)
+ this.gui_objects.qsearchbox.value = '';
+
+ this.env.search_request = null;
+ return true;
+ };
+
+ this.sent_successfully = function(type, msg)
+ {
+ this.list_mailbox();
+ this.display_message(msg, type, true);
+ }
+
+
+ /*********************************************************/
+ /********* keyboard live-search methods *********/
+ /*********************************************************/
+
+ // handler for keyboard events on address-fields
+ this.ksearch_keypress = function(e, obj)
+ {
+ if (this.ksearch_timer)
+ clearTimeout(this.ksearch_timer);
+
+ var highlight;
+ var key = rcube_event.get_keycode(e);
+ var mod = rcube_event.get_modifier(e);
+
+ switch (key)
+ {
+ case 38: // key up
+ case 40: // key down
+ if (!this.ksearch_pane)
+ break;
+
+ var dir = key==38 ? 1 : 0;
+
+ highlight = document.getElementById('rcmksearchSelected');
+ if (!highlight)
+ highlight = this.ksearch_pane.ul.firstChild;
+
+ if (highlight)
+ this.ksearch_select(dir ? highlight.previousSibling : highlight.nextSibling);
+
+ return rcube_event.cancel(e);
+
+ case 9: // tab
+ if(mod == SHIFT_KEY)
+ break;
+
+ case 13: // enter
+ if (this.ksearch_selected===null || !this.ksearch_input || !this.ksearch_value)
+ break;
+
+ // insert selected address and hide ksearch pane
+ this.insert_recipient(this.ksearch_selected);
+ this.ksearch_hide();
+
+ return rcube_event.cancel(e);
+
+ case 27: // escape
+ this.ksearch_hide();
+ break;
+
+ }
+
+ // start timer
+ this.ksearch_timer = window.setTimeout(function(){ ref.ksearch_get_results(); }, 200);
+ this.ksearch_input = obj;
+
+ return true;
+ };
+
+ this.ksearch_select = function(node)
+ {
+ var current = document.getElementById('rcmksearchSelected');
+ if (current && node) {
+ current.removeAttribute('id');
+ this.set_classname(current, 'selected', false);
+ }
+
+ if (node) {
+ node.setAttribute('id', 'rcmksearchSelected');
+ this.set_classname(node, 'selected', true);
+ this.ksearch_selected = node._rcm_id;
+ }
+ };
+
+ this.insert_recipient = function(id)
+ {
+ if (!this.env.contacts[id] || !this.ksearch_input)
+ return;
+
+ // get cursor pos
+ var inp_value = this.ksearch_input.value.toLowerCase();
+ var cpos = this.get_caret_pos(this.ksearch_input);
+ var p = inp_value.lastIndexOf(this.ksearch_value, cpos);
+
+ // replace search string with full address
+ var pre = this.ksearch_input.value.substring(0, p);
+ var end = this.ksearch_input.value.substring(p+this.ksearch_value.length, this.ksearch_input.value.length);
+ var insert = this.env.contacts[id]+', ';
+ this.ksearch_input.value = pre + insert + end;
+
+ // set caret to insert pos
+ cpos = p+insert.length;
+ if (this.ksearch_input.setSelectionRange)
+ this.ksearch_input.setSelectionRange(cpos, cpos);
+ };
+
+ // address search processor
+ this.ksearch_get_results = function()
+ {
+ var inp_value = this.ksearch_input ? this.ksearch_input.value : null;
+ if (inp_value === null)
+ return;
+
+ if (this.ksearch_pane && this.ksearch_pane.visible)
+ this.ksearch_pane.show(0);
+
+ // get string from current cursor pos to last comma
+ var cpos = this.get_caret_pos(this.ksearch_input);
+ var p = inp_value.lastIndexOf(',', cpos-1);
+ var q = inp_value.substring(p+1, cpos);
+
+ // trim query string
+ q = q.replace(/(^\s+|\s+$)/g, '').toLowerCase();
+
+ // Don't (re-)search if string is empty or if the last results are still active
+ if (!q.length || q == this.ksearch_value)
+ return;
+
+ this.ksearch_value = q;
+
+ this.display_message(this.get_label('searching'), 'loading', true);
+ this.http_post('autocomplete', '_search='+q);
+ };
+
+ this.ksearch_query_results = function(results)
+ {
+ this.hide_message();
+ this.env.contacts = results ? results : [];
+
+ var result_ids = new Array();
+ var c=0;
+ for (var i=0; i < this.env.contacts.length; i++) {
+ result_ids[c++] = i;
+ if (c == 15) // limit search results
+ break;
+ }
+
+ this.ksearch_display_results(this.env.contacts, result_ids, c);
+ };
+
+ this.ksearch_display_results = function (a_results, a_result_ids, c)
+ {
+ // display search results
+ if (c && a_results.length && this.ksearch_input) {
+ var p, ul, li;
+
+ // create results pane if not present
+ if (!this.ksearch_pane) {
+ ul = document.createElement('UL');
+ this.ksearch_pane = new rcube_layer('rcmKSearchpane', {vis:0, zindex:30000});
+ this.ksearch_pane.elm.appendChild(ul);
+ this.ksearch_pane.ul = ul;
+ }
+ else
+ ul = this.ksearch_pane.ul;
+
+ // remove all search results
+ ul.innerHTML = '';
+
+ // add each result line to list
+ for (i=0; i<a_results.length; i++) {
+ li = document.createElement('LI');
+ li.innerHTML = a_results[i].replace(new RegExp('('+this.ksearch_value+')', 'ig'), '##$1%%').replace(/</g, '<').replace(/>/g, '>').replace(/##([^%]+)%%/g, '<b>$1</b>');
+ li.onmouseover = function(){ ref.ksearch_select(this); };
+ li.onmouseup = function(){ ref.ksearch_click(this) };
+ li._rcm_id = a_result_ids[i];
+ ul.appendChild(li);
+ }
+
+ // check if last selected item is still in result list
+ if (this.ksearch_selected !== null) {
+ p = find_in_array(this.ksearch_selected, a_result_ids);
+ if (p >= 0 && ul.childNodes) {
+ ul.childNodes[p].setAttribute('id', 'rcmksearchSelected');
+ this.set_classname(ul.childNodes[p], 'selected', true);
+ }
+ else
+ this.ksearch_selected = null;
+ }
+
+ // if no item selected, select the first one
+ if (this.ksearch_selected === null) {
+ ul.firstChild.setAttribute('id', 'rcmksearchSelected');
+ this.set_classname(ul.firstChild, 'selected', true);
+ this.ksearch_selected = a_result_ids[0];
+ }
+
+ // move the results pane right under the input box and make it visible
+ var pos = rcube_get_object_pos(this.ksearch_input);
+ this.ksearch_pane.move(pos.x, pos.y+this.ksearch_input.offsetHeight);
+ this.ksearch_pane.show(1);
+ }
+ // hide results pane
+ else
+ this.ksearch_hide();
+ };
+
+ this.ksearch_click = function(node)
+ {
+ this.insert_recipient(node._rcm_id);
+ this.ksearch_hide();
+
+ if (ref.ksearch_input)
+ this.ksearch_input.focus();
+ };
+
+ this.ksearch_blur = function()
+ {
+ if (this.ksearch_timer)
+ clearTimeout(this.ksearch_timer);
+
+ this.ksearch_value = '';
+ this.ksearch_input = null;
+
+ this.ksearch_hide();
+ };
+
+
+ this.ksearch_hide = function()
+ {
+ this.ksearch_selected = null;
+
+ if (this.ksearch_pane)
+ this.ksearch_pane.show(0);
+ };
+
+
+ /*********************************************************/
+ /********* address book methods *********/
+ /*********************************************************/
+
+ this.contactlist_keypress = function(list)
+ {
+ if (list.key_pressed == list.DELETE_KEY)
+ this.command('delete');
+ };
+
+ this.contactlist_select = function(list)
+ {
+ if (this.preview_timer)
+ clearTimeout(this.preview_timer);
+
+ var id, frame, ref = this;
+ if (id = list.get_single_selection())
+ this.preview_timer = window.setTimeout(function(){ ref.load_contact(id, 'show'); }, 200);
+ else if (this.env.contentframe)
+ this.show_contentframe(false);
+
+ this.enable_command('compose', list.selection.length > 0);
+ this.enable_command('edit', (id && this.env.address_sources && !this.env.address_sources[this.env.source].readonly) ? true : false);
+ this.enable_command('delete', list.selection.length && this.env.address_sources && !this.env.address_sources[this.env.source].readonly);
+
+ return false;
+ };
+
+ this.list_contacts = function(src, page)
+ {
+ var add_url = '';
+ var target = window;
+
+ if (!src)
+ src = this.env.source;
+
+ if (page && this.current_page==page && src == this.env.source)
+ return false;
+
+ if (src != this.env.source)
+ {
+ page = 1;
+ this.env.current_page = page;
+ this.reset_qsearch();
+ }
+
+ this.select_folder(src, this.env.source);
+ this.env.source = src;
+
+ // load contacts remotely
+ if (this.gui_objects.contactslist)
+ {
+ this.list_contacts_remote(src, page);
+ return;
+ }
+
+ if (this.env.contentframe && window.frames && window.frames[this.env.contentframe])
+ {
+ target = window.frames[this.env.contentframe];
+ add_url = '&_framed=1';
+ }
+
+ // also send search request to get the correct listing
+ if (this.env.search_request)
+ add_url += '&_search='+this.env.search_request;
+
+ this.set_busy(true, 'loading');
+ target.location.href = this.env.comm_path+(src ? '&_source='+urlencode(src) : '')+(page ? '&_page='+page : '')+add_url;
+ };
+
+ // send remote request to load contacts list
+ this.list_contacts_remote = function(src, page)
+ {
+ // clear message list first
+ this.contact_list.clear(true);
+ this.show_contentframe(false);
+ this.enable_command('delete', 'compose', false);
+
+ // send request to server
+ var url = (src ? '_source='+urlencode(src) : '') + (page ? (src?'&':'') + '_page='+page : '');
+ this.env.source = src;
+
+ // also send search request to get the right messages
+ if (this.env.search_request)
+ url += '&_search='+this.env.search_request;
+
+ this.set_busy(true, 'loading');
+ this.http_request('list', url, true);
+ };
+
+ // load contact record
+ this.load_contact = function(cid, action, framed)
+ {
+ var add_url = '';
+ var target = window;
+ if (this.env.contentframe && window.frames && window.frames[this.env.contentframe])
+ {
+ add_url = '&_framed=1';
+ target = window.frames[this.env.contentframe];
+ this.show_contentframe(true);
+ }
+ else if (framed)
+ return false;
+
+ if (action && (cid || action=='add') && !this.drag_active)
+ {
+ this.set_busy(true);
+ target.location.href = this.env.comm_path+'&_action='+action+'&_source='+urlencode(this.env.source)+'&_cid='+urlencode(cid) + add_url;
+ }
+ return true;
+ };
+
+ // copy a contact to the specified target (group or directory)
+ this.copy_contact = function(cid, to)
+ {
+ if (!cid)
+ cid = this.contact_list.get_selection().join(',');
+
+ if (to != this.env.source && cid && this.env.address_sources[to] && !this.env.address_sources[to].readonly)
+ this.http_post('copy', '_cid='+urlencode(cid)+'&_source='+urlencode(this.env.source)+'&_to='+urlencode(to));
+ };
+
+
+ this.delete_contacts = function()
+ {
+ // exit if no mailbox specified or if selection is empty
+ var selection = this.contact_list.get_selection();
+ if (!(selection.length || this.env.cid) || !confirm(this.get_label('deletecontactconfirm')))
+ return;
+
+ var a_cids = new Array();
+ var qs = '';
+
+ if (this.env.cid)
+ a_cids[a_cids.length] = this.env.cid;
+ else
+ {
+ var id;
+ for (var n=0; n<selection.length; n++)
+ {
+ id = selection[n];
+ a_cids[a_cids.length] = id;
+ this.contact_list.remove_row(id, (n == selection.length-1));
+ }
+
+ // hide content frame if we delete the currently displayed contact
+ if (selection.length == 1)
+ this.show_contentframe(false);
+ }
+
+ // also send search request to get the right records from the next page
+ if (this.env.search_request)
+ qs += '&_search='+this.env.search_request;
+
+ // send request to server
+ this.http_post('delete', '_cid='+urlencode(a_cids.join(','))+'&_source='+urlencode(this.env.source)+'&_from='+(this.env.action ? this.env.action : '')+qs);
+ return true;
+ };
+
+ // update a contact record in the list
+ this.update_contact_row = function(cid, cols_arr)
+ {
+ var row;
+ if (this.contact_list.rows[cid] && (row = this.contact_list.rows[cid].obj))
+ {
+ for (var c=0; c<cols_arr.length; c++)
+ if (row.cells[c])
+ row.cells[c].innerHTML = cols_arr[c];
+
+ return true;
+ }
+
+ return false;
+ };
+
+
+ /*********************************************************/
+ /********* user settings methods *********/
+ /*********************************************************/
+
+ this.init_subscription_list = function()
+ {
+ var p = this;
+ this.subscription_list = new rcube_list_widget(this.gui_objects.subscriptionlist, {multiselect:false, draggable:true, keyboard:false, toggleselect:true});
+ this.subscription_list.addEventListener('select', function(o){ p.subscription_select(o); });
+ this.subscription_list.addEventListener('dragstart', function(o){ p.drag_active = true; });
+ this.subscription_list.addEventListener('dragend', function(o){ p.subscription_move_folder(o); });
+ this.subscription_list.row_init = function (row)
+ {
+ var anchors = row.obj.getElementsByTagName('A');
+ if (anchors[0])
+ anchors[0].onclick = function() { p.rename_folder(row.id); return false; };
+ if (anchors[1])
+ anchors[1].onclick = function() { p.delete_folder(row.id); return false; };
+ row.obj.onmouseover = function() { p.focus_subscription(row.id); };
+ row.obj.onmouseout = function() { p.unfocus_subscription(row.id); };
+ }
+ this.subscription_list.init();
+ }
+
+ this.identity_select = function(list)
+ {
+ var id;
+ if (id = list.get_single_selection())
+ this.load_identity(id, 'edit-identity');
+ };
+
+ // load contact record
+ this.load_identity = function(id, action)
+ {
+ if (action=='edit-identity' && (!id || id==this.env.iid))
+ return false;
+
+ var add_url = '';
+ var target = window;
+ if (this.env.contentframe && window.frames && window.frames[this.env.contentframe])
+ {
+ add_url = '&_framed=1';
+ target = window.frames[this.env.contentframe];
+ document.getElementById(this.env.contentframe).style.visibility = 'inherit';
+ }
+
+ if (action && (id || action=='add-identity'))
+ {
+ this.set_busy(true);
+ target.location.href = this.env.comm_path+'&_action='+action+'&_iid='+id+add_url;
+ }
+ return true;
+ };
+
+ this.delete_identity = function(id)
+ {
+ // exit if no mailbox specified or if selection is empty
+ var selection = this.identity_list.get_selection();
+ if (!(selection.length || this.env.iid))
+ return;
+
+ if (!id)
+ id = this.env.iid ? this.env.iid : selection[0];
+
+ // if (this.env.framed && id)
+ this.goto_url('delete-identity', '_iid='+id, true);
+ return true;
+ };
+
+ this.focus_subscription = function(id)
+ {
+ var row, folder;
+ var reg = RegExp('['+RegExp.escape(this.env.delimiter)+']?[^'+RegExp.escape(this.env.delimiter)+']+$');
+
+ if (this.drag_active && this.env.folder && (row = document.getElementById(id)))
+ if (this.env.subscriptionrows[id] &&
+ (folder = this.env.subscriptionrows[id][0]))
+ {
+ if (this.check_droptarget(folder) &&
+ !this.env.subscriptionrows[this.get_folder_row_id(this.env.folder)][2] &&
+ (folder != this.env.folder.replace(reg, '')) &&
+ (!folder.match(new RegExp('^'+RegExp.escape(this.env.folder+this.env.delimiter)))))
+ {
+ this.set_env('dstfolder', folder);
+ this.set_classname(row, 'droptarget', true);
+ }
+ }
+ else if (this.env.folder.match(new RegExp(RegExp.escape(this.env.delimiter))))
+ {
+ this.set_env('dstfolder', this.env.delimiter);
+ this.set_classname(this.subscription_list.frame, 'droptarget', true);
+ }
+ }
+
+ this.unfocus_subscription = function(id)
+ {
+ var row;
+ this.set_env('dstfolder', null);
+ if (this.env.subscriptionrows[id] &&
+ (row = document.getElementById(id)))
+ this.set_classname(row, 'droptarget', false);
+ else
+ this.set_classname(this.subscription_list.frame, 'droptarget', false);
+ }
+
+ this.subscription_select = function(list)
+ {
+ var id, folder;
+ if ((id = list.get_single_selection()) &&
+ this.env.subscriptionrows['rcmrow'+id] &&
+ (folder = this.env.subscriptionrows['rcmrow'+id][0]))
+ this.set_env('folder', folder);
+ else
+ this.set_env('folder', null);
+
+ if (this.gui_objects.createfolderhint)
+ this.gui_objects.createfolderhint.innerHTML = this.env.folder ? this.get_label('addsubfolderhint') : '';
+ };
+
+ this.subscription_move_folder = function(list)
+ {
+ var reg = RegExp('['+RegExp.escape(this.env.delimiter)+']?[^'+RegExp.escape(this.env.delimiter)+']+$');
+ if (this.env.folder && this.env.dstfolder && (this.env.dstfolder != this.env.folder) &&
+ (this.env.dstfolder != this.env.folder.replace(reg, '')))
+ {
+ var reg = new RegExp('[^'+RegExp.escape(this.env.delimiter)+']*['+RegExp.escape(this.env.delimiter)+']', 'g');
+ var basename = this.env.folder.replace(reg, '');
+ var newname = this.env.dstfolder==this.env.delimiter ? basename : this.env.dstfolder+this.env.delimiter+basename;
+
+ this.set_busy(true, 'foldermoving');
+ this.http_post('rename-folder', '_folder_oldname='+urlencode(this.env.folder)+'&_folder_newname='+urlencode(newname), true);
+ }
+ this.drag_active = false;
+ this.unfocus_subscription(this.get_folder_row_id(this.env.dstfolder));
+ };
+
+ // tell server to create and subscribe a new mailbox
+ this.create_folder = function(name)
+ {
+ if (this.edit_folder)
+ this.reset_folder_rename();
+
+ var form;
+ if ((form = this.gui_objects.editform) && form.elements['_folder_name'])
+ {
+ name = form.elements['_folder_name'].value;
+
+ if (name.indexOf(this.env.delimiter)>=0)
+ {
+ alert(this.get_label('forbiddencharacter')+' ('+this.env.delimiter+')');
+ return false;
+ }
+
+ if (this.env.folder && name != '')
+ name = this.env.folder+this.env.delimiter+name;
+
+ this.set_busy(true, 'foldercreating');
+ this.http_post('create-folder', '_name='+urlencode(name), true);
+ }
+ else if (form.elements['_folder_name'])
+ form.elements['_folder_name'].focus();
+ };
+
+ // start renaming the mailbox name.
+ // this will replace the name string with an input field
+ this.rename_folder = function(id)
+ {
+ var temp, row, form;
+
+ // reset current renaming
+ if (temp = this.edit_folder)
+ {
+ this.reset_folder_rename();
+ if (temp == id)
+ return;
+ }
+
+ if (id && this.env.subscriptionrows[id] && (row = document.getElementById(id)))
+ {
+ var reg = new RegExp('.*['+RegExp.escape(this.env.delimiter)+']');
+ this.name_input = document.createElement('INPUT');
+ this.name_input.value = this.env.subscriptionrows[id][0].replace(reg, '');
+ this.name_input.style.width = '100%';
+
+ reg = new RegExp('['+RegExp.escape(this.env.delimiter)+']?[^'+RegExp.escape(this.env.delimiter)+']+$');
+ this.name_input.__parent = this.env.subscriptionrows[id][0].replace(reg, '');
+ this.name_input.onkeypress = function(e){ rcmail.name_input_keypress(e); };
+
+ row.cells[0].replaceChild(this.name_input, row.cells[0].firstChild);
+ this.edit_folder = id;
+ this.name_input.select();
+
+ if (form = this.gui_objects.editform)
+ form.onsubmit = function(){ return false; };
+ }
+ };
+
+ // remove the input field and write the current mailbox name to the table cell
+ this.reset_folder_rename = function()
+ {
+ var cell = this.name_input ? this.name_input.parentNode : null;
+
+ if (cell && this.edit_folder && this.env.subscriptionrows[this.edit_folder])
+ cell.innerHTML = this.env.subscriptionrows[this.edit_folder][1];
+
+ this.edit_folder = null;
+ };
+
+ // handler for keyboard events on the input field
+ this.name_input_keypress = function(e)
+ {
+ var key = rcube_event.get_keycode(e);
+
+ // enter
+ if (key==13)
+ {
+ var newname = this.name_input ? this.name_input.value : null;
+ if (this.edit_folder && newname)
+ {
+ if (newname.indexOf(this.env.delimiter)>=0)
+ {
+ alert(this.get_label('forbiddencharacter')+' ('+this.env.delimiter+')');
+ return false;
+ }
+
+ if (this.name_input.__parent)
+ newname = this.name_input.__parent + this.env.delimiter + newname;
+
+ this.set_busy(true, 'folderrenaming');
+ this.http_post('rename-folder', '_folder_oldname='+urlencode(this.env.subscriptionrows[this.edit_folder][0])+'&_folder_newname='+urlencode(newname), true);
+ }
+ }
+ // escape
+ else if (key==27)
+ this.reset_folder_rename();
+ };
+
+ // delete a specific mailbox with all its messages
+ this.delete_folder = function(id)
+ {
+ var folder = this.env.subscriptionrows[id][0];
+
+ if (this.edit_folder)
+ this.reset_folder_rename();
+
+ if (folder && confirm(this.get_label('deletefolderconfirm')))
+ {
+ this.set_busy(true, 'folderdeleting');
+ this.http_post('delete-folder', '_mboxes='+urlencode(folder), true);
+ this.set_env('folder', null);
+
+ if (this.gui_objects.createfolderhint)
+ this.gui_objects.createfolderhint.innerHTML = '';
+ }
+ };
+
+ // add a new folder to the subscription list by cloning a folder row
+ this.add_folder_row = function(name, display_name, replace, before)
+ {
+ if (!this.gui_objects.subscriptionlist)
+ return false;
+
+ // find not protected folder
+ for (var refid in this.env.subscriptionrows)
+ if (this.env.subscriptionrows[refid]!=null && !this.env.subscriptionrows[refid][2])
+ break;
+
+ var refrow, form;
+ var tbody = this.gui_objects.subscriptionlist.tBodies[0];
+ var id = 'rcmrow'+(tbody.childNodes.length+1);
+ var selection = this.subscription_list.get_single_selection();
+
+ if (replace && replace.id)
+ {
+ id = replace.id;
+ refid = replace.id;
+ }
+
+ if (!id || !(refrow = document.getElementById(refid)))
+ {
+ // Refresh page if we don't have a table row to clone
+ this.goto_url('folders');
+ }
+ else
+ {
+ // clone a table row if there are existing rows
+ var row = this.clone_table_row(refrow);
+ row.id = id;
+
+ if (before && (before = this.get_folder_row_id(before)))
+ tbody.insertBefore(row, document.getElementById(before));
+ else
+ tbody.appendChild(row);
+
+ if (replace)
+ tbody.removeChild(replace);
+ }
+
+ // add to folder/row-ID map
+ this.env.subscriptionrows[row.id] = [name, display_name, 0];
+
+ // set folder name
+ row.cells[0].innerHTML = display_name;
+
+ // set messages count to zero
+ if (!replace)
+ row.cells[1].innerHTML = '*';
+
+ if (!replace && row.cells[2] && row.cells[2].firstChild.tagName=='INPUT')
+ {
+ row.cells[2].firstChild.value = name;
+ row.cells[2].firstChild.checked = true;
+ }
+
+ // add new folder to rename-folder list and clear input field
+ if (!replace && (form = this.gui_objects.editform))
+ {
+ if (form.elements['_folder_oldname'])
+ form.elements['_folder_oldname'].options[form.elements['_folder_oldname'].options.length] = new Option(name,name);
+ if (form.elements['_folder_name'])
+ form.elements['_folder_name'].value = '';
+ }
+
+ this.init_subscription_list();
+ if (selection && document.getElementById('rcmrow'+selection))
+ this.subscription_list.select_row(selection);
+
+ if (document.getElementById(id).scrollIntoView)
+ document.getElementById(id).scrollIntoView();
+ };
+
+ // replace an existing table row with a new folder line
+ this.replace_folder_row = function(oldfolder, newfolder, display_name, before)
+ {
+ var id = this.get_folder_row_id(oldfolder);
+ var row = document.getElementById(id);
+
+ // replace an existing table row (if found)
+ this.add_folder_row(newfolder, display_name, row, before);
+
+ // rename folder in rename-folder dropdown
+ var form, elm;
+ if ((form = this.gui_objects.editform) && (elm = form.elements['_folder_oldname']))
+ {
+ for (var i=0;i<elm.options.length;i++)
+ {
+ if (elm.options[i].value == oldfolder)
+ {
+ elm.options[i].text = display_name;
+ elm.options[i].value = newfolder;
+ break;
+ }
+ }
+
+ form.elements['_folder_newname'].value = '';
+ }
+ };
+
+ // remove the table row of a specific mailbox from the table
+ // (the row will not be removed, just hidden)
+ this.remove_folder_row = function(folder)
+ {
+ var row;
+ var id = this.get_folder_row_id(folder);
+ if (id && (row = document.getElementById(id)))
+ row.style.display = 'none';
+
+ // remove folder from rename-folder list
+ var form;
+ if ((form = this.gui_objects.editform) && form.elements['_folder_oldname'])
+ {
+ for (var i=0;i<form.elements['_folder_oldname'].options.length;i++)
+ {
+ if (form.elements['_folder_oldname'].options[i].value == folder)
+ {
+ form.elements['_folder_oldname'].options[i] = null;
+ break;
+ }
+ }
+ }
+
+ if (form && form.elements['_folder_newname'])
+ form.elements['_folder_newname'].value = '';
+ };
+
+ this.subscribe_folder = function(folder)
+ {
+ if (folder)
+ this.http_post('subscribe', '_mbox='+urlencode(folder));
+ };
+
+ this.unsubscribe_folder = function(folder)
+ {
+ if (folder)
+ this.http_post('unsubscribe', '_mbox='+urlencode(folder));
+ };
+
+ // helper method to find a specific mailbox row ID
+ this.get_folder_row_id = function(folder)
+ {
+ for (var id in this.env.subscriptionrows)
+ if (this.env.subscriptionrows[id] && this.env.subscriptionrows[id][0] == folder)
+ break;
+
+ return id;
+ };
+
+ // duplicate a specific table row
+ this.clone_table_row = function(row)
+ {
+ var cell, td;
+ var new_row = document.createElement('TR');
+ for(var n=0; n<row.cells.length; n++)
+ {
+ cell = row.cells[n];
+ td = document.createElement('TD');
+
+ if (cell.className)
+ td.className = cell.className;
+ if (cell.align)
+ td.setAttribute('align', cell.align);
+
+ td.innerHTML = cell.innerHTML;
+ new_row.appendChild(td);
+ }
+
+ return new_row;
+ };
+
+
+ /*********************************************************/
+ /********* GUI functionality *********/
+ /*********************************************************/
+
+ // eable/disable buttons for page shifting
+ this.set_page_buttons = function()
+ {
+ this.enable_command('nextpage', (this.env.pagecount > this.env.current_page));
+ this.enable_command('lastpage', (this.env.pagecount > this.env.current_page));
+ this.enable_command('previouspage', (this.env.current_page > 1));
+ this.enable_command('firstpage', (this.env.current_page > 1));
+ }
+
+ // set button to a specific state
+ this.set_button = function(command, state)
+ {
+ var a_buttons = this.buttons[command];
+ var button, obj;
+
+ if(!a_buttons || !a_buttons.length)
+ return false;
+
+ for(var n=0; n<a_buttons.length; n++)
+ {
+ button = a_buttons[n];
+ obj = document.getElementById(button.id);
+
+ // get default/passive setting of the button
+ if (obj && button.type=='image' && !button.status) {
+ button.pas = obj._original_src ? obj._original_src : obj.src;
+ // respect PNG fix on IE browsers
+ if (obj.runtimeStyle && obj.runtimeStyle.filter && obj.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/))
+ button.pas = RegExp.$1;
+ }
+ else if (obj && !button.status)
+ button.pas = String(obj.className);
+
+ // set image according to button state
+ if (obj && button.type=='image' && button[state])
+ {
+ button.status = state;
+ obj.src = button[state];
+ }
+ // set class name according to button state
+ else if (obj && typeof(button[state])!='undefined')
+ {
+ button.status = state;
+ obj.className = button[state];
+ }
+ // disable/enable input buttons
+ if (obj && button.type=='input')
+ {
+ button.status = state;
+ obj.disabled = !state;
+ }
+ }
+ };
+
+ // display a specific alttext
+ this.set_alttext = function(command, label)
+ {
+ if (!this.buttons[command] || !this.buttons[command].length)
+ return;
+
+ var button, obj, link;
+ for (var n=0; n<this.buttons[command].length; n++)
+ {
+ button = this.buttons[command][n];
+ obj = document.getElementById(button.id);
+
+ if (button.type=='image' && obj)
+ {
+ obj.setAttribute('alt', this.get_label(label));
+ if ((link = obj.parentNode) && link.tagName == 'A')
+ link.setAttribute('title', this.get_label(label));
+ }
+ else if (obj)
+ obj.setAttribute('title', this.get_label(label));
+ }
+ };
+
+ // mouse over button
+ this.button_over = function(command, id)
+ {
+ var a_buttons = this.buttons[command];
+ var button, img;
+
+ if(!a_buttons || !a_buttons.length)
+ return false;
+
+ for(var n=0; n<a_buttons.length; n++)
+ {
+ button = a_buttons[n];
+ if(button.id==id && button.status=='act')
+ {
+ img = document.getElementById(button.id);
+ if (img && button.over)
+ img.src = button.over;
+ }
+ }
+
+ };
+
+ // mouse down on button
+ this.button_sel = function(command, id)
+ {
+ var a_buttons = this.buttons[command];
+ var button, img;
+
+ if(!a_buttons || !a_buttons.length)
+ return;
+
+ for(var n=0; n<a_buttons.length; n++)
+ {
+ button = a_buttons[n];
+ if(button.id==id && button.status=='act')
+ {
+ img = document.getElementById(button.id);
+ if (img && button.sel)
+ img.src = button.sel;
+ }
+ }
+ };
+
+ // mouse out of button
+ this.button_out = function(command, id)
+ {
+ var a_buttons = this.buttons[command];
+ var button, img;
+
+ if(!a_buttons || !a_buttons.length)
+ return;
+
+ for(var n=0; n<a_buttons.length; n++)
+ {
+ button = a_buttons[n];
+ if(button.id==id && button.status=='act')
+ {
+ img = document.getElementById(button.id);
+ if (img && button.act)
+ img.src = button.act;
+ }
+ }
+ };
+
+ // set/unset a specific class name
+ this.set_classname = function(obj, classname, set)
+ {
+ var reg = new RegExp('\s*'+classname, 'i');
+ if (!set && obj.className.match(reg))
+ obj.className = obj.className.replace(reg, '');
+ else if (set && !obj.className.match(reg))
+ obj.className += ' '+classname;
+ };
+
+ // write to the document/window title
+ this.set_pagetitle = function(title)
+ {
+ if (title && document.title)
+ document.title = title;
+ }
+
+ // display a system message
+ this.display_message = function(msg, type, hold)
+ {
+ if (!this.loaded) // save message in order to display after page loaded
+ {
+ this.pending_message = new Array(msg, type);
+ return true;
+ }
+
+ // pass command to parent window
+ if (this.env.framed && parent.rcmail)
+ return parent.rcmail.display_message(msg, type, hold);
+
+ if (!this.gui_objects.message)
+ return false;
+
+ if (this.message_timer)
+ clearTimeout(this.message_timer);
+
+ var cont = msg;
+ if (type)
+ cont = '<div class="'+type+'">'+cont+'</div>';
+
+ var _rcube = this;
+ this.gui_objects.message.innerHTML = cont;
+ this.gui_objects.message.style.display = 'block';
+
+ if (type!='loading')
+ this.gui_objects.message.onmousedown = function(){ _rcube.hide_message(); return true; };
+
+ if (!hold)
+ this.message_timer = window.setTimeout(function(){ ref.hide_message(); }, this.message_time);
+ };
+
+ // make a message row disapear
+ this.hide_message = function()
+ {
+ if (this.gui_objects.message)
+ {
+ this.gui_objects.message.style.display = 'none';
+ this.gui_objects.message.onmousedown = null;
+ }
+ };
+
+ // mark a mailbox as selected and set environment variable
+ this.select_folder = function(name, old)
+ {
+ if (this.gui_objects.folderlist)
+ {
+ var current_li, target_li;
+
+ if ((current_li = this.get_folder_li(old)))
+ {
+ this.set_classname(current_li, 'selected', false);
+ this.set_classname(current_li, 'unfocused', false);
+ }
+
+ if ((target_li = this.get_folder_li(name)))
+ {
+ this.set_classname(target_li, 'unfocused', false);
+ this.set_classname(target_li, 'selected', true);
+ }
+ }
+ };
+
+ // helper method to find a folder list item
+ this.get_folder_li = function(name)
+ {
+ if (this.gui_objects.folderlist)
+ {
+ name = String(name).replace(this.identifier_expr, '');
+ return document.getElementById('rcmli'+name);
+ }
+
+ return null;
+ };
+
+ // for reordering column array, Konqueror workaround
+ this.set_message_coltypes = function(coltypes)
+ {
+ this.coltypes = coltypes;
+
+ // set correct list titles
+ var cell, col;
+ var thead = this.gui_objects.messagelist ? this.gui_objects.messagelist.tHead : null;
+ for (var n=0; thead && n<this.coltypes.length; n++)
+ {
+ col = this.coltypes[n];
+ if ((cell = thead.rows[0].cells[n+1]) && (col=='from' || col=='to'))
+ {
+ // if we have links for sorting, it's a bit more complicated...
+ if (cell.firstChild && cell.firstChild.tagName=='A')
+ {
+ cell.firstChild.innerHTML = this.get_label(this.coltypes[n]);
+ cell.firstChild.onclick = function(){ return rcmail.command('sort', this.__col, this); };
+ cell.firstChild.__col = col;
+ }
+ else
+ cell.innerHTML = this.get_label(this.coltypes[n]);
+
+ cell.id = 'rcm'+col;
+ }
+ else if (col == 'subject' && this.message_list)
+ this.message_list.subject_col = n+1;
+ }
+ };
+
+ // create a table row in the message list
+ this.add_message_row = function(uid, cols, flags, attachment, attop)
+ {
+ if (!this.gui_objects.messagelist || !this.message_list)
+ return false;
+
+ var tbody = this.gui_objects.messagelist.tBodies[0];
+ var rowcount = tbody.rows.length;
+ var even = rowcount%2;
+
+ this.env.messages[uid] = {deleted:flags.deleted?1:0,
+ replied:flags.replied?1:0,
+ unread:flags.unread?1:0,
+ forwarded:flags.forwarded?1:0,
+ flagged:flags.flagged?1:0};
+
+ var row = document.createElement('TR');
+ row.id = 'rcmrow'+uid;
+ row.className = 'message'
+ + (even ? ' even' : ' odd')
+ + (flags.unread ? ' unread' : '')
+ + (flags.deleted ? ' deleted' : '')
+ + (flags.flagged ? ' flagged' : '');
+
+ if (this.message_list.in_selection(uid))
+ row.className += ' selected';
+
+ var icon = this.env.messageicon;
+ if (flags.deleted && this.env.deletedicon)
+ icon = this.env.deletedicon;
+ else if (flags.replied && this.env.repliedicon)
+ {
+ if (flags.forwarded && this.env.forwardedrepliedicon)
+ icon = this.env.forwardedrepliedicon;
+ else
+ icon = this.env.repliedicon;
+ }
+ else if (flags.forwarded && this.env.forwardedicon)
+ icon = this.env.forwardedicon;
+ else if(flags.unread && this.env.unreadicon)
+ icon = this.env.unreadicon;
+
+ var col = document.createElement('TD');
+ col.className = 'icon';
+ col.innerHTML = icon ? '<img src="'+icon+'" alt="" />' : '';
+ row.appendChild(col);
+
+ // add each submitted col
+ for (var n = 0; n < this.coltypes.length; n++)
+ {
+ var c = this.coltypes[n];
+ col = document.createElement('TD');
+ col.className = String(c).toLowerCase();
+
+ if (c=='flag')
+ {
+ if (flags.flagged && this.env.flaggedicon)
+ col.innerHTML = '<img src="'+this.env.flaggedicon+'" alt="" />';
+ else if(!flags.flagged && this.env.unflaggedicon)
+ col.innerHTML = '<img src="'+this.env.unflaggedicon+'" alt="" />';
+ }
+ else if (c=='attachment')
+ col.innerHTML = attachment && this.env.attachmenticon ? '<img src="'+this.env.attachmenticon+'" alt="" />' : ' ';
+ else
+ col.innerHTML = cols[c];
+
+ row.appendChild(col);
+ }
+
+ this.message_list.insert_row(row, attop);
+
+ // remove 'old' row
+ if (attop && this.env.pagesize && this.message_list.rowcount > this.env.pagesize)
+ {
+ var uid = this.message_list.get_last_row();
+ this.message_list.remove_row(uid);
+ this.message_list.clear_selection(uid);
+ }
+ };
+
+ // replace content of row count display
+ this.set_rowcount = function(text)
+ {
+ if (this.gui_objects.countdisplay)
+ this.gui_objects.countdisplay.innerHTML = text;
+
+ // update page navigation buttons
+ this.set_page_buttons();
+ };
+
+ // replace content of mailboxname display
+ this.set_mailboxname = function(content)
+ {
+ if (this.gui_objects.mailboxname && content)
+ this.gui_objects.mailboxname.innerHTML = content;
+ };
+
+ // replace content of quota display
+ this.set_quota = function(content)
+ {
+ if (this.gui_objects.quotadisplay && content)
+ this.gui_objects.quotadisplay.innerHTML = content;
+ };
+
+ // update the mailboxlist
+ this.set_unread_count = function(mbox, count, set_title)
+ {
+ if (!this.gui_objects.mailboxlist)
+ return false;
+
+ this.env.unread_counts[mbox] = count;
+ this.set_unread_count_display(mbox, set_title);
+ }
+
+ // update the mailbox count display
+ this.set_unread_count_display = function(mbox, set_title)
+ {
+ var reg, text_obj, item, mycount, childcount, div;
+ if (item = this.get_folder_li(mbox))
+ {
+ mycount = this.env.unread_counts[mbox] ? this.env.unread_counts[mbox] : 0;
+ text_obj = item.getElementsByTagName('a')[0];
+ reg = /\s+\([0-9]+\)$/i;
+
+ childcount = 0;
+ if ((div = item.getElementsByTagName('div')[0]) &&
+ div.className.match(/collapsed/))
+ {
+ // add children's counters
+ for (var k in this.env.unread_counts)
+ if (k.indexOf(mbox + this.env.delimiter) == 0) {
+ childcount += this.env.unread_counts[k];
+ }
+ }
+
+ if (mycount && text_obj.innerHTML.match(reg))
+ text_obj.innerHTML = text_obj.innerHTML.replace(reg, ' ('+mycount+')');
+ else if (mycount)
+ text_obj.innerHTML += ' ('+mycount+')';
+ else
+ text_obj.innerHTML = text_obj.innerHTML.replace(reg, '');
+
+ // set parent's display
+ reg = new RegExp(RegExp.escape(this.env.delimiter) + '[^' + RegExp.escape(this.env.delimiter) + ']+$');
+ if (mbox.match(reg))
+ this.set_unread_count_display(mbox.replace(reg, ''), false);
+
+ // set the right classes
+ this.set_classname(item, 'unread', (mycount+childcount)>0 ? true : false);
+ }
+
+ // set unread count to window title
+ reg = /^\([0-9]+\)\s+/i;
+ if (set_title && document.title)
+ {
+ var doc_title = String(document.title);
+ var new_title = "";
+
+ if (mycount && doc_title.match(reg))
+ new_title = doc_title.replace(reg, '('+mycount+') ');
+ else if (mycount)
+ new_title = '('+mycount+') '+doc_title;
+ else
+ new_title = doc_title.replace(reg, '');
+
+ this.set_pagetitle(new_title);
+ }
+ };
+
+ // notifies that a new message(s) has hit the mailbox
+ this.new_message_focus = function()
+ {
+ // focus main window
+ if (this.env.framed && window.parent)
+ window.parent.focus();
+ else
+ window.focus();
+ }
+
+ // add row to contacts list
+ this.add_contact_row = function(cid, cols, select)
+ {
+ if (!this.gui_objects.contactslist || !this.gui_objects.contactslist.tBodies[0])
+ return false;
+
+ var tbody = this.gui_objects.contactslist.tBodies[0];
+ var rowcount = tbody.rows.length;
+ var even = rowcount%2;
+
+ var row = document.createElement('TR');
+ row.id = 'rcmrow'+cid;
+ row.className = 'contact '+(even ? 'even' : 'odd');
+
+ if (this.contact_list.in_selection(cid))
+ row.className += ' selected';
+
+ // add each submitted col
+ for (var c in cols)
+ {
+ col = document.createElement('TD');
+ col.className = String(c).toLowerCase();
+ col.innerHTML = cols[c];
+ row.appendChild(col);
+ }
+
+ this.contact_list.insert_row(row);
+ this.enable_command('export', (this.contact_list.rowcount > 0));
+ };
+
+ this.toggle_prefer_html = function(checkbox)
+ {
+ var addrbook_show_images;
+ if (addrbook_show_images = document.getElementById('rcmfd_addrbook_show_images'))
+ addrbook_show_images.disabled = !checkbox.checked;
+ }
+
+ // display fetched raw headers
+ this.set_headers = function(content)
+ {
+ if (this.gui_objects.all_headers_row && this.gui_objects.all_headers_box && content)
+ {
+ var box = this.gui_objects.all_headers_box;
+ box.innerHTML = content;
+ box.style.display = 'block';
+
+ if (this.env.framed && parent.rcmail)
+ parent.rcmail.set_busy(false);
+ else
+ this.set_busy(false);
+ }
+ };
+
+ // display all-headers row and fetch raw message headers
+ this.load_headers = function(elem)
+ {
+ if (!this.gui_objects.all_headers_row || !this.gui_objects.all_headers_box || !this.env.uid)
+ return;
+
+ this.set_classname(elem, 'show-headers', false);
+ this.set_classname(elem, 'hide-headers', true);
+ this.gui_objects.all_headers_row.style.display = bw.ie ? 'block' : 'table-row';
+ elem.onclick = function() { rcmail.hide_headers(elem); }
+
+ // fetch headers only once
+ if (!this.gui_objects.all_headers_box.innerHTML)
+ {
+ this.display_message(this.get_label('loading'), 'loading', true);
+ this.http_post('headers', '_uid='+this.env.uid);
+ }
+ }
+
+ // hide all-headers row
+ this.hide_headers = function(elem)
+ {
+ if (!this.gui_objects.all_headers_row || !this.gui_objects.all_headers_box)
+ return;
+
+ this.set_classname(elem, 'hide-headers', false);
+ this.set_classname(elem, 'show-headers', true);
+ this.gui_objects.all_headers_row.style.display = 'none';
+ elem.onclick = function() { rcmail.load_headers(elem); }
+ }
+
+
+ /********************************************************/
+ /********* html to text conversion functions *********/
+ /********************************************************/
+
+ this.html2plain = function(htmlText, id)
+ {
+ var http_request = new rcube_http_request();
+ var url = this.env.bin_path+'html2text.php';
+ var rcmail = this;
+
+ this.set_busy(true, 'converting');
+ //console.log('HTTP POST: '+url);
+
+ http_request.onerror = function(o) { rcmail.http_error(o); };
+ http_request.oncomplete = function(o) { rcmail.set_text_value(o, id); };
+ http_request.POST(url, htmlText, 'application/octet-stream');
+ }
+
+ this.set_text_value = function(httpRequest, id)
+ {
+ this.set_busy(false);
+ document.getElementById(id).value = httpRequest.get_text();
+ //console.log(httpRequest.get_text());
+ }
+
+
+ /********************************************************/
+ /********* remote request methods *********/
+ /********************************************************/
+
+ this.redirect = function(url, lock)
+ {
+ if (lock || lock === null)
+ this.set_busy(true);
+
+ if (this.env.framed && window.parent)
+ parent.location.href = url;
+ else
+ location.href = url;
+ };
+
+ this.goto_url = function(action, query, lock)
+ {
+ var querystring = query ? '&'+query : '';
+ this.redirect(this.env.comm_path+'&_action='+action+querystring, lock);
+ };
+
+ this.http_sockets = new Array();
+
+ // find a non-busy socket or create a new one
+ this.get_request_obj = function()
+ {
+ for (var n=0; n<this.http_sockets.length; n++)
+ {
+ if (!this.http_sockets[n].busy)
+ return this.http_sockets[n];
+ }
+
+ // create a new XMLHTTP object
+ var i = this.http_sockets.length;
+ this.http_sockets[i] = new rcube_http_request();
+
+ return this.http_sockets[i];
+ };
+
+ // send a http request to the server
+ this.http_request = function(action, querystring, lock)
+ {
+ var request_obj = this.get_request_obj();
+ querystring += (querystring ? '&' : '') + '_remote=1';
+
+ // add timestamp to request url to avoid cacheing problems in Safari
+ if (bw.safari)
+ querystring += '&_ts='+(new Date().getTime());
+
+ // send request
+ if (request_obj)
+ {
+ //console.log('HTTP request: '+this.env.comm_path+'&_action='+action+'&'+querystring);
+
+ if (lock)
+ this.set_busy(true);
+
+ var rcm = this;
+ request_obj.__lock = lock ? true : false;
+ request_obj.__action = action;
+ request_obj.onerror = function(o){ ref.http_error(o); };
+ request_obj.oncomplete = function(o){ ref.http_response(o); };
+ request_obj.GET(this.env.comm_path+'&_action='+action+'&'+querystring);
+ }
+ };
+
+ // send a http POST request to the server
+ this.http_post = function(action, postdata, lock)
+ {
+ var request_obj;
+ if (postdata && typeof(postdata) == 'object')
+ postdata._remote = 1;
+ else
+ postdata += (postdata ? '&' : '') + '_remote=1';
+
+ // send request
+ if (request_obj = this.get_request_obj())
+ {
+ //console.log('HTTP POST: '+this.env.comm_path+'&_action='+action);
+
+ if (lock)
+ this.set_busy(true);
+
+ var rcm = this;
+ request_obj.__lock = lock ? true : false;
+ request_obj.__action = action;
+ request_obj.onerror = function(o){ rcm.http_error(o); };
+ request_obj.oncomplete = function(o){ rcm.http_response(o); };
+ request_obj.POST(this.env.comm_path+'&_action='+action, postdata);
+ }
+ };
+
+ // handle HTTP response
+ this.http_response = function(request_obj)
+ {
+ var ctype = request_obj.get_header('Content-Type');
+ if (ctype)
+ {
+ ctype = String(ctype).toLowerCase();
+ var ctype_array=ctype.split(";");
+ ctype = ctype_array[0];
+ }
+
+ if (request_obj.__lock)
+ this.set_busy(false);
+
+ //console.log(request_obj.get_text());
+
+ // if we get javascript code from server -> execute it
+ if (request_obj.get_text() && (ctype=='text/javascript' || ctype=='application/x-javascript'))
+ eval(request_obj.get_text());
+
+ // process the response data according to the sent action
+ switch (request_obj.__action) {
+ case 'delete':
+ if (this.task == 'addressbook') {
+ var uid = this.contact_list.get_selection();
+ this.enable_command('compose', (uid && this.contact_list.rows[uid]));
+ this.enable_command('delete', 'edit', (uid && this.contact_list.rows[uid] && this.env.address_sources && !this.env.address_sources[this.env.source].readonly));
+ this.enable_command('export', (this.contact_list && this.contact_list.rowcount > 0));
+ }
+
+ case 'moveto':
+ if (this.env.action == 'show')
+ this.command('list');
+ else if (this.message_list)
+ this.message_list.init();
+ break;
+
+ case 'purge':
+ case 'expunge':
+ if (!this.env.messagecount && this.task == 'mail') {
+ // clear preview pane content
+ if (this.env.contentframe)
+ this.show_contentframe(false);
+ // disable commands useless when mailbox is empty
+ this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete', 'mark', 'viewsource',
+ 'print', 'load-attachment', 'purge', 'expunge', 'select-all', 'select-none', 'sort', false);
+ }
+ break;
+
+ case 'check-recent':
+ case 'getunread':
+ case 'list':
+ if (this.task == 'mail') {
+ if (this.message_list && request_obj.__action == 'list')
+ this.msglist_select(this.message_list);
+ this.enable_command('show', 'expunge', 'select-all', 'select-none', 'sort', (this.env.messagecount > 0));
+ this.enable_command('purge', this.purge_mailbox_test());
+ }
+ else if (this.task == 'addressbook')
+ this.enable_command('export', (this.contact_list && this.contact_list.rowcount > 0));
+
+ break;
+ }
+
+ request_obj.reset();
+ };
+
+ // handle HTTP request errors
+ this.http_error = function(request_obj)
+ {
+ //alert('Error sending request: '+request_obj.url+' => HTTP '+request_obj.xmlhttp.status);
+ if (request_obj.__lock)
+ this.set_busy(false);
+
+ request_obj.reset();
+ request_obj.__lock = false;
+ this.display_message('Unknown Server Error!', 'error');
+ };
+
+ // use an image to send a keep-alive siganl to the server
+ this.send_keep_alive = function()
+ {
+ var d = new Date();
+ this.http_request('keep-alive', '_t='+d.getTime());
+ };
+
+ // send periodic request to check for recent messages
+ this.check_for_recent = function(setbusy)
+ {
+ if (this.busy)
+ return;
+
+ if (setbusy)
+ this.set_busy(true, 'checkingmail');
+
+ this.http_request('check-recent', (this.env.search_request ? '_search='+this.env.search_request+'&' : '') + '_t='+(new Date().getTime()), true);
+ };
+
+
+ /********************************************************/
+ /********* helper methods *********/
+ /********************************************************/
+
+ // check if we're in show mode or if we have a unique selection
+ // and return the message uid
+ this.get_single_uid = function()
+ {
+ return this.env.uid ? this.env.uid : (this.message_list ? this.message_list.get_single_selection() : null);
+ };
+
+ // same as above but for contacts
+ this.get_single_cid = function()
+ {
+ return this.env.cid ? this.env.cid : (this.contact_list ? this.contact_list.get_single_selection() : null);
+ };
+
+
+ this.get_caret_pos = function(obj)
+ {
+ if (typeof(obj.selectionEnd)!='undefined')
+ return obj.selectionEnd;
+
+ else if (document.selection && document.selection.createRange)
+ {
+ var range = document.selection.createRange();
+ if (range.parentElement()!=obj)
+ return 0;
+
+ var gm = range.duplicate();
+ if (obj.tagName=='TEXTAREA')
+ gm.moveToElementText(obj);
+ else
+ gm.expand('textedit');
+
+ gm.setEndPoint('EndToStart', range);
+ var p = gm.text.length;
+
+ return p<=obj.value.length ? p : -1;
+ }
+
+ else
+ return obj.value.length;
+ };
+
+ this.set_caret2start = function(obj)
+ {
+ if (obj.createTextRange)
+ {
+ var range = obj.createTextRange();
+ range.collapse(true);
+ range.select();
+ }
+ else if (obj.setSelectionRange)
+ obj.setSelectionRange(0,0);
+
+ obj.focus();
+ };
+
+ // set all fields of a form disabled
+ this.lock_form = function(form, lock)
+ {
+ if (!form || !form.elements)
+ return;
+
+ var type;
+ for (var n=0; n<form.elements.length; n++)
+ {
+ type = form.elements[n];
+ if (type=='hidden')
+ continue;
+
+ form.elements[n].disabled = lock;
+ }
+ };
+
+ } // end object rcube_webmail
+
+
+/**
+ * Class for sending HTTP requests
+ * @constructor
+ */
+function rcube_http_request()
+ {
+ this.url = '';
+ this.busy = false;
+ this.xmlhttp = null;
+
+ // reset object properties
+ this.reset = function()
+ {
+ // set unassigned event handlers
+ this.onloading = function(){ };
+ this.onloaded = function(){ };
+ this.oninteractive = function(){ };
+ this.oncomplete = function(){ };
+ this.onabort = function(){ };
+ this.onerror = function(){ };
+
+ this.url = '';
+ this.busy = false;
+ this.xmlhttp = null;
+ }
+
+ // create HTMLHTTP object
+ this.build = function()
+ {
+ if (window.XMLHttpRequest)
+ this.xmlhttp = new XMLHttpRequest();
+ else if (window.ActiveXObject)
+ {
+ try { this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
+ catch(e) { this.xmlhttp = null; }
+ }
+ else
+ {
+
+ }
+ }
+
+ // send GET request
+ this.GET = function(url)
+ {
+ this.build();
+
+ if (!this.xmlhttp)
+ {
+ this.onerror(this);
+ return false;
+ }
+
+ var _ref = this;
+ this.url = url;
+ this.busy = true;
+
+ this.xmlhttp.onreadystatechange = function(){ _ref.xmlhttp_onreadystatechange(); };
+ this.xmlhttp.open('GET', url, true);
+ this.xmlhttp.setRequestHeader('X-RoundCube-Referer', bw.get_cookie('roundcube_sessid'));
+ this.xmlhttp.send(null);
+ };
+
+ this.POST = function(url, body, contentType)
+ {
+ // default value for contentType if not provided
+ if (typeof(contentType) == 'undefined')
+ contentType = 'application/x-www-form-urlencoded';
+
+ this.build();
+
+ if (!this.xmlhttp)
+ {
+ this.onerror(this);
+ return false;
+ }
+
+ var req_body = body;
+ if (typeof(body) == 'object')
+ {
+ req_body = '';
+ for (var p in body)
+ req_body += (req_body ? '&' : '') + p+'='+urlencode(body[p]);
+ }
+
+ var ref = this;
+ this.url = url;
+ this.busy = true;
+
+ this.xmlhttp.onreadystatechange = function() { ref.xmlhttp_onreadystatechange(); };
+ this.xmlhttp.open('POST', url, true);
+ this.xmlhttp.setRequestHeader('Content-Type', contentType);
+ this.xmlhttp.setRequestHeader('X-RoundCube-Referer', bw.get_cookie('roundcube_sessid'));
+ this.xmlhttp.send(req_body);
+ };
+
+ // handle onreadystatechange event
+ this.xmlhttp_onreadystatechange = function()
+ {
+ if(this.xmlhttp.readyState == 1)
+ this.onloading(this);
+
+ else if(this.xmlhttp.readyState == 2)
+ this.onloaded(this);
+
+ else if(this.xmlhttp.readyState == 3)
+ this.oninteractive(this);
+
+ else if(this.xmlhttp.readyState == 4)
+ {
+ try {
+ if (this.xmlhttp.status == 0)
+ this.onabort(this);
+ else if(this.xmlhttp.status == 200)
+ this.oncomplete(this);
+ else
+ this.onerror(this);
+
+ this.busy = false;
+ }
+ catch(err)
+ {
+ this.onerror(this);
+ this.busy = false;
+ }
+ }
+ }
+
+ // getter method for HTTP headers
+ this.get_header = function(name)
+ {
+ return this.xmlhttp.getResponseHeader(name);
+ };
+
+ this.get_text = function()
+ {
+ return this.xmlhttp.responseText;
+ };
+
+ this.get_xml = function()
+ {
+ return this.xmlhttp.responseXML;
+ };
+
+ this.reset();
+
+ } // end class rcube_http_request
+
+// helper function to call the init method with a delay
+function call_init(o)
+ {
+ window.setTimeout('if (window[\''+o+'\'] && window[\''+o+'\'].init) { '+o+'.init(); }',
+ bw.win ? 500 : 200);
+ }
+
-/*
- +-----------------------------------------------------------------------+
- | RoundCube common js library |
- | |
- | This file is part of the RoundCube web development suite |
- | Copyright (C) 2005-2007, RoundCube Dev, - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com> |
- +-----------------------------------------------------------------------+
-
- $Id: common.js 1264 2008-04-07 09:08:06Z alec $
-*/
-
-// Constants
-var CONTROL_KEY = 1;
-var SHIFT_KEY = 2;
-var CONTROL_SHIFT_KEY = 3;
-
-
-/**
- * Default browser check class
- * @construcotr
- */
-function roundcube_browser()
- {
- this.ver = parseFloat(navigator.appVersion);
- this.appver = navigator.appVersion;
- this.agent = navigator.userAgent;
- this.name = navigator.appName;
- this.vendor = navigator.vendor ? navigator.vendor : '';
- this.vendver = navigator.vendorSub ? parseFloat(navigator.vendorSub) : 0;
- this.product = navigator.product ? navigator.product : '';
- this.platform = String(navigator.platform).toLowerCase();
- this.lang = (navigator.language) ? navigator.language.substring(0,2) :
- (navigator.browserLanguage) ? navigator.browserLanguage.substring(0,2) :
- (navigator.systemLanguage) ? navigator.systemLanguage.substring(0,2) : 'en';
-
- this.win = (this.platform.indexOf('win')>=0) ? true : false;
- this.mac = (this.platform.indexOf('mac')>=0) ? true : false;
- this.linux = (this.platform.indexOf('linux')>=0) ? true : false;
- this.unix = (this.platform.indexOf('unix')>=0) ? true : false;
-
- this.dom = document.getElementById ? true : false;
- this.dom2 = (document.addEventListener && document.removeEventListener);
-
- this.ie = (document.all) ? true : false;
- this.ie4 = (this.ie && !this.dom);
- this.ie5 = (this.dom && this.appver.indexOf('MSIE 5')>0);
- this.ie6 = (this.dom && this.appver.indexOf('MSIE 6')>0);
-
- this.mz = (this.dom && this.ver>=5); // (this.dom && this.product=='Gecko')
- this.ns = ((this.ver<5 && this.name=='Netscape') || (this.ver>=5 && this.vendor.indexOf('Netscape')>=0));
- this.ns6 = (this.ns && parseInt(this.vendver)==6); // (this.mz && this.ns) ? true : false;
- this.ns7 = (this.ns && parseInt(this.vendver)==7); // this.agent.indexOf('Netscape/7')>0);
- this.safari = (this.agent.toLowerCase().indexOf('safari')>0 || this.agent.toLowerCase().indexOf('applewebkit')>0);
- this.konq = (this.agent.toLowerCase().indexOf('konqueror')>0);
-
- this.opera = (window.opera) ? true : false;
-
- if(this.opera && window.RegExp)
- this.vendver = (/opera(\s|\/)([0-9\.]+)/i.test(navigator.userAgent)) ? parseFloat(RegExp.$2) : -1;
- else if(!this.vendver && this.safari)
- this.vendver = (/(safari|applewebkit)\/([0-9]+)/i.test(this.agent)) ? parseInt(RegExp.$2) : 0;
- else if((!this.vendver && this.mz) || this.agent.indexOf('Camino')>0)
- this.vendver = (/rv:([0-9\.]+)/.test(this.agent)) ? parseFloat(RegExp.$1) : 0;
- else if(this.ie && window.RegExp)
- this.vendver = (/msie\s+([0-9\.]+)/i.test(this.agent)) ? parseFloat(RegExp.$1) : 0;
- else if(this.konq && window.RegExp)
- this.vendver = (/khtml\/([0-9\.]+)/i.test(this.agent)) ? parseFloat(RegExp.$1) : 0;
-
-
- // get real language out of safari's user agent
- if(this.safari && (/;\s+([a-z]{2})-[a-z]{2}\)/i.test(this.agent)))
- this.lang = RegExp.$1;
-
- this.dhtml = ((this.ie4 && this.win) || this.ie5 || this.ie6 || this.ns4 || this.mz);
- this.vml = (this.win && this.ie && this.dom && !this.opera);
- this.pngalpha = (this.mz || (this.opera && this.vendver>=6) || (this.ie && this.mac && this.vendver>=5) ||
- (this.ie && this.win && this.vendver>=5.5) || this.safari);
- this.opacity = (this.mz || (this.ie && this.vendver>=5.5 && !this.opera) || (this.safari && this.vendver>=100));
- this.cookies = navigator.cookieEnabled;
-
- // test for XMLHTTP support
- this.xmlhttp_test = function()
- {
- var activeX_test = new Function("try{var o=new ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return false;}");
- this.xmlhttp = (window.XMLHttpRequest || (window.ActiveXObject && activeX_test())) ? true : false;
- return this.xmlhttp;
- }
- }
-
-
-// static functions for event handling
-var rcube_event = {
-
-/**
- * returns the event target element
- */
-get_target: function(e)
-{
- e = e || window.event;
- return e && e.target ? e.target : e.srcElement;
-},
-
-/**
- * returns the event key code
- */
-get_keycode: function(e)
-{
- e = e || window.event;
- return e && e.keyCode ? e.keyCode : (e && e.which ? e.which : 0);
-},
-
-/**
- * returns modifier key (constants defined at top of file)
- */
-get_modifier: function(e)
-{
- var opcode = 0;
- e = e || window.event;
-
- if (bw.mac && e)
- {
- opcode += (e.metaKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY);
- return opcode;
- }
- if (e)
- {
- opcode += (e.ctrlKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY);
- return opcode;
- }
-},
-
-/**
- * Return absolute mouse position of an event
- */
-get_mouse_pos: function(e)
-{
- if (!e) e = window.event;
- var mX = (e.pageX) ? e.pageX : e.clientX;
- var mY = (e.pageY) ? e.pageY : e.clientY;
-
- if (document.body && document.all)
- {
- mX += document.body.scrollLeft;
- mY += document.body.scrollTop;
- }
-
- return { x:mX, y:mY };
-},
-
-/**
- * Add an object method as event listener to a certain element
- */
-add_listener: function(p)
-{
- if (!p.object || !p.method) // not enough arguments
- return;
- if (!p.element)
- p.element = document;
-
- if (!p.object._rc_events)
- p.object._rc_events = [];
-
- var key = p.event + '*' + p.method;
- if (!p.object._rc_events[key])
- p.object._rc_events[key] = function(e){ return p.object[p.method](e); };
-
- if (p.element.addEventListener)
- p.element.addEventListener(p.event, p.object._rc_events[key], false);
- else if (p.element.attachEvent)
- {
- // IE allows multiple events with the same function to be applied to the same object
- // forcibly detach the event, then attach
- p.element.detachEvent('on'+p.event, p.object._rc_events[key]);
- p.element.attachEvent('on'+p.event, p.object._rc_events[key]);
- }
- else
- p.element['on'+p.event] = p.object._rc_events[key];
-},
-
-/**
- * Remove event listener
- */
-remove_listener: function(p)
-{
- if (!p.element)
- p.element = document;
-
- var key = p.event + '*' + p.method;
- if (p.object && p.object._rc_events && p.object._rc_events[key]) {
- if (p.element.removeEventListener)
- p.element.removeEventListener(p.event, p.object._rc_events[key], false);
- else if (p.element.detachEvent)
- p.element.detachEvent('on'+p.event, p.object._rc_events[key]);
- else
- p.element['on'+p.event] = null;
- }
-},
-
-/**
- * Prevent event propagation and bubbeling
- */
-cancel: function(evt)
-{
- var e = evt ? evt : window.event;
- if (e.preventDefault)
- e.preventDefault();
- if (e.stopPropagation)
- e.stopPropagation();
-
- e.cancelBubble = true;
- e.returnValue = false;
- return false;
+var CONTROL_KEY=1;
+var SHIFT_KEY=2;
+var CONTROL_SHIFT_KEY=3;
+function roundcube_browser(){
+this.ver=parseFloat(navigator.appVersion);
+this.appver=navigator.appVersion;
+this.agent=navigator.userAgent;
+this.name=navigator.appName;
+this.vendor=navigator.vendor?navigator.vendor:"";
+this.vendver=navigator.vendorSub?parseFloat(navigator.vendorSub):0;
+this.product=navigator.product?navigator.product:"";
+this.platform=String(navigator.platform).toLowerCase();
+this.lang=(navigator.language)?navigator.language.substring(0,2):(navigator.browserLanguage)?navigator.browserLanguage.substring(0,2):(navigator.systemLanguage)?navigator.systemLanguage.substring(0,2):"en";
+this.win=(this.platform.indexOf("win")>=0)?true:false;
+this.mac=(this.platform.indexOf("mac")>=0)?true:false;
+this.linux=(this.platform.indexOf("linux")>=0)?true:false;
+this.unix=(this.platform.indexOf("unix")>=0)?true:false;
+this.dom=document.getElementById?true:false;
+this.dom2=(document.addEventListener&&document.removeEventListener);
+this.ie=(document.all)?true:false;
+this.ie4=(this.ie&&!this.dom);
+this.ie5=(this.dom&&this.appver.indexOf("MSIE 5")>0);
+this.ie6=(this.dom&&this.appver.indexOf("MSIE 6")>0);
+this.ie7=(this.dom&&this.appver.indexOf("MSIE 7")>0);
+this.mz=(this.dom&&this.ver>=5);
+this.ns=((this.ver<5&&this.name=="Netscape")||(this.ver>=5&&this.vendor.indexOf("Netscape")>=0));
+this.ns6=(this.ns&&parseInt(this.vendver)==6);
+this.ns7=(this.ns&&parseInt(this.vendver)==7);
+this.safari=(this.agent.toLowerCase().indexOf("safari")>0||this.agent.toLowerCase().indexOf("applewebkit")>0);
+this.konq=(this.agent.toLowerCase().indexOf("konqueror")>0);
+this.opera=(window.opera)?true:false;
+if(this.opera&&window.RegExp){
+this.vendver=(/opera(\s|\/)([0-9\.]+)/i.test(navigator.userAgent))?parseFloat(RegExp.$2):-1;
+}else{
+if(!this.vendver&&this.safari){
+this.vendver=(/(safari|applewebkit)\/([0-9]+)/i.test(this.agent))?parseInt(RegExp.$2):0;
+}else{
+if((!this.vendver&&this.mz)||this.agent.indexOf("Camino")>0){
+this.vendver=(/rv:([0-9\.]+)/.test(this.agent))?parseFloat(RegExp.$1):0;
+}else{
+if(this.ie&&window.RegExp){
+this.vendver=(/msie\s+([0-9\.]+)/i.test(this.agent))?parseFloat(RegExp.$1):0;
+}else{
+if(this.konq&&window.RegExp){
+this.vendver=(/khtml\/([0-9\.]+)/i.test(this.agent))?parseFloat(RegExp.$1):0;
}
-
+}
+}
+}
+}
+if(this.safari&&(/;\s+([a-z]{2})-[a-z]{2}\)/i.test(this.agent))){
+this.lang=RegExp.$1;
+}
+this.dhtml=((this.ie4&&this.win)||this.ie5||this.ie6||this.ns4||this.mz);
+this.vml=(this.win&&this.ie&&this.dom&&!this.opera);
+this.pngalpha=(this.mz||(this.opera&&this.vendver>=6)||(this.ie&&this.mac&&this.vendver>=5)||(this.ie&&this.win&&this.vendver>=5.5)||this.safari);
+this.opacity=(this.mz||(this.ie&&this.vendver>=5.5&&!this.opera)||(this.safari&&this.vendver>=100));
+this.cookies=navigator.cookieEnabled;
+this.xmlhttp_test=function(){
+var _1=new Function("try{var o=new ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return false;}");
+this.xmlhttp=(window.XMLHttpRequest||(window.ActiveXObject&&_1()))?true:false;
+return this.xmlhttp;
};
-
-
-var rcube_layer_objects = new Array();
-
-
-/**
- * RoundCube generic layer (floating box) class
- *
- * @constructor
- */
-function rcube_layer(id, attributes)
- {
- this.name = id;
-
- // create a new layer in the current document
- this.create = function(arg)
- {
- var l = (arg.x) ? arg.x : 0;
- var t = (arg.y) ? arg.y : 0;
- var w = arg.width;
- var h = arg.height;
- var z = arg.zindex;
- var vis = arg.vis;
- var parent = arg.parent;
- var obj;
-
- obj = document.createElement('DIV');
- with(obj)
- {
- id = this.name;
- with(style)
- {
- position = 'absolute';
- visibility = (vis) ? (vis==2) ? 'inherit' : 'visible' : 'hidden';
- left = l+'px';
- top = t+'px';
- if(w) width = w+'px';
- if(h) height = h+'px';
- if(z) zIndex = z;
- }
- }
-
- if(parent) parent.appendChild(obj);
- else document.body.appendChild(obj);
-
- this.elm = obj;
- };
-
-
- // create new layer
- if(attributes!=null)
- {
- this.create(attributes);
- this.name = this.elm.id;
- }
- else // just refer to the object
- this.elm = document.getElementById(id);
-
-
- if(!this.elm)
- return false;
-
-
- // ********* layer object properties *********
-
- this.css = this.elm.style;
- this.event = this.elm;
- this.width = this.elm.offsetWidth;
- this.height = this.elm.offsetHeight;
- this.x = parseInt(this.elm.offsetLeft);
- this.y = parseInt(this.elm.offsetTop);
- this.visible = (this.css.visibility=='visible' || this.css.visibility=='show' || this.css.visibility=='inherit') ? true : false;
-
- this.id = rcube_layer_objects.length;
- this.obj = 'rcube_layer_objects['+this.id+']';
- rcube_layer_objects[this.id] = this;
-
-
- // ********* layer object methods *********
-
-
- // move the layer to a specific position
- this.move = function(x, y)
- {
- this.x = x;
- this.y = y;
- this.css.left = Math.round(this.x)+'px';
- this.css.top = Math.round(this.y)+'px';
- }
-
-
- // move the layer for a specific step
- this.shift = function(x,y)
- {
- x = Math.round(x*100)/100;
- y = Math.round(y*100)/100;
- this.move(this.x+x, this.y+y);
- }
-
-
- // change the layers width and height
- this.resize = function(w,h)
- {
- this.css.width = w+'px';
- this.css.height = h+'px';
- this.width = w;
- this.height = h;
- }
-
-
- // cut the layer (top,width,height,left)
- this.clip = function(t,w,h,l)
- {
- this.css.clip='rect('+t+' '+w+' '+h+' '+l+')';
- this.clip_height = h;
- this.clip_width = w;
- }
-
-
- // show or hide the layer
- this.show = function(a)
- {
- if(a==1)
- {
- this.css.visibility = 'visible';
- this.visible = true;
- }
- else if(a==2)
- {
- this.css.visibility = 'inherit';
- this.visible = true;
- }
- else
- {
- this.css.visibility = 'hidden';
- this.visible = false;
- }
- }
-
-
- // write new content into a Layer
- this.write = function(cont)
- {
- this.elm.innerHTML = cont;
- }
-
-
- // set the given color to the layer background
- this.set_bgcolor = function(c)
- {
- if(!c || c=='#')
- c = 'transparent';
-
- this.css.backgroundColor = c;
- }
-
-
- // set the opacity of a layer to the given ammount (in %)
- this.set_opacity = function(v)
- {
- if(!bw.opacity)
- return;
-
- var op = v<=1 ? Math.round(v*100) : parseInt(v);
-
- if(bw.ie)
- this.css.filter = 'alpha(opacity:'+op+')';
- else if(bw.safari)
- {
- this.css.opacity = op/100;
- this.css.KhtmlOpacity = op/100;
- }
- else if(bw.mz)
- this.css.MozOpacity = op/100;
- }
- }
-
-
-// check if input is a valid email address
-// By Cal Henderson <cal@iamcal.com>
-// http://code.iamcal.com/php/rfc822/
-function rcube_check_email(input, inline)
- {
- if (input && window.RegExp)
- {
- var qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
- var dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
- var atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
- var quoted_pair = '\\x5c[\\x00-\\x7f]';
- var domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d';
- var quoted_string = '\\x22('+qtext+'|'+quoted_pair+')*\\x22';
- var sub_domain = '('+atom+'|'+domain_literal+')';
- var word = '('+atom+'|'+quoted_string+')';
- var domain = sub_domain+'(\\x2e'+sub_domain+')*';
- var local_part = word+'(\\x2e'+word+')*';
- var addr_spec = local_part+'\\x40'+domain;
- var delim = '[,;\s\n]';
- var reg1 = inline ? new RegExp('(^|<|'+delim+')'+addr_spec+'($|>|'+delim+')', 'i') : new RegExp('^'+addr_spec+'$', 'i');
- return reg1.test(input) ? true : false;
- }
- return false;
- }
-
-
-// find a value in a specific array and returns the index
-function find_in_array()
- {
- var args = find_in_array.arguments;
- if(!args.length) return -1;
-
- var haystack = typeof(args[0])=='object' ? args[0] : args.length>1 && typeof(args[1])=='object' ? args[1] : new Array();
- var needle = typeof(args[0])!='object' ? args[0] : args.length>1 && typeof(args[1])!='object' ? args[1] : '';
- var nocase = args.length==3 ? args[2] : false;
-
- if(!haystack.length) return -1;
-
- for(var i=0; i<haystack.length; i++)
- if(nocase && haystack[i].toLowerCase()==needle.toLowerCase())
- return i;
- else if(haystack[i]==needle)
- return i;
-
- return -1;
- }
-
-
-// make a string URL safe
-function urlencode(str)
-{
- return window.encodeURIComponent ? encodeURIComponent(str) : escape(str);
+};
+var rcube_event={get_target:function(e){
+e=e||window.event;
+return e&&e.target?e.target:e.srcElement;
+},get_keycode:function(e){
+e=e||window.event;
+return e&&e.keyCode?e.keyCode:(e&&e.which?e.which:0);
+},get_button:function(e){
+e=e||window.event;
+return e&&(typeof e.button!="undefined")?e.button:(e&&e.which?e.which:0);
+},get_modifier:function(e){
+var _6=0;
+e=e||window.event;
+if(bw.mac&&e){
+_6+=(e.metaKey&&CONTROL_KEY)+(e.shiftKey&&SHIFT_KEY);
+return _6;
}
-
-
-// get any type of html objects by id/name
-function rcube_find_object(id, d)
- {
- var n, f, obj, e;
- if(!d) d = document;
-
- if(d.getElementsByName && (e = d.getElementsByName(id)))
- obj = e[0];
- if(!obj && d.getElementById)
- obj = d.getElementById(id);
- if(!obj && d.all)
- obj = d.all[id];
-
- if(!obj && d.images.length)
- obj = d.images[id];
-
- if(!obj && d.forms.length)
- for(f=0; f<d.forms.length; f++)
- {
- if(d.forms[f].name == id)
- obj = d.forms[f];
- else if(d.forms[f].elements[id])
- obj = d.forms[f].elements[id];
- }
-
- if(!obj && d.layers)
- {
- if(d.layers[id]) obj = d.layers[id];
- for(n=0; !obj && n<d.layers.length; n++)
- obj = rcube_find_object(id, d.layers[n].document);
- }
-
- return obj;
- }
-
-
-// return the absolute position of an object within the document
-function rcube_get_object_pos(obj)
- {
- if(typeof(obj)=='string')
- obj = rcube_find_object(obj);
-
- if(!obj) return {x:0, y:0};
-
- var iX = (bw.layers) ? obj.x : obj.offsetLeft;
- var iY = (bw.layers) ? obj.y : obj.offsetTop;
-
- if(bw.ie || bw.mz)
- {
- var elm = obj.offsetParent;
- while(elm && elm!=null)
- {
- iX += elm.offsetLeft;
- iY += elm.offsetTop;
- elm = elm.offsetParent;
- }
- }
-
- //if(bw.mac && bw.ie5) iX += document.body.leftMargin;
- //if(bw.mac && bw.ie5) iY += document.body.topMargin;
-
- return {x:iX, y:iY};
- }
-
-
-/**
- * Return the currently applied value of a css property
- *
- * @param {Object} html_element Node reference
- * @param {String} css_property Property name to read in Javascript notation (eg. 'textAlign')
- * @param {String} mozilla_equivalent Equivalent property name in CSS notation (eg. 'text-align')
- * @return CSS property value
- * @type String
- */
-function get_elements_computed_style(html_element, css_property, mozilla_equivalent)
- {
- if (arguments.length==2)
- mozilla_equivalent = css_property;
-
- var el = html_element;
- if (typeof(html_element)=='string')
- el = rcube_find_object(html_element);
-
- if (el && el.currentStyle)
- return el.currentStyle[css_property];
- else if (el && document.defaultView && document.defaultView.getComputedStyle)
- return document.defaultView.getComputedStyle(el, null).getPropertyValue(mozilla_equivalent);
- else
- return false;
- }
-
-
-// cookie functions by GoogieSpell
-function setCookie(name, value, expires, path, domain, secure)
- {
- var curCookie = name + "=" + escape(value) +
- (expires ? "; expires=" + expires.toGMTString() : "") +
- (path ? "; path=" + path : "") +
- (domain ? "; domain=" + domain : "") +
- (secure ? "; secure" : "");
- document.cookie = curCookie;
- }
-
-roundcube_browser.prototype.set_cookie = setCookie;
-
-function getCookie(name)
- {
- var dc = document.cookie;
- var prefix = name + "=";
- var begin = dc.indexOf("; " + prefix);
- if (begin == -1)
- {
- begin = dc.indexOf(prefix);
- if (begin != 0) return null;
- }
- else
- begin += 2;
- var end = document.cookie.indexOf(";", begin);
- if (end == -1)
- end = dc.length;
- return unescape(dc.substring(begin + prefix.length, end));
- }
-
-roundcube_browser.prototype.get_cookie = getCookie;
-
-
-// tiny replacement for Firebox functionality
-function rcube_console()
-{
- this.log = function(msg)
- {
- box = rcube_find_object('console');
- if (box)
- if (msg[msg.length-1]=='\n')
- box.value += msg+'--------------------------------------\n';
- else
- box.value += msg+'\n--------------------------------------\n';
- };
-
- this.reset = function()
- {
- box = rcube_find_object('console');
- if (box)
- box.value = '';
- };
+if(e){
+_6+=(e.ctrlKey&&CONTROL_KEY)+(e.shiftKey&&SHIFT_KEY);
+return _6;
}
+},get_mouse_pos:function(e){
+if(!e){
+e=window.event;
+}
+var mX=(e.pageX)?e.pageX:e.clientX;
+var mY=(e.pageY)?e.pageY:e.clientY;
+if(document.body&&document.all){
+mX+=document.body.scrollLeft;
+mY+=document.body.scrollTop;
+}
+if(e._offset){
+mX+=e._offset.x;
+mY+=e._offset.y;
+}
+return {x:mX,y:mY};
+},add_listener:function(p){
+if(!p.object||!p.method){
+return;
+}
+if(!p.element){
+p.element=document;
+}
+if(!p.object._rc_events){
+p.object._rc_events=[];
+}
+var _b=p.event+"*"+p.method;
+if(!p.object._rc_events[_b]){
+p.object._rc_events[_b]=function(e){
+return p.object[p.method](e);
+};
+}
+if(p.element.addEventListener){
+p.element.addEventListener(p.event,p.object._rc_events[_b],false);
+}else{
+if(p.element.attachEvent){
+p.element.detachEvent("on"+p.event,p.object._rc_events[_b]);
+p.element.attachEvent("on"+p.event,p.object._rc_events[_b]);
+}else{
+p.element["on"+p.event]=p.object._rc_events[_b];
+}
+}
+},remove_listener:function(p){
+if(!p.element){
+p.element=document;
+}
+var _e=p.event+"*"+p.method;
+if(p.object&&p.object._rc_events&&p.object._rc_events[_e]){
+if(p.element.removeEventListener){
+p.element.removeEventListener(p.event,p.object._rc_events[_e],false);
+}else{
+if(p.element.detachEvent){
+p.element.detachEvent("on"+p.event,p.object._rc_events[_e]);
+}else{
+p.element["on"+p.event]=null;
+}
+}
+}
+},cancel:function(_f){
+var e=_f?_f:window.event;
+if(e.preventDefault){
+e.preventDefault();
+}
+if(e.stopPropagation){
+e.stopPropagation();
+}
+e.cancelBubble=true;
+e.returnValue=false;
+return false;
+}};
+var rcube_layer_objects=new Array();
+function rcube_layer(id,_12){
+this.name=id;
+this.create=function(arg){
+var l=(arg.x)?arg.x:0;
+var t=(arg.y)?arg.y:0;
+var w=arg.width;
+var h=arg.height;
+var z=arg.zindex;
+var vis=arg.vis;
+var _1a=arg.parent;
+var obj;
+obj=document.createElement("DIV");
+with(obj){
+id=this.name;
+with(style){
+position="absolute";
+visibility=(vis)?(vis==2)?"inherit":"visible":"hidden";
+left=l+"px";
+top=t+"px";
+if(w){
+width=w.toString().match(/\%$/)?w:w+"px";
+}
+if(h){
+height=h.toString().match(/\%$/)?h:h+"px";
+}
+if(z){
+zIndex=z;
+}
+}
+}
+if(_1a){
+_1a.appendChild(obj);
+}else{
+document.body.appendChild(obj);
+}
+this.elm=obj;
+};
+if(_12!=null){
+this.create(_12);
+this.name=this.elm.id;
+}else{
+this.elm=document.getElementById(id);
+}
+if(!this.elm){
+return false;
+}
+this.css=this.elm.style;
+this.event=this.elm;
+this.width=this.elm.offsetWidth;
+this.height=this.elm.offsetHeight;
+this.x=parseInt(this.elm.offsetLeft);
+this.y=parseInt(this.elm.offsetTop);
+this.visible=(this.css.visibility=="visible"||this.css.visibility=="show"||this.css.visibility=="inherit")?true:false;
+this.id=rcube_layer_objects.length;
+this.obj="rcube_layer_objects["+this.id+"]";
+rcube_layer_objects[this.id]=this;
+this.move=function(x,y){
+this.x=x;
+this.y=y;
+this.css.left=Math.round(this.x)+"px";
+this.css.top=Math.round(this.y)+"px";
+};
+this.shift=function(x,y){
+x=Math.round(x*100)/100;
+y=Math.round(y*100)/100;
+this.move(this.x+x,this.y+y);
+};
+this.resize=function(w,h){
+this.css.width=w+"px";
+this.css.height=h+"px";
+this.width=w;
+this.height=h;
+};
+this.clip=function(t,w,h,l){
+this.css.clip="rect("+t+" "+w+" "+h+" "+l+")";
+this.clip_height=h;
+this.clip_width=w;
+};
+this.show=function(a){
+if(a==1){
+this.css.visibility="visible";
+this.visible=true;
+}else{
+if(a==2){
+this.css.visibility="inherit";
+this.visible=true;
+}else{
+this.css.visibility="hidden";
+this.visible=false;
+}
+}
+};
+this.write=function(_27){
+this.elm.innerHTML=_27;
+};
+this.set_bgcolor=function(c){
+if(!c||c=="#"){
+c="transparent";
+}
+this.css.backgroundColor=c;
+};
+this.set_opacity=function(v){
+if(!bw.opacity){
+return;
+}
+var op=v<=1?Math.round(v*100):parseInt(v);
+if(bw.ie){
+this.css.filter="alpha(opacity:"+op+")";
+}else{
+if(bw.safari){
+this.css.opacity=op/100;
+this.css.KhtmlOpacity=op/100;
+}else{
+if(bw.mz){
+this.css.MozOpacity=op/100;
+}
+}
+}
+};
+};
+function rcube_check_email(_2b,_2c){
+if(_2b&&window.RegExp){
+var _2d="[^\\x0d\\x22\\x5c\\x80-\\xff]";
+var _2e="[^\\x0d\\x5b-\\x5d\\x80-\\xff]";
+var _2f="[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+";
+var _30="\\x5c[\\x00-\\x7f]";
+var _31="\\x5b("+_2e+"|"+_30+")*\\x5d";
+var _32="\\x22("+_2d+"|"+_30+")*\\x22";
+var _33="("+_2f+"|"+_31+")";
+var _34="("+_2f+"|"+_32+")";
+var _35=_33+"(\\x2e"+_33+")*";
+var _36=_34+"(\\x2e"+_34+")*";
+var _37=_36+"\\x40"+_35;
+var _38="[,;s\n]";
+var _39=_2c?new RegExp("(^|<|"+_38+")"+_37+"($|>|"+_38+")","i"):new RegExp("^"+_37+"$","i");
+return _39.test(_2b)?true:false;
+}
+return false;
+};
+function find_in_array(){
+var _3a=find_in_array.arguments;
+if(!_3a.length){
+return -1;
+}
+var _3b=typeof (_3a[0])=="object"?_3a[0]:_3a.length>1&&typeof (_3a[1])=="object"?_3a[1]:new Array();
+var _3c=typeof (_3a[0])!="object"?_3a[0]:_3a.length>1&&typeof (_3a[1])!="object"?_3a[1]:"";
+var _3d=_3a.length==3?_3a[2]:false;
+if(!_3b.length){
+return -1;
+}
+for(var i=0;i<_3b.length;i++){
+if(_3d&&_3b[i].toLowerCase()==_3c.toLowerCase()){
+return i;
+}else{
+if(_3b[i]==_3c){
+return i;
+}
+}
+}
+return -1;
+};
+function urlencode(str){
+return window.encodeURIComponent?encodeURIComponent(str):escape(str);
+};
+function rcube_find_object(id,d){
+var n,f,obj,e;
+if(!d){
+d=document;
+}
+if(d.getElementsByName&&(e=d.getElementsByName(id))){
+obj=e[0];
+}
+if(!obj&&d.getElementById){
+obj=d.getElementById(id);
+}
+if(!obj&&d.all){
+obj=d.all[id];
+}
+if(!obj&&d.images.length){
+obj=d.images[id];
+}
+if(!obj&&d.forms.length){
+for(f=0;f<d.forms.length;f++){
+if(d.forms[f].name==id){
+obj=d.forms[f];
+}else{
+if(d.forms[f].elements[id]){
+obj=d.forms[f].elements[id];
+}
+}
+}
+}
+if(!obj&&d.layers){
+if(d.layers[id]){
+obj=d.layers[id];
+}
+for(n=0;!obj&&n<d.layers.length;n++){
+obj=rcube_find_object(id,d.layers[n].document);
+}
+}
+return obj;
+};
+function rcube_get_object_pos(obj,_47){
+if(typeof (obj)=="string"){
+obj=rcube_find_object(obj);
+}
+if(!obj){
+return {x:0,y:0};
+}
+var iX=(bw.layers)?obj.x:obj.offsetLeft;
+var iY=(bw.layers)?obj.y:obj.offsetTop;
+if(!_47&&(bw.ie||bw.mz)){
+var elm=obj.offsetParent;
+while(elm&&elm!=null){
+iX+=elm.offsetLeft-(elm.parentNode&&elm.parentNode.scrollLeft?elm.parentNode.scrollLeft:0);
+iY+=elm.offsetTop-(elm.parentNode&&elm.parentNode.scrollTop?elm.parentNode.scrollTop:0);
+elm=elm.offsetParent;
+}
+}
+return {x:iX,y:iY};
+};
+function rcube_mouse_is_over(ev,obj){
+var _4d=rcube_event.get_mouse_pos(ev);
+var pos=rcube_get_object_pos(obj);
+return ((_4d.x>=pos.x)&&(_4d.x<(pos.x+obj.offsetWidth))&&(_4d.y>=pos.y)&&(_4d.y<(pos.y+obj.offsetHeight)));
+};
+function get_elements_computed_style(_4f,_50,_51){
+if(arguments.length==2){
+_51=_50;
+}
+var el=_4f;
+if(typeof (_4f)=="string"){
+el=rcube_find_object(_4f);
+}
+if(el&&el.currentStyle){
+return el.currentStyle[_50];
+}else{
+if(el&&document.defaultView&&document.defaultView.getComputedStyle){
+return document.defaultView.getComputedStyle(el,null).getPropertyValue(_51);
+}else{
+return false;
+}
+}
+};
+function setCookie(_53,_54,_55,_56,_57,_58){
+var _59=_53+"="+escape(_54)+(_55?"; expires="+_55.toGMTString():"")+(_56?"; path="+_56:"")+(_57?"; domain="+_57:"")+(_58?"; secure":"");
+document.cookie=_59;
+};
+roundcube_browser.prototype.set_cookie=setCookie;
+function getCookie(_5a){
+var dc=document.cookie;
+var _5c=_5a+"=";
+var _5d=dc.indexOf("; "+_5c);
+if(_5d==-1){
+_5d=dc.indexOf(_5c);
+if(_5d!=0){
+return null;
+}
+}else{
+_5d+=2;
+}
+var end=document.cookie.indexOf(";",_5d);
+if(end==-1){
+end=dc.length;
+}
+return unescape(dc.substring(_5d+_5c.length,end));
+};
+roundcube_browser.prototype.get_cookie=getCookie;
+function rcube_console(){
+this.log=function(msg){
+box=rcube_find_object("console");
+if(box){
+if(msg.charAt(msg.length-1)=="\n"){
+box.value+=msg+"--------------------------------------\n";
+}else{
+box.value+=msg+"\n--------------------------------------\n";
+}
+}
+};
+this.reset=function(){
+box=rcube_find_object("console");
+if(box){
+box.value="";
+}
+};
+};
+var bw=new roundcube_browser();
+if(!window.console){
+console=new rcube_console();
+}
+RegExp.escape=function(str){
+return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1");
+};
+if(bw.ie){
+document._getElementById=document.getElementById;
+document.getElementById=function(id){
+var i=0;
+var o=document._getElementById(id);
+if(!o||o.id!=id){
+while((o=document.all[i])&&o.id!=id){
+i++;
+}
+}
+return o;
+};
+}
+function exec_event(_64,_65){
+if(document.createEventObject){
+var evt=document.createEventObject();
+return _64.fireEvent("on"+_65,evt);
+}else{
+var evt=document.createEvent("HTMLEvents");
+evt.initEvent(_65,true,true);
+return !_64.dispatchEvent(evt);
+}
+};
-var bw = new roundcube_browser();
-
-if (!window.console)
- console = new rcube_console();
-
-
-// Add escape() method to RegExp object
-// http://dev.rubyonrails.org/changeset/7271
-RegExp.escape = function(str)
- {
- return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
- }
--- /dev/null
+/*
+ +-----------------------------------------------------------------------+
+ | RoundCube common js library |
+ | |
+ | This file is part of the RoundCube web development suite |
+ | Copyright (C) 2005-2007, RoundCube Dev, - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com> |
+ +-----------------------------------------------------------------------+
+
+ $Id: common.js 2150 2008-12-14 19:00:09Z alec $
+*/
+
+// Constants
+var CONTROL_KEY = 1;
+var SHIFT_KEY = 2;
+var CONTROL_SHIFT_KEY = 3;
+
+
+/**
+ * Default browser check class
+ * @construcotr
+ */
+function roundcube_browser()
+ {
+ this.ver = parseFloat(navigator.appVersion);
+ this.appver = navigator.appVersion;
+ this.agent = navigator.userAgent;
+ this.name = navigator.appName;
+ this.vendor = navigator.vendor ? navigator.vendor : '';
+ this.vendver = navigator.vendorSub ? parseFloat(navigator.vendorSub) : 0;
+ this.product = navigator.product ? navigator.product : '';
+ this.platform = String(navigator.platform).toLowerCase();
+ this.lang = (navigator.language) ? navigator.language.substring(0,2) :
+ (navigator.browserLanguage) ? navigator.browserLanguage.substring(0,2) :
+ (navigator.systemLanguage) ? navigator.systemLanguage.substring(0,2) : 'en';
+
+ this.win = (this.platform.indexOf('win')>=0) ? true : false;
+ this.mac = (this.platform.indexOf('mac')>=0) ? true : false;
+ this.linux = (this.platform.indexOf('linux')>=0) ? true : false;
+ this.unix = (this.platform.indexOf('unix')>=0) ? true : false;
+
+ this.dom = document.getElementById ? true : false;
+ this.dom2 = (document.addEventListener && document.removeEventListener);
+
+ this.ie = (document.all) ? true : false;
+ this.ie4 = (this.ie && !this.dom);
+ this.ie5 = (this.dom && this.appver.indexOf('MSIE 5')>0);
+ this.ie6 = (this.dom && this.appver.indexOf('MSIE 6')>0);
+ this.ie7 = (this.dom && this.appver.indexOf('MSIE 7')>0);
+
+ this.mz = (this.dom && this.ver>=5); // (this.dom && this.product=='Gecko')
+ this.ns = ((this.ver<5 && this.name=='Netscape') || (this.ver>=5 && this.vendor.indexOf('Netscape')>=0));
+ this.ns6 = (this.ns && parseInt(this.vendver)==6); // (this.mz && this.ns) ? true : false;
+ this.ns7 = (this.ns && parseInt(this.vendver)==7); // this.agent.indexOf('Netscape/7')>0);
+ this.safari = (this.agent.toLowerCase().indexOf('safari')>0 || this.agent.toLowerCase().indexOf('applewebkit')>0);
+ this.konq = (this.agent.toLowerCase().indexOf('konqueror')>0);
+
+ this.opera = (window.opera) ? true : false;
+
+ if(this.opera && window.RegExp)
+ this.vendver = (/opera(\s|\/)([0-9\.]+)/i.test(navigator.userAgent)) ? parseFloat(RegExp.$2) : -1;
+ else if(!this.vendver && this.safari)
+ this.vendver = (/(safari|applewebkit)\/([0-9]+)/i.test(this.agent)) ? parseInt(RegExp.$2) : 0;
+ else if((!this.vendver && this.mz) || this.agent.indexOf('Camino')>0)
+ this.vendver = (/rv:([0-9\.]+)/.test(this.agent)) ? parseFloat(RegExp.$1) : 0;
+ else if(this.ie && window.RegExp)
+ this.vendver = (/msie\s+([0-9\.]+)/i.test(this.agent)) ? parseFloat(RegExp.$1) : 0;
+ else if(this.konq && window.RegExp)
+ this.vendver = (/khtml\/([0-9\.]+)/i.test(this.agent)) ? parseFloat(RegExp.$1) : 0;
+
+
+ // get real language out of safari's user agent
+ if(this.safari && (/;\s+([a-z]{2})-[a-z]{2}\)/i.test(this.agent)))
+ this.lang = RegExp.$1;
+
+ this.dhtml = ((this.ie4 && this.win) || this.ie5 || this.ie6 || this.ns4 || this.mz);
+ this.vml = (this.win && this.ie && this.dom && !this.opera);
+ this.pngalpha = (this.mz || (this.opera && this.vendver>=6) || (this.ie && this.mac && this.vendver>=5) ||
+ (this.ie && this.win && this.vendver>=5.5) || this.safari);
+ this.opacity = (this.mz || (this.ie && this.vendver>=5.5 && !this.opera) || (this.safari && this.vendver>=100));
+ this.cookies = navigator.cookieEnabled;
+
+ // test for XMLHTTP support
+ this.xmlhttp_test = function()
+ {
+ var activeX_test = new Function("try{var o=new ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return false;}");
+ this.xmlhttp = (window.XMLHttpRequest || (window.ActiveXObject && activeX_test())) ? true : false;
+ return this.xmlhttp;
+ }
+ }
+
+
+// static functions for event handling
+var rcube_event = {
+
+/**
+ * returns the event target element
+ */
+get_target: function(e)
+{
+ e = e || window.event;
+ return e && e.target ? e.target : e.srcElement;
+},
+
+/**
+ * returns the event key code
+ */
+get_keycode: function(e)
+{
+ e = e || window.event;
+ return e && e.keyCode ? e.keyCode : (e && e.which ? e.which : 0);
+},
+
+/**
+ * returns the event key code
+ */
+get_button: function(e)
+{
+ e = e || window.event;
+ return e && (typeof e.button != 'undefined') ? e.button : (e && e.which ? e.which : 0);
+},
+
+/**
+ * returns modifier key (constants defined at top of file)
+ */
+get_modifier: function(e)
+{
+ var opcode = 0;
+ e = e || window.event;
+
+ if (bw.mac && e)
+ {
+ opcode += (e.metaKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY);
+ return opcode;
+ }
+ if (e)
+ {
+ opcode += (e.ctrlKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY);
+ return opcode;
+ }
+},
+
+/**
+ * Return absolute mouse position of an event
+ */
+get_mouse_pos: function(e)
+{
+ if (!e) e = window.event;
+ var mX = (e.pageX) ? e.pageX : e.clientX;
+ var mY = (e.pageY) ? e.pageY : e.clientY;
+
+ if (document.body && document.all)
+ {
+ mX += document.body.scrollLeft;
+ mY += document.body.scrollTop;
+ }
+
+ if (e._offset) {
+ mX += e._offset.x;
+ mY += e._offset.y;
+ }
+
+ return { x:mX, y:mY };
+},
+
+/**
+ * Add an object method as event listener to a certain element
+ */
+add_listener: function(p)
+{
+ if (!p.object || !p.method) // not enough arguments
+ return;
+ if (!p.element)
+ p.element = document;
+
+ if (!p.object._rc_events)
+ p.object._rc_events = [];
+
+ var key = p.event + '*' + p.method;
+ if (!p.object._rc_events[key])
+ p.object._rc_events[key] = function(e){ return p.object[p.method](e); };
+
+ if (p.element.addEventListener)
+ p.element.addEventListener(p.event, p.object._rc_events[key], false);
+ else if (p.element.attachEvent)
+ {
+ // IE allows multiple events with the same function to be applied to the same object
+ // forcibly detach the event, then attach
+ p.element.detachEvent('on'+p.event, p.object._rc_events[key]);
+ p.element.attachEvent('on'+p.event, p.object._rc_events[key]);
+ }
+ else
+ p.element['on'+p.event] = p.object._rc_events[key];
+},
+
+/**
+ * Remove event listener
+ */
+remove_listener: function(p)
+{
+ if (!p.element)
+ p.element = document;
+
+ var key = p.event + '*' + p.method;
+ if (p.object && p.object._rc_events && p.object._rc_events[key]) {
+ if (p.element.removeEventListener)
+ p.element.removeEventListener(p.event, p.object._rc_events[key], false);
+ else if (p.element.detachEvent)
+ p.element.detachEvent('on'+p.event, p.object._rc_events[key]);
+ else
+ p.element['on'+p.event] = null;
+ }
+},
+
+/**
+ * Prevent event propagation and bubbeling
+ */
+cancel: function(evt)
+{
+ var e = evt ? evt : window.event;
+ if (e.preventDefault)
+ e.preventDefault();
+ if (e.stopPropagation)
+ e.stopPropagation();
+
+ e.cancelBubble = true;
+ e.returnValue = false;
+ return false;
+}
+
+};
+
+
+var rcube_layer_objects = new Array();
+
+
+/**
+ * RoundCube generic layer (floating box) class
+ *
+ * @constructor
+ */
+function rcube_layer(id, attributes)
+ {
+ this.name = id;
+
+ // create a new layer in the current document
+ this.create = function(arg)
+ {
+ var l = (arg.x) ? arg.x : 0;
+ var t = (arg.y) ? arg.y : 0;
+ var w = arg.width;
+ var h = arg.height;
+ var z = arg.zindex;
+ var vis = arg.vis;
+ var parent = arg.parent;
+ var obj;
+
+ obj = document.createElement('DIV');
+
+ with(obj)
+ {
+ id = this.name;
+ with(style)
+ {
+ position = 'absolute';
+ visibility = (vis) ? (vis==2) ? 'inherit' : 'visible' : 'hidden';
+ left = l+'px';
+ top = t+'px';
+ if (w)
+ width = w.toString().match(/\%$/) ? w : w+'px';
+ if (h)
+ height = h.toString().match(/\%$/) ? h : h+'px';
+ if(z) zIndex = z;
+ }
+ }
+
+ if (parent)
+ parent.appendChild(obj);
+ else
+ document.body.appendChild(obj);
+
+ this.elm = obj;
+ };
+
+
+ // create new layer
+ if(attributes!=null)
+ {
+ this.create(attributes);
+ this.name = this.elm.id;
+ }
+ else // just refer to the object
+ this.elm = document.getElementById(id);
+
+
+ if(!this.elm)
+ return false;
+
+
+ // ********* layer object properties *********
+
+ this.css = this.elm.style;
+ this.event = this.elm;
+ this.width = this.elm.offsetWidth;
+ this.height = this.elm.offsetHeight;
+ this.x = parseInt(this.elm.offsetLeft);
+ this.y = parseInt(this.elm.offsetTop);
+ this.visible = (this.css.visibility=='visible' || this.css.visibility=='show' || this.css.visibility=='inherit') ? true : false;
+
+ this.id = rcube_layer_objects.length;
+ this.obj = 'rcube_layer_objects['+this.id+']';
+ rcube_layer_objects[this.id] = this;
+
+
+ // ********* layer object methods *********
+
+
+ // move the layer to a specific position
+ this.move = function(x, y)
+ {
+ this.x = x;
+ this.y = y;
+ this.css.left = Math.round(this.x)+'px';
+ this.css.top = Math.round(this.y)+'px';
+ }
+
+
+ // move the layer for a specific step
+ this.shift = function(x,y)
+ {
+ x = Math.round(x*100)/100;
+ y = Math.round(y*100)/100;
+ this.move(this.x+x, this.y+y);
+ }
+
+
+ // change the layers width and height
+ this.resize = function(w,h)
+ {
+ this.css.width = w+'px';
+ this.css.height = h+'px';
+ this.width = w;
+ this.height = h;
+ }
+
+
+ // cut the layer (top,width,height,left)
+ this.clip = function(t,w,h,l)
+ {
+ this.css.clip='rect('+t+' '+w+' '+h+' '+l+')';
+ this.clip_height = h;
+ this.clip_width = w;
+ }
+
+
+ // show or hide the layer
+ this.show = function(a)
+ {
+ if(a==1)
+ {
+ this.css.visibility = 'visible';
+ this.visible = true;
+ }
+ else if(a==2)
+ {
+ this.css.visibility = 'inherit';
+ this.visible = true;
+ }
+ else
+ {
+ this.css.visibility = 'hidden';
+ this.visible = false;
+ }
+ }
+
+
+ // write new content into a Layer
+ this.write = function(cont)
+ {
+ this.elm.innerHTML = cont;
+ }
+
+
+ // set the given color to the layer background
+ this.set_bgcolor = function(c)
+ {
+ if(!c || c=='#')
+ c = 'transparent';
+
+ this.css.backgroundColor = c;
+ }
+
+
+ // set the opacity of a layer to the given ammount (in %)
+ this.set_opacity = function(v)
+ {
+ if(!bw.opacity)
+ return;
+
+ var op = v<=1 ? Math.round(v*100) : parseInt(v);
+
+ if(bw.ie)
+ this.css.filter = 'alpha(opacity:'+op+')';
+ else if(bw.safari)
+ {
+ this.css.opacity = op/100;
+ this.css.KhtmlOpacity = op/100;
+ }
+ else if(bw.mz)
+ this.css.MozOpacity = op/100;
+ }
+ }
+
+
+// check if input is a valid email address
+// By Cal Henderson <cal@iamcal.com>
+// http://code.iamcal.com/php/rfc822/
+function rcube_check_email(input, inline)
+ {
+ if (input && window.RegExp)
+ {
+ var qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
+ var dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
+ var atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
+ var quoted_pair = '\\x5c[\\x00-\\x7f]';
+ var domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d';
+ var quoted_string = '\\x22('+qtext+'|'+quoted_pair+')*\\x22';
+ var sub_domain = '('+atom+'|'+domain_literal+')';
+ var word = '('+atom+'|'+quoted_string+')';
+ var domain = sub_domain+'(\\x2e'+sub_domain+')*';
+ var local_part = word+'(\\x2e'+word+')*';
+ var addr_spec = local_part+'\\x40'+domain;
+ var delim = '[,;\s\n]';
+ var reg1 = inline ? new RegExp('(^|<|'+delim+')'+addr_spec+'($|>|'+delim+')', 'i') : new RegExp('^'+addr_spec+'$', 'i');
+ return reg1.test(input) ? true : false;
+ }
+ return false;
+ }
+
+
+// find a value in a specific array and returns the index
+function find_in_array()
+ {
+ var args = find_in_array.arguments;
+ if(!args.length) return -1;
+
+ var haystack = typeof(args[0])=='object' ? args[0] : args.length>1 && typeof(args[1])=='object' ? args[1] : new Array();
+ var needle = typeof(args[0])!='object' ? args[0] : args.length>1 && typeof(args[1])!='object' ? args[1] : '';
+ var nocase = args.length==3 ? args[2] : false;
+
+ if(!haystack.length) return -1;
+
+ for(var i=0; i<haystack.length; i++)
+ if(nocase && haystack[i].toLowerCase()==needle.toLowerCase())
+ return i;
+ else if(haystack[i]==needle)
+ return i;
+
+ return -1;
+ }
+
+
+// make a string URL safe
+function urlencode(str)
+{
+ return window.encodeURIComponent ? encodeURIComponent(str) : escape(str);
+}
+
+
+// get any type of html objects by id/name
+function rcube_find_object(id, d)
+ {
+ var n, f, obj, e;
+ if(!d) d = document;
+
+ if(d.getElementsByName && (e = d.getElementsByName(id)))
+ obj = e[0];
+ if(!obj && d.getElementById)
+ obj = d.getElementById(id);
+ if(!obj && d.all)
+ obj = d.all[id];
+
+ if(!obj && d.images.length)
+ obj = d.images[id];
+
+ if(!obj && d.forms.length)
+ for(f=0; f<d.forms.length; f++)
+ {
+ if(d.forms[f].name == id)
+ obj = d.forms[f];
+ else if(d.forms[f].elements[id])
+ obj = d.forms[f].elements[id];
+ }
+
+ if(!obj && d.layers)
+ {
+ if(d.layers[id]) obj = d.layers[id];
+ for(n=0; !obj && n<d.layers.length; n++)
+ obj = rcube_find_object(id, d.layers[n].document);
+ }
+
+ return obj;
+ }
+
+
+// return the absolute position of an object within the document
+function rcube_get_object_pos(obj, relative)
+ {
+ if(typeof(obj)=='string')
+ obj = rcube_find_object(obj);
+
+ if(!obj) return {x:0, y:0};
+
+ var iX = (bw.layers) ? obj.x : obj.offsetLeft;
+ var iY = (bw.layers) ? obj.y : obj.offsetTop;
+
+ if(!relative && (bw.ie || bw.mz))
+ {
+ var elm = obj.offsetParent;
+ while(elm && elm!=null)
+ {
+ iX += elm.offsetLeft - (elm.parentNode && elm.parentNode.scrollLeft ? elm.parentNode.scrollLeft : 0);
+ iY += elm.offsetTop - (elm.parentNode && elm.parentNode.scrollTop ? elm.parentNode.scrollTop : 0);
+ elm = elm.offsetParent;
+ }
+ }
+
+ return {x:iX, y:iY};
+ }
+
+// determine whether the mouse is over the given object or not
+function rcube_mouse_is_over(ev, obj)
+{
+ var mouse = rcube_event.get_mouse_pos(ev);
+ var pos = rcube_get_object_pos(obj);
+
+ return ((mouse.x >= pos.x) && (mouse.x < (pos.x + obj.offsetWidth)) &&
+ (mouse.y >= pos.y) && (mouse.y < (pos.y + obj.offsetHeight)));
+}
+
+
+/**
+ * Return the currently applied value of a css property
+ *
+ * @param {Object} html_element Node reference
+ * @param {String} css_property Property name to read in Javascript notation (eg. 'textAlign')
+ * @param {String} mozilla_equivalent Equivalent property name in CSS notation (eg. 'text-align')
+ * @return CSS property value
+ * @type String
+ */
+function get_elements_computed_style(html_element, css_property, mozilla_equivalent)
+ {
+ if (arguments.length==2)
+ mozilla_equivalent = css_property;
+
+ var el = html_element;
+ if (typeof(html_element)=='string')
+ el = rcube_find_object(html_element);
+
+ if (el && el.currentStyle)
+ return el.currentStyle[css_property];
+ else if (el && document.defaultView && document.defaultView.getComputedStyle)
+ return document.defaultView.getComputedStyle(el, null).getPropertyValue(mozilla_equivalent);
+ else
+ return false;
+ }
+
+
+// cookie functions by GoogieSpell
+function setCookie(name, value, expires, path, domain, secure)
+ {
+ var curCookie = name + "=" + escape(value) +
+ (expires ? "; expires=" + expires.toGMTString() : "") +
+ (path ? "; path=" + path : "") +
+ (domain ? "; domain=" + domain : "") +
+ (secure ? "; secure" : "");
+ document.cookie = curCookie;
+ }
+
+roundcube_browser.prototype.set_cookie = setCookie;
+
+function getCookie(name)
+ {
+ var dc = document.cookie;
+ var prefix = name + "=";
+ var begin = dc.indexOf("; " + prefix);
+ if (begin == -1)
+ {
+ begin = dc.indexOf(prefix);
+ if (begin != 0) return null;
+ }
+ else
+ begin += 2;
+ var end = document.cookie.indexOf(";", begin);
+ if (end == -1)
+ end = dc.length;
+ return unescape(dc.substring(begin + prefix.length, end));
+ }
+
+roundcube_browser.prototype.get_cookie = getCookie;
+
+
+// tiny replacement for Firebox functionality
+function rcube_console()
+{
+ this.log = function(msg)
+ {
+ box = rcube_find_object('console');
+
+ if (box)
+ if (msg.charAt(msg.length-1)=='\n')
+ box.value += msg+'--------------------------------------\n';
+ else
+ box.value += msg+'\n--------------------------------------\n';
+ };
+
+ this.reset = function()
+ {
+ box = rcube_find_object('console');
+ if (box)
+ box.value = '';
+ };
+}
+
+var bw = new roundcube_browser();
+
+if (!window.console)
+ console = new rcube_console();
+
+
+// Add escape() method to RegExp object
+// http://dev.rubyonrails.org/changeset/7271
+RegExp.escape = function(str)
+ {
+ return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
+ }
+
+
+// Make getElementById() case-sensitive on IE
+if (bw.ie)
+ {
+ document._getElementById = document.getElementById;
+ document.getElementById = function(id)
+ {
+ var i = 0;
+ var o = document._getElementById(id);
+
+ if (!o || o.id != id)
+ while ((o = document.all[i]) && o.id != id)
+ i++;
+
+ return o;
+ }
+ }
+
+
+// Fire event on specified element
+function exec_event(element,event)
+{
+ if (document.createEventObject) {
+ // dispatch for IE
+ var evt = document.createEventObject();
+ return element.fireEvent('on'+event,evt)
+ }
+ else {
+ // dispatch for firefox + others
+ var evt = document.createEvent("HTMLEvents");
+ evt.initEvent(event, true, true); // event type,bubbling,cancelable
+ return !element.dispatchEvent(evt);
+ }
+}
$Id: editor.js 000 2006-05-18 19:12:28Z roundcube $
*/
-// Initialize the message editor
+// Initialize HTML editor
+function rcmail_editor_init(skin_path, editor_lang, spellcheck, mode)
+{
+ if (mode == 'identity')
+ tinyMCE.init({ mode : 'textareas',
+ editor_selector : 'mce_editor',
+ apply_source_formatting : true,
+ theme : 'advanced',
+ language : editor_lang,
+ content_css : skin_path + '/editor_content.css',
+ theme_advanced_toolbar_location : 'top',
+ theme_advanced_toolbar_align : 'left',
+ theme_advanced_buttons1 : 'bold,italic,underline,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,separator,outdent,indent,charmap,hr,link,unlink,code,forecolor',
+ theme_advanced_buttons2 : ',fontselect,fontsizeselect',
+ theme_advanced_buttons3 : '',
+ gecko_spellcheck : true
+ });
+ else // mail compose
+ tinyMCE.init({
+ mode : 'textareas',
+ editor_selector : 'mce_editor',
+ accessibility_focus : false,
+ apply_source_formatting : true,
+ theme : 'advanced',
+ language : editor_lang,
+ plugins : 'emotions,media,nonbreaking,table,searchreplace,visualchars,directionality' + (spellcheck ? ',spellchecker' : ''),
+ theme_advanced_buttons1 : 'bold,italic,underline,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,bullist,numlist,outdent,indent,separator,link,unlink,emotions,charmap,code,forecolor,backcolor,fontselect,fontsizeselect, separator' + (spellcheck ? ',spellchecker' : '') + ',undo,redo,image,media,ltr,rtl',
+ theme_advanced_buttons2 : '',
+ theme_advanced_buttons3 : '',
+ theme_advanced_toolbar_location : 'top',
+ theme_advanced_toolbar_align : 'left',
+ extended_valid_elements : 'font[face|size|color|style],span[id|class|align|style]',
+ content_css : skin_path + '/editor_content.css',
+ external_image_list_url : 'program/js/editor_images.js',
+ spellchecker_languages : (rcmail.env.spellcheck_langs ? rcmail.env.spellcheck_langs : 'Dansk=da,Deutsch=de,+English=en,Espanol=es,Francais=fr,Italiano=it,Nederlands=nl,Polski=pl,Portugues=pt,Suomi=fi,Svenska=sv'),
+ gecko_spellcheck : true,
+ rc_client: rcube_webmail_client,
+ oninit : 'rcmail_editor_callback'
+ });
+}
-function rcmail_editor_init(skin_path, editor_lang)
- {
- tinyMCE.init({ mode : "textareas",
- editor_selector : "mce_editor",
- accessibility_focus : false,
- apply_source_formatting : true,
- theme : "advanced",
- language : editor_lang,
- plugins : "emotions,media,nonbreaking,table,searchreplace,visualchars,directionality",
- theme_advanced_buttons1 : "bold,italic,underline,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,bullist,numlist,outdent,indent,separator,link,unlink,emotions,charmap,code,forecolor,backcolor,fontselect,fontsizeselect, separator,undo,redo,image,media,ltr,rtl",
- theme_advanced_buttons2 : "",
- theme_advanced_buttons3 : "",
- theme_advanced_toolbar_location : "top",
- theme_advanced_toolbar_align : "left",
- extended_valid_elements : "font[face|size|color|style],span[id|class|align|style]",
- content_css : skin_path + "/editor_content.css",
- external_image_list_url : "editor_images.js"
- });
- }
+// react to real individual tinyMCE editor init
+function rcmail_editor_callback(editor)
+{
+ var input_from = rcube_find_object('_from');
+ if(input_from && input_from.type=='select-one')
+ rcmail.change_identity(input_from);
+}
-// Toggle between the HTML and Plain Text editors
+// switch html/plain mode
+function rcmail_toggle_editor(ishtml, textAreaId, flagElement)
+{
+ var composeElement = document.getElementById(textAreaId);
+ var flag;
-function rcmail_toggle_editor(toggler)
- {
- var selectedEditor = toggler.value;
-
- // determine the currently displayed editor
- var htmlFlag = document.getElementsByName('_is_html')[0];
- var isHtml = htmlFlag.value;
-
- if (((selectedEditor == 'plain') && (isHtml == "0")) ||
- ((selectedEditor == 'html') && (isHtml == "1")))
- {
- return;
- }
-
- // do the appropriate conversion
-
- var composeElement = document.getElementById('compose-body');
-
- if (selectedEditor == 'html')
+ if (ishtml)
{
var existingPlainText = composeElement.value;
var htmlText = "<pre>" + existingPlainText + "</pre>";
+
+ rcmail.display_spellcheck_controls(false);
composeElement.value = htmlText;
- tinyMCE.execCommand('mceAddControl', true, 'compose-body');
- htmlFlag.value = "1";
+ tinyMCE.execCommand('mceAddControl', true, textAreaId);
+ if (flagElement && (flag = rcube_find_object(flagElement)))
+ flag.value = '1';
}
else
{
- rcmail.set_busy(true, 'converting');
- var thisMCE = tinyMCE.get('compose-body');
+ if (!confirm(rcmail.get_label('editorwarning')))
+ return false;
+
+ var thisMCE = tinyMCE.get(textAreaId);
var existingHtml = thisMCE.getContent();
- rcmail_html2plain(existingHtml);
- tinyMCE.execCommand('mceRemoveControl', true, 'compose-body');
- htmlFlag.value = "0";
+ rcmail.html2plain(existingHtml, textAreaId);
+ tinyMCE.execCommand('mceRemoveControl', true, textAreaId);
+ rcmail.display_spellcheck_controls(true);
+ if (flagElement && (flag = rcube_find_object(flagElement)))
+ flag.value = '0';
}
- }
-
-function rcmail_html2plain(htmlText)
- {
- var http_request = new rcube_http_request();
-
- http_request.onerror = function(o) { rcmail_handle_toggle_error(o); };
- http_request.oncomplete = function(o) { rcmail_set_text_value(o); };
- var url = rcmail.env.bin_path+'html2text.php';
- console.log('HTTP request: ' + url);
- http_request.POST(url, htmlText, 'application/octet-stream');
- }
-
-function rcmail_set_text_value(httpRequest)
- {
- rcmail.set_busy(false);
- var composeElement = document.getElementById('compose-body');
- composeElement.value = httpRequest.get_text();
- }
-
-function rcmail_handle_toggle_error(httpRequest)
- {
- alert('html2text request returned with error ' + httpRequest.xmlhttp.status);
- }
+};
-var rc_client = tinyMCEPopup.windowOpener.rcube_webmail_client;
+var rc_client = tinyMCEPopup.getParam("rc_client");
if (rc_client.gui_objects.attachmentlist)
{
var tinyMCEImageList = new Array();
fname = liElem.childNodes[j].nodeValue;
}
}
- tinyMCEImageList.push([fname, rc_client.env.comm_path+'&_action=display-attachment&_file='+attachElems[i].id]);
+
+ if (fname.match(/\.(bmp|gif|png|jpg|jpeg)$/))
+ tinyMCEImageList.push([fname, rc_client.env.comm_path+'&_action=display-attachment&_file='+attachElems[i].id]);
}
};
-/*
-Last Modified: 28/04/06 16:28:09
-
- AmiJs library
- A very small library with DOM and Ajax functions.
- For a much larger script look on http://www.mochikit.com/
- AUTHOR
- 4mir Salihefendic (http://amix.dk) - amix@amix.dk
- LICENSE
- Copyright (c) 2006 Amir Salihefendic. All rights reserved.
- Copyright (c) 2005 Bob Ippolito. All rights reserved.
- http://www.opensource.org/licenses/mit-license.php
- VERSION
- 2.1
- SITE
- http://amix.dk/amijs
-**/
-
-var AJS = {
-////
-// Accessor functions
-////
- /**
- * @returns The element with the id
- */
- getElement: function(id) {
- if(typeof(id) == "string")
- return document.getElementById(id);
- else
- return id;
- },
-
- /**
- * @returns The elements with the ids
- */
- getElements: function(/*id1, id2, id3*/) {
- var elements = new Array();
- for (var i = 0; i < arguments.length; i++) {
- var element = this.getElement(arguments[i]);
- elements.push(element);
- }
- return elements;
- },
-
- /**
- * @returns The GET query argument
- */
- getQueryArgument: function(var_name) {
- var query = window.location.search.substring(1);
- var vars = query.split("&");
- for (var i=0;i<vars.length;i++) {
- var pair = vars[i].split("=");
- if (pair[0] == var_name) {
- return pair[1];
- }
- }
- return null;
- },
-
- /**
- * @returns If the browser is Internet Explorer
- */
- isIe: function() {
- return (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && navigator.userAgent.toLowerCase().indexOf("opera") == -1);
- },
-
- /**
- * @returns The document body
- */
- getBody: function() {
- return this.getElementsByTagAndClassName('body')[0]
- },
-
- /**
- * @returns All the elements that have a specific tag name or class name
- */
- getElementsByTagAndClassName: function(tag_name, class_name, /*optional*/ parent) {
- var class_elements = new Array();
- if(!this.isDefined(parent))
- parent = document;
- if(!this.isDefined(tag_name))
- tag_name = '*';
-
- var els = parent.getElementsByTagName(tag_name);
- var els_len = els.length;
- var pattern = new RegExp("(^|\\s)" + class_name + "(\\s|$)");
-
- for (i = 0, j = 0; i < els_len; i++) {
- if ( pattern.test(els[i].className) || class_name == null ) {
- class_elements[j] = els[i];
- j++;
- }
- }
- return class_elements;
- },
-
-
-////
-// DOM manipulation
-////
- /**
- * Appends some nodes to a node
- */
- appendChildNodes: function(node/*, nodes...*/) {
- if(arguments.length >= 2) {
- for(var i=1; i < arguments.length; i++) {
- var n = arguments[i];
- if(typeof(n) == "string")
- n = document.createTextNode(n);
- if(this.isDefined(n))
- node.appendChild(n);
- }
- }
- return node;
- },
-
- /**
- * Replaces a nodes children with another node(s)
- */
- replaceChildNodes: function(node/*, nodes...*/) {
- var child;
- while ((child = node.firstChild)) {
- node.removeChild(child);
- }
- if (arguments.length < 2) {
- return node;
- } else {
- return this.appendChildNodes.apply(this, arguments);
- }
- },
-
- /**
- * Insert a node after another node
- */
- insertAfter: function(node, referenceNode) {
- referenceNode.parentNode.insertBefore(node, referenceNode.nextSibling);
- },
-
- /**
- * Insert a node before another node
- */
- insertBefore: function(node, referenceNode) {
- referenceNode.parentNode.insertBefore(node, referenceNode);
- },
-
- /**
- * Shows the element
- */
- showElement: function(elm) {
- elm.style.display = '';
- },
-
- /**
- * Hides the element
- */
- hideElement: function(elm) {
- elm.style.display = 'none';
- },
-
- isElementHidden: function(elm) {
- return elm.style.visibility == "hidden";
- },
-
- /**
- * Swaps one element with another. To delete use swapDOM(elm, null)
- */
- swapDOM: function(dest, src) {
- dest = this.getElement(dest);
- var parent = dest.parentNode;
- if (src) {
- src = this.getElement(src);
- parent.replaceChild(src, dest);
- } else {
- parent.removeChild(dest);
- }
- return src;
- },
-
- /**
- * Removes an element from the world
- */
- removeElement: function(elm) {
- this.swapDOM(elm, null);
- },
-
- /**
- * @returns Is an object a dictionary?
- */
- isDict: function(o) {
- var str_repr = String(o);
- return str_repr.indexOf(" Object") != -1;
- },
-
- /**
- * Creates a DOM element
- * @param {String} name The elements DOM name
- * @param {Dict} attrs Attributes sent to the function
- */
- createDOM: function(name, attrs) {
- var i=0;
- elm = document.createElement(name);
-
- if(this.isDict(attrs[i])) {
- for(k in attrs[0]) {
- if(k == "style")
- elm.style.cssText = attrs[0][k];
- else if(k == "class")
- elm.className = attrs[0][k];
- else
- elm.setAttribute(k, attrs[0][k]);
- }
- i++;
- }
-
- if(attrs[0] == null)
- i = 1;
-
- for(i; i < attrs.length; i++) {
- var n = attrs[i];
- if(this.isDefined(n)) {
- if(typeof(n) == "string")
- n = document.createTextNode(n);
- elm.appendChild(n);
- }
- }
- return elm;
- },
-
- UL: function() { return this.createDOM.apply(this, ["ul", arguments]); },
- LI: function() { return this.createDOM.apply(this, ["li", arguments]); },
- TD: function() { return this.createDOM.apply(this, ["td", arguments]); },
- TR: function() { return this.createDOM.apply(this, ["tr", arguments]); },
- TH: function() { return this.createDOM.apply(this, ["th", arguments]); },
- TBODY: function() { return this.createDOM.apply(this, ["tbody", arguments]); },
- TABLE: function() { return this.createDOM.apply(this, ["table", arguments]); },
- INPUT: function() { return this.createDOM.apply(this, ["input", arguments]); },
- SPAN: function() { return this.createDOM.apply(this, ["span", arguments]); },
- B: function() { return this.createDOM.apply(this, ["b", arguments]); },
- A: function() { return this.createDOM.apply(this, ["a", arguments]); },
- DIV: function() { return this.createDOM.apply(this, ["div", arguments]); },
- IMG: function() { return this.createDOM.apply(this, ["img", arguments]); },
- BUTTON: function() { return this.createDOM.apply(this, ["button", arguments]); },
- H1: function() { return this.createDOM.apply(this, ["h1", arguments]); },
- H2: function() { return this.createDOM.apply(this, ["h2", arguments]); },
- H3: function() { return this.createDOM.apply(this, ["h3", arguments]); },
- BR: function() { return this.createDOM.apply(this, ["br", arguments]); },
- TEXTAREA: function() { return this.createDOM.apply(this, ["textarea", arguments]); },
- FORM: function() { return this.createDOM.apply(this, ["form", arguments]); },
- P: function() { return this.createDOM.apply(this, ["p", arguments]); },
- SELECT: function() { return this.createDOM.apply(this, ["select", arguments]); },
- OPTION: function() { return this.createDOM.apply(this, ["option", arguments]); },
- TN: function(text) { return document.createTextNode(text); },
- IFRAME: function() { return this.createDOM.apply(this, ["iframe", arguments]); },
- SCRIPT: function() { return this.createDOM.apply(this, ["script", arguments]); },
-
-////
-// Ajax functions
-////
- /**
- * @returns A new XMLHttpRequest object
- */
- getXMLHttpRequest: function() {
- var try_these = [
- function () { return new XMLHttpRequest(); },
- function () { return new ActiveXObject('Msxml2.XMLHTTP'); },
- function () { return new ActiveXObject('Microsoft.XMLHTTP'); },
- function () { return new ActiveXObject('Msxml2.XMLHTTP.4.0'); },
- function () { throw "Browser does not support XMLHttpRequest"; }
- ];
- for (var i = 0; i < try_these.length; i++) {
- var func = try_these[i];
- try {
- return func();
- } catch (e) {
- }
- }
- },
-
- /**
- * Use this function to do a simple HTTP Request
- */
- doSimpleXMLHttpRequest: function(url) {
- var req = this.getXMLHttpRequest();
- req.open("GET", url, true);
- return this.sendXMLHttpRequest(req);
- },
-
- getRequest: function(url, data) {
- var req = this.getXMLHttpRequest();
- req.open("POST", url, true);
- req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- return this.sendXMLHttpRequest(req);
- },
-
- /**
- * Send a XMLHttpRequest
- */
- sendXMLHttpRequest: function(req, data) {
- var d = new AJSDeferred(req);
-
- var onreadystatechange = function () {
- if (req.readyState == 4) {
- try {
- var status = req.status;
- }
- catch(e) {};
- if(status == 200 || status == 304 || req.responseText == null) {
- d.callback(req, data);
- }
- else {
- d.errback();
- }
- }
- }
- req.onreadystatechange = onreadystatechange;
- return d;
- },
-
- /**
- * Represent an object as a string
- */
- reprString: function(o) {
- return ('"' + o.replace(/(["\\])/g, '\\$1') + '"'
- ).replace(/[\f]/g, "\\f"
- ).replace(/[\b]/g, "\\b"
- ).replace(/[\n]/g, "\\n"
- ).replace(/[\t]/g, "\\t"
- ).replace(/[\r]/g, "\\r");
- },
-
- /**
- * Serialize an object to JSON notation
- */
- serializeJSON: function(o) {
- var objtype = typeof(o);
- if (objtype == "undefined") {
- return "undefined";
- } else if (objtype == "number" || objtype == "boolean") {
- return o + "";
- } else if (o === null) {
- return "null";
- }
- if (objtype == "string") {
- return this.reprString(o);
- }
- var me = arguments.callee;
- var newObj;
- if (typeof(o.__json__) == "function") {
- newObj = o.__json__();
- if (o !== newObj) {
- return me(newObj);
- }
- }
- if (typeof(o.json) == "function") {
- newObj = o.json();
- if (o !== newObj) {
- return me(newObj);
- }
- }
- if (objtype != "function" && typeof(o.length) == "number") {
- var res = [];
- for (var i = 0; i < o.length; i++) {
- var val = me(o[i]);
- if (typeof(val) != "string") {
- val = "undefined";
- }
- res.push(val);
- }
- return "[" + res.join(",") + "]";
- }
- res = [];
- for (var k in o) {
- var useKey;
- if (typeof(k) == "number") {
- useKey = '"' + k + '"';
- } else if (typeof(k) == "string") {
- useKey = this.reprString(k);
- } else {
- // skip non-string or number keys
- continue;
- }
- val = me(o[k]);
- if (typeof(val) != "string") {
- // skip non-serializable values
- continue;
- }
- res.push(useKey + ":" + val);
- }
- return "{" + res.join(",") + "}";
- },
-
- /**
- * Send and recive JSON using GET
- */
- loadJSONDoc: function(url) {
- var d = this.getRequest(url);
- var eval_req = function(req) {
- var text = req.responseText;
- return eval('(' + text + ')');
- };
- d.addCallback(eval_req);
- return d;
- },
-
-
-////
-// Misc.
-////
- /**
- * Alert the objects key attrs
- */
- keys: function(obj) {
- var rval = [];
- for (var prop in obj) {
- rval.push(prop);
- }
- return rval;
- },
-
- urlencode: function(str) {
- return encodeURIComponent(str.toString());
- },
-
- /**
- * @returns True if the object is defined, otherwise false
- */
- isDefined: function(o) {
- return (o != "undefined" && o != null)
- },
-
- /**
- * @returns True if an object is a array, false otherwise
- */
- isArray: function(obj) {
- try { return (typeof(obj.length) == "undefined") ? false : true; }
- catch(e)
- { return false; }
- },
-
- isObject: function(obj) {
- return (obj && typeof obj == 'object');
- },
-
- /**
- * Export DOM elements to the global namespace
- */
- exportDOMElements: function() {
- UL = this.UL;
- LI = this.LI;
- TD = this.TD;
- TR = this.TR;
- TH = this.TH;
- TBODY = this.TBODY;
- TABLE = this.TABLE;
- INPUT = this.INPUT;
- SPAN = this.SPAN;
- B = this.B;
- A = this.A;
- DIV = this.DIV;
- IMG = this.IMG;
- BUTTON = this.BUTTON;
- H1 = this.H1;
- H2 = this.H2;
- H3 = this.H3;
- BR = this.BR;
- TEXTAREA = this.TEXTAREA;
- FORM = this.FORM;
- P = this.P;
- SELECT = this.SELECT;
- OPTION = this.OPTION;
- TN = this.TN;
- IFRAME = this.IFRAME;
- SCRIPT = this.SCRIPT;
- },
-
- /**
- * Export AmiJS functions to the global namespace
- */
- exportToGlobalScope: function() {
- getElement = this.getElement;
- getQueryArgument = this.getQueryArgument;
- isIe = this.isIe;
- $ = this.getElement;
- getElements = this.getElements;
- getBody = this.getBody;
- getElementsByTagAndClassName = this.getElementsByTagAndClassName;
- appendChildNodes = this.appendChildNodes;
- ACN = appendChildNodes;
- replaceChildNodes = this.replaceChildNodes;
- RCN = replaceChildNodes;
- insertAfter = this.insertAfter;
- insertBefore = this.insertBefore;
- showElement = this.showElement;
- hideElement = this.hideElement;
- isElementHidden = this.isElementHidden;
- swapDOM = this.swapDOM;
- removeElement = this.removeElement;
- isDict = this.isDict;
- createDOM = this.createDOM;
- this.exportDOMElements();
- getXMLHttpRequest = this.getXMLHttpRequest;
- doSimpleXMLHttpRequest = this.doSimpleXMLHttpRequest;
- getRequest = this.getRequest;
- sendXMLHttpRequest = this.sendXMLHttpRequest;
- reprString = this.reprString;
- serializeJSON = this.serializeJSON;
- loadJSONDoc = this.loadJSONDoc;
- keys = this.keys;
- isDefined = this.isDefined;
- isArray = this.isArray;
- }
-}
-
-
-
-AJSDeferred = function(req) {
- this.callbacks = [];
- this.req = req;
-
- this.callback = function (res) {
- while (this.callbacks.length > 0) {
- var fn = this.callbacks.pop();
- res = fn(res);
- }
- };
-
- this.errback = function(e){
- alert("Error encountered:\n" + e);
- };
-
- this.addErrback = function(fn) {
- this.errback = fn;
- };
-
- this.addCallback = function(fn) {
- this.callbacks.unshift(fn);
- };
-
- this.addCallbacks = function(fn1, fn2) {
- this.addCallback(fn1);
- this.addErrback(fn2);
- };
-
- this.sendReq = function(data) {
- if(AJS.isObject(data)) {
- var post_data = [];
- for(k in data) {
- post_data.push(k + "=" + AJS.urlencode(data[k]));
- }
- post_data = post_data.join("&");
- this.req.send(post_data);
- }
- else if(AJS.isDefined(data))
- this.req.send(data);
- else {
- this.req.send("");
- }
- };
-};
-AJSDeferred.prototype = new AJSDeferred();
-
-
-
-
-
-
-/****
-Last Modified: 28/04/06 15:26:06
-
- GoogieSpell
- Google spell checker for your own web-apps :)
- Copyright Amir Salihefendic 2006
- LICENSE
- GPL (see gpl.txt for more information)
- This basically means that you can't use this script with/in proprietary software!
- There is another license that permits you to use this script with proprietary software. Check out:... for more info.
- AUTHOR
- 4mir Salihefendic (http://amix.dk) - amix@amix.dk
- VERSION
- 3.22
-****/
-var GOOGIE_CUR_LANG = "en";
-
-function GoogieSpell(img_dir, server_url) {
- var cookie_value;
- var lang;
- cookie_value = getCookie('language');
-
- if(cookie_value != null)
- GOOGIE_CUR_LANG = cookie_value;
-
- this.img_dir = img_dir;
- this.server_url = server_url;
-
- this.lang_to_word = {"da": "Dansk", "de": "Deutsch", "en": "English",
- "es": "Español", "fr": "Français", "it": "Italiano",
- "nl": "Nederlands", "pl": "Polski", "pt": "Português",
- "fi": "Suomi", "sv": "Svenska"};
- this.langlist_codes = AJS.keys(this.lang_to_word);
-
- this.show_change_lang_pic = true;
-
- this.lang_state_observer = null;
-
- this.spelling_state_observer = null;
-
- this.request = null;
- this.error_window = null;
- this.language_window = null;
- this.edit_layer = null;
- this.orginal_text = null;
- this.results = null;
- this.text_area = null;
- this.gselm = null;
- this.ta_scroll_top = 0;
- this.el_scroll_top = 0;
-
- this.lang_chck_spell = "Check spelling";
- this.lang_rsm_edt = "Resume editing";
- this.lang_close = "Close";
- this.lang_no_error_found = "No spelling errors found";
- this.lang_revert = "Revert to";
- this.show_spell_img = false; // modified by roundcube
-}
-
-GoogieSpell.prototype.setStateChanged = function(current_state) {
- if(this.spelling_state_observer != null)
- this.spelling_state_observer(current_state);
-}
-
-GoogieSpell.item_onmouseover = function(e) {
- var elm = GoogieSpell.getEventElm(e);
- if(elm.className != "googie_list_close" && elm.className != "googie_list_revert")
- elm.className = "googie_list_onhover";
- else
- elm.parentNode.className = "googie_list_onhover";
-}
-
-GoogieSpell.item_onmouseout = function(e) {
- var elm = GoogieSpell.getEventElm(e);
- if(elm.className != "googie_list_close" && elm.className != "googie_list_revert")
- elm.className = "googie_list_onout";
- else
- elm.parentNode.className = "googie_list_onout";
-}
-
-GoogieSpell.prototype.getGoogleUrl = function() {
- return this.server_url + GOOGIE_CUR_LANG;
-}
-
-GoogieSpell.prototype.spellCheck = function(elm, name) {
- this.ta_scroll_top = this.text_area.scrollTop;
-
- this.appendIndicator(elm);
-
- try {
- this.hideLangWindow();
- }
- catch(e) {}
-
- this.gselm = elm;
-
- this.createEditLayer(this.text_area.offsetWidth, this.text_area.offsetHeight);
-
- this.createErrorWindow();
- AJS.getBody().appendChild(this.error_window);
-
- try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); }
- catch (e) { }
-
- this.gselm.onclick = null;
-
- this.orginal_text = this.text_area.value;
- var me = this;
-
- //Create request
- var d = AJS.getRequest(this.getGoogleUrl());
- var reqdone = function(req) {
- var r_text = req.responseText;
- if(r_text.match(/<c.*>/) != null) {
- var results = GoogieSpell.parseResult(r_text);
- //Before parsing be sure that errors were found
- me.results = results;
- me.showErrorsInIframe(results);
- me.resumeEditingState();
- }
- else {
- me.flashNoSpellingErrorState();
- }
- me.removeIndicator();
- };
-
- var reqfailed = function(req) {
- alert("An error was encountered on the server. Please try again later.");
- AJS.removeElement(me.gselm);
- me.checkSpellingState();
- me.removeIndicator();
- };
-
- d.addCallback(reqdone);
- d.addErrback(reqfailed);
-
- var req_text = GoogieSpell.escapeSepcial(this.orginal_text);
- d.sendReq(GoogieSpell.createXMLReq(req_text));
-}
-
-GoogieSpell.escapeSepcial = function(val) {
- return val.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
-}
-
-GoogieSpell.createXMLReq = function (text) {
- return '<?xml version="1.0" encoding="utf-8" ?><spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><text>' + text + '</text></spellrequest>';
-}
-
-//Retunrs an array
-//result[item] -> ['attrs']
-// ['suggestions']
-GoogieSpell.parseResult = function(r_text) {
- var re_split_attr_c = /\w="\d+"/g;
- var re_split_text = /\t/g;
-
- var matched_c = r_text.match(/<c[^>]*>[^<]*<\/c>/g);
- var results = new Array();
-
- for(var i=0; i < matched_c.length; i++) {
- var item = new Array();
-
- //Get attributes
- item['attrs'] = new Array();
- var split_c = matched_c[i].match(re_split_attr_c);
- for(var j=0; j < split_c.length; j++) {
- var c_attr = split_c[j].split(/=/);
- item['attrs'][c_attr[0]] = parseInt(c_attr[1].replace('"', ''));
- }
-
- //Get suggestions
- item['suggestions'] = new Array();
- var only_text = matched_c[i].replace(/<[^>]*>/g, "");
- var split_t = only_text.split(re_split_text);
- for(var k=0; k < split_t.length; k++) {
- if(split_t[k] != "")
- item['suggestions'].push(split_t[k]);
- }
- results.push(item);
- }
- return results;
-}
-
-/****
- Error window (the drop-down window)
-****/
-GoogieSpell.prototype.createErrorWindow = function() {
- this.error_window = AJS.DIV();
- this.error_window.className = "googie_window";
-}
-
-GoogieSpell.prototype.hideErrorWindow = function() {
- this.error_window.style.visibility = "hidden";
+var AJS={getElement:function(id){
+if(typeof (id)=="string"){
+return document.getElementById(id);
+}else{
+return id;
+}
+},getElements:function(){
+var _2=new Array();
+for(var i=0;i<arguments.length;i++){
+var _4=this.getElement(arguments[i]);
+_2.push(_4);
+}
+return _2;
+},getQueryArgument:function(_5){
+var _6=window.location.search.substring(1);
+var _7=_6.split("&");
+for(var i=0;i<_7.length;i++){
+var _9=_7[i].split("=");
+if(_9[0]==_5){
+return _9[1];
+}
+}
+return null;
+},isIe:function(){
+return (navigator.userAgent.toLowerCase().indexOf("msie")!=-1&&navigator.userAgent.toLowerCase().indexOf("opera")==-1);
+},getBody:function(){
+return this.getElementsByTagAndClassName("body")[0];
+},getElementsByTagAndClassName:function(_a,_b,_c){
+var _d=new Array();
+if(!this.isDefined(_c)){
+_c=document;
+}
+if(!this.isDefined(_a)){
+_a="*";
+}
+var _e=_c.getElementsByTagName(_a);
+var _f=_e.length;
+var _10=new RegExp("(^|\\s)"+_b+"(\\s|$)");
+for(i=0,j=0;i<_f;i++){
+if(_10.test(_e[i].className)||_b==null){
+_d[j]=_e[i];
+j++;
+}
+}
+return _d;
+},appendChildNodes:function(_11){
+if(arguments.length>=2){
+for(var i=1;i<arguments.length;i++){
+var n=arguments[i];
+if(typeof (n)=="string"){
+n=document.createTextNode(n);
+}
+if(this.isDefined(n)){
+_11.appendChild(n);
+}
+}
+}
+return _11;
+},replaceChildNodes:function(_14){
+var _15;
+while((_15=_14.firstChild)){
+_14.removeChild(_15);
+}
+if(arguments.length<2){
+return _14;
+}else{
+return this.appendChildNodes.apply(this,arguments);
+}
+},insertAfter:function(_16,_17){
+_17.parentNode.insertBefore(_16,_17.nextSibling);
+},insertBefore:function(_18,_19){
+_19.parentNode.insertBefore(_18,_19);
+},showElement:function(elm){
+elm.style.display="";
+},hideElement:function(elm){
+elm.style.display="none";
+},isElementHidden:function(elm){
+return elm.style.visibility=="hidden";
+},swapDOM:function(_1d,src){
+_1d=this.getElement(_1d);
+var _1f=_1d.parentNode;
+if(src){
+src=this.getElement(src);
+_1f.replaceChild(src,_1d);
+}else{
+_1f.removeChild(_1d);
+}
+return src;
+},removeElement:function(elm){
+this.swapDOM(elm,null);
+},isDict:function(o){
+var _22=String(o);
+return _22.indexOf(" Object")!=-1;
+},createDOM:function(_23,_24){
+var i=0;
+elm=document.createElement(_23);
+if(this.isDict(_24[i])){
+for(k in _24[0]){
+if(k=="style"){
+elm.style.cssText=_24[0][k];
+}else{
+if(k=="class"){
+elm.className=_24[0][k];
+}else{
+elm.setAttribute(k,_24[0][k]);
+}
+}
+}
+i++;
+}
+if(_24[0]==null){
+i=1;
+}
+for(i;i<_24.length;i++){
+var n=_24[i];
+if(this.isDefined(n)){
+if(typeof (n)=="string"){
+n=document.createTextNode(n);
+}
+elm.appendChild(n);
+}
+}
+return elm;
+},UL:function(){
+return this.createDOM.apply(this,["ul",arguments]);
+},LI:function(){
+return this.createDOM.apply(this,["li",arguments]);
+},TD:function(){
+return this.createDOM.apply(this,["td",arguments]);
+},TR:function(){
+return this.createDOM.apply(this,["tr",arguments]);
+},TH:function(){
+return this.createDOM.apply(this,["th",arguments]);
+},TBODY:function(){
+return this.createDOM.apply(this,["tbody",arguments]);
+},TABLE:function(){
+return this.createDOM.apply(this,["table",arguments]);
+},INPUT:function(){
+return this.createDOM.apply(this,["input",arguments]);
+},SPAN:function(){
+return this.createDOM.apply(this,["span",arguments]);
+},B:function(){
+return this.createDOM.apply(this,["b",arguments]);
+},A:function(){
+return this.createDOM.apply(this,["a",arguments]);
+},DIV:function(){
+return this.createDOM.apply(this,["div",arguments]);
+},IMG:function(){
+return this.createDOM.apply(this,["img",arguments]);
+},BUTTON:function(){
+return this.createDOM.apply(this,["button",arguments]);
+},H1:function(){
+return this.createDOM.apply(this,["h1",arguments]);
+},H2:function(){
+return this.createDOM.apply(this,["h2",arguments]);
+},H3:function(){
+return this.createDOM.apply(this,["h3",arguments]);
+},BR:function(){
+return this.createDOM.apply(this,["br",arguments]);
+},TEXTAREA:function(){
+return this.createDOM.apply(this,["textarea",arguments]);
+},FORM:function(){
+return this.createDOM.apply(this,["form",arguments]);
+},P:function(){
+return this.createDOM.apply(this,["p",arguments]);
+},SELECT:function(){
+return this.createDOM.apply(this,["select",arguments]);
+},OPTION:function(){
+return this.createDOM.apply(this,["option",arguments]);
+},TN:function(_27){
+return document.createTextNode(_27);
+},IFRAME:function(){
+return this.createDOM.apply(this,["iframe",arguments]);
+},SCRIPT:function(){
+return this.createDOM.apply(this,["script",arguments]);
+},getXMLHttpRequest:function(){
+var _28=[function(){
+return new XMLHttpRequest();
+},function(){
+return new ActiveXObject("Msxml2.XMLHTTP");
+},function(){
+return new ActiveXObject("Microsoft.XMLHTTP");
+},function(){
+return new ActiveXObject("Msxml2.XMLHTTP.4.0");
+},function(){
+throw "Browser does not support XMLHttpRequest";
+}];
+for(var i=0;i<_28.length;i++){
+var _2a=_28[i];
+try{
+return _2a();
+}
+catch(e){
+}
+}
+},doSimpleXMLHttpRequest:function(url){
+var req=this.getXMLHttpRequest();
+req.open("GET",url,true);
+return this.sendXMLHttpRequest(req);
+},getRequest:function(url,_2e){
+var req=this.getXMLHttpRequest();
+req.open("POST",url,true);
+req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
+return this.sendXMLHttpRequest(req);
+},sendXMLHttpRequest:function(req,_31){
+var d=new AJSDeferred(req);
+var _33=function(){
+if(req.readyState==4){
+try{
+var _34=req.status;
+}
+catch(e){
+}
+if(_34==200||_34==304||req.responseText==null){
+d.callback(req,_31);
+}else{
+d.errback();
}
-
-GoogieSpell.prototype.updateOrginalText = function(offset, old_value, new_value, id) {
- var part_1 = this.orginal_text.substring(0, offset);
- var part_2 = this.orginal_text.substring(offset+old_value.length);
- this.orginal_text = part_1 + new_value + part_2;
- var add_2_offset = new_value.length - old_value.length;
- for(var j=0; j < this.results.length; j++) {
- //Don't edit the offset of the current item
- if(j != id && j > id){
- this.results[j]['attrs']['o'] += add_2_offset;
- }
- }
}
-
-GoogieSpell.prototype.saveOldValue = function (id, old_value) {
- this.results[id]['is_changed'] = true;
- this.results[id]['old_value'] = old_value;
+};
+req.onreadystatechange=_33;
+return d;
+},reprString:function(o){
+return ("\""+o.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");
+},serializeJSON:function(o){
+var _37=typeof (o);
+if(_37=="undefined"){
+return "undefined";
+}else{
+if(_37=="number"||_37=="boolean"){
+return o+"";
+}else{
+if(o===null){
+return "null";
+}
+}
+}
+if(_37=="string"){
+return this.reprString(o);
+}
+var me=arguments.callee;
+var _39;
+if(typeof (o.__json__)=="function"){
+_39=o.__json__();
+if(o!==_39){
+return me(_39);
+}
+}
+if(typeof (o.json)=="function"){
+_39=o.json();
+if(o!==_39){
+return me(_39);
+}
+}
+if(_37!="function"&&typeof (o.length)=="number"){
+var res=[];
+for(var i=0;i<o.length;i++){
+var val=me(o[i]);
+if(typeof (val)!="string"){
+val="undefined";
+}
+res.push(val);
+}
+return "["+res.join(",")+"]";
+}
+res=[];
+for(var k in o){
+var _3e;
+if(typeof (k)=="number"){
+_3e="\""+k+"\"";
+}else{
+if(typeof (k)=="string"){
+_3e=this.reprString(k);
+}else{
+continue;
+}
+}
+val=me(o[k]);
+if(typeof (val)!="string"){
+continue;
+}
+res.push(_3e+":"+val);
+}
+return "{"+res.join(",")+"}";
+},loadJSONDoc:function(url){
+var d=this.getRequest(url);
+var _41=function(req){
+var _43=req.responseText;
+return eval("("+_43+")");
+};
+d.addCallback(_41);
+return d;
+},keys:function(obj){
+var _45=[];
+for(var _46 in obj){
+_45.push(_46);
+}
+return _45;
+},urlencode:function(str){
+return encodeURIComponent(str.toString());
+},isDefined:function(o){
+return (o!="undefined"&&o!=null);
+},isArray:function(obj){
+try{
+return (typeof (obj.length)=="undefined")?false:true;
+}
+catch(e){
+return false;
+}
+},isObject:function(obj){
+return (obj&&typeof obj=="object");
+},exportDOMElements:function(){
+UL=this.UL;
+LI=this.LI;
+TD=this.TD;
+TR=this.TR;
+TH=this.TH;
+TBODY=this.TBODY;
+TABLE=this.TABLE;
+INPUT=this.INPUT;
+SPAN=this.SPAN;
+B=this.B;
+A=this.A;
+DIV=this.DIV;
+IMG=this.IMG;
+BUTTON=this.BUTTON;
+H1=this.H1;
+H2=this.H2;
+H3=this.H3;
+BR=this.BR;
+TEXTAREA=this.TEXTAREA;
+FORM=this.FORM;
+P=this.P;
+SELECT=this.SELECT;
+OPTION=this.OPTION;
+TN=this.TN;
+IFRAME=this.IFRAME;
+SCRIPT=this.SCRIPT;
+},exportToGlobalScope:function(){
+getElement=this.getElement;
+getQueryArgument=this.getQueryArgument;
+isIe=this.isIe;
+$=this.getElement;
+getElements=this.getElements;
+getBody=this.getBody;
+getElementsByTagAndClassName=this.getElementsByTagAndClassName;
+appendChildNodes=this.appendChildNodes;
+ACN=appendChildNodes;
+replaceChildNodes=this.replaceChildNodes;
+RCN=replaceChildNodes;
+insertAfter=this.insertAfter;
+insertBefore=this.insertBefore;
+showElement=this.showElement;
+hideElement=this.hideElement;
+isElementHidden=this.isElementHidden;
+swapDOM=this.swapDOM;
+removeElement=this.removeElement;
+isDict=this.isDict;
+createDOM=this.createDOM;
+this.exportDOMElements();
+getXMLHttpRequest=this.getXMLHttpRequest;
+doSimpleXMLHttpRequest=this.doSimpleXMLHttpRequest;
+getRequest=this.getRequest;
+sendXMLHttpRequest=this.sendXMLHttpRequest;
+reprString=this.reprString;
+serializeJSON=this.serializeJSON;
+loadJSONDoc=this.loadJSONDoc;
+keys=this.keys;
+isDefined=this.isDefined;
+isArray=this.isArray;
+}};
+AJSDeferred=function(req){
+this.callbacks=[];
+this.req=req;
+this.callback=function(res){
+while(this.callbacks.length>0){
+var fn=this.callbacks.pop();
+res=fn(res);
}
-
-GoogieSpell.prototype.showErrorWindow = function(elm, id) {
- var me = this;
-
- var abs_pos = GoogieSpell.absolutePosition(elm);
- abs_pos.y -= this.edit_layer.scrollTop;
- this.error_window.style.visibility = "visible";
- this.error_window.style.top = (abs_pos.y+20) + "px";
- this.error_window.style.left = (abs_pos.x) + "px";
- this.error_window.innerHTML = "";
-
- //Build up the result list
- var table = AJS.TABLE({'class': 'googie_list'});
- var list = AJS.TBODY();
-
- var suggestions = this.results[id]['suggestions'];
- var offset = this.results[id]['attrs']['o'];
- var len = this.results[id]['attrs']['l'];
-
- if(suggestions.length == 0) {
- var row = AJS.TR();
- var item = AJS.TD();
- var dummy = AJS.SPAN();
- item.appendChild(AJS.TN("No suggestions :("));
- row.appendChild(item);
- list.appendChild(row);
- }
-
- for(i=0; i < suggestions.length; i++) {
- var row = AJS.TR();
- var item = AJS.TD();
- var dummy = AJS.SPAN();
- dummy.innerHTML = suggestions[i];
- item.appendChild(AJS.TN(dummy.innerHTML));
-
- item.onclick = function(e) {
- var l_elm = GoogieSpell.getEventElm(e);
- var old_value = elm.innerHTML;
- var new_value = l_elm.innerHTML;
-
- elm.style.color = "green";
- elm.innerHTML = l_elm.innerHTML;
- me.hideErrorWindow();
-
- me.updateOrginalText(offset, old_value, new_value, id);
-
- //Update to the new length
- me.results[id]['attrs']['l'] = new_value.length;
- me.saveOldValue(id, old_value);
- };
- item.onmouseover = GoogieSpell.item_onmouseover;
- item.onmouseout = GoogieSpell.item_onmouseout;
- row.appendChild(item);
- list.appendChild(row);
- }
-
- //The element is changed, append the revert
- if(this.results[id]['is_changed']) {
- var old_value = this.results[id]['old_value'];
- var offset = this.results[id]['attrs']['o'];
- var revert_row = AJS.TR();
- var revert = AJS.TD();
-
- revert.onmouseover = GoogieSpell.item_onmouseover;
- revert.onmouseout = GoogieSpell.item_onmouseout;
- var rev_span = AJS.SPAN({'class': 'googie_list_revert'});
- rev_span.innerHTML = this.lang_revert + " " + old_value;
- revert.appendChild(rev_span);
-
- revert.onclick = function(e) {
- me.updateOrginalText(offset, elm.innerHTML, old_value, id);
- elm.style.color = "#b91414";
- elm.innerHTML = old_value;
- me.hideErrorWindow();
- };
-
- revert_row.appendChild(revert);
- list.appendChild(revert_row);
- }
-
- //Append the edit box
- var edit_row = AJS.TR();
- var edit = AJS.TD();
-
- var edit_input = AJS.INPUT({'style': 'width: 120px; margin:0; padding:0'});
-
- var onsub = function () {
- if(edit_input.value != "") {
- me.saveOldValue(id, elm.innerHTML);
- me.updateOrginalText(offset, elm.innerHTML, edit_input.value, id);
- elm.style.color = "green"
- elm.innerHTML = edit_input.value;
-
- me.hideErrorWindow();
- return false;
- }
- };
-
- var ok_pic = AJS.IMG({'src': this.img_dir + "ok.gif", 'style': 'width: 32px; height: 16px; margin-left: 2px; margin-right: 2px;'});
- var edit_form = AJS.FORM({'style': 'margin: 0; padding: 0'}, edit_input, ok_pic);
- ok_pic.onclick = onsub;
- edit_form.onsubmit = onsub;
-
- edit.appendChild(edit_form);
- edit_row.appendChild(edit);
- list.appendChild(edit_row);
-
- //Close button
- var close_row = AJS.TR();
- var close = AJS.TD();
-
- close.onmouseover = GoogieSpell.item_onmouseover;
- close.onmouseout = GoogieSpell.item_onmouseout;
-
- var spn_close = AJS.SPAN({'class': 'googie_list_close'});
- spn_close.innerHTML = this.lang_close;
- close.appendChild(spn_close);
- close.onclick = function() { me.hideErrorWindow()};
- close_row.appendChild(close);
- list.appendChild(close_row);
-
- table.appendChild(list);
- this.error_window.appendChild(table);
+};
+this.errback=function(e){
+alert("Error encountered:\n"+e);
+};
+this.addErrback=function(fn){
+this.errback=fn;
+};
+this.addCallback=function(fn){
+this.callbacks.unshift(fn);
+};
+this.addCallbacks=function(fn1,fn2){
+this.addCallback(fn1);
+this.addErrback(fn2);
+};
+this.sendReq=function(_53){
+if(AJS.isObject(_53)){
+var _54=[];
+for(k in _53){
+_54.push(k+"="+AJS.urlencode(_53[k]));
}
-
-
-/****
- Edit layer (the layer where the suggestions are stored)
-****/
-GoogieSpell.prototype.createEditLayer = function(width, height) {
- this.edit_layer = AJS.DIV({'class': 'googie_edit_layer'});
-
- //Set the style so it looks like edit areas
- this.edit_layer.className = this.text_area.className;
- this.edit_layer.style.border = "1px solid #999";
- this.edit_layer.style.overflow = "auto";
- this.edit_layer.style.backgroundColor = "#F1EDFE";
- this.edit_layer.style.padding = "3px";
-
- this.edit_layer.style.width = (width-8) + "px";
- this.edit_layer.style.height = height + "px";
+_54=_54.join("&");
+this.req.send(_54);
+}else{
+if(AJS.isDefined(_53)){
+this.req.send(_53);
+}else{
+this.req.send("");
}
-
-GoogieSpell.prototype.resumeEditing = function(e, me) {
- this.setStateChanged("check_spelling");
- me.switch_lan_pic.style.display = "inline";
-
- this.el_scroll_top = me.edit_layer.scrollTop;
-
- var elm = GoogieSpell.getEventElm(e);
- AJS.replaceChildNodes(elm, this.createSpellDiv());
-
- elm.onclick = function(e) {
- me.spellCheck(elm, me.text_area.id);
- };
- me.hideErrorWindow();
-
- //Remove the EDIT_LAYER
- me.edit_layer.parentNode.removeChild(me.edit_layer);
-
- me.text_area.value = me.orginal_text;
- AJS.showElement(me.text_area);
- me.gselm.className = "googie_no_style";
-
- me.text_area.scrollTop = this.el_scroll_top;
-
- elm.onmouseout = null;
}
-
-GoogieSpell.prototype.createErrorLink = function(text, id) {
- var elm = AJS.SPAN({'class': 'googie_link'});
- var me = this;
- elm.onclick = function () {
- me.showErrorWindow(elm, id);
- };
- elm.innerHTML = text;
- return elm;
+};
+};
+AJSDeferred.prototype=new AJSDeferred();
+var GOOGIE_CUR_LANG="en";
+function GoogieSpell(_55,_56){
+var _57;
+var _58;
+_57=getCookie("language");
+if(_57!=null){
+GOOGIE_CUR_LANG=_57;
+}
+this.img_dir=_55;
+this.server_url=_56;
+this.lang_to_word={"da":"Dansk","de":"Deutsch","en":"English","es":"Español","fr":"Français","it":"Italiano","nl":"Nederlands","pl":"Polski","pt":"Português","fi":"Suomi","sv":"Svenska"};
+this.langlist_codes=AJS.keys(this.lang_to_word);
+this.show_change_lang_pic=true;
+this.lang_state_observer=null;
+this.spelling_state_observer=null;
+this.request=null;
+this.error_window=null;
+this.language_window=null;
+this.edit_layer=null;
+this.orginal_text=null;
+this.results=null;
+this.text_area=null;
+this.gselm=null;
+this.ta_scroll_top=0;
+this.el_scroll_top=0;
+this.lang_chck_spell="Check spelling";
+this.lang_rsm_edt="Resume editing";
+this.lang_close="Close";
+this.lang_no_error_found="No spelling errors found";
+this.lang_revert="Revert to";
+this.show_spell_img=false;
+};
+GoogieSpell.prototype.setStateChanged=function(_59){
+if(this.spelling_state_observer!=null){
+this.spelling_state_observer(_59);
}
-
-GoogieSpell.createPart = function(txt_part) {
- if(txt_part == " ")
- return AJS.TN(" ");
- var result = AJS.SPAN();
-
- var is_first = true;
- var is_safari = (navigator.userAgent.toLowerCase().indexOf("safari") != -1);
-
- var part = AJS.SPAN();
- txt_part = GoogieSpell.escapeSepcial(txt_part);
- txt_part = txt_part.replace(/\n/g, "<br>");
- txt_part = txt_part.replace(/ /g, " ");
- txt_part = txt_part.replace(/^ /g, " ");
- txt_part = txt_part.replace(/ $/g, " ");
-
- part.innerHTML = txt_part;
-
- return part;
+};
+GoogieSpell.item_onmouseover=function(e){
+var elm=GoogieSpell.getEventElm(e);
+if(elm.className!="googie_list_close"&&elm.className!="googie_list_revert"){
+elm.className="googie_list_onhover";
+}else{
+elm.parentNode.className="googie_list_onhover";
}
-
-GoogieSpell.prototype.showErrorsInIframe = function(results) {
- var output = AJS.DIV();
- output.style.textAlign = "left";
- var pointer = 0;
- for(var i=0; i < results.length; i++) {
- var offset = results[i]['attrs']['o'];
- var len = results[i]['attrs']['l'];
-
- var part_1_text = this.orginal_text.substring(pointer, offset);
- var part_1 = GoogieSpell.createPart(part_1_text);
- output.appendChild(part_1);
- pointer += offset - pointer;
-
- //If the last child was an error, then insert some space
- output.appendChild(this.createErrorLink(this.orginal_text.substr(offset, len), i));
- pointer += len;
- }
- //Insert the rest of the orginal text
- var part_2_text = this.orginal_text.substr(pointer, this.orginal_text.length);
-
- var part_2 = GoogieSpell.createPart(part_2_text);
- output.appendChild(part_2);
-
- this.edit_layer.appendChild(output);
-
- //Hide text area
- AJS.hideElement(this.text_area);
- this.text_area.parentNode.insertBefore(this.edit_layer, this.text_area.nextSibling);
- this.edit_layer.scrollTop = this.ta_scroll_top;
+};
+GoogieSpell.item_onmouseout=function(e){
+var elm=GoogieSpell.getEventElm(e);
+if(elm.className!="googie_list_close"&&elm.className!="googie_list_revert"){
+elm.className="googie_list_onout";
+}else{
+elm.parentNode.className="googie_list_onout";
}
-
-GoogieSpell.Position = function(x, y) {
- this.x = x;
- this.y = y;
-}
-
-//Get the absolute position of menu_slide
-GoogieSpell.absolutePosition = function(element) {
- //Create a new object that has elements y and x pos...
- var posObj = new GoogieSpell.Position(element.offsetLeft, element.offsetTop);
-
- //Check if the element has an offsetParent - if it has .. loop until it has not
- if(element.offsetParent) {
- var temp_pos = GoogieSpell.absolutePosition(element.offsetParent);
- posObj.x += temp_pos.x;
- posObj.y += temp_pos.y;
- }
- return posObj;
+};
+GoogieSpell.prototype.getGoogleUrl=function(){
+return this.server_url+GOOGIE_CUR_LANG;
+};
+GoogieSpell.prototype.spellCheck=function(elm,_5f){
+this.ta_scroll_top=this.text_area.scrollTop;
+this.appendIndicator(elm);
+try{
+this.hideLangWindow();
+}
+catch(e){
+}
+this.gselm=elm;
+this.createEditLayer(this.text_area.offsetWidth,this.text_area.offsetHeight);
+this.createErrorWindow();
+AJS.getBody().appendChild(this.error_window);
+try{
+netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
+}
+catch(e){
+}
+this.gselm.onclick=null;
+this.orginal_text=this.text_area.value;
+var me=this;
+var d=AJS.getRequest(this.getGoogleUrl());
+var _62=function(req){
+var _64=req.responseText;
+if(_64.match(/<c.*>/)!=null){
+var _65=GoogieSpell.parseResult(_64);
+me.results=_65;
+me.showErrorsInIframe(_65);
+me.resumeEditingState();
+}else{
+me.flashNoSpellingErrorState();
+}
+me.removeIndicator();
+};
+var _66=function(req){
+alert("An error was encountered on the server. Please try again later.");
+AJS.removeElement(me.gselm);
+me.checkSpellingState();
+me.removeIndicator();
+};
+d.addCallback(_62);
+d.addErrback(_66);
+var _68=GoogieSpell.escapeSepcial(this.orginal_text);
+d.sendReq(GoogieSpell.createXMLReq(_68));
+};
+GoogieSpell.escapeSepcial=function(val){
+return val.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
+};
+GoogieSpell.createXMLReq=function(_6a){
+return "<?xml version=\"1.0\" encoding=\"utf-8\" ?><spellrequest textalreadyclipped=\"0\" ignoredups=\"0\" ignoredigits=\"1\" ignoreallcaps=\"1\"><text>"+_6a+"</text></spellrequest>";
+};
+GoogieSpell.parseResult=function(_6b){
+var _6c=/\w="\d+"/g;
+var _6d=/\t/g;
+var _6e=_6b.match(/<c[^>]*>[^<]*<\/c>/g);
+var _6f=new Array();
+for(var i=0;i<_6e.length;i++){
+var _71=new Array();
+_71["attrs"]=new Array();
+var _72=_6e[i].match(_6c);
+for(var j=0;j<_72.length;j++){
+var _74=_72[j].split(/=/);
+_71["attrs"][_74[0]]=parseInt(_74[1].replace("\"",""));
+}
+_71["suggestions"]=new Array();
+var _75=_6e[i].replace(/<[^>]*>/g,"");
+var _76=_75.split(_6d);
+for(var k=0;k<_76.length;k++){
+if(_76[k]!=""){
+_71["suggestions"].push(_76[k]);
+}
+}
+_6f.push(_71);
+}
+return _6f;
+};
+GoogieSpell.prototype.createErrorWindow=function(){
+this.error_window=AJS.DIV();
+this.error_window.className="googie_window";
+};
+GoogieSpell.prototype.hideErrorWindow=function(){
+this.error_window.style.visibility="hidden";
+};
+GoogieSpell.prototype.updateOrginalText=function(_78,_79,_7a,id){
+var _7c=this.orginal_text.substring(0,_78);
+var _7d=this.orginal_text.substring(_78+_79.length);
+this.orginal_text=_7c+_7a+_7d;
+var _7e=_7a.length-_79.length;
+for(var j=0;j<this.results.length;j++){
+if(j!=id&&j>id){
+this.results[j]["attrs"]["o"]+=_7e;
}
-
-GoogieSpell.getEventElm = function(e) {
- var targ;
- if (!e) var e = window.event;
- if (e.target) targ = e.target;
- else if (e.srcElement) targ = e.srcElement;
- if (targ.nodeType == 3) // defeat Safari bug
- targ = targ.parentNode;
- return targ;
}
-
-GoogieSpell.prototype.removeIndicator = function(elm) {
- // modified by roundcube
- if (window.rcube_webmail_client)
- rcube_webmail_client.set_busy(false);
- //AJS.removeElement(this.indicator);
+};
+GoogieSpell.prototype.saveOldValue=function(id,_81){
+this.results[id]["is_changed"]=true;
+this.results[id]["old_value"]=_81;
+};
+GoogieSpell.prototype.showErrorWindow=function(elm,id){
+var me=this;
+var _85=GoogieSpell.absolutePosition(elm);
+_85.y-=this.edit_layer.scrollTop;
+this.error_window.style.visibility="visible";
+this.error_window.style.top=(_85.y+20)+"px";
+this.error_window.style.left=(_85.x)+"px";
+this.error_window.innerHTML="";
+var _86=AJS.TABLE({"class":"googie_list"});
+var _87=AJS.TBODY();
+var _88=this.results[id]["suggestions"];
+var _89=this.results[id]["attrs"]["o"];
+var len=this.results[id]["attrs"]["l"];
+if(_88.length==0){
+var row=AJS.TR();
+var _8c=AJS.TD();
+var _8d=AJS.SPAN();
+_8c.appendChild(AJS.TN("No suggestions :("));
+row.appendChild(_8c);
+_87.appendChild(row);
+}
+for(i=0;i<_88.length;i++){
+var row=AJS.TR();
+var _8c=AJS.TD();
+var _8d=AJS.SPAN();
+_8d.innerHTML=_88[i];
+_8c.appendChild(AJS.TN(_8d.innerHTML));
+_8c.onclick=function(e){
+var _8f=GoogieSpell.getEventElm(e);
+var _90=elm.innerHTML;
+var _91=_8f.innerHTML;
+elm.style.color="green";
+elm.innerHTML=_8f.innerHTML;
+me.hideErrorWindow();
+me.updateOrginalText(_89,_90,_91,id);
+me.results[id]["attrs"]["l"]=_91.length;
+me.saveOldValue(id,_90);
+};
+_8c.onmouseover=GoogieSpell.item_onmouseover;
+_8c.onmouseout=GoogieSpell.item_onmouseout;
+row.appendChild(_8c);
+_87.appendChild(row);
+}
+if(this.results[id]["is_changed"]){
+var _92=this.results[id]["old_value"];
+var _89=this.results[id]["attrs"]["o"];
+var _93=AJS.TR();
+var _94=AJS.TD();
+_94.onmouseover=GoogieSpell.item_onmouseover;
+_94.onmouseout=GoogieSpell.item_onmouseout;
+var _95=AJS.SPAN({"class":"googie_list_revert"});
+_95.innerHTML=this.lang_revert+" "+_92;
+_94.appendChild(_95);
+_94.onclick=function(e){
+me.updateOrginalText(_89,elm.innerHTML,_92,id);
+elm.style.color="#b91414";
+elm.innerHTML=_92;
+me.hideErrorWindow();
+};
+_93.appendChild(_94);
+_87.appendChild(_93);
+}
+var _97=AJS.TR();
+var _98=AJS.TD();
+var _99=AJS.INPUT({"style":"width: 120px; margin:0; padding:0"});
+var _9a=function(){
+if(_99.value!=""){
+me.saveOldValue(id,elm.innerHTML);
+me.updateOrginalText(_89,elm.innerHTML,_99.value,id);
+elm.style.color="green";
+elm.innerHTML=_99.value;
+me.hideErrorWindow();
+return false;
}
-
-GoogieSpell.prototype.appendIndicator = function(elm) {
- // modified by roundcube
- if (window.rcube_webmail_client)
- rcube_webmail_client.set_busy(true, 'checking');
-/*
- var img = AJS.IMG({'src': this.img_dir + 'indicator.gif', 'style': 'margin-right: 5px;'});
- img.style.width = "16px";
- img.style.height = "16px";
- this.indicator = img;
- img.style.textDecoration = "none";
- AJS.insertBefore(img, elm);
- */
+};
+var _9b=AJS.IMG({"src":this.img_dir+"ok.gif","style":"width: 32px; height: 16px; margin-left: 2px; margin-right: 2px;"});
+var _9c=AJS.FORM({"style":"margin: 0; padding: 0"},_99,_9b);
+_9b.onclick=_9a;
+_9c.onsubmit=_9a;
+_98.appendChild(_9c);
+_97.appendChild(_98);
+_87.appendChild(_97);
+var _9d=AJS.TR();
+var _9e=AJS.TD();
+_9e.onmouseover=GoogieSpell.item_onmouseover;
+_9e.onmouseout=GoogieSpell.item_onmouseout;
+var _9f=AJS.SPAN({"class":"googie_list_close"});
+_9f.innerHTML=this.lang_close;
+_9e.appendChild(_9f);
+_9e.onclick=function(){
+me.hideErrorWindow();
+};
+_9d.appendChild(_9e);
+_87.appendChild(_9d);
+_86.appendChild(_87);
+this.error_window.appendChild(_86);
+};
+GoogieSpell.prototype.createEditLayer=function(_a0,_a1){
+this.edit_layer=AJS.DIV({"class":"googie_edit_layer"});
+this.edit_layer.className=this.text_area.className;
+this.edit_layer.style.border="1px solid #999";
+this.edit_layer.style.overflow="auto";
+this.edit_layer.style.backgroundColor="#F1EDFE";
+this.edit_layer.style.padding="3px";
+this.edit_layer.style.width=(_a0-8)+"px";
+this.edit_layer.style.height=_a1+"px";
+};
+GoogieSpell.prototype.resumeEditing=function(e,me){
+this.setStateChanged("check_spelling");
+me.switch_lan_pic.style.display="inline";
+this.el_scroll_top=me.edit_layer.scrollTop;
+var elm=GoogieSpell.getEventElm(e);
+AJS.replaceChildNodes(elm,this.createSpellDiv());
+elm.onclick=function(e){
+me.spellCheck(elm,me.text_area.id);
+};
+me.hideErrorWindow();
+me.edit_layer.parentNode.removeChild(me.edit_layer);
+me.text_area.value=me.orginal_text;
+AJS.showElement(me.text_area);
+me.gselm.className="googie_no_style";
+me.text_area.scrollTop=this.el_scroll_top;
+elm.onmouseout=null;
+};
+GoogieSpell.prototype.createErrorLink=function(_a6,id){
+var elm=AJS.SPAN({"class":"googie_link"});
+var me=this;
+elm.onclick=function(){
+me.showErrorWindow(elm,id);
+};
+elm.innerHTML=_a6;
+return elm;
+};
+GoogieSpell.createPart=function(_aa){
+if(_aa==" "){
+return AJS.TN(" ");
+}
+var _ab=AJS.SPAN();
+var _ac=true;
+var _ad=(navigator.userAgent.toLowerCase().indexOf("safari")!=-1);
+var _ae=AJS.SPAN();
+_aa=GoogieSpell.escapeSepcial(_aa);
+_aa=_aa.replace(/\n/g,"<br>");
+_aa=_aa.replace(/ /g," ");
+_aa=_aa.replace(/^ /g," ");
+_aa=_aa.replace(/ $/g," ");
+_ae.innerHTML=_aa;
+return _ae;
+};
+GoogieSpell.prototype.showErrorsInIframe=function(_af){
+var _b0=AJS.DIV();
+_b0.style.textAlign="left";
+var _b1=0;
+for(var i=0;i<_af.length;i++){
+var _b3=_af[i]["attrs"]["o"];
+var len=_af[i]["attrs"]["l"];
+var _b5=this.orginal_text.substring(_b1,_b3);
+var _b6=GoogieSpell.createPart(_b5);
+_b0.appendChild(_b6);
+_b1+=_b3-_b1;
+_b0.appendChild(this.createErrorLink(this.orginal_text.substr(_b3,len),i));
+_b1+=len;
+}
+var _b7=this.orginal_text.substr(_b1,this.orginal_text.length);
+var _b8=GoogieSpell.createPart(_b7);
+_b0.appendChild(_b8);
+this.edit_layer.appendChild(_b0);
+AJS.hideElement(this.text_area);
+this.text_area.parentNode.insertBefore(this.edit_layer,this.text_area.nextSibling);
+this.edit_layer.scrollTop=this.ta_scroll_top;
+};
+GoogieSpell.Position=function(x,y){
+this.x=x;
+this.y=y;
+};
+GoogieSpell.absolutePosition=function(_bb){
+var _bc=new GoogieSpell.Position(_bb.offsetLeft,_bb.offsetTop);
+if(_bb.offsetParent){
+var _bd=GoogieSpell.absolutePosition(_bb.offsetParent);
+_bc.x+=_bd.x;
+_bc.y+=_bd.y;
+}
+return _bc;
+};
+GoogieSpell.getEventElm=function(e){
+var _bf;
+if(!e){
+var e=window.event;
}
-
-/****
- Choose language
-****/
-GoogieSpell.prototype.createLangWindow = function() {
- this.language_window = AJS.DIV({'class': 'googie_window'});
- this.language_window.style.width = "130px";
-
- //Build up the result list
- var table = AJS.TABLE({'class': 'googie_list'});
- var list = AJS.TBODY();
-
- this.lang_elms = new Array();
-
- for(i=0; i < this.langlist_codes.length; i++) {
- var row = AJS.TR();
- var item = AJS.TD();
- item.googieId = this.langlist_codes[i];
- this.lang_elms.push(item);
- var lang_span = AJS.SPAN();
- lang_span.innerHTML = this.lang_to_word[this.langlist_codes[i]];
- item.appendChild(AJS.TN(lang_span.innerHTML));
-
- var me = this;
-
- item.onclick = function(e) {
- var elm = GoogieSpell.getEventElm(e);
- me.deHighlightCurSel();
-
- me.setCurrentLanguage(elm.googieId);
-
- if(me.lang_state_observer != null) {
- me.lang_state_observer();
- }
-
- me.highlightCurSel();
- me.hideLangWindow();
- };
-
- item.onmouseover = function(e) {
- var i_it = GoogieSpell.getEventElm(e);
- if(i_it.className != "googie_list_selected")
- i_it.className = "googie_list_onhover";
- };
- item.onmouseout = function(e) {
- var i_it = GoogieSpell.getEventElm(e);
- if(i_it.className != "googie_list_selected")
- i_it.className = "googie_list_onout";
- };
-
- row.appendChild(item);
- list.appendChild(row);
- }
-
- this.highlightCurSel();
-
- //Close button
- var close_row = AJS.TR();
- var close = AJS.TD();
- close.onmouseover = GoogieSpell.item_onmouseover;
- close.onmouseout = GoogieSpell.item_onmouseout;
- var spn_close = AJS.SPAN({'class': 'googie_list_close'});
- spn_close.innerHTML = this.lang_close;
- close.appendChild(spn_close);
- var me = this;
- close.onclick = function(e) {
- me.hideLangWindow(); GoogieSpell.item_onmouseout(e);
- };
- close_row.appendChild(close);
- list.appendChild(close_row);
-
- table.appendChild(list);
- this.language_window.appendChild(table);
+if(e.target){
+_bf=e.target;
+}else{
+if(e.srcElement){
+_bf=e.srcElement;
}
-
-GoogieSpell.prototype.setCurrentLanguage = function(lan_code) {
- GOOGIE_CUR_LANG = lan_code;
-
- //Set cookie
- var now = new Date();
- now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
- setCookie('language', lan_code, now);
}
-
-GoogieSpell.prototype.hideLangWindow = function() {
- this.language_window.style.visibility = "hidden";
- this.switch_lan_pic.className = "googie_lang_3d_on";
+if(_bf.nodeType==3){
+_bf=_bf.parentNode;
}
-
-GoogieSpell.prototype.deHighlightCurSel = function() {
- this.lang_cur_elm.className = "googie_list_onout";
+return _bf;
+};
+GoogieSpell.prototype.removeIndicator=function(elm){
+if(window.rcube_webmail_client){
+rcube_webmail_client.set_busy(false);
}
-
-GoogieSpell.prototype.highlightCurSel = function() {
- for(var i=0; i < this.lang_elms.length; i++) {
- if(this.lang_elms[i].googieId == GOOGIE_CUR_LANG) {
- this.lang_elms[i].className = "googie_list_selected";
- this.lang_cur_elm = this.lang_elms[i];
- }
- else {
- this.lang_elms[i].className = "googie_list_onout";
- }
- }
+};
+GoogieSpell.prototype.appendIndicator=function(elm){
+if(window.rcube_webmail_client){
+rcube_webmail_client.set_busy(true,"checking");
}
-
-GoogieSpell.prototype.showLangWindow = function(elm, ofst_top, ofst_left) {
- if(!AJS.isDefined(ofst_top))
- ofst_top = 20;
- if(!AJS.isDefined(ofst_left))
- ofst_left = 50;
-
- this.createLangWindow();
- AJS.getBody().appendChild(this.language_window);
-
- var abs_pos = GoogieSpell.absolutePosition(elm);
- AJS.showElement(this.language_window);
- this.language_window.style.top = (abs_pos.y+ofst_top) + "px";
- this.language_window.style.left = (abs_pos.x+ofst_left-this.language_window.offsetWidth) + "px";
- this.highlightCurSel();
- this.language_window.style.visibility = "visible";
+};
+GoogieSpell.prototype.createLangWindow=function(){
+this.language_window=AJS.DIV({"class":"googie_window"});
+this.language_window.style.width="130px";
+var _c2=AJS.TABLE({"class":"googie_list"});
+var _c3=AJS.TBODY();
+this.lang_elms=new Array();
+for(i=0;i<this.langlist_codes.length;i++){
+var row=AJS.TR();
+var _c5=AJS.TD();
+_c5.googieId=this.langlist_codes[i];
+this.lang_elms.push(_c5);
+var _c6=AJS.SPAN();
+_c6.innerHTML=this.lang_to_word[this.langlist_codes[i]];
+_c5.appendChild(AJS.TN(_c6.innerHTML));
+var me=this;
+_c5.onclick=function(e){
+var elm=GoogieSpell.getEventElm(e);
+me.deHighlightCurSel();
+me.setCurrentLanguage(elm.googieId);
+if(me.lang_state_observer!=null){
+me.lang_state_observer();
+}
+me.highlightCurSel();
+me.hideLangWindow();
+};
+_c5.onmouseover=function(e){
+var _cb=GoogieSpell.getEventElm(e);
+if(_cb.className!="googie_list_selected"){
+_cb.className="googie_list_onhover";
}
-
-GoogieSpell.prototype.flashNoSpellingErrorState = function() {
- this.setStateChanged("no_error_found");
- var me = this;
- AJS.hideElement(this.switch_lan_pic);
- this.gselm.innerHTML = this.lang_no_error_found;
- this.gselm.className = "googie_check_spelling_ok";
- this.gselm.style.textDecoration = "none";
- this.gselm.style.cursor = "default";
- var fu = function() {
- AJS.removeElement(me.gselm);
- me.checkSpellingState();
- };
- setTimeout(fu, 1000);
+};
+_c5.onmouseout=function(e){
+var _cd=GoogieSpell.getEventElm(e);
+if(_cd.className!="googie_list_selected"){
+_cd.className="googie_list_onout";
}
-
-GoogieSpell.prototype.resumeEditingState = function() {
- this.setStateChanged("resume_editing");
- var me = this;
- AJS.hideElement(me.switch_lan_pic);
-
- //Change link text to resume
- me.gselm.innerHTML = this.lang_rsm_edt;
- me.gselm.onclick = function(e) {
- me.resumeEditing(e, me);
- }
- me.gselm.className = "googie_check_spelling_ok";
- me.edit_layer.scrollTop = me.ta_scroll_top;
+};
+row.appendChild(_c5);
+_c3.appendChild(row);
+}
+this.highlightCurSel();
+var _ce=AJS.TR();
+var _cf=AJS.TD();
+_cf.onmouseover=GoogieSpell.item_onmouseover;
+_cf.onmouseout=GoogieSpell.item_onmouseout;
+var _d0=AJS.SPAN({"class":"googie_list_close"});
+_d0.innerHTML=this.lang_close;
+_cf.appendChild(_d0);
+var me=this;
+_cf.onclick=function(e){
+me.hideLangWindow();
+GoogieSpell.item_onmouseout(e);
+};
+_ce.appendChild(_cf);
+_c3.appendChild(_ce);
+_c2.appendChild(_c3);
+this.language_window.appendChild(_c2);
+};
+GoogieSpell.prototype.setCurrentLanguage=function(_d2){
+GOOGIE_CUR_LANG=_d2;
+var now=new Date();
+now.setTime(now.getTime()+365*24*60*60*1000);
+setCookie("language",_d2,now);
+};
+GoogieSpell.prototype.hideLangWindow=function(){
+this.language_window.style.visibility="hidden";
+this.switch_lan_pic.className="googie_lang_3d_on";
+};
+GoogieSpell.prototype.deHighlightCurSel=function(){
+this.lang_cur_elm.className="googie_list_onout";
+};
+GoogieSpell.prototype.highlightCurSel=function(){
+for(var i=0;i<this.lang_elms.length;i++){
+if(this.lang_elms[i].googieId==GOOGIE_CUR_LANG){
+this.lang_elms[i].className="googie_list_selected";
+this.lang_cur_elm=this.lang_elms[i];
+}else{
+this.lang_elms[i].className="googie_list_onout";
}
-
-GoogieSpell.prototype.createChangeLangPic = function() {
- var switch_lan = AJS.A({'class': 'googie_lang_3d_on', 'style': 'padding-left: 6px;'}, AJS.IMG({'src': this.img_dir + 'change_lang.gif', 'alt': "Change language"}));
- switch_lan.onmouseover = function() {
- if(this.className != "googie_lang_3d_click")
- this.className = "googie_lang_3d_on";
- }
-
- var me = this;
- switch_lan.onclick = function() {
- if(this.className == "googie_lang_3d_click") {
- me.hideLangWindow();
- }
- else {
- me.showLangWindow(switch_lan);
- this.className = "googie_lang_3d_click";
- }
- }
- return switch_lan;
}
-
-GoogieSpell.prototype.createSpellDiv = function() {
- var chk_spell = AJS.SPAN({'class': 'googie_check_spelling_link'});
- chk_spell.innerHTML = this.lang_chck_spell;
- var spell_img = null;
- if(this.show_spell_img)
- spell_img = AJS.IMG({'src': this.img_dir + "spellc.gif"});
- return AJS.SPAN(spell_img, " ", chk_spell);
+};
+GoogieSpell.prototype.showLangWindow=function(elm,_d6,_d7){
+if(!AJS.isDefined(_d6)){
+_d6=20;
+}
+if(!AJS.isDefined(_d7)){
+_d7=50;
+}
+this.createLangWindow();
+AJS.getBody().appendChild(this.language_window);
+var _d8=GoogieSpell.absolutePosition(elm);
+AJS.showElement(this.language_window);
+this.language_window.style.top=(_d8.y+_d6)+"px";
+this.language_window.style.left=(_d8.x+_d7-this.language_window.offsetWidth)+"px";
+this.highlightCurSel();
+this.language_window.style.visibility="visible";
+};
+GoogieSpell.prototype.flashNoSpellingErrorState=function(){
+this.setStateChanged("no_error_found");
+var me=this;
+AJS.hideElement(this.switch_lan_pic);
+this.gselm.innerHTML=this.lang_no_error_found;
+this.gselm.className="googie_check_spelling_ok";
+this.gselm.style.textDecoration="none";
+this.gselm.style.cursor="default";
+var fu=function(){
+AJS.removeElement(me.gselm);
+me.checkSpellingState();
+};
+setTimeout(fu,1000);
+};
+GoogieSpell.prototype.resumeEditingState=function(){
+this.setStateChanged("resume_editing");
+var me=this;
+AJS.hideElement(me.switch_lan_pic);
+me.gselm.innerHTML=this.lang_rsm_edt;
+me.gselm.onclick=function(e){
+me.resumeEditing(e,me);
+};
+me.gselm.className="googie_check_spelling_ok";
+me.edit_layer.scrollTop=me.ta_scroll_top;
+};
+GoogieSpell.prototype.createChangeLangPic=function(){
+var _dd=AJS.A({"class":"googie_lang_3d_on","style":"padding-left: 6px;"},AJS.IMG({"src":this.img_dir+"change_lang.gif","alt":"Change language"}));
+_dd.onmouseover=function(){
+if(this.className!="googie_lang_3d_click"){
+this.className="googie_lang_3d_on";
}
-
-GoogieSpell.prototype.checkSpellingState = function() {
- this.setStateChanged("check_spelling");
- var me = this;
- if(this.show_change_lang_pic)
- this.switch_lan_pic = this.createChangeLangPic();
- else
- this.switch_lan_pic = AJS.SPAN();
-
- var span_chck = this.createSpellDiv();
- span_chck.onclick = function() {
- me.spellCheck(span_chck);
- }
- AJS.appendChildNodes(this.spell_container, span_chck, " ", this.switch_lan_pic);
- // modified by roundcube
- this.check_link = span_chck;
+};
+var me=this;
+_dd.onclick=function(){
+if(this.className=="googie_lang_3d_click"){
+me.hideLangWindow();
+}else{
+me.showLangWindow(_dd);
+this.className="googie_lang_3d_click";
}
-
-GoogieSpell.prototype.setLanguages = function(lang_dict) {
- this.lang_to_word = lang_dict;
- this.langlist_codes = AJS.keys(lang_dict);
+};
+return _dd;
+};
+GoogieSpell.prototype.createSpellDiv=function(){
+var _df=AJS.SPAN({"class":"googie_check_spelling_link"});
+_df.innerHTML=this.lang_chck_spell;
+var _e0=null;
+if(this.show_spell_img){
+_e0=AJS.IMG({"src":this.img_dir+"spellc.gif"});
+}
+return AJS.SPAN(_e0," ",_df);
+};
+GoogieSpell.prototype.checkSpellingState=function(){
+this.setStateChanged("check_spelling");
+var me=this;
+if(this.show_change_lang_pic){
+this.switch_lan_pic=this.createChangeLangPic();
+}else{
+this.switch_lan_pic=AJS.SPAN();
+}
+var _e2=this.createSpellDiv();
+_e2.onclick=function(){
+me.spellCheck(_e2);
+};
+AJS.appendChildNodes(this.spell_container,_e2," ",this.switch_lan_pic);
+this.check_link=_e2;
+};
+GoogieSpell.prototype.setLanguages=function(_e3){
+this.lang_to_word=_e3;
+this.langlist_codes=AJS.keys(_e3);
+};
+GoogieSpell.prototype.decorateTextarea=function(id,_e5,_e6){
+var me=this;
+if(typeof (id)=="string"){
+this.text_area=AJS.getElement(id);
+}else{
+this.text_area=id;
+}
+var _e8;
+if(this.text_area!=null){
+if(AJS.isDefined(_e5)){
+if(typeof (_e5)=="string"){
+this.spell_container=AJS.getElement(_e5);
+}else{
+this.spell_container=_e5;
+}
+}else{
+var _e9=AJS.TABLE();
+var _ea=AJS.TBODY();
+var tr=AJS.TR();
+if(AJS.isDefined(_e6)){
+_e8=_e6;
+}else{
+_e8=this.text_area.offsetWidth+"px";
+}
+var _ec=AJS.TD();
+this.spell_container=_ec;
+tr.appendChild(_ec);
+_ea.appendChild(tr);
+_e9.appendChild(_ea);
+AJS.insertBefore(_e9,this.text_area);
+_e9.style.width="100%";
+_ec.style.width=_e8;
+_ec.style.textAlign="right";
+}
+this.checkSpellingState();
+}else{
+alert("Text area not found");
}
+};
-GoogieSpell.prototype.decorateTextarea = function(id, /*optional*/spell_container_id, force_width) {
- var me = this;
-
- if(typeof(id) == "string")
- this.text_area = AJS.getElement(id);
- else
- this.text_area = id;
-
- var r_width;
-
- if(this.text_area != null) {
- if(AJS.isDefined(spell_container_id)) {
- if(typeof(spell_container_id) == "string")
- this.spell_container = AJS.getElement(spell_container_id);
- else
- this.spell_container = spell_container_id;
- }
- else {
- var table = AJS.TABLE();
- var tbody = AJS.TBODY();
- var tr = AJS.TR();
- if(AJS.isDefined(force_width)) {
- r_width = force_width;
- }
- else {
- r_width = this.text_area.offsetWidth + "px";
- }
-
- var spell_container = AJS.TD();
- this.spell_container = spell_container;
-
- tr.appendChild(spell_container);
-
- tbody.appendChild(tr);
- table.appendChild(tbody);
-
- AJS.insertBefore(table, this.text_area);
-
- //Set width
- table.style.width = '100%'; // modified by roundcube (old: r_width)
- spell_container.style.width = r_width;
- spell_container.style.textAlign = "right";
- }
-
- this.checkSpellingState();
- }
- else {
- alert("Text area not found");
- }
-}
--- /dev/null
+/*
+Last Modified: 28/04/06 16:28:09
+
+ AmiJs library
+ A very small library with DOM and Ajax functions.
+ For a much larger script look on http://www.mochikit.com/
+ AUTHOR
+ 4mir Salihefendic (http://amix.dk) - amix@amix.dk
+ LICENSE
+ Copyright (c) 2006 Amir Salihefendic. All rights reserved.
+ Copyright (c) 2005 Bob Ippolito. All rights reserved.
+ http://www.opensource.org/licenses/mit-license.php
+ VERSION
+ 2.1
+ SITE
+ http://amix.dk/amijs
+**/
+
+var AJS = {
+////
+// Accessor functions
+////
+ /**
+ * @returns The element with the id
+ */
+ getElement: function(id) {
+ if(typeof(id) == "string")
+ return document.getElementById(id);
+ else
+ return id;
+ },
+
+ /**
+ * @returns The elements with the ids
+ */
+ getElements: function(/*id1, id2, id3*/) {
+ var elements = new Array();
+ for (var i = 0; i < arguments.length; i++) {
+ var element = this.getElement(arguments[i]);
+ elements.push(element);
+ }
+ return elements;
+ },
+
+ /**
+ * @returns The GET query argument
+ */
+ getQueryArgument: function(var_name) {
+ var query = window.location.search.substring(1);
+ var vars = query.split("&");
+ for (var i=0;i<vars.length;i++) {
+ var pair = vars[i].split("=");
+ if (pair[0] == var_name) {
+ return pair[1];
+ }
+ }
+ return null;
+ },
+
+ /**
+ * @returns If the browser is Internet Explorer
+ */
+ isIe: function() {
+ return (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && navigator.userAgent.toLowerCase().indexOf("opera") == -1);
+ },
+
+ /**
+ * @returns The document body
+ */
+ getBody: function() {
+ return this.getElementsByTagAndClassName('body')[0]
+ },
+
+ /**
+ * @returns All the elements that have a specific tag name or class name
+ */
+ getElementsByTagAndClassName: function(tag_name, class_name, /*optional*/ parent) {
+ var class_elements = new Array();
+ if(!this.isDefined(parent))
+ parent = document;
+ if(!this.isDefined(tag_name))
+ tag_name = '*';
+
+ var els = parent.getElementsByTagName(tag_name);
+ var els_len = els.length;
+ var pattern = new RegExp("(^|\\s)" + class_name + "(\\s|$)");
+
+ for (i = 0, j = 0; i < els_len; i++) {
+ if ( pattern.test(els[i].className) || class_name == null ) {
+ class_elements[j] = els[i];
+ j++;
+ }
+ }
+ return class_elements;
+ },
+
+
+////
+// DOM manipulation
+////
+ /**
+ * Appends some nodes to a node
+ */
+ appendChildNodes: function(node/*, nodes...*/) {
+ if(arguments.length >= 2) {
+ for(var i=1; i < arguments.length; i++) {
+ var n = arguments[i];
+ if(typeof(n) == "string")
+ n = document.createTextNode(n);
+ if(this.isDefined(n))
+ node.appendChild(n);
+ }
+ }
+ return node;
+ },
+
+ /**
+ * Replaces a nodes children with another node(s)
+ */
+ replaceChildNodes: function(node/*, nodes...*/) {
+ var child;
+ while ((child = node.firstChild)) {
+ node.removeChild(child);
+ }
+ if (arguments.length < 2) {
+ return node;
+ } else {
+ return this.appendChildNodes.apply(this, arguments);
+ }
+ },
+
+ /**
+ * Insert a node after another node
+ */
+ insertAfter: function(node, referenceNode) {
+ referenceNode.parentNode.insertBefore(node, referenceNode.nextSibling);
+ },
+
+ /**
+ * Insert a node before another node
+ */
+ insertBefore: function(node, referenceNode) {
+ referenceNode.parentNode.insertBefore(node, referenceNode);
+ },
+
+ /**
+ * Shows the element
+ */
+ showElement: function(elm) {
+ elm.style.display = '';
+ },
+
+ /**
+ * Hides the element
+ */
+ hideElement: function(elm) {
+ elm.style.display = 'none';
+ },
+
+ isElementHidden: function(elm) {
+ return elm.style.visibility == "hidden";
+ },
+
+ /**
+ * Swaps one element with another. To delete use swapDOM(elm, null)
+ */
+ swapDOM: function(dest, src) {
+ dest = this.getElement(dest);
+ var parent = dest.parentNode;
+ if (src) {
+ src = this.getElement(src);
+ parent.replaceChild(src, dest);
+ } else {
+ parent.removeChild(dest);
+ }
+ return src;
+ },
+
+ /**
+ * Removes an element from the world
+ */
+ removeElement: function(elm) {
+ this.swapDOM(elm, null);
+ },
+
+ /**
+ * @returns Is an object a dictionary?
+ */
+ isDict: function(o) {
+ var str_repr = String(o);
+ return str_repr.indexOf(" Object") != -1;
+ },
+
+ /**
+ * Creates a DOM element
+ * @param {String} name The elements DOM name
+ * @param {Dict} attrs Attributes sent to the function
+ */
+ createDOM: function(name, attrs) {
+ var i=0;
+ elm = document.createElement(name);
+
+ if(this.isDict(attrs[i])) {
+ for(k in attrs[0]) {
+ if(k == "style")
+ elm.style.cssText = attrs[0][k];
+ else if(k == "class")
+ elm.className = attrs[0][k];
+ else
+ elm.setAttribute(k, attrs[0][k]);
+ }
+ i++;
+ }
+
+ if(attrs[0] == null)
+ i = 1;
+
+ for(i; i < attrs.length; i++) {
+ var n = attrs[i];
+ if(this.isDefined(n)) {
+ if(typeof(n) == "string")
+ n = document.createTextNode(n);
+ elm.appendChild(n);
+ }
+ }
+ return elm;
+ },
+
+ UL: function() { return this.createDOM.apply(this, ["ul", arguments]); },
+ LI: function() { return this.createDOM.apply(this, ["li", arguments]); },
+ TD: function() { return this.createDOM.apply(this, ["td", arguments]); },
+ TR: function() { return this.createDOM.apply(this, ["tr", arguments]); },
+ TH: function() { return this.createDOM.apply(this, ["th", arguments]); },
+ TBODY: function() { return this.createDOM.apply(this, ["tbody", arguments]); },
+ TABLE: function() { return this.createDOM.apply(this, ["table", arguments]); },
+ INPUT: function() { return this.createDOM.apply(this, ["input", arguments]); },
+ SPAN: function() { return this.createDOM.apply(this, ["span", arguments]); },
+ B: function() { return this.createDOM.apply(this, ["b", arguments]); },
+ A: function() { return this.createDOM.apply(this, ["a", arguments]); },
+ DIV: function() { return this.createDOM.apply(this, ["div", arguments]); },
+ IMG: function() { return this.createDOM.apply(this, ["img", arguments]); },
+ BUTTON: function() { return this.createDOM.apply(this, ["button", arguments]); },
+ H1: function() { return this.createDOM.apply(this, ["h1", arguments]); },
+ H2: function() { return this.createDOM.apply(this, ["h2", arguments]); },
+ H3: function() { return this.createDOM.apply(this, ["h3", arguments]); },
+ BR: function() { return this.createDOM.apply(this, ["br", arguments]); },
+ TEXTAREA: function() { return this.createDOM.apply(this, ["textarea", arguments]); },
+ FORM: function() { return this.createDOM.apply(this, ["form", arguments]); },
+ P: function() { return this.createDOM.apply(this, ["p", arguments]); },
+ SELECT: function() { return this.createDOM.apply(this, ["select", arguments]); },
+ OPTION: function() { return this.createDOM.apply(this, ["option", arguments]); },
+ TN: function(text) { return document.createTextNode(text); },
+ IFRAME: function() { return this.createDOM.apply(this, ["iframe", arguments]); },
+ SCRIPT: function() { return this.createDOM.apply(this, ["script", arguments]); },
+
+////
+// Ajax functions
+////
+ /**
+ * @returns A new XMLHttpRequest object
+ */
+ getXMLHttpRequest: function() {
+ var try_these = [
+ function () { return new XMLHttpRequest(); },
+ function () { return new ActiveXObject('Msxml2.XMLHTTP'); },
+ function () { return new ActiveXObject('Microsoft.XMLHTTP'); },
+ function () { return new ActiveXObject('Msxml2.XMLHTTP.4.0'); },
+ function () { throw "Browser does not support XMLHttpRequest"; }
+ ];
+ for (var i = 0; i < try_these.length; i++) {
+ var func = try_these[i];
+ try {
+ return func();
+ } catch (e) {
+ }
+ }
+ },
+
+ /**
+ * Use this function to do a simple HTTP Request
+ */
+ doSimpleXMLHttpRequest: function(url) {
+ var req = this.getXMLHttpRequest();
+ req.open("GET", url, true);
+ return this.sendXMLHttpRequest(req);
+ },
+
+ getRequest: function(url, data) {
+ var req = this.getXMLHttpRequest();
+ req.open("POST", url, true);
+ req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+ return this.sendXMLHttpRequest(req);
+ },
+
+ /**
+ * Send a XMLHttpRequest
+ */
+ sendXMLHttpRequest: function(req, data) {
+ var d = new AJSDeferred(req);
+
+ var onreadystatechange = function () {
+ if (req.readyState == 4) {
+ try {
+ var status = req.status;
+ }
+ catch(e) {};
+ if(status == 200 || status == 304 || req.responseText == null) {
+ d.callback(req, data);
+ }
+ else {
+ d.errback();
+ }
+ }
+ }
+ req.onreadystatechange = onreadystatechange;
+ return d;
+ },
+
+ /**
+ * Represent an object as a string
+ */
+ reprString: function(o) {
+ return ('"' + o.replace(/(["\\])/g, '\\$1') + '"'
+ ).replace(/[\f]/g, "\\f"
+ ).replace(/[\b]/g, "\\b"
+ ).replace(/[\n]/g, "\\n"
+ ).replace(/[\t]/g, "\\t"
+ ).replace(/[\r]/g, "\\r");
+ },
+
+ /**
+ * Serialize an object to JSON notation
+ */
+ serializeJSON: function(o) {
+ var objtype = typeof(o);
+ if (objtype == "undefined") {
+ return "undefined";
+ } else if (objtype == "number" || objtype == "boolean") {
+ return o + "";
+ } else if (o === null) {
+ return "null";
+ }
+ if (objtype == "string") {
+ return this.reprString(o);
+ }
+ var me = arguments.callee;
+ var newObj;
+ if (typeof(o.__json__) == "function") {
+ newObj = o.__json__();
+ if (o !== newObj) {
+ return me(newObj);
+ }
+ }
+ if (typeof(o.json) == "function") {
+ newObj = o.json();
+ if (o !== newObj) {
+ return me(newObj);
+ }
+ }
+ if (objtype != "function" && typeof(o.length) == "number") {
+ var res = [];
+ for (var i = 0; i < o.length; i++) {
+ var val = me(o[i]);
+ if (typeof(val) != "string") {
+ val = "undefined";
+ }
+ res.push(val);
+ }
+ return "[" + res.join(",") + "]";
+ }
+ res = [];
+ for (var k in o) {
+ var useKey;
+ if (typeof(k) == "number") {
+ useKey = '"' + k + '"';
+ } else if (typeof(k) == "string") {
+ useKey = this.reprString(k);
+ } else {
+ // skip non-string or number keys
+ continue;
+ }
+ val = me(o[k]);
+ if (typeof(val) != "string") {
+ // skip non-serializable values
+ continue;
+ }
+ res.push(useKey + ":" + val);
+ }
+ return "{" + res.join(",") + "}";
+ },
+
+ /**
+ * Send and recive JSON using GET
+ */
+ loadJSONDoc: function(url) {
+ var d = this.getRequest(url);
+ var eval_req = function(req) {
+ var text = req.responseText;
+ return eval('(' + text + ')');
+ };
+ d.addCallback(eval_req);
+ return d;
+ },
+
+
+////
+// Misc.
+////
+ /**
+ * Alert the objects key attrs
+ */
+ keys: function(obj) {
+ var rval = [];
+ for (var prop in obj) {
+ rval.push(prop);
+ }
+ return rval;
+ },
+
+ urlencode: function(str) {
+ return encodeURIComponent(str.toString());
+ },
+
+ /**
+ * @returns True if the object is defined, otherwise false
+ */
+ isDefined: function(o) {
+ return (o != "undefined" && o != null)
+ },
+
+ /**
+ * @returns True if an object is a array, false otherwise
+ */
+ isArray: function(obj) {
+ try { return (typeof(obj.length) == "undefined") ? false : true; }
+ catch(e)
+ { return false; }
+ },
+
+ isObject: function(obj) {
+ return (obj && typeof obj == 'object');
+ },
+
+ /**
+ * Export DOM elements to the global namespace
+ */
+ exportDOMElements: function() {
+ UL = this.UL;
+ LI = this.LI;
+ TD = this.TD;
+ TR = this.TR;
+ TH = this.TH;
+ TBODY = this.TBODY;
+ TABLE = this.TABLE;
+ INPUT = this.INPUT;
+ SPAN = this.SPAN;
+ B = this.B;
+ A = this.A;
+ DIV = this.DIV;
+ IMG = this.IMG;
+ BUTTON = this.BUTTON;
+ H1 = this.H1;
+ H2 = this.H2;
+ H3 = this.H3;
+ BR = this.BR;
+ TEXTAREA = this.TEXTAREA;
+ FORM = this.FORM;
+ P = this.P;
+ SELECT = this.SELECT;
+ OPTION = this.OPTION;
+ TN = this.TN;
+ IFRAME = this.IFRAME;
+ SCRIPT = this.SCRIPT;
+ },
+
+ /**
+ * Export AmiJS functions to the global namespace
+ */
+ exportToGlobalScope: function() {
+ getElement = this.getElement;
+ getQueryArgument = this.getQueryArgument;
+ isIe = this.isIe;
+ $ = this.getElement;
+ getElements = this.getElements;
+ getBody = this.getBody;
+ getElementsByTagAndClassName = this.getElementsByTagAndClassName;
+ appendChildNodes = this.appendChildNodes;
+ ACN = appendChildNodes;
+ replaceChildNodes = this.replaceChildNodes;
+ RCN = replaceChildNodes;
+ insertAfter = this.insertAfter;
+ insertBefore = this.insertBefore;
+ showElement = this.showElement;
+ hideElement = this.hideElement;
+ isElementHidden = this.isElementHidden;
+ swapDOM = this.swapDOM;
+ removeElement = this.removeElement;
+ isDict = this.isDict;
+ createDOM = this.createDOM;
+ this.exportDOMElements();
+ getXMLHttpRequest = this.getXMLHttpRequest;
+ doSimpleXMLHttpRequest = this.doSimpleXMLHttpRequest;
+ getRequest = this.getRequest;
+ sendXMLHttpRequest = this.sendXMLHttpRequest;
+ reprString = this.reprString;
+ serializeJSON = this.serializeJSON;
+ loadJSONDoc = this.loadJSONDoc;
+ keys = this.keys;
+ isDefined = this.isDefined;
+ isArray = this.isArray;
+ }
+}
+
+
+
+AJSDeferred = function(req) {
+ this.callbacks = [];
+ this.req = req;
+
+ this.callback = function (res) {
+ while (this.callbacks.length > 0) {
+ var fn = this.callbacks.pop();
+ res = fn(res);
+ }
+ };
+
+ this.errback = function(e){
+ alert("Error encountered:\n" + e);
+ };
+
+ this.addErrback = function(fn) {
+ this.errback = fn;
+ };
+
+ this.addCallback = function(fn) {
+ this.callbacks.unshift(fn);
+ };
+
+ this.addCallbacks = function(fn1, fn2) {
+ this.addCallback(fn1);
+ this.addErrback(fn2);
+ };
+
+ this.sendReq = function(data) {
+ if(AJS.isObject(data)) {
+ var post_data = [];
+ for(k in data) {
+ post_data.push(k + "=" + AJS.urlencode(data[k]));
+ }
+ post_data = post_data.join("&");
+ this.req.send(post_data);
+ }
+ else if(AJS.isDefined(data))
+ this.req.send(data);
+ else {
+ this.req.send("");
+ }
+ };
+};
+AJSDeferred.prototype = new AJSDeferred();
+
+
+
+
+
+
+/****
+Last Modified: 28/04/06 15:26:06
+
+ GoogieSpell
+ Google spell checker for your own web-apps :)
+ Copyright Amir Salihefendic 2006
+ LICENSE
+ GPL (see gpl.txt for more information)
+ This basically means that you can't use this script with/in proprietary software!
+ There is another license that permits you to use this script with proprietary software. Check out:... for more info.
+ AUTHOR
+ 4mir Salihefendic (http://amix.dk) - amix@amix.dk
+ VERSION
+ 3.22
+****/
+var GOOGIE_CUR_LANG = "en";
+
+function GoogieSpell(img_dir, server_url) {
+ var cookie_value;
+ var lang;
+ cookie_value = getCookie('language');
+
+ if(cookie_value != null)
+ GOOGIE_CUR_LANG = cookie_value;
+
+ this.img_dir = img_dir;
+ this.server_url = server_url;
+
+ this.lang_to_word = {"da": "Dansk", "de": "Deutsch", "en": "English",
+ "es": "Español", "fr": "Français", "it": "Italiano",
+ "nl": "Nederlands", "pl": "Polski", "pt": "Português",
+ "fi": "Suomi", "sv": "Svenska"};
+ this.langlist_codes = AJS.keys(this.lang_to_word);
+
+ this.show_change_lang_pic = true;
+
+ this.lang_state_observer = null;
+
+ this.spelling_state_observer = null;
+
+ this.request = null;
+ this.error_window = null;
+ this.language_window = null;
+ this.edit_layer = null;
+ this.orginal_text = null;
+ this.results = null;
+ this.text_area = null;
+ this.gselm = null;
+ this.ta_scroll_top = 0;
+ this.el_scroll_top = 0;
+
+ this.lang_chck_spell = "Check spelling";
+ this.lang_rsm_edt = "Resume editing";
+ this.lang_close = "Close";
+ this.lang_no_error_found = "No spelling errors found";
+ this.lang_revert = "Revert to";
+ this.show_spell_img = false; // modified by roundcube
+}
+
+GoogieSpell.prototype.setStateChanged = function(current_state) {
+ if(this.spelling_state_observer != null)
+ this.spelling_state_observer(current_state);
+}
+
+GoogieSpell.item_onmouseover = function(e) {
+ var elm = GoogieSpell.getEventElm(e);
+ if(elm.className != "googie_list_close" && elm.className != "googie_list_revert")
+ elm.className = "googie_list_onhover";
+ else
+ elm.parentNode.className = "googie_list_onhover";
+}
+
+GoogieSpell.item_onmouseout = function(e) {
+ var elm = GoogieSpell.getEventElm(e);
+ if(elm.className != "googie_list_close" && elm.className != "googie_list_revert")
+ elm.className = "googie_list_onout";
+ else
+ elm.parentNode.className = "googie_list_onout";
+}
+
+GoogieSpell.prototype.getGoogleUrl = function() {
+ return this.server_url + GOOGIE_CUR_LANG;
+}
+
+GoogieSpell.prototype.spellCheck = function(elm, name) {
+ this.ta_scroll_top = this.text_area.scrollTop;
+
+ this.appendIndicator(elm);
+
+ try {
+ this.hideLangWindow();
+ }
+ catch(e) {}
+
+ this.gselm = elm;
+
+ this.createEditLayer(this.text_area.offsetWidth, this.text_area.offsetHeight);
+
+ this.createErrorWindow();
+ AJS.getBody().appendChild(this.error_window);
+
+ try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); }
+ catch (e) { }
+
+ this.gselm.onclick = null;
+
+ this.orginal_text = this.text_area.value;
+ var me = this;
+
+ //Create request
+ var d = AJS.getRequest(this.getGoogleUrl());
+ var reqdone = function(req) {
+ var r_text = req.responseText;
+ if(r_text.match(/<c.*>/) != null) {
+ var results = GoogieSpell.parseResult(r_text);
+ //Before parsing be sure that errors were found
+ me.results = results;
+ me.showErrorsInIframe(results);
+ me.resumeEditingState();
+ }
+ else {
+ me.flashNoSpellingErrorState();
+ }
+ me.removeIndicator();
+ };
+
+ var reqfailed = function(req) {
+ alert("An error was encountered on the server. Please try again later.");
+ AJS.removeElement(me.gselm);
+ me.checkSpellingState();
+ me.removeIndicator();
+ };
+
+ d.addCallback(reqdone);
+ d.addErrback(reqfailed);
+
+ var req_text = GoogieSpell.escapeSepcial(this.orginal_text);
+ d.sendReq(GoogieSpell.createXMLReq(req_text));
+}
+
+GoogieSpell.escapeSepcial = function(val) {
+ return val.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
+}
+
+GoogieSpell.createXMLReq = function (text) {
+ return '<?xml version="1.0" encoding="utf-8" ?><spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><text>' + text + '</text></spellrequest>';
+}
+
+//Retunrs an array
+//result[item] -> ['attrs']
+// ['suggestions']
+GoogieSpell.parseResult = function(r_text) {
+ var re_split_attr_c = /\w="\d+"/g;
+ var re_split_text = /\t/g;
+
+ var matched_c = r_text.match(/<c[^>]*>[^<]*<\/c>/g);
+ var results = new Array();
+
+ for(var i=0; i < matched_c.length; i++) {
+ var item = new Array();
+
+ //Get attributes
+ item['attrs'] = new Array();
+ var split_c = matched_c[i].match(re_split_attr_c);
+ for(var j=0; j < split_c.length; j++) {
+ var c_attr = split_c[j].split(/=/);
+ item['attrs'][c_attr[0]] = parseInt(c_attr[1].replace('"', ''));
+ }
+
+ //Get suggestions
+ item['suggestions'] = new Array();
+ var only_text = matched_c[i].replace(/<[^>]*>/g, "");
+ var split_t = only_text.split(re_split_text);
+ for(var k=0; k < split_t.length; k++) {
+ if(split_t[k] != "")
+ item['suggestions'].push(split_t[k]);
+ }
+ results.push(item);
+ }
+ return results;
+}
+
+/****
+ Error window (the drop-down window)
+****/
+GoogieSpell.prototype.createErrorWindow = function() {
+ this.error_window = AJS.DIV();
+ this.error_window.className = "googie_window";
+}
+
+GoogieSpell.prototype.hideErrorWindow = function() {
+ this.error_window.style.visibility = "hidden";
+}
+
+GoogieSpell.prototype.updateOrginalText = function(offset, old_value, new_value, id) {
+ var part_1 = this.orginal_text.substring(0, offset);
+ var part_2 = this.orginal_text.substring(offset+old_value.length);
+ this.orginal_text = part_1 + new_value + part_2;
+ var add_2_offset = new_value.length - old_value.length;
+ for(var j=0; j < this.results.length; j++) {
+ //Don't edit the offset of the current item
+ if(j != id && j > id){
+ this.results[j]['attrs']['o'] += add_2_offset;
+ }
+ }
+}
+
+GoogieSpell.prototype.saveOldValue = function (id, old_value) {
+ this.results[id]['is_changed'] = true;
+ this.results[id]['old_value'] = old_value;
+}
+
+GoogieSpell.prototype.showErrorWindow = function(elm, id) {
+ var me = this;
+
+ var abs_pos = GoogieSpell.absolutePosition(elm);
+ abs_pos.y -= this.edit_layer.scrollTop;
+ this.error_window.style.visibility = "visible";
+ this.error_window.style.top = (abs_pos.y+20) + "px";
+ this.error_window.style.left = (abs_pos.x) + "px";
+ this.error_window.innerHTML = "";
+
+ //Build up the result list
+ var table = AJS.TABLE({'class': 'googie_list'});
+ var list = AJS.TBODY();
+
+ var suggestions = this.results[id]['suggestions'];
+ var offset = this.results[id]['attrs']['o'];
+ var len = this.results[id]['attrs']['l'];
+
+ if(suggestions.length == 0) {
+ var row = AJS.TR();
+ var item = AJS.TD();
+ var dummy = AJS.SPAN();
+ item.appendChild(AJS.TN("No suggestions :("));
+ row.appendChild(item);
+ list.appendChild(row);
+ }
+
+ for(i=0; i < suggestions.length; i++) {
+ var row = AJS.TR();
+ var item = AJS.TD();
+ var dummy = AJS.SPAN();
+ dummy.innerHTML = suggestions[i];
+ item.appendChild(AJS.TN(dummy.innerHTML));
+
+ item.onclick = function(e) {
+ var l_elm = GoogieSpell.getEventElm(e);
+ var old_value = elm.innerHTML;
+ var new_value = l_elm.innerHTML;
+
+ elm.style.color = "green";
+ elm.innerHTML = l_elm.innerHTML;
+ me.hideErrorWindow();
+
+ me.updateOrginalText(offset, old_value, new_value, id);
+
+ //Update to the new length
+ me.results[id]['attrs']['l'] = new_value.length;
+ me.saveOldValue(id, old_value);
+ };
+ item.onmouseover = GoogieSpell.item_onmouseover;
+ item.onmouseout = GoogieSpell.item_onmouseout;
+ row.appendChild(item);
+ list.appendChild(row);
+ }
+
+ //The element is changed, append the revert
+ if(this.results[id]['is_changed']) {
+ var old_value = this.results[id]['old_value'];
+ var offset = this.results[id]['attrs']['o'];
+ var revert_row = AJS.TR();
+ var revert = AJS.TD();
+
+ revert.onmouseover = GoogieSpell.item_onmouseover;
+ revert.onmouseout = GoogieSpell.item_onmouseout;
+ var rev_span = AJS.SPAN({'class': 'googie_list_revert'});
+ rev_span.innerHTML = this.lang_revert + " " + old_value;
+ revert.appendChild(rev_span);
+
+ revert.onclick = function(e) {
+ me.updateOrginalText(offset, elm.innerHTML, old_value, id);
+ elm.style.color = "#b91414";
+ elm.innerHTML = old_value;
+ me.hideErrorWindow();
+ };
+
+ revert_row.appendChild(revert);
+ list.appendChild(revert_row);
+ }
+
+ //Append the edit box
+ var edit_row = AJS.TR();
+ var edit = AJS.TD();
+
+ var edit_input = AJS.INPUT({'style': 'width: 120px; margin:0; padding:0'});
+
+ var onsub = function () {
+ if(edit_input.value != "") {
+ me.saveOldValue(id, elm.innerHTML);
+ me.updateOrginalText(offset, elm.innerHTML, edit_input.value, id);
+ elm.style.color = "green"
+ elm.innerHTML = edit_input.value;
+
+ me.hideErrorWindow();
+ return false;
+ }
+ };
+
+ var ok_pic = AJS.IMG({'src': this.img_dir + "ok.gif", 'style': 'width: 32px; height: 16px; margin-left: 2px; margin-right: 2px;'});
+ var edit_form = AJS.FORM({'style': 'margin: 0; padding: 0'}, edit_input, ok_pic);
+ ok_pic.onclick = onsub;
+ edit_form.onsubmit = onsub;
+
+ edit.appendChild(edit_form);
+ edit_row.appendChild(edit);
+ list.appendChild(edit_row);
+
+ //Close button
+ var close_row = AJS.TR();
+ var close = AJS.TD();
+
+ close.onmouseover = GoogieSpell.item_onmouseover;
+ close.onmouseout = GoogieSpell.item_onmouseout;
+
+ var spn_close = AJS.SPAN({'class': 'googie_list_close'});
+ spn_close.innerHTML = this.lang_close;
+ close.appendChild(spn_close);
+ close.onclick = function() { me.hideErrorWindow()};
+ close_row.appendChild(close);
+ list.appendChild(close_row);
+
+ table.appendChild(list);
+ this.error_window.appendChild(table);
+}
+
+
+/****
+ Edit layer (the layer where the suggestions are stored)
+****/
+GoogieSpell.prototype.createEditLayer = function(width, height) {
+ this.edit_layer = AJS.DIV({'class': 'googie_edit_layer'});
+
+ //Set the style so it looks like edit areas
+ this.edit_layer.className = this.text_area.className;
+ this.edit_layer.style.border = "1px solid #999";
+ this.edit_layer.style.overflow = "auto";
+ this.edit_layer.style.backgroundColor = "#F1EDFE";
+ this.edit_layer.style.padding = "3px";
+
+ this.edit_layer.style.width = (width-8) + "px";
+ this.edit_layer.style.height = height + "px";
+}
+
+GoogieSpell.prototype.resumeEditing = function(e, me) {
+ this.setStateChanged("check_spelling");
+ me.switch_lan_pic.style.display = "inline";
+
+ this.el_scroll_top = me.edit_layer.scrollTop;
+
+ var elm = GoogieSpell.getEventElm(e);
+ AJS.replaceChildNodes(elm, this.createSpellDiv());
+
+ elm.onclick = function(e) {
+ me.spellCheck(elm, me.text_area.id);
+ };
+ me.hideErrorWindow();
+
+ //Remove the EDIT_LAYER
+ me.edit_layer.parentNode.removeChild(me.edit_layer);
+
+ me.text_area.value = me.orginal_text;
+ AJS.showElement(me.text_area);
+ me.gselm.className = "googie_no_style";
+
+ me.text_area.scrollTop = this.el_scroll_top;
+
+ elm.onmouseout = null;
+}
+
+GoogieSpell.prototype.createErrorLink = function(text, id) {
+ var elm = AJS.SPAN({'class': 'googie_link'});
+ var me = this;
+ elm.onclick = function () {
+ me.showErrorWindow(elm, id);
+ };
+ elm.innerHTML = text;
+ return elm;
+}
+
+GoogieSpell.createPart = function(txt_part) {
+ if(txt_part == " ")
+ return AJS.TN(" ");
+ var result = AJS.SPAN();
+
+ var is_first = true;
+ var is_safari = (navigator.userAgent.toLowerCase().indexOf("safari") != -1);
+
+ var part = AJS.SPAN();
+ txt_part = GoogieSpell.escapeSepcial(txt_part);
+ txt_part = txt_part.replace(/\n/g, "<br>");
+ txt_part = txt_part.replace(/ /g, " ");
+ txt_part = txt_part.replace(/^ /g, " ");
+ txt_part = txt_part.replace(/ $/g, " ");
+
+ part.innerHTML = txt_part;
+
+ return part;
+}
+
+GoogieSpell.prototype.showErrorsInIframe = function(results) {
+ var output = AJS.DIV();
+ output.style.textAlign = "left";
+ var pointer = 0;
+ for(var i=0; i < results.length; i++) {
+ var offset = results[i]['attrs']['o'];
+ var len = results[i]['attrs']['l'];
+
+ var part_1_text = this.orginal_text.substring(pointer, offset);
+ var part_1 = GoogieSpell.createPart(part_1_text);
+ output.appendChild(part_1);
+ pointer += offset - pointer;
+
+ //If the last child was an error, then insert some space
+ output.appendChild(this.createErrorLink(this.orginal_text.substr(offset, len), i));
+ pointer += len;
+ }
+ //Insert the rest of the orginal text
+ var part_2_text = this.orginal_text.substr(pointer, this.orginal_text.length);
+
+ var part_2 = GoogieSpell.createPart(part_2_text);
+ output.appendChild(part_2);
+
+ this.edit_layer.appendChild(output);
+
+ //Hide text area
+ AJS.hideElement(this.text_area);
+ this.text_area.parentNode.insertBefore(this.edit_layer, this.text_area.nextSibling);
+ this.edit_layer.scrollTop = this.ta_scroll_top;
+}
+
+GoogieSpell.Position = function(x, y) {
+ this.x = x;
+ this.y = y;
+}
+
+//Get the absolute position of menu_slide
+GoogieSpell.absolutePosition = function(element) {
+ //Create a new object that has elements y and x pos...
+ var posObj = new GoogieSpell.Position(element.offsetLeft, element.offsetTop);
+
+ //Check if the element has an offsetParent - if it has .. loop until it has not
+ if(element.offsetParent) {
+ var temp_pos = GoogieSpell.absolutePosition(element.offsetParent);
+ posObj.x += temp_pos.x;
+ posObj.y += temp_pos.y;
+ }
+ return posObj;
+}
+
+GoogieSpell.getEventElm = function(e) {
+ var targ;
+ if (!e) var e = window.event;
+ if (e.target) targ = e.target;
+ else if (e.srcElement) targ = e.srcElement;
+ if (targ.nodeType == 3) // defeat Safari bug
+ targ = targ.parentNode;
+ return targ;
+}
+
+GoogieSpell.prototype.removeIndicator = function(elm) {
+ // modified by roundcube
+ if (window.rcube_webmail_client)
+ rcube_webmail_client.set_busy(false);
+ //AJS.removeElement(this.indicator);
+}
+
+GoogieSpell.prototype.appendIndicator = function(elm) {
+ // modified by roundcube
+ if (window.rcube_webmail_client)
+ rcube_webmail_client.set_busy(true, 'checking');
+/*
+ var img = AJS.IMG({'src': this.img_dir + 'indicator.gif', 'style': 'margin-right: 5px;'});
+ img.style.width = "16px";
+ img.style.height = "16px";
+ this.indicator = img;
+ img.style.textDecoration = "none";
+ AJS.insertBefore(img, elm);
+ */
+}
+
+/****
+ Choose language
+****/
+GoogieSpell.prototype.createLangWindow = function() {
+ this.language_window = AJS.DIV({'class': 'googie_window'});
+ this.language_window.style.width = "130px";
+
+ //Build up the result list
+ var table = AJS.TABLE({'class': 'googie_list'});
+ var list = AJS.TBODY();
+
+ this.lang_elms = new Array();
+
+ for(i=0; i < this.langlist_codes.length; i++) {
+ var row = AJS.TR();
+ var item = AJS.TD();
+ item.googieId = this.langlist_codes[i];
+ this.lang_elms.push(item);
+ var lang_span = AJS.SPAN();
+ lang_span.innerHTML = this.lang_to_word[this.langlist_codes[i]];
+ item.appendChild(AJS.TN(lang_span.innerHTML));
+
+ var me = this;
+
+ item.onclick = function(e) {
+ var elm = GoogieSpell.getEventElm(e);
+ me.deHighlightCurSel();
+
+ me.setCurrentLanguage(elm.googieId);
+
+ if(me.lang_state_observer != null) {
+ me.lang_state_observer();
+ }
+
+ me.highlightCurSel();
+ me.hideLangWindow();
+ };
+
+ item.onmouseover = function(e) {
+ var i_it = GoogieSpell.getEventElm(e);
+ if(i_it.className != "googie_list_selected")
+ i_it.className = "googie_list_onhover";
+ };
+ item.onmouseout = function(e) {
+ var i_it = GoogieSpell.getEventElm(e);
+ if(i_it.className != "googie_list_selected")
+ i_it.className = "googie_list_onout";
+ };
+
+ row.appendChild(item);
+ list.appendChild(row);
+ }
+
+ this.highlightCurSel();
+
+ //Close button
+ var close_row = AJS.TR();
+ var close = AJS.TD();
+ close.onmouseover = GoogieSpell.item_onmouseover;
+ close.onmouseout = GoogieSpell.item_onmouseout;
+ var spn_close = AJS.SPAN({'class': 'googie_list_close'});
+ spn_close.innerHTML = this.lang_close;
+ close.appendChild(spn_close);
+ var me = this;
+ close.onclick = function(e) {
+ me.hideLangWindow(); GoogieSpell.item_onmouseout(e);
+ };
+ close_row.appendChild(close);
+ list.appendChild(close_row);
+
+ table.appendChild(list);
+ this.language_window.appendChild(table);
+}
+
+GoogieSpell.prototype.setCurrentLanguage = function(lan_code) {
+ GOOGIE_CUR_LANG = lan_code;
+
+ //Set cookie
+ var now = new Date();
+ now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
+ setCookie('language', lan_code, now);
+}
+
+GoogieSpell.prototype.hideLangWindow = function() {
+ this.language_window.style.visibility = "hidden";
+ this.switch_lan_pic.className = "googie_lang_3d_on";
+}
+
+GoogieSpell.prototype.deHighlightCurSel = function() {
+ this.lang_cur_elm.className = "googie_list_onout";
+}
+
+GoogieSpell.prototype.highlightCurSel = function() {
+ for(var i=0; i < this.lang_elms.length; i++) {
+ if(this.lang_elms[i].googieId == GOOGIE_CUR_LANG) {
+ this.lang_elms[i].className = "googie_list_selected";
+ this.lang_cur_elm = this.lang_elms[i];
+ }
+ else {
+ this.lang_elms[i].className = "googie_list_onout";
+ }
+ }
+}
+
+GoogieSpell.prototype.showLangWindow = function(elm, ofst_top, ofst_left) {
+ if(!AJS.isDefined(ofst_top))
+ ofst_top = 20;
+ if(!AJS.isDefined(ofst_left))
+ ofst_left = 50;
+
+ this.createLangWindow();
+ AJS.getBody().appendChild(this.language_window);
+
+ var abs_pos = GoogieSpell.absolutePosition(elm);
+ AJS.showElement(this.language_window);
+ this.language_window.style.top = (abs_pos.y+ofst_top) + "px";
+ this.language_window.style.left = (abs_pos.x+ofst_left-this.language_window.offsetWidth) + "px";
+ this.highlightCurSel();
+ this.language_window.style.visibility = "visible";
+}
+
+GoogieSpell.prototype.flashNoSpellingErrorState = function() {
+ this.setStateChanged("no_error_found");
+ var me = this;
+ AJS.hideElement(this.switch_lan_pic);
+ this.gselm.innerHTML = this.lang_no_error_found;
+ this.gselm.className = "googie_check_spelling_ok";
+ this.gselm.style.textDecoration = "none";
+ this.gselm.style.cursor = "default";
+ var fu = function() {
+ AJS.removeElement(me.gselm);
+ me.checkSpellingState();
+ };
+ setTimeout(fu, 1000);
+}
+
+GoogieSpell.prototype.resumeEditingState = function() {
+ this.setStateChanged("resume_editing");
+ var me = this;
+ AJS.hideElement(me.switch_lan_pic);
+
+ //Change link text to resume
+ me.gselm.innerHTML = this.lang_rsm_edt;
+ me.gselm.onclick = function(e) {
+ me.resumeEditing(e, me);
+ }
+ me.gselm.className = "googie_check_spelling_ok";
+ me.edit_layer.scrollTop = me.ta_scroll_top;
+}
+
+GoogieSpell.prototype.createChangeLangPic = function() {
+ var switch_lan = AJS.A({'class': 'googie_lang_3d_on', 'style': 'padding-left: 6px;'}, AJS.IMG({'src': this.img_dir + 'change_lang.gif', 'alt': "Change language"}));
+ switch_lan.onmouseover = function() {
+ if(this.className != "googie_lang_3d_click")
+ this.className = "googie_lang_3d_on";
+ }
+
+ var me = this;
+ switch_lan.onclick = function() {
+ if(this.className == "googie_lang_3d_click") {
+ me.hideLangWindow();
+ }
+ else {
+ me.showLangWindow(switch_lan);
+ this.className = "googie_lang_3d_click";
+ }
+ }
+ return switch_lan;
+}
+
+GoogieSpell.prototype.createSpellDiv = function() {
+ var chk_spell = AJS.SPAN({'class': 'googie_check_spelling_link'});
+ chk_spell.innerHTML = this.lang_chck_spell;
+ var spell_img = null;
+ if(this.show_spell_img)
+ spell_img = AJS.IMG({'src': this.img_dir + "spellc.gif"});
+ return AJS.SPAN(spell_img, " ", chk_spell);
+}
+
+GoogieSpell.prototype.checkSpellingState = function() {
+ this.setStateChanged("check_spelling");
+ var me = this;
+ if(this.show_change_lang_pic)
+ this.switch_lan_pic = this.createChangeLangPic();
+ else
+ this.switch_lan_pic = AJS.SPAN();
+
+ var span_chck = this.createSpellDiv();
+ span_chck.onclick = function() {
+ me.spellCheck(span_chck);
+ }
+ AJS.appendChildNodes(this.spell_container, span_chck, " ", this.switch_lan_pic);
+ // modified by roundcube
+ this.check_link = span_chck;
+}
+
+GoogieSpell.prototype.setLanguages = function(lang_dict) {
+ this.lang_to_word = lang_dict;
+ this.langlist_codes = AJS.keys(lang_dict);
+}
+
+GoogieSpell.prototype.decorateTextarea = function(id, /*optional*/spell_container_id, force_width) {
+ var me = this;
+
+ if(typeof(id) == "string")
+ this.text_area = AJS.getElement(id);
+ else
+ this.text_area = id;
+
+ var r_width;
+
+ if(this.text_area != null) {
+ if(AJS.isDefined(spell_container_id)) {
+ if(typeof(spell_container_id) == "string")
+ this.spell_container = AJS.getElement(spell_container_id);
+ else
+ this.spell_container = spell_container_id;
+ }
+ else {
+ var table = AJS.TABLE();
+ var tbody = AJS.TBODY();
+ var tr = AJS.TR();
+ if(AJS.isDefined(force_width)) {
+ r_width = force_width;
+ }
+ else {
+ r_width = this.text_area.offsetWidth + "px";
+ }
+
+ var spell_container = AJS.TD();
+ this.spell_container = spell_container;
+
+ tr.appendChild(spell_container);
+
+ tbody.appendChild(tr);
+ table.appendChild(tbody);
+
+ AJS.insertBefore(table, this.text_area);
+
+ //Set width
+ table.style.width = '100%'; // modified by roundcube (old: r_width)
+ spell_container.style.width = r_width;
+ spell_container.style.textAlign = "right";
+ }
+
+ this.checkSpellingState();
+ }
+ else {
+ alert("Text area not found");
+ }
+}
-/*
- +-----------------------------------------------------------------------+
- | RoundCube List Widget |
- | |
- | This file is part of the RoundCube Webmail client |
- | Copyright (C) 2006-2008, RoundCube Dev, - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Authors: Thomas Bruederli <roundcube@gmail.com> |
- | Charles McNulty <charles@charlesmcnulty.com> |
- +-----------------------------------------------------------------------+
- | Requires: common.js |
- +-----------------------------------------------------------------------+
-
- $Id: list.js 344 2006-09-18 03:49:28Z thomasb $
-*/
-
-
-/**
- * RoundCube List Widget class
- * @contructor
- */
-function rcube_list_widget(list, p)
- {
- // static contants
- this.ENTER_KEY = 13;
- this.DELETE_KEY = 46;
-
- this.list = list ? list : null;
- this.frame = null;
- this.rows = [];
- this.selection = [];
-
- this.subject_col = -1;
- this.shiftkey = false;
- this.multiselect = false;
- this.multi_selecting = false;
- this.draggable = false;
- this.keyboard = false;
- this.toggleselect = false;
-
- this.dont_select = false;
- this.drag_active = false;
- this.last_selected = 0;
- this.shift_start = 0;
- this.in_selection_before = false;
- this.focused = false;
- this.drag_mouse_start = null;
- this.dblclick_time = 600;
- this.row_init = function(){};
- this.events = { click:[], dblclick:[], select:[], keypress:[], dragstart:[], dragend:[] };
-
- // overwrite default paramaters
- if (p && typeof(p)=='object')
- for (var n in p)
- this[n] = p[n];
- }
-
-
-rcube_list_widget.prototype = {
-
-
-/**
- * get all message rows from HTML table and init each row
- */
-init: function()
-{
- if (this.list && this.list.tBodies[0])
- {
- this.rows = new Array();
-
- var row;
- for(var r=0; r<this.list.tBodies[0].childNodes.length; r++)
- {
- row = this.list.tBodies[0].childNodes[r];
- while (row && (row.nodeType != 1 || row.style.display == 'none'))
- {
- row = row.nextSibling;
- r++;
- }
-
- this.init_row(row);
- }
-
- this.frame = this.list.parentNode;
-
- // set body events
- if (this.keyboard)
- rcube_event.add_listener({element:document, event:'keydown', object:this, method:'key_press'});
- }
-},
-
-
-/**
- *
- */
-init_row: function(row)
-{
- // make references in internal array and set event handlers
- if (row && String(row.id).match(/rcmrow([a-z0-9\-_=]+)/i))
- {
- var p = this;
- var uid = RegExp.$1;
- row.uid = uid;
- this.rows[uid] = {uid:uid, id:row.id, obj:row, classname:row.className};
-
- // set eventhandlers to table row
- row.onmousedown = function(e){ return p.drag_row(e, this.uid); };
- row.onmouseup = function(e){ return p.click_row(e, this.uid); };
-
- if (document.all)
- row.onselectstart = function() { return false; };
-
- this.row_init(this.rows[uid]);
- }
-},
-
-
-/**
- *
- */
-clear: function(sel)
-{
- var tbody = document.createElement('TBODY');
- this.list.insertBefore(tbody, this.list.tBodies[0]);
- this.list.removeChild(this.list.tBodies[1]);
- this.rows = new Array();
-
- if (sel) this.clear_selection();
-},
-
-
-/**
- * 'remove' message row from list (just hide it)
- */
-remove_row: function(uid, sel_next)
-{
- if (this.rows[uid].obj)
- this.rows[uid].obj.style.display = 'none';
-
- if (sel_next)
- this.select_next();
-
- this.rows[uid] = null;
-},
-
-
-/**
- *
- */
-insert_row: function(row, attop)
-{
- var tbody = this.list.tBodies[0];
-
- if (attop && tbody.rows.length)
- tbody.insertBefore(row, tbody.firstChild);
- else
- tbody.appendChild(row);
-
- this.init_row(row);
-},
-
-
-
-/**
- * Set focur to the list
- */
-focus: function(e)
-{
- this.focused = true;
- for (var n=0; n<this.selection.length; n++)
- {
- id = this.selection[n];
- if (this.rows[id] && this.rows[id].obj)
- {
- this.set_classname(this.rows[id].obj, 'selected', true);
- this.set_classname(this.rows[id].obj, 'unfocused', false);
- }
- }
-
- if (e || (e = window.event))
- rcube_event.cancel(e);
-},
-
-
-/**
- * remove focus from the list
- */
-blur: function()
-{
- var id;
- this.focused = false;
- for (var n=0; n<this.selection.length; n++)
- {
- id = this.selection[n];
- if (this.rows[id] && this.rows[id].obj)
- {
- this.set_classname(this.rows[id].obj, 'selected', false);
- this.set_classname(this.rows[id].obj, 'unfocused', true);
- }
- }
-},
-
-
-/**
- * onmousedown-handler of message list row
- */
-drag_row: function(e, id)
-{
- // don't do anything (another action processed before)
- var evtarget = rcube_event.get_target(e);
- if (this.dont_select || (evtarget && (evtarget.tagName == 'INPUT' || evtarget.tagName == 'IMG')))
- return false;
-
- this.in_selection_before = this.in_selection(id) ? id : false;
-
- // selects currently unselected row
- if (!this.in_selection_before)
- {
- var mod_key = rcube_event.get_modifier(e);
- this.select_row(id, mod_key, false);
- }
-
- if (this.draggable && this.selection.length)
- {
- this.drag_start = true;
- this.drag_mouse_start = rcube_event.get_mouse_pos(e);
- rcube_event.add_listener({element:document, event:'mousemove', object:this, method:'drag_mouse_move'});
- rcube_event.add_listener({element:document, event:'mouseup', object:this, method:'drag_mouse_up'});
- }
-
- return false;
-},
-
-
-/**
- * onmouseup-handler of message list row
- */
-click_row: function(e, id)
-{
- var now = new Date().getTime();
- var mod_key = rcube_event.get_modifier(e);
- var evtarget = rcube_event.get_target(e);
-
- if ((evtarget && (evtarget.tagName == 'INPUT' || evtarget.tagName == 'IMG')))
- return false;
-
- // don't do anything (another action processed before)
- if (this.dont_select)
- {
- this.dont_select = false;
- return false;
- }
-
- var dblclicked = now - this.rows[id].clicked < this.dblclick_time;
-
- // unselects currently selected row
- if (!this.drag_active && this.in_selection_before == id && !dblclicked)
- this.select_row(id, mod_key, false);
-
- this.drag_start = false;
- this.in_selection_before = false;
-
- // row was double clicked
- if (this.rows && dblclicked && this.in_selection(id))
- this.trigger_event('dblclick');
- else
- this.trigger_event('click');
-
- if (!this.drag_active)
- rcube_event.cancel(e);
-
- this.rows[id].clicked = now;
- return false;
-},
-
-
-/**
- * get next and previous rows that are not hidden
- */
-get_next_row: function()
-{
- if (!this.rows)
- return false;
-
- var last_selected_row = this.rows[this.last_selected];
- var new_row = last_selected_row ? last_selected_row.obj.nextSibling : null;
- while (new_row && (new_row.nodeType != 1 || new_row.style.display == 'none'))
- new_row = new_row.nextSibling;
-
- return new_row;
-},
-
-get_prev_row: function()
-{
- if (!this.rows)
- return false;
-
- var last_selected_row = this.rows[this.last_selected];
- var new_row = last_selected_row ? last_selected_row.obj.previousSibling : null;
- while (new_row && (new_row.nodeType != 1 || new_row.style.display == 'none'))
- new_row = new_row.previousSibling;
-
- return new_row;
-},
-
-
-// selects or unselects the proper row depending on the modifier key pressed
-select_row: function(id, mod_key, with_mouse)
-{
- var select_before = this.selection.join(',');
- if (!this.multiselect)
- mod_key = 0;
-
- if (!this.shift_start)
- this.shift_start = id
-
- if (!mod_key)
- {
- this.shift_start = id;
- this.highlight_row(id, false);
- this.multi_selecting = false;
- }
- else
- {
- switch (mod_key)
- {
- case SHIFT_KEY:
- this.shift_select(id, false);
- break;
-
- case CONTROL_KEY:
- if (!with_mouse)
- this.highlight_row(id, true);
- break;
-
- case CONTROL_SHIFT_KEY:
- this.shift_select(id, true);
- break;
-
- default:
- this.highlight_row(id, false);
- break;
- }
- this.multi_selecting = true;
- }
-
- // trigger event if selection changed
- if (this.selection.join(',') != select_before)
- this.trigger_event('select');
-
- if (this.last_selected != 0 && this.rows[this.last_selected])
- this.set_classname(this.rows[this.last_selected].obj, 'focused', false);
-
- // unselect if toggleselect is active and the same row was clicked again
- if (this.toggleselect && this.last_selected == id)
- {
- this.clear_selection();
- id = null;
- }
- else
- this.set_classname(this.rows[id].obj, 'focused', true);
-
- if (!this.selection.length)
- this.shift_start = null;
-
- this.last_selected = id;
-},
-
-
-/**
- * Alias method for select_row
- */
-select: function(id)
-{
- this.select_row(id, false);
- this.scrollto(id);
-},
-
-
-/**
- * Select row next to the last selected one.
- * Either below or above.
- */
-select_next: function()
-{
- var next_row = this.get_next_row();
- var prev_row = this.get_prev_row();
- var new_row = (next_row) ? next_row : prev_row;
- if (new_row)
- this.select_row(new_row.uid, false, false);
-},
-
-
-/**
- * Perform selection when shift key is pressed
- */
-shift_select: function(id, control)
-{
- if (!this.rows[this.shift_start] || !this.selection.length)
- this.shift_start = id;
-
- var from_rowIndex = this.rows[this.shift_start].obj.rowIndex;
- var to_rowIndex = this.rows[id].obj.rowIndex;
-
- var i = ((from_rowIndex < to_rowIndex)? from_rowIndex : to_rowIndex);
- var j = ((from_rowIndex > to_rowIndex)? from_rowIndex : to_rowIndex);
-
- // iterate through the entire message list
- for (var n in this.rows)
- {
- if ((this.rows[n].obj.rowIndex >= i) && (this.rows[n].obj.rowIndex <= j))
- {
- if (!this.in_selection(n))
- this.highlight_row(n, true);
- }
- else
- {
- if (this.in_selection(n) && !control)
- this.highlight_row(n, true);
- }
- }
-},
-
-
-/**
- * Check if given id is part of the current selection
- */
-in_selection: function(id)
-{
- for(var n in this.selection)
- if (this.selection[n]==id)
- return true;
-
- return false;
-},
-
-
-/**
- * Select each row in list
- */
-select_all: function(filter)
-{
- if (!this.rows || !this.rows.length)
- return false;
-
- // reset but remember selection first
- var select_before = this.selection.join(',');
- this.clear_selection();
-
- for (var n in this.rows)
- {
- if (!filter || this.rows[n][filter]==true)
- {
- this.last_selected = n;
- this.highlight_row(n, true);
- }
- }
-
- // trigger event if selection changed
- if (this.selection.join(',') != select_before)
- this.trigger_event('select');
-
- this.focus();
-
- return true;
-},
-
-
-/**
- * Unselect all selected rows
- */
-clear_selection: function()
-{
- var num_select = this.selection.length;
- for (var n=0; n<this.selection.length; n++)
- if (this.rows[this.selection[n]])
- {
- this.set_classname(this.rows[this.selection[n]].obj, 'selected', false);
- this.set_classname(this.rows[this.selection[n]].obj, 'unfocused', false);
- }
-
- this.selection = new Array();
-
- if (num_select)
- this.trigger_event('select');
-},
-
-
-/**
- * Getter for the selection array
- */
-get_selection: function()
-{
- return this.selection;
-},
-
-
-/**
- * Return the ID if only one row is selected
- */
-get_single_selection: function()
-{
- if (this.selection.length == 1)
- return this.selection[0];
- else
- return null;
-},
-
-
-/**
- * Highlight/unhighlight a row
- */
-highlight_row: function(id, multiple)
-{
- if (this.rows[id] && !multiple)
- {
- if (this.selection.length > 1 || !this.in_selection(id))
- {
- this.clear_selection();
- this.selection[0] = id;
- this.set_classname(this.rows[id].obj, 'selected', true);
- }
- }
- else if (this.rows[id])
- {
- if (!this.in_selection(id)) // select row
- {
- this.selection[this.selection.length] = id;
- this.set_classname(this.rows[id].obj, 'selected', true);
- }
- else // unselect row
- {
- var p = find_in_array(id, this.selection);
- var a_pre = this.selection.slice(0, p);
- var a_post = this.selection.slice(p+1, this.selection.length);
- this.selection = a_pre.concat(a_post);
- this.set_classname(this.rows[id].obj, 'selected', false);
- this.set_classname(this.rows[id].obj, 'unfocused', false);
- }
- }
-},
-
-
-/**
- * Handler for keyboard events
- */
-key_press: function(e)
-{
- if (this.focused != true)
- return true;
-
- var keyCode = document.layers ? e.which : document.all ? event.keyCode : document.getElementById ? e.keyCode : 0;
- var mod_key = rcube_event.get_modifier(e);
- switch (keyCode)
- {
- case 40:
- case 38:
- return this.use_arrow_key(keyCode, mod_key);
- break;
-
- default:
- this.shiftkey = e.shiftKey;
- this.key_pressed = keyCode;
- this.trigger_event('keypress');
- }
-
- return true;
-},
-
-
-/**
- * Special handling method for arrow keys
- */
-use_arrow_key: function(keyCode, mod_key)
-{
- var new_row;
- if (keyCode == 40) // down arrow key pressed
- new_row = this.get_next_row();
- else if (keyCode == 38) // up arrow key pressed
- new_row = this.get_prev_row();
-
- if (new_row)
- {
- this.select_row(new_row.uid, mod_key, true);
- this.scrollto(new_row.uid);
- }
-
- return false;
-},
-
-
-/**
- * Try to scroll the list to make the specified row visible
- */
-scrollto: function(id)
-{
- var row = this.rows[id].obj;
- if (row && this.frame)
- {
- var scroll_to = Number(row.offsetTop);
-
- if (scroll_to < Number(this.frame.scrollTop))
- this.frame.scrollTop = scroll_to;
- else if (scroll_to + Number(row.offsetHeight) > Number(this.frame.scrollTop) + Number(this.frame.offsetHeight))
- this.frame.scrollTop = (scroll_to + Number(row.offsetHeight)) - Number(this.frame.offsetHeight);
- }
-},
-
-
-/**
- * Handler for mouse move events
- */
-drag_mouse_move: function(e)
-{
- if (this.drag_start)
- {
- // check mouse movement, of less than 3 pixels, don't start dragging
- var m = rcube_event.get_mouse_pos(e);
- if (!this.drag_mouse_start || (Math.abs(m.x - this.drag_mouse_start.x) < 3 && Math.abs(m.y - this.drag_mouse_start.y) < 3))
- return false;
-
- if (!this.draglayer)
- this.draglayer = new rcube_layer('rcmdraglayer', {x:0, y:0, width:300, vis:0, zindex:2000});
-
- // get subjects of selectedd messages
- var names = '';
- var c, i, node, subject, obj;
- for(var n=0; n<this.selection.length; n++)
- {
- if (n>12) // only show 12 lines
- {
- names += '...';
- break;
- }
-
- if (this.rows[this.selection[n]].obj)
- {
- obj = this.rows[this.selection[n]].obj;
- subject = '';
-
- for(c=0, i=0; i<obj.childNodes.length; i++)
- {
- if (obj.childNodes[i].nodeName == 'TD')
- {
- if (((node = obj.childNodes[i].firstChild) && (node.nodeType==3 || node.nodeName=='A')) &&
- (this.subject_col < 0 || (this.subject_col >= 0 && this.subject_col == c)))
- {
- subject = node.nodeType==3 ? node.data : node.innerHTML;
- names += (subject.length > 50 ? subject.substring(0, 50)+'...' : subject) + '<br />';
- break;
- }
- c++;
- }
- }
- }
- }
-
- this.draglayer.write(names);
- this.draglayer.show(1);
-
- this.drag_active = true;
- this.trigger_event('dragstart');
- }
-
- if (this.drag_active && this.draglayer)
- {
- var pos = rcube_event.get_mouse_pos(e);
- this.draglayer.move(pos.x+20, pos.y-5);
- }
-
- this.drag_start = false;
-
- return false;
-},
-
-
-/**
- * Handler for mouse up events
- */
-drag_mouse_up: function(e)
-{
- document.onmousemove = null;
-
- if (this.draglayer && this.draglayer.visible)
- this.draglayer.show(0);
-
- this.drag_active = false;
- this.trigger_event('dragend');
-
- rcube_event.remove_listener({element:document, event:'mousemove', object:this, method:'drag_mouse_move'});
- rcube_event.remove_listener({element:document, event:'mouseup', object:this, method:'drag_mouse_up'});
-
- return rcube_event.cancel(e);
-},
-
-
-
-/**
- * set/unset a specific class name
- */
-set_classname: function(obj, classname, set)
-{
- var reg = new RegExp('\s*'+classname, 'i');
- if (!set && obj.className.match(reg))
- obj.className = obj.className.replace(reg, '');
- else if (set && !obj.className.match(reg))
- obj.className += ' '+classname;
-},
-
-
-/**
- * Setter for object event handlers
- *
- * @param {String} Event name
- * @param {Function} Handler function
- * @return Listener ID (used to remove this handler later on)
- */
-addEventListener: function(evt, handler)
-{
- if (this.events[evt]) {
- var handle = this.events[evt].length;
- this.events[evt][handle] = handler;
- return handle;
- }
- else
- return false;
-},
-
-
-/**
- * Removes a specific event listener
- *
- * @param {String} Event name
- * @param {Int} Listener ID to remove
- */
-removeEventListener: function(evt, handle)
-{
- if (this.events[evt] && this.events[evt][handle])
- this.events[evt][handle] = null;
-},
-
-
-/**
- * This will execute all registered event handlers
- * @private
- */
-trigger_event: function(evt)
-{
- if (this.events[evt] && this.events[evt].length) {
- for (var i=0; i<this.events[evt].length; i++)
- if (typeof(this.events[evt][i]) == 'function')
- this.events[evt][i](this);
- }
+function rcube_list_widget(_1,p){
+this.ENTER_KEY=13;
+this.DELETE_KEY=46;
+this.BACKSPACE_KEY=8;
+this.list=_1?_1:null;
+this.frame=null;
+this.rows=[];
+this.selection=[];
+this.rowcount=0;
+this.subject_col=-1;
+this.shiftkey=false;
+this.multiselect=false;
+this.multi_selecting=false;
+this.draggable=false;
+this.keyboard=false;
+this.toggleselect=false;
+this.dont_select=false;
+this.drag_active=false;
+this.last_selected=0;
+this.shift_start=0;
+this.in_selection_before=false;
+this.focused=false;
+this.drag_mouse_start=null;
+this.dblclick_time=600;
+this.row_init=function(){
+};
+this.events={click:[],dblclick:[],select:[],keypress:[],dragstart:[],dragmove:[],dragend:[]};
+if(p&&typeof (p)=="object"){
+for(var n in p){
+this[n]=p[n];
}
-
-
+}
+};
+rcube_list_widget.prototype={init:function(){
+if(this.list&&this.list.tBodies[0]){
+this.rows=new Array();
+this.rowcount=0;
+var _4;
+for(var r=0;r<this.list.tBodies[0].childNodes.length;r++){
+_4=this.list.tBodies[0].childNodes[r];
+while(_4&&(_4.nodeType!=1||_4.style.display=="none")){
+_4=_4.nextSibling;
+r++;
+}
+this.init_row(_4);
+this.rowcount++;
+}
+this.frame=this.list.parentNode;
+if(this.keyboard){
+rcube_event.add_listener({element:document,event:"keyup",object:this,method:"key_press"});
+rcube_event.add_listener({element:document,event:"keydown",object:this,method:"key_down"});
+}
+}
+},init_row:function(_6){
+if(_6&&String(_6.id).match(/rcmrow([a-z0-9\-_=]+)/i)){
+var p=this;
+var _8=RegExp.$1;
+_6.uid=_8;
+this.rows[_8]={uid:_8,id:_6.id,obj:_6,classname:_6.className};
+_6.onmousedown=function(e){
+return p.drag_row(e,this.uid);
+};
+_6.onmouseup=function(e){
+return p.click_row(e,this.uid);
+};
+if(document.all){
+_6.onselectstart=function(){
+return false;
+};
+}
+this.row_init(this.rows[_8]);
+}
+},clear:function(_b){
+var _c=document.createElement("TBODY");
+this.list.insertBefore(_c,this.list.tBodies[0]);
+this.list.removeChild(this.list.tBodies[1]);
+this.rows=new Array();
+this.rowcount=0;
+if(_b){
+this.clear_selection();
+}
+},remove_row:function(_d,_e){
+if(this.rows[_d].obj){
+this.rows[_d].obj.style.display="none";
+}
+if(_e){
+this.select_next();
+}
+this.rows[_d]=null;
+this.rowcount--;
+},insert_row:function(_f,_10){
+var _11=this.list.tBodies[0];
+if(_10&&_11.rows.length){
+_11.insertBefore(_f,_11.firstChild);
+}else{
+_11.appendChild(_f);
+}
+this.init_row(_f);
+this.rowcount++;
+},focus:function(e){
+this.focused=true;
+for(var n=0;n<this.selection.length;n++){
+id=this.selection[n];
+if(this.rows[id]&&this.rows[id].obj){
+this.set_classname(this.rows[id].obj,"selected",true);
+this.set_classname(this.rows[id].obj,"unfocused",false);
+}
+}
+if(e||(e=window.event)){
+rcube_event.cancel(e);
+}
+},blur:function(){
+var id;
+this.focused=false;
+for(var n=0;n<this.selection.length;n++){
+id=this.selection[n];
+if(this.rows[id]&&this.rows[id].obj){
+this.set_classname(this.rows[id].obj,"selected",false);
+this.set_classname(this.rows[id].obj,"unfocused",true);
+}
+}
+},drag_row:function(e,id){
+var _18=rcube_event.get_target(e);
+if(this.dont_select||(_18&&(_18.tagName=="INPUT"||_18.tagName=="IMG"))){
+return false;
+}
+if(rcube_event.get_button(e)==2){
+return true;
+}
+this.in_selection_before=this.in_selection(id)?id:false;
+if(!this.in_selection_before){
+var _19=rcube_event.get_modifier(e);
+this.select_row(id,_19,false);
+}
+if(this.draggable&&this.selection.length){
+this.drag_start=true;
+this.drag_mouse_start=rcube_event.get_mouse_pos(e);
+rcube_event.add_listener({element:document,event:"mousemove",object:this,method:"drag_mouse_move"});
+rcube_event.add_listener({element:document,event:"mouseup",object:this,method:"drag_mouse_up"});
+var _1a=document.getElementsByTagName("IFRAME");
+this.iframe_events=Object();
+for(var n in _1a){
+var _1c=null;
+if(_1a[n].contentDocument){
+_1c=_1a[n].contentDocument;
+}else{
+if(_1a[n].contentWindow){
+_1c=_1a[n].contentWindow.document;
+}else{
+if(_1a[n].document){
+_1c=_1a[n].document;
+}
+}
+}
+if(_1c){
+var _1d=this;
+var pos=rcube_get_object_pos(document.getElementById(_1a[n].id));
+this.iframe_events[n]=function(e){
+e._offset=pos;
+return _1d.drag_mouse_move(e);
};
+if(_1c.addEventListener){
+_1c.addEventListener("mousemove",this.iframe_events[n],false);
+}else{
+if(_1a[n].attachEvent){
+_1c.attachEvent("onmousemove",this.iframe_events[n]);
+}else{
+_1c["onmousemove"]=this.iframe_events[n];
+}
+}
+rcube_event.add_listener({element:_1c,event:"mouseup",object:this,method:"drag_mouse_up"});
+}
+}
+}
+return false;
+},click_row:function(e,id){
+var now=new Date().getTime();
+var _23=rcube_event.get_modifier(e);
+var _24=rcube_event.get_target(e);
+if((_24&&(_24.tagName=="INPUT"||_24.tagName=="IMG"))){
+return false;
+}
+if(this.dont_select){
+this.dont_select=false;
+return false;
+}
+var _25=now-this.rows[id].clicked<this.dblclick_time;
+if(!this.drag_active&&this.in_selection_before==id&&!_25){
+this.select_row(id,_23,false);
+}
+this.drag_start=false;
+this.in_selection_before=false;
+if(this.rows&&_25&&this.in_selection(id)){
+this.trigger_event("dblclick");
+}else{
+this.trigger_event("click");
+}
+if(!this.drag_active){
+rcube_event.cancel(e);
+}
+this.rows[id].clicked=now;
+return false;
+},get_next_row:function(){
+if(!this.rows){
+return false;
+}
+var _26=this.rows[this.last_selected];
+var _27=_26?_26.obj.nextSibling:null;
+while(_27&&(_27.nodeType!=1||_27.style.display=="none")){
+_27=_27.nextSibling;
+}
+return _27;
+},get_prev_row:function(){
+if(!this.rows){
+return false;
+}
+var _28=this.rows[this.last_selected];
+var _29=_28?_28.obj.previousSibling:null;
+while(_29&&(_29.nodeType!=1||_29.style.display=="none")){
+_29=_29.previousSibling;
+}
+return _29;
+},get_last_row:function(){
+if(this.rowcount){
+var _2a=this.list.tBodies[0].rows;
+for(var i=_2a.length-1;i>=0;i--){
+if(_2a[i].id&&String(_2a[i].id).match(/rcmrow([a-z0-9\-_=]+)/i)&&this.rows[RegExp.$1]!=null){
+return RegExp.$1;
+}
+}
+}
+return null;
+},select_row:function(id,_2d,_2e){
+var _2f=this.selection.join(",");
+if(!this.multiselect){
+_2d=0;
+}
+if(!this.shift_start){
+this.shift_start=id;
+}
+if(!_2d){
+this.shift_start=id;
+this.highlight_row(id,false);
+this.multi_selecting=false;
+}else{
+switch(_2d){
+case SHIFT_KEY:
+this.shift_select(id,false);
+break;
+case CONTROL_KEY:
+if(!_2e){
+this.highlight_row(id,true);
+}
+break;
+case CONTROL_SHIFT_KEY:
+this.shift_select(id,true);
+break;
+default:
+this.highlight_row(id,false);
+break;
+}
+this.multi_selecting=true;
+}
+if(this.selection.join(",")!=_2f){
+this.trigger_event("select");
+}
+if(this.last_selected!=0&&this.rows[this.last_selected]){
+this.set_classname(this.rows[this.last_selected].obj,"focused",false);
+}
+if(this.toggleselect&&this.last_selected==id){
+this.clear_selection();
+id=null;
+}else{
+this.set_classname(this.rows[id].obj,"focused",true);
+}
+if(!this.selection.length){
+this.shift_start=null;
+}
+this.last_selected=id;
+},select:function(id){
+this.select_row(id,false);
+this.scrollto(id);
+},select_next:function(){
+var _31=this.get_next_row();
+var _32=this.get_prev_row();
+var _33=(_31)?_31:_32;
+if(_33){
+this.select_row(_33.uid,false,false);
+}
+},shift_select:function(id,_35){
+if(!this.rows[this.shift_start]||!this.selection.length){
+this.shift_start=id;
+}
+var _36=this.rows[this.shift_start].obj.rowIndex;
+var _37=this.rows[id].obj.rowIndex;
+var i=((_36<_37)?_36:_37);
+var j=((_36>_37)?_36:_37);
+for(var n in this.rows){
+if((this.rows[n].obj.rowIndex>=i)&&(this.rows[n].obj.rowIndex<=j)){
+if(!this.in_selection(n)){
+this.highlight_row(n,true);
+}
+}else{
+if(this.in_selection(n)&&!_35){
+this.highlight_row(n,true);
+}
+}
+}
+},in_selection:function(id){
+for(var n in this.selection){
+if(this.selection[n]==id){
+return true;
+}
+}
+return false;
+},select_all:function(_3d){
+if(!this.rows||!this.rows.length){
+return false;
+}
+var _3e=this.selection.join(",");
+this.clear_selection();
+for(var n in this.rows){
+if(!_3d||this.rows[n][_3d]==true){
+this.last_selected=n;
+this.highlight_row(n,true);
+}
+}
+if(this.selection.join(",")!=_3e){
+this.trigger_event("select");
+}
+this.focus();
+return true;
+},clear_selection:function(id){
+var _41=this.selection.length;
+if(id){
+for(var n=0;n<this.selection.length;n++){
+if(this.selection[n]==id){
+this.selection.splice(n,1);
+break;
+}
+}
+}else{
+for(var n=0;n<this.selection.length;n++){
+if(this.rows[this.selection[n]]){
+this.set_classname(this.rows[this.selection[n]].obj,"selected",false);
+this.set_classname(this.rows[this.selection[n]].obj,"unfocused",false);
+}
+}
+this.selection=new Array();
+}
+if(_41&&!this.selection.length){
+this.trigger_event("select");
+}
+},get_selection:function(){
+return this.selection;
+},get_single_selection:function(){
+if(this.selection.length==1){
+return this.selection[0];
+}else{
+return null;
+}
+},highlight_row:function(id,_44){
+if(this.rows[id]&&!_44){
+if(this.selection.length>1||!this.in_selection(id)){
+this.clear_selection();
+this.selection[0]=id;
+this.set_classname(this.rows[id].obj,"selected",true);
+}
+}else{
+if(this.rows[id]){
+if(!this.in_selection(id)){
+this.selection[this.selection.length]=id;
+this.set_classname(this.rows[id].obj,"selected",true);
+}else{
+var p=find_in_array(id,this.selection);
+var _46=this.selection.slice(0,p);
+var _47=this.selection.slice(p+1,this.selection.length);
+this.selection=_46.concat(_47);
+this.set_classname(this.rows[id].obj,"selected",false);
+this.set_classname(this.rows[id].obj,"unfocused",false);
+}
+}
+}
+},key_press:function(e){
+if(this.focused!=true){
+return true;
+}
+var _49=rcube_event.get_keycode(e);
+var _4a=rcube_event.get_modifier(e);
+switch(_49){
+case 40:
+case 38:
+case 63233:
+case 63232:
+rcube_event.cancel(e);
+return this.use_arrow_key(_49,_4a);
+default:
+this.shiftkey=e.shiftKey;
+this.key_pressed=_49;
+this.trigger_event("keypress");
+if(this.key_pressed==this.BACKSPACE_KEY){
+return rcube_event.cancel(e);
+}
+}
+return true;
+},key_down:function(e){
+switch(rcube_event.get_keycode(e)){
+case 40:
+case 38:
+case 63233:
+case 63232:
+if(!rcube_event.get_modifier(e)&&this.focused){
+return rcube_event.cancel(e);
+}
+default:
+}
+return true;
+},use_arrow_key:function(_4c,_4d){
+var _4e;
+if(_4c==40||_4c==63233){
+_4e=this.get_next_row();
+}else{
+if(_4c==38||_4c==63232){
+_4e=this.get_prev_row();
+}
+}
+if(_4e){
+this.select_row(_4e.uid,_4d,true);
+this.scrollto(_4e.uid);
+}
+return false;
+},scrollto:function(id){
+var row=this.rows[id].obj;
+if(row&&this.frame){
+var _51=Number(row.offsetTop);
+if(_51<Number(this.frame.scrollTop)){
+this.frame.scrollTop=_51;
+}else{
+if(_51+Number(row.offsetHeight)>Number(this.frame.scrollTop)+Number(this.frame.offsetHeight)){
+this.frame.scrollTop=(_51+Number(row.offsetHeight))-Number(this.frame.offsetHeight);
+}
+}
+}
+},drag_mouse_move:function(e){
+if(this.drag_start){
+var m=rcube_event.get_mouse_pos(e);
+if(!this.drag_mouse_start||(Math.abs(m.x-this.drag_mouse_start.x)<3&&Math.abs(m.y-this.drag_mouse_start.y)<3)){
+return false;
+}
+if(!this.draglayer){
+this.draglayer=new rcube_layer("rcmdraglayer",{x:0,y:0,vis:0,zindex:2000});
+}
+var _54="";
+var c,i,_57,_58,obj;
+for(var n=0;n<this.selection.length;n++){
+if(n>12){
+_54+="...";
+break;
+}
+if(this.rows[this.selection[n]].obj){
+obj=this.rows[this.selection[n]].obj;
+_58="";
+for(c=0,i=0;i<obj.childNodes.length;i++){
+if(obj.childNodes[i].nodeName=="TD"){
+if(((_57=obj.childNodes[i].firstChild)&&(_57.nodeType==3||_57.nodeName=="A"))&&(this.subject_col<0||(this.subject_col>=0&&this.subject_col==c))){
+_58=_57.nodeType==3?_57.data:_57.innerHTML;
+_54+=(_58.length>50?_58.substring(0,50)+"...":_58)+"<br />";
+break;
+}
+c++;
+}
+}
+}
+}
+this.draglayer.write(_54);
+this.draglayer.show(1);
+this.drag_active=true;
+this.trigger_event("dragstart");
+}
+if(this.drag_active&&this.draglayer){
+var pos=rcube_event.get_mouse_pos(e);
+this.draglayer.move(pos.x+20,pos.y-5);
+this.trigger_event("dragmove",e);
+}
+this.drag_start=false;
+return false;
+},drag_mouse_up:function(e){
+document.onmousemove=null;
+if(this.draglayer&&this.draglayer.visible){
+this.draglayer.show(0);
+}
+this.drag_active=false;
+this.trigger_event("dragend");
+rcube_event.remove_listener({element:document,event:"mousemove",object:this,method:"drag_mouse_move"});
+rcube_event.remove_listener({element:document,event:"mouseup",object:this,method:"drag_mouse_up"});
+var _5d=document.getElementsByTagName("IFRAME");
+for(var n in _5d){
+var _5f;
+if(_5d[n].contentDocument){
+_5f=_5d[n].contentDocument;
+}else{
+if(_5d[n].contentWindow){
+_5f=_5d[n].contentWindow.document;
+}else{
+if(_5d[n].document){
+_5f=_5d[n].document;
+}
+}
+}
+if(_5f){
+if(this.iframe_events[n]){
+if(_5f.removeEventListener){
+_5f.removeEventListener("mousemove",this.iframe_events[n],false);
+}else{
+if(_5f.detachEvent){
+_5f.detachEvent("onmousemove",this.iframe_events[n]);
+}else{
+_5f["onmousemove"]=null;
+}
+}
+}
+rcube_event.remove_listener({element:_5f,event:"mouseup",object:this,method:"drag_mouse_up"});
+}
+}
+this.focus();
+return rcube_event.cancel(e);
+},set_classname:function(obj,_61,set){
+var reg=new RegExp("s*"+_61,"i");
+if(!set&&obj.className.match(reg)){
+obj.className=obj.className.replace(reg,"");
+}else{
+if(set&&!obj.className.match(reg)){
+obj.className+=" "+_61;
+}
+}
+},addEventListener:function(evt,_65){
+if(this.events[evt]){
+var _66=this.events[evt].length;
+this.events[evt][_66]=_65;
+return _66;
+}else{
+return false;
+}
+},removeEventListener:function(evt,_68){
+if(this.events[evt]&&this.events[evt][_68]){
+this.events[evt][_68]=null;
+}
+},trigger_event:function(evt,p){
+if(this.events[evt]&&this.events[evt].length){
+for(var i=0;i<this.events[evt].length;i++){
+if(typeof (this.events[evt][i])=="function"){
+this.events[evt][i](this,p);
+}
+}
+}
+}};
--- /dev/null
+/*
+ +-----------------------------------------------------------------------+
+ | RoundCube List Widget |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2006-2008, RoundCube Dev, - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ +-----------------------------------------------------------------------+
+ | Authors: Thomas Bruederli <roundcube@gmail.com> |
+ | Charles McNulty <charles@charlesmcnulty.com> |
+ +-----------------------------------------------------------------------+
+ | Requires: common.js |
+ +-----------------------------------------------------------------------+
+
+ $Id: list.js 344 2006-09-18 03:49:28Z thomasb $
+*/
+
+
+/**
+ * RoundCube List Widget class
+ * @contructor
+ */
+function rcube_list_widget(list, p)
+ {
+ // static contants
+ this.ENTER_KEY = 13;
+ this.DELETE_KEY = 46;
+ this.BACKSPACE_KEY = 8;
+
+ this.list = list ? list : null;
+ this.frame = null;
+ this.rows = [];
+ this.selection = [];
+ this.rowcount = 0;
+
+ this.subject_col = -1;
+ this.shiftkey = false;
+ this.multiselect = false;
+ this.multi_selecting = false;
+ this.draggable = false;
+ this.keyboard = false;
+ this.toggleselect = false;
+
+ this.dont_select = false;
+ this.drag_active = false;
+ this.last_selected = 0;
+ this.shift_start = 0;
+ this.in_selection_before = false;
+ this.focused = false;
+ this.drag_mouse_start = null;
+ this.dblclick_time = 600;
+ this.row_init = function(){};
+ this.events = { click:[], dblclick:[], select:[], keypress:[], dragstart:[], dragmove:[], dragend:[] };
+
+ // overwrite default paramaters
+ if (p && typeof(p)=='object')
+ for (var n in p)
+ this[n] = p[n];
+ }
+
+
+rcube_list_widget.prototype = {
+
+
+/**
+ * get all message rows from HTML table and init each row
+ */
+init: function()
+{
+ if (this.list && this.list.tBodies[0])
+ {
+ this.rows = new Array();
+ this.rowcount = 0;
+
+ var row;
+ for(var r=0; r<this.list.tBodies[0].childNodes.length; r++)
+ {
+ row = this.list.tBodies[0].childNodes[r];
+ while (row && (row.nodeType != 1 || row.style.display == 'none'))
+ {
+ row = row.nextSibling;
+ r++;
+ }
+
+ this.init_row(row);
+ this.rowcount++;
+ }
+
+ this.frame = this.list.parentNode;
+
+ // set body events
+ if (this.keyboard) {
+ rcube_event.add_listener({element:document, event:'keyup', object:this, method:'key_press'});
+ rcube_event.add_listener({element:document, event:'keydown', object:this, method:'key_down'});
+ }
+ }
+},
+
+
+/**
+ *
+ */
+init_row: function(row)
+{
+ // make references in internal array and set event handlers
+ if (row && String(row.id).match(/rcmrow([a-z0-9\-_=]+)/i))
+ {
+ var p = this;
+ var uid = RegExp.$1;
+ row.uid = uid;
+ this.rows[uid] = {uid:uid, id:row.id, obj:row, classname:row.className};
+
+ // set eventhandlers to table row
+ row.onmousedown = function(e){ return p.drag_row(e, this.uid); };
+ row.onmouseup = function(e){ return p.click_row(e, this.uid); };
+
+ if (document.all)
+ row.onselectstart = function() { return false; };
+
+ this.row_init(this.rows[uid]);
+ }
+},
+
+
+/**
+ *
+ */
+clear: function(sel)
+{
+ var tbody = document.createElement('TBODY');
+ this.list.insertBefore(tbody, this.list.tBodies[0]);
+ this.list.removeChild(this.list.tBodies[1]);
+ this.rows = new Array();
+ this.rowcount = 0;
+
+ if (sel) this.clear_selection();
+},
+
+
+/**
+ * 'remove' message row from list (just hide it)
+ */
+remove_row: function(uid, sel_next)
+{
+ if (this.rows[uid].obj)
+ this.rows[uid].obj.style.display = 'none';
+
+ if (sel_next)
+ this.select_next();
+
+ this.rows[uid] = null;
+ this.rowcount--;
+},
+
+
+/**
+ *
+ */
+insert_row: function(row, attop)
+{
+ var tbody = this.list.tBodies[0];
+
+ if (attop && tbody.rows.length)
+ tbody.insertBefore(row, tbody.firstChild);
+ else
+ tbody.appendChild(row);
+
+ this.init_row(row);
+ this.rowcount++;
+},
+
+
+
+/**
+ * Set focus to the list
+ */
+focus: function(e)
+{
+ this.focused = true;
+ for (var n=0; n<this.selection.length; n++)
+ {
+ id = this.selection[n];
+ if (this.rows[id] && this.rows[id].obj)
+ {
+ this.set_classname(this.rows[id].obj, 'selected', true);
+ this.set_classname(this.rows[id].obj, 'unfocused', false);
+ }
+ }
+
+ if (e || (e = window.event))
+ rcube_event.cancel(e);
+},
+
+
+/**
+ * remove focus from the list
+ */
+blur: function()
+{
+ var id;
+ this.focused = false;
+ for (var n=0; n<this.selection.length; n++)
+ {
+ id = this.selection[n];
+ if (this.rows[id] && this.rows[id].obj)
+ {
+ this.set_classname(this.rows[id].obj, 'selected', false);
+ this.set_classname(this.rows[id].obj, 'unfocused', true);
+ }
+ }
+},
+
+
+/**
+ * onmousedown-handler of message list row
+ */
+drag_row: function(e, id)
+{
+ // don't do anything (another action processed before)
+ var evtarget = rcube_event.get_target(e);
+ if (this.dont_select || (evtarget && (evtarget.tagName == 'INPUT' || evtarget.tagName == 'IMG')))
+ return false;
+
+ // accept right-clicks
+ if (rcube_event.get_button(e) == 2)
+ return true;
+
+ this.in_selection_before = this.in_selection(id) ? id : false;
+
+ // selects currently unselected row
+ if (!this.in_selection_before)
+ {
+ var mod_key = rcube_event.get_modifier(e);
+ this.select_row(id, mod_key, false);
+ }
+
+ if (this.draggable && this.selection.length)
+ {
+ this.drag_start = true;
+ this.drag_mouse_start = rcube_event.get_mouse_pos(e);
+ rcube_event.add_listener({element:document, event:'mousemove', object:this, method:'drag_mouse_move'});
+ rcube_event.add_listener({element:document, event:'mouseup', object:this, method:'drag_mouse_up'});
+
+ // add listener for iframes
+ var iframes = document.getElementsByTagName('IFRAME');
+ this.iframe_events = Object();
+ for (var n in iframes)
+ {
+ var iframedoc = null;
+ if (iframes[n].contentDocument)
+ iframedoc = iframes[n].contentDocument;
+ else if (iframes[n].contentWindow)
+ iframedoc = iframes[n].contentWindow.document;
+ else if (iframes[n].document)
+ iframedoc = iframes[n].document;
+
+ if (iframedoc)
+ {
+ var list = this;
+ var pos = rcube_get_object_pos(document.getElementById(iframes[n].id));
+ this.iframe_events[n] = function(e) { e._offset = pos; return list.drag_mouse_move(e); }
+
+ if (iframedoc.addEventListener)
+ iframedoc.addEventListener('mousemove', this.iframe_events[n], false);
+ else if (iframes[n].attachEvent)
+ iframedoc.attachEvent('onmousemove', this.iframe_events[n]);
+ else
+ iframedoc['onmousemove'] = this.iframe_events[n];
+
+ rcube_event.add_listener({element:iframedoc, event:'mouseup', object:this, method:'drag_mouse_up'});
+ }
+ }
+ }
+
+ return false;
+},
+
+
+/**
+ * onmouseup-handler of message list row
+ */
+click_row: function(e, id)
+{
+ var now = new Date().getTime();
+ var mod_key = rcube_event.get_modifier(e);
+ var evtarget = rcube_event.get_target(e);
+
+ if ((evtarget && (evtarget.tagName == 'INPUT' || evtarget.tagName == 'IMG')))
+ return false;
+
+ // don't do anything (another action processed before)
+ if (this.dont_select)
+ {
+ this.dont_select = false;
+ return false;
+ }
+
+ var dblclicked = now - this.rows[id].clicked < this.dblclick_time;
+
+ // unselects currently selected row
+ if (!this.drag_active && this.in_selection_before == id && !dblclicked)
+ this.select_row(id, mod_key, false);
+
+ this.drag_start = false;
+ this.in_selection_before = false;
+
+ // row was double clicked
+ if (this.rows && dblclicked && this.in_selection(id))
+ this.trigger_event('dblclick');
+ else
+ this.trigger_event('click');
+
+ if (!this.drag_active)
+ rcube_event.cancel(e);
+
+ this.rows[id].clicked = now;
+ return false;
+},
+
+
+/**
+ * get next/previous/last rows that are not hidden
+ */
+get_next_row: function()
+{
+ if (!this.rows)
+ return false;
+
+ var last_selected_row = this.rows[this.last_selected];
+ var new_row = last_selected_row ? last_selected_row.obj.nextSibling : null;
+ while (new_row && (new_row.nodeType != 1 || new_row.style.display == 'none'))
+ new_row = new_row.nextSibling;
+
+ return new_row;
+},
+
+get_prev_row: function()
+{
+ if (!this.rows)
+ return false;
+
+ var last_selected_row = this.rows[this.last_selected];
+ var new_row = last_selected_row ? last_selected_row.obj.previousSibling : null;
+ while (new_row && (new_row.nodeType != 1 || new_row.style.display == 'none'))
+ new_row = new_row.previousSibling;
+
+ return new_row;
+},
+
+get_last_row: function()
+{
+ if (this.rowcount)
+ {
+ var rows = this.list.tBodies[0].rows;
+
+ for(var i=rows.length-1; i>=0; i--)
+ if(rows[i].id && String(rows[i].id).match(/rcmrow([a-z0-9\-_=]+)/i) && this.rows[RegExp.$1] != null)
+ return RegExp.$1;
+ }
+
+ return null;
+},
+
+
+/**
+ * selects or unselects the proper row depending on the modifier key pressed
+ */
+select_row: function(id, mod_key, with_mouse)
+{
+ var select_before = this.selection.join(',');
+ if (!this.multiselect)
+ mod_key = 0;
+
+ if (!this.shift_start)
+ this.shift_start = id
+
+ if (!mod_key)
+ {
+ this.shift_start = id;
+ this.highlight_row(id, false);
+ this.multi_selecting = false;
+ }
+ else
+ {
+ switch (mod_key)
+ {
+ case SHIFT_KEY:
+ this.shift_select(id, false);
+ break;
+
+ case CONTROL_KEY:
+ if (!with_mouse)
+ this.highlight_row(id, true);
+ break;
+
+ case CONTROL_SHIFT_KEY:
+ this.shift_select(id, true);
+ break;
+
+ default:
+ this.highlight_row(id, false);
+ break;
+ }
+ this.multi_selecting = true;
+ }
+
+ // trigger event if selection changed
+ if (this.selection.join(',') != select_before)
+ this.trigger_event('select');
+
+ if (this.last_selected != 0 && this.rows[this.last_selected])
+ this.set_classname(this.rows[this.last_selected].obj, 'focused', false);
+
+ // unselect if toggleselect is active and the same row was clicked again
+ if (this.toggleselect && this.last_selected == id)
+ {
+ this.clear_selection();
+ id = null;
+ }
+ else
+ this.set_classname(this.rows[id].obj, 'focused', true);
+
+ if (!this.selection.length)
+ this.shift_start = null;
+
+ this.last_selected = id;
+},
+
+
+/**
+ * Alias method for select_row
+ */
+select: function(id)
+{
+ this.select_row(id, false);
+ this.scrollto(id);
+},
+
+
+/**
+ * Select row next to the last selected one.
+ * Either below or above.
+ */
+select_next: function()
+{
+ var next_row = this.get_next_row();
+ var prev_row = this.get_prev_row();
+ var new_row = (next_row) ? next_row : prev_row;
+ if (new_row)
+ this.select_row(new_row.uid, false, false);
+},
+
+
+/**
+ * Perform selection when shift key is pressed
+ */
+shift_select: function(id, control)
+{
+ if (!this.rows[this.shift_start] || !this.selection.length)
+ this.shift_start = id;
+
+ var from_rowIndex = this.rows[this.shift_start].obj.rowIndex;
+ var to_rowIndex = this.rows[id].obj.rowIndex;
+
+ var i = ((from_rowIndex < to_rowIndex)? from_rowIndex : to_rowIndex);
+ var j = ((from_rowIndex > to_rowIndex)? from_rowIndex : to_rowIndex);
+
+ // iterate through the entire message list
+ for (var n in this.rows)
+ {
+ if ((this.rows[n].obj.rowIndex >= i) && (this.rows[n].obj.rowIndex <= j))
+ {
+ if (!this.in_selection(n))
+ this.highlight_row(n, true);
+ }
+ else
+ {
+ if (this.in_selection(n) && !control)
+ this.highlight_row(n, true);
+ }
+ }
+},
+
+
+/**
+ * Check if given id is part of the current selection
+ */
+in_selection: function(id)
+{
+ for(var n in this.selection)
+ if (this.selection[n]==id)
+ return true;
+
+ return false;
+},
+
+
+/**
+ * Select each row in list
+ */
+select_all: function(filter)
+{
+ if (!this.rows || !this.rows.length)
+ return false;
+
+ // reset but remember selection first
+ var select_before = this.selection.join(',');
+ this.clear_selection();
+
+ for (var n in this.rows)
+ {
+ if (!filter || this.rows[n][filter]==true)
+ {
+ this.last_selected = n;
+ this.highlight_row(n, true);
+ }
+ }
+
+ // trigger event if selection changed
+ if (this.selection.join(',') != select_before)
+ this.trigger_event('select');
+
+ this.focus();
+
+ return true;
+},
+
+
+/**
+ * Unselect selected row(s)
+ */
+clear_selection: function(id)
+{
+ var num_select = this.selection.length;
+
+ // one row
+ if (id)
+ {
+ for (var n=0; n<this.selection.length; n++)
+ if (this.selection[n] == id)
+ {
+ this.selection.splice(n,1);
+ break;
+ }
+ }
+ // all rows
+ else
+ {
+ for (var n=0; n<this.selection.length; n++)
+ if (this.rows[this.selection[n]])
+ {
+ this.set_classname(this.rows[this.selection[n]].obj, 'selected', false);
+ this.set_classname(this.rows[this.selection[n]].obj, 'unfocused', false);
+ }
+
+ this.selection = new Array();
+ }
+
+ if (num_select && !this.selection.length)
+ this.trigger_event('select');
+},
+
+
+/**
+ * Getter for the selection array
+ */
+get_selection: function()
+{
+ return this.selection;
+},
+
+
+/**
+ * Return the ID if only one row is selected
+ */
+get_single_selection: function()
+{
+ if (this.selection.length == 1)
+ return this.selection[0];
+ else
+ return null;
+},
+
+
+/**
+ * Highlight/unhighlight a row
+ */
+highlight_row: function(id, multiple)
+{
+ if (this.rows[id] && !multiple)
+ {
+ if (this.selection.length > 1 || !this.in_selection(id))
+ {
+ this.clear_selection();
+ this.selection[0] = id;
+ this.set_classname(this.rows[id].obj, 'selected', true);
+ }
+ }
+ else if (this.rows[id])
+ {
+ if (!this.in_selection(id)) // select row
+ {
+ this.selection[this.selection.length] = id;
+ this.set_classname(this.rows[id].obj, 'selected', true);
+ }
+ else // unselect row
+ {
+ var p = find_in_array(id, this.selection);
+ var a_pre = this.selection.slice(0, p);
+ var a_post = this.selection.slice(p+1, this.selection.length);
+ this.selection = a_pre.concat(a_post);
+ this.set_classname(this.rows[id].obj, 'selected', false);
+ this.set_classname(this.rows[id].obj, 'unfocused', false);
+ }
+ }
+},
+
+
+/**
+ * Handler for keyboard events
+ */
+key_press: function(e)
+{
+ if (this.focused != true)
+ return true;
+
+ var keyCode = rcube_event.get_keycode(e);
+ var mod_key = rcube_event.get_modifier(e);
+ switch (keyCode)
+ {
+ case 40:
+ case 38:
+ case 63233: // "down", in safari keypress
+ case 63232: // "up", in safari keypress
+ // Stop propagation so that the browser doesn't scroll
+ rcube_event.cancel(e);
+ return this.use_arrow_key(keyCode, mod_key);
+ default:
+ this.shiftkey = e.shiftKey;
+ this.key_pressed = keyCode;
+ this.trigger_event('keypress');
+
+ if (this.key_pressed == this.BACKSPACE_KEY)
+ return rcube_event.cancel(e);
+ }
+
+ return true;
+},
+
+/**
+ * Handler for keydown events
+ */
+key_down: function(e)
+{
+ switch (rcube_event.get_keycode(e))
+ {
+ case 40:
+ case 38:
+ case 63233:
+ case 63232:
+ if (!rcube_event.get_modifier(e) && this.focused)
+ return rcube_event.cancel(e);
+
+ default:
+ }
+
+ return true;
+},
+
+
+/**
+ * Special handling method for arrow keys
+ */
+use_arrow_key: function(keyCode, mod_key)
+{
+ var new_row;
+ // Safari uses the nonstandard keycodes 63232/63233 for up/down, if we're
+ // using the keypress event (but not the keydown or keyup event).
+ if (keyCode == 40 || keyCode == 63233) // down arrow key pressed
+ new_row = this.get_next_row();
+ else if (keyCode == 38 || keyCode == 63232) // up arrow key pressed
+ new_row = this.get_prev_row();
+
+ if (new_row)
+ {
+ this.select_row(new_row.uid, mod_key, true);
+ this.scrollto(new_row.uid);
+ }
+
+ return false;
+},
+
+
+/**
+ * Try to scroll the list to make the specified row visible
+ */
+scrollto: function(id)
+{
+ var row = this.rows[id].obj;
+ if (row && this.frame)
+ {
+ var scroll_to = Number(row.offsetTop);
+
+ if (scroll_to < Number(this.frame.scrollTop))
+ this.frame.scrollTop = scroll_to;
+ else if (scroll_to + Number(row.offsetHeight) > Number(this.frame.scrollTop) + Number(this.frame.offsetHeight))
+ this.frame.scrollTop = (scroll_to + Number(row.offsetHeight)) - Number(this.frame.offsetHeight);
+ }
+},
+
+
+/**
+ * Handler for mouse move events
+ */
+drag_mouse_move: function(e)
+{
+ if (this.drag_start)
+ {
+ // check mouse movement, of less than 3 pixels, don't start dragging
+ var m = rcube_event.get_mouse_pos(e);
+
+ if (!this.drag_mouse_start || (Math.abs(m.x - this.drag_mouse_start.x) < 3 && Math.abs(m.y - this.drag_mouse_start.y) < 3))
+ return false;
+
+ if (!this.draglayer)
+ this.draglayer = new rcube_layer('rcmdraglayer', {x:0, y:0, vis:0, zindex:2000});
+
+ // get subjects of selectedd messages
+ var names = '';
+ var c, i, node, subject, obj;
+ for(var n=0; n<this.selection.length; n++)
+ {
+ if (n>12) // only show 12 lines
+ {
+ names += '...';
+ break;
+ }
+
+ if (this.rows[this.selection[n]].obj)
+ {
+ obj = this.rows[this.selection[n]].obj;
+ subject = '';
+
+ for(c=0, i=0; i<obj.childNodes.length; i++)
+ {
+ if (obj.childNodes[i].nodeName == 'TD')
+ {
+ if (((node = obj.childNodes[i].firstChild) && (node.nodeType==3 || node.nodeName=='A')) &&
+ (this.subject_col < 0 || (this.subject_col >= 0 && this.subject_col == c)))
+ {
+ subject = node.nodeType==3 ? node.data : node.innerHTML;
+ names += (subject.length > 50 ? subject.substring(0, 50)+'...' : subject) + '<br />';
+ break;
+ }
+ c++;
+ }
+ }
+ }
+ }
+
+ this.draglayer.write(names);
+ this.draglayer.show(1);
+
+ this.drag_active = true;
+ this.trigger_event('dragstart');
+ }
+
+ if (this.drag_active && this.draglayer)
+ {
+ var pos = rcube_event.get_mouse_pos(e);
+ this.draglayer.move(pos.x+20, pos.y-5);
+ this.trigger_event('dragmove', e);
+ }
+
+ this.drag_start = false;
+
+ return false;
+},
+
+
+/**
+ * Handler for mouse up events
+ */
+drag_mouse_up: function(e)
+{
+ document.onmousemove = null;
+
+ if (this.draglayer && this.draglayer.visible)
+ this.draglayer.show(0);
+
+ this.drag_active = false;
+ this.trigger_event('dragend');
+
+ rcube_event.remove_listener({element:document, event:'mousemove', object:this, method:'drag_mouse_move'});
+ rcube_event.remove_listener({element:document, event:'mouseup', object:this, method:'drag_mouse_up'});
+
+ var iframes = document.getElementsByTagName('IFRAME');
+ for (var n in iframes) {
+ var iframedoc;
+
+ if (iframes[n].contentDocument)
+ iframedoc = iframes[n].contentDocument;
+ else if (iframes[n].contentWindow)
+ iframedoc = iframes[n].contentWindow.document;
+ else if (iframes[n].document)
+ iframedoc = iframes[n].document;
+
+ if (iframedoc) {
+ if (this.iframe_events[n]) {
+ if (iframedoc.removeEventListener)
+ iframedoc.removeEventListener('mousemove', this.iframe_events[n], false);
+ else if (iframedoc.detachEvent)
+ iframedoc.detachEvent('onmousemove', this.iframe_events[n]);
+ else
+ iframedoc['onmousemove'] = null;
+ }
+ rcube_event.remove_listener({element:iframedoc, event:'mouseup', object:this, method:'drag_mouse_up'});
+ }
+ }
+
+ this.focus();
+
+ return rcube_event.cancel(e);
+},
+
+
+
+/**
+ * set/unset a specific class name
+ */
+set_classname: function(obj, classname, set)
+{
+ var reg = new RegExp('\s*'+classname, 'i');
+ if (!set && obj.className.match(reg))
+ obj.className = obj.className.replace(reg, '');
+ else if (set && !obj.className.match(reg))
+ obj.className += ' '+classname;
+},
+
+
+/**
+ * Setter for object event handlers
+ *
+ * @param {String} Event name
+ * @param {Function} Handler function
+ * @return Listener ID (used to remove this handler later on)
+ */
+addEventListener: function(evt, handler)
+{
+ if (this.events[evt]) {
+ var handle = this.events[evt].length;
+ this.events[evt][handle] = handler;
+ return handle;
+ }
+ else
+ return false;
+},
+
+
+/**
+ * Removes a specific event listener
+ *
+ * @param {String} Event name
+ * @param {Int} Listener ID to remove
+ */
+removeEventListener: function(evt, handle)
+{
+ if (this.events[evt] && this.events[evt][handle])
+ this.events[evt][handle] = null;
+},
+
+
+/**
+ * This will execute all registered event handlers
+ * @private
+ */
+trigger_event: function(evt, p)
+{
+ if (this.events[evt] && this.events[evt].length) {
+ for (var i=0; i<this.events[evt].length; i++)
+ if (typeof(this.events[evt][i]) == 'function')
+ this.events[evt][i](this, p);
+ }
+}
+
+
+};
+
--- /dev/null
+tinyMCE.addI18n({ar:{\r
+common:{\r
+edit_confirm:"\u0647\u0644 \u062A\u0631\u064A\u062F \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0627\u0644\u0645\u062D\u0631\u0631 \u0644\u0645\u0631\u0628\u0639 \u0627\u0644\u0646\u0635 \u0647\u0630\u0627?",\r
+apply:"\u062A\u0637\u0628\u064A\u0642",\r
+insert:"\u0627\u062F\u0631\u0627\u062C",\r
+update:"\u062A\u062D\u062F\u064A\u062B",\r
+cancel:"\u0627\u0644\u063A\u0627\u0621 \u0627\u0644\u0623\u0645\u0631",\r
+close:"\u0627\u063A\u0644\u0627\u0642",\r
+browse:"\u0627\u0633\u062A\u0639\u0631\u0627\u0636",\r
+class_name:"\u0643\u0644\u0627\u0633",\r
+not_set:"-- \u0628\u062F\u0648\u0646 \u062A\u062D\u062F\u064A\u062F --",\r
+clipboard_msg:"\u0646\u0633\u062E/\u0642\u0635/\u0644\u0635\u0642 \u063A\u064A\u0631 \u0645\u062A\u0648\u0641\u0631\u0629 \u0644\u0645\u062A\u0635\u0641\u062D Mozilla \u0648 Firefox.\n\u0647\u0644 \u062A\u0631\u064A\u062F \u0645\u0639\u0631\u0641\u0629 \u0627\u0644\u0645\u0632\u064A\u062F \u0645\u0646 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u062D\u0648\u0644 \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0636\u0648\u0639?",\r
+clipboard_no_support:"\u062D\u0627\u0644\u064A\u0627 \u063A\u064A\u0631 \u0645\u062F\u0639\u0645\u0648\u0645 \u0645\u0646 \u0642\u0628\u0644 \u0645\u062A\u0635\u0641\u062D\u0643, \u0627\u0633\u062A\u062E\u062F\u0645 \u0627\u062E\u062A\u0635\u0627\u0631\u0627\u062A \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0641\u0627\u062A\u064A\u062D \u0628\u062F\u0644\u0627 \u0645\u0646 \u0630\u0644\u0643.",\r
+popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.",\r
+invalid_data:"\u062E\u0637\u0623: \u0627\u0644\u0642\u064A\u0645\u0629 \u0627\u0644\u0645\u062F\u062E\u0644\u0629 \u062E\u0627\u0637\u0626\u0629, \u062A\u0645 \u062A\u062D\u062F\u064A\u062F\u0647\u0627 \u0628\u0627\u0644\u0644\u0648\u0646 \u0627\u0644\u0623\u062D\u0645\u0631.",\r
+more_colors:"\u0645\u0632\u064A\u062F \u0645\u0646 \u0627\u0644\u0623\u0644\u0648\u0627\u0646"\r
+},\r
+contextmenu:{\r
+align:"\u0645\u062D\u0627\u0630\u0627\u0629",\r
+left:"\u064A\u0633\u0627\u0631",\r
+center:"\u0648\u0633\u0637",\r
+right:"\u064A\u0645\u064A\u0646",\r
+full:"\u0636\u0628\u0637"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u0625\u062F\u0631\u0627\u062C \u0627\u0644\u062A\u0627\u0631\u064A\u062E",\r
+inserttime_desc:"\u0625\u062F\u0631\u0627\u062C \u0627\u0644\u0648\u0642\u062A",\r
+months_long:"\u064A\u0646\u0627\u064A\u0631,\u0641\u0628\u0631\u0627\u064A\u0631,\u0645\u0627\u0631\u0633,\u0627\u0628\u0631\u064A\u0644,\u0645\u0627\u064A\u0648,\u064A\u0648\u0646\u064A\u0648,\u064A\u0648\u0644\u064A\u0648,\u0627\u063A\u0633\u0637\u0633,\u0633\u0628\u062A\u0645\u0628\u0631,\u0627\u0643\u062A\u0648\u0628\u0631,\u0646\u0648\u0641\u0645\u0628\u0631,\u062F\u064A\u0633\u0645\u0628\u0631",\r
+months_short:"\u064A\u0646\u0627\u064A\u0631,\u0641\u0628\u0631\u0627\u064A\u0631,\u0645\u0627\u0631\u0633,\u0627\u0628\u0631\u064A\u0644,\u0645\u0627\u064A\u0648,\u064A\u0648\u0646\u064A\u0648,\u064A\u0648\u0644\u064A\u0648,\u0627\u063A\u0633\u0637\u0633,\u0633\u0628\u062A\u0645\u0628\u0631,\u0627\u0643\u062A\u0648\u0628\u0631,\u0646\u0648\u0641\u0645\u0628\u0631,\u062F\u064A\u0633\u0645\u0628\u0631",\r
+day_long:"\u0627\u0644\u0623\u062D\u062F,\u0627\u0644\u0625\u062B\u0646\u064A\u0646,\u0627\u0644\u062B\u0644\u0627\u062B\u0627\u0621,\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621,\u0627\u0644\u062E\u0645\u064A\u0633,\u0627\u0644\u062C\u0645\u0639\u0629,\u0627\u0644\u0633\u0628\u062A,\u0627\u0644\u0623\u062D\u062F",\r
+day_short:"\u0627\u0644\u0623\u062D\u062F,\u0627\u0644\u0625\u062B\u0646\u064A\u0646,\u0627\u0644\u062B\u0644\u0627\u062B\u0627\u0621,\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621,\u0627\u0644\u062E\u0645\u064A\u0633,\u0627\u0644\u062C\u0645\u0639\u0629,\u0627\u0644\u0633\u0628\u062A,\u0627\u0644\u0623\u062D\u062F"\r
+},\r
+print:{\r
+print_desc:"\u0637\u0628\u0627\u0639\u0629"\r
+},\r
+preview:{\r
+preview_desc:"\u0645\u0639\u0627\u064A\u0646\u0629"\r
+},\r
+directionality:{\r
+ltr_desc:"\u0645\u0646 \u0627\u0644\u064A\u0633\u0627\u0631 \u0627\u0644\u0649 \u0627\u0644\u064A\u0645\u064A\u0646",\r
+rtl_desc:"\u0645\u0646 \u0627\u0644\u064A\u0645\u064A\u0646 \u0627\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u0625\u062F\u0631\u0627\u062C \u0637\u0628\u0642\u0629 \u062C\u062F\u064A\u062F\u0629",\r
+forward_desc:"\u062A\u062D\u0631\u064A\u0643 \u0644\u0644\u0645\u0642\u062F\u0645\u0629",\r
+backward_desc:"\u062A\u062D\u0631\u064A\u0643 \u0644\u0644\u0645\u0624\u062E\u0631\u0629",\r
+absolute_desc:"Toggle absolute positioning",\r
+content:"\u0637\u0628\u0642\u0629 \u062C\u062F\u064A\u062F\u0629..."\r
+},\r
+save:{\r
+save_desc:"\u062D\u0641\u0638",\r
+cancel_desc:"\u0627\u0644\u063A\u0627\u0621 \u062C\u0645\u064A\u0639 \u0627\u0644\u062A\u0639\u062F\u064A\u0644\u0627\u062A"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u0625\u062F\u0631\u0627\u062C non-breaking space character"\r
+},\r
+iespell:{\r
+iespell_desc:"Run spell checking",\r
+download:"ieSpell not detected. Do you want to install it now?"\r
+},\r
+advhr:{\r
+advhr_desc:"\u062E\u0637 \u0627\u0641\u0642\u064A"\r
+},\r
+emotions:{\r
+emotions_desc:"\u0627\u0644\u0625\u0628\u062A\u0633\u0627\u0645\u0627\u062A"\r
+},\r
+searchreplace:{\r
+search_desc:"\u0628\u062D\u062B",\r
+replace_desc:"\u0628\u062D\u062B/\u0627\u0633\u062A\u0628\u062F\u0627\u0644"\r
+},\r
+advimage:{\r
+image_desc:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0635\u0648\u0631\u0629"\r
+},\r
+advlink:{\r
+link_desc:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0631\u0627\u0628\u0637"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"Abbreviation",\r
+acronym_desc:"Acronym",\r
+del_desc:"Deletion",\r
+ins_desc:"\u0625\u062F\u0631\u0627\u062Cion",\r
+attribs_desc:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 Attributes"\r
+},\r
+style:{\r
+desc:"Edit CSS Style"\r
+},\r
+paste:{\r
+paste_text_desc:"\u0644\u0635\u0642 \u0643\u0646\u0635 \u0639\u0627\u062F\u064A",\r
+paste_word_desc:"\u0644\u0635\u0642 \u0645\u0646 \u0645\u0633\u062A\u0646\u062F \u0648\u0648\u0631\u062F",\r
+selectall_desc:"\u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644"\r
+},\r
+paste_dlg:{\r
+text_title:"\u0627\u0633\u062A\u062E\u062F\u0645 CTRL+V \u0641\u064A \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0641\u0627\u062A\u064A\u062D \u0644\u0644\u0635\u0642 \u0627\u0644\u0646\u0635\u0641 \u0641\u064A \u0627\u0644\u0646\u0627\u0641\u0630\u0629.",\r
+text_linebreaks:"\u0627\u0628\u0642\u064A \u0641\u0648\u0627\u0635\u0644 \u0627\u0644\u0623\u0633\u0637\u0631",\r
+word_title:"\u0633\u062A\u062E\u062F\u0645 CTRL+V \u0641\u064A \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0641\u0627\u062A\u064A\u062D \u0644\u0644\u0635\u0642 \u0627\u0644\u0646\u0635\u0641 \u0641\u064A \u0627\u0644\u0646\u0627\u0641\u0630\u0629."\r
+},\r
+table:{\r
+desc:"\u0625\u062F\u0631\u0627\u062C \u062C\u062F\u0648\u0644 \u062C\u062F\u064A\u062F",\r
+row_before_desc:"\u0627\u062F\u0631\u0627\u062C \u0635\u0641 \u0642\u0628\u0644",\r
+row_after_desc:"\u0627\u062F\u0631\u0627\u062C \u0635\u0641 \u0628\u0639\u062F",\r
+delete_row_desc:"\u062D\u0630\u0641 \u0635\u0641",\r
+col_before_desc:"\u0625\u062F\u0631\u0627\u062C \u0639\u0645\u0648\u062F \u0642\u0628\u0644",\r
+col_after_desc:"\u0625\u062F\u0631\u0627\u062C \u0639\u0645\u0648\u062F \u0628\u0639\u062F",\r
+delete_col_desc:"\u062D\u0630\u0641 \u0639\u0645\u0648\u062F",\r
+split_cells_desc:"\u062A\u0642\u0633\u064A\u0645 \u0627\u0644\u062E\u0644\u0627\u064A\u0627 \u0627\u0644\u0645\u062F\u0645\u0648\u062C\u0629",\r
+merge_cells_desc:"\u062F\u0645\u062C \u062E\u0644\u0627\u064A\u0627 \u0627\u0644\u062C\u062F\u0648\u0644",\r
+row_desc:"\u062E\u0635\u0627\u0626\u0635 \u0635\u0641 \u0627\u0644\u062C\u062F\u0648\u0644",\r
+cell_desc:"\u062E\u0635\u0627\u0626\u0635 \u062E\u0644\u064A\u0629 \u0627\u0644\u062C\u062F\u0648\u0644",\r
+props_desc:"\u062E\u0635\u0627\u0626\u0635 \u0627\u0644\u062C\u062F\u0648\u0644",\r
+paste_row_before_desc:"\u0644\u0635\u0642 table row before",\r
+paste_row_after_desc:"\u0644\u0635\u0642 table row after",\r
+cut_row_desc:"\u0642\u0635 \u0635\u0641",\r
+copy_row_desc:"\u0646\u0633\u062E \u0635\u0641",\r
+del:"\u062D\u0630\u0641 \u062C\u062F\u0648\u0644",\r
+row:"\u0635\u0641",\r
+col:"\u0639\u0645\u0648\u062F",\r
+cell:"\u062E\u0644\u064A\u0629"\r
+},\r
+autosave:{\r
+unload_msg:"The changes you made will be lost if you navigate away from this page."\r
+},\r
+fullscreen:{\r
+desc:"Toggle fullscreen mode"\r
+},\r
+media:{\r
+desc:"\u0625\u062F\u0631\u0627\u062C / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"\u062E\u0635\u0627\u0626\u0635 \u0627\u0644\u0645\u0633\u062A\u0646\u062F"\r
+},\r
+template:{\r
+desc:"\u0625\u062F\u0631\u0627\u062C predefined template content"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters \u062A\u0634\u063A\u064A\u0644/\u0627\u064A\u0642\u0627\u0641."\r
+},\r
+spellchecker:{\r
+desc:"\u0627\u0644\u0645\u062F\u0642\u0642 \u0627\u0644\u0625\u0645\u0644\u0627\u0626\u064A",\r
+menu:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0645\u062F\u0642\u0642 \u0627\u0644\u0625\u0645\u0644\u0627\u0626\u064A",\r
+ignore_word:"\u062A\u062C\u0627\u0647\u0644 \u0627\u0644\u0643\u0644\u0645\u0629",\r
+ignore_words:"\u062A\u062C\u0627\u0647\u0644 \u0627\u0644\u0643\u0644",\r
+langs:"\u0627\u0644\u0644\u063A\u0627\u062A",\r
+wait:"\u0627\u0644\u0631\u062C\u0627\u0621 \u0627\u0644\u0625\u0646\u062A\u0638\u0627\u0631...",\r
+sug:"\u0627\u0644\u0625\u0642\u062A\u0631\u0627\u062D\u0627\u062A",\r
+no_sug:"\u0644\u0627 \u064A\u0648\u062C\u062F \u0627\u0642\u062A\u0631\u0627\u062D\u0627\u062A",\r
+no_mpell:"\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0623\u062E\u0637\u0627\u0621 \u0625\u0645\u0644\u0627\u0626\u064A\u0629."\r
+},\r
+pagebreak:{\r
+desc:"\u0625\u062F\u0631\u0627\u062C \u0641\u0627\u0635\u0644 \u0627\u0644\u0635\u0641\u062D\u0627\u062A"\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({bg:{\r
+common:{\r
+edit_confirm:"\u0418\u0441\u043A\u0430\u0442\u0435 \u043B\u0438 \u0434\u0430 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0442\u0435 WYSIWYG \u0440\u0435\u0436\u0438\u043C \u0437\u0430 \u0442\u043E\u0432\u0430 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E \u043F\u043E\u043B\u0435?",\r
+apply:"\u041F\u043E\u044A\u0432\u044A\u0440\u0434\u0438",\r
+insert:"\u0412\u043C\u044A\u043A\u043D\u0438",\r
+update:"\u041E\u0431\u043D\u043E\u0432\u0438",\r
+cancel:"\u041E\u0442\u043A\u0430\u0436\u0438",\r
+close:"\u0417\u0430\u0442\u0432\u043E\u0440\u0438",\r
+browse:"Browse",\r
+class_name:"\u041A\u043B\u0430\u0441",\r
+not_set:"-- \u041D\u0435\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0435\u043D\u043E --",\r
+clipboard_msg:"\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435/\u041E\u0442\u0440\u044F\u0437\u0432\u0430\u043D\u0435/\u041F\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435 \u043D\u0435 \u0435 \u0434\u043E\u0441\u0442\u044A\u043F\u043D\u043E \u043F\u043E\u0434 Mozilla \u0438 Firefox.\n\u0416\u0435\u043B\u0430\u0435\u0442\u0435 \u043B\u0438 \u043F\u043E\u0432\u0435\u0447\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430?",\r
+clipboard_no_support:"\u041D\u0435 \u0441\u0435 \u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430 \u043E\u0442 \u0432\u0430\u0448\u0438\u044F\u0442 \u0431\u0440\u0430\u0443\u0437\u044A\u0440, \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0439\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043D\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u0438.",\r
+popup_blocked:"\u0421\u044A\u0436\u0430\u043B\u044F\u0432\u0430\u043C\u0435, \u043D\u043E \u0437\u0430\u0431\u0435\u043B\u044F\u0437\u0430\u0445\u043C\u0435, \u0447\u0435 \u0432\u0430\u0448\u0438\u044F\u0442 popup-blocker \u0435 \u0441\u043F\u0440\u044F\u043B \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446 \u043A\u043E\u0439\u0442\u043E \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u043E\u0442 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0430\u0442\u0430. \u0429\u0435 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0438\u0437\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u0431\u043B\u043E\u043A\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u043F\u043E\u043F\u044A\u043F\u0438 \u0437\u0430 \u0442\u043E\u0437\u0438 \u0441\u0430\u0439\u0442 \u0437\u0430 \u0434\u0430 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0442\u0435 \u043F\u044A\u043B\u043D\u0430\u0442\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u043D\u043E\u0441\u0442.",\r
+invalid_data:"\u0413\u0440\u0435\u0448\u043A\u0430: \u0412\u044A\u0432\u0435\u0434\u0435\u043D\u0438 \u0441\u0430 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u043D\u0438 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442\u0438, \u0442\u0435 \u0441\u0430 \u043C\u0430\u0440\u043A\u0438\u0440\u0430\u043D\u0438 \u0432 \u0447\u0435\u0440\u0432\u0435\u043D\u043E.",\r
+more_colors:"\u041E\u0449\u0435 \u0446\u0432\u0435\u0442\u043E\u0432\u0435"\r
+},\r
+contextmenu:{\r
+align:"\u041F\u043E\u0434\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435",\r
+left:"\u041B\u044F\u0432\u043E",\r
+center:"\u0426\u0435\u043D\u0442\u044A\u0440",\r
+right:"\u0414\u044F\u0441\u043D\u043E",\r
+full:"\u0414\u0432\u0443\u0441\u0442\u0440\u0430\u043D\u043D\u043E"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u0434\u0430\u0442\u0430",\r
+inserttime_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u0432\u0440\u0435\u043C\u0435",\r
+months_long:"\u042F\u043D\u0443\u0430\u0440\u0438,\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438,\u041C\u0430\u0440\u0442,\u0410\u043F\u0440\u0438\u043B,\u041C\u0430\u0439,\u042E\u043D\u0438,\u042E\u043B\u0438,\u0410\u0432\u0433\u0443\u0441\u0442,\u0421\u0435\u043F\u0442\u0435\u043C\u0432\u0440\u0438,\u041E\u043A\u0442\u043E\u043C\u0432\u0440\u0438,\u041D\u043E\u0435\u043C\u0432\u0440\u0438,\u0414\u0435\u043A\u0435\u043C\u0432\u0440\u0438",\r
+months_short:"\u042F\u043D\u0443,\u0424\u0435\u0432,\u041C\u0430\u0440,\u0410\u043F\u0440,\u041C\u0430\u0439,\u042E\u043D\u0438,\u042E\u043B\u0438,\u0410\u0432\u0433,\u0421\u0435\u043F,\u041E\u043A\u0442,\u041D\u043E\u0435,\u0414\u0435\u043A",\r
+day_long:"\u041D\u0435\u0434\u0435\u043B\u044F,\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u043D\u0438\u043A,\u0412\u0442\u043E\u0440\u043D\u0438\u043A,\u0421\u0440\u044F\u0434\u0430,\u0427\u0435\u0442\u0432\u044A\u0440\u0442\u044A\u043A,\u041F\u0435\u0442\u044A\u043A,\u0421\u044A\u0431\u043E\u0442\u0430,\u041D\u0435\u0434\u0435\u043B\u044F",\r
+day_short:"\u041D\u0434,\u041F\u043D,\u0412\u0442,\u0421\u0440,\u0427\u0442,\u041F\u0442,\u0421\u0431,\u041D\u0434"\r
+},\r
+print:{\r
+print_desc:"\u041E\u0442\u043F\u0435\u0447\u0430\u0442\u0430\u0439"\r
+},\r
+preview:{\r
+preview_desc:"\u041F\u0440\u0435\u0433\u043B\u0435\u0434"\r
+},\r
+directionality:{\r
+ltr_desc:"\u041F\u043E\u0441\u043E\u043A\u0430 \u043E\u0442\u043B\u044F\u0432\u043E \u043D\u0430 \u0434\u044F\u0441\u043D\u043E",\r
+rtl_desc:"\u041F\u043E\u0441\u043E\u043A\u0430 \u043E\u0442\u0434\u044F\u0441\u043D\u043E \u043D\u0430 \u043B\u044F\u0432\u043E"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u043D\u043E\u0432 \u0441\u043B\u043E\u0439",\r
+forward_desc:"\u041F\u043E\u043A\u0430\u0436\u0438 \u043E\u0442\u043F\u0440\u0435\u0434",\r
+backward_desc:"\u041F\u043E\u043A\u0430\u0436\u0438 \u043E\u0442\u0437\u0430\u0434",\r
+absolute_desc:"\u0412\u043A\u043B\u044E\u0447\u0438 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u043E \u043F\u043E\u0437\u0438\u0446\u0438\u043E\u043D\u0438\u0440\u0430\u043D\u0435",\r
+content:"\u041D\u043E\u0432 \u0441\u043B\u043E\u0439..."\r
+},\r
+save:{\r
+save_desc:"\u0417\u0430\u043F\u0438\u0448\u0438",\r
+cancel_desc:"\u041E\u0442\u043A\u0430\u0436\u0438 \u0432\u0441\u0438\u0447\u043A\u0438 \u043F\u0440\u043E\u043C\u0435\u043D\u0438"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u043D\u0435\u043F\u0440\u0435\u043A\u044A\u0441\u0432\u0430\u0435\u043C \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B"\r
+},\r
+iespell:{\r
+iespell_desc:"\u041F\u0440\u043E\u0432\u0435\u0440\u0438 \u043F\u0440\u0430\u0432\u043E\u043F\u0438\u0441\u0430",\r
+download:"ieSpell \u043D\u0435 \u0435 \u043E\u0442\u043A\u0440\u0438\u0442. \u0416\u0435\u043B\u0430\u0435\u0442\u0435 \u043B\u0438 \u0434\u0430 \u0433\u043E \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u0442\u0435 \u0441\u0435\u0433\u0430?"\r
+},\r
+advhr:{\r
+advhr_desc:"\u0425\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u043D\u0430 \u043B\u0438\u043D\u0438\u044F"\r
+},\r
+emotions:{\r
+emotions_desc:"\u0415\u043C\u043E\u0442\u0438\u043A\u043E\u043D\u0438"\r
+},\r
+searchreplace:{\r
+search_desc:"\u0422\u044A\u0440\u0441\u0438",\r
+replace_desc:"\u0422\u044A\u0440\u0441\u0438/\u0417\u0430\u043C\u0435\u0441\u0442\u0438"\r
+},\r
+advimage:{\r
+image_desc:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430"\r
+},\r
+advlink:{\r
+link_desc:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"\u0426\u0438\u0442\u0430\u0442",\r
+abbr_desc:"\u0421\u044A\u043A\u0440\u0430\u0449\u0435\u043D\u0438\u0435",\r
+acronym_desc:"\u0410\u043A\u0440\u043E\u043D\u0438\u043C",\r
+del_desc:"\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043D\u0435",\r
+ins_desc:"\u0412\u043C\u044A\u043A\u0432\u0430\u043D\u0435",\r
+attribs_desc:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438"\r
+},\r
+style:{\r
+desc:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 CSS \u0441\u0442\u0438\u043B"\r
+},\r
+paste:{\r
+paste_text_desc:"\u041F\u043E\u0441\u0442\u0430\u0432\u0438 \u043A\u0430\u0442\u043E \u0442\u0435\u043A\u0441\u0442",\r
+paste_word_desc:"\u041F\u043E\u0441\u0442\u0430\u0432\u0438 \u043E\u0442 Word",\r
+selectall_desc:"\u0418\u0437\u0431\u0435\u0440\u0438 \u0432\u0441\u0438\u0447\u043A\u0438"\r
+},\r
+paste_dlg:{\r
+text_title:"\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0439\u0442\u0435 CTRL+V \u043D\u0430 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430\u0442\u0430 \u0437\u0430 \u0434\u0430 \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446\u0430.",\r
+text_linebreaks:"\u0417\u0430\u043F\u0430\u0437\u0438 \u043D\u043E\u0432\u0438\u0442\u0435 \u0440\u0435\u0434\u043E\u0432\u0435",\r
+word_title:"\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0439\u0442\u0435 CTRL+V \u043D\u0430 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430\u0442\u0430 \u0437\u0430 \u0434\u0430 \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u0435 \u0442\u0435\u043A\u0441\u0442\u0430 \u0432 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446\u0430."\r
+},\r
+table:{\r
+desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u043D\u043E\u0432\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0430",\r
+row_before_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u0440\u0435\u0434 \u043F\u0440\u0435\u0434\u0438",\r
+row_after_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u0440\u0435\u0434 \u0441\u043B\u0435\u0434",\r
+delete_row_desc:"\u0418\u0437\u0442\u0440\u0438\u0439 \u0440\u0435\u0434",\r
+col_before_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u043A\u043E\u043B\u043E\u043D\u0430 \u043F\u0440\u0435\u0434\u0438",\r
+col_after_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u043A\u043E\u043B\u043E\u043D\u0430 \u0441\u043B\u0435\u0434",\r
+delete_col_desc:"\u0418\u0437\u0442\u0440\u0438\u0439 \u043A\u043E\u043B\u043E\u043D\u0430",\r
+split_cells_desc:"\u0420\u0430\u0437\u0434\u0435\u043B\u0438 \u0441\u043B\u0435\u0442\u0438 \u043A\u043B\u0435\u0442\u043A\u0438",\r
+merge_cells_desc:"\u0421\u043B\u0435\u0439 \u043A\u043B\u0435\u0442\u043A\u0438",\r
+row_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043D\u0430 \u0440\u0435\u0434\u0430",\r
+cell_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043D\u0430 \u043A\u043B\u0435\u0442\u043A\u0430\u0442\u0430",\r
+props_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043D\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0442\u0430",\r
+paste_row_before_desc:"\u041F\u043E\u0441\u0442\u0430\u0432\u0438 \u0440\u0435\u0434 \u043F\u0440\u0435\u0434\u0438",\r
+paste_row_after_desc:"\u041F\u043E\u0441\u0442\u0430\u0432\u0438 \u0440\u0435\u0434 \u0441\u043B\u0435\u0434",\r
+cut_row_desc:"\u041E\u0442\u0440\u0435\u0436\u0438 \u0440\u0435\u0434",\r
+copy_row_desc:"\u041A\u043E\u043F\u0438\u0440\u0430\u0439 \u0440\u0435\u0434",\r
+del:"\u0418\u0437\u0442\u0440\u0438\u0439 \u0442\u0430\u0431\u043B\u0438\u0446\u0430",\r
+row:"\u0420\u0435\u0434",\r
+col:"\u041A\u043E\u043B\u043E\u043D\u0430",\r
+cell:"\u041A\u043B\u0435\u0442\u043A\u0430"\r
+},\r
+autosave:{\r
+unload_msg:"\u041F\u0440\u043E\u043C\u0435\u043D\u0438\u0442\u0435 \u043A\u043E\u0438\u0442\u043E \u043D\u0430\u043F\u0440\u0430\u0432\u0438\u0445\u0442\u0435 \u0449\u0435 \u0441\u0435 \u0437\u0430\u0433\u0443\u0431\u044F\u0442 \u0430\u043A\u043E \u043E\u0442\u0438\u0434\u0435\u0442\u0435 \u043D\u0430 \u0434\u0440\u0443\u0433\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430."\r
+},\r
+fullscreen:{\r
+desc:"\u0412\u043A\u043B./\u0418\u0437\u043A\u043B. \u0446\u044F\u043B \u0435\u043A\u0440\u0430\u043D"\r
+},\r
+media:{\r
+desc:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u043C\u0435\u0434\u0438\u0430\u0442\u0430",\r
+edit:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u043A \u043C\u0435\u0434\u0438\u0430"\r
+},\r
+fullpage:{\r
+desc:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u0430 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430"\r
+},\r
+template:{\r
+desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435\u0442\u043E \u043D\u0430 \u0442\u0435\u043C\u043F\u043B\u0435\u0439\u0442"\r
+},\r
+visualchars:{\r
+desc:"\u0412\u043A\u043B./\u0418\u0437\u043A\u043B. \u043D\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043D\u0438\u0442\u0435 \u0441\u0438\u043C\u0432\u043E\u043B\u0438."\r
+},\r
+spellchecker:{\r
+desc:"\u0412\u043A\u043B./\u0418\u0437\u043A\u043B. \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043D\u0430 \u043F\u0440\u0430\u0432\u043E\u043F\u0438\u0441\u0430",\r
+menu:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430\u0442\u0430 \u043D\u0430 \u043F\u0440\u0430\u0432\u043E\u043F\u0438\u0441",\r
+ignore_word:"\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u0430\u0439 \u0434\u0443\u043C\u0430",\r
+ignore_words:"\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u0430\u0439 \u0432\u0441\u0438\u0447\u043A\u0438",\r
+langs:"\u0415\u0437\u0438\u0446\u0438",\r
+wait:"\u041C\u043E\u043B\u044F \u0438\u0437\u0447\u0430\u043A\u0430\u0439\u0442\u0435...",\r
+sug:"\u041F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F",\r
+no_sug:"\u041D\u044F\u043C\u0430 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F",\r
+no_mpell:"\u041D\u044F\u043C\u0430 \u0433\u0440\u0435\u0448\u043D\u043E \u043D\u0430\u043F\u0438\u0441\u0430\u043D\u0438 \u0434\u0443\u043C\u0438."\r
+},\r
+pagebreak:{\r
+desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u043D\u043E\u0432\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({bs:{\r
+common:{\r
+edit_confirm:"\u017Delite li koristiti WYSIWYG na\u010Din rada za ovo tekstualno polje?",\r
+apply:"Primjeni",\r
+insert:"Umetni",\r
+update:"Obnovi",\r
+cancel:"Odustani",\r
+close:"Zatvori",\r
+browse:"Pregled",\r
+class_name:"Klasa",\r
+not_set:"-- Nije postavljeno --",\r
+clipboard_msg:"Kopiraj/Izre\u017Ei/Zalijepi nije dostupno Mozilla i Firefox preglednicima.\nVi\u0161e informacija?",\r
+clipboard_no_support:"Trenuta\u010Dno va\u0161 preglednik ne podr\u017Eava ovu opciju, poku\u0161ajte koristiti tipkovni\u010Dku kraticu.",\r
+popup_blocked:"Oprostite, izgleda da je va\u0161 popup-blocker onemogu\u0107io prozor u sklopu ovog programa. Morate onemogu\u0107iti blokiranje popup prozora da bi u potpunosti iskoristili ovaj alat.",\r
+invalid_data:"Gre\u0161ka: Une\u0161ene su nevaljane vrijednosti, ozna\u010Dene su crvenom bojom.",\r
+more_colors:"Vi\u0161e boja"\r
+},\r
+contextmenu:{\r
+align:"Poravnavanje",\r
+left:"Lijevo",\r
+center:"Sredina",\r
+right:"Desno",\r
+full:"Puno"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d.%m.%Y.",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Umetni datum",\r
+inserttime_desc:"Umetni vrijeme",\r
+months_long:"sije\u010Danj,velja\u010Da,o\u017Eujak,travanj,svibanj,lipanj,srpanj,kolovoz,rujan,listopad,studeni,prosinac",\r
+months_short:"sij,velj,o\u017Eu,tra,svi,lip,srp,kol,ruj,lis,stu,pro",\r
+day_long:"nedjelja,ponedjeljak,utorak,srijeda,\u010Detvrtak,petak,subota,nedjelja",\r
+day_short:"ned,pon,uto,sri,\u010Det,pet,sub,ned"\r
+},\r
+print:{\r
+print_desc:"Ispis"\r
+},\r
+preview:{\r
+preview_desc:"Prikaz"\r
+},\r
+directionality:{\r
+ltr_desc:"S lijeva na desno",\r
+rtl_desc:"S desna na lijevo"\r
+},\r
+layer:{\r
+insertlayer_desc:"Umetni novi sloj",\r
+forward_desc:"Pomakni naprijed",\r
+backward_desc:"Pomakni natrag",\r
+absolute_desc:"Uklju\u010Di/isklju\u010Di apsolutno pozicioniranje",\r
+content:"Novi sloj..."\r
+},\r
+save:{\r
+save_desc:"Spremi",\r
+cancel_desc:"Odustani od svih promjena"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Umetni razmak"\r
+},\r
+iespell:{\r
+iespell_desc:"Pokreni provjeru pravopisa",\r
+download:"Provjera pravopisa nije postaljena. Postaviti sada?"\r
+},\r
+advhr:{\r
+advhr_desc:"Vodoravna crta"\r
+},\r
+emotions:{\r
+emotions_desc:"Emocije"\r
+},\r
+searchreplace:{\r
+search_desc:"Prona\u0111i",\r
+replace_desc:"Prona\u0111i/Zamijeni"\r
+},\r
+advimage:{\r
+image_desc:"Umetni/uredi sliku"\r
+},\r
+advlink:{\r
+link_desc:"Insert/edit link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citat",\r
+abbr_desc:"Kratica",\r
+acronym_desc:"Akronim",\r
+del_desc:"Brisanje",\r
+ins_desc:"Unos",\r
+attribs_desc:"Umetni/uredi atribute"\r
+},\r
+style:{\r
+desc:"Uredi CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Zalijepi kao obi\u010Dni tekst",\r
+paste_word_desc:"Zalijepi iz Worda",\r
+selectall_desc:"Odaberi sve"\r
+},\r
+paste_dlg:{\r
+text_title:"Koristite CTRL+V na tipkovnici da zalijepite tekst u prozor.",\r
+text_linebreaks:"Zadr\u017Ei prijelome",\r
+word_title:"Koristite CTRL+V na tipkovnici da zalijepite tekst u prozor."\r
+},\r
+table:{\r
+desc:"Nova tablica",\r
+row_before_desc:"Umetni redak iznad",\r
+row_after_desc:"Umetni redak ispod",\r
+delete_row_desc:"Izbri\u0161i redak",\r
+col_before_desc:"Umetni stupac lijevo",\r
+col_after_desc:"Umetni stupac desno",\r
+delete_col_desc:"Ukloni stupac",\r
+split_cells_desc:"Razdvoji spojene \u0107elije",\r
+merge_cells_desc:"Spoji \u0107elije",\r
+row_desc:"Svojstva retka",\r
+cell_desc:"Svojstva \u0107elije",\r
+props_desc:"Svojstva tablice",\r
+paste_row_before_desc:"Zalijepi redak iznad",\r
+paste_row_after_desc:"Zalijepi redak ispod",\r
+cut_row_desc:"Izre\u017Ei redak",\r
+copy_row_desc:"Kopiraj redak",\r
+del:"Izbri\u0161i tablicu",\r
+row:"Redak",\r
+col:"Stupac",\r
+cell:"\u0106elija"\r
+},\r
+autosave:{\r
+unload_msg:"Promjene u dokumentu \u0107e biti izgubljene ako iza\u0111ete s ove stranice."\r
+},\r
+fullscreen:{\r
+desc:"Uklju\u010Di/isklju\u010Di prikaz preko cijelog ekrana"\r
+},\r
+media:{\r
+desc:"Insert / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"Svojstva dokumenta"\r
+},\r
+template:{\r
+desc:"Umetni sadr\u017Eaj iz predlo\u017Eak"\r
+},\r
+visualchars:{\r
+desc:"Vizualni kontrolni znakovi uklju\u010Deni/isklju\u010Deni."\r
+},\r
+spellchecker:{\r
+desc:"Uklju\u010Di/isklju\u010Di provjeru pravopisa",\r
+menu:"Postavke provjere pravopisa",\r
+ignore_word:"Zanemari rije\u010D",\r
+ignore_words:"Zanemari sver",\r
+langs:"Jezici",\r
+wait:"Pri\u010Dekajte...",\r
+sug:"Prijedlozi",\r
+no_sug:"Nema prijedloga",\r
+no_mpell:"Nije prona\u0111ena nijedna pravopisna gre\u0161ke."\r
+},\r
+pagebreak:{\r
+desc:"Umetni prijelom."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({ca:{\r
+common:{\r
+edit_confirm:"Vols utilitzar el mode visible (WYSIWYG) per a aquesta \u00E0rea de text?",\r
+apply:"Aplica",\r
+insert:"Insereix",\r
+update:"Actualitza",\r
+cancel:"Cancel\u00B7la",\r
+close:"Tanca",\r
+browse:"Explora",\r
+class_name:"Classe",\r
+not_set:"-- Sense establir --",\r
+clipboard_msg:"Copia/Retalla/Enganxa no est\u00E0 disponible en Mozilla/Firefox.\nVols m\u00E9s informaci\u00F3 sobre aquest tema?",\r
+clipboard_no_support:"Actualment no est\u00E0 suportat pel teu navegador, utilitza les dreceres de teclat en lloc seu.",\r
+popup_blocked:"Ho sentim, per\u00F2 ens hem adonat que el teu bloquejador de finestres emergents ha desactivat una finestra que proporciona funcionalitat a l'aplicaci\u00F3. Haur\u00E0s de desactivar el blocatge de finestres emergents en aquest lloc per tal d'utilitzar plenament aquesta eina.",\r
+invalid_data:"Error: Has introdu\u00EFt valors incorrectes, te'ls marquem en vermell.",\r
+more_colors:"M\u00E9s colors"\r
+},\r
+contextmenu:{\r
+align:"Alineaci\u00F3",\r
+left:"Esquerra",\r
+center:"Centrat",\r
+right:"Dreta",\r
+full:"Justificat"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d-%m-%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Insereix la data",\r
+inserttime_desc:"Insereix l'hora",\r
+months_long:"Gener,Febrer,Mar\u00E7,Abril,Maig,Juny,Juliol,Agost,Setembre,Octubre,Novembre,Desembre",\r
+months_short:"Gen,Feb,Mar,Abr,Mai,Jun,Jul,Ago,Set,Oct,Nov,Des",\r
+day_long:"Diumenge,Dilluns,Dimarts,Dimecres,Dijous,Divendres,Dissabte,Diumenge",\r
+day_short:"Dmg,Dll,Dmt,Dmc,Djs,Dvs,Dss,Dmg"\r
+},\r
+print:{\r
+print_desc:"Imprimeix"\r
+},\r
+preview:{\r
+preview_desc:"Vista pr\u00E8via"\r
+},\r
+directionality:{\r
+ltr_desc:"Direcci\u00F3 d'esquerra a dreta",\r
+rtl_desc:"Direcci\u00F3 de dreta a esquerra"\r
+},\r
+layer:{\r
+insertlayer_desc:"Insereix capa nova",\r
+forward_desc:"Despla\u00E7a endavant",\r
+backward_desc:"Despla\u00E7a endarrere",\r
+absolute_desc:"Canvia el posicionament absolut",\r
+content:"Nova capa..."\r
+},\r
+save:{\r
+save_desc:"Desa",\r
+cancel_desc:"Cancel\u00B7la tots els canvis"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Insereix espai no separable"\r
+},\r
+iespell:{\r
+iespell_desc:"Comprovaci\u00F3 ortogr\u00E0fica",\r
+download:"No s'ha detectat ieSpell. Vols instal\u00B7lar-lo ara?"\r
+},\r
+advhr:{\r
+advhr_desc:"Regle horitzontal"\r
+},\r
+emotions:{\r
+emotions_desc:"Emoticones"\r
+},\r
+searchreplace:{\r
+search_desc:"Busca",\r
+replace_desc:"Busca/Substitueix"\r
+},\r
+advimage:{\r
+image_desc:"Insereix/edita imatge"\r
+},\r
+advlink:{\r
+link_desc:"Insereix/edita enlla\u00E7"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citaci\u00F3",\r
+abbr_desc:"Abreujament",\r
+acronym_desc:"Acr\u00F2nim",\r
+del_desc:"Supressi\u00F3",\r
+ins_desc:"Inserci\u00F3",\r
+attribs_desc:"Insereix/Edita Atributs"\r
+},\r
+style:{\r
+desc:"Edita l'Estil CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Enganxa com a Text Planer",\r
+paste_word_desc:"Enganxa des de Word",\r
+selectall_desc:"Selecciona-ho Tot"\r
+},\r
+paste_dlg:{\r
+text_title:"Utilitza CTRL+V al teclat per enganxar el text a la finestra.",\r
+text_linebreaks:"Mantingues els salts de l\u00EDnia",\r
+word_title:"Utilitza CTRL+V al teclat per enganxar el text a la finestra."\r
+},\r
+table:{\r
+desc:"Insereix una nova taula",\r
+row_before_desc:"Insereix fila abans",\r
+row_after_desc:"Insereix fila despr\u00E9s",\r
+delete_row_desc:"Suprimeix fila",\r
+col_before_desc:"Insereix columna abans",\r
+col_after_desc:"Insereix columna despr\u00E9s",\r
+delete_col_desc:"Elimina columna",\r
+split_cells_desc:"Parteix les cel\u00B7les refoses de la taula",\r
+merge_cells_desc:"Refon les cel\u00B7les de la taula",\r
+row_desc:"Propietats de la fila de la taula",\r
+cell_desc:"Propietats de la cel\u00B7la de la taula",\r
+props_desc:"Propietats de la taula",\r
+paste_row_before_desc:"Enganxa la fila de la taula abans",\r
+paste_row_after_desc:"Enganxa la fila de la taula despr\u00E9s",\r
+cut_row_desc:"Retalla la fila de la taula",\r
+copy_row_desc:"Copia la fila de la taula",\r
+del:"Suprimeix la taula",\r
+row:"Fila",\r
+col:"Columna",\r
+cell:"Cel\u00B7la"\r
+},\r
+autosave:{\r
+unload_msg:"Els canvis que has fet es perdran si surts d'aquesta p\u00E0gina."\r
+},\r
+fullscreen:{\r
+desc:"Mode de pantalla completa"\r
+},\r
+media:{\r
+desc:"Insereix / edita mitj\u00E0 encastat",\r
+edit:"Edita mitj\u00E0 encastat"\r
+},\r
+fullpage:{\r
+desc:"Propietats del document"\r
+},\r
+template:{\r
+desc:"Insereix contingut predefinit de plantilla"\r
+},\r
+visualchars:{\r
+desc:"Car\u00E0cters de control visual des/activats."\r
+},\r
+spellchecker:{\r
+desc:"Des/activa el corrector ortogr\u00E0fic",\r
+menu:"Configuraci\u00F3 del corrector",\r
+ignore_word:"Ignora",\r
+ignore_words:"Ignora-les totes",\r
+langs:"Idiomes",\r
+wait:"Espera, si et plau...",\r
+sug:"Suggeriments",\r
+no_sug:"No hi ha cap suggeriment",\r
+no_mpell:"No s'ha trobat cap incorrecci\u00F3."\r
+},\r
+pagebreak:{\r
+desc:"Insereix salt de p\u00E0gina."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({cs:{\r
+common:{\r
+edit_confirm:"Chcete pou\u017E\u00EDt pro tento text WYSIWYG editaci?",\r
+apply:"Pou\u017E\u00EDt",\r
+insert:"Vlo\u017Eit",\r
+update:"Aktualizovat",\r
+cancel:"Zru\u0161it",\r
+close:"Zav\u0159\u00EDt",\r
+browse:"Proch\u00E1zet",\r
+class_name:"T\u0159\u00EDda",\r
+not_set:"- Nenastaveno -",\r
+clipboard_msg:"Funkce kop\u00EDrovat/vyjmout/vlo\u017Eit nejsou pou\u017Eiteln\u00E9 v Mozille a Firefoxu.\nChcete v\u00EDce informac\u00ED?",\r
+clipboard_no_support:"Tato funkce nen\u00ED va\u0161\u00EDm prohl\u00ED\u017Ee\u010Dem podporov\u00E1na. Pou\u017Eijte kl\u00E1vesov\u00E9 zkratky.",\r
+popup_blocked:"Blokov\u00E1n\u00ED vyskakovac\u00EDch oken neumo\u017Enilo otev\u0159\u00EDt okno, nutn\u00E9 pro funkci aplikace. Pro pln\u00E9 vyu\u017Eit\u00ED mo\u017Enost\u00ED vypn\u00C4\u009Bte blokov\u00E1n\u00ED vyskakovac\u00EDch oken pro tento web.",\r
+invalid_data:"Chyba: Vlo\u017Een\u00E1 chybn\u00E1 data jsou ozna\u010Dena \u010Derven\u011B.",\r
+more_colors:"V\u00EDce barev"\r
+},\r
+contextmenu:{\r
+align:"Zarovn\u00E1n\u00ED",\r
+left:"Doleva",\r
+center:"Na st\u0159ed",\r
+right:"Doprava",\r
+full:"Do bloku"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d.%m.%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Vlo\u017Eit datum",\r
+inserttime_desc:"Vlo\u017Eit \u010Das",\r
+months_long:"Leden,\u00DAnor,B\u0159ezen,Duben,Kv\u011Bten,\u010Cerven,\u010Cervenec,Srpen,Z\u00E1\u0159\u00ED,\u0158\u00EDjen,Listopad,Prosinec",\r
+months_short:"Led,\u00DAno,B\u0159e,Dub,Kv\u011B,\u010Cer,\u010Cvc,Srp,Z\u00E1\u0159,\u0158\u00EDj,Lis,Pro",\r
+day_long:"Ned\u011Ble,Pond\u011Bl\u00ED,\u00DAter\u00FD,St\u0159eda,\u010Ctvrtek,P\u00E1tek,Sobota,Ned\u011Ble",\r
+day_short:"Ne,Po,\u00DAt,St,\u010Ct,P\u00E1,So,Ne"\r
+},\r
+print:{\r
+print_desc:"Tisknout"\r
+},\r
+preview:{\r
+preview_desc:"N\u00E1hled"\r
+},\r
+directionality:{\r
+ltr_desc:"Sm\u011Br zleva doprava",\r
+rtl_desc:"Sm\u011Br zprava doleva"\r
+},\r
+layer:{\r
+insertlayer_desc:"Vlo\u017Eit novou vrstvu",\r
+forward_desc:"P\u0159esunout doP\u0159edu",\r
+backward_desc:"P\u0159esunout dozadu",\r
+absolute_desc:"P\u0159epnout absolutn\u00ED pozici",\r
+content:"Nov\u00E1 vrstva..."\r
+},\r
+save:{\r
+save_desc:"Ulo\u017Eit",\r
+cancel_desc:"Zru\u0161it v\u0161echny zm\u011Bny"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Vlo\u017Eit pevnou mezeru"\r
+},\r
+iespell:{\r
+iespell_desc:"Kontrolovat pravopis",\r
+download:"ieSpell nebyl detekov\u00E1n. Chcete ho nainstalovat?"\r
+},\r
+advhr:{\r
+advhr_desc:"Vodorovn\u00FD odd\u011Blova\u010D"\r
+},\r
+emotions:{\r
+emotions_desc:"Emotikony"\r
+},\r
+searchreplace:{\r
+search_desc:"Hledat",\r
+replace_desc:"Naj\u00EDt/nahradit"\r
+},\r
+advimage:{\r
+image_desc:"Vlo\u017Eit/upravit obr\u00E1zek"\r
+},\r
+advlink:{\r
+link_desc:"Vlo\u017Eit/upravit odkaz"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citace",\r
+abbr_desc:"Zkratka",\r
+acronym_desc:"Akronym",\r
+del_desc:"Vymaz\u00E1n\u00ED",\r
+ins_desc:"Vlo\u017Een\u00ED",\r
+attribs_desc:"Vlo\u017Eit/upravit atributy"\r
+},\r
+style:{\r
+desc:"Upravit CSS styl"\r
+},\r
+paste:{\r
+paste_text_desc:"Vlo\u017Eit prost\u00FD text",\r
+paste_word_desc:"Vlo\u017Eit z Wordu",\r
+selectall_desc:"Vybrat v\u0161e"\r
+},\r
+paste_dlg:{\r
+text_title:"Pou\u017Eijte CTRL+V pro vlo\u017Een\u00ED textu do okna.",\r
+text_linebreaks:"Zachovat \u0159\u00E1dkov\u00E1n\u00ED",\r
+word_title:"Pou\u017Eijte CTRL+V pro vlo\u017Een\u00ED textu do okna."\r
+},\r
+table:{\r
+desc:"Vlo\u017Eit novou tabulku",\r
+row_before_desc:"Vlo\u017Eit \u0159\u00E1dek P\u0159ed",\r
+row_after_desc:"Vlo\u017Eit \u0159\u00E1dek za",\r
+delete_row_desc:"Vymazat \u0159\u00E1dek",\r
+col_before_desc:"Vlo\u017Eit sloupec P\u0159ed",\r
+col_after_desc:"Vlo\u017Eit sloupec za",\r
+delete_col_desc:"Vymazat sloupec",\r
+split_cells_desc:"Rozd\u011Blit bu\u0148ky",\r
+merge_cells_desc:"Slou\u010Dit bu\u0148ky",\r
+row_desc:"Vlastnosti \u0159\u00E1dku",\r
+cell_desc:"Vlastnosti bu\u0148ky",\r
+props_desc:"Vlastnosti tabulky",\r
+paste_row_before_desc:"Vlo\u017Eit \u0159\u00E1dek P\u0159ed",\r
+paste_row_after_desc:"Vlo\u017Eit \u0159\u00E1dek za",\r
+cut_row_desc:"Vyjmout \u0159\u00E1dek",\r
+copy_row_desc:"Kop\u00EDrovat \u0159\u00E1dek",\r
+del:"Vymazat tabulku",\r
+row:"\u0158\u00E1dek",\r
+col:"Sloupec",\r
+cell:"Bu\u0148ka"\r
+},\r
+autosave:{\r
+unload_msg:"Proveden\u00E9 zm\u011Bny mohou b\u00FDt ztraceny, jestli\u017Ee opust\u00EDte tuto str\u00E1nku."\r
+},\r
+fullscreen:{\r
+desc:"P\u0159epnout na celostr\u00E1nkov\u00E9 zobrazen\u00ED"\r
+},\r
+media:{\r
+desc:"Vlo\u017Eit/editovat m\u00E9dia",\r
+edit:"Editovat m\u00E9dia"\r
+},\r
+fullpage:{\r
+desc:"Vlastnosti dokumentu"\r
+},\r
+template:{\r
+desc:"Vlo\u017Eit P\u0159eddefinovan\u00FD obsah ze \u0161ablony"\r
+},\r
+visualchars:{\r
+desc:"Zobrazen\u00ED skryt\u00FDch znak\u016F zap/vyp"\r
+},\r
+spellchecker:{\r
+desc:"Zapnout kontrolu textu",\r
+menu:"Nastaven\u00ED kontroly textu",\r
+ignore_word:"Ignorovat slovo",\r
+ignore_words:"Ignorovat v\u0161e",\r
+langs:"Jazyky",\r
+wait:"\u010Cekejte pros\u00EDm...",\r
+sug:"N\u00E1pov\u011Bda",\r
+no_sug:"\u0139\u02DD\u00E1dn\u00E1 n\u00E1pov\u011Bda",\r
+no_mpell:"Nebyly nalezeny \u017E\u00E1dn\u00E9 chyby."\r
+},\r
+pagebreak:{\r
+desc:"Vlo\u017Eit konec str\u00E1nky"\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({da:{\r
+common:{\r
+edit_confirm:"Vil du bruge den avancerede tekst redigering?",\r
+apply:"Anvend",\r
+insert:"Inds\u00E6t",\r
+update:"Opdater",\r
+cancel:"Annuller",\r
+close:"Luk",\r
+browse:"Gennemse",\r
+class_name:"Klasse",\r
+not_set:"-- Ikke sat --",\r
+clipboard_msg:"Kopier/Klip/inds\u00E6t er ikke muligt i Mozilla eller Firefox.\nVil du have mere information om dette emne?",\r
+clipboard_no_support:"P\u00E5 nuv\u00E6rende tidspunkt ikke supporteret af din browser. Anvend istedet genvejene p\u00E5 tastaturet.",\r
+popup_blocked:"Undskyld, men vi har noteret os at din popup-blocker har forhindret et vindue, der giver programmet funktionalitet, at \u00E5bne op. Hvis du vil have den fulde funktionalitet m\u00E5 du sl\u00E5 popup-blockeren fra for dette websted.",\r
+invalid_data:"Fejl: Forkerte v\u00E6rdier indtastet i felter markeret med r\u00F8d.",\r
+more_colors:"Flere farver"\r
+},\r
+contextmenu:{\r
+align:"Justering",\r
+left:"Venstre",\r
+center:"Centreret",\r
+right:"H\u00F8jre",\r
+full:"Lige marginer"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Inds\u00E6t dato",\r
+inserttime_desc:"Inds\u00E6t klokkeslet",\r
+months_long:"Januar,Februar,Marts,April,Maj,Juni,Juli,August,September,Oktober,November,December",\r
+months_short:"Jan,Feb,Mar,Apr,Maj,Jun,Jul,Aug,Sep,Okt,Nov,Dec",\r
+day_long:"S\u00F8ndag,Mandag,Tirsdag,Onsdag,Torsdag,Fredag,L\u00F8rdag,S\u00F8ndag",\r
+day_short:"S\u00F8n,Man,Tir,Ons,Tors,Fre,L\u00F8r,S\u00F8n"\r
+},\r
+print:{\r
+print_desc:"Udskriv"\r
+},\r
+preview:{\r
+preview_desc:"Vis udskrift"\r
+},\r
+directionality:{\r
+ltr_desc:"Retning venstre mod h\u00F8jre",\r
+rtl_desc:"Retning h\u00F8jre mod venstre"\r
+},\r
+layer:{\r
+insertlayer_desc:"Inds\u00E6t ny lag",\r
+forward_desc:"Flyt fremad",\r
+backward_desc:"Flyt bagud",\r
+absolute_desc:"Sl\u00E5 absolut positionering til/fra",\r
+content:"Nyt lag..."\r
+},\r
+save:{\r
+save_desc:"Gem",\r
+cancel_desc:"Annuller alle \u00E6ndringer"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Inds\u00E6t et blanktegn"\r
+},\r
+iespell:{\r
+iespell_desc:"Udf\u00F8r stavekontrol",\r
+download:"ieSpell blev ikke fundet. Vil du installere det nu?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horisontal linie"\r
+},\r
+emotions:{\r
+emotions_desc:"Hum\u00F8rikoner"\r
+},\r
+searchreplace:{\r
+search_desc:"S\u00F8g",\r
+replace_desc:"S\u00F8g/Erstat"\r
+},\r
+advimage:{\r
+image_desc:"Inds\u00E6t/rediger billede"\r
+},\r
+advlink:{\r
+link_desc:"Inds\u00E6t/rediger link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citat",\r
+abbr_desc:"Forkortelse",\r
+acronym_desc:"Akronym",\r
+del_desc:"Sletning",\r
+ins_desc:"Inds\u00E6ttelse",\r
+attribs_desc:"Inds\u00E6t/rediger attributter"\r
+},\r
+style:{\r
+desc:"Rediger CSS stil"\r
+},\r
+paste:{\r
+paste_text_desc:"Inds\u00E6t ikke-formatteret tekst",\r
+paste_word_desc:"Inds\u00E6t fra Word",\r
+selectall_desc:"V\u00E6lg alle"\r
+},\r
+paste_dlg:{\r
+text_title:"Anvend CTRL+V p\u00E5 tastaturet for at inds\u00E6tte teksten.",\r
+text_linebreaks:"Bevar linieskift",\r
+word_title:"Anvend CTRL+V p\u00E5 tastaturet for at inds\u00E6tte teksten."\r
+},\r
+table:{\r
+desc:"Inds\u00E6t tabel",\r
+row_before_desc:"Inds\u00E6t r\u00E6kke f\u00F8r",\r
+row_after_desc:"Inds\u00E6t r\u00E6kke efter",\r
+delete_row_desc:"Slet r\u00E6kke",\r
+col_before_desc:"Inds\u00E6t kolonne f\u00F8r",\r
+col_after_desc:"Inds\u00E6t kolonne efter",\r
+delete_col_desc:"Slet kolonne",\r
+split_cells_desc:"Opdel flettede celler",\r
+merge_cells_desc:"Flet celler",\r
+row_desc:"R\u00E6kkeegenskaber",\r
+cell_desc:"Celleegenskaber",\r
+props_desc:"Tabelegenskaber",\r
+paste_row_before_desc:"Inds\u00E6t r\u00E6kke f\u00F8r",\r
+paste_row_after_desc:"Inds\u00E6t r\u00E6kke efter",\r
+cut_row_desc:"Klip r\u00E6kke",\r
+copy_row_desc:"Kopier r\u00E6kke",\r
+del:"Slet tabel",\r
+row:"R\u00E6kke",\r
+col:"Kolonne",\r
+cell:"Celle"\r
+},\r
+autosave:{\r
+unload_msg:"Har du foretaget nogle \u00E6ndringer vil de g\u00E5 tabt hvis du navigerer v\u00E6k fra denne side."\r
+},\r
+fullscreen:{\r
+desc:"Vis/skjul fuldsk\u00E6rmstilstand"\r
+},\r
+media:{\r
+desc:"Inds\u00E6t/rediger indlejret mediefil",\r
+edit:"Rediger indlejret mediefil"\r
+},\r
+fullpage:{\r
+desc:"Dokument egenskaber"\r
+},\r
+template:{\r
+desc:"Inds\u00E6t pr\u00E6defineret skabelonindhold"\r
+},\r
+visualchars:{\r
+desc:"Vis/Skjul visuelle kontroltegn."\r
+},\r
+spellchecker:{\r
+desc:"Vis/skjul stavekontrol",\r
+menu:"Indstillinger for stavekontrol",\r
+ignore_word:"Ignorer ord",\r
+ignore_words:"Ignorer alle",\r
+langs:"Sprog",\r
+wait:"Vent venligst...",\r
+sug:"Forslag",\r
+no_sug:"Ingen forslag",\r
+no_mpell:"Ingen stavefejl fundet."\r
+},\r
+pagebreak:{\r
+desc:"Inds\u00E6t sideskift."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({de:{\r
+common:{\r
+edit_confirm:"Wollen Sie diesen Textbereich mit WYSIWYG bearbeiten?",\r
+apply:"\u00DCbernehmen",\r
+insert:"Einf\u00FCgen",\r
+update:"Aktualisieren",\r
+cancel:"Abbrechen",\r
+close:"Schlie\u00DFen",\r
+browse:"Durchsuchen",\r
+class_name:"Klasse",\r
+not_set:"-- Nicht gesetzt --",\r
+clipboard_msg:"Kopieren, Ausschneiden und Einf\u00FCgen sind im Mozilla Firefox nicht m\u00F6glich.\nM\u00F6chten Sie mehr \u00FCber dieses Problem erfahren?",\r
+clipboard_no_support:"Wird derzeit in Ihrem Browser nicht unterst\u00FCtzt. Bitte benutzen Sie stattdessen die Tastenk\u00FCrzel.",\r
+popup_blocked:"Leider hat Ihr Popup-Blocker ein Fenster unterbunden, das f\u00FCr den Betrieb dieses Programms n\u00F6tig ist. Bitte deaktivieren Sie den Popup-Blocker, um die volle Funktionalit\u00E4t zu erlangen.",\r
+invalid_data:"Fehler: Sie haben ung\u00FCltige Werte eingegeben (rot markiert).",\r
+more_colors:"Weitere Farben"\r
+},\r
+contextmenu:{\r
+align:"Ausrichtung",\r
+left:"Links",\r
+center:"Mittig",\r
+right:"Rechts",\r
+full:"Blocksatz"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d.%m.%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Datum einf\u00FCgen",\r
+inserttime_desc:"Zeit einf\u00FCgen",\r
+months_long:"Januar,Februar,M\u00E4rz,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember",\r
+months_short:"Jan,Feb,M\u00E4rz,Apr,Mai,Juni,Juli,Aug,Sept,Okt,Nov,Dez",\r
+day_long:"Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag",\r
+day_short:"So,Mo,Di,Mi,Do,Fr,Sa,So"\r
+},\r
+print:{\r
+print_desc:"Drucken"\r
+},\r
+preview:{\r
+preview_desc:"Vorschau"\r
+},\r
+directionality:{\r
+ltr_desc:"Schrift von links nach rechts",\r
+rtl_desc:"Schrift von rechts nach links"\r
+},\r
+layer:{\r
+insertlayer_desc:"Neue Ebene einf\u00FCgen",\r
+forward_desc:"Vor verschieben",\r
+backward_desc:"Zur\u00FCck verschieben",\r
+absolute_desc:"Absolute Positionierung",\r
+content:"Neue Ebene..."\r
+},\r
+save:{\r
+save_desc:"Speichern",\r
+cancel_desc:"Alle \u00C4nderungen verwerfen"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Gesch\u00FCtztes Leerzeichen einf\u00FCgen"\r
+},\r
+iespell:{\r
+iespell_desc:"Rechtschreibpr\u00FCfung",\r
+download:"ieSpell konnte nicht gefunden werden. Wollen Sie es installieren?"\r
+},\r
+advhr:{\r
+advhr_desc:"Trennlinie"\r
+},\r
+emotions:{\r
+emotions_desc:"Smilies"\r
+},\r
+searchreplace:{\r
+search_desc:"Suchen",\r
+replace_desc:"Suchen/Ersetzen"\r
+},\r
+advimage:{\r
+image_desc:"Bild einf\u00FCgen/ersetzen"\r
+},\r
+advlink:{\r
+link_desc:"Link einf\u00FCgen/bearbeiten"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Quellenangabe",\r
+abbr_desc:"Abk\u00FCrzung",\r
+acronym_desc:"Akronym",\r
+del_desc:"Entfernter Text",\r
+ins_desc:"Eingef\u00FCgter Text",\r
+attribs_desc:"Attribute einf\u00FCgen/bearbeiten"\r
+},\r
+style:{\r
+desc:"CSS-Styles bearbeiten"\r
+},\r
+paste:{\r
+paste_text_desc:"Als normalen Text einf\u00FCgen",\r
+paste_word_desc:"Mit Formatierungen (aus Word) einf\u00FCgen",\r
+selectall_desc:"Alles ausw\u00E4hlen"\r
+},\r
+paste_dlg:{\r
+text_title:"Dr\u00FCcken Sie auf Ihrer Tastatur Strg+V, um den Text einzuf\u00FCgen.",\r
+text_linebreaks:"Zeilenumbr\u00FCche beibehalten",\r
+word_title:"Dr\u00FCcken Sie auf Ihrer Tastatur Strg+V, um den Text einzuf\u00FCgen."\r
+},\r
+table:{\r
+desc:"Tabelle erstellen",\r
+row_before_desc:"Zeile oberhalb einf\u00FCgen",\r
+row_after_desc:"Zeile unterhalb einf\u00FCgen",\r
+delete_row_desc:"Zeile entfernen",\r
+col_before_desc:"Spalte links einf\u00FCgen",\r
+col_after_desc:"Spalte rechts einf\u00FCgen",\r
+delete_col_desc:"Spalte l\u00F6schen",\r
+split_cells_desc:"Vereinte Zellen trennen",\r
+merge_cells_desc:"Zellen vereinen",\r
+row_desc:"Eigenschaften der Zeile",\r
+cell_desc:"Eigenschaften der Zelle",\r
+props_desc:"Eigenschaften der Tabelle",\r
+paste_row_before_desc:"Zeile oberhalb aus der Zwischenablage einf\u00FCgen",\r
+paste_row_after_desc:"Zeile unterhalb aus der Zwischenablage einf\u00FCgen",\r
+cut_row_desc:"Zeile ausschneiden",\r
+copy_row_desc:"Zeile kopieren",\r
+del:"Tabelle entfernen",\r
+row:"Zeile",\r
+col:"Spalte",\r
+cell:"Zelle"\r
+},\r
+autosave:{\r
+unload_msg:"Ihre \u00C4nderungen werden verloren gehen, wenn Sie die Seite verlassen."\r
+},\r
+fullscreen:{\r
+desc:"Vollbildschirm"\r
+},\r
+media:{\r
+desc:"Multimedia einbetten/bearbeiten",\r
+edit:"Multimediaeinbettung bearbeiten"\r
+},\r
+fullpage:{\r
+desc:"Dokument-Eigenschaften"\r
+},\r
+template:{\r
+desc:"Vorgefertigten Vorlageninhalt einf\u00FCgen"\r
+},\r
+visualchars:{\r
+desc:"Sichtbarkeit der Steuerzeichen an/aus."\r
+},\r
+spellchecker:{\r
+desc:"Rechtschreibpr\u00FCfung an/aus",\r
+menu:"Einstellungen der Rechtschreibpr\u00FCfung",\r
+ignore_word:"Wort ignorieren",\r
+ignore_words:"Alle ignorieren",\r
+langs:"Sprachen",\r
+wait:"Bitte warten...",\r
+sug:"Vorschl\u00E4ge",\r
+no_sug:"Keine Vorschl\u00E4ge",\r
+no_mpell:"Keine Rechtschreibfehler gefunden."\r
+},\r
+pagebreak:{\r
+desc:"Seitenumbruch Einf\u00FCgen."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({el:{\r
+common:{\r
+edit_confirm:"\u0398\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03BB\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1 WYSIWYG ;",\r
+apply:"\u0395\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE",\r
+insert:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE",\r
+update:"\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7",\r
+cancel:"\u0386\u03BA\u03C5\u03C1\u03BF",\r
+close:"\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF",\r
+browse:"\u0395\u03CD\u03C1\u03B5\u03C3\u03B7",\r
+class_name:"\u039A\u03BB\u03AC\u03C3\u03B7",\r
+not_set:"-- \u039C\u03B7 \u03BF\u03C1\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF --",\r
+clipboard_msg:"\u039F\u03B9 \u03BB\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B5\u03C2 \u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE/\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE/\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03B5\u03C2 \u03C3\u03B5 Mozilla \u03BA\u03B1\u03B9 Firefox.\n\u0398\u03AD\u03BB\u03B5\u03C4\u03B5 \u03C0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B5\u03C2 \u03C0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B5\u03C2 ;",\r
+clipboard_no_support:"\u0394\u03B5\u03BD \u03C5\u03C0\u03BF\u03C3\u03C4\u03B7\u03C1\u03AF\u03B6\u03B5\u03C4\u03B1\u03B9 \u03B1\u03C0\u03CC \u03C4\u03BF\u03BD \u03C6\u03C5\u03BB\u03BB\u03BF\u03BC\u03B5\u03C4\u03C1\u03B7\u03C4\u03AE \u03C3\u03B1\u03C2, \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03C3\u03C5\u03BD\u03C4\u03BF\u03BC\u03B5\u03CD\u03C3\u03B5\u03B9\u03C2 \u03C0\u03BB\u03B7\u03BA\u03C4\u03C1\u03BF\u03BB\u03BF\u03B3\u03AF\u03BF\u03C5.",\r
+popup_blocked:"\u0388\u03BD\u03B1 popup-blocker \u03C0\u03C1\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03C0\u03B5\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9 \u03AD\u03BD\u03B1 \u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF \u03B1\u03C0\u03B1\u03C1\u03B1\u03AF\u03C4\u03B7\u03C4\u03BF \u03B3\u03B9\u03B1 \u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE. \u03A0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C4\u03BF \u03B1\u03C0\u03B5\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03C4\u03B5 \u03B3\u03B9\u03B1 \u03C4\u03B7\u03BD \u03B9\u03C3\u03C4\u03BF\u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 \u03B1\u03C5\u03C4\u03AE \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03C4\u03B5 \u03C0\u03BB\u03AE\u03C1\u03C9\u03C2 \u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE.",\r
+invalid_data:"Error: Invalid values entered, these are marked in red.",\r
+more_colors:"\u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1 \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03B1"\r
+},\r
+contextmenu:{\r
+align:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7",\r
+left:"\u0391\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC",\r
+center:"\u039A\u03AD\u03BD\u03C4\u03C1\u03BF",\r
+right:"\u0394\u03B5\u03BE\u03B9\u03AC",\r
+full:"\u03A0\u03BB\u03AE\u03C1\u03B7\u03C2"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03B7\u03BC\u03AD\u03C1\u03B1\u03C2",\r
+inserttime_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03CE\u03C1\u03B1\u03C2",\r
+months_long:"\u0399\u03B1\u03BD\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2,\u03A6\u03B5\u03B2\u03C1\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2,\u039C\u03AC\u03C1\u03C4\u03B9\u03BF\u03C2,\u0391\u03C0\u03C1\u03AF\u03BB\u03B9\u03BF\u03C2,\u039C\u03AC\u03B9\u03BF\u03C2,\u0399\u03BF\u03CD\u03BD\u03B9\u03BF\u03C2,\u0399\u03BF\u03CD\u03BB\u03B9\u03BF\u03C2,\u0391\u03CD\u03B3\u03BF\u03C5\u03C3\u03C4\u03BF\u03C2,\u03A3\u03B5\u03C0\u03C4\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2,\u039F\u03BA\u03C4\u03CE\u03B2\u03C1\u03B9\u03BF\u03C2,\u039D\u03BF\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2,\u0394\u03B5\u03BA\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2",\r
+months_short:"\u0399\u03B1\u03BD,\u03A6\u03B5\u03B2,\u039C\u03AC\u03C1,\u0391\u03C0\u03C1,\u039C\u03AC\u03B9,\u0399\u03BF\u03CD\u03BD,\u0399\u03BF\u03CD\u03BB,\u0391\u03CD\u03B3,\u03A3\u03B5\u03C0,\u039F\u03BA\u03C4,\u039D\u03BF\u03AD,\u0394\u03B5\u03BA",\r
+day_long:"\u039A\u03C5\u03C1\u03B9\u03B1\u03BA\u03AE,\u0394\u03B5\u03C5\u03C4\u03AD\u03C1\u03B1,\u03A4\u03C1\u03AF\u03C4\u03B7,\u03A4\u03B5\u03C4\u03AC\u03C1\u03C4\u03B7,\u03A0\u03AD\u03BC\u03C0\u03C4\u03B7,\u03A0\u03B1\u03C1\u03B1\u03C3\u03BA\u03B5\u03C5\u03AE,\u03A3\u03AC\u03B2\u03B2\u03B1\u03C4\u03BF",\r
+day_short:"\u039A\u03C5,\u0394\u03B5,\u03A4\u03C1,\u03A4\u03B5\u03C4,\u03A0\u03AD\u03BC,\u03A0\u03B1\u03C1,\u03A3\u03B1\u03B2"\r
+},\r
+print:{\r
+print_desc:"\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7"\r
+},\r
+preview:{\r
+preview_desc:"\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7"\r
+},\r
+directionality:{\r
+ltr_desc:"\u039A\u03B1\u03C4\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 \u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC \u03C0\u03C1\u03BF\u03C2 \u03B4\u03B5\u03BE\u03B9\u03AC",\r
+rtl_desc:"\u039A\u03B1\u03C4\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 \u03B4\u03B5\u03BE\u03B9\u03AC \u03C0\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03BD\u03AD\u03BF\u03C5 layer",\r
+forward_desc:"\u039C\u03B5\u03C4\u03B1\u03BA\u03AF\u03BD\u03B7\u03C3\u03B7 \u03C3\u03C4\u03BF \u03C0\u03C1\u03BF\u03C3\u03BA\u03AE\u03BD\u03B9\u03BF",\r
+backward_desc:"\u039C\u03B5\u03C4\u03B1\u03BA\u03AF\u03BD\u03B7\u03C3\u03B7 \u03C3\u03C4\u03BF \u03C0\u03B1\u03C1\u03B1\u03C3\u03BA\u03AE\u03BD\u03B9\u03BF",\r
+absolute_desc:"\u0391\u03C0\u03CC\u03BB\u03C5\u03C4\u03B7/\u03A3\u03C7\u03B5\u03C4\u03B9\u03BA\u03AE \u03C4\u03BF\u03C0\u03BF\u03B8\u03AD\u03C4\u03B7\u03C3\u03B7",\r
+content:"\u039D\u03AD\u03BF layer..."\r
+},\r
+save:{\r
+save_desc:"\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7",\r
+cancel_desc:"\u0391\u03BA\u03CD\u03C1\u03C9\u03C3\u03B7 \u03CC\u03BB\u03C9\u03BD \u03C4\u03C9\u03BD \u03B1\u03BB\u03BB\u03B1\u03B3\u03CE\u03BD"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE non-breaking \u03BA\u03B5\u03BD\u03BF\u03CD \u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B1"\r
+},\r
+iespell:{\r
+iespell_desc:"\u0395\u03BA\u03C4\u03AD\u03BB\u03B5\u03C3\u03B7 \u03B5\u03BB\u03AD\u03B3\u03C7\u03BF\u03C5 \u03BF\u03C1\u03B8\u03BF\u03B3\u03C1\u03B1\u03C6\u03AF\u03B1\u03C2",\r
+download:"\u03A4\u03BF ieSpell \u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5. \u039D\u03B1 \u03BA\u03B1\u03C4\u03AD\u03B2\u03B5\u03B9 \u03C4\u03CE\u03C1\u03B1 ;"\r
+},\r
+advhr:{\r
+advhr_desc:"\u039F\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03B1 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE"\r
+},\r
+emotions:{\r
+emotions_desc:"\u03A3\u03C5\u03BD\u03B1\u03B9\u03C3\u03B8\u03AE\u03BC\u03B1\u03C4\u03B1"\r
+},\r
+searchreplace:{\r
+search_desc:"\u0395\u03CD\u03C1\u03B5\u03C3\u03B7",\r
+replace_desc:"\u0395\u03CD\u03C1\u03B5\u03C3\u03B7/\u0391\u03BD\u03C4\u03B9\u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7"\r
+},\r
+advimage:{\r
+image_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2"\r
+},\r
+advlink:{\r
+link_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5",\r
+delta_width:"50"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"\u03A3\u03C5\u03BD\u03C4\u03BF\u03BC\u03BF\u03B3\u03C1\u03B1\u03C6\u03AF\u03B1",\r
+acronym_desc:"\u0391\u03BA\u03C1\u03BF\u03BD\u03CD\u03BC\u03B9\u03BF",\r
+del_desc:"\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE",\r
+ins_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE",\r
+attribs_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B9\u03B4\u03B9\u03BF\u03C4\u03AE\u03C4\u03C9\u03BD"\r
+},\r
+style:{\r
+desc:"\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03A3\u03C4\u03C5\u03BB CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 \u03C9\u03C2 \u03B1\u03C0\u03BB\u03CC \u03BA\u03B5\u03AF\u03BC\u03B5\u03BD\u03BF",\r
+paste_word_desc:"\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 \u03B1\u03C0\u03CC \u03C4\u03BF Word",\r
+selectall_desc:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03CC\u03BB\u03C9\u03BD"\r
+},\r
+paste_dlg:{\r
+text_title:"\u03A7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03C4\u03B5 CTRL+V \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03BA\u03AC\u03BD\u03B5\u03C4\u03B5 \u03B5\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 \u03BA\u03B5\u03B9\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C3\u03C4\u03BF \u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF.",\r
+text_linebreaks:"\u039D\u03B1 \u03BA\u03C1\u03B1\u03C4\u03B7\u03B8\u03BF\u03CD\u03BD \u03C4\u03B1 linebreaks",\r
+word_title:"\u03A7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03C4\u03B5 CTRL+V \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03BA\u03AC\u03BD\u03B5\u03C4\u03B5 \u03B5\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 \u03BA\u03B5\u03B9\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C3\u03C4\u03BF \u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF."\r
+},\r
+table:{\r
+desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03BD\u03AD\u03BF\u03C5 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+row_before_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u03C0\u03C1\u03B9\u03BD",\r
+row_after_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u03BC\u03B5\u03C4\u03AC",\r
+delete_row_desc:"\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2",\r
+col_before_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03C3\u03C4\u03AE\u03BB\u03B7\u03C2 \u03C0\u03C1\u03B9\u03BD",\r
+col_after_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03C3\u03C4\u03AE\u03BB\u03B7\u03C2 \u03BC\u03B5\u03C4\u03AC",\r
+delete_col_desc:"\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE \u03C3\u03C4\u03AE\u03BB\u03B7\u03C2",\r
+split_cells_desc:"\u0394\u03B9\u03B1\u03C7\u03C9\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u03C3\u03C5\u03B3\u03C7\u03C9\u03BD\u03B5\u03C5\u03BC\u03AD\u03BD\u03C9\u03BD \u03BA\u03B5\u03BB\u03B9\u03CE\u03BD \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+merge_cells_desc:"\u03A3\u03C5\u03B3\u03C7\u03CE\u03BD\u03B5\u03C5\u03C3\u03B7 \u03BA\u03B5\u03BB\u03B9\u03CE\u03BD \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+row_desc:"\u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+cell_desc:"\u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2 \u03BA\u03B5\u03BB\u03B9\u03BF\u03CD \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+props_desc:"\u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+paste_row_before_desc:"\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1 \u03C0\u03C1\u03B9\u03BD",\r
+paste_row_after_desc:"\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1 \u03BC\u03B5\u03C4\u03AC",\r
+cut_row_desc:"\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+copy_row_desc:"\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+del:"\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+row:"\u0393\u03C1\u03B1\u03BC\u03BC\u03AE",\r
+col:"\u03A3\u03C4\u03AE\u03BB\u03B7",\r
+cell:"\u039A\u03B5\u03BB\u03AF",\r
+cellprops_delta_width:"60"\r
+},\r
+autosave:{\r
+unload_msg:"\u039F\u03B9 \u03B1\u03BB\u03BB\u03B1\u03B3\u03AD\u03C2 \u03C0\u03BF\u03C5 \u03BA\u03AC\u03BD\u03B1\u03C4\u03B5 \u03B8\u03B1 \u03C7\u03B1\u03B8\u03BF\u03CD\u03BD \u03B1\u03BD \u03C6\u03CD\u03B3\u03B5\u03C4\u03B5 \u03C3\u03B5 \u03AC\u03BB\u03BB\u03B7 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1."\r
+},\r
+fullscreen:{\r
+desc:"\u0395\u03BD\u03B1\u03BB\u03BB\u03B1\u03B3\u03AE \u03C0\u03BB\u03AE\u03C1\u03BF\u03C5\u03C2 \u03BF\u03B8\u03CC\u03BD\u03B7\u03C2"\r
+},\r
+media:{\r
+desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B5\u03BD\u03C3\u03C9\u03BC\u03B1\u03C4\u03C9\u03BC\u03AD\u03BD\u03C9\u03BD media",\r
+edit:"\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B5\u03BD\u03C3\u03C9\u03BC\u03B1\u03C4\u03C9\u03BC\u03AD\u03BD\u03C9\u03BD media",\r
+delta_width:"50"\r
+},\r
+fullpage:{\r
+desc:"\u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2 \u03B5\u03B3\u03B3\u03C1\u03AC\u03C6\u03BF\u03C5",\r
+delta_width:"140"\r
+},\r
+template:{\r
+desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03C0\u03B5\u03C1\u03B9\u03B5\u03C7\u03BF\u03BC\u03AD\u03BD\u03BF\u03C5 \u03B3\u03B9\u03B1 \u03C0\u03C1\u03BF\u03BA\u03B1\u03B8\u03BF\u03C1\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF \u03C0\u03C1\u03CC\u03C4\u03C5\u03C0\u03BF"\r
+},\r
+visualchars:{\r
+desc:"\u039F\u03C0\u03C4\u03B9\u03BA\u03BF\u03AF \u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B5\u03C2 \u03B5\u03BB\u03AD\u03B3\u03C7\u03BF\u03C5 \u03BD\u03B1\u03B9/\u03CC\u03C7\u03B9."\r
+},\r
+spellchecker:{\r
+desc:"\u0395\u03BD\u03B1\u03BB\u03BB\u03B1\u03B3\u03AE \u03BF\u03C1\u03B8\u03BF\u03B3\u03C1\u03B1\u03C6\u03B9\u03BA\u03BF\u03CD \u03B5\u03BB\u03AD\u03B3\u03C7\u03BF\u03C5",\r
+menu:"\u03A1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u03BF\u03C1\u03B8\u03BF\u03B3\u03C1\u03B1\u03C6\u03B9\u03BA\u03BF\u03CD \u03B5\u03BB\u03AD\u03B3\u03C7\u03BF\u03C5",\r
+ignore_word:"\u03A0\u03B1\u03C1\u03AC\u03B2\u03BB\u03B5\u03C8\u03B7 \u03BB\u03AD\u03BE\u03B7\u03C2",\r
+ignore_words:"\u03A0\u03B1\u03C1\u03AC\u03B2\u03BB\u03B5\u03C8\u03B7 \u03CC\u03BB\u03C9\u03BD",\r
+langs:"\u0393\u03BB\u03CE\u03C3\u03C3\u03B5\u03C2",\r
+wait:"\u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03C0\u03B5\u03C1\u03B9\u03BC\u03AD\u03BD\u03B5\u03C4\u03B5...",\r
+sug:"\u03A0\u03C1\u03BF\u03C4\u03AC\u03C3\u03B5\u03B9\u03C2",\r
+no_sug:"\u03A7\u03C9\u03C1\u03AF\u03C2 \u03C0\u03C1\u03BF\u03C4\u03AC\u03C3\u03B5\u03B9\u03C2",\r
+no_mpell:"\u03A3\u03C9\u03C3\u03C4\u03AE \u03BF\u03C1\u03B8\u03BF\u03B3\u03C1\u03C6\u03AF\u03B1."\r
+},\r
+pagebreak:{\r
+desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03B1\u03BB\u03BB\u03B1\u03B3\u03AE\u03C2 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1\u03C2."\r
+}}});
\ No newline at end of file
download:"ieSpell not detected. Do you want to install it now?"\r
},\r
advhr:{\r
-advhr_desc:"Horizontale rule"\r
+advhr_desc:"Horizontal rule"\r
},\r
emotions:{\r
emotions_desc:"Emotions"\r
--- /dev/null
+tinyMCE.addI18n({es:{\r
+common:{\r
+edit_confirm:"\u00BFDesea utilizar el modo WYSIWYG para esta caja de texto?",\r
+apply:"Aplicar",\r
+insert:"Insertar",\r
+update:"Actualizar",\r
+cancel:"Cancelar",\r
+close:"Cerrar",\r
+browse:"Examinar",\r
+class_name:"Clase",\r
+not_set:"-- Ninguno --",\r
+clipboard_msg:"Copiar/Cortar/Pegar no se encuentra disponible en Mozilla y Firefox.\n\u00BFDesea obtener m\u00E1s informaci\u00F3n acerca de este tema?",\r
+clipboard_no_support:"Su navegador no soporta las funciones de cortapapeles, use los accesos por teclado.",\r
+popup_blocked:"Lo sentimos, su bloqueo de ventanas emergentes ha deshabilitado una ventana que provee funcionalidades a la aplicaci\u00F3n. Necesita deshabilitar este bloqueo en este sitio para poder utilizar todas las funciones.",\r
+invalid_data:"Error: Introdujo un valor no v\u00E1lido, est\u00E1n marcados en rojo.",\r
+more_colors:"M\u00E1s colores"\r
+},\r
+contextmenu:{\r
+align:"Alineaci\u00F3n",\r
+left:"Izquierda",\r
+center:"Centrado",\r
+right:"Derecha",\r
+full:"Justificado"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d-%m-%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Insertar fecha",\r
+inserttime_desc:"Insertar hora",\r
+months_long:"Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre",\r
+months_short:"Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic",\r
+day_long:"Domingo,Lunes,Martes,Mi\u00E9rcoles,Jueves,Viernes,S\u00E1bado,Domingo",\r
+day_short:"Dom,Lun,Mar,Mie,Jue,Vie,Sab,Dom"\r
+},\r
+print:{\r
+print_desc:"Imprimir"\r
+},\r
+preview:{\r
+preview_desc:"Vista previa"\r
+},\r
+directionality:{\r
+ltr_desc:"Direcci\u00F3n izquierda a derecha",\r
+rtl_desc:"Direcci\u00F3n derecha a izquierda"\r
+},\r
+layer:{\r
+insertlayer_desc:"Insertar nueva capa",\r
+forward_desc:"Avanzar",\r
+backward_desc:"Retroceder",\r
+absolute_desc:"Cambiar a posici\u00F3n absoluta",\r
+content:"Nueva capa..."\r
+},\r
+save:{\r
+save_desc:"Guardar",\r
+cancel_desc:"Cancelar todos los cambios"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Insertar caracter de espacio 'non-breaking'"\r
+},\r
+iespell:{\r
+iespell_desc:"Corrector ortogr\u00E1fico",\r
+download:"No se detect\u00F3 'ieSpell'. \u00BFDesea instalarlo ahora?"\r
+},\r
+advhr:{\r
+advhr_desc:"Regla horizontal"\r
+},\r
+emotions:{\r
+emotions_desc:"Emoticones"\r
+},\r
+searchreplace:{\r
+search_desc:"Buscar",\r
+replace_desc:"Buscar/Reemplazar"\r
+},\r
+advimage:{\r
+image_desc:"Insertar/editar imagen"\r
+},\r
+advlink:{\r
+link_desc:"Insertar/editar hiperv\u00EDnculo"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Cita",\r
+abbr_desc:"Abreviatura",\r
+acronym_desc:"Acr\u00F3nimo",\r
+del_desc:"Borrado",\r
+ins_desc:"Inserci\u00F3n",\r
+attribs_desc:"Insertar/Editar atributos"\r
+},\r
+style:{\r
+desc:"Editar Estilo CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Pegar como texto plano",\r
+paste_word_desc:"Pegar desde Word",\r
+selectall_desc:"Seleccionar todo"\r
+},\r
+paste_dlg:{\r
+text_title:"Use CTRL+V en su teclado para pegar el texto en la ventana.",\r
+text_linebreaks:"Keep linebreaks",\r
+word_title:"Use CTRL+V en su teclado para pegar el texto en la ventana."\r
+},\r
+table:{\r
+desc:"Inserta una nueva tabla",\r
+row_before_desc:"Insertar fila (antes)",\r
+row_after_desc:"Insertar fila (despu\u00E9s)",\r
+delete_row_desc:"Suprimir fila",\r
+col_before_desc:"Insertar columna (antes)",\r
+col_after_desc:"Insertar columna (despu\u00E9s)",\r
+delete_col_desc:"Suprimir columna",\r
+split_cells_desc:"Dividir celdas",\r
+merge_cells_desc:"Vincular celdas",\r
+row_desc:"Propiedades de la fila",\r
+cell_desc:"Propiedades de la celda",\r
+props_desc:"Propiedades de la tabla",\r
+paste_row_before_desc:"Pegar filas (antes)",\r
+paste_row_after_desc:"Pegar filas (despu\u00E9s)",\r
+cut_row_desc:"Cortar fila",\r
+copy_row_desc:"Copiar fila",\r
+del:"Eliminar tabla",\r
+row:"Fila",\r
+col:"Columna",\r
+cell:"Celda"\r
+},\r
+autosave:{\r
+unload_msg:"Los cambios realizados se perder\u00E1n si sale de esta p\u00E1gina."\r
+},\r
+fullscreen:{\r
+desc:"Cambiar a modo Pantalla Completa"\r
+},\r
+media:{\r
+desc:"Insertar/editar medio embebido",\r
+edit:"Editar medio embebido"\r
+},\r
+fullpage:{\r
+desc:"Propiedades del documento"\r
+},\r
+template:{\r
+desc:"Insertar contenido de plantilla predefinida"\r
+},\r
+visualchars:{\r
+desc:"Caracteres de control ON/OFF."\r
+},\r
+spellchecker:{\r
+desc:"Cambiar a corrector ortogr\u00E1fico",\r
+menu:"Configuraci\u00F3n de corrector ortogr\u00E1fico",\r
+ignore_word:"Ignorar",\r
+ignore_words:"Ignorar todo",\r
+langs:"Idiomas",\r
+wait:"Espere...",\r
+sug:"Sugerencias",\r
+no_sug:"Sin sugerencias",\r
+no_mpell:"No se encontraron errores."\r
+},\r
+pagebreak:{\r
+desc:"Insertar fin de p\u00E1gina"\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({et:{\r
+common:{\r
+edit_confirm:"Kas soovite kasutada WYSIWYG re\u017Eiimi sellel tekstialal?",\r
+apply:"Rakenda",\r
+insert:"Sisesta",\r
+update:"Uuenda",\r
+cancel:"T\u00FChista",\r
+close:"Sule",\r
+browse:"Sirvi",\r
+class_name:"Klass",\r
+not_set:"-- Seadmata --",\r
+clipboard_msg:"Kopeeri/L\u00F5ika/Kleebi ei ole saadaval Mozillas ja Firefoxis.\nKas soovite rohkem infot selle probleemi kohta?",\r
+clipboard_no_support:"Hetkel ei ole toetatud Teie lehitseja poolt, kasutage klaviatuuri otseteid selle asemel.",\r
+popup_blocked:"Vabandust, aga Teie h\u00FCpikakna t\u00F5kestaja on blokeerinud akna, mis varustab rakenduse funktsionaalsust. Palun lubage h\u00FCpikaknad sellel kodulehel, et t\u00E4ielikult kasutada seda vahendit.",\r
+invalid_data:"Viga: Kehtetud v\u00E4\u00E4rtused sisestatud, need on m\u00E4rgitud punasega.",\r
+more_colors:"Rohkem v\u00E4rve"\r
+},\r
+contextmenu:{\r
+align:"Joondus",\r
+left:"Vasak",\r
+center:"Kesk",\r
+right:"Parem",\r
+full:"T\u00E4is"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%A-%k-%p",\r
+time_fmt:"%T:%M:%S",\r
+insertdate_desc:"Sisesta kuup\u00E4ev",\r
+inserttime_desc:"Sisesta aeg",\r
+months_long:"Jaanuar,Veebruar,M\u00E4rts,Aprill,Mai,Juuni,Juuli,August,September,Oktoober,November,Detsember",\r
+months_short:"Jaan,Veeb,M\u00E4rts,Apr,Mai,Juuni,Juuli,Aug,Sept,Okt,Nov,Dets",\r
+day_long:"P\u00FChap\u00E4ev,Esmasp\u00E4ev,Teisip\u00E4ev,Kolmap\u00E4ev,Neljap\u00E4ev,Reede,Laup\u00E4ev,P\u00FChap\u00E4ev",\r
+day_short:"P,E,T,K,N,R,L,P"\r
+},\r
+print:{\r
+print_desc:"Print"\r
+},\r
+preview:{\r
+preview_desc:"Eelvaade"\r
+},\r
+directionality:{\r
+ltr_desc:"Suund vasakult paremale",\r
+rtl_desc:"Suund paremalt vasakule"\r
+},\r
+layer:{\r
+insertlayer_desc:"Sisesta uus kiht",\r
+forward_desc:"Liiguta edasi",\r
+backward_desc:"Liiguta tagasi",\r
+absolute_desc:"L\u00FClita \u00FCmber absoluutne positsioneerimine",\r
+content:"Uus kiht..."\r
+},\r
+save:{\r
+save_desc:"Salvesta",\r
+cancel_desc:"T\u00FChista k\u00F5ik muudatused"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Sisesta mittekatkestav t\u00FChik"\r
+},\r
+iespell:{\r
+iespell_desc:"\u00D5igekirja kontroll",\r
+download:"ie\u00D5igekiri tuvastamata. Kas soovite paigaldada n\u00FC\u00FCd?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horisontaalne joonlaud"\r
+},\r
+emotions:{\r
+emotions_desc:"Emotsioonid"\r
+},\r
+searchreplace:{\r
+search_desc:"Otsi",\r
+replace_desc:"Otsi/Asenda"\r
+},\r
+advimage:{\r
+image_desc:"Sisesta/redigeeri pilt"\r
+},\r
+advlink:{\r
+link_desc:"Sisesta/redigeeri link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"Abbreviation",\r
+acronym_desc:"Acronym",\r
+del_desc:"Deletion",\r
+ins_desc:"Insertion",\r
+attribs_desc:"Insert/Edit Attributes"\r
+},\r
+style:{\r
+desc:"Redigeeri CSS stiili"\r
+},\r
+paste:{\r
+paste_text_desc:"Kleebi tavalise tekstina",\r
+paste_word_desc:"Kleebi Wordist",\r
+selectall_desc:"Vali k\u00F5ik"\r
+},\r
+paste_dlg:{\r
+text_title:"Vajuta CTRL+V oma klaviatuuril teksti aknasse kleepimiseks.",\r
+text_linebreaks:"J\u00E4ta reavahetused",\r
+word_title:"Vajuta CTRL+V oma klaviatuuril teksti aknasse kleepimiseks."\r
+},\r
+table:{\r
+desc:"Sisestab uue tabeli",\r
+row_before_desc:"Sisesta rida ette",\r
+row_after_desc:"Sisesta rida j\u00E4rgi",\r
+delete_row_desc:"Kustuta rida",\r
+col_before_desc:"Sisesta veerg ette",\r
+col_after_desc:"Sisesta veerg j\u00E4rgi",\r
+delete_col_desc:"Kustuta veerg",\r
+split_cells_desc:"Eralda \u00FChendatud tabeli lahtrid",\r
+merge_cells_desc:"\u00DChenda tabeli lahtrid",\r
+row_desc:"Tabeli rea omadused",\r
+cell_desc:"Tabeli lahtri omadused",\r
+props_desc:"Tabeli omadused",\r
+paste_row_before_desc:"Kleebi tabeli rida ette",\r
+paste_row_after_desc:"Kleebi tabeli rida j\u00E4rgi",\r
+cut_row_desc:"L\u00F5ika tabeli rida",\r
+copy_row_desc:"Kopeeri tabeli rida",\r
+del:"Kustuta tabel",\r
+row:"Rida",\r
+col:"Veerg",\r
+cell:"Lahter"\r
+},\r
+autosave:{\r
+unload_msg:"Tehtud muudatused kaovad, kui lahkute siit lehelt."\r
+},\r
+fullscreen:{\r
+desc:"L\u00FClita \u00FCmber t\u00E4isekraani re\u017Eiim"\r
+},\r
+media:{\r
+desc:"Sisesta / redigeeri manustatud meedia",\r
+edit:"Redigeeri manustatud meedia"\r
+},\r
+fullpage:{\r
+desc:"Dokumendi omadused"\r
+},\r
+template:{\r
+desc:"Sisesta eeldefineeritud \u0161ablooni sisu"\r
+},\r
+visualchars:{\r
+desc:"Visuaalsed kontrollt\u00E4hem\u00E4rgid sisse/v\u00E4lja"\r
+},\r
+spellchecker:{\r
+desc:"L\u00FClita \u00FCmber \u00F5igekirja kontroll",\r
+menu:"\u00D5igekirja kontrolli seaded",\r
+ignore_word:"J\u00E4ta s\u00F5na vahele",\r
+ignore_words:"J\u00E4ra k\u00F5ik vahele",\r
+langs:"Keeled",\r
+wait:"Palun oota...",\r
+sug:"Soovitused",\r
+no_sug:"Soovitusi pole",\r
+no_mpell:"Valesti kirjutamisi ei leitud."\r
+},\r
+pagebreak:{\r
+desc:"Sisesta lehevahetus."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({fa:{\r
+common:{\r
+edit_confirm:"\u0622\u06CC\u0627 \u0645\u0627\u06CC\u0644\u06CC\u062F \u0627\u0632 \u062D\u0627\u0644\u062A \u0628\u0635\u0631\u06CC \u0628\u0631\u0627\u06CC \u0627\u06CC\u0646 \u062C\u0639\u0628\u0647 \u0645\u062A\u0646 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u06A9\u0646\u06CC\u062F\u061F",\r
+apply:"Apply",\r
+insert:"\u062F\u0631\u062C",\r
+update:"\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06CC",\r
+cancel:"\u0627\u0646\u0635\u0631\u0627\u0641",\r
+close:"\u0628\u0633\u062A\u0646",\r
+browse:"Browse",\r
+class_name:"\u062F\u0633\u062A\u0647",\r
+not_set:"-- \u062A\u0646\u0638\u064A\u0645 \u0646\u0634\u062F\u0647 --",\r
+clipboard_msg:"\u0631\u0648\u0646\u0648\u0634\u062A/\u0628\u0631\u0634/\u062C\u0627\u06CC\u06AF\u0630\u0627\u0631\u06CC \u062F\u0631 \u0645\u0631\u0648\u0631\u06AF\u0631\u0647\u0627\u06CC \u0645\u0648\u0632\u06CC\u0644\u0627 \u0648 \u0641\u0627\u06CC\u0631\u0641\u0627\u06A9\u0633 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u0646\u062F.\n\u0622\u06CC\u0627 \u0628\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062A \u0628\u06CC\u0634\u062A\u0631\u06CC \u062F\u0631 \u0627\u06CC\u0646 \u0632\u0645\u06CC\u0646\u0647 \u0646\u06CC\u0627\u0632 \u062F\u0627\u0631\u06CC\u062F\u061F",\r
+clipboard_no_support:"\u062F\u0631 \u062D\u0627\u0644 \u062D\u0627\u0636\u0631 \u062A\u0648\u0633\u0637 \u0645\u0631\u0648\u0631\u06AF\u0631 \u0634\u0645\u0627 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u0646\u0645\u06CC\u200C\u0634\u0648\u062F\u060C \u062F\u0631 \u0639\u0648\u0634 \u0627\u0632 \u0645\u0627\u0646\u0628\u0631\u0647\u0627\u06CC \u0635\u0641\u062D\u0647 \u06A9\u0644\u06CC\u062F \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u06A9\u0646\u06CC\u062F.",\r
+popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.",\r
+invalid_data:"\u062E\u0637\u0627: \u0645\u0642\u0627\u062F\u06CC\u0631 \u0646\u0627\u062F\u0631\u0633\u062A \u0648\u0627\u0631\u062F \u0634\u062F\u0647 \u0627\u0633\u062A, \u06A9\u0647 \u0628\u0627 \u0631\u0646\u06AF \u0642\u0631\u0645\u0632 \u0645\u0634\u062E\u0635 \u0634\u062F\u0647 \u0627\u0646\u062F.",\r
+more_colors:"\u0631\u0646\u06AF\u200C\u0647\u0627\u06CC \u0628\u06CC\u0634\u062A\u0631"\r
+},\r
+contextmenu:{\r
+align:"\u062A\u0631\u0627\u0632",\r
+left:"\u0686\u067E",\r
+center:"\u0645\u0631\u06A9\u0632",\r
+right:"\u0631\u0627\u0633\u062A",\r
+full:"\u06A9\u0627\u0645\u0644"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u062F\u0631\u062C \u062A\u0627\u0631\u06CC\u062E",\r
+inserttime_desc:"\u062F\u0631\u062C \u0633\u0627\u0639\u062A",\r
+months_long:"\u0698\u0627\u0646\u0648\u06CC\u0647,\u0641\u0648\u0631\u06CC\u0647,\u0645\u0627\u0631\u0633,\u0622\u0648\u0631\u06CC\u0644,\u0645\u06CC,\u0698\u0648\u0626\u0646,\u062C\u0648\u0644\u0627\u06CC,\u0622\u06AF\u0648\u0633\u062A,\u0633\u067E\u062A\u0627\u0645\u0628\u0631,\u0627\u06A9\u062A\u0628\u0631,\u0646\u0648\u0627\u0645\u0628\u0631,\u062F\u0633\u0627\u0645\u0628\u0631",\r
+months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",\r
+day_long:"\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647,\u062F\u0648\u0634\u0646\u0628\u0647,\u0633\u0647\u200C\u0634\u0646\u0628\u0647,\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647,\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647,\u062C\u0645\u0639\u0647,\u0634\u0646\u0628\u0647,\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647",\r
+day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"\r
+},\r
+print:{\r
+print_desc:"\u0686\u0627\u067E"\r
+},\r
+preview:{\r
+preview_desc:"\u067E\u06CC\u0634 \u0646\u0645\u0627\u06CC\u0634"\r
+},\r
+directionality:{\r
+ltr_desc:"\u062C\u0647\u062A \u0686\u067E \u0628\u0647 \u0631\u0627\u0633\u062A",\r
+rtl_desc:"\u062C\u0647\u062A \u0631\u0627\u0633\u062A \u0628\u0647 \u0686\u067E"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u062F\u0631\u062C \u0644\u0627\u06CC\u0647 \u062C\u062F\u06CC\u062F",\r
+forward_desc:"\u062D\u0631\u06A9\u062A \u0628\u0647 \u062C\u0644\u0648",\r
+backward_desc:"\u062D\u0631\u06A9\u062A \u0628\u0647 \u0639\u0642\u0628",\r
+absolute_desc:"\u062A\u063A\u06CC\u06CC\u0631 \u0648\u0636\u0639\u06CC\u062A \u0645\u06A9\u0627\u0646 \u062F\u0642\u06CC\u0642",\r
+content:"...\u0644\u0627\u06CC\u0647 \u062C\u062F\u06CC\u062F"\r
+},\r
+save:{\r
+save_desc:"\u0630\u062E\u06CC\u0631\u0647",\r
+cancel_desc:"Cancel all changes"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u062F\u0631\u062C \u06A9\u0627\u0631\u0627\u06A9\u062A\u0631 non-breaking \u0641\u0627\u0635\u0644\u0647"\r
+},\r
+iespell:{\r
+iespell_desc:"\u0627\u062C\u0631\u0627\u06CC \u063A\u0644\u0637 \u06AF\u06CC\u0631 \u0627\u0645\u0644\u0627\u06CC\u06CC",\r
+download:"ieSpell not detected. Do you want to install it now?"\r
+},\r
+advhr:{\r
+advhr_desc:"\u062E\u0637 \u0627\u0641\u0642\u06CC"\r
+},\r
+emotions:{\r
+emotions_desc:"\u0634\u06A9\u0644\u06A9\u200C\u0647\u0627"\r
+},\r
+searchreplace:{\r
+search_desc:"\u06CC\u0627\u0641\u062A\u0646",\r
+replace_desc:"\u06CC\u0627\u0641\u062A\u0646/\u062C\u0627\u06CC\u06AF\u0632\u06CC\u0646 \u06A9\u0631\u062F\u0646"\r
+},\r
+advimage:{\r
+image_desc:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u062A\u0635\u0648\u06CC\u0631"\r
+},\r
+advlink:{\r
+link_desc:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0644\u06CC\u0646\u06A9"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"\u0627\u062E\u062A\u0635\u0627\u0631",\r
+acronym_desc:"\u0645\u062E\u0641\u0641",\r
+del_desc:"\u062D\u0630\u0641",\r
+ins_desc:"\u062F\u0631\u062C",\r
+attribs_desc:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0645\u0634\u062E\u0635\u0647"\r
+},\r
+style:{\r
+desc:"\u0648\u06CC\u0631\u0627\u06CC\u0634 CSS \u0633\u0628\u06A9"\r
+},\r
+paste:{\r
+paste_text_desc:"\u0686\u0633\u0628\u0627\u0646\u062F\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062A\u0646 \u0633\u0627\u062F\u0647",\r
+paste_word_desc:"Word \u0686\u0633\u0628\u0627\u0646\u062F\u0646 \u0627\u0632 ",\r
+selectall_desc:"\u0627\u0646\u062A\u062E\u0627\u0628 \u0647\u0645\u0647"\r
+},\r
+paste_dlg:{\r
+text_title:"\u0627\u0632 \u062A\u0631\u06A9\u06CC\u0628 CTRL+V \u0631\u0648\u06CC \u06A9\u06CC\u200C\u0628\u0631\u062F \u0628\u0631\u0627\u06CC \u0686\u0633\u0628\u0627\u0646\u062F\u0646 \u0645\u062A\u0646 \u062F\u0631 \u067E\u0646\u0686\u0631\u0647 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u06A9\u0646\u06CC\u062F.",\r
+text_linebreaks:"Keep linebreaks",\r
+word_title:"\u0627\u0632 \u062A\u0631\u06A9\u06CC\u0628 CTRL+V \u0631\u0648\u06CC \u06A9\u06CC\u200C\u0628\u0631\u062F \u0628\u0631\u0627\u06CC \u0686\u0633\u0628\u0627\u0646\u062F\u0646 \u0645\u062A\u0646 \u062F\u0631 \u067E\u0646\u0686\u0631\u0647 \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u06A9\u0646\u06CC\u062F."\r
+},\r
+table:{\r
+desc:"\u062F\u0631\u062C \u062C\u062F\u0648\u0644 \u062C\u062F\u06CC\u062F",\r
+row_before_desc:"\u062F\u0631\u062C \u0633\u0637\u0631 \u0628\u0639\u062F \u0627\u0632",\r
+row_after_desc:"\u062F\u0631\u062C \u0633\u0637\u0631 \u0642\u0628\u0644 \u0627\u0632",\r
+delete_row_desc:"\u062D\u0630\u0641 \u0633\u0637\u0631",\r
+col_before_desc:"\u062F\u0631\u062C \u0633\u062A\u0648\u0646 \u0642\u0628\u0644 \u0627\u0632",\r
+col_after_desc:"\u062F\u0631\u062C \u0633\u062A\u0648\u0646 \u0628\u0639\u062F \u0627\u0632",\r
+delete_col_desc:"\u062D\u0630\u0641 \u0633\u062A\u0648\u0646",\r
+split_cells_desc:"Split merged table cells",\r
+merge_cells_desc:"\u0627\u062F\u063A\u0627\u0645 \u0633\u0644\u0648\u0644\u200C\u0647\u0627\u06CC \u062C\u062F\u0648\u0644",\r
+row_desc:"\u0645\u0634\u062E\u0635\u0627\u062A \u0633\u0637\u0631 \u062C\u062F\u0648\u0644",\r
+cell_desc:"\u0645\u0634\u062E\u0635\u0627\u062A \u0633\u0644\u0648\u0644 \u062C\u062F\u0648\u0644",\r
+props_desc:"\u0645\u0634\u062E\u0635\u0627\u062A \u062C\u062F\u0648\u0644",\r
+paste_row_before_desc:"\u0686\u0633\u0628\u0627\u0646\u062F\u0646 \u0631\u062F\u06CC\u0641 \u062C\u062F\u0648\u0644 \u0642\u0628\u0644 \u0627\u0632",\r
+paste_row_after_desc:"\u0686\u0633\u0628\u0627\u0646\u062F\u0646 \u0631\u062F\u06CC\u0641 \u062C\u062F\u0648\u0644 \u0628\u0639\u062F \u0627\u0632",\r
+cut_row_desc:"\u0628\u0631\u06CC\u062F\u0646 \u0633\u0637\u0631 \u062C\u062F\u0648\u0644",\r
+copy_row_desc:"\u0631\u0648\u0646\u0648\u0634\u062A \u06A9\u0631\u062F\u0646 \u0633\u0637\u0631 \u062C\u062F\u0648\u0644",\r
+del:"\u062D\u0630\u0641 \u062C\u062F\u0648\u0644",\r
+row:"\u0633\u0637\u0631",\r
+col:"\u0633\u062A\u0648\u0646",\r
+cell:"\u0633\u0644\u0648\u0644"\r
+},\r
+autosave:{\r
+unload_msg:"The changes you made will be lost if you navigate away from this page."\r
+},\r
+fullscreen:{\r
+desc:"\u062A\u063A\u06CC\u06CC\u0631 \u0648\u0636\u0639\u06CC\u062A \u062D\u0627\u0644\u062A \u062A\u0645\u0627\u0645 \u0635\u0641\u062D\u0647"\r
+},\r
+media:{\r
+desc:"embedded media \u062F\u0631\u062C / \u0648\u06CC\u0631\u0627\u06CC\u0634",\r
+edit:"embedded media \u0648\u06CC\u0631\u0627\u06CC\u0634"\r
+},\r
+fullpage:{\r
+desc:"\u0645\u0634\u062E\u0635\u0627\u062A \u0633\u0646\u062F"\r
+},\r
+template:{\r
+desc:"Insert predefined template content"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"\u062A\u063A\u06CC\u06CC\u0631 \u0648\u0636\u0639\u06CC\u062A \u063A\u0644\u0637 \u06CC\u0627\u0628 \u0627\u0645\u0644\u0627\u06CC\u06CC",\r
+menu:"\u062A\u0646\u0638\u06CC\u0645\u0627\u062A \u063A\u0644\u0637 \u06CC\u0627\u0628 \u0627\u0645\u0644\u0627\u06CC\u06CC",\r
+ignore_word:"\u0646\u0627\u062F\u06CC\u062F\u0647 \u06AF\u0631\u0641\u062A\u0646 \u06A9\u0644\u0645\u0647",\r
+ignore_words:"\u0646\u0627\u062F\u06CC\u062F\u0647 \u06AF\u0631\u0641\u062A\u0646 \u0647\u0645\u0647",\r
+langs:"\u0632\u0628\u0627\u0646\u200C\u0647\u0627",\r
+wait:"...\u0644\u0637\u0641\u0627 \u0635\u0628\u0631 \u06A9\u0646\u06CC\u062F",\r
+sug:"\u067E\u06CC\u0634\u0646\u0647\u0627\u062F\u0627\u062A",\r
+no_sug:"No suggestions",\r
+no_mpell:"No misspellings found."\r
+},\r
+pagebreak:{\r
+desc:".\u062F\u0631\u062C \u062C\u062F\u0627\u06A9\u0646\u0646\u062F\u0647 \u0635\u0641\u062D\u0647"\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({fi:{\r
+common:{\r
+edit_confirm:"Haluatko k\u00E4ytt\u00E4\u00E4 WYSIWYG tilaa t\u00E4ss\u00E4 tekstikent\u00E4ss\u00E4?",\r
+apply:"K\u00E4yt\u00E4",\r
+insert:"Lis\u00E4\u00E4",\r
+update:"P\u00E4ivit\u00E4",\r
+cancel:"Peruuta",\r
+close:"Sulje",\r
+browse:"Selaa",\r
+class_name:"Luokka",\r
+not_set:"-- Ei m\u00E4\u00E4ritetty --",\r
+clipboard_msg:"Kopioi/Leikkaa/Liit\u00E4 ei ole k\u00E4ytett\u00E4viss\u00E4 Mozilla ja Firefox selaimilla.\nHaluatko lis\u00E4tietoa t\u00E4st\u00E4 ongelmasta?",\r
+clipboard_no_support:"Selaimesi ei ole tuettu, k\u00E4yt\u00E4 sen sijaan n\u00E4pp\u00E4in oikoteit\u00E4.",\r
+popup_blocked:"Sinulla on k\u00E4yt\u00F6ss\u00E4si ohjelma, joka est\u00E4\u00E4 ponnahdusikkunoiden n\u00E4yt\u00F6n. Sinun t\u00E4ytyy kytke\u00E4 ponnahdusikkunoiden esto pois p\u00E4\u00E4lt\u00E4 voidaksesi hy\u00F6dynt\u00E4\u00E4 t\u00E4ysin t\u00E4t\u00E4 ty\u00F6kalua.",\r
+invalid_data:"Virhe: Sy\u00F6tit virheellisi\u00E4 arvoja, ne n\u00E4kyv\u00E4t punaisina.",\r
+more_colors:"Enemm\u00E4n v\u00E4rej\u00E4"\r
+},\r
+contextmenu:{\r
+align:"Tasaus",\r
+left:"Vasemmalle",\r
+center:"Keskelle",\r
+right:"Oikealle",\r
+full:"Molemmille puolille"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d.%m.%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Lis\u00E4\u00E4 p\u00E4iv\u00E4m\u00E4\u00E4r\u00E4",\r
+inserttime_desc:"Lis\u00E4\u00E4 kellonaika",\r
+months_long:"Tammikuu,Helmikuu,Maaliskuu,Huhtikuu,Toukokuu,Kes\u00E4kuu,Hein\u00E4kuu,Elokuu,Syyskuu,Lokakuu,Marraskuu,Joulukuu",\r
+months_short:"Tammi,Helmi,Maalis,Huhti,Touko,Kes\u00E4,Hein\u00E4,Elo,Syys,Loka,Marras,Joulu",\r
+day_long:"sunnuntai,maanantai,tiistai,keskiviikko,torstai,perjantai,lauantai,sunnuntai",\r
+day_short:"su,ma,ti,ke,to,pe,la,su"\r
+},\r
+print:{\r
+print_desc:"Tulosta"\r
+},\r
+preview:{\r
+preview_desc:"Esikatselu"\r
+},\r
+directionality:{\r
+ltr_desc:"Suunta vasemmalta oikealle",\r
+rtl_desc:"Suunta oikealta vasemmalle"\r
+},\r
+layer:{\r
+insertlayer_desc:"Lis\u00E4\u00E4 uusi taso",\r
+forward_desc:"Siirr\u00E4 eteenp\u00E4in",\r
+backward_desc:"Siirr\u00E4 taaksep\u00E4in",\r
+absolute_desc:"Absoluuttinen sijainti",\r
+content:"Uusi taso..."\r
+},\r
+save:{\r
+save_desc:"Tallenna",\r
+cancel_desc:"Peruuta kaikki muutokset"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Lis\u00E4\u00E4 tyhj\u00E4 merkki (nbsp)"\r
+},\r
+iespell:{\r
+iespell_desc:"Oikeinkirjoituksetn tarkistus",\r
+download:"ieSpell ohjelmaa ei havaittu. Haluatko asentaa sen nyt?"\r
+},\r
+advhr:{\r
+advhr_desc:"Vaakataso viivain"\r
+},\r
+emotions:{\r
+emotions_desc:"Hymi\u00F6t"\r
+},\r
+searchreplace:{\r
+search_desc:"Etsi",\r
+replace_desc:"Etsi ja korvaa"\r
+},\r
+advimage:{\r
+image_desc:"Lis\u00E4\u00E4/muokkaa kuvaa"\r
+},\r
+advlink:{\r
+link_desc:"Lis\u00E4\u00E4/muokkaa linkki\u00E4"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Sitaatti",\r
+abbr_desc:"Lyhenne",\r
+acronym_desc:"Kirjainlyhenne",\r
+del_desc:"Poisto",\r
+ins_desc:"Lis\u00E4ys",\r
+attribs_desc:"Lis\u00E4\u00E4/muokkaa attribuutteja"\r
+},\r
+style:{\r
+desc:"Muokkaa CSS tyylej\u00E4"\r
+},\r
+paste:{\r
+paste_text_desc:"Liit\u00E4 pelkk\u00E4n\u00E4 tekstin\u00E4",\r
+paste_word_desc:"Liit\u00E4 Wordist\u00E4",\r
+selectall_desc:"Valitse kaikki"\r
+},\r
+paste_dlg:{\r
+text_title:"Paina CTRL+V liitt\u00E4\u00E4ksesi teksti ikkunaan.",\r
+text_linebreaks:"S\u00E4ilyt\u00E4 rivinvaihdot",\r
+word_title:"Paina CTRL+V liitt\u00E4\u00E4ksesi teksti ikkunaan."\r
+},\r
+table:{\r
+desc:"Lis\u00E4\u00E4 uusi taulukko",\r
+row_before_desc:"Lis\u00E4\u00E4 rivi ennen",\r
+row_after_desc:"Lis\u00E4\u00E4 rivi j\u00E4lkeen",\r
+delete_row_desc:"Poista rivi",\r
+col_before_desc:"Lis\u00E4\u00E4 sarake ennen",\r
+col_after_desc:"Lis\u00E4\u00E4 sarake j\u00E4lkeen",\r
+delete_col_desc:"Poista sarake",\r
+split_cells_desc:"Jaa yhdistetyt taulukon solut",\r
+merge_cells_desc:"Yhdist\u00E4 taulukon solut",\r
+row_desc:"Taulukon rivin asetukset",\r
+cell_desc:"Taulukon solun asetukset",\r
+props_desc:"Taulukon asetukset",\r
+paste_row_before_desc:"Liit\u00E4 taulukon rivi ennen",\r
+paste_row_after_desc:"Liit\u00E4 taulukon rivi j\u00E4lkeen",\r
+cut_row_desc:"Leikkaa taulukon rivi",\r
+copy_row_desc:"Kopioi taulukon rivi",\r
+del:"Poista taulukko",\r
+row:"Rivi",\r
+col:"Sarake",\r
+cell:"Solu"\r
+},\r
+autosave:{\r
+unload_msg:"Tekem\u00E4si muutokset menetet\u00E4\u00E4n jos poistut t\u00E4lt\u00E4 sivulta."\r
+},\r
+fullscreen:{\r
+desc:"Kokoruututila"\r
+},\r
+media:{\r
+desc:"Lis\u00E4\u00E4/muokkaa upotettua mediaa",\r
+edit:"Muokkaa upotettua mediaa"\r
+},\r
+fullpage:{\r
+desc:"Tiedoston asetukset"\r
+},\r
+template:{\r
+desc:"Lis\u00E4\u00E4 esim\u00E4\u00E4ritetty\u00E4 sivupohja sis\u00E4lt\u00F6\u00E4"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"Oikeinkirjoituksen tarkistus",\r
+menu:"Oikeinkirjoituksen asetukset",\r
+ignore_word:"Ohita sana",\r
+ignore_words:"Ohita kaikki",\r
+langs:"Kielet",\r
+wait:"Odota ole hyv\u00E4...",\r
+sug:"Ehdotukset",\r
+no_sug:"Ei ehdotuksia",\r
+no_mpell:"Virheit\u00E4 ei l\u00F6ytynyt."\r
+},\r
+pagebreak:{\r
+desc:"Lis\u00E4\u00E4 sivunvaihto."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({fr:{\r
+common:{\r
+edit_confirm:"Voulez-vous utiliser le mode WYSIWYG pour cette zone de texte\u00A0?",\r
+apply:"Appliquer",\r
+insert:"Ins\u00E9rer",\r
+update:"Mettre \u00E0 jour",\r
+cancel:"Annuler",\r
+close:"Fermer",\r
+browse:"Naviguer",\r
+class_name:"Classe",\r
+not_set:"-- Non init. --",\r
+clipboard_msg:"Copier/Couper/Coller n'est pas disponible sous Mozilla et sous Firefox.\nVoulez-vous plus d'information sur ce probl\u00E8me\u00A0?",\r
+clipboard_no_support:"Actuellement non support\u00E9 par votre navigateur, utilisez les raccourcis clavier \u00E0 ma place.",\r
+popup_blocked:"D\u00E9sol\u00E9, nous avons d\u00E9tect\u00E9 que votre bloqueur de popup a bloqu\u00E9 une fen\u00EAtre dont l'application a besoin. Vous devez d\u00E9sactiver votre bloqueur de popup pour pouvoir utiliser cet outil.",\r
+invalid_data:"Erreur : Valeurs incorrectes entr\u00E9es, elles sont marqu\u00E9es en rouge.",\r
+more_colors:"Plus de couleurs"\r
+},\r
+contextmenu:{\r
+align:"Alignement",\r
+left:"Gauche",\r
+center:"Centr\u00E9",\r
+right:"Droite",\r
+full:"Justifi\u00E9"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d-%m-%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Ins\u00E9rer date",\r
+inserttime_desc:"Ins\u00E9rer heure",\r
+months_long:"Janvier,F\u00E9vrier,Mars,Avril,Mai,Juin,Juillet,Ao\u00FBt,Septembre,Octobre,Novembre,D\u00E9cembre",\r
+months_short:"Jan,F\u00E9v,Mar,Avr,Mai,Juin,Juil,Ao\u00FBt,Sep,Oct,Nov,D\u00E9c",\r
+day_long:"Dimanche,Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche",\r
+day_short:"Dim,Lun,Mar,Mer,Jeu,Ven,Sam,Dim"\r
+},\r
+print:{\r
+print_desc:"Imprimer"\r
+},\r
+preview:{\r
+preview_desc:"Pr\u00E9visualiser"\r
+},\r
+directionality:{\r
+ltr_desc:"\u00C9criture de gauche \u00E0 droite",\r
+rtl_desc:"\u00C9criture de droite \u00E0 gauche"\r
+},\r
+layer:{\r
+insertlayer_desc:"Ins\u00E9rer une nouvelle couche",\r
+forward_desc:"D\u00E9placer vers l'avant",\r
+backward_desc:"D\u00E9placer vers l'arri\u00E8re",\r
+absolute_desc:"Activer le positionnement absolu",\r
+content:"Nouvelle couche..."\r
+},\r
+save:{\r
+save_desc:"Sauver",\r
+cancel_desc:"Annuler tous les changements"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Ins\u00E9rer un espace ins\u00E9cable"\r
+},\r
+iespell:{\r
+iespell_desc:"Lancer le v\u00E9rificateur d'orthographe",\r
+download:"ieSpell non install\u00E9, voulez-vous l'installer maintenant\u00A0?"\r
+},\r
+advhr:{\r
+advhr_desc:"Ins\u00E9rer trait horizontal"\r
+},\r
+emotions:{\r
+emotions_desc:"\u00C9motions"\r
+},\r
+searchreplace:{\r
+search_desc:"Chercher",\r
+replace_desc:"Chercher/Remplacer"\r
+},\r
+advimage:{\r
+image_desc:"Ins\u00E9rer/\u00C9diter image"\r
+},\r
+advlink:{\r
+link_desc:"Ins\u00E9rer/\u00C9diter lien"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"Abr\u00E9viation",\r
+acronym_desc:"Acronyme",\r
+del_desc:"Effacement",\r
+ins_desc:"Insertion",\r
+attribs_desc:"Ins\u00E9rer/\u00C9diter les attributs"\r
+},\r
+style:{\r
+desc:"\u00C9diter la feuille de style CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Coller en tant que texte brut",\r
+paste_word_desc:"Coller au d\u00E9part d'un texte cr\u00E9\u00E9 sous Word",\r
+selectall_desc:"Selectioner tout"\r
+},\r
+paste_dlg:{\r
+text_title:"Utilisez CTRL+V sur votre clavier pour coller le texte dans la fen\u00EAtre.",\r
+text_linebreaks:"Conserver les sauts de ligne",\r
+word_title:"Utilisez CTRL+V sur votre clavier pour coller le texte dans la fen\u00EAtre."\r
+},\r
+table:{\r
+desc:"Ins\u00E9rer un nouveau tableau",\r
+row_before_desc:"Ins\u00E9rer ligne avant",\r
+row_after_desc:"Ins\u00E9rer ligne apr\u00E8s",\r
+delete_row_desc:"Effacer ligne",\r
+col_before_desc:"Ins\u00E9rer colonne avant",\r
+col_after_desc:"Ins\u00E9rer colonne apr\u00E8s",\r
+delete_col_desc:"Effacer colonne",\r
+split_cells_desc:"Scinder les cellules fusionn\u00E9es",\r
+merge_cells_desc:"Fusionner les cellules",\r
+row_desc:"Propri\u00E9t\u00E9s de la ligne",\r
+cell_desc:"Propri\u00E9t\u00E9s de la cellule",\r
+props_desc:"Propri\u00E9t\u00E9s du tableau",\r
+paste_row_before_desc:"Coller la ligne avant",\r
+paste_row_after_desc:"Coller la ligne apr\u00E8s",\r
+cut_row_desc:"Couper la ligne",\r
+copy_row_desc:"Copier la ligne",\r
+del:"Effacer tableau",\r
+row:"Ligne",\r
+col:"Colonne",\r
+cell:"Cellule"\r
+},\r
+autosave:{\r
+unload_msg:"Les changements que vous avez faits seront perdus si vous changez de page."\r
+},\r
+fullscreen:{\r
+desc:"Passer en mode plein \u00E9cran"\r
+},\r
+media:{\r
+desc:"Ins\u00E9rer/\u00C9diter un fichier m\u00E9dia",\r
+edit:"\u00C9diter un fichier m\u00E9dia"\r
+},\r
+fullpage:{\r
+desc:"Propri\u00E9t\u00E9s du document"\r
+},\r
+template:{\r
+desc:"Ins\u00E9rer un mod\u00E8le pr\u00E9d\u00E9fini."\r
+},\r
+visualchars:{\r
+desc:"Activer les caract\u00E8res de mise en page."\r
+},\r
+spellchecker:{\r
+desc:"Activer le v\u00E9rificateur d'orthographe",\r
+menu:"Param\u00E8tres du v\u00E9rificateur d'orthographe",\r
+ignore_word:"Ignorer mot",\r
+ignore_words:"Ignorer tout",\r
+langs:"Langues",\r
+wait:"Patientez svp...",\r
+sug:"Suggestions",\r
+no_sug:"Aucune suggestions",\r
+no_mpell:"Aucune erreur trouv\u00E9e."\r
+},\r
+pagebreak:{\r
+desc:"Ins\u00E9rer saut de page."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({he:{\r
+common:{\r
+edit_confirm:"\u05D1\u05E8\u05E6\u05D5\u05E0\u05DA \u05DC\u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05E2\u05D5\u05E8\u05DA \u05D4\u05DE\u05EA\u05E7\u05D3\u05DD?",\r
+apply:"\u05D0\u05D9\u05E9\u05D5\u05E8",\r
+insert:"\u05D4\u05D5\u05E1\u05E4\u05D4",\r
+update:"\u05E2\u05D3\u05DB\u05D5\u05DF",\r
+cancel:"\u05D1\u05D9\u05D8\u05D5\u05DC",\r
+close:"\u05E1\u05D2\u05D9\u05E8\u05D4",\r
+browse:"\u05E2\u05D9\u05D5\u05DF",\r
+class_name:"\u05DE\u05D7\u05DC\u05E7\u05D4",\r
+not_set:"-- \u05DC\u05D0 \u05D4\u05D5\u05D2\u05D3\u05E8 --",\r
+clipboard_msg:"\r\n \u05D4\u05E2\u05EA\u05E7\u05D4/\u05D2\u05D6\u05D9\u05E8\u05D4 \u05D5\u05D4\u05D3\u05D1\u05E7\u05D4 \u05D0\u05D9\u05E0\u05DD \u05D6\u05DE\u05D9\u05E0\u05D9\u05DD \u05D1 Mozilla \u05D5\u05D1-Firefox.\r\n \u05D4\u05D0\u05DD \u05D1\u05E8\u05E6\u05D5\u05E0\u05DA \u05DC\u05E7\u05D1\u05DC \u05DE\u05D9\u05D3\u05E2 \u05E0\u05D5\u05E1\u05E3 \u05E2\u05DC \u05D4\u05E0\u05D5\u05E9\u05D0?\r\n ",\r
+clipboard_no_support:"\u05DB\u05E8\u05D2\u05E2 \u05DC\u05D0 \u05E0\u05EA\u05DE\u05DA \u05E2\u05DC \u05D9\u05D3\u05D9 \u05D4\u05D3\u05E4\u05D3\u05E4\u05DF \u05E9\u05DC\u05DA. \u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05E7\u05D9\u05E6\u05D5\u05E8\u05D9 \u05D4\u05DE\u05E7\u05DC\u05D3\u05EA.",\r
+popup_blocked:"\u05D7\u05D5\u05E1\u05DD \u05E4\u05E8\u05D9\u05D8\u05D9\u05DD \u05DE\u05D5\u05E7\u05E4\u05E6\u05D9\u05DD \u05DE\u05E0\u05E2 \u05DE\u05D7\u05DC\u05D5\u05DF \u05D7\u05E9\u05D5\u05D1 \u05DE\u05DC\u05D4\u05E4\u05EA\u05D7,\u05D0\u05DD \u05D1\u05E8\u05E6\u05D5\u05E0\u05DA \u05DC\u05D4\u05E9\u05EA\u05DE\u05E9 \u05D1\u05DB\u05DC\u05D9 \u05D6\u05D4 \u05E2\u05DC\u05D9\u05DA \u05DC\u05D1\u05D8\u05DC \u05D0\u05EA \u05D7\u05D5\u05E1\u05DD \u05D4\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",\r
+invalid_data:"Error: Invalid values entered, these are marked in red.",\r
+more_colors:"\u05E2\u05D5\u05D3 \u05E6\u05D1\u05E2\u05D9\u05DD"\r
+},\r
+contextmenu:{\r
+align:"\u05D9\u05D9\u05E9\u05D5\u05E8",\r
+left:"\u05E9\u05DE\u05D0\u05DC",\r
+center:"\u05D0\u05DE\u05E6\u05E2",\r
+right:"\u05D9\u05DE\u05D9\u05DF",\r
+full:"\u05E9\u05E0\u05D9 \u05D4\u05E6\u05D3\u05D3\u05D9\u05DD"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d-%m-%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u05D4\u05D5\u05E1\u05E4\u05EA \u05EA\u05D0\u05E8\u05D9\u05DA",\r
+inserttime_desc:"\u05D4\u05D5\u05E1\u05E4\u05EA \u05D6\u05DE\u05DF",\r
+months_long:"\u05D9\u05E0\u05D5\u05D0\u05E8,\u05E4\u05D1\u05E8\u05D5\u05D0\u05E8,\u05DE\u05E8\u05E5,\u05D0\u05E4\u05E8\u05D9\u05DC,\u05DE\u05D0\u05D9,\u05D9\u05D5\u05E0\u05E2,\u05D9\u05D5\u05DC\u05D9,\u05D0\u05D5\u05D2\u05D5\u05E1\u05D8,\u05E1\u05E4\u05D8\u05DE\u05D1\u05E8,\u05D0\u05D5\u05E7\u05D8\u05D5\u05D1\u05E8,\u05E0\u05D5\u05D1\u05DE\u05D1\u05E8,\u05D3\u05E6\u05DE\u05D1\u05E8",\r
+months_short:"\u05D9\u05E0\u05D5\u05D0\u05E8,\u05E4\u05D1\u05E8\u05D5\u05D0\u05E8,\u05DE\u05E8\u05E5,\u05D0\u05E4\u05E8\u05D9\u05DC,\u05DE\u05D0\u05D9,\u05D9\u05D5\u05E0\u05E2,\u05D9\u05D5\u05DC\u05D9,\u05D0\u05D5\u05D2\u05D5\u05E1\u05D8,\u05E1\u05E4\u05D8\u05DE\u05D1\u05E8,\u05D0\u05D5\u05E7\u05D8\u05D5\u05D1\u05E8,\u05E0\u05D5\u05D1\u05DE\u05D1\u05E8,\u05D3\u05E6\u05DE\u05D1\u05E8",\r
+day_long:"\u05D9\u05D5\u05DD \u05E8\u05D0\u05E9\u05D5\u05DF,\u05D9\u05D5\u05DD \u05E9\u05E0\u05D9,\u05D9\u05D5\u05DD \u05E9\u05DC\u05D9\u05E9\u05D9,\u05D9\u05D5\u05DD \u05E8\u05D1\u05D9\u05E2\u05D9,\u05D9\u05D5\u05DD \u05D7\u05DE\u05D9\u05E9\u05D9,\u05D9\u05D5\u05DD \u05E9\u05D9\u05E9,\u05D9\u05D5\u05DD \u05E9\u05D1\u05EA,\u05D9\u05D5\u05DD \u05E8\u05D0\u05E9\u05D5\u05DF",\r
+day_short:"\u05D9\u05D5\u05DD \u05D0',\u05D9\u05D5\u05DD \u05D1',\u05D9\u05D5\u05DD \u05D2',\u05D9\u05D5\u05DD \u05D3',\u05D9\u05D5\u05DD \u05D4',\u05D9\u05D5\u05DD \u05D5',\u05E9\u05D1\u05EA,\u05D9\u05D5\u05DD \u05D0'"\r
+},\r
+print:{\r
+print_desc:"\u05D4\u05D3\u05E4\u05E1\u05D4"\r
+},\r
+preview:{\r
+preview_desc:"\u05EA\u05E6\u05D5\u05D2\u05D4 \u05DE\u05E7\u05D3\u05D9\u05DE\u05D4"\r
+},\r
+directionality:{\r
+ltr_desc:"\u05DB\u05D9\u05D5\u05D5\u05DF \u05D8\u05E7\u05E1\u05D8 \u05DE\u05E9\u05DE\u05D0\u05DC \u05DC\u05D9\u05DE\u05D9\u05DF",\r
+rtl_desc:"\u05DB\u05D9\u05D5\u05D5\u05DF \u05D8\u05E7\u05E1\u05D8 \u05DE\u05D9\u05DE\u05D9\u05DF \u05DC\u05E9\u05DE\u05D0\u05DC"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u05D4\u05D5\u05E1\u05E4\u05EA \u05E9\u05DB\u05D1\u05D4 \u05D7\u05D3\u05E9\u05D4",\r
+forward_desc:"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05E7\u05D3\u05D9\u05DE\u05D4",\r
+backward_desc:"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05D0\u05D7\u05D5\u05E8\u05D4",\r
+absolute_desc:"\u05D1\u05D7\u05D9\u05E8\u05EA \u05DE\u05D9\u05E7\u05D5\u05DD \u05DE\u05D5\u05D7\u05DC\u05D8",\r
+content:"\u05E9\u05DB\u05D1\u05D4 \u05D7\u05D3\u05E9\u05D4..."\r
+},\r
+save:{\r
+save_desc:"\u05E9\u05DE\u05D9\u05E8\u05D4",\r
+cancel_desc:"\u05D1\u05D9\u05D8\u05D5\u05DC \u05DB\u05DC \u05D4\u05E9\u05D9\u05E0\u05D5\u05D9\u05DD"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u05D4\u05D5\u05E1\u05E4\u05EA \u05E8\u05D5\u05D5\u05D7"\r
+},\r
+iespell:{\r
+iespell_desc:"\u05D1\u05D3\u05D9\u05E7\u05EA \u05D0\u05D9\u05D5\u05EA",\r
+download:" \u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0 ieSpell. \u05D4\u05D0\u05DD \u05D1\u05E8\u05E6\u05D5\u05E0\u05DA \u05DC\u05D4\u05EA\u05E7\u05D9\u05DF?"\r
+},\r
+advhr:{\r
+advhr_desc:"\u05E7\u05D5 \u05D0\u05D5\u05E4\u05E7\u05D9"\r
+},\r
+emotions:{\r
+emotions_desc:"\u05E1\u05DE\u05D9\u05D9\u05DC\u05D9\u05DD"\r
+},\r
+searchreplace:{\r
+search_desc:"\u05D7\u05D9\u05E4\u05D5\u05E9",\r
+replace_desc:"\u05D4\u05D7\u05DC\u05E4\u05D4"\r
+},\r
+advimage:{\r
+image_desc:"\u05D4\u05D5\u05E1\u05E4\u05D4/\u05E2\u05E8\u05D9\u05DB\u05EA \u05EA\u05DE\u05D5\u05E0\u05D4"\r
+},\r
+advlink:{\r
+link_desc:"\u05D4\u05D5\u05E1\u05E4\u05D4/\u05E2\u05E8\u05D9\u05DB\u05EA \u05D4\u05D9\u05E4\u05E8-\u05E7\u05D9\u05E9\u05D5\u05E8"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"Abbreviation",\r
+acronym_desc:"Acronym",\r
+del_desc:"Deletion",\r
+ins_desc:"Insertion",\r
+attribs_desc:"Insert/Edit Attributes"\r
+},\r
+style:{\r
+desc:"\u05E2\u05D3\u05DB\u05D5\u05DF \u05D4\u05D2\u05D3\u05E8\u05D5\u05EA CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Paste as Plain Text",\r
+paste_word_desc:"Paste from Word",\r
+selectall_desc:"Select All"\r
+},\r
+paste_dlg:{\r
+text_title:"Use CTRL+V on your keyboard to paste the text into the window.",\r
+text_linebreaks:"Keep linebreaks",\r
+word_title:"Use CTRL+V on your keyboard to paste the text into the window."\r
+},\r
+table:{\r
+desc:"\u05D4\u05DB\u05E0\u05E1\u05EA \u05D8\u05D1\u05DC\u05D4 \u05D7\u05D3\u05E9\u05D4",\r
+row_before_desc:"\u05D4\u05DB\u05E0\u05E1\u05EA \u05E9\u05D5\u05E8\u05D4 \u05DC\u05E4\u05E0\u05D9",\r
+row_after_desc:"\u05D4\u05DB\u05E0\u05E1\u05EA \u05E9\u05D5\u05E8\u05D4 \u05D0\u05D7\u05E8\u05D9",\r
+delete_row_desc:"\u05DE\u05D7\u05E7/\u05D9 \u05E9\u05D5\u05E8\u05D4",\r
+col_before_desc:"\u05D4\u05DB\u05E0\u05E1\u05EA \u05E2\u05DE\u05D5\u05D3\u05D4 \u05DC\u05E4\u05E0\u05D9",\r
+col_after_desc:"\u05D4\u05DB\u05E0\u05E1\u05EA \u05E2\u05DE\u05D5\u05D3\u05D4 \u05D0\u05D7\u05E8\u05D9",\r
+delete_col_desc:"\u05D4\u05E1\u05E8\u05EA \u05E2\u05DE\u05D5\u05D3\u05D4",\r
+split_cells_desc:"\u05E4\u05D9\u05E6\u05D5\u05DC \u05EA\u05D0\u05D9\u05DD \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+merge_cells_desc:"\u05D0\u05D9\u05D7\u05D5\u05D3 \u05EA\u05D0\u05D9\u05DD \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+row_desc:"\u05EA\u05DB\u05D5\u05E0\u05D5\u05EA \u05E9\u05D5\u05E8\u05D4 \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+cell_desc:"\u05EA\u05DB\u05D5\u05E0\u05D5\u05EA \u05EA\u05D0 \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+props_desc:"\u05EA\u05DB\u05D5\u05E0\u05D5\u05EA \u05D4\u05D8\u05D1\u05DC\u05D4",\r
+paste_row_before_desc:"\u05D4\u05D3\u05D1\u05E7\u05EA \u05E9\u05D5\u05E8\u05D4 \u05D1\u05D8\u05D1\u05DC\u05D4 \u05DC\u05E4\u05E0\u05D9",\r
+paste_row_after_desc:"\u05D4\u05D3\u05D1\u05E7\u05EA \u05E9\u05D5\u05E8\u05D4 \u05D1\u05D8\u05D1\u05DC\u05D4 \u05D0\u05D7\u05E8\u05D9",\r
+cut_row_desc:"\u05D2\u05D6\u05D9\u05E8\u05EA \u05E9\u05D5\u05E8\u05D4 \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+copy_row_desc:"\u05D4\u05E2\u05EA\u05E7\u05EA \u05E9\u05D5\u05E8\u05D4 \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+del:"\u05DE\u05D7\u05D9\u05E7\u05EA \u05D8\u05D1\u05DC\u05D4",\r
+row:"\u05E9\u05D5\u05E8\u05D4",\r
+col:"\u05E2\u05DE\u05D5\u05D3\u05D4",\r
+cell:"\u05EA\u05D0"\r
+},\r
+autosave:{\r
+unload_msg:"\u05D4\u05E9\u05D9\u05E0\u05D5\u05D9\u05D9\u05DD \u05E9\u05D1\u05D9\u05E6\u05E2\u05EA \u05DC\u05D0 \u05D9\u05E9\u05DE\u05E8\u05D5 \u05D0\u05DD \u05EA\u05E2\u05D1\u05D5\u05E8 \u05DE\u05D3\u05E3 \u05D6\u05D4"\r
+},\r
+fullscreen:{\r
+desc:"Toggle fullscreen mode"\r
+},\r
+media:{\r
+desc:"Insert / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"Document properties"\r
+},\r
+template:{\r
+desc:"Insert predefined template content"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"Toggle spellchecker",\r
+menu:"Spellchecker settings",\r
+ignore_word:"Ignore word",\r
+ignore_words:"Ignore all",\r
+langs:"\u05E9\u05E4\u05D5\u05EA",\r
+wait:"Please wait...",\r
+sug:"Suggestions",\r
+no_sug:"No suggestions",\r
+no_mpell:"No misspellings found."\r
+},\r
+pagebreak:{\r
+desc:"Insert page break."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({hr:{\r
+common:{\r
+edit_confirm:"\u017Delite li koristiti WYSIWYG na\u010Din rada za ovo tekstualno polje?",\r
+apply:"Primjeni",\r
+insert:"Umetni",\r
+update:"Obnovi",\r
+cancel:"Odustani",\r
+close:"Zatvori",\r
+browse:"Pregled",\r
+class_name:"Klasa",\r
+not_set:"-- Nije postavljeno --",\r
+clipboard_msg:"Kopiraj/Izre\u017Ei/Zalijepi nije dostupno Mozilla i Firefox preglednicima.\nVi\u0161e informacija?",\r
+clipboard_no_support:"Trenuta\u010Dno va\u0161 preglednik ne podr\u017Eava ovu opciju, poku\u0161ajte koristiti tipkovni\u010Dku kraticu.",\r
+popup_blocked:"Oprostite, izgleda da je va\u0161 popup-blocker onemogu\u0107io prozor u sklopu ovog programa. Morate onemogu\u0107iti blokiranje popup prozora da bi u potpunosti iskoristili ovaj alat.",\r
+invalid_data:"Gre\u0161ka: Une\u0161ene su nevaljane vrijednosti, ozna\u010Dene su crvenom bojom.",\r
+more_colors:"Vi\u0161e boja"\r
+},\r
+contextmenu:{\r
+align:"Poravnavanje",\r
+left:"Lijevo",\r
+center:"Sredina",\r
+right:"Desno",\r
+full:"Puno"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d.%m.%Y.",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Umetni datum",\r
+inserttime_desc:"Umetni vrijeme",\r
+months_long:"sije\u010Danj,velja\u010Da,o\u017Eujak,travanj,svibanj,lipanj,srpanj,kolovoz,rujan,listopad,studeni,prosinac",\r
+months_short:"sij,velj,o\u017Eu,tra,svi,lip,srp,kol,ruj,lis,stu,pro",\r
+day_long:"nedjelja,ponedjeljak,utorak,srijeda,\u010Detvrtak,petak,subota,nedjelja",\r
+day_short:"ned,pon,uto,sri,\u010Det,pet,sub,ned"\r
+},\r
+print:{\r
+print_desc:"Ispis"\r
+},\r
+preview:{\r
+preview_desc:"Prikaz"\r
+},\r
+directionality:{\r
+ltr_desc:"S lijeva na desno",\r
+rtl_desc:"S desna na lijevo"\r
+},\r
+layer:{\r
+insertlayer_desc:"Umetni novi sloj",\r
+forward_desc:"Pomakni naprijed",\r
+backward_desc:"Pomakni natrag",\r
+absolute_desc:"Uklju\u010Di/isklju\u010Di apsolutno pozicioniranje",\r
+content:"Novi sloj..."\r
+},\r
+save:{\r
+save_desc:"Spremi",\r
+cancel_desc:"Odustani od svih promjena"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Umetni razmak"\r
+},\r
+iespell:{\r
+iespell_desc:"Pokreni provjeru pravopisa",\r
+download:"Provjera pravopisa nije postaljena. Postaviti sada?"\r
+},\r
+advhr:{\r
+advhr_desc:"Vodoravna crta"\r
+},\r
+emotions:{\r
+emotions_desc:"Emocije"\r
+},\r
+searchreplace:{\r
+search_desc:"Prona\u0111i",\r
+replace_desc:"Prona\u0111i/Zamijeni"\r
+},\r
+advimage:{\r
+image_desc:"Umetni/uredi sliku"\r
+},\r
+advlink:{\r
+link_desc:"Insert/edit link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citat",\r
+abbr_desc:"Kratica",\r
+acronym_desc:"Akronim",\r
+del_desc:"Brisanje",\r
+ins_desc:"Unos",\r
+attribs_desc:"Umetni/uredi atribute"\r
+},\r
+style:{\r
+desc:"Uredi CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Zalijepi kao obi\u010Dni tekst",\r
+paste_word_desc:"Zalijepi iz Worda",\r
+selectall_desc:"Odaberi sve"\r
+},\r
+paste_dlg:{\r
+text_title:"Koristite CTRL+V na tipkovnici da zalijepite tekst u prozor.",\r
+text_linebreaks:"Zadr\u017Ei prijelome",\r
+word_title:"Koristite CTRL+V na tipkovnici da zalijepite tekst u prozor."\r
+},\r
+table:{\r
+desc:"Nova tablica",\r
+row_before_desc:"Umetni redak iznad",\r
+row_after_desc:"Umetni redak ispod",\r
+delete_row_desc:"Izbri\u0161i redak",\r
+col_before_desc:"Umetni stupac lijevo",\r
+col_after_desc:"Umetni stupac desno",\r
+delete_col_desc:"Ukloni stupac",\r
+split_cells_desc:"Razdvoji spojene \u0107elije",\r
+merge_cells_desc:"Spoji \u0107elije",\r
+row_desc:"Svojstva retka",\r
+cell_desc:"Svojstva \u0107elije",\r
+props_desc:"Svojstva tablice",\r
+paste_row_before_desc:"Zalijepi redak iznad",\r
+paste_row_after_desc:"Zalijepi redak ispod",\r
+cut_row_desc:"Izre\u017Ei redak",\r
+copy_row_desc:"Kopiraj redak",\r
+del:"Izbri\u0161i tablicu",\r
+row:"Redak",\r
+col:"Stupac",\r
+cell:"\u0106elija"\r
+},\r
+autosave:{\r
+unload_msg:"Promjene u dokumentu \u0107e biti izgubljene ako iza\u0111ete s ove stranice."\r
+},\r
+fullscreen:{\r
+desc:"Uklju\u010Di/isklju\u010Di prikaz preko cijelog ekrana"\r
+},\r
+media:{\r
+desc:"Insert / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"Svojstva dokumenta"\r
+},\r
+template:{\r
+desc:"Umetni sadr\u017Eaj iz predlo\u017Eak"\r
+},\r
+visualchars:{\r
+desc:"Vizualni kontrolni znakovi uklju\u010Deni/isklju\u010Deni."\r
+},\r
+spellchecker:{\r
+desc:"Uklju\u010Di/isklju\u010Di provjeru pravopisa",\r
+menu:"Postavke provjere pravopisa",\r
+ignore_word:"Zanemari rije\u010D",\r
+ignore_words:"Zanemari sver",\r
+langs:"Jezici",\r
+wait:"Pri\u010Dekajte...",\r
+sug:"Prijedlozi",\r
+no_sug:"Nema prijedloga",\r
+no_mpell:"Nije prona\u0111ena nijedna pravopisna gre\u0161ke."\r
+},\r
+pagebreak:{\r
+desc:"Umetni prijelom."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({hu:{\r
+common:{\r
+edit_confirm:"Haszn\u00E1lni akarja a WYSIWYG m\u00F3dot ebben a sz\u00F6vegdobozban?",\r
+apply:"Alkalmaz",\r
+insert:"Besz\u00FAr",\r
+update:"Friss\u00EDt",\r
+cancel:"M\u00E9gse",\r
+close:"Bez\u00E1r",\r
+browse:"Tall\u00F3z",\r
+class_name:"Oszt\u00E1ly",\r
+not_set:"-- Nincs megadva --",\r
+clipboard_msg:"A M\u00E1sol\u00E1s/Kiv\u00E1g\u00E1s/Besz\u00FAr\u00E1s funkci\u00F3k nem el\u00E9rhet\u0151k Mozilla \u00E9s Firefox alatt.\nK\u00EDv\u00E1n t\u00F6bbet tudni err\u0151l a t\u00E9m\u00E1r\u00F3l?",\r
+clipboard_no_support:"Jelenleg nem t\u00E1mogatja a b\u00F6ng\u00E9sz\u0151je, haszn\u00E1lja a billenty\u0171kombin\u00E1ci\u00F3kat helyette.",\r
+popup_blocked:"A felugr\u00F3 ablakok tilt\u00E1sa miatt nem tudtunk megjelen\u00EDteni egy, az alkalmaz\u00E1shoz sz\u00FCks\u00E9ges ablakot. Enged\u00E9lyezze a b\u00F6ng\u00E9sz\u0151j\u00E9ben a felugr\u00F3 ablakokat, hogy minden funkci\u00F3t haszn\u00E1lhasson.",\r
+invalid_data:"Hiba: \u00C9rv\u00E9nytelen adatok, pirossal jel\u00F6lve.",\r
+more_colors:"T\u00F6bb sz\u00EDn"\r
+},\r
+contextmenu:{\r
+align:"Igaz\u00EDt\u00E1s",\r
+left:"Balra",\r
+center:"K\u00F6z\u00E9pre",\r
+right:"Jobbra",\r
+full:"Sorkiz\u00E1r\u00E1s"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y.%m.%d.",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"D\u00E1tum besz\u00FAr\u00E1sa",\r
+inserttime_desc:"Id\u0151 besz\u00FAr\u00E1sa",\r
+months_long:"janu\u00E1r,febru\u00E1r,m\u00E1rcius,\u00E1prilis,m\u00E1jus,j\u00FAnius,j\u00FAlius,augusztus,szeptember,okt\u00F3ber,november,december",\r
+months_short:"jan,feb,m\u00E1r,\u00E1pr,m\u00E1j,j\u00FAn,j\u00FAl,aug,szep,okt,nov,dec",\r
+day_long:"vas\u00E1rnap,h\u00E9tf\u0151,kedd,szerda,cs\u00FCt\u00F6rt\u00F6k,p\u00E9ntek,szombat,vas\u00E1rnap",\r
+day_short:"V,H,K,Sze,Cs,P,Szo,V"\r
+},\r
+print:{\r
+print_desc:"Nyomtat\u00E1s"\r
+},\r
+preview:{\r
+preview_desc:"El\u0151n\u00E9zet"\r
+},\r
+directionality:{\r
+ltr_desc:"Balr\u00F3l jobbra",\r
+rtl_desc:"Jobbr\u00F3l balra"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u00DAj r\u00E9teg besz\u00FAr\u00E1sa",\r
+forward_desc:"Mozgat\u00E1s el\u0151re",\r
+backward_desc:"Mozgat\u00E1s h\u00E1tra",\r
+absolute_desc:"Abszol\u00FAt poz\u00EDci\u00F3 ki-/bekapcsol\u00E1sa",\r
+content:"\u00DAj r\u00E9teg..."\r
+},\r
+save:{\r
+save_desc:"Ment\u00E9s",\r
+cancel_desc:"\u00D6sszes v\u00E1ltoz\u00E1s visszavon\u00E1sa"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Nemsort\u00F6r\u0151 sz\u00F3k\u00F6z besz\u00FAr\u00E1sa"\r
+},\r
+iespell:{\r
+iespell_desc:"Helyes\u00EDr\u00E1s-ellen\u0151rz\u00E9s futtat\u00E1sa",\r
+download:"ieSpell nem tal\u00E1lhat\u00F3. Telep\u00EDti most?"\r
+},\r
+advhr:{\r
+advhr_desc:"V\u00EDzszintes vonal"\r
+},\r
+emotions:{\r
+emotions_desc:"Hangulatjelek"\r
+},\r
+searchreplace:{\r
+search_desc:"Keres\u00E9s",\r
+replace_desc:"Keres\u00E9s/Csere"\r
+},\r
+advimage:{\r
+image_desc:"K\u00E9p besz\u00FAr\u00E1sa/szerkeszt\u00E9se"\r
+},\r
+advlink:{\r
+link_desc:"Link besz\u00FAr\u00E1sa/szerkeszt\u00E9s"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Id\u00E9zet",\r
+abbr_desc:"R\u00F6vid\u00EDt\u00E9s",\r
+acronym_desc:"Bet\u0171sz\u00F3",\r
+del_desc:"T\u00F6r\u00F6lt",\r
+ins_desc:"Besz\u00FArt",\r
+attribs_desc:"Tulajdons\u00E1gok besz\u00FAr\u00E1sa/szerkeszt\u00E9se"\r
+},\r
+style:{\r
+desc:"CSS st\u00EDlus szerkeszt\u00E9se"\r
+},\r
+paste:{\r
+paste_text_desc:"Besz\u00FAr\u00E1s sz\u00F6vegk\u00E9nt",\r
+paste_word_desc:"Besz\u00FAr\u00E1s Wordb\u0151l",\r
+selectall_desc:"Mindent kijel\u00F6l"\r
+},\r
+paste_dlg:{\r
+text_title:"Haszn\u00E1lja a Ctrl+V-t a billenty\u0171zet\u00E9n a beilleszt\u00E9shez.",\r
+text_linebreaks:"Sort\u00F6r\u00E9sek megtart\u00E1sa",\r
+word_title:"Haszn\u00E1lja a Ctrl+V-t a billenty\u0171zet\u00E9n a beilleszt\u00E9shez."\r
+},\r
+table:{\r
+desc:"T\u00E1bl\u00E1zat besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+row_before_desc:"Sor besz\u00FAr\u00E1sa el\u00E9",\r
+row_after_desc:"Sor besz\u00FAr\u00E1sa ut\u00E1na",\r
+delete_row_desc:"Sor t\u00F6rl\u00E9se",\r
+col_before_desc:"Oszlop besz\u00FAr\u00E1sa el\u00E9",\r
+col_after_desc:"Oszlop besz\u00FAr\u00E1sa ut\u00E1na",\r
+delete_col_desc:"Oszlop t\u00F6rl\u00E9se",\r
+split_cells_desc:"Cell\u00E1k feloszt\u00E1sa",\r
+merge_cells_desc:"Cell\u00E1k \u00F6sszevon\u00E1sa",\r
+row_desc:"Sor tulajdons\u00E1gai",\r
+cell_desc:"Cella tulajdons\u00E1gai",\r
+props_desc:"T\u00E1bl\u00E1zat tulajdons\u00E1gai",\r
+paste_row_before_desc:"Sor bem\u00E1sol\u00E1sa el\u00E9",\r
+paste_row_after_desc:"Sor bem\u00E1sol\u00E1sa ut\u00E1na",\r
+cut_row_desc:"Sor kiv\u00E1g\u00E1sa",\r
+copy_row_desc:"Sor m\u00E1sol\u00E1sa",\r
+del:"T\u00E1bl\u00E1zat t\u00F6rl\u00E9se",\r
+row:"Sor",\r
+col:"Oszlop",\r
+cell:"Cella"\r
+},\r
+autosave:{\r
+unload_msg:"A m\u00F3dos\u00EDt\u00E1sok nem lesznek mentve, ha elhagyja az oldalt."\r
+},\r
+fullscreen:{\r
+desc:"Teljesk\u00E9perny\u0151s m\u00F3d ki-/bekapcsol\u00E1sa"\r
+},\r
+media:{\r
+desc:"Be\u00E1gyazott m\u00E9dia besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+edit:"Be\u00E1gyazott m\u00E9dia szerkeszt\u00E9se"\r
+},\r
+fullpage:{\r
+desc:"Dokumentum tulajdons\u00E1gai"\r
+},\r
+template:{\r
+desc:"Sablon beilleszt\u00E9se"\r
+},\r
+visualchars:{\r
+desc:"Vizu\u00E1lis vez\u00E9rl\u0151karakterek be/ki."\r
+},\r
+spellchecker:{\r
+desc:"Helyes\u00EDr\u00E1s-ellen\u0151rz\u0151 ki-/bekapcsol\u00E1sa",\r
+menu:"Helyes\u00EDr\u00E1s-ellen\u0151rz\u0151 tulajdons\u00E1gai",\r
+ignore_word:"Sz\u00F3 kihagy\u00E1sa",\r
+ignore_words:"Mindet kihagy",\r
+langs:"Nyelvek",\r
+wait:"K\u00E9rem, v\u00E1rjon...",\r
+sug:"Aj\u00E1nl\u00E1sok",\r
+no_sug:"Nincs aj\u00E1nl\u00E1s",\r
+no_mpell:"Nem tal\u00E1ltam helyes\u00EDr\u00E1si hib\u00E1t."\r
+},\r
+pagebreak:{\r
+desc:"Oldalt\u00F6r\u00E9s besz\u00FAr\u00E1sa."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({is:{\r
+common:{\r
+edit_confirm:"Viltu nota WYSIWYG ritil fyrir \u00FEetta textasv\u00E6\u00F0i?",\r
+apply:"Sta\u00F0festa",\r
+insert:"Setja inn",\r
+update:"Uppf\u00E6ra",\r
+cancel:"H\u00E6tta vi\u00F0",\r
+close:"Loka",\r
+browse:"Gramsa",\r
+class_name:"Klasi",\r
+not_set:"-- Ekki skilgreint --",\r
+clipboard_msg:"Afrita/Klippa/L\u00EDma er ekki a\u00F0gengilegt \u00ED Mozilla og Firefox eins og er.\nViltu f\u00E1 n\u00E1nari uppl\u00FDsingar?",\r
+clipboard_no_support:"Ekki stutt \u00ED \u00FE\u00EDnum vefsko\u00F0ara, nota\u00F0ur fl\u00FDtilykla \u00ED sta\u00F0inn.",\r
+popup_blocked:"Afsaki\u00F0, uppsprettuv\u00F6rnin \u00FE\u00EDn (popup blocker) hefur blokka\u00F0 glugga sem er hluti af ritlinum. \u00DE\u00FA ver\u00F0ur a\u00F0 sl\u00F6kkva \u00E1 uppsprettuv\u00F6rn til a\u00F0 geta nota\u00F0 \u00FEennan ritil.",\r
+invalid_data:"Villa: Vitlaus gildi slegin inn, \u00FEau eru merkt me\u00F0 rau\u00F0u.",\r
+more_colors:"Fleiri litir"\r
+},\r
+contextmenu:{\r
+align:"J\u00F6fnun",\r
+left:"Vinstri",\r
+center:"Mi\u00F0ja",\r
+right:"H\u00E6gri",\r
+full:"Full"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Setja inn dagsetningu",\r
+inserttime_desc:"Setja inn t\u00EDmasetningu",\r
+months_long:"Jan\u00FAar,Febr\u00FAar,Mars,Apr\u00EDl,Ma\u00ED,J\u00FAn\u00ED,J\u00FAl\u00ED,\u00C1g\u00FAst,September,Okt\u00F3ber,N\u00F3vember,Desember",\r
+months_short:"Jan,Feb,Mar,Apr,Ma\u00ED,J\u00FAn,J\u00FAl,\u00C1gs,Sep,Okt,N\u00F3v,Des",\r
+day_long:"Sunnudagur,M\u00E1nudagur,\u00DEri\u00F0judagur,Mi\u00F0vikudagur,Fimmtudagur,F\u00F6studagur,Laugardagur,Sunnudagur",\r
+day_short:"Sun,M\u00E1n,\u00DEri,Mi\u00F0,Fim,F\u00F6s,Lau,Sun"\r
+},\r
+print:{\r
+print_desc:"Prenta"\r
+},\r
+preview:{\r
+preview_desc:"Forsko\u00F0a"\r
+},\r
+directionality:{\r
+ltr_desc:"Fr\u00E1 vinstri til h\u00E6gri",\r
+rtl_desc:"Fr\u00E1 h\u00E6gri til vinstri"\r
+},\r
+layer:{\r
+insertlayer_desc:"Setja inn n\u00FDtt lag",\r
+forward_desc:"F\u00E6ra framfyrir",\r
+backward_desc:"F\u00E6ra afturfyrir",\r
+absolute_desc:"Taka af/setja \u00E1 absolute positioning",\r
+content:"N\u00FDtt lag..."\r
+},\r
+save:{\r
+save_desc:"Vista",\r
+cancel_desc:"H\u00E6tta vi\u00F0 allar breytingar"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Setja inn bil staf"\r
+},\r
+iespell:{\r
+iespell_desc:"Lesa yfir",\r
+download:"ieSpell fannst ekki. Viltu setja \u00FEa\u00F0 inn n\u00FAna?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horizontal rule"\r
+},\r
+emotions:{\r
+emotions_desc:"Broskarlar"\r
+},\r
+searchreplace:{\r
+search_desc:"Finna",\r
+replace_desc:"Finna/Skipta \u00FAt"\r
+},\r
+advimage:{\r
+image_desc:"Setja inn/breyta mynd"\r
+},\r
+advlink:{\r
+link_desc:"Insert/edit link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"Abbreviation",\r
+acronym_desc:"Acronym",\r
+del_desc:"Deletion",\r
+ins_desc:"Insertion",\r
+attribs_desc:"Insert/Edit Attributes"\r
+},\r
+style:{\r
+desc:"Edit CSS Style"\r
+},\r
+paste:{\r
+paste_text_desc:"Paste as Plain Text",\r
+paste_word_desc:"Paste from Word",\r
+selectall_desc:"Select All"\r
+},\r
+paste_dlg:{\r
+text_title:"Use CTRL+V on your keyboard to paste the text into the window.",\r
+text_linebreaks:"Keep linebreaks",\r
+word_title:"Use CTRL+V on your keyboard to paste the text into the window."\r
+},\r
+table:{\r
+desc:"Inserts a new table",\r
+row_before_desc:"Insert row before",\r
+row_after_desc:"Insert row after",\r
+delete_row_desc:"Delete row",\r
+col_before_desc:"Insert column before",\r
+col_after_desc:"Insert column after",\r
+delete_col_desc:"Remove column",\r
+split_cells_desc:"Split merged table cells",\r
+merge_cells_desc:"Merge table cells",\r
+row_desc:"Table row properties",\r
+cell_desc:"Table cell properties",\r
+props_desc:"Table properties",\r
+paste_row_before_desc:"Paste table row before",\r
+paste_row_after_desc:"Paste table row after",\r
+cut_row_desc:"Cut table row",\r
+copy_row_desc:"Copy table row",\r
+del:"Delete table",\r
+row:"Row",\r
+col:"Column",\r
+cell:"Cell"\r
+},\r
+autosave:{\r
+unload_msg:"The changes you made will be lost if you navigate away from this page."\r
+},\r
+fullscreen:{\r
+desc:"Toggle fullscreen mode"\r
+},\r
+media:{\r
+desc:"Insert / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"Document properties"\r
+},\r
+template:{\r
+desc:"Insert predefined template content"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"Toggle spellchecker",\r
+menu:"Spellchecker settings",\r
+ignore_word:"Ignore word",\r
+ignore_words:"Ignore all",\r
+langs:"Languages",\r
+wait:"Please wait...",\r
+sug:"Suggestions",\r
+no_sug:"No suggestions",\r
+no_mpell:"No misspellings found."\r
+},\r
+pagebreak:{\r
+desc:"Insert page break."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({it:{\r
+common:{\r
+edit_confirm:"Usare la modalit\u00E0 WYSIWYG per questa textarea?",\r
+apply:"Applica",\r
+insert:"Inserisci",\r
+update:"Aggiorna",\r
+cancel:"Annulla",\r
+close:"Chiudi",\r
+browse:"Sfoglia",\r
+class_name:"Classe",\r
+not_set:"-- Non impostato --",\r
+clipboard_msg:"Copia/Taglia/Incolla non \u00E8 disponibile in Mozilla e Firefox.\nSi desidera avere maggiori informazioni su questo problema?",\r
+clipboard_no_support:"Attualmente non supportato dal browser in uso, usare le scorciatoie da tastiera.",\r
+popup_blocked:"Spiacente, ma il blocco delle popup ha disabilitato una finestra che fornisce funzionalit\u00E0 dell'applicazione. Si deve disabilitare il blocco delle popup per questo sito per poter utlizzare appieno questo strumento.",\r
+invalid_data:"Errore: valori inseriti non validi, sono marcati in rosso.",\r
+more_colors:"Colori aggiuntivi"\r
+},\r
+contextmenu:{\r
+align:"Allineamento",\r
+left:"Allinea a sinistra",\r
+center:"Centra",\r
+right:"Allinea a destra",\r
+full:"Giustifica"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Inserisci data",\r
+inserttime_desc:"Inserisci ora",\r
+months_long:"Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre",\r
+months_short:"Gen,Feb,Mar,Apr,Mag,Giu,Lug,Ago,Set,Ott,Nov,Dic",\r
+day_long:"Domenica,Luned\u00EC,Marted\u00EC,Mercoled\u00EC,Gioved\u00EC,Venerd\u00EC,Sabato,Domenica",\r
+day_short:"Dom,Lun,Mar,Mer,Gio,Ven,Sab,Dom"\r
+},\r
+print:{\r
+print_desc:"Stampa"\r
+},\r
+preview:{\r
+preview_desc:"Anteprima"\r
+},\r
+directionality:{\r
+ltr_desc:"Direzione da sinistra a destra",\r
+rtl_desc:"Direzione da destra a sinistra"\r
+},\r
+layer:{\r
+insertlayer_desc:"Inserisci nuovo layer",\r
+forward_desc:"Porta in rilievo",\r
+backward_desc:"Porta in sfondo",\r
+absolute_desc:"Attiva/Disattiva posizionamento assoluto",\r
+content:"Nuovo layer..."\r
+},\r
+save:{\r
+save_desc:"Save",\r
+cancel_desc:"Cancella tutte le modifiche"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Inserisci uno spazio"\r
+},\r
+iespell:{\r
+iespell_desc:"Esegui controllo ortografico",\r
+download:"ieSpell non rilevato. Installarlo ora?"\r
+},\r
+advhr:{\r
+advhr_desc:"Riga orizzontale"\r
+},\r
+emotions:{\r
+emotions_desc:"Faccine"\r
+},\r
+searchreplace:{\r
+search_desc:"Trova",\r
+replace_desc:"Trova/Sostituisci"\r
+},\r
+advimage:{\r
+image_desc:"Inserisci/modifica immagine"\r
+},\r
+advlink:{\r
+link_desc:"Inserisci/modifica collegamento"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citazione",\r
+abbr_desc:"Abbreviazione",\r
+acronym_desc:"Acronimo",\r
+del_desc:"Cancellamento",\r
+ins_desc:"Inserimento",\r
+attribs_desc:"Inserisci/modifica attributi"\r
+},\r
+style:{\r
+desc:"Modifica stile CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Incolla come testo semplice",\r
+paste_word_desc:"Incolla da Word",\r
+selectall_desc:"Seleziona tutto"\r
+},\r
+paste_dlg:{\r
+text_title:"Premere CTRL+V sulla tastiera per incollare il testo nella finestra.",\r
+text_linebreaks:"Mantieni interruzioni di riga",\r
+word_title:"Premere CTRL+V sulla tastiera per incollare il testo nella finestra."\r
+},\r
+table:{\r
+desc:"Inserisci una nuova tabella",\r
+row_before_desc:"Inserisci riga prima",\r
+row_after_desc:"Inserisci riga dopo",\r
+delete_row_desc:"Elimina riga",\r
+col_before_desc:"Inserisci colonna prima",\r
+col_after_desc:"Inserisci colonna dopo",\r
+delete_col_desc:"Elimina colonna",\r
+split_cells_desc:"Separa celle",\r
+merge_cells_desc:"Unisci celle",\r
+row_desc:"Propriet\u00E0 riga",\r
+cell_desc:"Propriet\u00E0 cella",\r
+props_desc:"Propriet\u00E0 tabella",\r
+paste_row_before_desc:"Incolla riga prima",\r
+paste_row_after_desc:"Incolla riga dopo",\r
+cut_row_desc:"Taglia riga",\r
+copy_row_desc:"Copia riga",\r
+del:"Elimina tabella",\r
+row:"Riga",\r
+col:"Colonna",\r
+cell:"Cella"\r
+},\r
+autosave:{\r
+unload_msg:"I cambiamenti effettuati saranno persi se si abbandona la pagina corrente."\r
+},\r
+fullscreen:{\r
+desc:"Attiva/disattiva modalit\u00E0 a tutto schermo"\r
+},\r
+media:{\r
+desc:"Inserisci/modifica file multimediale",\r
+edit:"Modifica file multimediale"\r
+},\r
+fullpage:{\r
+desc:"Propriet\u00E0 Documento"\r
+},\r
+template:{\r
+desc:"Inserisci contenuto da modello predefinito"\r
+},\r
+visualchars:{\r
+desc:"Attiva/disattiva caratteri di controllo visuale."\r
+},\r
+spellchecker:{\r
+desc:"Attiva/disattiva controllo ortografico",\r
+menu:"Impostazioni controllo ortografico",\r
+ignore_word:"Ignora parola",\r
+ignore_words:"Ignora tutto",\r
+langs:"Lingue",\r
+wait:"Attendere prego...",\r
+sug:"Suggerimenti",\r
+no_sug:"Nessun suggerimento",\r
+no_mpell:"Nessun errore rilevato."\r
+},\r
+pagebreak:{\r
+desc:"Inserisci intterruzione di pagina."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({ja:{\r
+common:{\r
+edit_confirm:"WYSIWYG\u30E2\u30FC\u30C9\u306B\u5207\u308A\u66FF\u3048\u307E\u3059\u304B\uFF1F",\r
+apply:"\u9069\u7528",\r
+insert:"\u633F\u5165",\r
+update:"\u66F4\u65B0",\r
+cancel:"\u30AD\u30E3\u30F3\u30BB\u30EB",\r
+close:"\u9589\u3058\u308B",\r
+browse:"\u53C2\u7167",\r
+class_name:"\u30AF\u30E9\u30B9",\r
+not_set:"-- \u672A\u8A2D\u5B9A --",\r
+clipboard_msg:"\u30B3\u30D4\u30FC/\u5207\u308A\u53D6\u308A/\u8CBC\u308A\u4ED8\u3051\u306FMozilla\u53CA\u3073Firefox\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\u8A73\u7D30\u306F\u3053\u3061\u3089",\r
+clipboard_no_support:"\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u64CD\u4F5C\u306F\u304A\u4F7F\u3044\u306E\u30D6\u30E9\u30A6\u30B6\u306B\u306F\u5BFE\u5FDC\u3057\u3066\u304A\u308A\u307E\u305B\u3093\u3002\u4EE3\u308F\u308A\u306B\u30AD\u30FC\u30DC\u30FC\u30C9\u306E\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u3092\u304A\u4F7F\u3044\u4E0B\u3055\u3044\u3002",\r
+popup_blocked:"\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u304C\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u307E\u3057\u305F\u3002\u3059\u3079\u3066\u306E\u6A5F\u80FD\u3092\u3054\u5229\u7528\u306B\u306A\u308B\u306B\u306F\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u3092\u8A31\u53EF\u3057\u3066\u4E0B\u3055\u3044\u3002",\r
+invalid_data:"\u30A8\u30E9\u30FC: \u5165\u529B\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3059\u3002\uFF08\u8D64\u5B57\u306E\u9805\u76EE\uFF09",\r
+more_colors:"\u305D\u306E\u4ED6\u306E\u8272"\r
+},\r
+contextmenu:{\r
+align:"\u914D\u7F6E",\r
+left:"\u5DE6\u63C3\u3048",\r
+center:"\u4E2D\u592E\u63C3\u3048",\r
+right:"\u53F3\u63C3\u3048",\r
+full:"\u5747\u7B49\u5272\u4ED8"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u65E5\u4ED8\u306E\u633F\u5165",\r
+inserttime_desc:"\u6642\u523B\u306E\u633F\u5165",\r
+months_long:"January,February,March,April,May,June,July,August,September,October,November,December",\r
+months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",\r
+day_long:"\u65E5\u66DC\u65E5,\u6708\u66DC\u65E5,\u706B\u66DC\u65E5,\u6C34\u66DC\u65E5,\u6728\u66DC\u65E5,\u91D1\u66DC\u65E5,\u571F\u66DC\u65E5,\u65E5\u66DC\u65E5",\r
+day_short:"(\u65E5),(\u6708),(\u706B),(\u6C34),(\u6728),(\u91D1),(\u571F),(\u65E5)"\r
+},\r
+print:{\r
+print_desc:"\u5370\u5237"\r
+},\r
+preview:{\r
+preview_desc:"\u30D7\u30EC\u30D3\u30E5\u30FC"\r
+},\r
+directionality:{\r
+ltr_desc:"\u5DE6\u304B\u3089\u53F3",\r
+rtl_desc:"\u53F3\u304B\u3089\u5DE6"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u65B0\u898F\u30EC\u30A4\u30E4\u30FC\u306E\u633F\u5165",\r
+forward_desc:"\u524D\u9762\u3078\u79FB\u52D5",\r
+backward_desc:"\u80CC\u9762\u3078\u79FB\u52D5",\r
+absolute_desc:"\u7D76\u5BFE\u4F4D\u7F6E\u6307\u5B9A\u306E\u5207\u66FF",\r
+content:"\u65B0\u898F\u30EC\u30A4\u30E4\u30FC"\r
+},\r
+save:{\r
+save_desc:"\u4FDD\u5B58",\r
+cancel_desc:"\u5168\u3066\u306E\u5909\u66F4\u3092\u7834\u68C4"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u6539\u884C\u306A\u3057\u30B9\u30DA\u30FC\u30B9\u306E\u633F\u5165"\r
+},\r
+iespell:{\r
+iespell_desc:"\u30B9\u30DA\u30EB\u30C1\u30A7\u30C3\u30AF",\r
+download:"ieSpell\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u4ECA\u3059\u3050\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B\uFF1F"\r
+},\r
+advhr:{\r
+advhr_desc:"\u6C34\u5E73\u7DDA"\r
+},\r
+emotions:{\r
+emotions_desc:"\u8868\u60C5\u30A2\u30A4\u30B3\u30F3"\r
+},\r
+searchreplace:{\r
+search_desc:"\u691C\u7D22",\r
+replace_desc:"\u691C\u7D22/\u7F6E\u63DB"\r
+},\r
+advimage:{\r
+image_desc:"\u753B\u50CF\u306E\u633F\u5165/\u7DE8\u96C6"\r
+},\r
+advlink:{\r
+link_desc:"\u30EA\u30F3\u30AF\u306E\u633F\u5165/\u7DE8\u96C6"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"\u5F15\u7528",\r
+abbr_desc:"\u7565\u8A9E",\r
+acronym_desc:"\u982D\u5B57\u8A9E",\r
+del_desc:"\u524A\u9664",\r
+ins_desc:"\u633F\u5165",\r
+attribs_desc:"\u5C5E\u6027\u306E\u633F\u5165/\u7DE8\u96C6"\r
+},\r
+style:{\r
+desc:"CSS\u7DE8\u96C6"\r
+},\r
+paste:{\r
+paste_text_desc:"\u30C6\u30AD\u30B9\u30C8\u3068\u3057\u3066\u8CBC\u308A\u4ED8\u3051",\r
+paste_word_desc:"Word\u304B\u3089\u8CBC\u308A\u4ED8\u3051",\r
+selectall_desc:"\u5168\u3066\u9078\u629E"\r
+},\r
+paste_dlg:{\r
+text_title:"\u30AD\u30FC\u30DC\u30FC\u30C9\u3067CTRL+V\u3068\u5165\u529B\u3057\u30C6\u30AD\u30B9\u30C8\u3092\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002",\r
+text_linebreaks:"\u6539\u884C\u3092\u4FDD\u6301\u3059\u308B",\r
+word_title:"\u30AD\u30FC\u30DC\u30FC\u30C9\u3067CTRL+V\u3068\u5165\u529B\u3057\u30C6\u30AD\u30B9\u30C8\u3092\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002"\r
+},\r
+table:{\r
+desc:"\u8868\u3092\u633F\u5165",\r
+row_before_desc:"\u884C\u3092\u4E0A\u306B\u633F\u5165",\r
+row_after_desc:"\u884C\u3092\u4E0B\u306B\u633F\u5165",\r
+delete_row_desc:"\u884C\u3092\u524A\u9664",\r
+col_before_desc:"\u5217\u3092\u5DE6\u306B\u633F\u5165",\r
+col_after_desc:"\u5217\u3092\u53F3\u306B\u633F\u5165",\r
+delete_col_desc:"\u5217\u3092\u524A\u9664",\r
+split_cells_desc:"\u30BB\u30EB\u306E\u7D50\u5408\u3092\u89E3\u9664",\r
+merge_cells_desc:"\u30BB\u30EB\u3092\u7D50\u5408",\r
+row_desc:"\u884C\u306E\u30D7\u30ED\u30D1\u30C6\u30A3",\r
+cell_desc:"\u30BB\u30EB\u306E\u30D7\u30ED\u30D1\u30C6\u30A3",\r
+props_desc:"\u8868\u306E\u30D7\u30ED\u30D1\u30C6\u30A3",\r
+paste_row_before_desc:"\u884C\u3092\u4E0A\u306B\u8CBC\u308A\u4ED8\u3051",\r
+paste_row_after_desc:"\u884C\u3092\u4E0B\u306B\u8CBC\u308A\u4ED8\u3051",\r
+cut_row_desc:"\u884C\u306E\u5207\u308A\u53D6\u308A",\r
+copy_row_desc:"\u884C\u306E\u30B3\u30D4\u30FC",\r
+del:"\u8868\u3092\u524A\u9664",\r
+row:"\u884C",\r
+col:"\u5217",\r
+cell:"\u30BB\u30EB"\r
+},\r
+autosave:{\r
+unload_msg:"\u4ED6\u306E\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\u3059\u308B\u3068\u7DE8\u96C6\u30C7\u30FC\u30BF\u306F\u3059\u3079\u3066\u7834\u68C4\u3055\u308C\u307E\u3059\u3002"\r
+},\r
+fullscreen:{\r
+desc:"\u30D5\u30EB\u30B9\u30AF\u30EA\u30FC\u30F3"\r
+},\r
+media:{\r
+desc:"\u57CB\u3081\u8FBC\u307F\u30E1\u30C7\u30A3\u30A2\u306E\u633F\u5165/\u7DE8\u96C6",\r
+edit:"\u57CB\u3081\u8FBC\u307F\u30E1\u30C7\u30A3\u30A2\u306E\u7DE8\u96C6"\r
+},\r
+fullpage:{\r
+desc:"\u30DA\u30FC\u30B8\u8A2D\u5B9A"\r
+},\r
+template:{\r
+desc:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u633F\u5165"\r
+},\r
+visualchars:{\r
+desc:"\u5236\u5FA1\u6587\u5B57\u306E\u8868\u793A"\r
+},\r
+spellchecker:{\r
+desc:"\u30B9\u30DA\u30EB\u30C1\u30A7\u30C3\u30AFOn/Off",\r
+menu:"\u30B9\u30DA\u30EB\u30C1\u30A7\u30C3\u30AF\u8A2D\u5B9A",\r
+ignore_word:"\u3053\u306E\u5358\u8A9E\u3092\u7121\u8996",\r
+ignore_words:"\u5168\u3066\u7121\u8996",\r
+langs:"\u8A00\u8A9E",\r
+wait:"\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044...",\r
+sug:"\u5019\u88DC",\r
+no_sug:"\u5019\u88DC\u306F\u6709\u308A\u307E\u305B\u3093\u3002",\r
+no_mpell:"\u30B9\u30DA\u30EB\u30DF\u30B9\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002"\r
+},\r
+pagebreak:{\r
+desc:"\u6539\u30DA\u30FC\u30B8\u633F\u5165"\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({ko:{\r
+common:{\r
+edit_confirm:"WYSIWYG\uBAA8\uB4DC\uB85C \uC804\uD658\uD569\uB2C8\uAE4C?",\r
+apply:"\uC801\uC6A9",\r
+insert:"\uC0BD\uC785",\r
+update:"\uAC31\uC2E0",\r
+cancel:"\uCDE8\uC18C",\r
+close:"\uB2EB\uAE30",\r
+browse:"\uBE0C\uB77C\uC6B0\uC988",\r
+class_name:"\uD074\uB798\uC2A4",\r
+not_set:"-- \uC5C6\uC74C --",\r
+clipboard_msg:"\uBCF5\uC0AC/\uC798\uB77C\uB0B4\uAE30/\uBD99\uC774\uAE30\uB294 Mozilla \uBC0FFirefox \uC5D0\uC11C \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n\uC0C1\uC138\uC815\uBCF4\uB97C \uD45C\uC2DC\uD569\uB2C8\uAE4C?",\r
+clipboard_no_support:"\uC774 \uAE30\uB2A5\uC740 \uBE0C\uB77C\uC6B0\uC800\uC5D0 \uC758\uD574 \uC81C\uD55C\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. \uB2E8\uCD95\uD0A4\uC744 \uC774\uC6A9\uD558\uC2ED\uC2DC\uC624.",\r
+popup_blocked:"\uD31D\uC5C5\uC774 \uCC28\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uBAA8\uB4E0 \uAE30\uB2A5\uC744 \uC774\uC6A9\uD558\uC2DC\uAE30 \uC704\uD574\uC11C\uB294 \uD31D\uC5C5\uCC28\uB2E8\uC744 \uD574\uC81C\uD574 \uC8FC\uC138\uC694.",\r
+invalid_data:"\uC5D0\uB7EC: \uC720\uD6A8\uD558\uC9C0 \uC54A\uB294 \uAE00\uC790\uAC00 \uC788\uC2B5\uB2C8\uB2E4. \uBE68\uAC04\uC0C9\uC73C\uB85C \uD45C\uC2DC\uB429\uB2C8\uB2E4.",\r
+more_colors:"\uADF8 \uC678\uC758 \uC0C9"\r
+},\r
+contextmenu:{\r
+align:"\uC815\uB82C",\r
+left:"\uC67C\uCABD \uC815\uB82C",\r
+center:"\uAC00\uC6B4\uB370 \uC815\uB82C",\r
+right:"\uC624\uB978\uCABD \uC815\uB82C",\r
+full:"\uBC30\uBD84 \uC815\uB82C"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\uB0A0\uC9DC \uC0BD\uC785",\r
+inserttime_desc:"\uC2DC\uAC04 \uC0BD\uC785",\r
+months_long:"1\uC6D4,2\uC6D4,3\uC6D4,4\uC6D4,5\uC6D4,6\uC6D4,7\uC6D4,8\uC6D4,9\uC6D4,10\uC6D4,11\uC6D4,12\uC6D4",\r
+months_short:"1,2,3,4,5,6,7,8,9,10,11,12",\r
+day_long:"\uC77C\uC694\uC77C,\uC6D4\uC694\uC77C,\uD654\uC694\uC77C,\uC218\uC694\uC77C,\uBAA9\uC694\uC77C,\uAE08\uC694\uC77C,\uD1A0\uC694\uC77C,\uC77C\uC694\uC77C",\r
+day_short:"\uC77C,\uC6D4,\uD654,\uC218,\uBAA9,\uAE08,\uD1A0,\uC77C"\r
+},\r
+print:{\r
+print_desc:"\uC778\uC1C4"\r
+},\r
+preview:{\r
+preview_desc:"\uBBF8\uB9AC\uBCF4\uAE30"\r
+},\r
+directionality:{\r
+ltr_desc:"\uBB38\uC790\uBC29\uD5A5\uC744 \uC67C\uCABD\uC5D0\uC11C \uC624\uB978\uCABD\uC73C\uB85C",\r
+rtl_desc:"\uBB38\uC790\uBC29\uD5A5\uC744 \uC624\uB978\uCABD\uC5D0\uC11C \uC67C\uCABD\uC73C\uB85C"\r
+},\r
+layer:{\r
+insertlayer_desc:"\uC0C8 \uB808\uC774\uC5B4",\r
+forward_desc:"\uC55E\uC73C\uB85C \uC774\uB3D9",\r
+backward_desc:"\uB4A4\uB85C \uC774\uB3D9",\r
+absolute_desc:"\uC808\uB300\uC704\uCE58\uB85C \uC804\uD658",\r
+content:"\uC0C8 \uB808\uC774\uC5B4..."\r
+},\r
+save:{\r
+save_desc:"\uC800\uC7A5",\r
+cancel_desc:"\uBAA8\uB450 \uCDE8\uC18C"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\uBE48\uCE78 \uC0BD\uC785"\r
+},\r
+iespell:{\r
+iespell_desc:"\uCCA0\uC790 \uAC80\uC0AC",\r
+download:"ieSpell\uC774 \uBC1C\uACAC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.\n\uC778\uC2A4\uD1A8 \uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"\r
+},\r
+advhr:{\r
+advhr_desc:"\uAD6C\uBD84\uC120"\r
+},\r
+emotions:{\r
+emotions_desc:"\uC774\uBAA8\uD2F0\uCF58"\r
+},\r
+searchreplace:{\r
+search_desc:"\uAC80\uC0C9",\r
+replace_desc:"\uAC80\uC0C9/\uCE58\uD658"\r
+},\r
+advimage:{\r
+image_desc:"\uC774\uBBF8\uC9C0\uC758 \uC0BD\uC785/\uD3B8\uC9D1"\r
+},\r
+advlink:{\r
+link_desc:"\uB9C1\uD06C\uC758 \uC0BD\uC785/\uD3B8\uC9D1"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"\uC778\uC6A9\uCC98",\r
+abbr_desc:"\uC57D\uAE30",\r
+acronym_desc:"\uBA38\uB9AC \uAE00\uC790\uC5B4",\r
+del_desc:"\uC0AD\uC81C",\r
+ins_desc:"\uC0BD\uC785",\r
+attribs_desc:"\uC18D\uC131 \uC0BD\uC785/\uD3B8\uC9D1"\r
+},\r
+style:{\r
+desc:"CSS\uD3B8\uC9D1"\r
+},\r
+paste:{\r
+paste_text_desc:"\uD14D\uC2A4\uD2B8\uCC98\uB7FC \uBD99\uC5EC\uB123\uAE30",\r
+paste_word_desc:"Word\uB85C\uBD80\uD130 \uBD99\uC5EC\uB123\uAE30",\r
+selectall_desc:"\uBAA8\uB450 \uC120\uD0DD"\r
+},\r
+paste_dlg:{\r
+text_title:"\uC708\uB3C4\uC6B0\uC5D0 \uD14D\uC2A4\uD2B8\uB97C \uBD99\uC774\uB824\uBA74 \uD0A4\uBCF4\uB4DC\uB85C Ctrl+V\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694.",\r
+text_linebreaks:"\uAC1C\uD589\uC744 \uBCF4\uAD00 \uC720\uC9C0",\r
+word_title:"\uC708\uB3C4\uC6B0\uC5D0 \uD14D\uC2A4\uD2B8\uB97C \uBD99\uC774\uB824\uBA74 \uD0A4\uBCF4\uB4DC\uB85CCtrl+V\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694."\r
+},\r
+table:{\r
+desc:"\uC0C8 \uD14C\uC774\uBE14 \uC0BD\uC785",\r
+row_before_desc:"\uC55E\uC5D0 \uD589 \uC0BD\uC785",\r
+row_after_desc:"\uB4A4\uC5D0 \uD589 \uC0BD\uC785",\r
+delete_row_desc:"\uD589 \uC0AD\uC81C",\r
+col_before_desc:"\uC55E\uC5D0 \uC5F4\uC0BD\uC785",\r
+col_after_desc:"\uB4A4\uC5D0 \uC5F4\uC0BD\uC785",\r
+delete_col_desc:"\uC5F4\uC0AD\uC81C",\r
+split_cells_desc:"\uACB0\uD569\uB41C \uC140\uC744 \uBD84\uD560",\r
+merge_cells_desc:"\uC140\uC744 \uACB0\uD569",\r
+row_desc:"\uD589\uC758 \uC18D\uC131",\r
+cell_desc:"\uC140\uC758 \uC18D\uC131",\r
+props_desc:"\uD14C\uC774\uBE14 \uC18D\uC131",\r
+paste_row_before_desc:"\uC55E\uC5D0 \uD589\uC744 \uBD99\uC5EC\uB123\uAE30",\r
+paste_row_after_desc:"\uB4A4\uB85C \uD589\uC744 \uBD99\uC5EC\uB123\uAE30",\r
+cut_row_desc:"\uD589\uC744 \uC798\uB77C\uB0B4\uAE30",\r
+copy_row_desc:"\uD589\uC744 \uBCF5\uC0AC",\r
+del:"\uD14C\uC774\uBE14 \uC0AD\uC81C",\r
+row:"\uD589",\r
+col:"\uC5F4",\r
+cell:"\uC140"\r
+},\r
+autosave:{\r
+unload_msg:"\uB2E4\uB978 \uD398\uC774\uC9C0\uB85C \uC774\uB3D9\uD558\uBA74 \uD3B8\uC9D1\uD55C \uB0B4\uC6A9\uC774 \uCDE8\uC18C\uB429\uB2C8\uB2E4."\r
+},\r
+fullscreen:{\r
+desc:"\uC804\uCCB4\uD654\uBA74"\r
+},\r
+media:{\r
+desc:"\uBBF8\uB514\uC5B4\uC758 \uC0BD\uC785/\uD3B8\uC9D1",\r
+edit:"\uBBF8\uB514\uC5B4\uC758 \uD3B8\uC9D1"\r
+},\r
+fullpage:{\r
+desc:"\uD398\uC774\uC9C0\uC758 \uC18D\uC131"\r
+},\r
+template:{\r
+desc:"\uC815\uC758\uAC00 \uB05D\uB09C \uD15C\uD50C\uB9BF\uC758 \uC0BD\uC785"\r
+},\r
+visualchars:{\r
+desc:"\uC81C\uC5B4 \uBB38\uC790\uC758 \uD45C\uC2DC \uC804\uD658"\r
+},\r
+spellchecker:{\r
+desc:"\uC2A4\uD3A0\uB9C1 \uC804\uD658",\r
+menu:"\uC2A4\uD3A0\uB9C1 \uC124\uC815",\r
+ignore_word:"\uC774 \uC5B4\uAD6C\uB97C \uBB34\uC2DC",\r
+ignore_words:"\uBAA8\uB450 \uBB34\uC2DC",\r
+langs:"\uC5B8\uC5B4",\r
+wait:"\uAE30\uB2E4\uB824 \uC8FC\uC138\uC694...",\r
+sug:"\uD6C4\uBCF4",\r
+no_sug:"\uD6C4\uBCF4 \uC5C6\uC74C",\r
+no_mpell:"\uC624\uD0C8\uC790\uAC00 \uBC1C\uACAC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."\r
+},\r
+pagebreak:{\r
+desc:"\uC0C8\uD398\uC774\uC9C0 \uC0BD\uC785"\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({lt:{\r
+common:{\r
+edit_confirm:"Ar norite naudoti tekst\u0173 redaktoriaus re\u017Eim\u0105 \u0161iam teksto redagavimo langui?",\r
+apply:"Taikyti",\r
+insert:"\u012Eterpti",\r
+update:"Atnaujinti",\r
+cancel:"At\u0161aukti",\r
+close:"U\u017Edaryti",\r
+browse:"Nar\u0161yti",\r
+class_name:"Klas\u0117",\r
+not_set:"-- Nenurodyta --",\r
+clipboard_msg:"Kopijavimas/I\u0161kirpimas/\u012Eklijavimas negalimas Mozilla ir Firefox nar\u0161ykl\u0117se.\nAr norite daugiau informacijos apie \u0161i\u0105 problem\u0105?",\r
+clipboard_no_support:"\u0160i nar\u0161ykl\u0117 nepalaiko \u0161io veikimo, tod\u0117l naudokite klaviat\u016Bros spar\u010Diuosius klavi\u0161us.",\r
+popup_blocked:"Atsipra\u0161ome, ta\u010Diau pasteb\u0117jome, kad j\u016Bs\u0173 i\u0161\u0161okan\u010Di\u0173 lang\u0173 blokuotojas i\u0161jung\u0117 lang\u0105, kuris teikia aplikacijai funkcionalum\u0105. Tur\u0117tum\u0117te atjungti i\u0161\u0161okan\u010Di\u0173 lang\u0173 blokavim\u0105 \u0161iam tinklapiui, kad pilnai i\u0161naudoti visas galimybes.",\r
+invalid_data:"Klaida: Blogai \u012Fvestos reik\u0161m\u0117s, kurios pa\u017Eym\u0117tos raudonai.",\r
+more_colors:"Daugiau spalv\u0173"\r
+},\r
+contextmenu:{\r
+align:"Lygiavimas",\r
+left:"Kair\u0117je",\r
+center:"Centre",\r
+right:"De\u0161in\u0117je",\r
+full:"I\u0161 abiej\u0173 pusi\u0173"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u012Eterpti dat\u0105",\r
+inserttime_desc:"\u012Eterpti laik\u0105",\r
+months_long:"Sausis,Vasaris,Kovas,Balandis,Gegu\u017E\u0117,Bir\u017Eelis,Liepa,Rugpj\u016Btis,Rugs\u0117jis,Spalis,Lapkritis,Gruodis",\r
+months_short:"Sau,Vas,Kov,Bal,Geg,Bir,Lie,Rugpj,Rugs,Spa,Lapkr,Gruo",\r
+day_long:"Sekmadienis,Pirmadienis,Antradienis,Tre\u010Diadienis,Ketvirtadienis,Penktadienis,\u0160e\u0161tadienis,Sekmadienis",\r
+day_short:"Sekm,Pirm,Antr,Tre\u010D,Ketv,Penk,\u0160e\u0161t,Sekm"\r
+},\r
+print:{\r
+print_desc:"Spausdinti"\r
+},\r
+preview:{\r
+preview_desc:"Per\u017Ei\u016Bra"\r
+},\r
+directionality:{\r
+ltr_desc:"Kryptis i\u0161 kair\u0117s \u012F de\u0161in\u0119",\r
+rtl_desc:"Kryptis i\u0161 de\u0161in\u0117s \u012F kair\u0119"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u012Eterpti nauj\u0105 sluoksn\u012F",\r
+forward_desc:"Pastumti \u012F priek\u012F",\r
+backward_desc:"Pastumpti atgal",\r
+absolute_desc:"Kaitalioti absoliut\u0173 pozicionavim\u0105",\r
+content:"Naujas sluoksnis..."\r
+},\r
+save:{\r
+save_desc:"I\u0161saugoti",\r
+cancel_desc:"At\u0161aukti visus pakeitimus"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u012Eterpti nelau\u017Eiam\u0105 tarpo simbol\u012F"\r
+},\r
+iespell:{\r
+iespell_desc:"\u012Ejungti klaid\u0173 tikrinim\u0105",\r
+download:"ieSpell neaptiktas. Ar norite dabar j\u012F \u012Fdiegti?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horizontali linija",\r
+delta_width:"10"\r
+},\r
+emotions:{\r
+emotions_desc:"Emotikonai"\r
+},\r
+searchreplace:{\r
+search_desc:"Ie\u0161koti",\r
+replace_desc:"Ie\u0161koti/Pakeisti",\r
+delta_width:"10",\r
+delta_height:"20"\r
+},\r
+advimage:{\r
+image_desc:"\u012Eterpti/Redaguoti paveiksl\u0117l\u012F",\r
+delta_width:"10"\r
+},\r
+advlink:{\r
+link_desc:"\u012Eterpti/Redaguoti nuorod\u0105",\r
+delta_width:"10"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citavimas",\r
+abbr_desc:"Santrumpa",\r
+acronym_desc:"Akronimas",\r
+del_desc:"Panaikinimas",\r
+ins_desc:"\u012Eterpimas",\r
+attribs_desc:"\u012Eterpti/Redaguoti atributus",\r
+cite_delta_width:"10",\r
+abbr_delta_width:"10",\r
+acronym_delta_width:"10",\r
+del_delta_width:"10",\r
+ins_delta_width:"10",\r
+attribs_delta_width:"10"\r
+},\r
+style:{\r
+desc:"Redaguoti CSS stili\u0173",\r
+delta_width:"40"\r
+},\r
+paste:{\r
+paste_text_desc:"\u012Eklijuoti kaip paprast\u0105 tekst\u0105",\r
+paste_word_desc:"\u012Eklijuoti i\u0161 Word",\r
+selectall_desc:"Visk\u0105 pa\u017Eym\u0117ti"\r
+},\r
+paste_dlg:{\r
+text_title:"Naudokite CTRL+V, kad \u012Fklijuoti tekst\u0105 \u012F \u0161\u012F lang\u0105.",\r
+text_linebreaks:"Palikti eilu\u010Di\u0173 l\u016B\u017Eius",\r
+word_title:"Naudokite CTRL+V, kad \u012Fklijuoti tekst\u0105 \u012F \u0161\u012F lang\u0105."\r
+},\r
+table:{\r
+desc:"\u012Eterpia nauj\u0105 lentel\u0119",\r
+row_before_desc:"\u012Eterpti eilut\u0119 prie\u0161",\r
+row_after_desc:"\u012Eterpti eilut\u0119 po",\r
+delete_row_desc:"I\u0161trinti eilut\u0119",\r
+col_before_desc:"\u012Eterpti stulpel\u012F prie\u0161",\r
+col_after_desc:"\u012Eterpti stulpel\u012F po",\r
+delete_col_desc:"I\u0161trinti stulpel\u012F",\r
+split_cells_desc:"I\u0161skaidyti sulietas lentel\u0117s l\u0105steles",\r
+merge_cells_desc:"Sulieti lentel\u0117s l\u0105steles",\r
+row_desc:"Lentel\u0117s eilut\u0117s nustatymai",\r
+cell_desc:"Lentel\u0117s l\u0105stel\u0117s nustatymai",\r
+props_desc:"Lentel\u0117s nustatymai",\r
+paste_row_before_desc:"\u012Eklijuoti lentel\u0117s eilut\u0119 prie\u0161",\r
+paste_row_after_desc:"\u012Eklijuoti lentel\u0117s eilut\u0119 po",\r
+cut_row_desc:"I\u0161kirpti lentel\u0117s eilut\u0119",\r
+copy_row_desc:"Kopijuoti lentel\u0117s eilut\u0119",\r
+del:"I\u0161trinti eilut\u0119",\r
+row:"Eilut\u0117",\r
+col:"Stulpelis",\r
+cell:"L\u0105stel\u0117",\r
+rowprops_delta_width:"10",\r
+cellprops_delta_width:"10",\r
+table_delta_width:"10",\r
+merge_cells_delta_width:"10"\r
+},\r
+autosave:{\r
+unload_msg:"Visi pakeitimai bus prarasti jei i\u0161eisite \u0161iuo langu i\u0161 esamo puslapio."\r
+},\r
+fullscreen:{\r
+desc:"Kaitalioti viso ekrano re\u017Eim\u0105"\r
+},\r
+media:{\r
+desc:"\u012Eterpti/redaguoti integruot\u0105 daugialyp\u0119 terp\u0119",\r
+edit:"Redaguoti integruot\u0105 daugialyp\u0119 terp\u0119",\r
+delta_width:"10"\r
+},\r
+fullpage:{\r
+desc:"Dokumento nustatymai",\r
+delta_width:"10"\r
+},\r
+template:{\r
+desc:"\u012Eterpti jau nustatyt\u0105 \u0161ablonin\u012F turin\u012F"\r
+},\r
+visualchars:{\r
+desc:"Visualiniai valdymo simboliai \u012Fjungti/i\u0161jungti."\r
+},\r
+spellchecker:{\r
+desc:"Kaitalioti klaid\u0173 tikrinim\u0105",\r
+menu:"Klaid\u0173 tikrinimo nustatymai",\r
+ignore_word:"Ignoruoti \u017Eod\u012F",\r
+ignore_words:"Ignoruoti visk\u0105",\r
+langs:"Kalbos",\r
+wait:"Pra\u0161ome palaukti...",\r
+sug:"Pasi\u016Blymai",\r
+no_sug:"Pasi\u016Blym\u0173 nerasta",\r
+no_mpell:"Klaid\u0173 nerasta."\r
+},\r
+pagebreak:{\r
+desc:"\u012Eterpti puslapio pabaigos \u017Eym\u0119."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({lv:{\r
+common:{\r
+edit_confirm:"Vai tu v\u0113lies izmantot WYSIWYG \u0161im teksta laukam?",\r
+apply:"Apstiprin\u0101t",\r
+insert:"Ievietot",\r
+update:"Atjaunin\u0101t",\r
+cancel:"Atcelt",\r
+close:"Aizv\u0113rt",\r
+browse:"P\u0101rl\u016Bkot",\r
+class_name:"Klase",\r
+not_set:"-- Nav nor\u0101d\u012Bts --",\r
+clipboard_msg:"Iesp\u0113ja Kop\u0113t/Izgriezt/Iekop\u0113t nav pieejama p\u0101rl\u016Bkiem Mozilla and Firefox.\nVai J\u016Bs v\u0113laties uzzin\u0101t vair\u0101k par \u0161o probl\u0113mu?",\r
+clipboard_no_support:"\u0160obr\u012Bd J\u016Bsu p\u0101rl\u016Bks neatbalsta \u0161o iesp\u0113ju, t\u0101 viet\u0101 l\u016Bdzu izmantotjiet tastat\u016Bras sa\u012Bsin\u0101jumtausti\u0146us.",\r
+popup_blocked:"Atvainojiet, bet m\u0113s esam konstat\u0113ju\u0161i, ka J\u016Bsu uzleco\u0161o logu blo\u0137\u0113t\u0101js ir atsp\u0113jojis logu, kas nodro\u0161ina programmas funkcionalit\u0101ti. Lai piln\u012Bb\u0101 izmantotu \u0161o r\u012Bku, Jums ir j\u0101atsl\u0113dz uzleco\u0161o logu blo\u0137\u0113tajs \u0161ai vietnei. ",\r
+invalid_data:"K\u013C\u016Bda: Ievad\u012Btas neder\u012Bgas v\u0113rt\u012Bbas. T\u0101s ir atz\u012Bm\u0113tas sarkan\u0101 kr\u0101s\u0101.",\r
+more_colors:"Vair\u0101k kr\u0101su"\r
+},\r
+contextmenu:{\r
+align:"Novietojums",\r
+left:"Pa kreisi",\r
+center:"Centr\u0113ts",\r
+right:"Pa labi",\r
+full:"Pilns"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Ievietot datumu",\r
+inserttime_desc:"Ievietot laiku",\r
+months_long:"Janv\u0101ris,Febru\u0101ris,Marts,Apr\u012Blis,Maijs,J\u016Bnijs,J\u016Blijs,Augusts,Seprembris,Oktobris,Novembris,Decembris",\r
+months_short:"Jan,Feb,Mar,Apr,Mai,J\u016Bn,J\u016Bl,Aug,Sep,Okt,Nov,Dec",\r
+day_long:"Sv\u0113tdiena,Pirmdiena,Otrdiena,Tre\u0161diena,Ceturtdiena,Piektdiena,Sestdiena,Sv\u0113tdiena",\r
+day_short:"Sv\u0113,Pir,Otr,Tre,Cet,Pie,Ses,Sv\u0113"\r
+},\r
+print:{\r
+print_desc:"Druk\u0101t"\r
+},\r
+preview:{\r
+preview_desc:"Priek\u0161skat\u012Bt"\r
+},\r
+directionality:{\r
+ltr_desc:"Virziens no kreis\u0101s uz labo",\r
+rtl_desc:"Virziens no lab\u0101s uz kreiso"\r
+},\r
+layer:{\r
+insertlayer_desc:"Ievietot jaunu sl\u0101ni",\r
+forward_desc:"Uz priek\u0161u",\r
+backward_desc:"Atpaka\u013C",\r
+absolute_desc:"Iestat\u012Bt/Nov\u0101kt absol\u016Bto novietojumu ",\r
+content:"Jauns sl\u0101nis..."\r
+},\r
+save:{\r
+save_desc:"Saglab\u0101t",\r
+cancel_desc:"Atcelt visas izmai\u0146as"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Ievietot tuk\u0161uma simbolu"\r
+},\r
+iespell:{\r
+iespell_desc:"Uzs\u0101kt pareizrakst\u012Bbas p\u0101rbaudi",\r
+download:"ieSpell netika atrasts. Vai J\u016Bs v\u0113laties to uzst\u0101d\u012Bt?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horizont\u0101la sv\u012Btra"\r
+},\r
+emotions:{\r
+emotions_desc:"Smaidi\u0146i"\r
+},\r
+searchreplace:{\r
+search_desc:"Mekl\u0113t",\r
+replace_desc:"Mekl\u0113t/Aizvietot"\r
+},\r
+advimage:{\r
+image_desc:"Ievietot/Redi\u0123\u0113t att\u0113lu"\r
+},\r
+advlink:{\r
+link_desc:"Ievietot/Redi\u0123\u0113t saiti"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"Abbreviation",\r
+acronym_desc:"Acronym",\r
+del_desc:"Deletion",\r
+ins_desc:"Insertion",\r
+attribs_desc:"Insert/Edit Attributes"\r
+},\r
+style:{\r
+desc:"Edit CSS Style"\r
+},\r
+paste:{\r
+paste_text_desc:"Paste as Plain Text",\r
+paste_word_desc:"Paste from Word",\r
+selectall_desc:"Select All"\r
+},\r
+paste_dlg:{\r
+text_title:"Use CTRL+V on your keyboard to paste the text into the window.",\r
+text_linebreaks:"Keep linebreaks",\r
+word_title:"Use CTRL+V on your keyboard to paste the text into the window."\r
+},\r
+table:{\r
+desc:"Inserts a new table",\r
+row_before_desc:"Insert row before",\r
+row_after_desc:"Insert row after",\r
+delete_row_desc:"Delete row",\r
+col_before_desc:"Insert column before",\r
+col_after_desc:"Insert column after",\r
+delete_col_desc:"Remove column",\r
+split_cells_desc:"Split merged table cells",\r
+merge_cells_desc:"Merge table cells",\r
+row_desc:"Table row properties",\r
+cell_desc:"Table cell properties",\r
+props_desc:"Table properties",\r
+paste_row_before_desc:"Paste table row before",\r
+paste_row_after_desc:"Paste table row after",\r
+cut_row_desc:"Cut table row",\r
+copy_row_desc:"Copy table row",\r
+del:"Delete table",\r
+row:"Row",\r
+col:"Column",\r
+cell:"Cell"\r
+},\r
+autosave:{\r
+unload_msg:"The changes you made will be lost if you navigate away from this page."\r
+},\r
+fullscreen:{\r
+desc:"Toggle fullscreen mode"\r
+},\r
+media:{\r
+desc:"Insert / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"Document properties"\r
+},\r
+template:{\r
+desc:"Insert predefined template content"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"Toggle spellchecker",\r
+menu:"Spellchecker settings",\r
+ignore_word:"Ignore word",\r
+ignore_words:"Ignore all",\r
+langs:"Languages",\r
+wait:"Please wait...",\r
+sug:"Suggestions",\r
+no_sug:"No suggestions",\r
+no_mpell:"No misspellings found."\r
+},\r
+pagebreak:{\r
+desc:"Insert page break."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({mk:{\r
+common:{\r
+edit_confirm:"\u017Delite li koristiti WYSIWYG na\u010Din rada za ovo tekstualno polje?",\r
+apply:"Primjeni",\r
+insert:"\u0412\u043C\u0435\u0442\u043D\u0438",\r
+update:"\u041E\u0431\u043D\u043E\u0432\u0438",\r
+cancel:"\u041E\u0442\u043A\u0430\u0436\u0438",\r
+close:"\u0417\u0430\u0442\u0432\u043E\u0440\u0438",\r
+browse:"\u041F\u0440\u0435\u0432\u0437\u0435\u043C\u0438",\r
+class_name:"\u041A\u043B\u0430\u0441\u0430",\r
+not_set:"-- \u041D\u0435 \u0435 \u043F\u043E\u0441\u0442\u0430\u0432\u0435\u043D\u043E --",\r
+clipboard_msg:"\u041A\u043E\u043F\u0438\u0440\u0430\u0458/\u0421\u043D\u0438\u043C\u0438/\u0417\u0430\u043B\u0435\u043F\u0438 \u043D\u0435 \u0435 \u0434\u043E\u0437\u0432\u043E\u043B\u0435\u043D\u043E \u043D\u0430 Mozilla \u0438 Firefox \u043F\u0440\u0435\u0431\u0430\u0440\u0443\u0432\u0430\u0447\u0438.\n\u041F\u043E\u0432\u0435\u045C\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438?",\r
+clipboard_no_support:"Trenuta\u010Dno va\u0161 preglednik ne podr\u017Eava ovu opciju, poku\u0161ajte koristiti tipkovni\u010Dku kraticu.",\r
+popup_blocked:"Oprostite, izgleda da je va\u0161 popup-blocker onemogu\u0107io prozor u sklopu ovog programa. Morate onemogu\u0107iti blokiranje popup prozora da bi u potpunosti iskoristili ovaj alat.",\r
+invalid_data:"Gre\u0161ka: Une\u0161ene su nevaljane vrednosti, ozna\u010Dene su crvenom bojom.",\r
+more_colors:"Vi\u0161e boja"\r
+},\r
+contextmenu:{\r
+align:"Poravnavanje",\r
+left:"Levo",\r
+center:"Sredina",\r
+right:"Desno",\r
+full:"Puno"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d.%m.%Y.",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u0412\u043C\u0435\u0442\u043D\u0438 datum",\r
+inserttime_desc:"\u0412\u043C\u0435\u0442\u043D\u0438 vreme",\r
+months_long:"januar,februar,mart,april,maj,juni,juli,avgust,septembar,oktobar,novembar,decembar",\r
+months_short:"jan,feb,mar,apr,maj,jun,jul,avg,sep,okt,nov,dec",\r
+day_long:"nedelja,ponedjeljak,utorak,sreda,\u010Detvrtak,petak,subota,nedelja",\r
+day_short:"ned,pon,uto,sre,\u010Det,pet,sub,ned"\r
+},\r
+print:{\r
+print_desc:"Ispis"\r
+},\r
+preview:{\r
+preview_desc:"Prikaz"\r
+},\r
+directionality:{\r
+ltr_desc:"S leva na desno",\r
+rtl_desc:"S desna na levo"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u0412\u043C\u0435\u0442\u043D\u0438 novi sloj",\r
+forward_desc:"Pomakni napred",\r
+backward_desc:"Pomakni natrag",\r
+absolute_desc:"Uklju\u010Di/isklju\u010Di apsolutno pozicioniranje",\r
+content:"Novi sloj..."\r
+},\r
+save:{\r
+save_desc:"Spremi",\r
+cancel_desc:"Odustani od svih promjena"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u0412\u043C\u0435\u0442\u043D\u0438 razmak"\r
+},\r
+iespell:{\r
+iespell_desc:"Pokreni provjeru pravopisa",\r
+download:"Provjera pravopisa nije postavljena. Postaviti sada?"\r
+},\r
+advhr:{\r
+advhr_desc:"Vodoravna crta"\r
+},\r
+emotions:{\r
+emotions_desc:"Emocije"\r
+},\r
+searchreplace:{\r
+search_desc:"Prona\u0111i",\r
+replace_desc:"Prona\u0111i/Zameni"\r
+},\r
+advimage:{\r
+image_desc:"\u0412\u043C\u0435\u0442\u043D\u0438/uredi sliku"\r
+},\r
+advlink:{\r
+link_desc:"Insert/edit link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citat",\r
+abbr_desc:"Kratica",\r
+acronym_desc:"Akronim",\r
+del_desc:"Brisanje",\r
+ins_desc:"Unos",\r
+attribs_desc:"\u0412\u043C\u0435\u0442\u043D\u0438/uredi atribute"\r
+},\r
+style:{\r
+desc:"Uredi CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Zalepi kao obi\u010Dni tekst",\r
+paste_word_desc:"Zalepi iz Worda",\r
+selectall_desc:"Odaberi sve"\r
+},\r
+paste_dlg:{\r
+text_title:"Koristite CTRL+V na tipkovnici da zalepite tekst u prozor.",\r
+text_linebreaks:"Zadr\u017Ei prelome",\r
+word_title:"Koristite CTRL+V na tipkovnici da zalepite tekst u prozor."\r
+},\r
+table:{\r
+desc:"Nova tablica",\r
+row_before_desc:"\u0412\u043C\u0435\u0442\u043D\u0438 redak iznad",\r
+row_after_desc:"\u0412\u043C\u0435\u0442\u043D\u0438 redak ispod",\r
+delete_row_desc:"Izbri\u0161i redak",\r
+col_before_desc:"\u0412\u043C\u0435\u0442\u043D\u0438 stupac levo",\r
+col_after_desc:"\u0412\u043C\u0435\u0442\u043D\u0438 stupac desno",\r
+delete_col_desc:"Ukloni stupac",\r
+split_cells_desc:"Razdvoji spojene \u0107elije",\r
+merge_cells_desc:"Spoji \u0107elije",\r
+row_desc:"Svojstva retka",\r
+cell_desc:"Svojstva \u0107elije",\r
+props_desc:"Svojstva tablice",\r
+paste_row_before_desc:"Zalepi redak iznad",\r
+paste_row_after_desc:"Zalepi redak ispod",\r
+cut_row_desc:"Izre\u017Ei redak",\r
+copy_row_desc:"Kopiraj redak",\r
+del:"Izbri\u0161i tablicu",\r
+row:"Redak",\r
+col:"Stupac",\r
+cell:"\u0106elija"\r
+},\r
+autosave:{\r
+unload_msg:"Promjene u dokumentu \u0107e biti izgubljene ako iza\u0111ete s ove stranice."\r
+},\r
+fullscreen:{\r
+desc:"Uklju\u010Di/isklju\u010Di prikaz preko celog ekrana"\r
+},\r
+media:{\r
+desc:"Insert / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"Svojstva dokumenta"\r
+},\r
+template:{\r
+desc:"\u0412\u043C\u0435\u0442\u043D\u0438 sadr\u017Eaj iz predlo\u017Eak"\r
+},\r
+visualchars:{\r
+desc:"Vizuelni kontrolni znakovi uklju\u010Deni/isklju\u010Deni."\r
+},\r
+spellchecker:{\r
+desc:"Uklju\u010Di/isklju\u010Di provjeru pravopisa",\r
+menu:"Postavke provere pravopisa",\r
+ignore_word:"Zanemari re\u010D",\r
+ignore_words:"Zanemari sve",\r
+langs:"Jezici",\r
+wait:"Pri\u010Dekajte...",\r
+sug:"Predlozi",\r
+no_sug:"Nema predloga",\r
+no_mpell:"Nije prona\u0111ena nijedna pravopisna gre\u0161ka."\r
+},\r
+pagebreak:{\r
+desc:"\u0412\u043C\u0435\u0442\u043D\u0438 prelom."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({ms:{\r
+common:{\r
+edit_confirm:"Guna WYSIWYG mod untuk \"textarea\" ini?",\r
+apply:"Guna",\r
+insert:"Sisip",\r
+update:"Kemaskini",\r
+cancel:"Batal",\r
+close:"Tutup",\r
+browse:"Semak seimbas",\r
+class_name:"Kelas",\r
+not_set:"-- Tidak set --",\r
+clipboard_msg:"Salin/Potong/Tempel tidak disediakan untuk Mozilla dan Firefox.\nAdakah anda mahu informasi lanjut tentang isu ini?",\r
+clipboard_no_support:"Perisian browser anda tidak disokong pada masa ini, sila guna papan kekunci.",\r
+popup_blocked:"Maaf, kami dapati \"popup-blocker\" telah melumpuhkan tetingkap yang memberikan fungsi kepada perisian anda. Anda perlu mematikan \"popup-blocker\" untuk laman web ini bagi menggunakan semua alatan.",\r
+invalid_data:"Ralat: Nilai dimasukkan tidak sah, lihat tanda merah.",\r
+more_colors:"Warna lain-lain"\r
+},\r
+contextmenu:{\r
+align:"Penyelarian",\r
+left:"Kiri",\r
+center:"Tengah",\r
+right:"Kanan",\r
+full:"Penuh"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Sisip tarikh",\r
+inserttime_desc:"Sisip masa",\r
+months_long:"Januari,Febuari,Mac,April,Mei,Jun,Julai,Ogos,September,Oktober,November,Disember",\r
+months_short:"Jan,Feb,Mac,Apr,Mei,Jun,Jul,Ogo,Sep,Okt,Nov,Dis",\r
+day_long:"Ahad,Isnin,Selasa,Rabu,Khamis,Jumaat,Sabtu,Ahad",\r
+day_short:"Aha,Isn,Sel,Rab,Kha,Jum,Sab,Aha"\r
+},\r
+print:{\r
+print_desc:"Cetak"\r
+},\r
+preview:{\r
+preview_desc:"Pratonton"\r
+},\r
+directionality:{\r
+ltr_desc:"Arah kiri ke kanan",\r
+rtl_desc:"Arah kanan ke kiri"\r
+},\r
+layer:{\r
+insertlayer_desc:"Sisip lapisan baru",\r
+forward_desc:"Gerak kehadapan",\r
+backward_desc:"Gerak kebelakang",\r
+absolute_desc:"Alih posisi mutlak",\r
+content:"Lapisan baru..."\r
+},\r
+save:{\r
+save_desc:"Simpan",\r
+cancel_desc:"Batal semua pertukaran"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Masukkan aksara ruang [nbsp]"\r
+},\r
+iespell:{\r
+iespell_desc:"Larikan pembetulan ejaan",\r
+download:"ieSpell tiada. Pasang sekarang?"\r
+},\r
+advhr:{\r
+advhr_desc:"Garis mengufuk"\r
+},\r
+emotions:{\r
+emotions_desc:"Simbol Emosi"\r
+},\r
+searchreplace:{\r
+search_desc:"Cari",\r
+replace_desc:"Cari/Ganti"\r
+},\r
+advimage:{\r
+image_desc:"Sisip/sunting imej"\r
+},\r
+advlink:{\r
+link_desc:"Sisip/sunting pautan"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Kutipan",\r
+abbr_desc:"Singkatan",\r
+acronym_desc:"Akronim",\r
+del_desc:"Pemadaman",\r
+ins_desc:"Kemasukan",\r
+attribs_desc:"Masukkan/Sunting Ciri-ciri"\r
+},\r
+style:{\r
+desc:"Sunting Gaya CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Tempel sebagai teks",\r
+paste_word_desc:"Tempel dari Word",\r
+selectall_desc:"Pilih semua"\r
+},\r
+paste_dlg:{\r
+text_title:"Guna CTRL+V pada papan kekunci anda untuk Tempel teks ke dalam tetingkap.",\r
+text_linebreaks:"Biarkan garisan pemisah",\r
+word_title:"Guna CTRL+V pada papan kekunci anda untuk teks ke dalam tetingkap."\r
+},\r
+table:{\r
+desc:"Masukkan jadual baru",\r
+row_before_desc:"Masukkan row sebelumnya",\r
+row_after_desc:"Masukkan row selepasnya",\r
+delete_row_desc:"Padam row",\r
+col_before_desc:"Masukkan kolum sebelumnya",\r
+col_after_desc:"Masukkan kolum selepasnya",\r
+delete_col_desc:"Alih kolum",\r
+split_cells_desc:"Bahagi sel jadual",\r
+merge_cells_desc:"Gabung sel jadual",\r
+row_desc:"Alatan jadual row",\r
+cell_desc:"Alatan jadual sel",\r
+props_desc:"Alatan jadual",\r
+paste_row_before_desc:"Tempel jadual row sebelumnya",\r
+paste_row_after_desc:"Tempel jadual row selepasnya",\r
+cut_row_desc:"Potong jadual row",\r
+copy_row_desc:"Salin jadual row",\r
+del:"Padam jadual",\r
+row:"Row",\r
+col:"Kolum",\r
+cell:"Sel"\r
+},\r
+autosave:{\r
+unload_msg:"Pertukaran akan terbatal sekiranya anda meninggalkan halaman ini."\r
+},\r
+fullscreen:{\r
+desc:"Alih mod skrin penuh"\r
+},\r
+media:{\r
+desc:"Masukkan / sunting media",\r
+edit:"Sunting media"\r
+},\r
+fullpage:{\r
+desc:"Alatan dokumen"\r
+},\r
+template:{\r
+desc:"Masukkan pra takrifan kandungan templet"\r
+},\r
+visualchars:{\r
+desc:"Pengendali grafik huruf Buka/Tutup."\r
+},\r
+spellchecker:{\r
+desc:"Alih pembetul perkataan",\r
+menu:"Alatan pembetul perkataan",\r
+ignore_word:"Endahkan perkataan",\r
+ignore_words:"Endahkan kesemuanya",\r
+langs:"Bahasa-bahasa",\r
+wait:"Sila tunggu...",\r
+sug:"Cadangan",\r
+no_sug:"Tiada cadangan",\r
+no_mpell:"Tiada kesalahan ejaan."\r
+},\r
+pagebreak:{\r
+desc:"Masukkan penghenti-halaman."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({nb:{\r
+common:{\r
+edit_confirm:"Vil du benytte WYSIWYG-editoren for dette tekstfeltet?",\r
+apply:"Legg til",\r
+insert:"Sett inn",\r
+update:"Oppdater",\r
+cancel:"Avbryt",\r
+close:"Stop",\r
+browse:"Bla gjennom",\r
+class_name:"Klasse",\r
+not_set:"--ikke satt--",\r
+clipboard_msg:"Klipp ut / Kopier /Lim inn fungerer ikke i Mozilla og Firefox. Vil du vite mer om dette?",\r
+clipboard_no_support:"For tiden ikke st\u00F8ttet av din nettleser, benytt tastatursnarveier i stedet.",\r
+popup_blocked:"Beklager, det er registrert at du har en popup-sperre aktivert i nettleseren. Du m\u00E5 oppheve popup-sperren for nettstedet for \u00E5 f\u00E5 tilgang til dette verkt\u00F8yet",\r
+invalid_data:"Feil: Ugyldige verdier er skrevet inn, disse er merket med r\u00F8dt.",\r
+more_colors:"Flere farger"\r
+},\r
+contextmenu:{\r
+align:"Justering",\r
+left:"Venstre",\r
+center:"Midtstill",\r
+right:"H\u00F8yre",\r
+full:"Full"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Sett inn dato",\r
+inserttime_desc:"Sett inn tidspunkt",\r
+months_long:"januar,februar,mars,april,mai,juni,juli,august,september,oktober,november,desember",\r
+months_short:"jan,feb,mar,apr,mai,jun,jul,aug,sep,oct,nov,des",\r
+day_long:"s\u00F8ndag,mandag,tirsdag,onsdag,torsdag,fredag,l\u00F8rdag,s\u00F8ndag",\r
+day_short:"s\u00F8n,man,tir,ons,tor,fre,l\u00F8r,s\u00F8n"\r
+},\r
+print:{\r
+print_desc:"Skriv u"\r
+},\r
+preview:{\r
+preview_desc:"Forh\u00E5ndsvisning"\r
+},\r
+directionality:{\r
+ltr_desc:"Retning venstre mot h\u00F8yre",\r
+rtl_desc:"Retning h\u00F8yre mot venstre"\r
+},\r
+layer:{\r
+insertlayer_desc:"Sett inn nytt lag",\r
+forward_desc:"Flytt framover",\r
+backward_desc:"Flytt bakover",\r
+absolute_desc:"Sl\u00E5 p\u00E5/av absolutt plassering",\r
+content:"Nytt lag..."\r
+},\r
+save:{\r
+save_desc:"Lagre",\r
+cancel_desc:"Kanseller alle endringer"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Sett inn hardt mellomrom"\r
+},\r
+iespell:{\r
+iespell_desc:"Kj\u00F8rer rettskrivningskontroll",\r
+download:"ieSpell ikke funnet. \u00D8nsker du \u00E5 installere ieSpell n\u00E5?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horisontal linje"\r
+},\r
+emotions:{\r
+emotions_desc:"Hum\u00F8rfjes"\r
+},\r
+searchreplace:{\r
+search_desc:"S\u00F8k",\r
+replace_desc:"S\u00F8k/Erstatt"\r
+},\r
+advimage:{\r
+image_desc:"Sett inn / endre bilde"\r
+},\r
+advlink:{\r
+link_desc:"Sett inn / endre lenke"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Sitat",\r
+abbr_desc:"Forkortelse",\r
+acronym_desc:"Akronym",\r
+del_desc:"Sletting",\r
+ins_desc:"Innsetting",\r
+attribs_desc:"Sett inn / endre Egenskaper"\r
+},\r
+style:{\r
+desc:"Rediger CSS-stil"\r
+},\r
+paste:{\r
+paste_text_desc:"Lim inn som vanlig tekst",\r
+paste_word_desc:"Lim inn fra Word",\r
+selectall_desc:"Marker al"\r
+},\r
+paste_dlg:{\r
+text_title:"Bruk CTRL+V p\u00E5 tastaturet for \u00E5 lime inn i dette vinduet.",\r
+text_linebreaks:"Behold tekstbryting",\r
+word_title:"Bruk CTRL+V p\u00E5 tastaturet for \u00E5 lime inn i dette vinduet."\r
+},\r
+table:{\r
+desc:"Sett inn ny tabell",\r
+row_before_desc:"Sett inn rad foran",\r
+row_after_desc:"Sett inn rad etter etter",\r
+delete_row_desc:"Fjern rad",\r
+col_before_desc:"Sett inn kolonne foran",\r
+col_after_desc:"Sett inn kolonne etter",\r
+delete_col_desc:"Fjern kolonne",\r
+split_cells_desc:"Del celler",\r
+merge_cells_desc:"Sl\u00E5 sammen celler",\r
+row_desc:"Radegenskaper",\r
+cell_desc:"Celleegenskaper",\r
+props_desc:"Tabellegenskaper",\r
+paste_row_before_desc:"Lim inn rad foran",\r
+paste_row_after_desc:"Lim inn rad etter",\r
+cut_row_desc:"Fjern rad",\r
+copy_row_desc:"Kopier rad",\r
+del:"Slett tabell",\r
+row:"Rad",\r
+col:"Kolonne",\r
+cell:"Celle"\r
+},\r
+autosave:{\r
+unload_msg:"Endringene du gjorde g\u00E5r tapt dersom du velger \u00E5 forlate denne siden!"\r
+},\r
+fullscreen:{\r
+desc:"Skift til/fra fullskjermmodus"\r
+},\r
+media:{\r
+desc:"Sett inn / rediger inkludert objekt",\r
+edit:"Endre inkludert objekt"\r
+},\r
+fullpage:{\r
+desc:"Dokumentegenskaper"\r
+},\r
+template:{\r
+desc:"Sett inn forh\u00E5ndsdefinert malinnhold"\r
+},\r
+visualchars:{\r
+desc:"Visuelle kontrolltegn p\u00E5/av"\r
+},\r
+spellchecker:{\r
+desc:"Stavekontroll p\u00E5/av",\r
+menu:"Vis meny",\r
+ignore_word:"Ignorer ord",\r
+ignore_words:"Ignorer alt",\r
+langs:"Spr\u00E5k",\r
+wait:"Vennligst vent...",\r
+sug:"Forslag",\r
+no_sug:"Ingen forslag",\r
+no_mpell:"Ingen stavefeil funnet"\r
+},\r
+pagebreak:{\r
+desc:"Sett inn sideskift"\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({nl:{\r
+common:{\r
+edit_confirm:"Weet je zeker dat je tekst in WYSIWYG mode wilt bewerken in dit tekstveld?",\r
+apply:"Toepassen",\r
+insert:"Invoegen",\r
+update:"Bijwerken",\r
+cancel:"Annuleren",\r
+close:"Sluiten",\r
+browse:"Bladeren",\r
+class_name:"Klasse",\r
+not_set:"- Standaard -",\r
+clipboard_msg:"Kopi\u00EBren/knippen/plakken is niet beschikbaar in Mozilla en Firefox.\nWilt u meer informatie over deze beperking?",\r
+clipboard_no_support:"Kopi\u00EBren/knippen/plakken is niet ondersteund door uw browser, gebruik hiervoor de sneltoetsen.",\r
+popup_blocked:"U zult uw popup-blocker tijdelijk moeten uitschakelen voor deze website om gebruik te kunnen maken van alle fucties van deze teksteditor.",\r
+invalid_data:"Fout: Er zijn ongeldige waardes ingevoerd, deze zijn rood gemarkeerd.",\r
+more_colors:"Meer kleuren"\r
+},\r
+contextmenu:{\r
+align:"Uitlijning",\r
+left:"Links",\r
+center:"Centreren",\r
+right:"Rechts",\r
+full:"Uitvullen"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d-%m-%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Datum invoegen",\r
+inserttime_desc:"Tijd invoegen",\r
+months_long:"Januari,Februari,Maart,April,Mei,Juni,Juli,Augustus,September,Oktober,November,December",\r
+months_short:"Jan,Feb,Mar,Apr,Mei,Jun,Jul,Aug,Sep,Okt,Nov,Dec",\r
+day_long:"Zondag,Maandag,Dinsdag,Woensdag,Donderdag,Vrijdag,Zaterdag,Zondag",\r
+day_short:"Zo,Ma,Di,Wo,Do,Vr,Zat,Zon"\r
+},\r
+print:{\r
+print_desc:"Afdrukken"\r
+},\r
+preview:{\r
+preview_desc:"Voorbeeld"\r
+},\r
+directionality:{\r
+ltr_desc:"Van links naar rechts",\r
+rtl_desc:"Van rechts naar links"\r
+},\r
+layer:{\r
+insertlayer_desc:"Nieuwe laag invoegen",\r
+forward_desc:"Volgende laag",\r
+backward_desc:"Vorige laag",\r
+absolute_desc:"Absoluut positioneren inschakelen",\r
+content:"Nieuwe laag..."\r
+},\r
+save:{\r
+save_desc:"Opslaan",\r
+cancel_desc:"Alle wijzigingen annuleren"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Open ruimte invoegen"\r
+},\r
+iespell:{\r
+iespell_desc:"Spellingcontrole",\r
+download:"ieSpell niet gevonden. Wilt u deze nu installeren?"\r
+},\r
+advhr:{\r
+advhr_desc:"Scheidingslijn"\r
+},\r
+emotions:{\r
+emotions_desc:"Emoties"\r
+},\r
+searchreplace:{\r
+search_desc:"Zoeken",\r
+replace_desc:"Zoeken/Vervangen"\r
+},\r
+advimage:{\r
+image_desc:"Afbeelding invoegen/bewerken"\r
+},\r
+advlink:{\r
+link_desc:"Link invoegen/bewerken"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citaat",\r
+abbr_desc:"Afkorting",\r
+acronym_desc:"Synoniem",\r
+del_desc:"Verwijderd",\r
+ins_desc:"Ingevoegd",\r
+attribs_desc:"Attributen invoegen/bewerken"\r
+},\r
+style:{\r
+desc:"CSS Stijl bewerken"\r
+},\r
+paste:{\r
+paste_text_desc:"Als platte tekst plakken",\r
+paste_word_desc:"Vanuit Word plakken",\r
+selectall_desc:"Alles selecteren"\r
+},\r
+paste_dlg:{\r
+text_title:"Gebruik Ctrl+V om tekst in het venster te plakken.",\r
+text_linebreaks:"Regelafbreking bewaren",\r
+word_title:"Gebruik Ctrl+V om tekst in het venster te plakken."\r
+},\r
+table:{\r
+desc:"Nieuwe tabel invoegen",\r
+row_before_desc:"Rij boven invoegen",\r
+row_after_desc:"Rij onder invoegen",\r
+delete_row_desc:"Rij verwijderen",\r
+col_before_desc:"Kolom links invoegen",\r
+col_after_desc:"Kolom rechts invoegen",\r
+delete_col_desc:"Kolom verwijderen",\r
+split_cells_desc:"Cellen splitsen",\r
+merge_cells_desc:"Cellen samenvoegen",\r
+row_desc:"Rij-eigenschappen",\r
+cell_desc:"Cel-eigenschappen",\r
+props_desc:"Tabeleigenschappen",\r
+paste_row_before_desc:"Rij boven plakken",\r
+paste_row_after_desc:"Rij onder plakken",\r
+cut_row_desc:"Rij knippen",\r
+copy_row_desc:"Rij kopi\u00EBren",\r
+del:"Tabel verwijderen",\r
+row:"Rij",\r
+col:"Kolom",\r
+cell:"Cel"\r
+},\r
+autosave:{\r
+unload_msg:"De wijzigingen zullen verloren gaan als u nu deze pagina verlaat."\r
+},\r
+fullscreen:{\r
+desc:"Volledig scherm"\r
+},\r
+media:{\r
+desc:"Media invoegen/bewerken",\r
+edit:"Media bewerken"\r
+},\r
+fullpage:{\r
+desc:"Documenteigenschappen"\r
+},\r
+template:{\r
+desc:"Voorgedefineerd sjabloon invoegen"\r
+},\r
+visualchars:{\r
+desc:"Zichtbare symbolen"\r
+},\r
+spellchecker:{\r
+desc:"Spellingcontrole",\r
+menu:"Instellingen spellingcontrole",\r
+ignore_word:"Woord negeren",\r
+ignore_words:"Alles negeren",\r
+langs:"Talen",\r
+wait:"Een ogenblik geduld...",\r
+sug:"Suggesties",\r
+no_sug:"Geen suggesties",\r
+no_mpell:"Geen spelfouten gevonden."\r
+},\r
+pagebreak:{\r
+desc:"Pagina-einde invoegen"\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({nn:{\r
+common:{\r
+edit_confirm:"Vil du bruke WYSIWYG-editoren for dette tekstfeltet?",\r
+apply:"Legg til",\r
+insert:"Set inn",\r
+update:"Oppdater",\r
+cancel:"Avbryt",\r
+close:"Stopp",\r
+browse:"Bla gjennom",\r
+class_name:"Klasse",\r
+not_set:"--ikkje sett--",\r
+clipboard_msg:"Klipp ut / Kopier /Lim inn fungerer ikkje i Mozilla og Firefox. Vil du vite meir om dette?",\r
+clipboard_no_support:"For tida ikkje st\u00F8tta av nettlesaren din, bruk tastatursnarveger i staden.",\r
+popup_blocked:"Orsak, det er registrert at du har popup-sperre aktivert i nettlesaren. Du m\u00E5 oppheve popup-sperra for nettstaden for \u00E5 f\u00E5 tilgang til dette verktyet",\r
+invalid_data:"Feil: Ugyldige verdiar er skrivne inn, desse er merka med raudt",\r
+more_colors:"Fleire fargar"\r
+},\r
+contextmenu:{\r
+align:"Justering",\r
+left:"Venstre",\r
+center:"Midtstill",\r
+right:"H\u00F8gre",\r
+full:"Full"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Lim inn dato",\r
+inserttime_desc:"Lim inn tid",\r
+months_long:"januar,februar,mars,april,mai,juni,juli,august,september,oktober,november,desember",\r
+months_short:"jan,feb,mar,apr,mai,jun,jul,aug,sep,oct,nov,des",\r
+day_long:"sundag,mandag,tirsdag,onsdag,torsdag,fredag,laurdag,sundag",\r
+day_short:"sun,man,tir,ons,tor,fre,lau,sun"\r
+},\r
+print:{\r
+print_desc:"Skriv u"\r
+},\r
+preview:{\r
+preview_desc:"F\u00F8rehandsvisni"\r
+},\r
+directionality:{\r
+ltr_desc:"Retning venstre mot h\u00F8gre",\r
+rtl_desc:"Retning h\u00F8gre mot venstre"\r
+},\r
+layer:{\r
+insertlayer_desc:"Set inn nytt lag",\r
+forward_desc:"Flytt framover",\r
+backward_desc:"Flytt bakover",\r
+absolute_desc:"Sl\u00E5 p\u00E5/av absolutt plassering",\r
+content:"Nytt lag..."\r
+},\r
+save:{\r
+save_desc:"Lagre",\r
+cancel_desc:"Kanseller alle endringar"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Set inn hardt mellomrom"\r
+},\r
+iespell:{\r
+iespell_desc:"K\u00F8yrer kontroll av rettskriving",\r
+download:"ieSpell ikkje funnen. \u00D8nskjer du \u00E5 installere ieSpell no?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horisontal linje"\r
+},\r
+emotions:{\r
+emotions_desc:"Hum\u00F8rfjes"\r
+},\r
+searchreplace:{\r
+search_desc:"S\u00F8k",\r
+replace_desc:"S\u00F8k/Erstatt"\r
+},\r
+advimage:{\r
+image_desc:"Set inn / endre bilete"\r
+},\r
+advlink:{\r
+link_desc:"Set inn / endre lenkje"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Sitat",\r
+abbr_desc:"Forkorting",\r
+acronym_desc:"Akronym",\r
+del_desc:"Sletting",\r
+ins_desc:"Innsetjing",\r
+attribs_desc:"Set inn / Endre eigenskapar"\r
+},\r
+style:{\r
+desc:"Rediger CSS-stil"\r
+},\r
+paste:{\r
+paste_text_desc:"Lim inn som vanleg tekst",\r
+paste_word_desc:"Lim inn fr\u00E5 Word",\r
+selectall_desc:"Marker al"\r
+},\r
+paste_dlg:{\r
+text_title:"Bruk CTRL+V p\u00E5 tastaturet for \u00E5 lime inn i dette vindauget.",\r
+text_linebreaks:"Behald tekstbryting",\r
+word_title:"Bruk CTRL+V p\u00E5 tastaturet for \u00E5 lime inn i dette vindauget."\r
+},\r
+table:{\r
+desc:"Set inn ein ny tabell",\r
+row_before_desc:"Set inn rad framfor",\r
+row_after_desc:"Set inn rad etter",\r
+delete_row_desc:"Fjern rad",\r
+col_before_desc:"Set inn kolonne framfor",\r
+col_after_desc:"Set inn kolonne etter",\r
+delete_col_desc:"Fjern kolonne",\r
+split_cells_desc:"Del celler",\r
+merge_cells_desc:"Sl\u00E5 saman celler",\r
+row_desc:"Radeigenskapar",\r
+cell_desc:"Celleegenskapar",\r
+props_desc:"Tabelleigenskapar",\r
+paste_row_before_desc:"Lim inn rad framfor",\r
+paste_row_after_desc:"Lim inn rad etter",\r
+cut_row_desc:"Fjern rad",\r
+copy_row_desc:"Kopier rad",\r
+del:"Slett tabell",\r
+row:"Rad",\r
+col:"Kolonne",\r
+cell:"Celle"\r
+},\r
+autosave:{\r
+unload_msg:"Endringane du gjorde g\u00E5r tapt om du forl\u00E8t denne sida!"\r
+},\r
+fullscreen:{\r
+desc:"Skift til/fr\u00E5 fullskjermmodus"\r
+},\r
+media:{\r
+desc:"Set inn / rediger inkludert objekt",\r
+edit:"Endre innsett objekt"\r
+},\r
+fullpage:{\r
+desc:"Dokumenteigenskapar"\r
+},\r
+template:{\r
+desc:"Set inn f\u00F8rehandsdefinert malinnhald"\r
+},\r
+visualchars:{\r
+desc:"Visuelle konktrollteikn p\u00E5/av"\r
+},\r
+spellchecker:{\r
+desc:"Stavekontroll p\u00E5/av",\r
+menu:"Vis meny",\r
+ignore_word:"Ignorer ord",\r
+ignore_words:"Ignorer alt",\r
+langs:"Spr\u00E5k",\r
+wait:"Ver venleg og vent...",\r
+sug:"Framlegg",\r
+no_sug:"Inga framlegg",\r
+no_mpell:"Inga stavefeil funne."\r
+},\r
+pagebreak:{\r
+desc:"Set inn sideskift"\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({pl:{\r
+common:{\r
+edit_confirm:"Czy chcesz u\u017Cy\u0107 trybu WYSIWYG dla tego pola formularza?",\r
+apply:"Zastosuj",\r
+insert:"Wstaw",\r
+update:"Aktualizuj",\r
+cancel:"Anuluj",\r
+close:"Zamknij",\r
+browse:"Przegl\u0105daj",\r
+class_name:"Klasa",\r
+not_set:"-- Nie ustawiony --",\r
+clipboard_msg:"Akcje Kopiuj/Wytnij/Wklej nie s\u0105 dost\u0119pne w Mozilli i Firefox.\nCzy chcesz wi\u0119cej informacji o tym problemie?",\r
+clipboard_no_support:"Aktualnie nie jest wspomagany przez Twoj\u0105 przegl\u0105dark\u0119, u\u017Cyj skr\u00F3t\u00F3w klawiaturowych w zamian.",\r
+popup_blocked:"Zauwa\u017Cyli\u015Bmy, \u017Ce Twoje blokowanie wyskakuj\u0105cych okienek wy\u0142\u0105czy\u0142o okno, kt\u00F3re dostarcza funkcjonalno\u015B\u0107 aplikacji. B\u0119dziesz potrzebowa\u0142 wy\u0142\u0105czy\u0107 blokowanie wyskakuj\u0105cych okienek na tej stronie aby w pe\u0142ni wykorzysta\u0107 to narz\u0119dzie.",\r
+invalid_data:"B\u0142\u0105d: Zosta\u0142y wprowadzone b\u0142\u0119dne dane, s\u0105 zaznaczone na czerwono.",\r
+more_colors:"Wi\u0119cej kolor\u00F3w"\r
+},\r
+contextmenu:{\r
+align:"Wyr\u00F3wnanie",\r
+left:"Lewy",\r
+center:"\u015Arodkowy",\r
+right:"Prawy",\r
+full:"Wype\u0142niony"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Wstaw dat\u0119",\r
+inserttime_desc:"Wstaw czas",\r
+months_long:"Stycze\u0144, Luty, Marzec, Kwiecie\u0144, Maj, Czerwiec, Lipiec, Sierpie\u0144, Wrzesie\u0144, Pa\u017Adziernik, Listopad, Grudzie\u0144",\r
+months_short:"Sty,Lut,Mar,Kw,Maj,Cze,Lip,Sier,Wrz,Pa\u017A,Lis,Gru",\r
+day_long:"Niedziela, Poniedzia\u0142ek, Wtorek, \u015Aroda, Czwartek, Pi\u0105tek, Sobota, Niedziela",\r
+day_short:"Niedz,Pon,Wt,\u015Ar,Czw,Pt,Sob,Niedz"\r
+},\r
+print:{\r
+print_desc:"Drukuj"\r
+},\r
+preview:{\r
+preview_desc:"Podgl\u0105d"\r
+},\r
+directionality:{\r
+ltr_desc:"Kierunek od lewej do prawej",\r
+rtl_desc:"Kierunek od prawej do lewej"\r
+},\r
+layer:{\r
+insertlayer_desc:"Wklej now\u0105 warstw\u0119",\r
+forward_desc:"Przesu\u0144 do przodu",\r
+backward_desc:"Przesu\u0144 w ty\u0142",\r
+absolute_desc:"Prze\u0142\u0105cz pozycjonowanie absolutne",\r
+content:"Nowa warstwa..."\r
+},\r
+save:{\r
+save_desc:"Zachowaj",\r
+cancel_desc:"Anuluj wszystkie zmiany"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Wklej tward\u0105 spacj\u0119"\r
+},\r
+iespell:{\r
+iespell_desc:"Sprawd\u017A pisowni\u0119",\r
+download:"ieSpell nie wykryte. Czy chcesz to teraz zainstalowa\u0107?"\r
+},\r
+advhr:{\r
+advhr_desc:"Pozioma linia"\r
+},\r
+emotions:{\r
+emotions_desc:"Emotikony"\r
+},\r
+searchreplace:{\r
+search_desc:"Znajd\u017A",\r
+replace_desc:"Znajd\u017A/Zamie\u0144"\r
+},\r
+advimage:{\r
+image_desc:"Wstaw/edytuj obraz"\r
+},\r
+advlink:{\r
+link_desc:"Wstaw/edytuj link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Cytat",\r
+abbr_desc:"Skr\u00F3t",\r
+acronym_desc:"Akronim",\r
+del_desc:"Usuni\u0119cie",\r
+ins_desc:"Wstawienie",\r
+attribs_desc:"Wstaw / Edytuj atrybuty"\r
+},\r
+style:{\r
+desc:"Edytuj Style CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Wklej jako Zwyk\u0142y Tekst",\r
+paste_word_desc:"Wklej z Worda",\r
+selectall_desc:"Zaznacz wszystko"\r
+},\r
+paste_dlg:{\r
+text_title:"U\u017Cyj CTRL+V na swojej klawiaturze \u017Ceby wklei\u0107 tekst do okna.",\r
+text_linebreaks:"Zachowaj ko\u0144ce linii.",\r
+word_title:"U\u017Cyj CTRL+V na swojej klawiaturze \u017Ceby wklei\u0107 tekst do okna."\r
+},\r
+table:{\r
+desc:"Wstaw now\u0105 tabel\u0119",\r
+row_before_desc:"Wstaw nowy wierdz przed...",\r
+row_after_desc:"Wstaw nowy wiersz po...",\r
+delete_row_desc:"Usu\u0144 wiersz",\r
+col_before_desc:"Wstaw kolumne przed...",\r
+col_after_desc:"Wstaw kolumne po...",\r
+delete_col_desc:"Usu\u0144 kolumn\u0119",\r
+split_cells_desc:"Podziel kom\u00F3rk\u0119",\r
+merge_cells_desc:"Po\u0142\u0105cz kom\u00F3rki",\r
+row_desc:"W\u0142a\u015Bciwo\u015Bci wiersza",\r
+cell_desc:"W\u0142a\u015Bciwo\u015Bci kom\u00F3rki",\r
+props_desc:"Table properties",\r
+paste_row_before_desc:"Wklej wiersz przed...",\r
+paste_row_after_desc:"Wklej wiersz po...",\r
+cut_row_desc:"Wynij wiersz...",\r
+copy_row_desc:"Kopiuj wiersz...",\r
+del:"Usu\u0144 tabel\u0119",\r
+row:"Wiersz",\r
+col:"Kolumna",\r
+cell:"Kom\u00F3rka"\r
+},\r
+autosave:{\r
+unload_msg:"Zmiany, kt\u00F3re zrobi\u0142e\u015B zostan\u0105 utracone je\u015Bli opu\u015Bcisz t\u0119 stron\u0119."\r
+},\r
+fullscreen:{\r
+desc:"Prze\u0142\u0105cz tryb pe\u0142noekranowy"\r
+},\r
+media:{\r
+desc:"Insert / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"Document properties"\r
+},\r
+template:{\r
+desc:"Wstaw szablon dokumentu"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"Sprawdzanie pisowni",\r
+menu:"Ustawienia sprawdzania pisowni",\r
+ignore_word:"Ignoruj s\u0142owo",\r
+ignore_words:"Ignoruj wszystkie",\r
+langs:"J\u0119zyki",\r
+wait:"Prosz\u0119 poczeka\u0107...",\r
+sug:"Sugestie",\r
+no_sug:"Nie ma sugestii",\r
+no_mpell:"\u017Badnych brakuj\u0105cych nie znaleziono."\r
+},\r
+pagebreak:{\r
+desc:"Wstaw lini\u0119."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({pt:{\r
+common:{\r
+edit_confirm:"Deseja usar o modo de edi\u00E7\u00E3o avan\u00E7ado nesse campo de texto?",\r
+apply:"Aplicar",\r
+insert:"Inserir",\r
+update:"Atualizar",\r
+cancel:"Cancelar",\r
+close:"Fechar",\r
+browse:"Procurar",\r
+class_name:"Classe",\r
+not_set:"-- N\u00E3o especificado --",\r
+clipboard_msg:"Copiar/cortar/colar n\u00E3o est\u00E1 dispon\u00EDvel no Mozilla/Firefox.\nDeseja maiores informa\u00E7\u00F5es sobre esse problema?",\r
+clipboard_no_support:"Seu navegador n\u00E3o tem suporte para esta fun\u00E7\u00E3o, use os atalhos de teclado.",\r
+popup_blocked:"Detectamos que o seu bloqueador de popups desabilitou uma janela que \u00E9 essencial para o aplicativo. Voc\u00EA precisa desabilitar o bloqueador de popups para utilizar esta ferramenta.",\r
+invalid_data:"Erro: Valores inv\u00E1lidos est\u00E3o marcados em vermelho.",\r
+more_colors:"Mais Cores"\r
+},\r
+contextmenu:{\r
+align:"Alinhamento",\r
+left:"Esquerda",\r
+center:"Centro",\r
+right:"Direita",\r
+full:"Justificar"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d-%m-%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Inserir data",\r
+inserttime_desc:"Inserir hor\u00E1rio",\r
+months_long:"Janeiro,Fevereiro,Mar\u00E7o,Abril,Maio,Junho,Julho,Agosto,Setembro,Outubro,Novembro,Dezembro",\r
+months_short:"Jan,Fev,Mar,Abr,Mai,Jun,Jul,Ago,Set,Out,Nov,Dez",\r
+day_long:"Domingo,Segunda-Feira,Ter\u00E7a-Feira,Quarta-Feira,Quinta-Feira,Sexta-Feira,S\u00E1bado,Domingo",\r
+day_short:"Dom,Seg,Ter,Qua,Qui,Sex,Sab,Dom"\r
+},\r
+print:{\r
+print_desc:"Imprimir"\r
+},\r
+preview:{\r
+preview_desc:"Previs\u00E3o"\r
+},\r
+directionality:{\r
+ltr_desc:"Esquerda para direita",\r
+rtl_desc:"Direita para esquerda"\r
+},\r
+layer:{\r
+insertlayer_desc:"Inserir nova camada",\r
+forward_desc:"Mover para frente",\r
+backward_desc:"Mover para tr\u00E1s",\r
+absolute_desc:"Alternar posicionamento absoluto",\r
+content:"Nova camada..."\r
+},\r
+save:{\r
+save_desc:"Salvar",\r
+cancel_desc:"Cancelar todas altera\u00E7\u00F5es"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Inserir espa\u00E7o"\r
+},\r
+iespell:{\r
+iespell_desc:"Verificar ortografia",\r
+download:"Aplicativo de ortografia n\u00E3o-detectado. Deseja instal\u00E1-lo agora?"\r
+},\r
+advhr:{\r
+advhr_desc:"Separador horizontal"\r
+},\r
+emotions:{\r
+emotions_desc:"Emoticons"\r
+},\r
+searchreplace:{\r
+search_desc:"Localizar",\r
+replace_desc:"Localizar/substituir"\r
+},\r
+advimage:{\r
+image_desc:"Inserir/editar imagem"\r
+},\r
+advlink:{\r
+link_desc:"Inserir/editar hyperlink"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Cita\u00E7\u00E3o",\r
+abbr_desc:"Abrevia\u00E7\u00E3o",\r
+acronym_desc:"Acr\u00F4nimo",\r
+del_desc:"Deletar",\r
+ins_desc:"Inserir",\r
+attribs_desc:"Inserir/Editar atributos"\r
+},\r
+style:{\r
+desc:"Editar CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Colar como texto simples",\r
+paste_word_desc:"Colar (copiado do WORD)",\r
+selectall_desc:"Selecionar tudo"\r
+},\r
+paste_dlg:{\r
+text_title:"Use CTRL+V para colar o texto na janela.",\r
+text_linebreaks:"Manter quebras de linha",\r
+word_title:"Use CTRL+V para colar o texto na janela."\r
+},\r
+table:{\r
+desc:"Inserir nova tabela",\r
+row_before_desc:"Inserir linha antes",\r
+row_after_desc:"Inserir linha depois",\r
+delete_row_desc:"Deletar linha",\r
+col_before_desc:"Inserir coluna antes",\r
+col_after_desc:"Inserir coluna depois",\r
+delete_col_desc:"Remover coluna",\r
+split_cells_desc:"Quebrar c\u00E9lulas",\r
+merge_cells_desc:"Unir c\u00E9lulas",\r
+row_desc:"Propriedades das linhas",\r
+cell_desc:"Propriedades das c\u00E9lulas",\r
+props_desc:"Propriedades da tabela",\r
+paste_row_before_desc:"Colar linha antes",\r
+paste_row_after_desc:"Colar linha depois",\r
+cut_row_desc:"Cortar linha",\r
+copy_row_desc:"Copiar linha",\r
+del:"Deletar tabela",\r
+row:"Linha",\r
+col:"Coluna",\r
+cell:"C\u00E9lula"\r
+},\r
+autosave:{\r
+unload_msg:"As mudan\u00E7as efetuadas ser\u00E3o perdidas se voc\u00EA sair desta p\u00E1gina."\r
+},\r
+fullscreen:{\r
+desc:"Tela Inteira"\r
+},\r
+media:{\r
+desc:"Inserir/editar m\u00EDdia embutida",\r
+edit:"Editar m\u00EDdia embutida"\r
+},\r
+fullpage:{\r
+desc:"Propriedades do Documento"\r
+},\r
+template:{\r
+desc:"Inserir template"\r
+},\r
+visualchars:{\r
+desc:"Caracteres de controle visual ligado/desligado"\r
+},\r
+spellchecker:{\r
+desc:"Alternar verifica\u00E7\u00E3o ortogr\u00E1fica",\r
+menu:"Configura\u00E7\u00F5es de ortografia",\r
+ignore_word:"Ignorar palavra",\r
+ignore_words:"Ignorar tudo",\r
+langs:"Linguagens",\r
+wait:"Aguarde...",\r
+sug:"Sugest\u00F5es",\r
+no_sug:"Sem sugest\u00F5es",\r
+no_mpell:"N\u00E3o h\u00E1 erros de ortografia."\r
+},\r
+pagebreak:{\r
+desc:"Inserir quebra de p\u00E1gina."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({ro:{\r
+common:{\r
+edit_confirm:"Dori\u0163i s\u0103 folosi\u0163i un editor avansat pentru aceast\u0103 zona de text?",\r
+apply:"Aplic\u0103",\r
+insert:"Insereaz\u0103",\r
+update:"Actualizeaz\u0103",\r
+cancel:"Anulare",\r
+close:"\u00CEnchide",\r
+browse:"R\u0103sfoie\u015Fte",\r
+class_name:"Clas\u0103",\r
+not_set:"-- Nestat\u0103 --",\r
+clipboard_msg:"Copiere/T\u0103iere/Lipire nu sunt disponibile \u00EEn Mozilla \u015Fi Firefox.\nDori\u0163i mai multe informa\u0163ii despre aceast\u0103 problem\u0103?",\r
+clipboard_no_support:"Deocamdat\u0103 nu este suportat\u0103 de browser. V\u0103 rug\u0103m s\u0103 folosi\u0163i combina\u0163ii de taste.",\r
+popup_blocked:"Ne pare r\u0103u, dar un popup-blocker a dezativat o fereastr\u0103 care d\u0103 func\u0163ionalitate aplica\u0163iei.Trebuie s\u0103 dezactiva\u0163i acel popup-blocker pentru acest site pentru a folosi aplica\u0163ia la capacitate maxim\u0103.",\r
+invalid_data:"Ave\u0163i erori. Datele gre\u015Fite sunt \u00EEn ro\u015Fu.",\r
+more_colors:"Mai multe culori"\r
+},\r
+contextmenu:{\r
+align:"Aliniere",\r
+left:"St\u00E2nga",\r
+center:"Centru",\r
+right:"Dreapta",\r
+full:"Justify"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Insereaz\u0103 dat\u0103",\r
+inserttime_desc:"Insereaz\u0103 or\u0103",\r
+months_long:"Ianuarie,Februarie,Martie,Aprilie,Mai,Iunie,Iulie,August,Septembrie,Octombrie,Noiembrie,Decembrie ",\r
+months_short:"Ian,Feb,Mar,Apr,Mai,Iun,Iul,Aug,Sep,Oct,Noi,Dec",\r
+day_long:"Duminic\u0103,Luni,Mar\u0163i,Miercuri,Joi,Vineri,S\u00E2mb\u0103t\u0103,Duminic\u0103",\r
+day_short:"Dum,Lun,Mar,Mie,Joi,Vin,S\u00E2m,Dum"\r
+},\r
+print:{\r
+print_desc:"Imprimare"\r
+},\r
+preview:{\r
+preview_desc:"Previzualizare"\r
+},\r
+directionality:{\r
+ltr_desc:"Direc\u0163ia de la st\u00E2nga la dreapta",\r
+rtl_desc:"Direc\u0163ia de la dreapta la st\u00E2nga"\r
+},\r
+layer:{\r
+insertlayer_desc:"Insereaz\u0103 stat nou",\r
+forward_desc:"Mut\u0103 \u00EEnainte",\r
+backward_desc:"Mut\u0103 \u00EEnapoi",\r
+absolute_desc:"Pozi\u0163ionare absolut\u0103",\r
+content:"Strat nou ..."\r
+},\r
+save:{\r
+save_desc:"Salveaz\u0103",\r
+cancel_desc:"Anuleaz\u0103 toate schimb\u0103rile"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Insert non-breaking space character"\r
+},\r
+iespell:{\r
+iespell_desc:"Ruleaz\u0103 corector de limb\u0103",\r
+download:"ieSpell nu a fost detectat. Dori\u0163i s\u0103-l instala\u0163i?"\r
+},\r
+advhr:{\r
+advhr_desc:"Linie orizontal\u0103"\r
+},\r
+emotions:{\r
+emotions_desc:"Emoticoane"\r
+},\r
+searchreplace:{\r
+search_desc:"Caut\u0103",\r
+replace_desc:"Caut\u0103/\u00CEnlocuie\u015Fte"\r
+},\r
+advimage:{\r
+image_desc:"Inserare/editare imagine"\r
+},\r
+advlink:{\r
+link_desc:"Insereaz\u0103/editeaz\u0103 link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citat",\r
+abbr_desc:"Abreviere",\r
+acronym_desc:"Acronim",\r
+del_desc:"\u015Etergere",\r
+ins_desc:"Inserare",\r
+attribs_desc:"Insereaz\u0103/Editeaz\u0103 atribute"\r
+},\r
+style:{\r
+desc:"Editare CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Lipire ca text simplu",\r
+paste_word_desc:"Lipire din Word",\r
+selectall_desc:"Selecteaz\u0103 tot"\r
+},\r
+paste_dlg:{\r
+text_title:"Folosi\u0163i CTRL+V pentru a lipi \u00EEn aceast\u0103 zon\u0103.",\r
+text_linebreaks:"Pastreaza linii noi.",\r
+word_title:"Folosi\u0163i CTRL+V pentru a lipi \u00EEn aceast\u0103 zon\u0103."\r
+},\r
+table:{\r
+desc:"Insereaz\u0103 tabel nou",\r
+row_before_desc:"Inserare r\u00E2nd \u00EEnainte",\r
+row_after_desc:"Inserare r\u00E2nd dup\u0103",\r
+delete_row_desc:"\u015Eterge r\u00E2nd",\r
+col_before_desc:"Inserare coloan\u0103 \u00EEnainte",\r
+col_after_desc:"Inserare coloan\u0103 dup\u0103",\r
+delete_col_desc:"\u015Eterge coloan\u0103",\r
+split_cells_desc:"Separa\u0163i celule unite",\r
+merge_cells_desc:"Uni\u0163i celule",\r
+row_desc:"Propriet\u0103\u0163i r\u00E2nd",\r
+cell_desc:"Propriet\u0103\u0163i celul\u0103",\r
+props_desc:"Propriet\u0103\u0163i tabel",\r
+paste_row_before_desc:"Lipe\u015Fte r\u00E2nd \u00EEnainte",\r
+paste_row_after_desc:"Lipe\u015Fte r\u00E2nd dup\u0103",\r
+cut_row_desc:"Taie r\u00E2nd",\r
+copy_row_desc:"Copiaz\u0103 r\u00E2nd",\r
+del:"\u015Eterge tabel",\r
+row:"R\u00E2nd",\r
+col:"Coloan\u0103",\r
+cell:"Celul\u0103"\r
+},\r
+autosave:{\r
+unload_msg:"Modific\u0103rile nu vor fi salvate."\r
+},\r
+fullscreen:{\r
+desc:"Mod ecran complet"\r
+},\r
+media:{\r
+desc:"Insereaz\u0103 / editeaz\u0103 media",\r
+edit:"Editeaz\u0103 media"\r
+},\r
+fullpage:{\r
+desc:"Propriet\u0103\u0163i document"\r
+},\r
+template:{\r
+desc:"Insereaz\u0103 un \u015Fablon predefinit"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"Activare/dezactivare dic\u0163ionar",\r
+menu:"Set\u0103ri dic\u0163ionar",\r
+ignore_word:"Ignor\u0103 cuv\u00E2nt",\r
+ignore_words:"Ignor\u0103 toate",\r
+langs:"Limbi",\r
+wait:"V\u0103 rog a\u015Ftepta\u0163i...",\r
+sug:"Sugestii",\r
+no_sug:"Nu sunt sugestii.",\r
+no_mpell:"Nu sunt gre\u015Feli."\r
+},\r
+pagebreak:{\r
+desc:"Insereaz\u0103 page break."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({ru:{\r
+common:{\r
+edit_confirm:"\u0412\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u043B\u044F \u044D\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0439 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043C WYSIWYG?",\r
+apply:"\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C",\r
+insert:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C",\r
+update:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C",\r
+cancel:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C",\r
+close:"\u0417\u0430\u043A\u0440\u044B\u0442\u044C",\r
+browse:"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C",\r
+class_name:"\u041A\u043B\u0430\u0441\u0441",\r
+not_set:"-- \u041D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E --",\r
+clipboard_msg:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435/\u0412\u0441\u0442\u0430\u0432\u043A\u0430 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0432 Mozilla \u0438 Firefox.\n\u0425\u043E\u0442\u0438\u0442\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435 \u0443\u0437\u043D\u0430\u0442\u044C, \u0432 \u0447\u0451\u043C \u0434\u0435\u043B\u043E?",\r
+clipboard_no_support:"\u041D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0432\u0430\u0448\u0438\u043C \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043E\u043C \u0432 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0438\u0439 \u043C\u043E\u043C\u0435\u043D\u0442, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043D\u044B\u0435 \u0441\u043E\u043A\u0440\u0430\u0449\u0435\u043D\u0438\u044F.",\r
+popup_blocked:"\u0418\u0437\u0432\u0438\u043D\u0438\u0442\u0435, \u043D\u043E \u0432\u0430\u0448 \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0449\u0438\u043A \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0438\u0445 \u043E\u043A\u043E\u043D \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043B \u043E\u043A\u043D\u043E, \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0449\u0435\u0435 \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F. \u0412\u0430\u043C \u043D\u0443\u0436\u043D\u043E \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u043A\u0443 \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0438\u0445 \u043E\u043A\u043E\u043D \u043D\u0430 \u044D\u0442\u043E\u043C \u0441\u0430\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043D\u0430\u043F\u043E\u043B\u043D\u0443\u044E \u0432\u043E\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u044D\u0442\u0438\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u043C.",\r
+invalid_data:"\u041E\u0448\u0438\u0431\u043A\u0430: \u041E\u0442\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u0435 \u043A\u0440\u0430\u0441\u043D\u044B\u043C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432\u0432\u0435\u0434\u0435\u043D\u044B \u043D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E.",\r
+more_colors:"\u0411\u043E\u043B\u044C\u0448\u0435 \u0446\u0432\u0435\u0442\u043E\u0432"\r
+},\r
+contextmenu:{\r
+align:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435",\r
+left:"\u0412\u043B\u0435\u0432\u043E",\r
+center:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+right:"\u0412\u043F\u0440\u0430\u0432\u043E",\r
+full:"\u041F\u043E\u043B\u043D\u043E\u0441\u0442\u044C\u044E"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d.%m.%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0434\u0430\u0442\u0443",\r
+inserttime_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0432\u0440\u0435\u043C\u044F",\r
+months_long:"\u042F\u043D\u0432\u0430\u0440\u044C,\u0424\u0435\u0432\u0440\u0430\u043B\u044C,\u041C\u0430\u0440\u0442,\u0410\u043F\u0440\u0435\u043B\u044C,\u041C\u0430\u0439,\u0418\u044E\u043D\u044C,\u0418\u044E\u043D\u044C,\u0418\u044E\u043B\u044C,\u0410\u0432\u0433\u0443\u0441\u0442,\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C,\u041E\u043A\u0442\u044F\u0431\u0440\u044C,\u041D\u043E\u044F\u0431\u0440\u044C,\u0414\u0435\u043A\u0430\u0431\u0440\u044C",\r
+months_short:"\u042F\u043D\u0432,\u0424\u0435\u0432,\u041C\u0430\u0440,\u0410\u043F\u0440,\u041C\u0430\u0439,\u0418\u044E\u043D,\u0418\u044E\u043B,\u0410\u0432\u0433,\u0421\u0435\u043F,\u041E\u043A\u0442,\u041D\u043E\u0432,\u0414\u0435\u043A",\r
+day_long:"\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435,\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A,\u0412\u0442\u043E\u0440\u043D\u0438\u043A,\u0421\u0440\u0435\u0434\u0430,\u0427\u0435\u0442\u0432\u0435\u0440\u0433,\u041F\u044F\u0442\u043D\u0438\u0446\u0430,\u0421\u0443\u0431\u0431\u043E\u0442\u0430,\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435",\r
+day_short:"\u0412\u0441,\u041F\u043D,\u0412\u0442,\u0421\u0440,\u0427\u0442,\u041F\u0442,\u0421\u0431,\u0412\u0441"\r
+},\r
+print:{\r
+print_desc:"\u041F\u0435\u0447\u0430\u0442\u044C"\r
+},\r
+preview:{\r
+preview_desc:"\u041F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440"\r
+},\r
+directionality:{\r
+ltr_desc:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u043B\u0435\u0432\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043E",\r
+rtl_desc:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0441\u043F\u0440\u0430\u0432\u0430 \u043D\u0430\u043B\u0435\u0432\u043E"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0441\u043B\u043E\u0439",\r
+forward_desc:"\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0432\u043F\u0435\u0440\u0451\u0434",\r
+backward_desc:"\u041F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u043D\u0430\u0437\u0430\u0434",\r
+absolute_desc:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C/\u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u043E\u0435 \u043F\u043E\u0437\u0438\u0446\u0438\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",\r
+content:"\u041D\u043E\u0432\u044B\u0439 \u0441\u043B\u043E\u0439\u2026"\r
+},\r
+save:{\r
+save_desc:"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C",\r
+cancel_desc:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u0435\u0440\u0430\u0437\u0440\u044B\u0432\u043D\u044B\u0439 \u043F\u0440\u043E\u0431\u0435\u043B"\r
+},\r
+iespell:{\r
+iespell_desc:"\u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u043E\u0440\u0444\u043E\u0433\u0440\u0430\u0444\u0438\u044E",\r
+download:"ieSpell \u043D\u0435 \u043E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C?"\r
+},\r
+advhr:{\r
+advhr_desc:"\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u043B\u0438\u043D\u0438\u044F"\r
+},\r
+emotions:{\r
+emotions_desc:"\u0421\u043C\u0430\u0439\u043B\u0438\u043A\u0438"\r
+},\r
+searchreplace:{\r
+search_desc:"\u041D\u0430\u0439\u0442\u0438",\r
+replace_desc:"\u041D\u0430\u0439\u0442\u0438/\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C"\r
+},\r
+advimage:{\r
+image_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435"\r
+},\r
+advlink:{\r
+link_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"\u0426\u0438\u0442\u0430\u0442\u0430",\r
+abbr_desc:"\u0410\u0431\u0431\u0440\u0435\u0432\u0438\u0430\u0442\u0443\u0440\u0430",\r
+acronym_desc:"\u0410\u043A\u0440\u043E\u043D\u0438\u043C",\r
+del_desc:"\u0423\u0434\u0430\u043B\u0435\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442",\r
+ins_desc:"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442",\r
+attribs_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044B"\r
+},\r
+style:{\r
+desc:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0438\u043B\u044C CSS",\r
+delta_width:"35"\r
+},\r
+paste:{\r
+paste_text_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043A\u0430\u043A \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442",\r
+paste_word_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0438\u0437 Word",\r
+selectall_desc:"\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u0432\u0441\u0451"\r
+},\r
+paste_dlg:{\r
+text_title:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448 CTRL+V \u0447\u0442\u043E\u0431\u044B \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 \u0432 \u043E\u043A\u043D\u043E.",\r
+text_linebreaks:"\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u0440\u0430\u0437\u0440\u044B\u0432\u044B \u0441\u0442\u0440\u043E\u043A",\r
+word_title:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448 CTRL+V \u0447\u0442\u043E\u0431\u044B \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 \u0432 \u043E\u043A\u043D\u043E."\r
+},\r
+table:{\r
+desc:"\u0412\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u043D\u043E\u0432\u0443\u044E \u0442\u0430\u0431\u043B\u0438\u0446\u0443",\r
+row_before_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u0435\u0440\u0435\u0434",\r
+row_after_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u043F\u043E\u0441\u043B\u0435",\r
+delete_row_desc:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",\r
+col_before_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u043E\u043B\u0431\u0435\u0446 \u043F\u0435\u0440\u0435\u0434",\r
+col_after_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u043E\u043B\u0431\u0435\u0446 \u043F\u043E\u0441\u043B\u0435",\r
+delete_col_desc:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0442\u043E\u043B\u0431\u0435\u0446",\r
+split_cells_desc:"\u0420\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u044C \u0441\u043B\u0438\u0442\u044B\u0435 \u044F\u0447\u0435\u0439\u043A\u0438",\r
+merge_cells_desc:"\u0421\u043B\u0438\u0442\u044C \u044F\u0447\u0435\u0439\u043A\u0438",\r
+row_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043E\u043A\u0438",\r
+cell_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u044F\u0447\u0435\u0439\u043A\u0438",\r
+props_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u044B",\r
+paste_row_before_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043F\u0435\u0440\u0435\u0434",\r
+paste_row_after_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043F\u043E\u0441\u043B\u0435",\r
+cut_row_desc:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",\r
+copy_row_desc:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443",\r
+del:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0446\u0443",\r
+row:"\u0421\u0442\u0440\u043E\u043A\u0430",\r
+col:"\u0421\u0442\u043E\u043B\u0431\u0435\u0446",\r
+cell:"\u042F\u0447\u0435\u0439\u043A\u0430"\r
+},\r
+autosave:{\r
+unload_msg:"\u0412\u043D\u0435\u0441\u0451\u043D\u043D\u044B\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0431\u0443\u0434\u0443\u0442 \u043F\u043E\u0442\u0435\u0440\u044F\u043D\u044B, \u0435\u0441\u043B\u0438 \u0432\u044B \u0443\u0439\u0434\u0451\u0442\u0435 \u0441 \u044D\u0442\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B."\r
+},\r
+fullscreen:{\r
+desc:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C/\u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u043B\u043D\u043E\u044D\u043A\u0440\u0430\u043D\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C"\r
+},\r
+media:{\r
+desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0434\u0438\u0430-\u043E\u0431\u044A\u0435\u043A\u0442",\r
+edit:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0434\u0438\u0430-\u043E\u0431\u044A\u0435\u043A\u0442"\r
+},\r
+fullpage:{\r
+desc:"Document properties"\r
+},\r
+template:{\r
+desc:"Insert predefined template content"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"Toggle spellchecker",\r
+menu:"Spellchecker settings",\r
+ignore_word:"Ignore word",\r
+ignore_words:"Ignore all",\r
+langs:"Languages",\r
+wait:"Please wait...",\r
+sug:"Suggestions",\r
+no_sug:"No suggestions",\r
+no_mpell:"No misspellings found."\r
+},\r
+pagebreak:{\r
+desc:"Insert page break."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({si:{\r
+common:{\r
+edit_confirm:"Do you want to use the WYSIWYG mode for this textarea?",\r
+apply:"Apply",\r
+insert:"Insert",\r
+update:"Update",\r
+cancel:"Cancel",\r
+close:"Close",\r
+browse:"Browse",\r
+class_name:"Class",\r
+not_set:"-- Not set --",\r
+clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?",\r
+clipboard_no_support:"Currently not supported by your browser, use keyboard shortcuts instead.",\r
+popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.",\r
+invalid_data:"Error: Invalid values entered, these are marked in red.",\r
+more_colors:"More colors"\r
+},\r
+contextmenu:{\r
+align:"Alignment",\r
+left:"Left",\r
+center:"Center",\r
+right:"Right",\r
+full:"Full"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Insert date",\r
+inserttime_desc:"Insert time",\r
+months_long:"January,February,March,April,May,June,July,August,September,October,November,December",\r
+months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",\r
+day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",\r
+day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"\r
+},\r
+print:{\r
+print_desc:"Print"\r
+},\r
+preview:{\r
+preview_desc:"Preview"\r
+},\r
+directionality:{\r
+ltr_desc:"Direction left to right",\r
+rtl_desc:"Direction right to left"\r
+},\r
+layer:{\r
+insertlayer_desc:"Insert new layer",\r
+forward_desc:"Move forward",\r
+backward_desc:"Move backward",\r
+absolute_desc:"Toggle absolute positioning",\r
+content:"New layer..."\r
+},\r
+save:{\r
+save_desc:"Save",\r
+cancel_desc:"Cancel all changes"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Insert non-breaking space character"\r
+},\r
+iespell:{\r
+iespell_desc:"Run spell checking",\r
+download:"ieSpell not detected. Do you want to install it now?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horizontale rule"\r
+},\r
+emotions:{\r
+emotions_desc:"Emotions"\r
+},\r
+searchreplace:{\r
+search_desc:"Find",\r
+replace_desc:"Find/Replace"\r
+},\r
+advimage:{\r
+image_desc:"Insert/edit image"\r
+},\r
+advlink:{\r
+link_desc:"Insert/edit link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"Abbreviation",\r
+acronym_desc:"Acronym",\r
+del_desc:"Deletion",\r
+ins_desc:"Insertion",\r
+attribs_desc:"Insert/Edit Attributes"\r
+},\r
+style:{\r
+desc:"Edit CSS Style"\r
+},\r
+paste:{\r
+paste_text_desc:"Paste as Plain Text",\r
+paste_word_desc:"Paste from Word",\r
+selectall_desc:"Select All"\r
+},\r
+paste_dlg:{\r
+text_title:"Use CTRL+V on your keyboard to paste the text into the window.",\r
+text_linebreaks:"Keep linebreaks",\r
+word_title:"Use CTRL+V on your keyboard to paste the text into the window."\r
+},\r
+table:{\r
+desc:"Inserts a new table",\r
+row_before_desc:"Insert row before",\r
+row_after_desc:"Insert row after",\r
+delete_row_desc:"Delete row",\r
+col_before_desc:"Insert column before",\r
+col_after_desc:"Insert column after",\r
+delete_col_desc:"Remove column",\r
+split_cells_desc:"Split merged table cells",\r
+merge_cells_desc:"Merge table cells",\r
+row_desc:"Table row properties",\r
+cell_desc:"Table cell properties",\r
+props_desc:"Table properties",\r
+paste_row_before_desc:"Paste table row before",\r
+paste_row_after_desc:"Paste table row after",\r
+cut_row_desc:"Cut table row",\r
+copy_row_desc:"Copy table row",\r
+del:"Delete table",\r
+row:"Row",\r
+col:"Column",\r
+cell:"Cell"\r
+},\r
+autosave:{\r
+unload_msg:"The changes you made will be lost if you navigate away from this page."\r
+},\r
+fullscreen:{\r
+desc:"Toggle fullscreen mode"\r
+},\r
+media:{\r
+desc:"Insert / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"Document properties"\r
+},\r
+template:{\r
+desc:"Insert predefined template content"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"Toggle spellchecker",\r
+menu:"Spellchecker settings",\r
+ignore_word:"Ignore word",\r
+ignore_words:"Ignore all",\r
+langs:"Languages",\r
+wait:"Please wait...",\r
+sug:"Suggestions",\r
+no_sug:"No suggestions",\r
+no_mpell:"No misspellings found."\r
+},\r
+pagebreak:{\r
+desc:"Insert page break."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({sk:{\r
+common:{\r
+edit_confirm:"Chce\u0161 pou\u017Ei\u0165 WYSIWYG m\u00F3d pre tento text?",\r
+apply:"Pou\u017Ei\u0165",\r
+insert:"Vlo\u017Ei\u0165",\r
+update:"Aktualizova\u0165",\r
+cancel:"Zru\u0161i\u0165",\r
+close:"Zavrie\u0165",\r
+browse:"Prech\u00E1dza\u0165",\r
+class_name:"Trieda",\r
+not_set:"-- Nezadan\u00E9 --",\r
+clipboard_msg:"Funkcie Kop\u00EDrova\u0165/vysrihn\u00FA\u0165/vlo\u017Ei\u0165 nie su podporovan\u00E9 prehliada\u010Dmi Mozilla a Firefox.\nChce\u0161 viac inform\u00E1ci\u00ED o tomto probl\u00E9me?",\r
+clipboard_no_support:"Moment\u00E1lne nie je podporovan\u00E9 tvoj\u00EDm prehliada\u010Dom. Miesto toho pou\u017Ei kl\u00E1vesov\u00FA skratku.",\r
+popup_blocked:"Ospravedl\u0148ujeme sa, ale blokova\u010D vyskakovac\u00EDch okien neumo\u017Enil otvori\u0165 okno, ktor\u00E9 zprostredkov\u00E1va funk\u010Dnos\u0165 aplik\u00E1ce. Mus\u00ED\u0161 vypnu\u0165 blokovanie vyskakovac\u00EDch okien na tomto webe, aby bolo mo\u017En\u00E9 vyu\u017Ei\u0165 jeho pln\u00FA funk\u010Dnos\u0165.",\r
+invalid_data:"Chyba: Zadan\u00E9 neplatn\u00E9 hodnoty (zv\u00FDraznen\u00E9 \u010Dervenou)",\r
+more_colors:"Viac farieb"\r
+},\r
+contextmenu:{\r
+align:"Umietnenie",\r
+left:"V\u013Eavo",\r
+center:"Na stred",\r
+right:"Vpravo",\r
+full:"Do bloku"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Vlo\u017Ei\u0165 d\u00E1tum",\r
+inserttime_desc:"Vlo\u017Ei\u0165 \u010Das",\r
+months_long:"Janu\u00E1r,Febru\u00E1r,Marec,Apr\u00EDl,M\u00E1j,J\u00FAn,J\u00FAl,August,September,Okt\u00F3ber,November,December",\r
+months_short:"Jan,Feb,Mar,Apr,M\u00E1j,J\u00FAn,J\u00FAl,Aug,Sep,Okt,Nov,Dec",\r
+day_long:"Nede\u013Ea,Pondelok,Utorok,Streda,\u0160tvrtok,Piatok,Sobota,Nede\u013Ea",\r
+day_short:"Ned,Pon,Ut,Str,\u0160tvr,Pia,Sob,Ned"\r
+},\r
+print:{\r
+print_desc:"Vytla\u010Di\u0165"\r
+},\r
+preview:{\r
+preview_desc:"N\u00E1h\u013Ead"\r
+},\r
+directionality:{\r
+ltr_desc:"Smer z \u013Eava do prava",\r
+rtl_desc:"Smer z prava do \u013Eava"\r
+},\r
+layer:{\r
+insertlayer_desc:"Vlo\u017Ei\u0165 nov\u00FA vrstvu",\r
+forward_desc:"Posun\u00FA\u0165 dopredu",\r
+backward_desc:"Posun\u00FA\u0165 dozadu",\r
+absolute_desc:"Prepn\u00FA\u0165 na absol\u00FAtne poziciovanie",\r
+content:"Nov\u00E1 vrstva..."\r
+},\r
+save:{\r
+save_desc:"Ulo\u017Ei\u0165",\r
+cancel_desc:"Zru\u0161i\u0165 v\u0161etky zmeny"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Vlo\u017Ei\u0165 znak non-breaking space"\r
+},\r
+iespell:{\r
+iespell_desc:"Spusti\u0165 kontrolu pravopisu",\r
+download:"ieSpell nebol n\u00E1jden\u00FD. Chce\u0161 ho nain\u0161talova\u0165?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horizont\u00E1lny odde\u013Eova\u010D"\r
+},\r
+emotions:{\r
+emotions_desc:"Emotikony"\r
+},\r
+searchreplace:{\r
+search_desc:"N\u00E1jdi",\r
+replace_desc:"N\u00E1jdi/Nahra\u010F"\r
+},\r
+advimage:{\r
+image_desc:"Vlo\u017Ei\u0165/editova\u0165 obr\u00E1zok"\r
+},\r
+advlink:{\r
+link_desc:"Vlo\u017Ei\u0165/editova\u0165 odkaz"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Cit\u00E1cia",\r
+abbr_desc:"Skratka",\r
+acronym_desc:"Acronym",\r
+del_desc:"Zru\u0161enie",\r
+ins_desc:"Vlo\u017Eenie",\r
+attribs_desc:"Vlo\u017Ei\u0165/editova\u0165 atrib\u00FAty"\r
+},\r
+style:{\r
+desc:"Editova\u0165 CSS \u0160t\u00FDl"\r
+},\r
+paste:{\r
+paste_text_desc:"Vlo\u017Ei\u0165 ako neformatovan\u00FD text",\r
+paste_word_desc:"Vlo\u017Ei\u0165 text z aplik\u00E1ce Word",\r
+selectall_desc:"Ozna\u010Di\u0165 v\u0161etko"\r
+},\r
+paste_dlg:{\r
+text_title:"Pou\u017Ei CTRL+V na kl\u00E1vesnici pre vlo\u017Eenie textu do okna.",\r
+text_linebreaks:"Zachova\u0165 zalamovanie riadkov",\r
+word_title:"Pou\u017Ei CTRL+V na kl\u00E1vesnici pre vlo\u017Eenie textu do okna."\r
+},\r
+table:{\r
+desc:"Vlo\u017Ei\u0165 nov\u00FA tabu\u013Eku",\r
+row_before_desc:"Vlo\u017Ei\u0165 riadok pred",\r
+row_after_desc:"Vlo\u017Ei\u0165 riadok za",\r
+delete_row_desc:"Odstr\u00E1ni\u0165 riadok",\r
+col_before_desc:"Vlo\u017Ei\u0165 st\u013Apec pred",\r
+col_after_desc:"Vlo\u017Ei\u0165 st\u013Apec za",\r
+delete_col_desc:"Odstr\u00E1ni\u0165 st\u013Apec",\r
+split_cells_desc:"Rozdeli\u0165 zl\u00FAcen\u00E9 bunky",\r
+merge_cells_desc:"Zl\u00FA\u010Di\u0165 bunky",\r
+row_desc:"Vlastnosti riadky tabu\u013Eky",\r
+cell_desc:"Vlastnosti bunky tabu\u013Eky",\r
+props_desc:"Vlastnosti tabu\u013Eky",\r
+paste_row_before_desc:"Vlo\u017Ei\u0165 riadok pred",\r
+paste_row_after_desc:"Vlo\u017Ei\u0165 riadok za",\r
+cut_row_desc:"Vystrihn\u00FA\u0165 riadok",\r
+copy_row_desc:"Kop\u00EDrova\u0165 riadok",\r
+del:"Zmaza\u0165 tabu\u013Eku",\r
+row:"Riadok",\r
+col:"St\u013Apec",\r
+cell:"Bunka"\r
+},\r
+autosave:{\r
+unload_msg:"Vykonan\u00E9 zmeny bud\u00FA straten\u00E9, ak opust\u00ED\u0161 t\u00FAto str\u00E1nku."\r
+},\r
+fullscreen:{\r
+desc:"Prepn\u00FA\u0165 zobrazenie na celej obrazovke"\r
+},\r
+media:{\r
+desc:"Vlo\u017Ei\u0165 / editova\u0165 vnoren\u00E9 m\u00E9di\u00E1",\r
+edit:"Editova\u0165 vnoren\u00E9 m\u00E9di\u00E1"\r
+},\r
+fullpage:{\r
+desc:"Vlastnosti dokumentu"\r
+},\r
+template:{\r
+desc:"Vlo\u017Ei\u0165 obsah z preddefinovanej \u0161abl\u00F3ny"\r
+},\r
+visualchars:{\r
+desc:"Vizu\u00E1lne ovl\u00E1dacie znaky zap/vyp."\r
+},\r
+spellchecker:{\r
+desc:"Prepn\u00FA\u0165 na kontrolu pravopisu",\r
+menu:"Nastavenia kontroly pravopisu",\r
+ignore_word:"Vynecha\u0165 slovo",\r
+ignore_words:"Vynecha\u0165 v\u0161etky",\r
+langs:"Jazyky",\r
+wait:"\u010Cakaj pros\u00EDm...",\r
+sug:"Ponuky",\r
+no_sug:"\u017Diadne ponuky",\r
+no_mpell:"Bez pravopisn\u00FDch ch\u00FDb."\r
+},\r
+pagebreak:{\r
+desc:"Vlo\u017Ei\u0165 zalomenie str\u00E1nky."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({sl:{\r
+common:{\r
+edit_confirm:"\u017Delite uporabiti na\u010Din \'videz ne vara\' (WYSIWYG) za to vnosno polje?",\r
+apply:"Uporabi",\r
+insert:"Vstavi",\r
+update:"Posodobi",\r
+cancel:"Prekli\u010Di",\r
+close:"Zapri",\r
+browse:"Prebrskaj",\r
+class_name:"Razred",\r
+not_set:"-- ni nastavljeno --",\r
+clipboard_msg:"Delo z odlo\u017Ei\u0161\u010Dem ni mogo\u010De v tem brskalniku. Lahko uporabljate kombinacije tipk Ctrl+X, Ctrl+C, Ctrl+V.\n\u017Delite ve\u010D informacij o tem?",\r
+clipboard_no_support:"Trenutno ni podporto v va\u0161em brskalniku. Uporabite bli\u017Enjice tipkovnice.",\r
+popup_blocked:"\u017Dal va\u0161e orodje za prepre\u010Devanje odpiranja neza\u017Eelenih oken (popup-blocker) ne omogo\u010Da prikaza pomo\u017Enega okna izbranega orodja. Prepre\u010Devanje odpiranja oken morate onemogo\u010Diti.",\r
+invalid_data:"Napaka: vne\u0161ene so bile nepravilne vrednosti, ozna\u010Dene so z rde\u010Do.",\r
+more_colors:"Ve\u010D barv"\r
+},\r
+contextmenu:{\r
+align:"Poravnava",\r
+left:"Levo",\r
+center:"Sredina",\r
+right:"Desno",\r
+full:"Polno"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d.%m.%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Vstavi datum",\r
+inserttime_desc:"Vstavi \u010Das",\r
+months_long:"januar,februar,marec,april,maj,junij,julij,avgust,september,oktober,november,december",\r
+months_short:"jan,feb,mar,apr,maj,jun,jul,avg,sep,okt,nov,dec",\r
+day_long:"nedelja,ponedeljek,torek,sreda,\u010Detrtek,petek,sobota,nedelja",\r
+day_short:"ned,pon,tor,sre,\u010Det,pet,sob,ned"\r
+},\r
+print:{\r
+print_desc:"Natisni"\r
+},\r
+preview:{\r
+preview_desc:"Predogled"\r
+},\r
+directionality:{\r
+ltr_desc:"Smer od leve proti desni",\r
+rtl_desc:"Smer od desne proti levi"\r
+},\r
+layer:{\r
+insertlayer_desc:"Vstavi nov sloj",\r
+forward_desc:"Premakni v ospredje",\r
+backward_desc:"Premakni v ozadje",\r
+absolute_desc:"Preklop absolutnega polo\u017Eaja",\r
+content:"Nov sloj..."\r
+},\r
+save:{\r
+save_desc:"Shrani",\r
+cancel_desc:"Prekli\u010Di vse spremembe"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Vstavi nedeljivi presledek"\r
+},\r
+iespell:{\r
+iespell_desc:"Za\u017Eeni preverjanje \u010Drkovanja",\r
+download:"ieSpell ni zaznan. \u017Delite, da ga namestim?"\r
+},\r
+advhr:{\r
+advhr_desc:"Vodoravna \u010Drta"\r
+},\r
+emotions:{\r
+emotions_desc:"Sme\u0161ki"\r
+},\r
+searchreplace:{\r
+search_desc:"Najdi",\r
+replace_desc:"Najdi/zamenjaj"\r
+},\r
+advimage:{\r
+image_desc:"Vstavi/uredi sliko"\r
+},\r
+advlink:{\r
+link_desc:"Vstavi/uredi povezavo"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citat",\r
+abbr_desc:"Okraj\u0161ava",\r
+acronym_desc:"Kratica",\r
+del_desc:"Izbrisano",\r
+ins_desc:"Vstavljeno",\r
+attribs_desc:"Vstavi/uredi atribute"\r
+},\r
+style:{\r
+desc:"Uredi sloge CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Prilepi kot golo besedilo",\r
+paste_word_desc:"Prilepi iz Word-a",\r
+selectall_desc:"Izberi vse"\r
+},\r
+paste_dlg:{\r
+text_title:"Uporabite kombinacijo tipk CTRL+V, da prilepite vsebino v okno.",\r
+text_linebreaks:"Obdr\u017Ei prelome vrstic",\r
+word_title:"Uporabite kombinacijo tipk CTRL+V, da prilepite vsebino v okno."\r
+},\r
+table:{\r
+desc:"Vstavi/posodobi tabelo",\r
+row_before_desc:"Vstavi vrstico nad",\r
+row_after_desc:"Vstavi vrstico pod",\r
+delete_row_desc:"Odstrani vrstico",\r
+col_before_desc:"Vstavi stolpec pred",\r
+col_after_desc:"Vstavi stolpec po",\r
+delete_col_desc:"Odstrani stolpec",\r
+split_cells_desc:"Razcepi celico",\r
+merge_cells_desc:"Spoji celice",\r
+row_desc:"Lastnosti vrstice",\r
+cell_desc:"Lastnosti celice",\r
+props_desc:"Lastnosti tabele",\r
+paste_row_before_desc:"Prilepi vrstico pred",\r
+paste_row_after_desc:"Prilepi vrstico po",\r
+cut_row_desc:"Izre\u017Ei vrstico",\r
+copy_row_desc:"Kopiraj vrstico",\r
+del:"Odstrani tabelo",\r
+row:"Vrstica",\r
+col:"Stolpec",\r
+cell:"Celica",\r
+cellprops_delta_width:"100"\r
+},\r
+autosave:{\r
+unload_msg:"Ce se premaknete na drugo stran, bodo narejene spremembe izgubljene!"\r
+},\r
+fullscreen:{\r
+desc:"Preklopi celozaslonski na\u010Din"\r
+},\r
+media:{\r
+desc:"Vstavi / uredi multimedijsko vsebino",\r
+edit:"Uredi multimedijsko vsebino"\r
+},\r
+fullpage:{\r
+desc:"Lastnosti dokumenta"\r
+},\r
+template:{\r
+desc:"Vstavi pripravljeno vsebino predloge"\r
+},\r
+visualchars:{\r
+desc:"Preklopi prikaz nadzornih znakov."\r
+},\r
+spellchecker:{\r
+desc:"Preklopi \u010Drkovalnik",\r
+menu:"Nastavitve \u010Drkovalnika",\r
+ignore_word:"Prezri besedo",\r
+ignore_words:"Prezri vse",\r
+langs:"Jeziki",\r
+wait:"Prosim po\u010Dakaj...",\r
+sug:"Predlogi",\r
+no_sug:"Ni predlogov",\r
+no_mpell:"Napa\u010Dnega \u010Drkovanja nisem na\u0161el."\r
+},\r
+pagebreak:{\r
+desc:"Vstavi lom strani."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({sr:{\r
+common:{\r
+edit_confirm:"\u017Delite li koristiti WYSIWYG na\u010Din rada za ovo tekstualno polje?",\r
+apply:"Primjeni",\r
+insert:"Umetni",\r
+update:"Obnovi",\r
+cancel:"Odustani",\r
+close:"Zatvori",\r
+browse:"Pregled",\r
+class_name:"Klasa",\r
+not_set:"-- Nije postavljeno --",\r
+clipboard_msg:"Kopiraj/Izre\u017Ei/Zalepi nije dostupno Mozilla i Firefox preglednicima.\nVi\u0161e informacija?",\r
+clipboard_no_support:"Trenuta\u010Dno va\u0161 preglednik ne podr\u017Eava ovu opciju, poku\u0161ajte koristiti tipkovni\u010Dku kraticu.",\r
+popup_blocked:"Oprostite, izgleda da je va\u0161 popup-blocker onemogu\u0107io prozor u sklopu ovog programa. Morate onemogu\u0107iti blokiranje popup prozora da bi u potpunosti iskoristili ovaj alat.",\r
+invalid_data:"Gre\u0161ka: Une\u0161ene su nevaljane vrednosti, ozna\u010Dene su crvenom bojom.",\r
+more_colors:"Vi\u0161e boja"\r
+},\r
+contextmenu:{\r
+align:"Poravnavanje",\r
+left:"Levo",\r
+center:"Sredina",\r
+right:"Desno",\r
+full:"Puno"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d.%m.%Y.",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Umetni datum",\r
+inserttime_desc:"Umetni vreme",\r
+months_long:"januar,februar,mart,april,maj,juni,juli,avgust,septembar,oktobar,novembar,decembar",\r
+months_short:"jan,feb,mar,apr,maj,jun,jul,avg,sep,okt,nov,dec",\r
+day_long:"nedelja,ponedjeljak,utorak,sreda,\u010Detvrtak,petak,subota,nedelja",\r
+day_short:"ned,pon,uto,sre,\u010Det,pet,sub,ned"\r
+},\r
+print:{\r
+print_desc:"Ispis"\r
+},\r
+preview:{\r
+preview_desc:"Prikaz"\r
+},\r
+directionality:{\r
+ltr_desc:"S leva na desno",\r
+rtl_desc:"S desna na levo"\r
+},\r
+layer:{\r
+insertlayer_desc:"Umetni novi sloj",\r
+forward_desc:"Pomakni napred",\r
+backward_desc:"Pomakni natrag",\r
+absolute_desc:"Uklju\u010Di/isklju\u010Di apsolutno pozicioniranje",\r
+content:"Novi sloj..."\r
+},\r
+save:{\r
+save_desc:"Spremi",\r
+cancel_desc:"Odustani od svih promjena"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Umetni razmak"\r
+},\r
+iespell:{\r
+iespell_desc:"Pokreni provjeru pravopisa",\r
+download:"Provjera pravopisa nije postavljena. Postaviti sada?"\r
+},\r
+advhr:{\r
+advhr_desc:"Vodoravna crta"\r
+},\r
+emotions:{\r
+emotions_desc:"Emocije"\r
+},\r
+searchreplace:{\r
+search_desc:"Prona\u0111i",\r
+replace_desc:"Prona\u0111i/Zameni"\r
+},\r
+advimage:{\r
+image_desc:"Umetni/uredi sliku"\r
+},\r
+advlink:{\r
+link_desc:"Insert/edit link"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citat",\r
+abbr_desc:"Kratica",\r
+acronym_desc:"Akronim",\r
+del_desc:"Brisanje",\r
+ins_desc:"Unos",\r
+attribs_desc:"Umetni/uredi atribute"\r
+},\r
+style:{\r
+desc:"Uredi CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Zalepi kao obi\u010Dni tekst",\r
+paste_word_desc:"Zalepi iz Worda",\r
+selectall_desc:"Odaberi sve"\r
+},\r
+paste_dlg:{\r
+text_title:"Koristite CTRL+V na tipkovnici da zalepite tekst u prozor.",\r
+text_linebreaks:"Zadr\u017Ei prelome",\r
+word_title:"Koristite CTRL+V na tipkovnici da zalepite tekst u prozor."\r
+},\r
+table:{\r
+desc:"Nova tablica",\r
+row_before_desc:"Umetni redak iznad",\r
+row_after_desc:"Umetni redak ispod",\r
+delete_row_desc:"Izbri\u0161i redak",\r
+col_before_desc:"Umetni stupac levo",\r
+col_after_desc:"Umetni stupac desno",\r
+delete_col_desc:"Ukloni stupac",\r
+split_cells_desc:"Razdvoji spojene \u0107elije",\r
+merge_cells_desc:"Spoji \u0107elije",\r
+row_desc:"Svojstva retka",\r
+cell_desc:"Svojstva \u0107elije",\r
+props_desc:"Svojstva tablice",\r
+paste_row_before_desc:"Zalepi redak iznad",\r
+paste_row_after_desc:"Zalepi redak ispod",\r
+cut_row_desc:"Izre\u017Ei redak",\r
+copy_row_desc:"Kopiraj redak",\r
+del:"Izbri\u0161i tablicu",\r
+row:"Redak",\r
+col:"Stupac",\r
+cell:"\u0106elija"\r
+},\r
+autosave:{\r
+unload_msg:"Promjene u dokumentu \u0107e biti izgubljene ako iza\u0111ete s ove stranice."\r
+},\r
+fullscreen:{\r
+desc:"Uklju\u010Di/isklju\u010Di prikaz preko celog ekrana"\r
+},\r
+media:{\r
+desc:"Insert / edit embedded media",\r
+edit:"Edit embedded media"\r
+},\r
+fullpage:{\r
+desc:"Svojstva dokumenta"\r
+},\r
+template:{\r
+desc:"Umetni sadr\u017Eaj iz predlo\u017Eak"\r
+},\r
+visualchars:{\r
+desc:"Vizuelni kontrolni znakovi uklju\u010Deni/isklju\u010Deni."\r
+},\r
+spellchecker:{\r
+desc:"Uklju\u010Di/isklju\u010Di provjeru pravopisa",\r
+menu:"Postavke provere pravopisa",\r
+ignore_word:"Zanemari re\u010D",\r
+ignore_words:"Zanemari sve",\r
+langs:"Jezici",\r
+wait:"Pri\u010Dekajte...",\r
+sug:"Predlozi",\r
+no_sug:"Nema predloga",\r
+no_mpell:"Nije prona\u0111ena nijedna pravopisna gre\u0161ka."\r
+},\r
+pagebreak:{\r
+desc:"Umetni prelom."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({sv:{\r
+common:{\r
+edit_confirm:"Vill du anv\u00E4nda WYSIWYG l\u00E4get f\u00F6r denna textarea.",\r
+apply:"Applicera",\r
+insert:"Infoga",\r
+update:"Uppdatera",\r
+cancel:"Avbryt",\r
+close:"St\u00E4ng",\r
+browse:"Bl\u00E4ddra",\r
+class_name:"Klass",\r
+not_set:"-- Inte satt --",\r
+clipboard_msg:"Kopiera/klipp ut/klistra in \u00E4r inte tillg\u00E4ngligt i din webbl\u00E4sare.\nVill du veta mer?",\r
+clipboard_no_support:"Funktionen \u00E4r inte tillg\u00E4nglig i din webbl\u00E4sare, anv\u00E4nd tangentbordsgenv\u00E4garna i st\u00E4llet.",\r
+popup_blocked:"Popup blockerare detekterad. St\u00E4ng av den s\u00E5 att dialogerna kan \u00F6ppnas.",\r
+invalid_data:"Fel: Inkorrekta v\u00E4rden har matats in, dessa \u00E4r markerade i r\u00F6tt.",\r
+more_colors:"Fler f\u00E4rger"\r
+},\r
+contextmenu:{\r
+align:"Justering",\r
+left:"V\u00E4nster",\r
+center:"Centrerad",\r
+right:"H\u00F6ger",\r
+full:"Utfyllnad"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d ",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Infoga datum",\r
+inserttime_desc:"Infoga tid",\r
+months_long:"Januari,Februari,Mars,April,Maj,Juni,Juli,Augusti,September,Oktober,November,December",\r
+months_short:"Jan,Feb,Mar,Apr,Maj,Jun,Jul,Aug,Sep,Okt,Nov,Dec",\r
+day_long:"S\u00F6ndag,M\u00E5ndag,Tisdag,Onsdag,Torsdag,Fredag,L\u00F6rdag,S\u00F6ndag",\r
+day_short:"S\u00F6n,M\u00E5n,Tis,Ons,Tors,Fre,L\u00F6r,S\u00F6n"\r
+},\r
+print:{\r
+print_desc:"Skriv ut"\r
+},\r
+preview:{\r
+preview_desc:"F\u00F6rhandsgranska"\r
+},\r
+directionality:{\r
+ltr_desc:"Skriftl\u00E4ge - v\u00E4nster till h\u00F6ger",\r
+rtl_desc:"Skriftl\u00E4ge - h\u00F6ger till v\u00E4nster"\r
+},\r
+layer:{\r
+insertlayer_desc:"Infoga nytt lager",\r
+forward_desc:"Flytta fram\u00E5t",\r
+backward_desc:"Flytta bak\u00E5t",\r
+absolute_desc:"Sl\u00E5 av/p\u00E5 absolut positionering",\r
+content:"Nytt lager..."\r
+},\r
+save:{\r
+save_desc:"Spara",\r
+cancel_desc:"Hoppa \u00F6ver alla f\u00F6r\u00E4ndringar"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Infoga icke radbrytande mellanslag"\r
+},\r
+iespell:{\r
+iespell_desc:"R\u00E4ttstava",\r
+download:"ieSpell kunde inte hittas, vill du installera denna nu?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horisontell skiljelinje"\r
+},\r
+emotions:{\r
+emotions_desc:"Smileys"\r
+},\r
+searchreplace:{\r
+search_desc:"S\u00F6k",\r
+replace_desc:"S\u00F6k/ers\u00E4tt"\r
+},\r
+advimage:{\r
+image_desc:"Infoga/redigera bild"\r
+},\r
+advlink:{\r
+link_desc:"Infoga/redigera l\u00E4nk"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"citat",\r
+abbr_desc:"F\u00F6rkortning",\r
+acronym_desc:"Akronym",\r
+del_desc:"Markera som struket",\r
+ins_desc:"Markera som tillagt",\r
+attribs_desc:"Redigera attribut"\r
+},\r
+style:{\r
+desc:"Redigera inline CSS"\r
+},\r
+paste:{\r
+paste_text_desc:"Klistra in som text",\r
+paste_word_desc:"Klistra in fr\u00E5n Word",\r
+selectall_desc:"Markera allt"\r
+},\r
+paste_dlg:{\r
+text_title:"Anv\u00E4nd ctrl-v p\u00E5 ditt tangentbord f\u00F6r att klistra in i detta f\u00F6nster.",\r
+text_linebreaks:"Spara radbrytningar",\r
+word_title:"Anv\u00E4nd ctrl-v p\u00E5 ditt tangentbord f\u00F6r att klistra in i detta f\u00F6nster."\r
+},\r
+table:{\r
+desc:"Infoga/redigera ny tabell",\r
+row_before_desc:"Infoga ny rad f\u00F6re",\r
+row_after_desc:"Infoga ny rad efter",\r
+delete_row_desc:"Radera rad",\r
+col_before_desc:"Infoga kolumn f\u00F6re",\r
+col_after_desc:"Infoga kolumn efter",\r
+delete_col_desc:"Radera kolumn",\r
+split_cells_desc:"Separera sammansatta celler",\r
+merge_cells_desc:"Sammanfoga celler",\r
+row_desc:"Tabellradsinst\u00E4llningar",\r
+cell_desc:"Tabellcellsinst\u00E4llningar",\r
+props_desc:"Tabellinst\u00E4llningar",\r
+paste_row_before_desc:"Klistra in rad ovanf\u00F6r",\r
+paste_row_after_desc:"Klistra in rad efter",\r
+cut_row_desc:"Klipp ut rad",\r
+copy_row_desc:"Klistra in rad",\r
+del:"Radera tabell",\r
+row:"Rad",\r
+col:"Kolumn",\r
+cell:"Cell"\r
+},\r
+autosave:{\r
+unload_msg:"F\u00F6r\u00E4ndringarna du gjorde kommer att g\u00E5 f\u00F6rlorade om du v\u00E4ljer att l\u00E4mna denna sida."\r
+},\r
+fullscreen:{\r
+desc:"Sl\u00E5 av/p\u00E5 fullsk\u00E4rmsl\u00E4ge"\r
+},\r
+media:{\r
+desc:"Infoga/redigera inb\u00E4ddad media",\r
+edit:"Redigera inb\u00E4ddad media"\r
+},\r
+fullpage:{\r
+desc:"Dokumentinst\u00E4llningar"\r
+},\r
+template:{\r
+desc:"Infoga en f\u00E4rdig mall"\r
+},\r
+visualchars:{\r
+desc:"Visa osynliga tecken"\r
+},\r
+spellchecker:{\r
+desc:"Sl\u00E5 av/p\u00E5 r\u00E4ttstavningskontroll",\r
+menu:"R\u00E4ttstavningsinst\u00E4llningar",\r
+ignore_word:"Ignorera ord",\r
+ignore_words:"Ignorera alla",\r
+langs:"Spr\u00E5k",\r
+wait:"Var god v\u00E4nta...",\r
+sug:"F\u00F6rslag",\r
+no_sug:"Inga f\u00F6rslag",\r
+no_mpell:"Kunde inte finna n\u00E5gra felstavningar."\r
+},\r
+pagebreak:{\r
+desc:"Infoga sidbrytning"\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({tr:{\r
+common:{\r
+edit_confirm:"Bu metin b\u00F6lgesi i\u00E7in WYSIWYG modunu kullanmak istiyor musunuz?",\r
+apply:"Uygula",\r
+insert:"Ekle",\r
+update:"G\u00FCncelle",\r
+cancel:"\u0130ptal",\r
+close:"Kapat",\r
+browse:"G\u00F6zat",\r
+class_name:"S\u0131n\u0131f",\r
+not_set:"-- se\u00E7iniz --",\r
+clipboard_msg:"Kopyala/Kes/Yap\u0131\u015Ft\u0131r Mozilla ve Firefox'ta kullan\u0131lamaz.\nBu konuda daha fazla bilgi edinmek ister misiniz?",\r
+clipboard_no_support:"\u015Eimdilik taray\u0131c\u0131n\u0131z taraf\u0131ndan desteklenmemektedir, bunun yerine k\u0131sayol tu\u015Flar\u0131n\u0131 kullan\u0131n\u0131z.",\r
+popup_blocked:"\u00DCzg\u00FCn\u00FCz, fakat popup-engelleyiciniz uygulama i\u00E7in gerekli bir pencerenin a\u00E7\u0131lmas\u0131na izin vermedi. Bu arac\u0131 tam olarak kullanabilmek i\u00E7in popup engelleyicinizi kapatman\u0131z gerekebilir.",\r
+invalid_data:"Hata: Ge\u00E7ersiz de\u011Ferler girildi, bunlar k\u0131rm\u0131z\u0131yla i\u015Faretlendi.",\r
+more_colors:"Daha fazla renk"\r
+},\r
+contextmenu:{\r
+align:"Hizalama",\r
+left:"Sola",\r
+center:"Ortala",\r
+right:"Sa\u011Fa",\r
+full:"\u0130ki yana"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d-%m-%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Tarih ekle",\r
+inserttime_desc:"Zaman ekle",\r
+months_long:"Ocak,\u015Eubat,Mart,Nisan,May\u0131s,Haziran,Temmuz,A\u011Fustos,Eyl\u00FCl,Ekim,Kas\u0131m,Aral\u0131k",\r
+months_short:"Oca,\u015Eub,Mar,Nis,May,Haz,Tem,A\u011Fu,Eyl,Eki,Kas,Ara",\r
+day_long:"Pazar,Pazartesi,Sal\u0131,\u00C7ar\u015Famba,Per\u015Fembe,Cuma,Cumartesi,Pazar",\r
+day_short:"Paz,Pzt,Sal,\u00C7r\u015F,Per,Cum,Cts,Paz"\r
+},\r
+print:{\r
+print_desc:"Yazd\u0131r"\r
+},\r
+preview:{\r
+preview_desc:"\u00D6nizleme"\r
+},\r
+directionality:{\r
+ltr_desc:"Sa\u011Fdan sola y\u00F6nelimli",\r
+rtl_desc:"Soldan sa\u011Fa y\u00F6nelimli"\r
+},\r
+layer:{\r
+insertlayer_desc:"Yeni katman ekle",\r
+forward_desc:"\u00D6ne al",\r
+backward_desc:"Arkaya al",\r
+absolute_desc:"Mutlak konumland\u0131rmay\u0131 a\u00E7/kapa",\r
+content:"Yeni katman..."\r
+},\r
+save:{\r
+save_desc:"Kaydet",\r
+cancel_desc:"T\u00FCm de\u011Fi\u015Fiklikleri iptal et"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"K\u0131r\u0131l\u0131ms\u0131z bo\u015Fluk karakteri ekle"\r
+},\r
+iespell:{\r
+iespell_desc:"\u0130mla kontrol\u00FCn\u00FC \u00E7al\u0131\u015Ft\u0131r",\r
+download:"ieSpell bulunamad\u0131. \u015Eimdi kurmak ister misiniz?"\r
+},\r
+advhr:{\r
+advhr_desc:"Yatay \u00E7izgi"\r
+},\r
+emotions:{\r
+emotions_desc:"\u0130fadeler"\r
+},\r
+searchreplace:{\r
+search_desc:"Bul",\r
+replace_desc:"Bul/De\u011Fi\u015Ftir"\r
+},\r
+advimage:{\r
+image_desc:"Resim ekle/d\u00FCzenle"\r
+},\r
+advlink:{\r
+link_desc:"Ba\u011Flant\u0131 ekle/d\u00FCzenle"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Kaynak",\r
+abbr_desc:"K\u0131saltma",\r
+acronym_desc:"K\u0131sa ad",\r
+del_desc:"Silme",\r
+ins_desc:"Ekleme",\r
+attribs_desc:"Nitelik ekle/d\u00FCzenle"\r
+},\r
+style:{\r
+desc:"CSS Stili D\u00FCzenle"\r
+},\r
+paste:{\r
+paste_text_desc:"Sade Metin olarak yap\u0131\u015Ft\u0131r",\r
+paste_word_desc:"Word'den yap\u0131\u015Ft\u0131r",\r
+selectall_desc:"T\u00FCm\u00FCn\u00FC Se\u00E7"\r
+},\r
+paste_dlg:{\r
+text_title:"Pencereye metin yap\u0131\u015Ft\u0131rmak i\u00E7in CTRL+V tu\u015Funu kullan\u0131n\u0131z.",\r
+text_linebreaks:"Sat\u0131r k\u0131r\u0131l\u0131mlar\u0131n\u0131 koru",\r
+word_title:"Pencereye metin yap\u0131\u015Ft\u0131rmak i\u00E7in CTRL+V tu\u015Funu kullan\u0131n\u0131z."\r
+},\r
+table:{\r
+desc:"Yeni bir tablo ekler",\r
+row_before_desc:"\u00DCst\u00FCne bir sat\u0131r ekle",\r
+row_after_desc:"Alt\u0131na bir sat\u0131r ekle",\r
+delete_row_desc:"Sat\u0131r\u0131 sil",\r
+col_before_desc:"Soluna bir kolon ekle",\r
+col_after_desc:"Sa\u011F\u0131na bir kolon ekle",\r
+delete_col_desc:"Kolonu sil",\r
+split_cells_desc:"Birle\u015Fitirilmi\u015F tablo h\u00FCcrelerini ay\u0131r",\r
+merge_cells_desc:"Tablo h\u00FCcrelerini birle\u015Ftir",\r
+row_desc:"Tablo sat\u0131r \u00F6zellikleri",\r
+cell_desc:"Tablo h\u00FCcre \u00F6zellikler",\r
+props_desc:"Tablo \u00F6zellikleri",\r
+paste_row_before_desc:"\u00DCst\u00FCne tablo sat\u0131r\u0131n\u0131 yap\u0131\u015Ft\u0131r",\r
+paste_row_after_desc:"Alt\u0131na tablo sat\u0131r\u0131n\u0131 yap\u0131\u015Ft\u0131r",\r
+cut_row_desc:"Tablo sat\u0131r\u0131n\u0131 kes",\r
+copy_row_desc:"Tablo sat\u0131r\u0131n\u0131 kopyala",\r
+del:"Tabloyu sil",\r
+row:"Sat\u0131r",\r
+col:"Kolon",\r
+cell:"H\u00FCcre"\r
+},\r
+autosave:{\r
+unload_msg:"Bu sayfadan \u00E7\u0131karsan\u0131z yapt\u0131\u011F\u0131n\u0131z de\u011Fi\u015Fiklikler kaybedilecek."\r
+},\r
+fullscreen:{\r
+desc:"Tam ekran modunu a\u00E7/kapa"\r
+},\r
+media:{\r
+desc:"T\u00FCmle\u015Fik medya ekle/d\u00FCzenle",\r
+edit:"T\u00FCmle\u015Fik medya d\u00FCzenle"\r
+},\r
+fullpage:{\r
+desc:"Belge \u00F6zellikleri"\r
+},\r
+template:{\r
+desc:"\u00D6ntan\u0131ml\u0131 \u015Fablon i\u00E7eri\u011Fi ekle"\r
+},\r
+visualchars:{\r
+desc:"G\u00F6rsel kontrol karakterleri a\u00E7\u0131k/kapal\u0131."\r
+},\r
+spellchecker:{\r
+desc:"\u0130mla kontrol\u00FCn\u00FC a\u00E7/kapa",\r
+menu:"\u0130mla kontrol ayarlar\u0131",\r
+ignore_word:"S\u00F6zc\u00FC\u011F\u00FC \u00F6nemseme",\r
+ignore_words:"Hi\u00E7birini \u00F6nemseme",\r
+langs:"Diller",\r
+wait:"L\u00FCtfen bekleyiniz...",\r
+sug:"\u00D6neriler",\r
+no_sug:"\u00D6neri yok",\r
+no_mpell:"Bir imla hatas\u0131 bulunamad\u0131."\r
+},\r
+pagebreak:{\r
+desc:"Sayfa k\u0131r\u0131l\u0131m\u0131 ekle."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({uk:{\r
+common:{\r
+edit_confirm:"\u0412\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 WYSIWYG \u0440\u0435\u0436\u0438\u043C \u0434\u043B\u044F \u0446\u044C\u043E\u0433\u043E \u043F\u043E\u043B\u044F?",\r
+apply:"\u0417\u0430\u0441\u0442\u043E\u0441\u0443\u0432\u0430\u0442\u0438",\r
+insert:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438",\r
+update:"\u041E\u043D\u043E\u0432\u0438\u0442\u0438",\r
+cancel:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",\r
+close:"\u0417\u0430\u043A\u0440\u0438\u0442\u0438",\r
+browse:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u0434",\r
+class_name:"\u041A\u043B\u0430\u0441",\r
+not_set:"-- \u043D\u0435 \u0432\u0438\u0431\u0440\u0430\u043D\u043E --",\r
+clipboard_msg:"\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438/\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438/\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u0432 Mozilla \u0442\u0430 Firefox.\n\u0412\u0430\u043C \u0446\u0456\u043A\u0430\u0432\u0430 \u0456\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u044F \u043F\u0440\u043E \u0446\u0435?",\r
+clipboard_no_support:"Currently not supported by your browser, use keyboard shortcuts instead.",\r
+popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.",\r
+invalid_data:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430: \u0412\u0432\u0435\u0434\u0435\u043D\u043E \u043F\u043E\u043C\u0438\u043B\u043A\u043E\u0432\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F, \u0432\u0456\u0434\u043C\u0456\u0447\u0435\u043D\u0435 \u0447\u0435\u0440\u0432\u043E\u043D\u0438\u043C.",\r
+more_colors:"\u0411\u0456\u043B\u044C\u0448\u0435 \u043A\u043E\u043B\u044C\u043E\u0440\u0456\u0432"\r
+},\r
+contextmenu:{\r
+align:"\u0412\u0438\u0440\u0456\u0432\u043D\u044E\u0432\u0430\u043D\u043D\u044F",\r
+left:"\u041F\u043E \u043B\u0456\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+center:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+right:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+full:"\u041F\u043E \u0448\u0438\u0440\u0438\u043D\u0456"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d.%m.%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443",\r
+inserttime_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0447\u0430\u0441",\r
+months_long:"\u0421\u0456\u0447\u0435\u043D\u044C,\u041B\u044E\u0442\u0438\u0439,\u0411\u0435\u0440\u0435\u0437\u0435\u043D\u044C,\u041A\u0432\u0456\u0442\u0435\u043D\u044C,\u0422\u0440\u0430\u0432\u0435\u043D\u044C,\u0427\u0435\u0440\u0432\u0435\u043D\u044C,\u041B\u0438\u043F\u0435\u043D\u044C,\u0421\u0435\u0440\u043F\u0435\u043D\u044C,\u0412\u0435\u0440\u0435\u0441\u0435\u043D\u044C,\u0416\u043E\u0432\u0442\u0435\u043D\u044C,\u041B\u0438\u0441\u0442\u043E\u043F\u0430\u0434,\u0413\u0440\u0443\u0434\u0435\u043D\u044C",\r
+months_short:"\u0421\u0456\u0447,\u041B\u044E\u0442,\u0411\u0435\u0440,\u041A\u0432\u0456,\u0422\u0440\u0430,\u0427\u0435\u0440,\u041B\u0438\u043F,\u0421\u0435\u0440,\u0412\u0435\u0440,\u0416\u043E\u0432,\u041B\u0438\u0441,\u0413\u0440\u0443",\r
+day_long:"\u041D\u0435\u0434\u0456\u043B\u044F,\u041F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A,\u0412\u0456\u0432\u0442\u043E\u0440\u043E\u043A,\u0421\u0435\u0440\u0435\u0434\u0430,\u0427\u0435\u0442\u0432\u0435\u0440,\u041F'\u044F\u0442\u043D\u0438\u0446\u044F,\u0421\u0443\u0431\u043E\u0442\u0430,\u041D\u0435\u0434\u0456\u043B\u044F",\r
+day_short:"\u041D\u0434,\u041F\u043D,\u0412\u0442,\u0421\u0440,\u0427\u0442,\u041F\u0442,\u0421\u0431,\u041D\u0434"\r
+},\r
+print:{\r
+print_desc:"\u0414\u0440\u0443\u043A"\r
+},\r
+preview:{\r
+preview_desc:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u0434"\r
+},\r
+directionality:{\r
+ltr_desc:"\u041D\u0430\u043F\u0440\u044F\u043C \u0437\u043B\u0456\u0432\u0430 \u043F\u0440\u0430\u0432\u043E\u0440\u0443\u0447",\r
+rtl_desc:"\u041D\u0430\u043F\u0440\u044F\u043C \u0441\u043F\u0440\u0430\u0432\u0430 \u043B\u0456\u0432\u043E\u0440\u0443\u0447"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043D\u043E\u0432\u0438\u0439 \u0441\u043B\u043E\u0439",\r
+forward_desc:"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u0432\u0433\u043E\u0440\u0443",\r
+backward_desc:"\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u043D\u0430\u0437\u0430\u0434",\r
+absolute_desc:"Toggle absolute positioning",\r
+content:"\u041D\u043E\u0432\u0438\u0439 \u0441\u043B\u043E\u0439..."\r
+},\r
+save:{\r
+save_desc:"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438",\r
+cancel_desc:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u0432\u0441\u0456 \u0437\u043C\u0456\u043D\u0438"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043D\u0435\u0440\u043E\u0437\u0440\u0438\u0432\u043D\u0438\u0439 \u043F\u0440\u043E\u0431\u0456\u043B"\r
+},\r
+iespell:{\r
+iespell_desc:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0438 \u043E\u0440\u0444\u043E\u0433\u0440\u0430\u0444\u0456\u044E",\r
+download:"ieSpell \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E. \u0411\u0430\u0436\u0430\u0454\u0442\u0435 \u043F\u0440\u043E\u0456\u043D\u0441\u0442\u0430\u043B\u044E\u0432\u0430\u0442\u0438?"\r
+},\r
+advhr:{\r
+advhr_desc:"\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u0434\u0456\u043B\u044C\u043D\u0438\u043A"\r
+},\r
+emotions:{\r
+emotions_desc:"\u0421\u043C\u0430\u0439\u043B\u0438"\r
+},\r
+searchreplace:{\r
+search_desc:"\u0417\u043D\u0430\u0439\u0442\u0438",\r
+replace_desc:"\u0417\u043D\u0430\u0439\u0442\u0438/\u0417\u0430\u043C\u0456\u043D\u0438\u0442\u0438"\r
+},\r
+advimage:{\r
+image_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",\r
+delta_width:"200"\r
+},\r
+advlink:{\r
+link_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",\r
+delta_width:"200"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"Abbreviation",\r
+acronym_desc:"Acronym",\r
+del_desc:"Deletion",\r
+ins_desc:"Insertion",\r
+attribs_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438"\r
+},\r
+style:{\r
+desc:"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 CSS \u0441\u0442\u0438\u043B\u044C"\r
+},\r
+paste:{\r
+paste_text_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u044F\u043A \u0442\u0435\u043A\u0441\u0442",\r
+paste_word_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0437 Word",\r
+selectall_desc:"\u0412\u0438\u0434\u0456\u043B\u0438\u0442\u0438 \u0432\u0441\u0435"\r
+},\r
+paste_dlg:{\r
+text_title:"\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0439\u0442\u0435 CTRL+V \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0442\u0435\u043A\u0441\u0442\u0443 \u0443 \u0432\u0456\u043A\u043D\u043E.",\r
+text_linebreaks:"\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u0441\u0442\u0440\u043E\u043A",\r
+word_title:"\u0412\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0439\u0442\u0435 CTRL+V \u0434\u043B\u044F \u0432\u0441\u0442\u0430\u0432\u043A\u0438 \u0442\u0435\u043A\u0441\u0442\u0443 \u0443 \u0432\u0456\u043A\u043D\u043E."\r
+},\r
+table:{\r
+desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043D\u043E\u0432\u0443 \u0442\u0430\u0431\u043B\u0438\u0446\u044E",\r
+row_before_desc:"\u0414\u043E\u0434\u0430\u0442\u0438 \u0440\u044F\u0434\u043E\u043A \u0434\u043E",\r
+row_after_desc:"\u0414\u043E\u0434\u0430\u0442\u0438 \u0440\u044F\u0434\u043E\u043A \u043F\u0456\u0441\u043B\u044F",\r
+delete_row_desc:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0440\u044F\u0434\u043E\u043A",\r
+col_before_desc:"\u0414\u043E\u0434\u0430\u0442\u0438 \u0441\u0442\u043E\u0432\u0431\u0435\u0446\u044C \u0434\u043E",\r
+col_after_desc:"\u0414\u043E\u0434\u0430\u0442\u0438 \u0441\u0442\u043E\u0432\u0431\u0435\u0446\u044C \u043F\u0456\u0441\u043B\u044F",\r
+delete_col_desc:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0441\u0442\u043E\u0432\u0431\u0435\u0446\u044C",\r
+split_cells_desc:"\u0420\u043E\u0437\u0434\u0456\u043B\u0438\u0442\u0438 \u043A\u043E\u043C\u0456\u0440\u043A\u0438",\r
+merge_cells_desc:"\u041E\u0431'\u0454\u0434\u043D\u0430\u0442\u0438 \u043A\u043E\u043C\u0456\u0440\u043A\u0438",\r
+row_desc:"\u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 \u0440\u044F\u0434\u043A\u0443 \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+cell_desc:"\u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 \u043A\u043E\u043C\u0456\u0440\u043A\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+props_desc:"\u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+paste_row_before_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0440\u044F\u0434\u043E\u043A \u0434\u043E",\r
+paste_row_after_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0440\u044F\u0434\u043E\u043A \u043F\u0456\u0441\u043B\u044F",\r
+cut_row_desc:"\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438 \u0440\u044F\u0434\u043E\u043A \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+copy_row_desc:"\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 \u0440\u044F\u0434\u043E\u043A \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+del:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u044E",\r
+row:"\u0420\u044F\u0434\u043E\u043A",\r
+col:"\u0421\u0442\u043E\u0432\u0431\u0435\u0446\u044C",\r
+cell:"\u041A\u043E\u043C\u0456\u0440\u043A\u0430",\r
+cellprops_delta_width:"30"\r
+},\r
+autosave:{\r
+unload_msg:"\u0417\u043C\u0456\u043D\u0438, \u044F\u043A\u0456 \u0432\u0438 \u0437\u0440\u043E\u0431\u0438\u043B\u0438, \u0431\u0443\u0434\u0443\u0442\u044C \u0432\u0442\u0440\u0430\u0447\u0435\u043D\u0456, \u044F\u043A\u0449\u043E \u0432\u0438 \u043F\u0435\u0440\u0435\u0439\u0434\u0435\u0442\u0435 \u0437 \u0446\u0456\u0454\u0457 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0438."\r
+},\r
+fullscreen:{\r
+desc:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0438\u0441\u044F \u043D\u0430 \u0432\u0435\u0441\u044C \u0435\u043A\u0440\u0430\u043D"\r
+},\r
+media:{\r
+desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 / \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 embedded media",\r
+edit:"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 embedded media"\r
+},\r
+fullpage:{\r
+desc:"\u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430"\r
+},\r
+template:{\r
+desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u043D\u0438\u0439 \u043A\u043E\u043D\u0442\u0435\u043D\u0442"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0438 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u043A\u0443",\r
+menu:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u043A\u0438",\r
+ignore_word:"\u0406\u0433\u043D\u043E\u0440\u0443\u0432\u0430\u0442\u0438 \u0441\u043B\u043E\u0432\u043E",\r
+ignore_words:"\u0406\u0433\u043D\u043E\u0440\u0443\u0432\u0430\u0442\u0438 \u0432\u0441\u0435",\r
+langs:"\u041C\u043E\u0432\u0438",\r
+wait:"\u0411\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430 \u0437\u0430\u0447\u0435\u043A\u0430\u0439\u0442\u0435...",\r
+sug:"\u0412\u0430\u0440\u0456\u0430\u043D\u0442\u0438",\r
+no_sug:"\u041D\u0435\u043C\u0430\u0454 \u0432\u0430\u0440\u0456\u0430\u043D\u0442\u0456\u0432",\r
+no_mpell:"\u041F\u043E\u043C\u0438\u043B\u043E\u043A \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E."\r
+},\r
+pagebreak:{\r
+desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0440\u043E\u0437\u0434\u0456\u043B\u044C\u043D\u0438\u043A \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0438."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({vi:{\r
+common:{\r
+edit_confirm:"B\u1EA1n c\u00F3 mu\u1ED1n s\u1EED d\u1EE5ng ch\u1EBF \u0111\u1ED9 nh\u1EADp li\u1EC7u WYSIWYG cho \u00F4 d\u1EEF li\u1EC7u n\u00E0y kh\u00F4ng?",\r
+apply:"\u00C1p d\u1EE5ng",\r
+insert:"Ch\u00E8n",\r
+update:"C\u1EADp nh\u1EADt",\r
+cancel:"H\u1EE7y",\r
+close:"\u0110\u00F3ng",\r
+browse:"M\u1EDF",\r
+class_name:"L\u1EDBp",\r
+not_set:"-- mac dinh ch\u1ECDn --",\r
+clipboard_msg:"Sao ch\u00E9p/C\u1EAFt/D\u00E1n kh\u00F4ng ho\u1EA1t \u0111\u1ED9ng tr\u00EAn Mozilla v\u00E0 Firefox.\nB\u1EA1n mu\u1ED1n xem th\u00EAm th\u00F4ng tin v\u1EC1 v\u1EA5n \u0111\u1EC1 n\u00E0y?",\r
+clipboard_no_support:"Hi\u1EC7n kh\u00F4ng h\u1ED5 tr\u1EE3 cho tr\u00ECnh duy\u1EC7t c\u1EE7a b\u1EA1n, vui l\u00F2ng s\u1EED d\u1EE5ng b\u00E0n ph\u00EDm.",\r
+popup_blocked:"Xin l\u1ED7i, nh\u01B0ng tr\u00ECnh duy\u1EC7t c\u1EE7a b\u1EA1n kh\u00F4ng cho ph\u00E9p m\u1EDF c\u1EEDa s\u1ED5 m\u1EDBi (popup). B\u1EA1n c\u1EA7n ph\u1EA3i \u0111i\u1EC1u ch\u1EC9nh tr\u00ECnh duy\u1EC7t cho ph\u00E9p m\u1EDF c\u1EEDa s\u1ED5 m\u1EDBi \u0111\u1EC3 t\u1EADn h\u01B0\u1EDFng \u0111\u1EA7y \u0111\u1EE7 ch\u1EE9c n\u0103ng c\u1EE7a c\u00F4ng c\u1EE5 n\u00E0y.",\r
+invalid_data:"L\u1ED7i: D\u1EEF li\u1EC7u kh\u00F4ng h\u1EE3p l\u1EC7, ch\u00FAng \u0111\u00E3 \u0111\u01B0\u1EE3c \u0111\u00E1nh d\u1EA5u m\u00E0u \u0111\u1ECF.",\r
+more_colors:"Nhi\u1EC1u m\u00E0u h\u01A1n"\r
+},\r
+contextmenu:{\r
+align:"C\u0103n l\u1EC1",\r
+left:"Tr\u00E1i",\r
+center:"Gi\u1EEFa",\r
+right:"Ph\u1EA3i",\r
+full:"\u0110\u1EC1u"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%d/%m/%Y",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"Ch\u00E8n ng\u00E0y",\r
+inserttime_desc:"Ch\u00E8n gi\u1EDD",\r
+months_long:"Th\u00E1ng M\u1ED9t,Th\u00E1ng Hai,Th\u00E1ng Ba,Th\u00E1ng T\u01B0,Th\u00E1ng N\u0103m,Th\u00E1ng S\u00E1u,Th\u00E1ng B\u1EA3y,Th\u00E1ng T\u00E1m,Th\u00E1ng Ch\u00EDn,Th\u00E1ng M\u01B0\u1EDDi,Th\u00E1ng M\u01B0\u1EDDi M\u1ED9t,Th\u00E1ng M\u01B0\u1EDDi Hai",\r
+months_short:"M\u1ED9t,Hai,Ba,T\u01B0,N\u0103m,S\u00E1u,B\u1EA3y,T\u00E1m,Ch\u00EDn,M\u01B0\u1EDDi,M.M\u1ED9t,M.Hai",\r
+day_long:"Ch\u1EE7 Nh\u1EADt,Th\u1EE9 Hai,Th\u1EE9 Ba,Th\u1EE9 T\u01B0,Th\u1EE9 N\u0103m,Th\u1EE9 S\u00E1u,Th\u1EE9 B\u1EA3y,Ch\u1EE7 Nh\u1EADt",\r
+day_short:"CN,Hai,Ba,T\u01B0,N\u0103m,S\u00E1u,B\u1EA3y,CN"\r
+},\r
+print:{\r
+print_desc:"In"\r
+},\r
+preview:{\r
+preview_desc:"Xem tr\u01B0\u1EDBc"\r
+},\r
+directionality:{\r
+ltr_desc:"Direction left to right",\r
+rtl_desc:"Direction right to left"\r
+},\r
+layer:{\r
+insertlayer_desc:"Ch\u00E8n l\u1EDBp m\u1EDBi",\r
+forward_desc:"Chuy\u1EC3n \u0111\u1EBFn tr\u01B0\u1EDBc",\r
+backward_desc:"Chuy\u1EC3n ra sau",\r
+absolute_desc:"Toggle absolute positioning",\r
+content:"L\u1EDBp m\u1EDBi..."\r
+},\r
+save:{\r
+save_desc:"Save",\r
+cancel_desc:"Hu\u1EF7 t\u1EA5t c\u1EA3 thay \u0111\u1ED5i"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"Insert non-breaking space character"\r
+},\r
+iespell:{\r
+iespell_desc:"Ki\u1EC3m tra ch\u00EDnh t\u1EA3",\r
+download:"ieSpell not detected. Do you want to install it now?"\r
+},\r
+advhr:{\r
+advhr_desc:"Horizontale rule"\r
+},\r
+emotions:{\r
+emotions_desc:"Bi\u1EC3u t\u01B0\u1EE3ng c\u1EA3m x\u00FAc"\r
+},\r
+searchreplace:{\r
+search_desc:"T\u00ECm ki\u1EBFm",\r
+replace_desc:"T\u00ECm/Thay th\u1EBF"\r
+},\r
+advimage:{\r
+image_desc:"Ch\u00E8n/thay \u0111\u1ED5i h\u00ECnh \u1EA3nh"\r
+},\r
+advlink:{\r
+link_desc:"Ch\u00E8n/thay \u0111\u1ED5i li\u00EAn k\u1EBFt"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"Citation",\r
+abbr_desc:"Abbreviation",\r
+acronym_desc:"Acronym",\r
+del_desc:"Deletion",\r
+ins_desc:"Insertion",\r
+attribs_desc:"Insert/Edit Attributes"\r
+},\r
+style:{\r
+desc:"Edit CSS Style"\r
+},\r
+paste:{\r
+paste_text_desc:"D\u00E1n n\u1ED9i dung v\u00E0 b\u1ECF \u0111i \u0111\u1ECBnh d\u1EA1ng",\r
+paste_word_desc:"D\u00E1n n\u1ED9i dung sao ch\u00E9p t\u1EEB Word",\r
+selectall_desc:"Ch\u1ECDn t\u1EA5t c\u1EA3"\r
+},\r
+paste_dlg:{\r
+text_title:"S\u1EED d\u1EE5ng t\u1ED5 h\u1EE3p ph\u00EDm CTRL+V \u0111\u1EC3 d\u00E1n n\u1ED9i dung v\u00E0o khung b\u00EAn d\u01B0\u1EDBi.",\r
+text_linebreaks:"Gi\u1EEF nguy\u00EAn nh\u1EEFng ch\u1ED7 xu\u1ED1ng h\u00E0ng",\r
+word_title:"S\u1EED d\u1EE5ng t\u1ED5 h\u1EE3p ph\u00EDm CTRL+V \u0111\u1EC3 d\u00E1n n\u1ED9i dung v\u00E0o khung b\u00EAn d\u01B0\u1EDBi."\r
+},\r
+table:{\r
+desc:"Ch\u00E8n b\u1EA3ng m\u1EDBi",\r
+row_before_desc:"Ch\u00E8n d\u00F2ng v\u00E0o tr\u01B0\u1EDBc v\u1ECB tr\u00ED hi\u1EC7n t\u1EA1i",\r
+row_after_desc:"Ch\u00E8n d\u00F2ng v\u00E0o sau v\u1ECB tr\u00ED hi\u1EC7n t\u1EA1i",\r
+delete_row_desc:"X\u00F3a d\u00F2ng",\r
+col_before_desc:"Ch\u00E8n c\u1ED9t v\u00E0o sau v\u1ECB tr\u00ED hi\u1EC7n t\u1EA1i",\r
+col_after_desc:"Ch\u00E8n c\u1ED9t v\u00E0o sau v\u1ECB tr\u00ED hi\u1EC7n t\u1EA1i",\r
+delete_col_desc:"X\u00F3a c\u1ED9t",\r
+split_cells_desc:"T\u00E1ch \u00F4",\r
+merge_cells_desc:"G\u1ED9p \u00F4",\r
+row_desc:"Thay \u0111\u1ED5i thu\u1ED9c t\u00EDnh d\u00F2ng",\r
+cell_desc:"Thay \u0111\u1ED5i thu\u1ED9c t\u00EDnh \u00F4",\r
+props_desc:"Thay \u0111\u1ED5i thu\u1ED9c t\u00EDnh b\u1EA3ng",\r
+paste_row_before_desc:"D\u00E1n d\u00F2ng v\u00E0o tr\u01B0\u1EDBc v\u1ECB tr\u00ED hi\u1EC7n t\u1EA1i",\r
+paste_row_after_desc:"D\u00E1n d\u00F2ng v\u00E0o sau v\u1ECB tr\u00ED hi\u1EC7n t\u1EA1i",\r
+cut_row_desc:"C\u1EAFt d\u00F2ng",\r
+copy_row_desc:"Sao ch\u00E9p d\u00F2ng",\r
+del:"X\u00F3a b\u1EA3ng",\r
+row:"D\u00F2ng",\r
+col:"C\u1ED9t",\r
+cell:"\u00D4"\r
+},\r
+autosave:{\r
+unload_msg:"The changes you made will be lost if you navigate away from this page."\r
+},\r
+fullscreen:{\r
+desc:"B\u1EADt/t\u1EAFt ch\u1EBF \u0111\u1ED9 to\u00E0n m\u00E0n h\u00ECnh"\r
+},\r
+media:{\r
+desc:"Ch\u00E8n/thay \u0111\u1ED5i media(flash, nh\u1EA1c, video ...)",\r
+edit:"Thay \u0111\u1ED5i media"\r
+},\r
+fullpage:{\r
+desc:"Document properties"\r
+},\r
+template:{\r
+desc:"Insert predefined template content"\r
+},\r
+visualchars:{\r
+desc:"Visual control characters on/off."\r
+},\r
+spellchecker:{\r
+desc:"Ki\u1EC3m tra ch\u00EDnh t\u1EA3",\r
+menu:"T\u00F9y ch\u1ECDn ki\u1EC3m tra ch\u00EDnh t\u1EA3",\r
+ignore_word:"B\u1ECF qua m\u1ED9t t\u1EEB n\u00E0y",\r
+ignore_words:"B\u1ECF qua t\u1EA5t c\u1EA3 t\u1EEB n\u00E0y",\r
+langs:"Ng\u00F4n ng\u1EEF",\r
+wait:"Vui l\u00F2ng \u0111\u1EE3i trong gi\u00E2y l\u00E1t...",\r
+sug:"C\u00E1c t\u1EEB t\u01B0\u01A1ng t\u1EF1",\r
+no_sug:"Kh\u00F4ng c\u00F3 t\u1EEB t\u01B0\u01A1ng t\u1EF1",\r
+no_mpell:"Kh\u00F4ng c\u00F3 l\u1ED7i ch\u00EDnh t\u1EA3"\r
+},\r
+pagebreak:{\r
+desc:"Insert page break."\r
+}}});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n({zh:{\r
+common:{\r
+edit_confirm:"\u4F60\u8981\u5728\u6B64\u6587\u5B57\u7F16\u8F91\u533A\u542F\u7528\u6240\u89C1\u5373\u6240\u5F97(WYSIWYG)\u6A21\u5F0F\uFF1F ",\r
+apply:"\u5E94\u7528",\r
+insert:"\u63D2\u5165",\r
+update:"\u66F4\u65B0",\r
+cancel:"\u53D6\u6D88",\r
+close:"\u5173\u95ED",\r
+browse:"\u9884\u89C8",\r
+class_name:"\u7C7B\u522B",\r
+not_set:"--\u672A\u8BBE\u5B9A--",\r
+clipboard_msg:"\u7C98\u8D34\u590D\u5236\u3001\u526A\u4E0B\u548C\u8D34\u4E0A\u529F\u80FD\u5728Mozilla\u548CFirefox\u4E2D\u65E0\u6CD5\u4F7F\u7528\u3002 \n\u4F60\u9700\u8981\u4E86\u89E3\u66F4\u591A\u76F8\u5173\u4FE1\u606F\u5417\uFF1F ",\r
+clipboard_no_support:"\u76EE\u524D\u4F60\u7684\u6D4F\u89C8\u5668\u65E0\u6CD5\u652F\u6301\uFF0C\u8BF7\u7528\u952E\u76D8\u5FEB\u6377\u952E\u3002 ",\r
+popup_blocked:"\u62B1\u6B49\uFF0C\u5FEB\u6377\u529F\u80FD\u5728\u4F60\u7684\u7CFB\u7EDF\u4E0A\u88AB\u5C01\u9501\uFF0C\u4F7F\u7A0B\u5E8F\u65E0\u6CD5\u6B63\u5E38\u4F7F\u7528\uFF0C\u4F60\u9700\u8981\u6682\u65F6\u89E3\u9664\u5FEB\u6377\u5C01\u9501\uFF0C\u4F7F\u5DE5\u5177\u80FD\u6B63\u5E38\u4F7F\u7528\u3002 ",\r
+invalid_data:"\u9519\u8BEF\uFF1A\u8F93\u5165\u65E0\u6548\u7684\u503C\uFF0C\u4EE5\u7EA2\u8272\u5B57\u8868\u793A\u3002 ",\r
+more_colors:"\u66F4\u591A\u989C\u8272"\r
+},\r
+contextmenu:{\r
+align:"\u5BF9\u9F50\u65B9\u5F0F",\r
+left:"\u9760\u5DE6\u5BF9\u9F50",\r
+center:"\u7F6E\u4E2D",\r
+right:"\u9760\u53F3\u5BF9\u9F50",\r
+full:"\u5DE6\u53F3\u5BF9\u9F50"\r
+},\r
+insertdatetime:{\r
+date_fmt:"%Y-%m-%d",\r
+time_fmt:"%H:%M:%S",\r
+insertdate_desc:"\u63D2\u5165\u4ECA\u5929\u65E5\u671F",\r
+inserttime_desc:"\u63D2\u5165\u73B0\u5728\u65F6\u95F4",\r
+months_long:"\u4E00\u6708,\u4E8C\u6708,\u4E09\u6708,\u56DB\u6708,\u4E94\u6708,\u516D\u6708,\u4E03\u6708,\u516B\u6708,\u4E5D\u6708,\u5341\u6708,\u5341\u4E00\u6708,\u5341\u4E8C\u6708",\r
+months_short:"1\u6708,2\u6708,3\u6708,4\u6708,5\u6708,6\u6708,7\u6708,8\u6708,9\u6708,10\u6708,11\u6708,12\u6708",\r
+day_long:"\u661F\u671F\u65E5,\u661F\u671F\u4E00,\u661F\u671F\u4E8C,\u661F\u671F\u4E09,\u661F\u671F\u56DB,\u661F\u671F\u4E94,\u661F\u671F\u516D,\u661F\u671F\u65E5",\r
+day_short:"\u5468\u65E5,\u5468\u4E00,\u5468\u4E8C,\u5468\u4E09,\u5468\u56DB,\u5468\u4E94,\u5468\u516D,\u5468\u65E5"\r
+},\r
+print:{\r
+print_desc:"\u5217\u5370"\r
+},\r
+preview:{\r
+preview_desc:"\u9884\u89C8"\r
+},\r
+directionality:{\r
+ltr_desc:"\u6587\u5B57\u4ECE\u5DE6\u5230\u53F3",\r
+rtl_desc:"\u6587\u5B57\u4ECE\u53F3\u5230\u5DE6"\r
+},\r
+layer:{\r
+insertlayer_desc:"\u63D2\u5165\u56FE\u5C42",\r
+forward_desc:"\u524D\u79FB",\r
+backward_desc:"\u540E\u79FB",\r
+absolute_desc:"\u5207\u6362\u7EDD\u5BF9\u5BFB\u5740",\r
+content:"\u65B0\u589E\u56FE\u5C42..."\r
+},\r
+save:{\r
+save_desc:"\u4FDD\u5B58",\r
+cancel_desc:"\u53D6\u6D88\u6240\u6709\u53D8\u66F4"\r
+},\r
+nonbreaking:{\r
+nonbreaking_desc:"\u63D2\u5165\u975E\u622A\u65AD\u7684\u7A7A\u683C\u7B26"\r
+},\r
+iespell:{\r
+iespell_desc:"\u6267\u884C\u62FC\u5B57\u68C0\u67E5",\r
+download:"\u4FA6\u6D4B\u4E0D\u5230ieSpell\u5957\u4EF6\uFF0C\u662F\u5426\u7ACB\u5373\u5B89\u88C5\uFF1F "\r
+},\r
+advhr:{\r
+advhr_desc:"\u6C34\u5E73\u5206\u9694\u7EBF"\r
+},\r
+emotions:{\r
+emotions_desc:"\u8868\u60C5"\r
+},\r
+searchreplace:{\r
+search_desc:"\u641C\u5BFB",\r
+replace_desc:"\u641C\u5BFB/\u53D6\u4EE3"\r
+},\r
+advimage:{\r
+image_desc:"\u63D2\u5165/\u7F16\u8F91\u56FE\u6863"\r
+},\r
+advlink:{\r
+link_desc:"\u63D2\u5165/\u7F16\u8F91\u94FE\u63A5"\r
+},\r
+xhtmlxtras:{\r
+cite_desc:"\u5F15\u7528",\r
+abbr_desc:"\u7F29\u5199",\r
+acronym_desc:"\u9996\u5B57\u6BCD\u7F29\u5199",\r
+del_desc:"\u5220\u9664",\r
+ins_desc:"\u63D2\u5165",\r
+attribs_desc:"\u63D2\u5165/\u7F16\u8F91\u5C5E\u6027"\r
+},\r
+style:{\r
+desc:"\u7F16\u8F91CSS\u6837\u5F0F\u8868\u5355"\r
+},\r
+paste:{\r
+paste_text_desc:"\u8D34\u4E0A\u4E3A\u7EAF\u6587\u672C",\r
+paste_word_desc:"\u8D34\u4E0A\u4E3AWord\u683C\u5F0F",\r
+selectall_desc:"\u5168\u9009"\r
+},\r
+paste_dlg:{\r
+text_title:"\u7528Ctrl+V\u7EC4\u5408\u952E\u5C06\u6587\u5B57\u8D34\u5165\u7A97\u53E3\u4E2D\u3002 ",\r
+text_linebreaks:"\u4FDD\u7559\u6362\u884C\u7B26\u53F7",\r
+word_title:"\u7528Ctrl+V\u7EC4\u5408\u952E\u5C06\u6587\u5B57\u8D34\u5165\u7A97\u53E3\u4E2D\u3002 "\r
+},\r
+table:{\r
+desc:"\u63D2\u5165\u65B0\u8868\u683C",\r
+row_before_desc:"\u63D2\u5165\u5217\u4E8E\u524D",\r
+row_after_desc:"\u63D2\u5165\u5217\u4E8E\u540E",\r
+delete_row_desc:"\u5220\u9664\u672C\u5217",\r
+col_before_desc:"\u63D2\u5165\u680F\u4E8E\u524D",\r
+col_after_desc:"\u63D2\u5165\u680F\u4E8E\u540E",\r
+delete_col_desc:"\u5220\u9664\u672C\u680F",\r
+split_cells_desc:"\u5206\u5272\u5355\u5143\u683C",\r
+merge_cells_desc:"\u5408\u5E76\u5355\u5143\u683C",\r
+row_desc:"\u8868\u683C\u5217\u5C5E\u6027",\r
+cell_desc:"\u5355\u5143\u683C\u5C5E\u6027",\r
+props_desc:"\u8868\u683C\u5C5E\u6027",\r
+paste_row_before_desc:"\u8D34\u5165\u5217\u4E8E\u524D",\r
+paste_row_after_desc:"\u8D34\u5165\u5217\u4E8E\u540E",\r
+cut_row_desc:"\u526A\u4E0B\u6B64\u5217",\r
+copy_row_desc:"\u590D\u5236\u6B64\u5217",\r
+del:"\u5220\u9664\u8868\u683C",\r
+row:"\u5217",\r
+col:"\u680F",\r
+cell:"\u5355\u5143\u683C"\r
+},\r
+autosave:{\r
+unload_msg:"\u5982\u679C\u79BB\u5F00\u8BE5\u9875\uFF0C\u5C06\u5BFC\u81F4\u6240\u6709\u4FEE\u6539\u5168\u90E8\u9057\u5931\u3002 "\r
+},\r
+fullscreen:{\r
+desc:"\u5207\u6362\u5168\u5C4F\u5E55\u6A21\u5F0F"\r
+},\r
+media:{\r
+desc:"\u63D2\u5165/\u7F16\u8F91\u5F71\u7247",\r
+edit:"\u7F16\u8F91\u5F71\u7247"\r
+},\r
+fullpage:{\r
+desc:"\u6587\u4EF6\u5C5E\u6027"\r
+},\r
+template:{\r
+desc:"\u63D2\u5165\u9884\u5148\u5B9A\u4E49\u7684\u6A21\u677F\u5185\u5BB9"\r
+},\r
+visualchars:{\r
+desc:"\u53EF\u89C1\u63A7\u5236\u5B57\u7B26\u5F00/\u5173\u3002 "\r
+},\r
+spellchecker:{\r
+desc:"\u5207\u6362\u62FC\u5199\u68C0\u67E5",\r
+menu:"\u62FC\u5199\u68C0\u67E5\u8BBE\u5B9A",\r
+ignore_word:"\u5FFD\u7565\u5B57",\r
+ignore_words:"\u5168\u90E8\u5FFD\u7565",\r
+langs:"\u8BED\u8A00",\r
+wait:"\u8BF7\u7A0D\u540E...",\r
+sug:"\u5EFA\u8BAE",\r
+no_sug:"\u65E0\u5EFA\u8BAE",\r
+no_mpell:"\u65E0\u62FC\u5199\u9519\u8BEF\u3002 "\r
+},\r
+pagebreak:{\r
+desc:"\u63D2\u5165\u5206\u9875\u7B26\u3002 "\r
+}}});
\ No newline at end of file
-(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,is=tinymce.is;tinymce.create('tinymce.plugins.Compat2x',{getInfo:function(){return{longname:'Compat2x',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};}});(function(){tinymce.extend(tinyMCE,{addToLang:function(p,l){each(l,function(v,k){tinyMCE.i18n[(tinyMCE.settings.language||'en')+'.'+(p?p+'_':'')+k]=v;});},getInstanceById:function(n){return this.get(n);}});})();(function(){var EditorManager=tinymce.EditorManager;tinyMCE.instances={};tinyMCE.plugins={};tinymce.PluginManager.onAdd.add(function(pm,n,p){tinyMCE.plugins[n]=p;});tinyMCE.majorVersion=tinymce.majorVersion;tinyMCE.minorVersion=tinymce.minorVersion;tinyMCE.releaseDate=tinymce.releaseDate;tinyMCE.baseURL=tinymce.baseURL;tinyMCE.isIE=tinyMCE.isMSIE=tinymce.isIE||tinymce.isOpera;tinyMCE.isMSIE5=tinymce.isIE;tinyMCE.isMSIE5_0=tinymce.isIE;tinyMCE.isMSIE7=tinymce.isIE;tinyMCE.isGecko=tinymce.isGecko;tinyMCE.isSafari=tinymce.isWebKit;tinyMCE.isOpera=tinymce.isOpera;tinyMCE.isMac=false;tinyMCE.isNS7=false;tinyMCE.isNS71=false;tinyMCE.compat=true;TinyMCE_Engine=tinyMCE;tinymce.extend(tinyMCE,{getParam:function(n,dv){return this.activeEditor.getParam(n,dv);},addEvent:function(e,na,f,sc){tinymce.dom.Event.add(e,na,f,sc||this);},getControlHTML:function(n){return EditorManager.activeEditor.controlManager.createControl(n);},loadCSS:function(u){tinymce.DOM.loadCSS(u);},importCSS:function(doc,u){if(doc==document)this.loadCSS(u);else new tinymce.dom.DOMUtils(doc).loadCSS(u);},log:function(){console.debug.apply(console,arguments);},getLang:function(n,dv){var v=EditorManager.activeEditor.getLang(n.replace(/^lang_/g,''),dv);if(/^[0-9\-.]+$/g.test(v))return parseInt(v);return v;},isInstance:function(o){return o!=null&&typeof(o)=="object"&&o.execCommand;},triggerNodeChange:function(){EditorManager.activeEditor.nodeChanged();},regexpReplace:function(in_str,reg_exp,replace_str,opts){var re;if(in_str==null)return in_str;if(typeof(opts)=="undefined")opts='g';re=new RegExp(reg_exp,opts);return in_str.replace(re,replace_str);},trim:function(s){return tinymce.trim(s);},xmlEncode:function(s){return tinymce.DOM.encode(s);},explode:function(s,d){var o=[];tinymce.each(s.split(d),function(v){if(v!='')o.push(v);});return o;},switchClass:function(id,cls){var b;if(/^mceButton/.test(cls)){b=EditorManager.activeEditor.controlManager.get(id);if(!b)return;switch(cls){case"mceButtonNormal":b.setDisabled(false);b.setActive(false);return;case"mceButtonDisabled":b.setDisabled(true);return;case"mceButtonSelected":b.setActive(true);b.setDisabled(false);return;}}},addCSSClass:function(e,n,b){return tinymce.DOM.addClass(e,n,b);},hasCSSClass:function(e,n){return tinymce.DOM.hasClass(e,n);},removeCSSClass:function(e,n){return tinymce.DOM.removeClass(e,n);},getCSSClasses:function(){var cl=EditorManager.activeEditor.dom.getClasses(),o=[];each(cl,function(c){o.push(c['class']);});return o;},setWindowArg:function(n,v){EditorManager.activeEditor.windowManager.params[n]=v;},getWindowArg:function(n,dv){var wm=EditorManager.activeEditor.windowManager,v;v=wm.getParam(n);if(v==='')return'';return v||wm.getFeature(n)||dv;},getParentNode:function(n,f){return this._getDOM().getParent(n,f);},selectElements:function(n,na,f){var i,a=[],nl,x;for(x=0,na=na.split(',');x<na.length;x++)for(i=0,nl=n.getElementsByTagName(na[x]);i<nl.length;i++)(!f||f(nl[i]))&&a.push(nl[i]);return a;},getNodeTree:function(n,na,t,nn){return this.selectNodes(n,function(n){return(!t||n.nodeType==t)&&(!nn||n.nodeName==nn);},na?na:[]);},getAttrib:function(e,n,dv){return this._getDOM().getAttrib(e,n,dv);},setAttrib:function(e,n,v){return this._getDOM().setAttrib(e,n,v);},getElementsByAttributeValue:function(n,e,a,v){var i,nl=n.getElementsByTagName(e),o=[];for(i=0;i<nl.length;i++){if(tinyMCE.getAttrib(nl[i],a).indexOf(v)!=-1)o[o.length]=nl[i];}return o;},selectNodes:function(n,f,a){var i;if(!a)a=[];if(f(n))a[a.length]=n;if(n.hasChildNodes()){for(i=0;i<n.childNodes.length;i++)tinyMCE.selectNodes(n.childNodes[i],f,a);}return a;},getContent:function(){return EditorManager.activeEditor.getContent();},getParentElement:function(n,na,f){if(na)na=new RegExp('^('+na.toUpperCase().replace(/,/g,'|')+')$','g');return this._getDOM().getParent(n,function(n){return n.nodeType==1&&(!na||na.test(n.nodeName))&&(!f||f(n));},this.activeEditor.getBody());},importPluginLanguagePack:function(n){tinymce.PluginManager.requireLangPack(n);},getButtonHTML:function(cn,lang,img,c,u,v){var ed=EditorManager.activeEditor;img=img.replace(/\{\$pluginurl\}/g,tinyMCE.pluginURL);img=img.replace(/\{\$themeurl\}/g,tinyMCE.themeURL);lang=lang.replace(/^lang_/g,'');return ed.controlManager.createButton(cn,{title:lang,command:c,ui:u,value:v,scope:this,'class':'compat',image:img});},addSelectAccessibility:function(e,s,w){if(!s._isAccessible){s.onkeydown=tinyMCE.accessibleEventHandler;s.onblur=tinyMCE.accessibleEventHandler;s._isAccessible=true;s._win=w;}return false;},accessibleEventHandler:function(e){var elm,win=this._win;e=tinymce.isIE?win.event:e;elm=tinymce.isIE?e.srcElement:e.target;if(e.type=="blur"){if(elm.oldonchange){elm.onchange=elm.oldonchange;elm.oldonchange=null;}return true;}if(elm.nodeName=="SELECT"&&!elm.oldonchange){elm.oldonchange=elm.onchange;elm.onchange=null;}if(e.keyCode==13||e.keyCode==32){elm.onchange=elm.oldonchange;elm.onchange();elm.oldonchange=null;tinyMCE.cancelEvent(e);return false;}return true;},cancelEvent:function(e){return tinymce.dom.Event.cancel(e);},handleVisualAid:function(e){EditorManager.activeEditor.addVisual(e);},getAbsPosition:function(n,r){return tinymce.DOM.getPos(n,r);},cleanupEventStr:function(s){s=""+s;s=s.replace('function anonymous()\n{\n','');s=s.replace('\n}','');s=s.replace(/^return true;/gi,'');return s;},getVisualAidClass:function(s){return s;},parseStyle:function(s){return this._getDOM().parseStyle(s);},serializeStyle:function(s){return this._getDOM().serializeStyle(s);},openWindow:function(tpl,args){var ed=EditorManager.activeEditor,o={},n;for(n in tpl)o[n]=tpl[n];tpl=o;args=args||{};tpl.url=new tinymce.util.URI(tinymce.ThemeManager.themeURLs[ed.settings.theme]).toAbsolute(tpl.file);tpl.inline=tpl.inline||args.inline;ed.windowManager.open(tpl,args);},closeWindow:function(win){EditorManager.activeEditor.windowManager.close(win);},getOuterHTML:function(e){return tinymce.DOM.getOuterHTML(e);},setOuterHTML:function(e,h,d){return tinymce.DOM.setOuterHTML(e,h,d);},hasPlugin:function(n){return tinymce.PluginManager.get(n)!=null;},_setEventsEnabled:function(){},addPlugin:function(pn,f){var t=this;function PluginWrapper(ed){tinyMCE.selectedInstance=ed;ed.onInit.add(function(){t.settings=ed.settings;t.settings['base_href']=tinyMCE.documentBasePath;tinyMCE.settings=t.settings;tinyMCE.documentBasePath=ed.documentBasePath;if(f.initInstance)f.initInstance(ed);ed.contentDocument=ed.getDoc();ed.contentWindow=ed.getWin();ed.undoRedo=ed.undoManager;ed.startContent=ed.getContent({format:'raw'});tinyMCE.instances[ed.id]=ed;tinyMCE.loadedFiles=[];});ed.onActivate.add(function(){tinyMCE.settings=ed.settings;tinyMCE.selectedInstance=ed;});if(f.handleNodeChange){ed.onNodeChange.add(function(ed,cm,n){f.handleNodeChange(ed.id,n,0,0,false,!ed.selection.isCollapsed());});}if(f.onChange){ed.onChange.add(function(ed,n){return f.onChange(ed);});}if(f.cleanup){ed.onGetContent.add(function(){});}this.getInfo=function(){return f.getInfo();};this.createControl=function(n){tinyMCE.pluginURL=tinymce.baseURL+'/plugins/'+pn;tinyMCE.themeURL=tinymce.baseURL+'/themes/'+tinyMCE.activeEditor.settings.theme;if(f.getControlHTML)return f.getControlHTML(n);return null;};this.execCommand=function(cmd,ui,val){if(f.execCommand)return f.execCommand(ed.id,ed.getBody(),cmd,ui,val);return false;};};tinymce.PluginManager.add(pn,PluginWrapper);},_getDOM:function(){return tinyMCE.activeEditor?tinyMCE.activeEditor.dom:tinymce.DOM;},convertRelativeToAbsoluteURL:function(b,u){return new tinymce.util.URI(b).toAbsolute(u);},convertAbsoluteURLToRelativeURL:function(b,u){return new tinymce.util.URI(b).toRelative(u);}});tinymce.extend(tinymce.Editor.prototype,{getFocusElement:function(){return this.selection.getNode();},getData:function(n){if(!this.data)this.data=[];if(!this.data[n])this.data[n]=[];return this.data[n];},hasPlugin:function(n){return this.plugins[n]!=null;},getContainerWin:function(){return window;},getHTML:function(raw){return this.getContent({format:raw?'raw':'html'});},setHTML:function(h){this.setContent(h);},getSel:function(){return this.selection.getSel();},getRng:function(){return this.selection.getRng();},isHidden:function(){var s;if(!tinymce.isGecko)return false;s=this.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},translate:function(s){var c=this.settings.language,o;o=tinymce.EditorManager.i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{#'+b+'}';});o=o.replace(/{\$lang_([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{$lang_'+b+'}';});return o;},repaint:function(){this.execCommand('mceRepaint');}});tinymce.extend(tinymce.dom.Selection.prototype,{getSelectedText:function(){return this.getContent({format:'text'});},getSelectedHTML:function(){return this.getContent({format:'html'});},getFocusElement:function(){return this.getNode();},selectNode:function(node,collapse,select_text_node,to_start){var t=this;t.select(node,select_text_node||0);if(!is(collapse))collapse=true;if(collapse){if(!is(to_start))to_start=true;t.collapse(to_start);}}});}).call(this);tinymce.PluginManager.add('compat2x',tinymce.plugins.Compat2x);})();
\ No newline at end of file
+(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,is=tinymce.is;tinymce.create('tinymce.plugins.Compat2x',{getInfo:function(){return{longname:'Compat2x',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};}});(function(){tinymce.extend(tinyMCE,{addToLang:function(p,l){each(l,function(v,k){tinyMCE.i18n[(tinyMCE.settings.language||'en')+'.'+(p?p+'_':'')+k]=v;});},getInstanceById:function(n){return this.get(n);}});})();(function(){var EditorManager=tinymce.EditorManager;tinyMCE.instances={};tinyMCE.plugins={};tinymce.PluginManager.onAdd.add(function(pm,n,p){tinyMCE.plugins[n]=p;});tinyMCE.majorVersion=tinymce.majorVersion;tinyMCE.minorVersion=tinymce.minorVersion;tinyMCE.releaseDate=tinymce.releaseDate;tinyMCE.baseURL=tinymce.baseURL;tinyMCE.isIE=tinyMCE.isMSIE=tinymce.isIE||tinymce.isOpera;tinyMCE.isMSIE5=tinymce.isIE;tinyMCE.isMSIE5_0=tinymce.isIE;tinyMCE.isMSIE7=tinymce.isIE;tinyMCE.isGecko=tinymce.isGecko;tinyMCE.isSafari=tinymce.isWebKit;tinyMCE.isOpera=tinymce.isOpera;tinyMCE.isMac=false;tinyMCE.isNS7=false;tinyMCE.isNS71=false;tinyMCE.compat=true;TinyMCE_Engine=tinyMCE;tinymce.extend(tinyMCE,{getParam:function(n,dv){return this.activeEditor.getParam(n,dv);},addEvent:function(e,na,f,sc){tinymce.dom.Event.add(e,na,f,sc||this);},getControlHTML:function(n){return EditorManager.activeEditor.controlManager.createControl(n);},loadCSS:function(u){tinymce.DOM.loadCSS(u);},importCSS:function(doc,u){if(doc==document)this.loadCSS(u);else new tinymce.dom.DOMUtils(doc).loadCSS(u);},log:function(){console.debug.apply(console,arguments);},getLang:function(n,dv){var v=EditorManager.activeEditor.getLang(n.replace(/^lang_/g,''),dv);if(/^[0-9\-.]+$/g.test(v))return parseInt(v);return v;},isInstance:function(o){return o!=null&&typeof(o)=="object"&&o.execCommand;},triggerNodeChange:function(){EditorManager.activeEditor.nodeChanged();},regexpReplace:function(in_str,reg_exp,replace_str,opts){var re;if(in_str==null)return in_str;if(typeof(opts)=="undefined")opts='g';re=new RegExp(reg_exp,opts);return in_str.replace(re,replace_str);},trim:function(s){return tinymce.trim(s);},xmlEncode:function(s){return tinymce.DOM.encode(s);},explode:function(s,d){var o=[];tinymce.each(s.split(d),function(v){if(v!='')o.push(v);});return o;},switchClass:function(id,cls){var b;if(/^mceButton/.test(cls)){b=EditorManager.activeEditor.controlManager.get(id);if(!b)return;switch(cls){case"mceButtonNormal":b.setDisabled(false);b.setActive(false);return;case"mceButtonDisabled":b.setDisabled(true);return;case"mceButtonSelected":b.setActive(true);b.setDisabled(false);return;}}},addCSSClass:function(e,n,b){return tinymce.DOM.addClass(e,n,b);},hasCSSClass:function(e,n){return tinymce.DOM.hasClass(e,n);},removeCSSClass:function(e,n){return tinymce.DOM.removeClass(e,n);},getCSSClasses:function(){var cl=EditorManager.activeEditor.dom.getClasses(),o=[];each(cl,function(c){o.push(c['class']);});return o;},setWindowArg:function(n,v){EditorManager.activeEditor.windowManager.params[n]=v;},getWindowArg:function(n,dv){var wm=EditorManager.activeEditor.windowManager,v;v=wm.getParam(n);if(v==='')return'';return v||wm.getFeature(n)||dv;},getParentNode:function(n,f){return this._getDOM().getParent(n,f);},selectElements:function(n,na,f){var i,a=[],nl,x;for(x=0,na=na.split(',');x<na.length;x++)for(i=0,nl=n.getElementsByTagName(na[x]);i<nl.length;i++)(!f||f(nl[i]))&&a.push(nl[i]);return a;},getNodeTree:function(n,na,t,nn){return this.selectNodes(n,function(n){return(!t||n.nodeType==t)&&(!nn||n.nodeName==nn);},na?na:[]);},getAttrib:function(e,n,dv){return this._getDOM().getAttrib(e,n,dv);},setAttrib:function(e,n,v){return this._getDOM().setAttrib(e,n,v);},getElementsByAttributeValue:function(n,e,a,v){var i,nl=n.getElementsByTagName(e),o=[];for(i=0;i<nl.length;i++){if(tinyMCE.getAttrib(nl[i],a).indexOf(v)!=-1)o[o.length]=nl[i];}return o;},selectNodes:function(n,f,a){var i;if(!a)a=[];if(f(n))a[a.length]=n;if(n.hasChildNodes()){for(i=0;i<n.childNodes.length;i++)tinyMCE.selectNodes(n.childNodes[i],f,a);}return a;},getContent:function(){return EditorManager.activeEditor.getContent();},getParentElement:function(n,na,f){if(na)na=new RegExp('^('+na.toUpperCase().replace(/,/g,'|')+')$','g');return this._getDOM().getParent(n,function(n){return n.nodeType==1&&(!na||na.test(n.nodeName))&&(!f||f(n));},this.activeEditor.getBody());},importPluginLanguagePack:function(n){tinymce.PluginManager.requireLangPack(n);},getButtonHTML:function(cn,lang,img,c,u,v){var ed=EditorManager.activeEditor;img=img.replace(/\{\$pluginurl\}/g,tinyMCE.pluginURL);img=img.replace(/\{\$themeurl\}/g,tinyMCE.themeURL);lang=lang.replace(/^lang_/g,'');return ed.controlManager.createButton(cn,{title:lang,command:c,ui:u,value:v,scope:this,'class':'compat',image:img});},addSelectAccessibility:function(e,s,w){if(!s._isAccessible){s.onkeydown=tinyMCE.accessibleEventHandler;s.onblur=tinyMCE.accessibleEventHandler;s._isAccessible=true;s._win=w;}return false;},accessibleEventHandler:function(e){var elm,win=this._win;e=tinymce.isIE?win.event:e;elm=tinymce.isIE?e.srcElement:e.target;if(e.type=="blur"){if(elm.oldonchange){elm.onchange=elm.oldonchange;elm.oldonchange=null;}return true;}if(elm.nodeName=="SELECT"&&!elm.oldonchange){elm.oldonchange=elm.onchange;elm.onchange=null;}if(e.keyCode==13||e.keyCode==32){elm.onchange=elm.oldonchange;elm.onchange();elm.oldonchange=null;tinyMCE.cancelEvent(e);return false;}return true;},cancelEvent:function(e){return tinymce.dom.Event.cancel(e);},handleVisualAid:function(e){EditorManager.activeEditor.addVisual(e);},getAbsPosition:function(n,r){return tinymce.DOM.getPos(n,r);},cleanupEventStr:function(s){s=""+s;s=s.replace('function anonymous()\n{\n','');s=s.replace('\n}','');s=s.replace(/^return true;/gi,'');return s;},getVisualAidClass:function(s){return s;},parseStyle:function(s){return this._getDOM().parseStyle(s);},serializeStyle:function(s){return this._getDOM().serializeStyle(s);},openWindow:function(tpl,args){var ed=EditorManager.activeEditor,o={},n;for(n in tpl)o[n]=tpl[n];tpl=o;args=args||{};tpl.url=new tinymce.util.URI(tinymce.ThemeManager.themeURLs[ed.settings.theme]).toAbsolute(tpl.file);tpl.inline=tpl.inline||args.inline;ed.windowManager.open(tpl,args);},closeWindow:function(win){EditorManager.activeEditor.windowManager.close(win);},getOuterHTML:function(e){return tinymce.DOM.getOuterHTML(e);},setOuterHTML:function(e,h,d){return tinymce.DOM.setOuterHTML(e,h,d);},hasPlugin:function(n){return tinymce.PluginManager.get(n)!=null;},_setEventsEnabled:function(){},addPlugin:function(pn,f){var t=this;function PluginWrapper(ed){tinyMCE.selectedInstance=ed;ed.onInit.add(function(){t.settings=ed.settings;t.settings['base_href']=tinyMCE.documentBasePath;tinyMCE.settings=t.settings;tinyMCE.documentBasePath=ed.documentBasePath;if(f.initInstance)f.initInstance(ed);ed.contentDocument=ed.getDoc();ed.contentWindow=ed.getWin();ed.undoRedo=ed.undoManager;ed.startContent=ed.getContent({format:'raw'});tinyMCE.instances[ed.id]=ed;tinyMCE.loadedFiles=[];});ed.onActivate.add(function(){tinyMCE.settings=ed.settings;tinyMCE.selectedInstance=ed;});if(f.handleNodeChange){ed.onNodeChange.add(function(ed,cm,n){f.handleNodeChange(ed.id,n,0,0,false,!ed.selection.isCollapsed());});}if(f.onChange){ed.onChange.add(function(ed,n){return f.onChange(ed);});}if(f.cleanup){ed.onGetContent.add(function(){});}this.getInfo=function(){return f.getInfo();};this.createControl=function(n){tinyMCE.pluginURL=tinymce.baseURL+'/plugins/'+pn;tinyMCE.themeURL=tinymce.baseURL+'/themes/'+tinyMCE.activeEditor.settings.theme;if(f.getControlHTML)return f.getControlHTML(n);return null;};this.execCommand=function(cmd,ui,val){if(f.execCommand)return f.execCommand(ed.id,ed.getBody(),cmd,ui,val);return false;};};tinymce.PluginManager.add(pn,PluginWrapper);},_getDOM:function(){return tinyMCE.activeEditor?tinyMCE.activeEditor.dom:tinymce.DOM;},convertRelativeToAbsoluteURL:function(b,u){return new tinymce.util.URI(b).toAbsolute(u);},convertAbsoluteURLToRelativeURL:function(b,u){return new tinymce.util.URI(b).toRelative(u);}});tinymce.extend(tinymce.Editor.prototype,{getFocusElement:function(){return this.selection.getNode();},getData:function(n){if(!this.data)this.data=[];if(!this.data[n])this.data[n]=[];return this.data[n];},hasPlugin:function(n){return this.plugins[n]!=null;},getContainerWin:function(){return window;},getHTML:function(raw){return this.getContent({format:raw?'raw':'html'});},setHTML:function(h){this.setContent(h);},getSel:function(){return this.selection.getSel();},getRng:function(){return this.selection.getRng();},isHidden:function(){var s;if(!tinymce.isGecko)return false;s=this.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},translate:function(s){var c=this.settings.language,o;if(!s)return s;o=tinymce.EditorManager.i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{#'+b+'}';});o=o.replace(/{\$lang_([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{$lang_'+b+'}';});return o;},repaint:function(){this.execCommand('mceRepaint');}});tinymce.extend(tinymce.dom.Selection.prototype,{getSelectedText:function(){return this.getContent({format:'text'});},getSelectedHTML:function(){return this.getContent({format:'html'});},getFocusElement:function(){return this.getNode();},selectNode:function(node,collapse,select_text_node,to_start){var t=this;t.select(node,select_text_node||0);if(!is(collapse))collapse=true;if(collapse){if(!is(to_start))to_start=true;t.collapse(to_start);}}});}).call(this);tinymce.PluginManager.add('compat2x',tinymce.plugins.Compat2x);})();
\ No newline at end of file
translate : function(s) {\r
var c = this.settings.language, o;\r
\r
+ if (!s)\r
+ return s;\r
+\r
o = tinymce.EditorManager.i18n[c + '.' + s] || s.replace(/{\#([^}]+)\}/g, function(a, b) {\r
return tinymce.EditorManager.i18n[c + '.' + b] || '{#' + b + '}';\r
});\r
-(function(){var Event=tinymce.dom.Event,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.ContextMenu',{init:function(ed){var t=this;t.editor=ed;t.onContextMenu=new tinymce.util.Dispatcher(this);ed.onContextMenu.add(function(ed,e){if(!e.ctrlKey){t._getMenu(ed).showMenu(e.clientX,e.clientY);Event.add(document,'click',hide);Event.cancel(e);}});function hide(){if(t._menu){t._menu.removeAll();t._menu.destroy();Event.remove(document,'click',hide);}};ed.onMouseDown.add(hide);ed.onKeyDown.add(hide);},getInfo:function(){return{longname:'Contextmenu',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_getMenu:function(ed){var t=this,m=t._menu,se=ed.selection,col=se.isCollapsed(),el=se.getNode()||ed.getBody(),am,p1,p2;if(m){m.removeAll();m.destroy();}p1=DOM.getPos(ed.getContentAreaContainer());p2=DOM.getPos(ed.getContainer());m=ed.controlManager.createDropMenu('contextmenu',{offset_x:p1.x,offset_y:p1.y,constrain:1});t._menu=m;m.add({title:'advanced.cut_desc',icon:'cut',cmd:'Cut'}).setDisabled(col);m.add({title:'advanced.copy_desc',icon:'copy',cmd:'Copy'}).setDisabled(col);m.add({title:'advanced.paste_desc',icon:'paste',cmd:'Paste'});if((el.nodeName=='A'&&!ed.dom.getAttrib(el,'name'))||!col){m.addSeparator();m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});}m.addSeparator();m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();am=m.addMenu({title:'contextmenu.align'});am.add({title:'contextmenu.left',icon:'justifyleft',cmd:'JustifyLeft'});am.add({title:'contextmenu.center',icon:'justifycenter',cmd:'JustifyCenter'});am.add({title:'contextmenu.right',icon:'justifyright',cmd:'JustifyRight'});am.add({title:'contextmenu.full',icon:'justifyfull',cmd:'JustifyFull'});t.onContextMenu.dispatch(t,m,el,col);return m;}});tinymce.PluginManager.add('contextmenu',tinymce.plugins.ContextMenu);})();
\ No newline at end of file
+(function(){var Event=tinymce.dom.Event,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.ContextMenu',{init:function(ed){var t=this;t.editor=ed;t.onContextMenu=new tinymce.util.Dispatcher(this);ed.onContextMenu.add(function(ed,e){if(!e.ctrlKey){t._getMenu(ed).showMenu(e.clientX,e.clientY);Event.add(ed.getDoc(),'click',hide);Event.cancel(e);}});function hide(){if(t._menu){t._menu.removeAll();t._menu.destroy();Event.remove(ed.getDoc(),'click',hide);}};ed.onMouseDown.add(hide);ed.onKeyDown.add(hide);},getInfo:function(){return{longname:'Contextmenu',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_getMenu:function(ed){var t=this,m=t._menu,se=ed.selection,col=se.isCollapsed(),el=se.getNode()||ed.getBody(),am,p1,p2;if(m){m.removeAll();m.destroy();}p1=DOM.getPos(ed.getContentAreaContainer());p2=DOM.getPos(ed.getContainer());m=ed.controlManager.createDropMenu('contextmenu',{offset_x:p1.x+ed.getParam('contextmenu_offset_x',0),offset_y:p1.y+ed.getParam('contextmenu_offset_y',0),constrain:1});t._menu=m;m.add({title:'advanced.cut_desc',icon:'cut',cmd:'Cut'}).setDisabled(col);m.add({title:'advanced.copy_desc',icon:'copy',cmd:'Copy'}).setDisabled(col);m.add({title:'advanced.paste_desc',icon:'paste',cmd:'Paste'});if((el.nodeName=='A'&&!ed.dom.getAttrib(el,'name'))||!col){m.addSeparator();m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});}m.addSeparator();m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();am=m.addMenu({title:'contextmenu.align'});am.add({title:'contextmenu.left',icon:'justifyleft',cmd:'JustifyLeft'});am.add({title:'contextmenu.center',icon:'justifycenter',cmd:'JustifyCenter'});am.add({title:'contextmenu.right',icon:'justifyright',cmd:'JustifyRight'});am.add({title:'contextmenu.full',icon:'justifyfull',cmd:'JustifyFull'});t.onContextMenu.dispatch(t,m,el,col);return m;}});tinymce.PluginManager.add('contextmenu',tinymce.plugins.ContextMenu);})();
\ No newline at end of file
/**\r
- * $Id: editor_plugin_src.js 755 2008-03-29 19:14:42Z spocke $\r
+ * $Id: editor_plugin_src.js 848 2008-05-15 11:54:40Z spocke $\r
*\r
* @author Moxiecode\r
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
ed.onContextMenu.add(function(ed, e) {\r
if (!e.ctrlKey) {\r
t._getMenu(ed).showMenu(e.clientX, e.clientY);\r
- Event.add(document, 'click', hide);\r
+ Event.add(ed.getDoc(), 'click', hide);\r
Event.cancel(e);\r
}\r
});\r
if (t._menu) {\r
t._menu.removeAll();\r
t._menu.destroy();\r
- Event.remove(document, 'click', hide);\r
+ Event.remove(ed.getDoc(), 'click', hide);\r
}\r
};\r
\r
p2 = DOM.getPos(ed.getContainer());\r
\r
m = ed.controlManager.createDropMenu('contextmenu', {\r
- offset_x : p1.x,\r
- offset_y : p1.y,\r
-/* vp_offset_x : p2.x,\r
- vp_offset_y : p2.y,*/\r
+ offset_x : p1.x + ed.getParam('contextmenu_offset_x', 0),\r
+ offset_y : p1.y + ed.getParam('contextmenu_offset_y', 0),\r
constrain : 1\r
});\r
\r
--- /dev/null
+tinyMCE.addI18n('ar.emotions_dlg',{\r
+title:"\u0625\u062F\u0631\u0627\u062C \u0627\u0628\u062A\u0633\u0627\u0645\u0629",\r
+desc:"\u0627\u0644\u0625\u0628\u062A\u0633\u0627\u0645\u0627\u062A",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bg.emotions_dlg',{\r
+title:"\u0412\u043C\u044A\u043A\u043D\u0438 \u0435\u043C\u043E\u0442\u0438\u043A\u043E\u043D",\r
+desc:"\u0415\u043C\u043E\u0442\u0438\u043A\u043E\u043D\u0438",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bs.emotions_dlg',{\r
+title:"Umetni emociju",\r
+desc:"Emocije",\r
+cool:"Cool",\r
+cry:"Pla\u010D",\r
+embarassed:"Sramim se",\r
+foot_in_mouth:"Izlanuo se",\r
+frown:"Mr\u0161ti se",\r
+innocent:"Nevina\u0161ce",\r
+kiss:"Poljubac",\r
+laughing:"Smijeh",\r
+money_mouth:"Bogata\u0161",\r
+sealed:"\u0160utim",\r
+smile:"Osmijeh",\r
+surprised:"Iznena\u0111en",\r
+tongue_out:"Belji se",\r
+undecided:"Neodlu\u010Dan",\r
+wink:"Namigiva",\r
+yell:"Vi\u010De"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ca.emotions_dlg',{\r
+title:"Insereix emoticona",\r
+desc:"Emoticones",\r
+cool:"Ben parit",\r
+cry:"Plor",\r
+embarassed:"Vergonya",\r
+foot_in_mouth:"Muts i a la g\u00E0bia",\r
+frown:"Indiferent",\r
+innocent:"Innocent",\r
+kiss:"Pet\u00F3",\r
+laughing:"Rialla",\r
+money_mouth:"Boca de diner",\r
+sealed:"Segellada",\r
+smile:"Somriure",\r
+surprised:"Sorpresa",\r
+tongue_out:"Treu la llengua",\r
+undecided:"Indecisa",\r
+wink:"Pica l'ullet",\r
+yell:"Crit"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('cs.emotions_dlg',{\r
+title:"Vlo\u017Eit emotikon",\r
+desc:"Emotikony",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('da.emotions_dlg',{\r
+title:"Inds\u00E6t hum\u00F8rikon",\r
+desc:"Hum\u00F8rikoner",\r
+cool:"Cool",\r
+cry:"Gr\u00E6de",\r
+embarassed:"Flov",\r
+foot_in_mouth:"Fod i munden",\r
+frown:"Forskr\u00E6kket",\r
+innocent:"Uskyldig",\r
+kiss:"Kys",\r
+laughing:"Grine",\r
+money_mouth:"Pengemund",\r
+sealed:"Lukket",\r
+smile:"Smil",\r
+surprised:"Overrasket",\r
+tongue_out:"Tunge ud",\r
+undecided:"Ubeslutsom",\r
+wink:"Vink",\r
+yell:"R\u00E5be"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('de.emotions_dlg',{\r
+title:"Smiley einf\u00FCgen",\r
+desc:"Smilies",\r
+cool:"Cool",\r
+cry:"Weinend",\r
+embarassed:"Verlegen",\r
+foot_in_mouth:"Reingefallen",\r
+frown:"Stirnrunzelnd",\r
+innocent:"Unschuldig",\r
+kiss:"K\u00FCssend",\r
+laughing:"Lachend",\r
+money_mouth:"Geld",\r
+sealed:"Verschlossen",\r
+smile:"L\u00E4chelnd",\r
+surprised:"\u00DCberrascht",\r
+tongue_out:"Zunge raus",\r
+undecided:"Unentschlossen",\r
+wink:"Zwinkernd",\r
+yell:"Br\u00FCllend"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('el.emotions_dlg',{\r
+title:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03C3\u03C5\u03BD\u03B1\u03B9\u03C3\u03B8\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2",\r
+desc:"\u03A3\u03C5\u03BD\u03B1\u03B9\u03C3\u03B8\u03AE\u03BC\u03B1\u03C4\u03B1",\r
+cool:"\u0386\u03BD\u03B5\u03C4\u03BF\u03C2",\r
+cry:"\u0394\u03B1\u03BA\u03C1\u03C5\u03C3\u03BC\u03AD\u03BD\u03BF\u03C2",\r
+embarassed:"\u0391\u03BC\u03AE\u03C7\u03B1\u03BD\u03BF\u03C2",\r
+foot_in_mouth:"\u039A\u03BB\u03C9\u03C4\u03C3\u03B9\u03AC \u03C3\u03C4\u03BF \u03C3\u03C4\u03CC\u03BC\u03B1",\r
+frown:"\u039A\u03B1\u03C4\u03C3\u03BF\u03C5\u03C6\u03B9\u03B1\u03C3\u03BC\u03AD\u03BD\u03BF\u03C2",\r
+innocent:"\u0391\u03B8\u03CE\u03BF\u03C2",\r
+kiss:"\u03A6\u03B9\u03BB\u03AF",\r
+laughing:"\u0393\u03AD\u03BB\u03B9\u03BF",\r
+money_mouth:"\u039B\u03B5\u03C6\u03C4\u03AC \u03C9\u03C2 \u03C3\u03C4\u03CC\u03BC\u03B1",\r
+sealed:"\u03A3\u03C6\u03C1\u03B1\u03B3\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF \u03C3\u03C4\u03CC\u03BC\u03B1",\r
+smile:"\u03A7\u03B1\u03BC\u03CC\u03B3\u03B5\u03BB\u03BF",\r
+surprised:"\u0388\u03BA\u03C0\u03BB\u03B7\u03BA\u03C4\u03BF\u03C2",\r
+tongue_out:"\u0393\u03BB\u03CE\u03C3\u03C3\u03B1 \u03AD\u03BE\u03C9",\r
+undecided:"\u0391\u03BD\u03B1\u03C0\u03BF\u03C6\u03AC\u03C3\u03B9\u03C3\u03C4\u03BF\u03C2",\r
+wink:"\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF \u03BC\u03B1\u03C4\u03B9\u03BF\u03CD",\r
+yell:"\u03A6\u03C9\u03BD\u03AC\u03B6\u03C9"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('es.emotions_dlg',{\r
+title:"Insertar emoticon",\r
+desc:"Emoticones",\r
+cool:"Todo bien",\r
+cry:"Llora",\r
+embarassed:"Verg\u00FCenza",\r
+foot_in_mouth:"Pie en la boca",\r
+frown:"Triste",\r
+innocent:"Inocente",\r
+kiss:"Beso",\r
+laughing:"Risa",\r
+money_mouth:"Dinero boca",\r
+sealed:"Sellado",\r
+smile:"Sonrisa",\r
+surprised:"Sorprendido",\r
+tongue_out:"Lengua fuera",\r
+undecided:"Indeciso",\r
+wink:"Gui\u00F1o",\r
+yell:"Enfadado"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('et.emotions_dlg',{\r
+title:"Sisesta emotsioon",\r
+desc:"Emotsioonid",\r
+cool:"Lahe",\r
+cry:"Nutt",\r
+embarassed:"H\u00E4bitunne",\r
+foot_in_mouth:"Jalg suus",\r
+frown:"Kulmu kortsutamine",\r
+innocent:"S\u00FC\u00FCtu",\r
+kiss:"Suudlus",\r
+laughing:"Naermine",\r
+money_mouth:"Rahasuu",\r
+sealed:"Suletud",\r
+smile:"Naeratus",\r
+surprised:"\u00DCllatunud",\r
+tongue_out:"Keel v\u00E4ljas",\r
+undecided:"K\u00F5hklev",\r
+wink:"Silmapilgutus",\r
+yell:"Karje"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fa.emotions_dlg',{\r
+title:"\u062F\u0631\u062C \u0634\u06A9\u0644\u06A9",\r
+desc:"\u0634\u06A9\u0644\u06A9\u200C\u0647\u0627",\r
+cool:"\u062E\u0648\u0646\u0633\u0631\u062F",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"\u0686\u0634\u0645\u06A9",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fi.emotions_dlg',{\r
+title:"Lis\u00E4\u00E4 hymi\u00F6",\r
+desc:"Hymi\u00F6t",\r
+cool:"Cool",\r
+cry:"Itku",\r
+embarassed:"Nolostunut",\r
+foot_in_mouth:"Jalka suussa",\r
+frown:"Otsan rypistys",\r
+innocent:"Viaton",\r
+kiss:"Pusu",\r
+laughing:"Nauru",\r
+money_mouth:"Klink Klink (raha)",\r
+sealed:"Tukittu",\r
+smile:"Hymy",\r
+surprised:"Yll\u00E4ttynyt",\r
+tongue_out:"Kieli ulkona",\r
+undecided:"P\u00E4\u00E4tt\u00E4m\u00E4t\u00F6n",\r
+wink:"Silm\u00E4nisku",\r
+yell:"Huuto"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fr.emotions_dlg',{\r
+title:"Ins\u00E9rer \u00E9motion",\r
+desc:"\u00C9motions",\r
+cool:"Cool",\r
+cry:"En pleurs",\r
+embarassed:"Embarass\u00E9",\r
+foot_in_mouth:"Pied de nez",\r
+frown:"D\u00E9\u00E7u",\r
+innocent:"Innocent",\r
+kiss:"Bisou",\r
+laughing:"Rigolant",\r
+money_mouth:"Avare",\r
+sealed:"Bouche cousue",\r
+smile:"Sourire",\r
+surprised:"Surpris",\r
+tongue_out:"Langue tir\u00E9e",\r
+undecided:"Non d\u00E9cid\u00E9",\r
+wink:"Clin d'oeil",\r
+yell:"Criant"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('he.emotions_dlg',{\r
+title:"\u05D4\u05D5\u05E1\u05E4\u05EA \u05E1\u05DE\u05D9\u05D9\u05DC\u05D9",\r
+desc:"\u05E1\u05DE\u05D9\u05D9\u05DC\u05D9\u05DD",\r
+cool:"\u05DE\u05D2\u05E0\u05D9\u05D1",\r
+cry:"\u05D1\u05D5\u05DB\u05D4",\r
+embarassed:"\u05E0\u05D1\u05D5\u05DA",\r
+foot_in_mouth:"\u05E8\u05D2\u05DC \u05D1\u05E4\u05D4",\r
+frown:"\u05DE\u05D6\u05E2\u05D9\u05E3 \u05D0\u05EA \u05D4\u05E4\u05D4",\r
+innocent:"\u05EA\u05DE\u05D9\u05DD",\r
+kiss:"\u05E0\u05E9\u05D9\u05E7\u05D4",\r
+laughing:"\u05E6\u05D5\u05D7\u05E7",\r
+money_mouth:"\u05DB\u05E1\u05E3",\r
+sealed:"\u05D0\u05D8\u05D5\u05DD",\r
+smile:"\u05D7\u05D9\u05D5\u05DA",\r
+surprised:"\u05DE\u05D5\u05E4\u05EA\u05E2",\r
+tongue_out:"\u05DC\u05E9\u05D5\u05DF \u05D1\u05D7\u05D5\u05E5",\r
+undecided:"\u05D4\u05E1\u05E0\u05E0\u05D9",\r
+wink:"\u05E7\u05E8\u05D9\u05E6\u05D4",\r
+yell:"\u05E6\u05E2\u05E7\u05D4"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hr.emotions_dlg',{\r
+title:"Umetni emociju",\r
+desc:"Emocije",\r
+cool:"Cool",\r
+cry:"Pla\u010D",\r
+embarassed:"Sramim se",\r
+foot_in_mouth:"Izlanuo se",\r
+frown:"Mr\u0161ti se",\r
+innocent:"Nevina\u0161ce",\r
+kiss:"Poljubac",\r
+laughing:"Smijeh",\r
+money_mouth:"Bogata\u0161",\r
+sealed:"\u0160utim",\r
+smile:"Osmijeh",\r
+surprised:"Iznena\u0111en",\r
+tongue_out:"Belji se",\r
+undecided:"Neodlu\u010Dan",\r
+wink:"Namigiva",\r
+yell:"Vi\u010De"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hu.emotions_dlg',{\r
+title:"Hangulatjel besz\u00FAr\u00E1sa",\r
+desc:"Hangulatjelek",\r
+cool:"Kir\u00E1ly",\r
+cry:"S\u00EDr\u00F3s",\r
+embarassed:"Zavarban van",\r
+foot_in_mouth:"L\u00E1b a sz\u00E1jban",\r
+frown:"Rosszall",\r
+innocent:"\u00C1rtatlan",\r
+kiss:"Cs\u00F3k",\r
+laughing:"Nevet\u00E9s",\r
+money_mouth:"P\u00E9nz besz\u00E9l",\r
+sealed:"Lakat a sz\u00E1j\u00E1n",\r
+smile:"Vigyor",\r
+surprised:"Meglepett",\r
+tongue_out:"Nyelv\u00F6lt\u00E9s",\r
+undecided:"Hat\u00E1rozatlan",\r
+wink:"Kacsint\u00E1s",\r
+yell:"\u00DCv\u00F6lt\u00E9s"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('is.emotions_dlg',{\r
+title:"Setja inn broskall",\r
+desc:"Broskarlar",\r
+cool:"T\u00F6ff",\r
+cry:"Gr\u00E1tandi",\r
+embarassed:"Skammast s\u00EDn",\r
+foot_in_mouth:"F\u00F3tur \u00ED munni",\r
+frown:"Frown",\r
+innocent:"Saklaus",\r
+kiss:"Koss",\r
+laughing:"Hl\u00E6gjandi",\r
+money_mouth:"Peningamunnur",\r
+sealed:"Rennil\u00E1samunnur",\r
+smile:"Bros",\r
+surprised:"Hissa",\r
+tongue_out:"Tungan \u00FAt",\r
+undecided:"\u00D3\u00E1kve\u00F0inn",\r
+wink:"Wink",\r
+yell:"\u00D6skrandi"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('it.emotions_dlg',{\r
+title:"Inserisci faccina",\r
+desc:"Faccina",\r
+cool:"Fico",\r
+cry:"Piango",\r
+embarassed:"Imbarazzato",\r
+foot_in_mouth:"Piede in bocca",\r
+frown:"Triste",\r
+innocent:"Santarellino",\r
+kiss:"Bacio",\r
+laughing:"Risatona",\r
+money_mouth:"Bocca danarosa",\r
+sealed:"Bocca sigillata",\r
+smile:"Sorridente",\r
+surprised:"Sorpreso",\r
+tongue_out:"Linguaccia",\r
+undecided:"Indeciso",\r
+wink:"Occhiolino",\r
+yell:"Arrabbiato"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ja.emotions_dlg',{\r
+title:"\u8868\u60C5\u30A2\u30A4\u30B3\u30F3\u306E\u633F\u5165",\r
+desc:"\u8868\u60C5\u30A2\u30A4\u30B3\u30F3",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ko.emotions_dlg',{\r
+title:"\uC774\uBAA8\uD2F0\uCF58 \uC0BD\uC785",\r
+desc:"\uC774\uBAA8\uD2F0\uCF58",\r
+cool:"\uCFE8",\r
+cry:"\uC6B8\uC74C",\r
+embarassed:"\uBD80\uB044\uB7EC\uC6C0",\r
+foot_in_mouth:"\uC2E4\uC5B8",\r
+frown:"\uCC21\uADF8\uB9B0 \uC5BC\uAD74",\r
+innocent:"\uCC9C\uC9C4\uB09C\uB9CC",\r
+kiss:"Kiss",\r
+laughing:"\uC6C3\uC74C",\r
+money_mouth:"\uB3C8",\r
+sealed:"\uBD09\uC778",\r
+smile:"\uC2A4\uB9C8\uC77C",\r
+surprised:"\uB180\uB77C\uC6C0",\r
+tongue_out:"\uBA54\uB871",\r
+undecided:"\uACE0\uBBFC\uD55C\uB2E4",\r
+wink:"\uC719\uD06C",\r
+yell:"\uC678\uCE5C\uB2E4"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lt.emotions_dlg',{\r
+title:"\u012Eterpti emotikon\u0105",\r
+desc:"Emotikonai",\r
+cool:"J\u0117ga",\r
+cry:"Verksmas",\r
+embarassed:"Susig\u0117d\u0119s",\r
+foot_in_mouth:"Koja burnoje",\r
+frown:"Susirauk\u0119s",\r
+innocent:"Nekaltas",\r
+kiss:"Bu\u010Dinys",\r
+laughing:"Juokimasis",\r
+money_mouth:"Piniginga burna",\r
+sealed:"Sandarus",\r
+smile:"\u0160ypsena",\r
+surprised:"Nusteb\u0119s",\r
+tongue_out:"I\u0161ki\u0161tas lie\u017Euvis",\r
+undecided:"Neapsisprend\u0119s",\r
+wink:"Mirk\u010Diojimas",\r
+yell:"Klyksmas"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lv.emotions_dlg',{\r
+title:"Ievietot smaidi\u0146u",\r
+desc:"Smaidi\u0146i",\r
+cool:"V\u0113sais",\r
+cry:"Raudul\u012Bgais",\r
+embarassed:"Nokautr\u0113jies",\r
+foot_in_mouth:"K\u0101jmutis",\r
+frown:"Satraukts",\r
+innocent:"Nevain\u012Bgs",\r
+kiss:"Sk\u016Bpsts",\r
+laughing:"Smejo\u0161s",\r
+money_mouth:"Naudmutis",\r
+sealed:"Nosl\u0113gts",\r
+smile:"Smaid\u012Bgs",\r
+surprised:"P\u0101rsteigts",\r
+tongue_out:"M\u0113d\u012Bgs",\r
+undecided:"Neizl\u0113m\u012Bgs",\r
+wink:"Aci miedzo\u0161s",\r
+yell:"Kliedzo\u0161s"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('mk.emotions_dlg',{\r
+title:"\u0412\u043C\u0435\u0442\u043D\u0438 emociju",\r
+desc:"Emocije",\r
+cool:"Cool",\r
+cry:"Pla\u010D",\r
+embarassed:"Sramim se",\r
+foot_in_mouth:"Izlanuo se",\r
+frown:"Mr\u0161ti se",\r
+innocent:"Nevina\u0161ce",\r
+kiss:"Poljubac",\r
+laughing:"Smeh",\r
+money_mouth:"Bogata\u0161",\r
+sealed:"\u0160utim",\r
+smile:"Osmeh",\r
+surprised:"Iznena\u0111en",\r
+tongue_out:"Belji se",\r
+undecided:"Neodlu\u010Dan",\r
+wink:"Namigiva",\r
+yell:"Vi\u010De"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ms.emotions_dlg',{\r
+title:"Masukkan emosi",\r
+desc:"Simbol Emosi",\r
+cool:"Tampan",\r
+cry:"Menangis",\r
+embarassed:"Malu",\r
+foot_in_mouth:"Kaki dalam mulut",\r
+frown:"Mengerut",\r
+innocent:"Tidak bersalah",\r
+kiss:"Cium",\r
+laughing:"Gelak",\r
+money_mouth:"Duit mulut",\r
+sealed:"Kacip",\r
+smile:"Senyum",\r
+surprised:"Terkejut",\r
+tongue_out:"Jelir lidah",\r
+undecided:"Tak pasti",\r
+wink:"Kenyit",\r
+yell:"Menguap"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nb.emotions_dlg',{\r
+title:"Sett inn hum\u00F8rfjes",\r
+desc:"Hum\u00F8rfjes",\r
+cool:"Cool",\r
+cry:"Gr\u00E5ter",\r
+embarassed:"Flau",\r
+foot_in_mouth:"Fot i munnen",\r
+frown:"Skuffet",\r
+innocent:"Uskyldig",\r
+kiss:"Kyss",\r
+laughing:"Ler",\r
+money_mouth:"Penger i munnen",\r
+sealed:"Hemmelig",\r
+smile:"Glad",\r
+surprised:"Overrasket",\r
+tongue_out:"Rekke tunge",\r
+undecided:"Skeptisk",\r
+wink:"Blunke",\r
+yell:"Skri"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nl.emotions_dlg',{\r
+title:"Emotie invoegen",\r
+desc:"Emoties",\r
+cool:"Stoer",\r
+cry:"Huilen",\r
+embarassed:"Schamen",\r
+foot_in_mouth:"Verstomd",\r
+frown:"Wenkbrouw ophalen",\r
+innocent:"Onschuldig",\r
+kiss:"Zoenen",\r
+laughing:"Lachen",\r
+money_mouth:"Hebberig",\r
+sealed:"Afgesloten",\r
+smile:"Lachen",\r
+surprised:"Verrast",\r
+tongue_out:"Tong uitsteken",\r
+undecided:"Onbeslist",\r
+wink:"Knipogen",\r
+yell:"Roepen"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nn.emotions_dlg',{\r
+title:"Set inn hum\u00F8rfjes",\r
+desc:"Hum\u00F8rfjes",\r
+cool:"Cool",\r
+cry:"Gret",\r
+embarassed:"Flau",\r
+foot_in_mouth:"Fot i munnen",\r
+frown:"Skuffa",\r
+innocent:"Uskyldig",\r
+kiss:"Kyss",\r
+laughing:"Ler",\r
+money_mouth:"Pengar i munnen",\r
+sealed:"Hemmeleg",\r
+smile:"Glad",\r
+surprised:"Overraska",\r
+tongue_out:"Rekkje tunge",\r
+undecided:"Skeptisk",\r
+wink:"Blunke",\r
+yell:"Skri"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pl.emotions_dlg',{\r
+title:"Wstaw emotikon\u0119",\r
+desc:"Emotikony",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pt.emotions_dlg',{\r
+title:"Inserir emoticon",\r
+desc:"Emoticons",\r
+cool:"Legal",\r
+cry:"Chor\u00E3o",\r
+embarassed:"Embara\u00E7ado",\r
+foot_in_mouth:"Falei bobagem",\r
+frown:"Decep\u00E7\u00E3o",\r
+innocent:"Inocente",\r
+kiss:"Beijo",\r
+laughing:"Riso",\r
+money_mouth:"Olho no dinheiro",\r
+sealed:"Bico calado",\r
+smile:"Sorriso",\r
+surprised:"Surpresa",\r
+tongue_out:"L\u00EDngua de fora",\r
+undecided:"Indeciso",\r
+wink:"Piscadela",\r
+yell:"Ira"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ro.emotions_dlg',{\r
+title:"Insereaz\u0103 emoticon",\r
+desc:"Emo\u0163ii",\r
+cool:"Cool",\r
+cry:"Trist",\r
+embarassed:"Ru\u015Finat",\r
+foot_in_mouth:"Picior \u00EEn gur\u0103",\r
+frown:"\u00CEncruntat",\r
+innocent:"Nevinovat",\r
+kiss:"Pupic",\r
+laughing:"R\u00E2de",\r
+money_mouth:"Bani \u00EEn gur\u0103",\r
+sealed:"Sigilat",\r
+smile:"Z\u00E2mbet",\r
+surprised:"Surprins",\r
+tongue_out:"Cu limba afar\u0103",\r
+undecided:"Indecis",\r
+wink:"Face cu ochiul",\r
+yell:"\u0162ipa"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ru.emotions_dlg',{\r
+title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u043C\u0430\u0439\u043B\u0438\u043A",\r
+desc:"\u0421\u043C\u0430\u0439\u043B\u0438\u043A\u0438",\r
+cool:"\u041A\u043B\u0451\u0432\u044B\u0439",\r
+cry:"\u041F\u043B\u0430\u0447\u0435\u0442",\r
+embarassed:"\u041E\u0431\u0430\u043B\u0434\u0435\u043B",\r
+foot_in_mouth:"\u041D\u043E\u0433\u0430 \u0432\u043E \u0440\u0442\u0443",\r
+frown:"\u0425\u043C\u0443\u0440\u044B\u0439",\r
+innocent:"\u041D\u0435\u0432\u0438\u043D\u043D\u043E\u0441\u0442\u044C",\r
+kiss:"\u041F\u043E\u0446\u0435\u043B\u0443\u0439",\r
+laughing:"\u0421\u043C\u0435\u0451\u0442\u0441\u044F",\r
+money_mouth:"\u041C\u043D\u043E\u0433\u043E \u0434\u0435\u043D\u0435\u0433",\r
+sealed:"\u0417\u0430\u043F\u0435\u0447\u0430\u0442\u0430\u043D\u043E",\r
+smile:"\u0423\u043B\u044B\u0431\u0430\u0435\u0442\u0441\u044F",\r
+surprised:"\u0423\u0434\u0438\u0432\u043B\u0451\u043D",\r
+tongue_out:"\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u044F\u0437\u044B\u043A",\r
+undecided:"\u0412 \u043D\u0435\u0440\u0435\u0448\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438",\r
+wink:"\u041F\u043E\u0434\u043C\u0438\u0433\u0438\u0432\u0430\u0435\u0442",\r
+yell:"\u0412\u043E\u043F\u0438\u0442"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('si.emotions_dlg',{\r
+title:"Insert emotion",\r
+desc:"Emotions",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sk.emotions_dlg',{\r
+title:"Vlo\u017Ei\u0165 emotikon",\r
+desc:"Emotikony",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sl.emotions_dlg',{\r
+title:"Vstavi sme\u0161ka",\r
+desc:"Sme\u0161ki",\r
+cool:"kul",\r
+cry:"jok",\r
+embarassed:"v zadregi",\r
+foot_in_mouth:"zare\u010Deni kruh",\r
+frown:"nagubano \u010Delo",\r
+innocent:"nedol\u017Een",\r
+kiss:"poljub",\r
+laughing:"smeh",\r
+money_mouth:"zlati kljun",\r
+sealed:"zape\u010Dateno",\r
+smile:"nasmeh",\r
+surprised:"presene\u010Den",\r
+tongue_out:"ka\u017Ee jezik",\r
+undecided:"neodlo\u010Den",\r
+wink:"me\u017Eik",\r
+yell:"krik"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sr.emotions_dlg',{\r
+title:"Umetni emociju",\r
+desc:"Emocije",\r
+cool:"Cool",\r
+cry:"Pla\u010D",\r
+embarassed:"Sramim se",\r
+foot_in_mouth:"Izlanuo se",\r
+frown:"Mr\u0161ti se",\r
+innocent:"Nevina\u0161ce",\r
+kiss:"Poljubac",\r
+laughing:"Smeh",\r
+money_mouth:"Bogata\u0161",\r
+sealed:"\u0160utim",\r
+smile:"Osmeh",\r
+surprised:"Iznena\u0111en",\r
+tongue_out:"Belji se",\r
+undecided:"Neodlu\u010Dan",\r
+wink:"Namigiva",\r
+yell:"Vi\u010De"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sv.emotions_dlg',{\r
+title:"Infoga smiley",\r
+desc:"Smileys",\r
+cool:"Cool",\r
+cry:"Gr\u00E5ter",\r
+embarassed:"Sk\u00E4ms",\r
+foot_in_mouth:"Foten i munnen",\r
+frown:"Rynkar p\u00E5 n\u00E4san",\r
+innocent:"Oskyldig",\r
+kiss:"Kyss",\r
+laughing:"Skrattande",\r
+money_mouth:"Guld i mun",\r
+sealed:"Tyst",\r
+smile:"Glad",\r
+surprised:"F\u00F6rv\u00E5nad",\r
+tongue_out:"Tungan ute",\r
+undecided:"Obest\u00E4md",\r
+wink:"Fl\u00F6rt",\r
+yell:"Skrikandes"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('tr.emotions_dlg',{\r
+title:"\u0130fade ekle",\r
+desc:"\u0130fadeler",\r
+cool:"Haval\u0131",\r
+cry:"A\u011Fla",\r
+embarassed:"Mah\u00E7up",\r
+foot_in_mouth:"A\u011Fz\u0131 kulaklar\u0131nda",\r
+frown:"Ka\u015F \u00E7atm\u0131\u015F",\r
+innocent:"Masum",\r
+kiss:"\u00D6p\u00FCc\u00FCk",\r
+laughing:"Kahkaha",\r
+money_mouth:"Parag\u00F6z",\r
+sealed:"T\u0131p",\r
+smile:"G\u00FCl\u00FCmse",\r
+surprised:"\u015Ea\u015F\u0131rm\u0131\u015F",\r
+tongue_out:"Dil \u00E7\u0131kar",\r
+undecided:"Karars\u0131z",\r
+wink:"G\u00F6z k\u0131rp",\r
+yell:"Esne"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('uk.emotions_dlg',{\r
+title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0441\u043C\u0430\u0439\u043B",\r
+desc:"\u0421\u043C\u0430\u0439\u043B\u0438",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('vi.emotions_dlg',{\r
+title:"Ch\u00E8n bi\u1EC3u t\u01B0\u1EE3ng c\u1EA3m x\u00FAc",\r
+desc:"Bi\u1EC3u t\u01B0\u1EE3ng c\u1EA3m x\u00FAc",\r
+cool:"Cool",\r
+cry:"Cry",\r
+embarassed:"Embarassed",\r
+foot_in_mouth:"Foot in mouth",\r
+frown:"Frown",\r
+innocent:"Innocent",\r
+kiss:"Kiss",\r
+laughing:"Laughing",\r
+money_mouth:"Money mouth",\r
+sealed:"Sealed",\r
+smile:"Smile",\r
+surprised:"Surprised",\r
+tongue_out:"Tongue out",\r
+undecided:"Undecided",\r
+wink:"Wink",\r
+yell:"Yell"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('zh.emotions_dlg',{\r
+title:"\u63D2\u5165\u8868\u60C5",\r
+desc:"\u8868\u60C5\u6E05\u5355",\r
+cool:"\u51B7\u9177",\r
+cry:"\u54ED\u6CE3",\r
+embarassed:"\u5C34\u5C2C",\r
+foot_in_mouth:"\u54A7\u5634",\r
+frown:"\u76B1\u7709",\r
+innocent:"\u5929\u771F",\r
+kiss:"\u543B",\r
+laughing:"\u5927\u7B11",\r
+money_mouth:"\u53D1\u8D22",\r
+sealed:"\u4FDD\u5BC6",\r
+smile:"\u5FAE\u7B11",\r
+surprised:"\u60CA\u5413",\r
+tongue_out:"\u5410\u820C\u5934",\r
+undecided:"\u601D\u8003",\r
+wink:"\u7728\u773C",\r
+yell:"\u53EB\u56B7"\r
+});
\ No newline at end of file
-#id, #name, #hspace, #vspace, #class_name, #align {\r
- width: 100px;\r
-}\r
-\r
-#hspace, #vspace {\r
- width: 50px;\r
-}\r
-\r
-#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode {\r
- width: 100px;\r
-}\r
-\r
-#flash_base, #flash_flashvars {\r
- width: 240px;\r
-}\r
-\r
-#width, #height {\r
- width: 40px;\r
-}\r
-\r
-#src, #media_type {\r
- width: 250px;\r
-}\r
-\r
-#class {\r
- width: 120px;\r
-}\r
-\r
-#prev {\r
- margin: 0;\r
- border: 1px solid black;\r
- width: 99%;\r
- height: 230px;\r
- overflow: auto;\r
-}\r
-\r
-.panel_wrapper div.current {\r
- height: 390px;\r
- overflow: auto;\r
-}\r
-\r
-#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options {\r
- display: none;\r
-}\r
-\r
-.mceAddSelectValue {\r
- background-color: #DDDDDD;\r
-}\r
-\r
-#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume {\r
- width: 70px;\r
-}\r
-\r
-#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume {\r
- width: 70px;\r
-}\r
-\r
-#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks {\r
- width: 70px;\r
-}\r
-\r
-#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle {\r
- width: 90px;\r
-}\r
-\r
-#qt_qtsrc {\r
- width: 200px;\r
-}\r
+#id, #name, #hspace, #vspace, #class_name, #align { width: 100px }\r
+#hspace, #vspace { width: 50px }\r
+#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px }\r
+#flash_base, #flash_flashvars { width: 240px }\r
+#width, #height { width: 40px }\r
+#src, #media_type { width: 250px }\r
+#class { width: 120px }\r
+#prev { margin: 0; border: 1px solid black; width: 380px; height: 230px; overflow: auto }\r
+.panel_wrapper div.current { height: 390px; overflow: auto }\r
+#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none }\r
+.mceAddSelectValue { background-color: #DDDDDD }\r
+#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px }\r
+#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px }\r
+#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px }\r
+#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px }\r
+#qt_qtsrc { width: 200px }\r
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.MediaPlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;function isMediaElm(n){return/^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);};ed.addCommand('mceMedia',function(){ed.windowManager.open({file:url+'/media.htm',width:430+parseInt(ed.getLang('media.delta_width',0)),height:470+parseInt(ed.getLang('media.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('media',{title:'media.desc',cmd:'mceMedia'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('media',n.nodeName=='IMG'&&isMediaElm(n));});ed.onInit.add(function(){var lo={mceItemFlash:'flash',mceItemShockWave:'shockwave',mceItemWindowsMedia:'windowsmedia',mceItemQuickTime:'quicktime',mceItemRealMedia:'realmedia'};if(ed.settings.content_css!==false)ed.dom.loadCSS(url+"/css/content.css");if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.name=='img'){each(lo,function(v,k){if(ed.dom.hasClass(o.node,k)){o.name=v;o.title=ed.dom.getAttrib(o.node,'title');return false;}});}});}if(ed&&ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){if(e.nodeName=='IMG'&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(e.className)){m.add({title:'media.edit',icon:'media',cmd:'mceMedia'});}});}});ed.onBeforeSetContent.add(function(ed,o){var h=o.content;h=h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi,function(a,b,c){var o=t._parse(c);return'<img class="mceItem'+b+'" title="'+ed.dom.encode(c)+'" src="'+url+'/img/trans.gif" width="'+o.width+'" height="'+o.height+'" />'});h=h.replace(/<object([^>]*)>/gi,'<span class="mceItemObject" $1>');h=h.replace(/<embed([^>]*)>/gi,'<span class="mceItemEmbed" $1>');h=h.replace(/<\/(object|embed)([^>]*)>/gi,'</span>');h=h.replace(/<param([^>]*)>/gi,function(a,b){return'<span '+b.replace(/value=/gi,'_value=')+' class="mceItemParam"></span>'});h=h.replace(/\/ class=\"mceItemParam\"><\/span>/gi,'class="mceItemParam"></span>');o.content=h;});ed.onSetContent.add(function(){t._spansToImgs(ed.getBody());});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;if(o.set){t._spansToImgs(o.node);each(dom.select('IMG',o.node),function(n){var p;if(isMediaElm(n)){p=t._parse(n.title);dom.setAttrib(n,'width',dom.getAttrib(n,'width',p.width||100));dom.setAttrib(n,'height',dom.getAttrib(n,'height',p.height||100));}});}if(o.get){each(dom.select('IMG',o.node),function(n){var ci,cb,mt;if(ed.getParam('media_use_script')){if(isMediaElm(n))n.className=n.className.replace(/mceItem/g,'mceTemp');return;}switch(n.className){case'mceItemFlash':ci='d27cdb6e-ae6d-11cf-96b8-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='application/x-shockwave-flash';break;case'mceItemShockWave':ci='166b1bca-3f9c-11cf-8075-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';mt='application/x-director';break;case'mceItemWindowsMedia':ci=ed.getParam('media_wmp6_compatible')?'05589fa1-c356-11ce-bf01-00aa0055595a':'6bf52a52-394a-11d3-b153-00c04f79faa6';cb='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';mt='application/x-mplayer2';break;case'mceItemQuickTime':ci='02bf25d5-8c17-4b23-bc80-d3488abddc6b';cb='http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';mt='video/quicktime';break;case'mceItemRealMedia':ci='cfcdaa03-8be4-11cf-b84b-0020afbbccfa';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='audio/x-pn-realaudio-plugin';break;}if(ci){dom.replace(t._buildObj({classid:ci,codebase:cb,type:mt},n),n);}});}});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/_value=/g,'value=');});if(ed.getParam('media_use_script')){function getAttr(s,n){n=new RegExp(n+'=\"([^\"]+)\"','g').exec(s);return n?ed.dom.decode(n[1]):'';};ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/<img[^>]+>/g,function(im){var cl=getAttr(im,'class');if(/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(cl)){at=t._parse(getAttr(im,'title'));at.width=getAttr(im,'width');at.height=getAttr(im,'height');im='<script type="text/javascript">write'+cl.substring(7)+'({'+t._serialize(at)+'});</script>';}return im;});});}},getInfo:function(){return{longname:'Media',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_buildObj:function(o,n){var ob,ed=this.editor,dom=ed.dom,p=this._parse(n.title);p.width=o.width=dom.getAttrib(n,'width')||100;p.height=o.height=dom.getAttrib(n,'height')||100;ob=dom.create('span',{mce_name:'object',classid:"clsid:"+o.classid,codebase:o.codebase,width:o.width,height:o.height});if(p.src)p.src=ed.convertURL(p.src,'src',n);each(p,function(v,k){if(!/^(width|height|codebase|classid)$/.test(k)){if(o.type=='application/x-mplayer2'&&k=='src')k='url';dom.add(ob,'span',{mce_name:'param',name:k,'_value':v});}});dom.add(ob,'span',tinymce.extend({mce_name:'embed',type:o.type},p));return ob;},_spansToImgs:function(p){var t=this,dom=t.editor.dom,im,ci;each(dom.select('span',p),function(n){if(dom.getAttrib(n,'class')=='mceItemObject'){ci=dom.getAttrib(n,"classid").toLowerCase().replace(/\s+/g,'');switch(ci){case'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':dom.replace(t._createImg('mceItemFlash',n),n);break;case'clsid:166b1bca-3f9c-11cf-8075-444553540000':dom.replace(t._createImg('mceItemShockWave',n),n);break;case'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':case'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':case'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':dom.replace(t._createImg('mceItemWindowsMedia',n),n);break;case'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':dom.replace(t._createImg('mceItemQuickTime',n),n);break;case'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':dom.replace(t._createImg('mceItemRealMedia',n),n);break;default:dom.replace(t._createImg('mceItemFlash',n),n);}return;}if(dom.getAttrib(n,'class')=='mceItemEmbed'){switch(dom.getAttrib(n,'type')){case'application/x-shockwave-flash':dom.replace(t._createImg('mceItemFlash',n),n);break;case'application/x-director':dom.replace(t._createImg('mceItemShockWave',n),n);break;case'application/x-mplayer2':dom.replace(t._createImg('mceItemWindowsMedia',n),n);break;case'video/quicktime':dom.replace(t._createImg('mceItemQuickTime',n),n);break;case'audio/x-pn-realaudio-plugin':dom.replace(t._createImg('mceItemRealMedia',n),n);break;default:dom.replace(t._createImg('mceItemFlash',n),n);}}});},_createImg:function(cl,n){var im,dom=this.editor.dom,pa={},ti='';im=dom.create('img',{src:this.url+'/img/trans.gif',width:dom.getAttrib(n,'width')||100,height:dom.getAttrib(n,'height')||100,'class':cl});each(['id','name','width','height','bgcolor','align','flashvars','src','wmode'],function(na){var v=dom.getAttrib(n,na);if(v)pa[na]=v;});each(dom.select('span',n),function(n){if(dom.hasClass(n,'mceItemParam'))pa[dom.getAttrib(n,'name')]=dom.getAttrib(n,'_value');});if(pa.movie){pa.src=pa.movie;delete pa.movie;}delete pa.width;delete pa.height;im.title=this._serialize(pa);return im;},_parse:function(s){return tinymce.util.JSON.parse('{'+s+'}');},_serialize:function(o){return tinymce.util.JSON.serialize(o).replace(/[{}]/g,'');}});tinymce.PluginManager.add('media',tinymce.plugins.MediaPlugin);})();
\ No newline at end of file
+(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.MediaPlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;function isMediaElm(n){return/^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);};ed.onPreInit.add(function(){ed.serializer.addRules('param[name|value|_value]');});ed.addCommand('mceMedia',function(){ed.windowManager.open({file:url+'/media.htm',width:430+parseInt(ed.getLang('media.delta_width',0)),height:470+parseInt(ed.getLang('media.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('media',{title:'media.desc',cmd:'mceMedia'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('media',n.nodeName=='IMG'&&isMediaElm(n));});ed.onInit.add(function(){var lo={mceItemFlash:'flash',mceItemShockWave:'shockwave',mceItemWindowsMedia:'windowsmedia',mceItemQuickTime:'quicktime',mceItemRealMedia:'realmedia'};if(ed.settings.content_css!==false)ed.dom.loadCSS(url+"/css/content.css");if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.name=='img'){each(lo,function(v,k){if(ed.dom.hasClass(o.node,k)){o.name=v;o.title=ed.dom.getAttrib(o.node,'title');return false;}});}});}if(ed&&ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){if(e.nodeName=='IMG'&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(e.className)){m.add({title:'media.edit',icon:'media',cmd:'mceMedia'});}});}});ed.onBeforeSetContent.add(function(ed,o){var h=o.content;h=h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi,function(a,b,c){var o=t._parse(c);return'<img class="mceItem'+b+'" title="'+ed.dom.encode(c)+'" src="'+url+'/img/trans.gif" width="'+o.width+'" height="'+o.height+'" />'});h=h.replace(/<object([^>]*)>/gi,'<span class="mceItemObject" $1>');h=h.replace(/<embed([^>]*)\/>/gi,'<span class="mceItemEmbed" $1>');h=h.replace(/<embed([^>]*)>/gi,'<span class="mceItemEmbed" $1>');h=h.replace(/<\/(object|embed)([^>]*)>/gi,'</span>');h=h.replace(/<param([^>]*)>/gi,function(a,b){return'<span '+b.replace(/value=/gi,'_value=')+' class="mceItemParam"></span>'});h=h.replace(/\/ class=\"mceItemParam\"><\/span>/gi,'class="mceItemParam"></span>');o.content=h;});ed.onSetContent.add(function(){t._spansToImgs(ed.getBody());});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;if(o.set){t._spansToImgs(o.node);each(dom.select('IMG',o.node),function(n){var p;if(isMediaElm(n)){p=t._parse(n.title);dom.setAttrib(n,'width',dom.getAttrib(n,'width',p.width||100));dom.setAttrib(n,'height',dom.getAttrib(n,'height',p.height||100));}});}if(o.get){each(dom.select('IMG',o.node),function(n){var ci,cb,mt;if(ed.getParam('media_use_script')){if(isMediaElm(n))n.className=n.className.replace(/mceItem/g,'mceTemp');return;}switch(n.className){case'mceItemFlash':ci='d27cdb6e-ae6d-11cf-96b8-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='application/x-shockwave-flash';break;case'mceItemShockWave':ci='166b1bca-3f9c-11cf-8075-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';mt='application/x-director';break;case'mceItemWindowsMedia':ci=ed.getParam('media_wmp6_compatible')?'05589fa1-c356-11ce-bf01-00aa0055595a':'6bf52a52-394a-11d3-b153-00c04f79faa6';cb='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';mt='application/x-mplayer2';break;case'mceItemQuickTime':ci='02bf25d5-8c17-4b23-bc80-d3488abddc6b';cb='http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';mt='video/quicktime';break;case'mceItemRealMedia':ci='cfcdaa03-8be4-11cf-b84b-0020afbbccfa';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='audio/x-pn-realaudio-plugin';break;}if(ci){dom.replace(t._buildObj({classid:ci,codebase:cb,type:mt},n),n);}});}});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/_value=/g,'value=');});if(ed.getParam('media_use_script')){function getAttr(s,n){n=new RegExp(n+'=\"([^\"]+)\"','g').exec(s);return n?ed.dom.decode(n[1]):'';};ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/<img[^>]+>/g,function(im){var cl=getAttr(im,'class');if(/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(cl)){at=t._parse(getAttr(im,'title'));at.width=getAttr(im,'width');at.height=getAttr(im,'height');im='<script type="text/javascript">write'+cl.substring(7)+'({'+t._serialize(at)+'});</script>';}return im;});});}},getInfo:function(){return{longname:'Media',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_buildObj:function(o,n){var ob,ed=this.editor,dom=ed.dom,p=this._parse(n.title);p.width=o.width=dom.getAttrib(n,'width')||100;p.height=o.height=dom.getAttrib(n,'height')||100;ob=dom.create('span',{mce_name:'object',classid:"clsid:"+o.classid,codebase:o.codebase,width:o.width,height:o.height});if(p.src)p.src=ed.convertURL(p.src,'src',n);each(p,function(v,k){if(!/^(width|height|codebase|classid)$/.test(k)){if(o.type=='application/x-mplayer2'&&k=='src')k='url';dom.add(ob,'span',{mce_name:'param',name:k,'_value':v});}});dom.add(ob,'span',tinymce.extend({mce_name:'embed',type:o.type},p));return ob;},_spansToImgs:function(p){var t=this,dom=t.editor.dom,im,ci;each(dom.select('span',p),function(n){if(dom.getAttrib(n,'class')=='mceItemObject'){ci=dom.getAttrib(n,"classid").toLowerCase().replace(/\s+/g,'');switch(ci){case'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':dom.replace(t._createImg('mceItemFlash',n),n);break;case'clsid:166b1bca-3f9c-11cf-8075-444553540000':dom.replace(t._createImg('mceItemShockWave',n),n);break;case'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':case'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':case'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':dom.replace(t._createImg('mceItemWindowsMedia',n),n);break;case'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':dom.replace(t._createImg('mceItemQuickTime',n),n);break;case'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':dom.replace(t._createImg('mceItemRealMedia',n),n);break;default:dom.replace(t._createImg('mceItemFlash',n),n);}return;}if(dom.getAttrib(n,'class')=='mceItemEmbed'){switch(dom.getAttrib(n,'type')){case'application/x-shockwave-flash':dom.replace(t._createImg('mceItemFlash',n),n);break;case'application/x-director':dom.replace(t._createImg('mceItemShockWave',n),n);break;case'application/x-mplayer2':dom.replace(t._createImg('mceItemWindowsMedia',n),n);break;case'video/quicktime':dom.replace(t._createImg('mceItemQuickTime',n),n);break;case'audio/x-pn-realaudio-plugin':dom.replace(t._createImg('mceItemRealMedia',n),n);break;default:dom.replace(t._createImg('mceItemFlash',n),n);}}});},_createImg:function(cl,n){var im,dom=this.editor.dom,pa={},ti='';im=dom.create('img',{src:this.url+'/img/trans.gif',width:dom.getAttrib(n,'width')||100,height:dom.getAttrib(n,'height')||100,'class':cl});each(['id','name','width','height','bgcolor','align','flashvars','src','wmode'],function(na){var v=dom.getAttrib(n,na);if(v)pa[na]=v;});each(dom.select('span',n),function(n){if(dom.hasClass(n,'mceItemParam'))pa[dom.getAttrib(n,'name')]=dom.getAttrib(n,'_value');});if(pa.movie){pa.src=pa.movie;delete pa.movie;}delete pa.width;delete pa.height;im.title=this._serialize(pa);return im;},_parse:function(s){return tinymce.util.JSON.parse('{'+s+'}');},_serialize:function(o){return tinymce.util.JSON.serialize(o).replace(/[{}]/g,'');}});tinymce.PluginManager.add('media',tinymce.plugins.MediaPlugin);})();
\ No newline at end of file
/**\r
- * $Id: editor_plugin_src.js 763 2008-04-03 13:25:45Z spocke $\r
+ * $Id: editor_plugin_src.js 870 2008-06-13 09:25:41Z spocke $\r
*\r
* @author Moxiecode\r
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
return /^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);\r
};\r
\r
+ ed.onPreInit.add(function() {\r
+ // Force in _value parameter this extra parameter is required for older Opera versions\r
+ ed.serializer.addRules('param[name|value|_value]');\r
+ });\r
+\r
// Register commands\r
ed.addCommand('mceMedia', function() {\r
ed.windowManager.open({\r
});\r
\r
h = h.replace(/<object([^>]*)>/gi, '<span class="mceItemObject" $1>');\r
+ h = h.replace(/<embed([^>]*)\/>/gi, '<span class="mceItemEmbed" $1>');\r
h = h.replace(/<embed([^>]*)>/gi, '<span class="mceItemEmbed" $1>');\r
h = h.replace(/<\/(object|embed)([^>]*)>/gi, '</span>');\r
h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<span ' + b.replace(/value=/gi, '_value=') + ' class="mceItemParam"></span>'});\r
pl.name = !pl.name ? 'eobj' : pl.name;\r
pl.align = !pl.align ? '' : pl.align;\r
\r
- h += '<object classid="clsid:' + cls + '" codebase="' + codebase + '" width="' + pl.width + '" height="' + pl.height + '" id="' + pl.id + '" name="' + pl.name + '" align="' + pl.align + '">';\r
+ // Avoid annoying warning about insecure items\r
+ if (!tinymce.isIE || document.location.protocol != 'https:') {\r
+ h += '<object classid="clsid:' + cls + '" codebase="' + codebase + '" width="' + pl.width + '" height="' + pl.height + '" id="' + pl.id + '" name="' + pl.name + '" align="' + pl.align + '">';\r
\r
- for (n in pl) {\r
- h += '<param name="' + n + '" value="' + pl[n] + '">';\r
+ for (n in pl) {\r
+ h += '<param name="' + n + '" value="' + pl[n] + '">';\r
\r
- // Add extra url parameter if it's an absolute URL\r
- if (n == 'src' && pl[n].indexOf('://') != -1)\r
- h += '<param name="url" value="' + pl[n] + '" />';\r
+ // Add extra url parameter if it's an absolute URL\r
+ if (n == 'src' && pl[n].indexOf('://') != -1)\r
+ h += '<param name="url" value="' + pl[n] + '" />';\r
+ }\r
}\r
\r
h += '<embed type="' + type + '" ';\r
for (n in pl)\r
h += n + '="' + pl[n] + '" ';\r
\r
- h += '></embed></object>';\r
+ h += '></embed>';\r
+\r
+ // Avoid annoying warning about insecure items\r
+ if (!tinymce.isIE || document.location.protocol != 'https:')\r
+ h += '</object>';\r
\r
p.innerHTML = "<!-- x --->" + h;\r
}\r
--- /dev/null
+tinyMCE.addI18n('ar.media_dlg',{\r
+title:"\u0625\u062F\u0631\u0627\u062C / edit embedded media",\r
+general:"\u0639\u0627\u0645",\r
+advanced:"\u0645\u062A\u0642\u062F\u0645",\r
+file:"File/URL",\r
+list:"List",\r
+size:"\u0627\u0644\u0623\u0628\u0639\u0627\u062F",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"\u0627\u0644\u0645\u0633\u0627\u0631 cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"\u0627\u0644\u0645\u0633\u0627\u0631",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"\u0623\u0639\u0644\u0649",\r
+align_right:"\u064A\u0645\u064A\u0646",\r
+align_bottom:"\u0623\u0633\u0641\u0644",\r
+align_left:"\u064A\u0633\u0627\u0631",\r
+align_center:"Center",\r
+align_top_left:"\u0623\u0639\u0644\u0649 \u064A\u0633\u0627\u0631",\r
+align_top_right:"\u0623\u0639\u0644\u0649 \u064A\u0645\u064A\u0646",\r
+align_bottom_left:"\u0623\u0633\u0641\u0644 \u064A\u0633\u0627\u0631",\r
+align_bottom_right:"\u0623\u0633\u0641\u0644 \u064A\u0645\u064A\u0646",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bg.media_dlg',{\r
+title:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u043C\u0435\u0434\u0438\u0430\u0442\u0430",\r
+general:"\u041E\u0431\u0449\u0438",\r
+advanced:"\u0417\u0430 \u043D\u0430\u043F\u0440\u0435\u0434\u043D\u0430\u043B\u0438",\r
+file:"\u0424\u0430\u0439\u043B/URL",\r
+list:"\u0421\u043F\u0438\u0441\u044A\u043A",\r
+size:"\u0420\u0430\u0437\u043C\u0435\u0440\u0438",\r
+preview:"\u041F\u0440\u0435\u0433\u043B\u0435\u0434",\r
+constrain_proportions:"\u041E\u0433\u0440\u0430\u043D\u0438\u0447\u0438 \u043F\u0440\u043E\u043F\u043E\u0440\u0446\u0438\u0438\u0442\u0435",\r
+type:"\u0422\u0438\u043F",\r
+id:"Id",\r
+name:"\u0418\u043C\u0435",\r
+class_name:"\u041A\u043B\u0430\u0441",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043F\u0443\u0441\u043A\u0430\u043D\u0435",\r
+loop:"\u041F\u043E\u0432\u0442\u0430\u0440\u044F\u0439",\r
+menu:"\u041F\u043E\u043A\u0430\u0436\u0438 \u043C\u0435\u043D\u044E",\r
+quality:"\u041A\u0430\u0447\u0435\u0441\u0442\u0432\u043E",\r
+scale:"\u041F\u0440\u0435\u043E\u0440\u0430\u0437\u043C\u0435\u0440\u0438",\r
+align:"\u041F\u043E\u0434\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"\u0424\u043E\u043D",\r
+base:"\u041E\u0441\u043D\u043E\u0432\u0430",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"\u041A\u0435\u0448",\r
+hidden:"\u0421\u043A\u0440\u0438\u0442",\r
+controller:"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u0435\u0440",\r
+kioskmode:"Kiosk \u0440\u0435\u0436\u0438\u043C",\r
+playeveryframe:"\u041F\u043E\u043A\u0430\u0437\u0432\u0430\u0439 \u0432\u0441\u0435\u043A\u0438 \u043A\u0430\u0434\u044A\u0440",\r
+targetcache:"\u0426\u0435\u043B\u0435\u0432\u0438 \u043A\u0435\u0448",\r
+correction:"\u0411\u0435\u0437 \u043F\u043E\u043F\u0440\u0430\u0432\u043A\u0438",\r
+enablejavascript:"\u0412\u043A\u043B\u044E\u0447\u0438 JavaScript",\r
+starttime:"\u0412\u0440\u0435\u043C\u0435 \u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435",\r
+endtime:"\u0412\u0440\u0435\u043C\u0435 \u0437\u0430 \u043A\u0440\u0430\u0439",\r
+href:"Href",\r
+qtsrcchokespeed:"\u041F\u0440\u0435\u0434\u0435\u043B\u043D\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442",\r
+target:"\u0426\u0435\u043B",\r
+volume:"\u0421\u0438\u043B\u0430 \u043D\u0430 \u0437\u0432\u0443\u043A\u0430",\r
+autostart:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u0441\u0442\u0430\u0440\u0442\u0438\u0440\u0430\u043D\u0435",\r
+enabled:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D",\r
+fullscreen:"\u0426\u044F\u043B \u0435\u043A\u0440\u0430\u043D",\r
+invokeurls:"Invoke URLs",\r
+mute:"\u0417\u0430\u0433\u043B\u0443\u0448\u0438",\r
+stretchtofit:"\u0420\u0430\u0437\u043F\u044A\u043D\u0438",\r
+windowlessvideo:"\u0412\u0438\u0434\u0435\u043E \u0431\u0435\u0437 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446",\r
+balance:"\u0411\u0430\u043B\u0430\u043D\u0441",\r
+baseurl:"\u0411\u0430\u0437\u043E\u0432\u043E URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"\u0422\u0435\u043A\u0443\u0449 \u043C\u0430\u0440\u043A\u0435\u0440",\r
+currentposition:"\u0422\u0435\u043A\u0443\u0449\u0430 \u043F\u043E\u0437\u0438\u0446\u0438\u044F",\r
+defaultframe:"\u041D\u0430\u0447\u0430\u043B\u0435\u043D \u043A\u0430\u0434\u044A\u0440",\r
+playcount:"\u0411\u0440\u043E\u0439 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u044F",\r
+rate:"\u0411\u044A\u0440\u0437\u0438\u043D\u0430",\r
+uimode:"UI \u0440\u0435\u0436\u0438\u043C",\r
+flash_options:"\u041E\u043F\u0446\u0438\u0438 \u0437\u0430 Flash",\r
+qt_options:"\u041E\u043F\u0446\u0438\u0438 \u0437\u0430 Quicktime",\r
+wmp_options:"\u041E\u043F\u0446\u0438\u0438 \u0437\u0430 Windows media player",\r
+rmp_options:"\u041E\u043F\u0446\u0438\u0438 \u0437\u0430 Real media player",\r
+shockwave_options:"\u041E\u043F\u0446\u0438\u0438 \u0437\u0430 Shockwave",\r
+autogotourl:"\u041E\u0442\u0438\u0434\u0438 \u043D\u0430 URL",\r
+center:"\u0426\u0435\u043D\u0442\u044A\u0440",\r
+imagestatus:"\u0421\u0442\u0430\u0442\u0443\u0441 \u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+maintainaspect:"\u041F\u043E\u0434\u0434\u044A\u0440\u0436\u0430\u0439 \u0441\u044A\u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435\u0442\u043E",\r
+nojava:"\u0411\u0435\u0437 java",\r
+prefetch:"\u0421\u0432\u0430\u043B\u0438 \u043F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u043D\u043E",\r
+shuffle:"\u0420\u0430\u0437\u0431\u044A\u0440\u043A\u0430\u0439",\r
+console:"\u041A\u043E\u043D\u0437\u043E\u043B\u0430",\r
+numloop:"\u0411\u0440\u043E\u0439 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D\u0438\u044F",\r
+controls:"\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"\u0421\u0442\u0438\u043B \u043D\u0430 \u0440\u0430\u0437\u043F\u044A\u0432\u0430\u043D\u0435",\r
+swstretchhalign:"\u0420\u0430\u0437\u043F\u044A\u0432\u0430\u043D\u0435 H-Align",\r
+swstretchvalign:"\u0420\u0430\u0437\u043F\u044A\u0432\u0430\u043D\u0435 V-Align",\r
+sound:"\u0417\u0432\u0443\u043A",\r
+progress:"\u041F\u0440\u043E\u0433\u0440\u0435\u0441",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"\u041F\u043E\u0442\u043E\u0447\u043D\u0438\u0442\u0435 rtsp \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0435 \u0434\u043E\u0431\u0430\u0432\u044F\u0442 \u0432 QT Src \u043F\u043E\u043B\u0435\u0442\u043E \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0430 \u0437\u0430 \u043D\u0430\u043F\u0440\u0435\u0434\u043D\u0430\u043B\u0438.\n\u0422\u0440\u044F\u0431\u0432\u0430 \u0441\u044A\u0449\u043E \u0434\u0430 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u0435 \u043D\u0435 \u043F\u043E\u0442\u043E\u0447\u043D\u0430 \u0432\u0435\u0440\u0441\u0438\u044F \u0432 Src \u043F\u043E\u043B\u0435\u0442\u043E..",\r
+align_top:"\u0413\u043E\u0440\u0435",\r
+align_right:"\u0414\u044F\u0441\u043D\u043E",\r
+align_bottom:"\u0414\u043E\u043B\u0443",\r
+align_left:"\u041B\u044F\u0432\u043E",\r
+align_center:"\u0426\u0435\u043D\u0442\u044A\u0440",\r
+align_top_left:"\u0413\u043E\u0440\u0435 \u043B\u044F\u0432\u043E",\r
+align_top_right:"\u0413\u043E\u0440\u0435 \u0434\u044F\u0441\u043D\u043E",\r
+align_bottom_left:"\u0414\u043E\u043B\u0443 \u043B\u044F\u0432\u043E",\r
+align_bottom_right:"\u0414\u043E\u043B\u0443 \u0434\u044F\u0441\u043D\u043E",\r
+flv_options:"\u0412\u0438\u0434\u0435\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 Flash",\r
+flv_scalemode:"\u0420\u0435\u0436\u0438\u043C \u043D\u0430 \u043F\u0440\u0435\u043E\u0440\u0430\u0437\u043C\u0435\u0440\u044F\u0432\u0430\u043D\u0435",\r
+flv_buffer:"\u0411\u0443\u0444\u0435\u0440",\r
+flv_startimage:"\u041D\u0430\u0447\u0430\u043B\u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+flv_starttime:"\u041D\u0430\u0447\u0430\u043B\u043D\u043E \u0432\u0440\u0435\u043C\u0435",\r
+flv_defaultvolume:"\u0421\u0438\u043B\u0430 \u043D\u0430 \u0437\u0432\u0443\u043A\u0430 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435",\r
+flv_hiddengui:"\u0421\u043A\u0440\u0438\u0442\u043E \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435",\r
+flv_autostart:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u043D \u0441\u0442\u0430\u0440\u0442",\r
+flv_loop:"\u041F\u043E\u0432\u0442\u0430\u0440\u044F\u0439",\r
+flv_showscalemodes:"\u041F\u043E\u043A\u0430\u0436\u0438 \u0440\u0435\u0436\u0438\u043C\u0438\u0442\u0435 \u043D\u0430 \u043F\u0440\u0435\u043E\u0440\u0430\u0437\u043C\u0435\u0440\u044F\u0432\u0430\u043D\u0435",\r
+flv_smoothvideo:"\u0413\u043B\u0430\u0434\u043A\u043E \u0432\u0438\u0434\u0435\u043E",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bs.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"General",\r
+advanced:"Advanced",\r
+file:"File/URL",\r
+list:"List",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ca.media_dlg',{\r
+title:"Insereix / edita mitj\u00E0 encastat",\r
+general:"General",\r
+advanced:"Avan\u00E7at",\r
+file:"Fitxer/URL",\r
+list:"Llista",\r
+size:"Dimensions",\r
+preview:"Vista pr\u00E8via",\r
+constrain_proportions:"Constreny les proporcions",\r
+type:"Tipus",\r
+id:"Id",\r
+name:"Nom",\r
+class_name:"Classe",\r
+vspace:"Espaiat V",\r
+hspace:"Espaiat H",\r
+play:"Auto reprodueix",\r
+loop:"Cicle",\r
+menu:"Mostra el men\u00FA",\r
+quality:"Qualitat",\r
+scale:"Escala",\r
+align:"Alineaci\u00F3",\r
+salign:"Al\u00EDniaci\u00F3",\r
+wmode:"Mode de finestra",\r
+bgcolor:"Fons",\r
+base:"Base",\r
+flashvars:"Variables Flash",\r
+liveconnect:"Connexi\u00F3 directa SW",\r
+autohref:"AutoHREF",\r
+cache:"Cau",\r
+hidden:"Ocult",\r
+controller:"Controlador",\r
+kioskmode:"Mode kiosk",\r
+playeveryframe:"Reprodueix cada marc",\r
+targetcache:"Cau objectiu",\r
+correction:"Sense correcci\u00F3",\r
+enablejavascript:"Activa JavaScript",\r
+starttime:"Hora inicial",\r
+endtime:"Hora final",\r
+href:"Href",\r
+qtsrcchokespeed:"restringeix la velocitat",\r
+target:"Objectiu",\r
+volume:"Volum",\r
+autostart:"Auto inici",\r
+enabled:"Activat",\r
+fullscreen:"Pantalla completa",\r
+invokeurls:"Invoca URLs",\r
+mute:"Sense so",\r
+stretchtofit:"Estira per encaixar",\r
+windowlessvideo:"V\u00EDdeo sense finestra",\r
+balance:"Balan\u00E7",\r
+baseurl:"URL base",\r
+captioningid:"Id del t\u00EDtol",\r
+currentmarker:"Marcador actual",\r
+currentposition:"Posici\u00F3 actual",\r
+defaultframe:"Marc per defecte",\r
+playcount:"Recompte de reproduccions",\r
+rate:"Ritme",\r
+uimode:"Mode de la UI",\r
+flash_options:"Opcions Flash",\r
+qt_options:"Opcions Quicktime",\r
+wmp_options:"Opcions Windows Media Player",\r
+rmp_options:"Opcions Real Meedia Player",\r
+shockwave_options:"Opcions Shockwave",\r
+autogotourl:"URL Auto goto",\r
+center:"Centrat",\r
+imagestatus:"Estat de la imatge",\r
+maintainaspect:"Matingues l'aspecte",\r
+nojava:"Sense java",\r
+prefetch:"Precerca",\r
+shuffle:"Barreja",\r
+console:"Consola",\r
+numloop:"N\u00BA de cicles",\r
+controls:"Controls",\r
+scriptcallbacks:"Retorns a script",\r
+swstretchstyle:"Estil d'estirament",\r
+swstretchhalign:"Estirament de l'alineaci\u00F3 H",\r
+swstretchvalign:"Estirament de l'alineaci\u00F3 V",\r
+sound:"So",\r
+progress:"Progr\u00E9s",\r
+qtsrc:"Font QT",\r
+qt_stream_warn:"Els recursos rtsp stream no s'han d'afegir al camp Font QT sota la pestanya Avan\u00E7ada.\nhas d'afegir tamb\u00E9 una versi\u00F3 no-stream al camp Font.",\r
+align_top:"Dalt",\r
+align_right:"Dreta",\r
+align_bottom:"Baix",\r
+align_left:"Esquerra",\r
+align_center:"Centrat",\r
+align_top_left:"Dalt esquerra",\r
+align_top_right:"Dalt dreta",\r
+align_bottom_left:"Baix esquerra",\r
+align_bottom_right:"Baix dreta",\r
+flv_options:"Opcions de v\u00EDdeo Flash",\r
+flv_scalemode:"Mode d'escala",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Imatge inicial",\r
+flv_starttime:"Hora inicial",\r
+flv_defaultvolume:"Volum per defecte",\r
+flv_hiddengui:"GUI Amagada",\r
+flv_autostart:"Auto inici",\r
+flv_loop:"Cicle",\r
+flv_showscalemodes:"Mostra els modes d'escala",\r
+flv_smoothvideo:"V\u00EDdeo suau",\r
+flv_jscallback:"Retorn JS"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('cs.media_dlg',{\r
+title:"Vlo\u017Eit/editovat vkl\u00E1dan\u00E1 m\u00E9dia",\r
+general:"Hlavn\u00ED",\r
+advanced:"Pokro\u010Dil\u00E9",\r
+file:"Soubor/URL",\r
+list:"Seznam",\r
+size:"Rozm\u011Bry",\r
+preview:"N\u00E1hled",\r
+constrain_proportions:"Zachovat proporce",\r
+type:"Typ",\r
+id:"ID",\r
+name:"N\u00E1zev",\r
+class_name:"T\u0159\u00EDda",\r
+vspace:"Vert. odsazen\u00ED",\r
+hspace:"Horiz. odsazen\u00ED",\r
+play:"AutoP\u0159ehr\u00E1v\u00E1n\u00ED",\r
+loop:"Smy\u010Dka",\r
+menu:"Zobrazovat menu",\r
+quality:"Kvalita",\r
+scale:"Pom\u011Br",\r
+align:"Zarovn\u00E1n\u00ED",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Pozad\u00ED",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Zapnout JavaScript",\r
+starttime:"Po\u010D\u00E1te\u010Dn\u00ED \u010Das",\r
+endtime:"\u010Cas ukon\u010Den\u00ED",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"C\u00EDl",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Opakov\u00E1n\u00ED",\r
+console:"Konzola",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Skryt\u00E9 GUI",\r
+flv_autostart:"Autostart",\r
+flv_loop:"Smy\u010Dka",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Vyhlazen\u00E9 video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('da.media_dlg',{\r
+title:"Inds\u00E6t/rediger indlejret mediefil",\r
+general:"Generelt",\r
+advanced:"Advanceret",\r
+file:"Fil/URL",\r
+list:"Liste",\r
+size:"Dimensioner",\r
+preview:"Vis udskrift",\r
+constrain_proportions:"Bevar proportioner",\r
+type:"Type",\r
+id:"Id",\r
+name:"Navn",\r
+class_name:"Klasse",\r
+vspace:"V-afstand",\r
+hspace:"H-afstand",\r
+play:"Start",\r
+loop:"Gentag",\r
+menu:"Vis menu",\r
+quality:"Kvalitet",\r
+scale:"Skaler",\r
+align:"Juster",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Baggrund",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Skjul",\r
+controller:"Controller",\r
+kioskmode:"Kiosk tilstand",\r
+playeveryframe:"Afsplil alle rammer",\r
+targetcache:"M\u00E5l cache",\r
+correction:"Ingen korrektion",\r
+enablejavascript:"Tillad JavaScript",\r
+starttime:"Starttidspunkt",\r
+endtime:"Sluttidspunkt",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke hastighed",\r
+target:"M\u00E5l",\r
+volume:"Lydstyrke",\r
+autostart:"Afspil automatisk",\r
+enabled:"Valgt",\r
+fullscreen:"Fulssk\u00E6rm",\r
+invokeurls:"Aktiver URL'er",\r
+mute:"Lydl\u00F8s",\r
+stretchtofit:"Str\u00E6k for at tilpasse",\r
+windowlessvideo:"Vinduesl\u00F8s video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Aktuel mark\u00F8r",\r
+currentposition:"Aktuel position",\r
+defaultframe:"Standard ramme",\r
+playcount:"Afspil indhold",\r
+rate:"Vurder",\r
+uimode:"UI tilstand",\r
+flash_options:"Flash egenskaber",\r
+qt_options:"Quicktime egenskaber",\r
+wmp_options:"Windows media player egenskaber",\r
+rmp_options:"Real media player egenskaber",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto g\u00E5 til URL",\r
+center:"Center",\r
+imagestatus:"Billedestatus",\r
+maintainaspect:"Bevar aspekt",\r
+nojava:"Ingen java",\r
+prefetch:"Forh\u00E5ndshent",\r
+shuffle:"Bland",\r
+console:"Konsol",\r
+numloop:"Antal loops",\r
+controls:"Kontroller",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Str\u00E6k stil",\r
+swstretchhalign:"Str\u00E6k H-justering",\r
+swstretchvalign:"Str\u00E6k V-justering",\r
+sound:"Lyd",\r
+progress:"Fremskridt",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamede rtsp resourcer skal tilf\u00F8jes til QT Src feltet under tabben avanceret.\nDu skal ogs\u00E5 tilf\u00F8je en ikke streamet version til Src feltet..",\r
+align_top:"Top",\r
+align_right:"H\u00F8jret",\r
+align_bottom:"Bund",\r
+align_left:"Venstre",\r
+align_center:"Centreret",\r
+align_top_left:"\u00D8verste venstre hj\u00F8rne",\r
+align_top_right:"\u00D8verste h\u00F8jre hj\u00F8rne",\r
+align_bottom_left:"Nederste venstre hj\u00F8rne",\r
+align_bottom_right:"\u00D8verste h\u00F8jre hj\u00F8rne",\r
+flv_options:"Flash video egenskaber",\r
+flv_scalemode:"Skaleringstilstand",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start billede",\r
+flv_starttime:"Starttidspunkt",\r
+flv_defaultvolume:"Standard lydstyrke",\r
+flv_hiddengui:"Skjul sk\u00E6rmbillede",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Gentag",\r
+flv_showscalemodes:"Vi skaleringstilstande",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('de.media_dlg',{\r
+title:"Multimedia-Inhalte einf\u00FCgen / bearbeiten",\r
+general:"Allgemein",\r
+advanced:"Erweitert",\r
+file:"Datei/URL",\r
+list:"Liste",\r
+size:"Abmessungen",\r
+preview:"Vorschau",\r
+constrain_proportions:"Proportionen erhalten",\r
+type:"Typ",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"CSS-Klasse",\r
+vspace:"Vertikaler Abstand",\r
+hspace:"Horizontaler Abstand",\r
+play:"Automatisches Abspielen",\r
+loop:"Wiederholung",\r
+menu:"Men\u00FC anzeigen",\r
+quality:"Qualit\u00E4t",\r
+scale:"Skalierung",\r
+align:"Ausrichtung",\r
+salign:"S-Ausrichtung",\r
+wmode:"WMode",\r
+bgcolor:"Hintergrund",\r
+base:"Base",\r
+flashvars:"Flashvariablen",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Zwischenspeicher",\r
+hidden:"Versteckt",\r
+controller:"Controller",\r
+kioskmode:"Kioskmodus",\r
+playeveryframe:"Jeden Frame abspielen",\r
+targetcache:"Ziel zwischenspeichern",\r
+correction:"Ohne Korrektur",\r
+enablejavascript:"JavaScript aktivieren",\r
+starttime:"Startzeitpunkt",\r
+endtime:"Endzeitpunkt",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Ziel",\r
+volume:"Lautst\u00E4rke",\r
+autostart:"Autostart",\r
+enabled:"Aktiviert",\r
+fullscreen:"Vollbild",\r
+invokeurls:"Invoke URLs",\r
+mute:"Stumm",\r
+stretchtofit:"Anzeigefl\u00E4che an verf\u00FCgbaren Platz anpassen",\r
+windowlessvideo:"Fensterloses Video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Aktueller Marker",\r
+currentposition:"Aktuelle Position",\r
+defaultframe:"Frame-Voreinstellung",\r
+playcount:"Z\u00E4hler",\r
+rate:"Rate",\r
+uimode:"UI Modus",\r
+flash_options:"Flash-Optionen",\r
+qt_options:"Quicktime-Optionen",\r
+wmp_options:"Optionen f\u00FCr Windows Media Player",\r
+rmp_options:"Optionen f\u00FCr Real Media Player",\r
+shockwave_options:"Shockwave-Optionen",\r
+autogotourl:"Auto goto URL",\r
+center:"Zentriert",\r
+imagestatus:"Bildstatus",\r
+maintainaspect:"Bildverh\u00E4ltnis beibehalten",\r
+nojava:"Kein Java",\r
+prefetch:"Prefetch",\r
+shuffle:"Zuf\u00E4llige Wiedergabe",\r
+console:"Konsole",\r
+numloop:"Anzahl Wiederholungen",\r
+controls:"Steuerung",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Ausrichtung",\r
+swstretchvalign:"Stretch V-Ausrichtung",\r
+sound:"Ton",\r
+progress:"Fortschritt",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"In den Erweiterten Einstellungen sollten im Feld 'QT Src' gestreamte rtsp Resourcen hinzugef\u00FCgt werden.\nzus\u00E4tzlich sollten Sie dort auch eine nicht-gestreamte Resource angeben.",\r
+align_top:"Oben",\r
+align_right:"Rechts",\r
+align_bottom:"Unten",\r
+align_left:"Links",\r
+align_center:"Zentriert",\r
+align_top_left:"Oben Links",\r
+align_top_right:"Oben Rechts",\r
+align_bottom_left:"Unten Links",\r
+align_bottom_right:"Unten Rechts",\r
+flv_options:"Optionen f\u00FCr Flash Video",\r
+flv_scalemode:"Skalierungsmodus",\r
+flv_buffer:"Puffer",\r
+flv_startimage:"Startbild",\r
+flv_starttime:"Startzeitpunkt",\r
+flv_defaultvolume:"Standardlautst\u00E4rke",\r
+flv_hiddengui:"Versteckte GUI",\r
+flv_autostart:"Autostart",\r
+flv_loop:"Wiederholung",\r
+flv_showscalemodes:"Skalierungsmodi anzeigen",\r
+flv_smoothvideo:"Smooth Video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('el.media_dlg',{\r
+title:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B5\u03BD\u03C3\u03C9\u03BC\u03B1\u03C4\u03C9\u03BC\u03AD\u03BD\u03C9\u03BD media",\r
+general:"\u0393\u03B5\u03BD\u03B9\u03BA\u03AC",\r
+advanced:"\u0393\u03B9\u03B1 \u03C0\u03C1\u03BF\u03C7\u03C9\u03C1\u03B7\u03BC\u03AD\u03BD\u03BF\u03C5\u03C2",\r
+file:"\u0391\u03C1\u03C7\u03B5\u03AF\u03BF/URL",\r
+list:"\u039B\u03AF\u03C3\u03C4\u03B1",\r
+size:"\u0394\u03B9\u03B1\u03C3\u03C4\u03AC\u03C3\u03B5\u03B9\u03C2",\r
+preview:"\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7",\r
+constrain_proportions:"\u0394\u03B9\u03B1\u03C4\u03AE\u03C1\u03B7\u03C3\u03B7 \u03B1\u03BD\u03B1\u03BB\u03BF\u03B3\u03AF\u03B1\u03C2 \u03C0\u03BB. - \u03CD\u03C8\u03BF\u03C5\u03C2",\r
+type:"\u03A4\u03CD\u03C0\u03BF\u03C2",\r
+id:"Id",\r
+name:"\u038C\u03BD\u03BF\u03BC\u03B1",\r
+class_name:"\u039A\u03BB\u03AC\u03C3\u03B7",\r
+vspace:"\u0391\u03C0\u03CC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03BA\u03AC\u03B8\u03B5\u03C4\u03B7",\r
+hspace:"\u0391\u03C0\u03CC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03BF\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03B1",\r
+play:"\u0391\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03BF \u03B5\u03BA\u03BA\u03AF\u03BD\u03B7\u03C3\u03B7",\r
+loop:"\u0395\u03C0\u03B1\u03BD\u03AC\u03BB\u03B7\u03C8\u03B7",\r
+menu:"\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03BC\u03B5\u03BD\u03BF\u03CD",\r
+quality:"\u03A0\u03BF\u03B9\u03CC\u03C4\u03B7\u03C4\u03B1",\r
+scale:"\u039A\u03BB\u03AF\u03BC\u03B1\u03BA\u03B1",\r
+align:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"\u03A6\u03CC\u03BD\u03C4\u03BF",\r
+base:"\u0392\u03AC\u03C3\u03B7",\r
+flashvars:"\u039C\u03B5\u03C4\u03B1\u03B2\u03BB\u03B7\u03C4\u03AD\u03C2 Flash",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"\u039C\u03BD\u03AE\u03BC\u03B7 cache",\r
+hidden:"\u039A\u03C1\u03C5\u03C6\u03CC",\r
+controller:"\u0395\u03BB\u03B5\u03B3\u03BA\u03C4\u03AE\u03C2",\r
+kioskmode:"\u039B\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1 Kiosk",\r
+playeveryframe:"\u03A0\u03B1\u03AF\u03BE\u03B9\u03BC\u03BF \u03CC\u03BB\u03C9\u03BD \u03C4\u03C9\u03BD \u03BA\u03B1\u03C1\u03AD",\r
+targetcache:"\u039C\u03BD\u03AE\u03BC\u03B7 cache \u03C3\u03C4\u03CC\u03C7\u03BF\u03C5",\r
+correction:"\u03A7\u03C9\u03C1\u03AF\u03C2 \u03B4\u03B9\u03CC\u03C1\u03B8\u03C9\u03C3\u03B7",\r
+enablejavascript:"\u0395\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 JavaScript",\r
+starttime:"\u03A7\u03C1\u03CC\u03BD\u03BF\u03C2 \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7\u03C2",\r
+endtime:"\u03A7\u03C1\u03CC\u03BD\u03BF\u03C2 \u03BB\u03AE\u03BE\u03B7\u03C2",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"\u03A3\u03C4\u03CC\u03C7\u03BF\u03C2",\r
+volume:"\u0388\u03BD\u03C4\u03B1\u03C3\u03B7",\r
+autostart:"\u0391\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B7 \u03B5\u03BA\u03BA\u03AF\u03BD\u03B7\u03C3\u03B7",\r
+enabled:"\u0395\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7",\r
+fullscreen:"\u03A0\u03BB\u03AE\u03C1\u03B7\u03C2 \u03BF\u03B8\u03CC\u03BD\u03B7",\r
+invokeurls:"\u039A\u03BB\u03AE\u03C3\u03B7 URLs",\r
+mute:"\u03A3\u03AF\u03B3\u03B1\u03C3\u03B7",\r
+stretchtofit:"\u0395\u03C0\u03AD\u03BA\u03C4\u03B1\u03C3\u03B7 \u03CE\u03C3\u03C4\u03B5 \u03BD\u03B1 \u03C7\u03C9\u03C1\u03AD\u03C3\u03B5\u03B9",\r
+windowlessvideo:"\u0392\u03AF\u03BD\u03C4\u03B5\u03BF \u03C7\u03C9\u03C1\u03AF\u03C2 \u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF",\r
+balance:"\u0399\u03C3\u03BF\u03C1\u03C1\u03BF\u03C0\u03AF\u03B1",\r
+baseurl:"URL \u03B2\u03AC\u03C3\u03B7\u03C2",\r
+captioningid:"Captioning id",\r
+currentmarker:"\u03A4\u03C1\u03AD\u03C7\u03BF\u03BD \u03C3\u03B7\u03BC\u03AC\u03B4\u03B9",\r
+currentposition:"\u03A4\u03C1\u03AD\u03C7\u03BF\u03C5\u03C3\u03B1 \u03B8\u03AD\u03C3\u03B7",\r
+defaultframe:"\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF \u03BA\u03B1\u03C1\u03AD",\r
+playcount:"\u03A0\u03CC\u03C3\u03B5\u03C2 \u03C6\u03BF\u03C1\u03AD\u03C2 \u03B8\u03B1 \u03C0\u03B1\u03AF\u03BE\u03B5\u03B9",\r
+rate:"\u03A1\u03C5\u03B8\u03BC\u03CC\u03C2",\r
+uimode:"\u039B\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1 UI",\r
+flash_options:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AD\u03C2 Flash",\r
+qt_options:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AD\u03C2 Quicktime",\r
+wmp_options:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AD\u03C2 Windows media player",\r
+rmp_options:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AD\u03C2 Real media player",\r
+shockwave_options:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AD\u03C2 Shockwave",\r
+autogotourl:"\u0391\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B7 \u03BC\u03B5\u03C4\u03AC\u03B2\u03B1\u03C3\u03B7 \u03C3\u03C4\u03BF URL",\r
+center:"\u039A\u03AD\u03BD\u03C4\u03C1\u03BF",\r
+imagestatus:"\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+maintainaspect:"\u0394\u03B9\u03B1\u03C4\u03AE\u03C1\u03B7\u03C3\u03B7 \u03B1\u03BD\u03B1\u03BB\u03BF\u03B3\u03AF\u03B1\u03C2 \u03C0\u03BB. - \u03CD\u03C8\u03BF\u03C5\u03C2",\r
+nojava:"\u03A7\u03C9\u03C1\u03AF\u03C2 java",\r
+prefetch:"\u03A0\u03C1\u03BF\u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7",\r
+shuffle:"\u03A4\u03C5\u03C7\u03B1\u03AF\u03B1 \u03C3\u03B5\u03B9\u03C1\u03AC",\r
+console:"\u039A\u03BF\u03BD\u03C3\u03CC\u03BB\u03B1",\r
+numloop:"\u03A0\u03CC\u03C3\u03B5\u03C2 \u03C6\u03BF\u03C1\u03AD\u03C2 \u03B8\u03B1 \u03C0\u03B1\u03AF\u03BE\u03B5\u03B9",\r
+controls:"\u03A7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C1\u03B9\u03B1",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"\u03A3\u03C4\u03C5\u03BB \u03B5\u03C0\u03AD\u03BA\u03C4\u03B1\u03C3\u03B7\u03C2",\r
+swstretchhalign:"\u039F\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03B1 \u03B5\u03C0\u03AD\u03BA\u03C4\u03B1\u03C3\u03B7",\r
+swstretchvalign:"\u039A\u03B1\u03C4\u03B1\u03BA\u03CC\u03C1\u03C5\u03C6\u03B7 \u03B5\u03C0\u03AD\u03BA\u03C4\u03B1\u03C3\u03B7",\r
+sound:"\u0389\u03C7\u03BF\u03C2",\r
+progress:"\u03A0\u03C1\u03CC\u03BF\u03B4\u03BF\u03C2",\r
+qtsrc:"\u03A0\u03B7\u03B3\u03AE \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF\u03C5",\r
+qt_stream_warn:"\u03A0\u03B7\u03B3\u03AD\u03C2 \u03C1\u03BF\u03CE\u03BD rtsp \u03B8\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03C4\u03B5\u03B8\u03BF\u03CD\u03BD \u03C3\u03C4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF \u03A0\u03B7\u03B3\u03AE QT \u03BA\u03AC\u03C4\u03C9 \u03B1\u03C0\u03CC \u03C4\u03B7\u03BD \u03BA\u03B1\u03C1\u03C4\u03AD\u03BB\u03B1 \u0393\u03B9\u03B1 \u03C0\u03C1\u03BF\u03C7\u03C9\u03C1\u03B7\u03BC\u03AD\u03BD\u03BF\u03C5\u03C2.\n\u0395\u03C0\u03AF\u03C3\u03B7\u03C2 \u03BA\u03B1\u03BB\u03CC \u03B8\u03B1 \u03AE\u03C4\u03B1\u03BD \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03C0\u03BB\u03AE (\u03CC\u03C7\u03B9 \u03C1\u03BF\u03AE\u03C2) \u03C0\u03B7\u03B3\u03AE..",\r
+align_top:"\u03A0\u03AC\u03BD\u03C9",\r
+align_right:"\u0394\u03B5\u03BE\u03B9\u03AC",\r
+align_bottom:"\u039A\u03AC\u03C4\u03C9",\r
+align_left:"\u0391\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC",\r
+align_center:"\u039A\u03AD\u03BD\u03C4\u03C1\u03BF",\r
+align_top_left:"\u03A0\u03AC\u03BD\u03C9 \u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC",\r
+align_top_right:"\u03A0\u03AC\u03BD\u03C9 \u03B4\u03B5\u03BE\u03B9\u03AC",\r
+align_bottom_left:"\u039A\u03AC\u03C4\u03C9 \u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC",\r
+align_bottom_right:"\u039A\u03AC\u03C4\u03C9 \u03B4\u03B5\u03BE\u03B9\u03AC",\r
+flv_options:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AD\u03C2 \u03B2\u03AF\u03BD\u03C4\u03B5\u03BF Flash",\r
+flv_scalemode:"\u039B\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1 \u03BA\u03BB\u03AF\u03BC\u03B1\u03BA\u03B1\u03C2",\r
+flv_buffer:"\u0395\u03BD\u03B4\u03B9\u03AC\u03BC\u03B5\u03C3\u03B7 \u03BC\u03BD\u03AE\u03BC\u03B7",\r
+flv_startimage:"\u0395\u03B9\u03BA\u03CC\u03BD\u03B1 \u03B1\u03C1\u03C7\u03AE\u03C2",\r
+flv_starttime:"\u03A7\u03C1\u03CC\u03BD\u03BF\u03C2 \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7\u03C2",\r
+flv_defaultvolume:"\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03B7 \u03AD\u03BD\u03C4\u03B1\u03C3\u03B7",\r
+flv_hiddengui:"\u039A\u03C1\u03C5\u03BC\u03BC\u03AD\u03BD\u03BF GUI",\r
+flv_autostart:"\u0391\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B7 \u03B5\u03BA\u03BA\u03AF\u03BD\u03B7\u03C3\u03B7",\r
+flv_loop:"\u0395\u03C0\u03B1\u03BD\u03AC\u03BB\u03B7\u03C8\u03B7",\r
+flv_showscalemodes:"\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03BB\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03B9\u03CE\u03BD \u03BA\u03BB\u03AF\u03BC\u03B1\u03BA\u03B1\u03C2",\r
+flv_smoothvideo:"\u039F\u03BC\u03B1\u03BB\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2 \u03B2\u03AF\u03BD\u03C4\u03B5\u03BF",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('es.media_dlg',{\r
+title:"Insertar/editar medio embebido",\r
+general:"General",\r
+advanced:"Avanzado",\r
+file:"Archivo/URL",\r
+list:"Lista",\r
+size:"Dimensiones",\r
+preview:"Vista Previa",\r
+constrain_proportions:"Bloquear relaci\u00F3n de aspecto",\r
+type:"Tipo",\r
+id:"Id",\r
+name:"Nombre",\r
+class_name:"Clase",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Comienzo Autom\u00E1tico",\r
+loop:"Repetitivo",\r
+menu:"Mostrar Men\u00FA",\r
+quality:"Calidad",\r
+scale:"Scale",\r
+align:"Alineaci\u00F3n",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Fondo",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cach\u00E9",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Reproducir todo los frames",\r
+targetcache:"Target cache",\r
+correction:"Sin correci\u00F3n",\r
+enablejavascript:"Habilitar JavaScript",\r
+starttime:"Inicio",\r
+endtime:"Fin",\r
+href:"Href",\r
+qtsrcchokespeed:"Vel. de choque",\r
+target:"Target",\r
+volume:"Volumen",\r
+autostart:"Comienzo Autom\u00E1tico",\r
+enabled:"Habilitado",\r
+fullscreen:"Pantalla Completa",\r
+invokeurls:"Invocar URLs",\r
+mute:"Silencio",\r
+stretchtofit:"Estirar para ajustar",\r
+windowlessvideo:"Video sin ventana",\r
+balance:"Balance",\r
+baseurl:"URL Base",\r
+captioningid:"Captioning id",\r
+currentmarker:"Marcador actual",\r
+currentposition:"Posici\u00F3n actual",\r
+defaultframe:"Frame predet.",\r
+playcount:"Cuantas reproducciones",\r
+rate:"Ratio",\r
+uimode:"Modo UI",\r
+flash_options:"Opciones Flash",\r
+qt_options:"Opciones Quicktime",\r
+wmp_options:"Opciones Windows media player",\r
+rmp_options:"Opciones Real media player",\r
+shockwave_options:"Opciones Shockwave",\r
+autogotourl:"Ir a URL autom\u00E1t.",\r
+center:"Centrado",\r
+imagestatus:"Estado de imagen",\r
+maintainaspect:"Mantener aspecto",\r
+nojava:"No java",\r
+prefetch:"Preb\u00FAsqueda",\r
+shuffle:"Aleatorio",\r
+console:"Consola",\r
+numloop:"N\u00FAm. repeticiones",\r
+controls:"Controles",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Estilo estiramiento",\r
+swstretchhalign:"Alin. H. Estiramiento",\r
+swstretchvalign:"Alin. V. Estiramiento",\r
+sound:"Sonido",\r
+progress:"Progreso",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Los recursos rtsp de Streaming deber\u00EDan a\u00F1adirse en el campo QT Src de la pesta\u00F1a avanzada.\nAdem\u00E1s deber\u00EDa a\u00F1adir una versi\u00F3n no Streaming en el campo Src.",\r
+align_top:"Arriba",\r
+align_right:"Derecha",\r
+align_bottom:"Debajo",\r
+align_left:"Izquierda",\r
+align_center:"Centrado",\r
+align_top_left:"Arriba Izda.",\r
+align_top_right:"Arriba Dcha.",\r
+align_bottom_left:"Debajo Izda.",\r
+align_bottom_right:"Debajo Dcha.",\r
+flv_options:"Opciones Video Flash",\r
+flv_scalemode:"Modo escalado",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Imagen inicio",\r
+flv_starttime:"Tiempo inicio",\r
+flv_defaultvolume:"Volumen predet.",\r
+flv_hiddengui:"Ocultar GUI",\r
+flv_autostart:"Inicio auto.",\r
+flv_loop:"Repetitivo",\r
+flv_showscalemodes:"Mostrar modos escala",\r
+flv_smoothvideo:"Video suave",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('et.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"General",\r
+advanced:"Advanced",\r
+file:"File/URL",\r
+list:"List",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fa.media_dlg',{\r
+title:"embedded media \u062F\u0631\u062C / \u0648\u06CC\u0631\u0627\u06CC\u0634",\r
+general:"\u0639\u0645\u0648\u0645\u06CC",\r
+advanced:"\u067E\u06CC\u0634\u0631\u0641\u062A\u0647",\r
+file:"File/URL",\r
+list:"\u0644\u06CC\u0633\u062A",\r
+size:"\u0627\u0628\u0639\u0627\u062F",\r
+preview:"\u067E\u06CC\u0634 \u0646\u0645\u0627\u06CC\u0634",\r
+constrain_proportions:"Constrain proportions",\r
+type:"\u0646\u0648\u0639",\r
+id:"\u0634\u0646\u0627\u0633\u0647",\r
+name:"\u0646\u0627\u0645",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"\u0627\u062C\u0631\u0627\u06CC \u062E\u0648\u062F\u06A9\u0627\u0631",\r
+loop:"Loop",\r
+menu:"\u0646\u0645\u0627\u06CC\u0634 \u0645\u0646\u0648",\r
+quality:"\u06A9\u06CC\u0641\u06CC\u062A",\r
+scale:"Scale",\r
+align:"\u062A\u0631\u0627\u0632",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"\u067E\u0633 \u0632\u0645\u06CC\u0646\u0647",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"\u0628\u062F\u0648\u0646 \u062A\u0635\u062D\u06CC\u062D",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"\u0632\u0645\u0627\u0646 \u0634\u0631\u0648\u0639",\r
+endtime:"\u0632\u0645\u0627\u0646 \u067E\u0627\u06CC\u0627\u0646",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke \u0633\u0631\u0639\u062A",\r
+target:"\u0647\u062F\u0641",\r
+volume:"\u062D\u062C\u0645 \u0635\u062F\u0627",\r
+autostart:"\u0634\u0631\u0648\u0639 \u062E\u0648\u062F\u06A9\u0627\u0631",\r
+enabled:"\u0641\u0639\u0627\u0644",\r
+fullscreen:"\u062A\u0645\u0627\u0645 \u0635\u0641\u062D\u0647",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"\u0645\u0631\u06A9\u0632",\r
+imagestatus:"\u0648\u0636\u0639\u06CC\u062A \u062A\u0635\u0648\u06CC\u0631",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"\u0635\u062F\u0627",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"\u0628\u0627\u0644\u0627",\r
+align_right:"\u0631\u0627\u0633\u062A",\r
+align_bottom:"\u067E\u0627\u06CC\u06CC\u0646",\r
+align_left:"\u0686\u067E",\r
+align_center:"\u0648\u0633\u0637",\r
+align_top_left:"\u0686\u067E \u0628\u0627\u0644\u0627",\r
+align_top_right:"\u0631\u0627\u0633\u062A \u0628\u0627\u0644\u0627",\r
+align_bottom_left:"\u0686\u067E \u067E\u0627\u06CC\u06CC\u0646",\r
+align_bottom_right:"\u0631\u0627\u0633\u062A \u067E\u0627\u06CC\u06CC\u0646",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"\u062A\u0635\u0648\u06CC\u0631 \u0634\u0631\u0648\u0639",\r
+flv_starttime:"\u0632\u0645\u0627\u0646 \u0634\u0631\u0648\u0639",\r
+flv_defaultvolume:"\u062D\u062C\u0645 \u067E\u06CC\u0634 \u0641\u0631\u0636 \u0635\u062F\u0627",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"\u0634\u0631\u0648\u0639 \u062E\u0648\u062F\u06A9\u0627\u0631",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fi.media_dlg',{\r
+title:"Lis\u00E4\u00E4/muokkaa upotettua mediaa",\r
+general:"Yleiset",\r
+advanced:"Edistyneet",\r
+file:"Tiedosto/URL",\r
+list:"Lista",\r
+size:"Mitat",\r
+preview:"Esikatselu",\r
+constrain_proportions:"S\u00E4ilyt\u00E4 mittasuhteet",\r
+type:"Tyyppi",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Luokka",\r
+vspace:"Pystytason tila",\r
+hspace:"Vaakatason tila",\r
+play:"Automaattinen toisto",\r
+loop:"Silmukka",\r
+menu:"N\u00E4yt\u00E4 valikko",\r
+quality:"Laatu",\r
+scale:"Skaala",\r
+align:"Tasaus",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Tausta",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"V\u00E4limuisti",\r
+hidden:"Piilotettu",\r
+controller:"Ohjain",\r
+kioskmode:"Kioski-tila",\r
+playeveryframe:"Toista jokainen ruutu",\r
+targetcache:"Kohteen v\u00E4limuisti",\r
+correction:"Ei korjausta",\r
+enablejavascript:"Salli JavaScript",\r
+starttime:"Aloitus aika",\r
+endtime:"Lopetus aika",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Kohde",\r
+volume:"\u00C4\u00E4nen voimakkuus",\r
+autostart:"Automaattinen aloitus",\r
+enabled:"P\u00E4\u00E4ll\u00E4",\r
+fullscreen:"Kokoruutu",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Venyt\u00E4 sopimaan",\r
+windowlessvideo:"Ikkunaton video",\r
+balance:"Tasapaino",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fr.media_dlg',{\r
+title:"Ins\u00E9rer/\u00C9diter un fichier m\u00E9dia",\r
+general:"G\u00E9n\u00E9ral",\r
+advanced:"Avanc\u00E9",\r
+file:"Fichier / URL",\r
+list:"Liste",\r
+size:"Dimensions",\r
+preview:"Pr\u00E9visualiser",\r
+constrain_proportions:"Conserver les proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Nom",\r
+class_name:"Classe",\r
+vspace:"Espacement vertical",\r
+hspace:"Espacement horizontal",\r
+play:"Lecture automatique",\r
+loop:"Lire en boucle",\r
+menu:"Afficher le menu",\r
+quality:"Qualit\u00E9",\r
+scale:"\u00C9chelle",\r
+align:"Alignement",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Fond",\r
+base:"Base",\r
+flashvars:"Variables flash",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Cach\u00E9",\r
+controller:"Controlleur",\r
+kioskmode:"Mode kiosque",\r
+playeveryframe:"Jouer toutes les images",\r
+targetcache:"Cache cible",\r
+correction:"Pas de correction",\r
+enablejavascript:"Activer le JavaScript",\r
+starttime:"Temps de d\u00E9but",\r
+endtime:"Temps de fin",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Cible",\r
+volume:"Volume",\r
+autostart:"Lire automatiquement",\r
+enabled:"Activ\u00E9",\r
+fullscreen:"Plein \u00E9cran",\r
+invokeurls:"Invoquer URLs",\r
+mute:"Silence",\r
+stretchtofit:"\u00C9tendre pour adapter la taille",\r
+windowlessvideo:"Vid\u00E9o sans fen\u00EAtre",\r
+balance:"Balance",\r
+baseurl:"Adresse de base",\r
+captioningid:"Captioning id",\r
+currentmarker:"Marqueur actuel",\r
+currentposition:"Position actuelle",\r
+defaultframe:"Image par d\u00E9faut",\r
+playcount:"Compteur",\r
+rate:"Taux",\r
+uimode:"Mode UI",\r
+flash_options:"Options Flash",\r
+qt_options:"Options Quicktime",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Options Real media player",\r
+shockwave_options:"Options Shockwave",\r
+autogotourl:"Aller automatiquement \u00E0 l'URL",\r
+center:"Centrer",\r
+imagestatus:"Statut de l'image",\r
+maintainaspect:"Maintenir l'aspect",\r
+nojava:"Pas java",\r
+prefetch:"Prefetch",\r
+shuffle:"Al\u00E9atoire",\r
+console:"Console",\r
+numloop:"Nombre de tours",\r
+controls:"Contr\u00F4les",\r
+scriptcallbacks:"Callback de script",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch horizontal",\r
+swstretchvalign:"Stretch vertical",\r
+sound:"Son",\r
+progress:"Progr\u00E8s",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Les ressources stream\u00E9es rtsp doivent \u00EAtre ajout\u00E9es au champs QT Src dans l'onglet avanc\u00E9.\nVous devriez aussi ajouter une version non stream\u00E9e au QT src.",\r
+align_top:"Haut",\r
+align_right:"Droit",\r
+align_bottom:"Bas",\r
+align_left:"Gauche",\r
+align_center:"Centr\u00E9",\r
+align_top_left:"Haut gauche",\r
+align_top_right:"haut droit",\r
+align_bottom_left:"Bas gauche",\r
+align_bottom_right:"Bas droite",\r
+flv_options:"Options de la vid\u00E9o Flash",\r
+flv_scalemode:"Mode \u00E0 l'\u00E9chelle",\r
+flv_buffer:"Tampon",\r
+flv_startimage:"Image de d\u00E9but",\r
+flv_starttime:"Temps au d\u00E9but",\r
+flv_defaultvolume:"Volume par d\u00E9faut",\r
+flv_hiddengui:"Interface utilisateur cach\u00E9e",\r
+flv_autostart:"D\u00E9marage automatique",\r
+flv_loop:"En boucle",\r
+flv_showscalemodes:"Montrer les diff\u00E9rentes \u00E9chelles",\r
+flv_smoothvideo:"Vid\u00E9o adoucie",\r
+flv_jscallback:"Callback JavaScript"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('he.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"\u05DB\u05DC\u05DC\u05D9",\r
+advanced:"Advanced",\r
+file:"File/URL",\r
+list:"List",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"\u05DE\u05E8\u05DB\u05D6",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"\u05E6\u05DC\u05D9\u05DC",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"\u05DC\u05E9\u05DE\u05D0\u05DC",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hr.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"General",\r
+advanced:"Advanced",\r
+file:"File/URL",\r
+list:"List",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hu.media_dlg',{\r
+title:"Be\u00E1gyazott m\u00E9dia besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+general:"\u00C1ltal\u00E1nos",\r
+advanced:"Halad\u00F3",\r
+file:"F\u00E1jl/URL",\r
+list:"Lista",\r
+size:"Dimenzi\u00F3k",\r
+preview:"El\u0151n\u00E9zet",\r
+constrain_proportions:"Ar\u00E1nytart\u00E1s",\r
+type:"T\u00EDpus",\r
+id:"Id",\r
+name:"N\u00E9v",\r
+class_name:"Oszt\u00E1ly",\r
+vspace:"F-t\u00E1v",\r
+hspace:"V-t\u00E1v",\r
+play:"Automatikus lej\u00E1tsz\u00E1s",\r
+loop:"Ism\u00E9tl\u00E9s",\r
+menu:"Men\u00FC mutat\u00E1sa",\r
+quality:"Min\u0151s\u00E9g",\r
+scale:"Nagy\u00EDt\u00E1s",\r
+align:"Elrendez\u00E9s",\r
+salign:"SElrendez\u00E9s",\r
+wmode:"WM\u00F3d",\r
+bgcolor:"H\u00E1tt\u00E9r",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Rejtett",\r
+controller:"Vez\u00E9rl\u0151",\r
+kioskmode:"Kiosk m\u00F3d",\r
+playeveryframe:"Minden kocka lej\u00E1tsz\u00E1sa",\r
+targetcache:"C\u00E9l cache",\r
+correction:"Nincs jav\u00EDt\u00E1s",\r
+enablejavascript:"JavaScript enged\u00E9se",\r
+starttime:"Kezd\u00E9si id\u0151",\r
+endtime:"Z\u00E1r\u00F3 id\u0151",\r
+href:"Href",\r
+qtsrcchokespeed:"Folyt\u00E1s sebess\u00E9ge",\r
+target:"C\u00E9l",\r
+volume:"Hanger\u0151",\r
+autostart:"Automatikus kezd\u00E9s",\r
+enabled:"Enged\u00E9lyezve",\r
+fullscreen:"Teljes k\u00E9perny\u0151",\r
+invokeurls:"URL-ek bevon\u00E1sa",\r
+mute:"N\u00E9ma",\r
+stretchtofit:"Ny\u00FAjtva igaz\u00EDt\u00E1s",\r
+windowlessvideo:"Ablak n\u00E9lk\u00FCli vide\u00F3",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Aktu\u00E1lis marker",\r
+currentposition:"Aktu\u00E1lis poz\u00EDci\u00F3",\r
+defaultframe:"Alap\u00E9rtelmezett frame",\r
+playcount:"Lej\u00E1tsz\u00E1ssz\u00E1m",\r
+rate:"Rate",\r
+uimode:"UI M\u00F3d",\r
+flash_options:"Flash be\u00E1ll\u00EDt\u00E1sai",\r
+qt_options:"Quicktime be\u00E1ll\u00EDt\u00E1sai",\r
+wmp_options:"Windows media player be\u00E1ll\u00EDt\u00E1sai",\r
+rmp_options:"Real media player be\u00E1ll\u00EDt\u00E1sai",\r
+shockwave_options:"Shockwave be\u00E1ll\u00EDt\u00E1sai",\r
+autogotourl:"Automatikus URL-re ugr\u00E1s",\r
+center:"K\u00F6z\u00E9pre",\r
+imagestatus:"K\u00E9p \u00E1llapot",\r
+maintainaspect:"Ar\u00E1nytart\u00E1s",\r
+nojava:"Nincs java",\r
+prefetch:"El\u0151t\u00F6lt\u00E9s",\r
+shuffle:"V\u00E9letlenszer\u0171",\r
+console:"Console",\r
+numloop:"Ism\u00E9tl\u00E9ssz\u00E1m",\r
+controls:"Kezel\u0151k",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Ny\u00FAjt\u00E1s st\u00EDlus",\r
+swstretchhalign:"Ny\u00FAjt\u00E1s V-igaz\u00EDt\u00E1s",\r
+swstretchvalign:"Ny\u00FAjt\u00E1s F-igaz\u00EDt\u00E1s",\r
+sound:"Hang",\r
+progress:"Folymat",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamelt rtsp forr\u00E1sok a QT Src mez\u0151be val\u00F3k a halad\u00F3 lapon.\nHozz\u00E1 kellene adnia egy nem streamelt verzi\u00F3t a Src mez\u0151ben.",\r
+align_top:"Fent",\r
+align_right:"Jobbra",\r
+align_bottom:"Lent",\r
+align_left:"Balra",\r
+align_center:"K\u00F6z\u00E9pen",\r
+align_top_left:"Bal-fent",\r
+align_top_right:"Jobb-fent",\r
+align_bottom_left:"Bal-lent",\r
+align_bottom_right:"Bal-jobbra",\r
+flv_options:"Flash vide\u00F3 be\u00E1ll\u00EDt\u00E1sai",\r
+flv_scalemode:"Nagy\u00EDt\u00E1s m\u00F3d",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start k\u00E9p",\r
+flv_starttime:"Start id\u0151",\r
+flv_defaultvolume:"Alap\u00E9rtelmezett hanger\u0151",\r
+flv_hiddengui:"Rejtett GUI",\r
+flv_autostart:"Aut\u00F3 start",\r
+flv_loop:"Ism\u00E9tl\u00E9s",\r
+flv_showscalemodes:"Nagy\u00EDt\u00E1si m\u00F3dok mutat\u00E1sa",\r
+flv_smoothvideo:"Vide\u00F3 sim\u00EDt\u00E1sa",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('is.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"General",\r
+advanced:"Advanced",\r
+file:"File/URL",\r
+list:"List",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('it.media_dlg',{\r
+title:"Inserisci/modifica file multimediale",\r
+general:"Generale",\r
+advanced:"Avanzate",\r
+file:"File/URL",\r
+list:"Lista",\r
+size:"Dimensioni",\r
+preview:"Anteprima",\r
+constrain_proportions:"Mantieni proporzioni",\r
+type:"Tipo",\r
+id:"Id",\r
+name:"Nome",\r
+class_name:"Classe",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Esecuzione automatica",\r
+loop:"Riproduzione ciclica",\r
+menu:"Mostra menu",\r
+quality:"Qualit\u00E0",\r
+scale:"Scala",\r
+align:"Allineamento",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Sfondo",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Nascosto",\r
+controller:"Controller",\r
+kioskmode:"Modalit\u00E0 Kiosk",\r
+playeveryframe:"Esegui ogni frame",\r
+targetcache:"Cache del target",\r
+correction:"Nessuna correzione",\r
+enablejavascript:"Abilita JavaScript",\r
+starttime:"Ora inizio",\r
+endtime:"Ora fine",\r
+href:"Href",\r
+qtsrcchokespeed:"Velocit\u00E0 cursore",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Avvio automatico",\r
+enabled:"Abilitato",\r
+fullscreen:"Tutto schermo",\r
+invokeurls:"Invoca URLs",\r
+mute:"Muto",\r
+stretchtofit:"Adatta dimensioni",\r
+windowlessvideo:"Video senza finestra",\r
+balance:"Bilanciamento",\r
+baseurl:"URL base",\r
+captioningid:"Didascalia dell'Id",\r
+currentmarker:"Indicatore corrente",\r
+currentposition:"Posizione corrente",\r
+defaultframe:"frame predefinito",\r
+playcount:"Conteggio esecuzione",\r
+rate:"Qualit\u00E0",\r
+uimode:"Modalit\u00E0 Interfaccia Utente",\r
+flash_options:"Opzioni Flash",\r
+qt_options:"Opzioni Quicktime",\r
+wmp_options:"Opzioni Windows media player",\r
+rmp_options:"Opzioni Real media player",\r
+shockwave_options:"Opzioni Shockwave",\r
+autogotourl:"Vai a URL automatico",\r
+center:"Centra",\r
+imagestatus:"Stato immagine",\r
+maintainaspect:"Mantieni aspetto",\r
+nojava:"No java",\r
+prefetch:"Precaricamento",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Numero cicli",\r
+controls:"Controlli",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Suono",\r
+progress:"Avanzamento",\r
+qtsrc:"Sorgente QT",\r
+qt_stream_warn:"Le risorse rstp 'streamed' devono essere aggiunte al campo Sorgente QT nella tabella Avanzate.\nSi dovrebbe inserire anche una versione non 'streamed' al campo Sorgente..",\r
+align_top:"Alto",\r
+align_right:"Destra",\r
+align_bottom:"Basso",\r
+align_left:"Sinistra",\r
+align_center:"Centro",\r
+align_top_left:"Alto a sinistra",\r
+align_top_right:"Alto a destra",\r
+align_bottom_left:"Basso a sinistra",\r
+align_bottom_right:"Basso a destra",\r
+flv_options:"Opzioni video Flash",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Immagine avvio",\r
+flv_starttime:"Tempo avvio",\r
+flv_defaultvolume:"Volume predefinito",\r
+flv_hiddengui:"GUI nascosta",\r
+flv_autostart:"Avvio automatico",\r
+flv_loop:"Riproduzione ciclica",\r
+flv_showscalemodes:"Mostra scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ja.media_dlg',{\r
+title:"\u57CB\u3081\u8FBC\u307F\u30E1\u30C7\u30A3\u30A2\u306E\u633F\u5165/\u7DE8\u96C6",\r
+general:"\u4E00\u822C",\r
+advanced:"\u4E0A\u7D1A\u8005\u5411\u3051",\r
+file:"\u30D5\u30A1\u30A4\u30EB/URL",\r
+list:"\u4E00\u89A7\u304B\u3089\u9078\u3076",\r
+size:"\u30B5\u30A4\u30BA",\r
+preview:"\u30D7\u30EC\u30D3\u30E5\u30FC",\r
+constrain_proportions:"\u7E26\u6A2A\u6BD4\u3092\u4FDD\u5B58",\r
+type:"\u30BF\u30A4\u30D7",\r
+id:"ID",\r
+name:"\u540D\u524D",\r
+class_name:"\u30AF\u30E9\u30B9",\r
+vspace:"\u4E0A\u4E0B\u4F59\u767D",\r
+hspace:"\u5DE6\u53F3\u4F59\u767D",\r
+play:"\u81EA\u52D5\u518D\u751F",\r
+loop:"\u7E70\u308A\u8FD4\u3057\u518D\u751F",\r
+menu:"\u30E1\u30CB\u30E5\u30FC\u3092\u8868\u793A",\r
+quality:"\u54C1\u8CEA",\r
+scale:"\u4F38\u7E2E",\r
+align:"\u914D\u7F6E",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"\u80CC\u666F\u8272",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"\u81EA\u52D5\u8AAD\u8FBC",\r
+cache:"\u30AD\u30E3\u30C3\u30B7\u30E5",\r
+hidden:"\u975E\u8868\u793A",\r
+controller:"\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u8868\u793A",\r
+kioskmode:"Kiosk\u30E2\u30FC\u30C9",\r
+playeveryframe:"\u5168\u30D5\u30EC\u30FC\u30E0\u518D\u751F",\r
+targetcache:"\u30BF\u30FC\u30B2\u30C3\u30C8\u30AD\u30E3\u30C3\u30B7\u30E5",\r
+correction:"No correction",\r
+enablejavascript:"JavaScript\u3092\u6709\u52B9\u306B\u3059\u308B",\r
+starttime:"\u958B\u59CB\u30D5\u30EC\u30FC\u30E0",\r
+endtime:"\u7D42\u4E86\u30D5\u30EC\u30FC\u30E0",\r
+href:"\u30EA\u30F3\u30AF\u5148URL",\r
+qtsrcchokespeed:"\u518D\u751F\u30C7\u30FC\u30BF\u30EC\u30FC\u30C8",\r
+target:"\u30BF\u30FC\u30B2\u30C3\u30C8",\r
+volume:"\u97F3\u91CF",\r
+autostart:"\u81EA\u52D5\u518D\u751F",\r
+enabled:"\u6709\u52B9\u306B\u3059\u308B",\r
+fullscreen:"\u30D5\u30EB\u30B9\u30AF\u30EA\u30FC\u30F3",\r
+invokeurls:"URL\u3092\u958B\u304F",\r
+mute:"\u30DF\u30E5\u30FC\u30C8",\r
+stretchtofit:"\u81EA\u52D5\u30B5\u30A4\u30BA\u5909\u66F4",\r
+windowlessvideo:"windowless\u30E2\u30FC\u30C9",\r
+balance:"\u30B9\u30C6\u30EC\u30AA\u306E\u30D0\u30E9\u30F3\u30B9",\r
+baseurl:"Base URL",\r
+captioningid:"\u30AD\u30E3\u30D7\u30B7\u30E7\u30F3\u8868\u793A\u8981\u7D20ID",\r
+currentmarker:"\u30DE\u30FC\u30AB\u30FC\u756A\u53F7",\r
+currentposition:"\u518D\u751F\u4F4D\u7F6E\uFF08\u79D2\u5358\u4F4D\uFF09",\r
+defaultframe:"\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30EC\u30FC\u30E0",\r
+playcount:"\u518D\u751F\u56DE\u6570",\r
+rate:"\u518D\u751F\u30EC\u30FC\u30C8",\r
+uimode:"UI\u8868\u793A\u30E2\u30FC\u30C9",\r
+flash_options:"Flash\u30AA\u30D7\u30B7\u30E7\u30F3",\r
+qt_options:"Quicktime\u30AA\u30D7\u30B7\u30E7\u30F3",\r
+wmp_options:"Windows media player\u30AA\u30D7\u30B7\u30E7\u30F3",\r
+rmp_options:"Real media player\u30AA\u30D7\u30B7\u30E7\u30F3",\r
+shockwave_options:"Shockwave\u30AA\u30D7\u30B7\u30E7\u30F3",\r
+autogotourl:"autogotourl",\r
+center:"\u30BB\u30F3\u30BF\u30EA\u30F3\u30B0",\r
+imagestatus:"\u30B9\u30C6\u30FC\u30BF\u30B9\u8868\u793A",\r
+maintainaspect:"\u7E26\u6A2A\u6BD4\u4FDD\u5B58",\r
+nojava:"Java\u3092\u7981\u6B62",\r
+prefetch:"\u30D7\u30EA\u30D5\u30A7\u30C3\u30C1",\r
+shuffle:"\u30B7\u30E3\u30C3\u30D5\u30EB",\r
+console:"\u30B3\u30F3\u30BD\u30FC\u30EB",\r
+numloop:"\u7E70\u308A\u8FD4\u3057\u56DE\u6570",\r
+controls:"\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u8868\u793A",\r
+scriptcallbacks:"\u30B3\u30FC\u30EB\u30D0\u30C3\u30AF\u30A4\u30D9\u30F3\u30C8",\r
+swstretchstyle:"\u4F38\u7E2E",\r
+swstretchhalign:"\u6C34\u5E73\u4F4D\u7F6E",\r
+swstretchvalign:"\u5782\u76F4\u4F4D\u7F6E",\r
+sound:"\u30B5\u30A6\u30F3\u30C9",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"rtsp\u30B9\u30C8\u30EA\u30FC\u30DF\u30F3\u30B0\u30EA\u30BD\u30FC\u30B9\u3092\u300C\u4E0A\u7D1A\u8005\u5411\u3051\u300D\u30BF\u30D6\u306E\u300CQT Src\u300D\u6B04\u306B\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u307E\u305F\u3001\u300CSrc\u300D\u6B04\u306B\u306F\u30B9\u30C8\u30EA\u30FC\u30DF\u30F3\u30B0\u3067\u306F\u306A\u3044\u30D0\u30FC\u30B8\u30E7\u30FC\u30F3\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",\r
+align_top:"\u4E0A",\r
+align_right:"\u53F3",\r
+align_bottom:"\u4E0B",\r
+align_left:"\u5DE6",\r
+align_center:"\u4E2D\u592E",\r
+align_top_left:"\u5DE6\u4E0A",\r
+align_top_right:"\u53F3\u4E0A",\r
+align_bottom_left:"\u5DE6\u4E0B",\r
+align_bottom_right:"\u53F3\u4E0B",\r
+flv_options:"Flash video\u30AA\u30D7\u30B7\u30E7\u30F3",\r
+flv_scalemode:"\u4F38\u7E2E\u30E2\u30FC\u30C9",\r
+flv_buffer:"\u30D0\u30C3\u30D5\u30A1\u79D2\u6570",\r
+flv_startimage:"\u521D\u671F\u753B\u50CFURL",\r
+flv_starttime:"\u958B\u59CB\u30D5\u30EC\u30FC\u30E0",\r
+flv_defaultvolume:"\u97F3\u91CF",\r
+flv_hiddengui:"\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u975E\u8868\u793A",\r
+flv_autostart:"\u81EA\u52D5\u518D\u751F",\r
+flv_loop:"\u7E70\u308A\u8FD4\u3057\u518D\u751F",\r
+flv_showscalemodes:"\u4F38\u7E2E\u5207\u66FF\u30DC\u30BF\u30F3\u8868\u793A",\r
+flv_smoothvideo:"\u30B9\u30E0\u30FC\u30B8\u30F3\u30B0",\r
+flv_jscallback:"JS\u30B3\u30FC\u30EB\u30D0\u30C3\u30AF"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ko.media_dlg',{\r
+title:"\uBBF8\uB514\uC5B4\uC758 \uC0BD\uC785/\uD3B8\uC9D1",\r
+general:"\uC77C\uBC18",\r
+advanced:"\uACE0\uAE09",\r
+file:"\uD30C\uC77C/URL",\r
+list:"\uBAA9\uB85D",\r
+size:"\uD06C\uAE30",\r
+preview:"\uBBF8\uB9AC\uBCF4\uAE30",\r
+constrain_proportions:"\uC885\uD6A1\uBE44 \uC720\uC9C0",\r
+type:"\uD0C0\uC785",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"\uC0C1\uD558 \uC5EC\uBC31",\r
+hspace:"\uC88C\uC6B0 \uC5EC\uBC31",\r
+play:"\uC790\uB3D9 \uC7AC\uC0DD",\r
+loop:"\uC5F0\uC18D \uC7AC\uC0DD",\r
+menu:"\uBA54\uB274 \uD45C\uC2DC",\r
+quality:"\uD488\uC9C8",\r
+scale:"\uC2A4\uCF00\uC77C",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"JavaScript\uB97C \uD5C8\uAC00",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lt.media_dlg',{\r
+title:"\u012Eterpti/redaguoti integruot\u0105 daugialyp\u0119 terp\u0119",\r
+general:"Bendra",\r
+advanced:"I\u0161pl\u0117sta",\r
+file:"Byla/URL",\r
+list:"S\u0105ra\u0161as",\r
+size:"I\u0161matavimai",\r
+preview:"Per\u017Ei\u016Bra",\r
+constrain_proportions:"Priverstin\u0117s proporcijos",\r
+type:"Tipas",\r
+id:"Id",\r
+name:"Vardas",\r
+class_name:"Klas\u0117",\r
+vspace:"Vertikalus tarpas",\r
+hspace:"Horizontalus tarpas",\r
+play:"Automatinis paleidimas",\r
+loop:"Groti cikli\u0161kai",\r
+menu:"Rodyti meniu",\r
+quality:"Kokyb\u0117",\r
+scale:"Mastelis",\r
+align:"Lygiavimas",\r
+salign:"S-Lygiavimas",\r
+wmode:"W-Re\u017Eimas",\r
+bgcolor:"Fono spalva",\r
+base:"Baz\u0117",\r
+flashvars:"Flash kinamieji",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Laikinoji talpykla",\r
+hidden:"Pasl\u0117pta",\r
+controller:"Valdiklis",\r
+kioskmode:"Kiosko re\u017Eimas",\r
+playeveryframe:"Paleisti kiekvien\u0105 freim\u0105",\r
+targetcache:"Taikinio laikinoji talpykla",\r
+correction:"Joki\u0173 korekcij\u0173",\r
+enablejavascript:"\u012Egalinti JavaScript",\r
+starttime:"Prad\u017Eios laikas",\r
+endtime:"Pabaigos laikas",\r
+href:"Href",\r
+qtsrcchokespeed:"Dusinimo greitis",\r
+target:"Taikinys",\r
+volume:"Garsas",\r
+autostart:"Automatinis paleidimas",\r
+enabled:"\u012Ejungta",\r
+fullscreen:"Pilno ekrano re\u017Eimas",\r
+invokeurls:"I\u0161kviesti URL adresus",\r
+mute:"Nutildyti",\r
+stretchtofit:"I\u0161tempti iki atitikimo",\r
+windowlessvideo:"Belangis vaizdas",\r
+balance:"Balancas",\r
+baseurl:"Prad\u017Eios URL adresas",\r
+captioningid:"Nuorodin\u0117s antra\u0161t\u0117s id",\r
+currentmarker:"Esamas \u017Eymeklis",\r
+currentposition:"Esama pozicija",\r
+defaultframe:"Standartinis freimas",\r
+playcount:"Groti kart\u0173",\r
+rate:"Da\u017Enis",\r
+uimode:"UI re\u017Eimas",\r
+flash_options:"Flash nustatymai",\r
+qt_options:"Quicktime nustatymai",\r
+wmp_options:"Windows media player nustatymai",\r
+rmp_options:"Real media player nustatymai",\r
+shockwave_options:"Shockwave nustatymai",\r
+autogotourl:"Atomatinis \u0117jimas URL adresu",\r
+center:"Centre",\r
+imagestatus:"Paveiksl\u0117lio b\u016Bsena",\r
+maintainaspect:"I\u0161laikyti aspekt\u0105",\r
+nojava:"Be java",\r
+prefetch:"I\u0161ankstinis duom. i\u0161rinkimas",\r
+shuffle:"Atsitiktinis mai\u0161ymasis",\r
+console:"Konsol\u0117",\r
+numloop:"Cikl\u0173 kiekis",\r
+controls:"Valdikliai",\r
+scriptcallbacks:"Scenarijaus atgalinis atsakas",\r
+swstretchstyle:"I\u0161tempti stili\u0173",\r
+swstretchhalign:"I\u0161tempti H-Lygiavimas",\r
+swstretchvalign:"I\u0161tempti V-Lygiavimas",\r
+sound:"Garsas",\r
+progress:"Progresas",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Transliuojami rtsp resursai tur\u0117t\u0173 b\u016Bti prid\u0117ti prie QT Src lauko Papildom\u0173 nustatym\u0173 tabuliacijoje.\nTaip pat reikt\u0173 prid\u0117ti ir netransliuojam\u0105j\u0105 Src lauko versij\u0105.",\r
+align_top:"Vir\u0161uje",\r
+align_right:"De\u0161in\u0117je",\r
+align_bottom:"Apa\u010Dioje",\r
+align_left:"Kair\u0117je",\r
+align_center:"Centre",\r
+align_top_left:"Vir\u0161aus kair\u0117je",\r
+align_top_right:"Vir\u0161aus de\u0161in\u0117je",\r
+align_bottom_left:"Apa\u010Dios kair\u0117je",\r
+align_bottom_right:"Apa\u010Dios de\u0161in\u0117je",\r
+flv_options:"Flash vaizdo nustatymai",\r
+flv_scalemode:"Mastelio re\u017Eimas",\r
+flv_buffer:"Buferis",\r
+flv_startimage:"Startavimo paveiksl\u0117lis",\r
+flv_starttime:"Startavimo laikas",\r
+flv_defaultvolume:"Pradinis garso lygis",\r
+flv_hiddengui:"Pasl\u0117ptas GUI",\r
+flv_autostart:"Auto grojimas",\r
+flv_loop:"Groti cikli\u0161kai",\r
+flv_showscalemodes:"Rodyti mastelio re\u017Eimus",\r
+flv_smoothvideo:"Tolygus vaizdas",\r
+flv_jscallback:"JS atgalinis atsakas"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lv.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"General",\r
+advanced:"Advanced",\r
+file:"File/URL",\r
+list:"List",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('mk.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"General",\r
+advanced:"Advanced",\r
+file:"File/URL",\r
+list:"List",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ms.media_dlg',{\r
+title:"Masukkan / sunting media",\r
+general:"Am",\r
+advanced:"Lanjutan",\r
+file:"Fail/URL",\r
+list:"Senarai",\r
+size:"Dimensi",\r
+preview:"Pratonton",\r
+constrain_proportions:"Kadar tahanan",\r
+type:"Jenis",\r
+id:"Id",\r
+name:"Nama",\r
+class_name:"Kelas",\r
+vspace:"Ruangan-Tegak",\r
+hspace:"Ruangan-Datar",\r
+play:"Auto main",\r
+loop:"Gelung",\r
+menu:"Tunjuk menu",\r
+quality:"Kualiti",\r
+scale:"Ukuran",\r
+align:"Luruskan",\r
+salign:"SLuruskan",\r
+wmode:"WMod",\r
+bgcolor:"Latar belakang",\r
+base:"Dasar",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Tempat menyembunyikan",\r
+hidden:"Tersorok",\r
+controller:"Kendali",\r
+kioskmode:"Mode toko",\r
+playeveryframe:"Main setiap bingkai",\r
+targetcache:"Sasaran tersembunyi",\r
+correction:"Tiada pembetulan",\r
+enablejavascript:"Bolehkan JavaScript",\r
+starttime:"Masa bermula",\r
+endtime:"Masa tamat",\r
+href:"Href",\r
+qtsrcchokespeed:"Kelajuan sumbatan",\r
+target:"Sasaran",\r
+volume:"Ketinggian suara",\r
+autostart:"Auto mula",\r
+enabled:"Dibolehkan",\r
+fullscreen:"Skrin penuh",\r
+invokeurls:"Panggil URL",\r
+mute:"Bisu",\r
+stretchtofit:"Bujurkan supaya sesuai",\r
+windowlessvideo:"Tetingkap tanpa video",\r
+balance:"Baki",\r
+baseurl:"URL dasar",\r
+captioningid:"Tajuk id",\r
+currentmarker:"Penanda semasa",\r
+currentposition:"Posisi semasa",\r
+defaultframe:"Bingkai asal",\r
+playcount:"Kira",\r
+rate:"Undi",\r
+uimode:"Mod Grafik",\r
+flash_options:"Flash",\r
+qt_options:"Quicktime",\r
+wmp_options:"Pemain Windows media",\r
+rmp_options:"Pemain Real media",\r
+shockwave_options:"Shockwave",\r
+autogotourl:"Auto pergi-ke URL",\r
+center:"Tengah",\r
+imagestatus:"Status imej",\r
+maintainaspect:"Pelihara aspek",\r
+nojava:"Java tidak dibenarkan",\r
+prefetch:"Preambilan",\r
+shuffle:"Merangkak",\r
+console:"Konsol",\r
+numloop:"Nombor gelungan",\r
+controls:"Kendali",\r
+scriptcallbacks:"Panggilan balik skrip",\r
+swstretchstyle:"Gaya bentangan",\r
+swstretchhalign:"Bentangan Selarian-Ufuk",\r
+swstretchvalign:"Stretch Selarian-Tegak",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+align_top:"Atas",\r
+align_right:"Kanan",\r
+align_bottom:"Bawah",\r
+align_left:"Kiri",\r
+align_center:"Tengah",\r
+align_top_left:"Kiri atas",\r
+align_top_right:"Kanan atas",\r
+align_bottom_left:"Bawah kiri",\r
+align_bottom_right:"Bawah kanan",\r
+flv_options:"Alatan flash video",\r
+flv_scalemode:"Skala mod",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start imej",\r
+flv_starttime:"Masa mula",\r
+flv_defaultvolume:"Bunyi asal",\r
+flv_hiddengui:"GUI tersorok",\r
+flv_autostart:"Auto mula",\r
+flv_loop:"Gegelung",\r
+flv_showscalemodes:"Tunjuk skala mod",\r
+flv_smoothvideo:"Perlahankan video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nb.media_dlg',{\r
+title:"Sett inn / rediger inkludert objekt",\r
+general:"Generelt",\r
+advanced:"Avansert",\r
+file:"Fil/URL",\r
+list:"Liste",\r
+size:"St\u00F8rrelse",\r
+preview:"Forh\u00E5ndsvisning",\r
+constrain_proportions:"Behold st\u00F8rrelsesforhold",\r
+type:"Type",\r
+id:"Id",\r
+name:"Navn",\r
+class_name:"Klasse",\r
+vspace:"Vertikal avstand",\r
+hspace:"Horisontal avstand",\r
+play:"Autostart",\r
+loop:"L\u00F8kke",\r
+menu:"Vis meny",\r
+quality:"Kvalitet",\r
+scale:"Skalering",\r
+align:"Justering",\r
+salign:"S-justering",\r
+wmode:"W-modus",\r
+bgcolor:"Bakgrunn",\r
+base:"Base",\r
+flashvars:"Flash-variabler",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Skjult",\r
+controller:"Kontroller",\r
+kioskmode:"Kiosk-modus",\r
+playeveryframe:"Spill hver ramme",\r
+targetcache:"M\u00E5l-cache",\r
+correction:"Ingen korreksjon",\r
+enablejavascript:"Tillat Javaskript",\r
+starttime:"Starttid",\r
+endtime:"Stopptid",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke-fart",\r
+target:"M\u00E5l",\r
+volume:"Volum",\r
+autostart:"Autostart",\r
+enabled:"Kj\u00F8rbar",\r
+fullscreen:"Fullskjerm",\r
+invokeurls:"Aktiviser URL-er",\r
+mute:"Demp",\r
+stretchtofit:"Strekk for \u00E5 passe inn",\r
+windowlessvideo:"Video uten vindu",\r
+balance:"Balanse",\r
+baseurl:"Base URL",\r
+captioningid:"Fang opp id",\r
+currentmarker:"Aktiv mark\u00F8r",\r
+currentposition:"Aktiv posisjon",\r
+defaultframe:"Standardramme",\r
+playcount:"Teller",\r
+rate:"Rate",\r
+uimode:"UI-modus",\r
+flash_options:"Flash-egenskaper",\r
+qt_options:"Quicktime-innstillinger",\r
+wmp_options:"Windows mediaplayer-innstillinger",\r
+rmp_options:"Real mediaplayer-innstillinger",\r
+shockwave_options:"Shockwave-innstillinger",\r
+autogotourl:"Auto-g\u00E5-til-URL",\r
+center:"Midtstill",\r
+imagestatus:"Bildestatus",\r
+maintainaspect:"Behold st\u00F8rrelsesforhold",\r
+nojava:"Ikke Java",\r
+prefetch:"Forh\u00E5ndsregistrer",\r
+shuffle:"Miks",\r
+console:"Konsoll",\r
+numloop:"Antall gjennoml\u00F8p",\r
+controls:"Kontroller",\r
+scriptcallbacks:"Skript-referanser",\r
+swstretchstyle:"Strekkstil",\r
+swstretchhalign:"Strekk H-justering",\r
+swstretchvalign:"Strekk V-justering",\r
+sound:"Lyd",\r
+progress:"Framdrift",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamede rtsp-ressurser b\u00F8r legges til QT Src field i avansert-fanen.\nDu b\u00F8r ogs\u00E5 legge til en ikke-streamet versjon i src field",\r
+align_top:"Topp",\r
+align_right:"H\u00F8yre",\r
+align_bottom:"Bunn",\r
+align_left:"Venstre",\r
+align_center:"Midt",\r
+align_top_left:"Topp venstre",\r
+align_top_right:"Topp h\u00F8yre",\r
+align_bottom_left:"Bunn venstre",\r
+align_bottom_right:"Bunn h\u00F8yre",\r
+flv_options:"Flash video-valg",\r
+flv_scalemode:"Skalering",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Startbilde",\r
+flv_starttime:"Starttid",\r
+flv_defaultvolume:"Standardvolum",\r
+flv_hiddengui:"Skjult GUI",\r
+flv_autostart:"Auto-start",\r
+flv_loop:"L\u00F8kke",\r
+flv_showscalemodes:"Vis skalering",\r
+flv_smoothvideo:"Jevn video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nl.media_dlg',{\r
+title:"Media invoegen/bewerken",\r
+general:"Algemeen",\r
+advanced:"Geavanceerd",\r
+file:"Bestand/URL",\r
+list:"Lijst",\r
+size:"Afmetingen",\r
+preview:"Voorbeeld",\r
+constrain_proportions:"Verhouding bewaren",\r
+type:"Type",\r
+id:"Id",\r
+name:"Naam",\r
+class_name:"Klasse",\r
+vspace:"V-Ruimte",\r
+hspace:"H-Ruimte",\r
+play:"Automatisch afspelen",\r
+loop:"Herhalen",\r
+menu:"Menu Weergeven",\r
+quality:"Kwaliteit",\r
+scale:"Schaal",\r
+align:"Uitlijning",\r
+salign:"Schaaluitlijning",\r
+wmode:"WMode",\r
+bgcolor:"Achtergrond",\r
+base:"Basis",\r
+flashvars:"Variabelen",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Verborgen",\r
+controller:"Controller",\r
+kioskmode:"Kioskmodus",\r
+playeveryframe:"Elk frame afspelen",\r
+targetcache:"Doelcache",\r
+correction:"Geen correctie",\r
+enablejavascript:"JavaScript Inschakelen",\r
+starttime:"Starttijd",\r
+endtime:"Eindtijd",\r
+href:"HREF",\r
+qtsrcchokespeed:"Chokesnelheid",\r
+target:"Doel",\r
+volume:"Volume",\r
+autostart:"Automatisch afspelen",\r
+enabled:"Ingeschakeld",\r
+fullscreen:"Volledig scherm",\r
+invokeurls:"URLs laden",\r
+mute:"Geluid dempen",\r
+stretchtofit:"Passend maken",\r
+windowlessvideo:"Video zonder venster",\r
+balance:"Balans",\r
+baseurl:"BasisURL",\r
+captioningid:"Ondertiteling id",\r
+currentmarker:"Huidige markering",\r
+currentposition:"Huidige positie",\r
+defaultframe:"Standaard frame",\r
+playcount:"Afspeelteller",\r
+rate:"Snelheid",\r
+uimode:"UI Modus",\r
+flash_options:"Flash opties",\r
+qt_options:"Quicktime opties",\r
+wmp_options:"Windows mediaspeler opties",\r
+rmp_options:"Real mediaspeler opties",\r
+shockwave_options:"Shockwave opties",\r
+autogotourl:"Automatisch naar URL",\r
+center:"Centreren",\r
+imagestatus:"Afbeeldingstatus",\r
+maintainaspect:"Verhouding bewaren",\r
+nojava:"Geen java",\r
+prefetch:"Voorladen",\r
+shuffle:"Willekeurige volgorde",\r
+console:"Console",\r
+numloop:"Aantal herhalingen",\r
+controls:"Bediening",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Schaal",\r
+swstretchhalign:"H-Schaal",\r
+swstretchvalign:"V-Schaal",\r
+sound:"Geluid",\r
+progress:"Voortgang",\r
+qtsrc:"Quicktime bron",\r
+qt_stream_warn:"Gestreamde RTSP bronnen dienen op het tabblad geavanceerd bij Quicktime bron te worden opgegeven.\nDe niet-gestreamde versie kan dan bij het tabblad algemeen worden opgegeven.",\r
+align_top:"Boven",\r
+align_right:"Rechts",\r
+align_bottom:"Onder",\r
+align_left:"Links",\r
+align_center:"Centreren",\r
+align_top_left:"Linksboven",\r
+align_top_right:"Rechtsboven",\r
+align_bottom_left:"Linksonder",\r
+align_bottom_right:"Rechtsonder",\r
+flv_options:"Flash video-opties",\r
+flv_scalemode:"Schaalmodus",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Startafbeelding",\r
+flv_starttime:"Starttijd",\r
+flv_defaultvolume:"Standaard volumne",\r
+flv_hiddengui:"GUI verbergen",\r
+flv_autostart:"Automatisch afspelen",\r
+flv_loop:"Herhalen",\r
+flv_showscalemodes:"Schaalmodus weergeven",\r
+flv_smoothvideo:"Soepele video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nn.media_dlg',{\r
+title:"Set inn / rediger inkludert objekt",\r
+general:"Generelt",\r
+advanced:"Avansert",\r
+file:"Fil/URL",\r
+list:"Liste",\r
+size:"Storleik",\r
+preview:"Sj\u00E5 f\u00F8rebels utkast",\r
+constrain_proportions:"Behald proporsjonar",\r
+type:"Type",\r
+id:"Id",\r
+name:"Namn",\r
+class_name:"Klasse",\r
+vspace:"Vertikal avstand",\r
+hspace:"Horisontal avstand",\r
+play:"Autostart",\r
+loop:"Lykkje",\r
+menu:"Vis meny",\r
+quality:"Kvalitet",\r
+scale:"Skalering",\r
+align:"Justering",\r
+salign:"S-justering",\r
+wmode:"W-modus",\r
+bgcolor:"Bakgrunn",\r
+base:"Base",\r
+flashvars:"Flash-variablar",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Skjult",\r
+controller:"Kontroller",\r
+kioskmode:"Kiosk-modus",\r
+playeveryframe:"Spel kvar ramme",\r
+targetcache:"M\u00E5l-cache",\r
+correction:"Ingen korreksjon",\r
+enablejavascript:"Tillat Javaskript",\r
+starttime:"Starttid",\r
+endtime:"Stopptid",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"M\u00E5l",\r
+volume:"Volum",\r
+autostart:"Autostart",\r
+enabled:"K\u00F8yrbar",\r
+fullscreen:"Fullskjerm",\r
+invokeurls:"Aktiviser URL-ar",\r
+mute:"Demp",\r
+stretchtofit:"Strekk for \u00E5 passe inn",\r
+windowlessvideo:"Video utan vindauge",\r
+balance:"Balanse",\r
+baseurl:"Base URL",\r
+captioningid:"Fange opp id",\r
+currentmarker:"Aktiv mark\u00F8r",\r
+currentposition:"Aktiv posisjon",\r
+defaultframe:"Standardramme",\r
+playcount:"Tellar",\r
+rate:"Rate",\r
+uimode:"UI-modus",\r
+flash_options:"Flash-eigenskapar",\r
+qt_options:"Quicktime-innstillingar",\r
+wmp_options:"Windows mediaplayer-innstillingar",\r
+rmp_options:"Real mediaplayer-innstillingar",\r
+shockwave_options:"Shockwave-innstillinger",\r
+autogotourl:"Auto-g\u00E5-til-URL",\r
+center:"Midtstill",\r
+imagestatus:"Status for bilete",\r
+maintainaspect:"Behald proporsjonar",\r
+nojava:"Ikke Java",\r
+prefetch:"Registrer p\u00E5 f\u00F8rehand",\r
+shuffle:"Miks",\r
+console:"Konsoll",\r
+numloop:"Antal gjennoml\u00F8p",\r
+controls:"Kontroller",\r
+scriptcallbacks:"Skript-referanser",\r
+swstretchstyle:"Strekkstil",\r
+swstretchhalign:"Strekk H-justering",\r
+swstretchvalign:"Strekk V-justering",\r
+sound:"Lyd",\r
+progress:"Framdrift",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streama rtsp-ressursar b\u00F8r leggsst til QT Src field i avansert-fana.\nDu b\u00F8r ogs\u00E5 leggje til ein ikkje-streama versjon i src field",\r
+align_top:"Topp",\r
+align_right:"H\u00F8gre",\r
+align_bottom:"Botn",\r
+align_left:"Venstre",\r
+align_center:"Midt",\r
+align_top_left:"Topp venstre",\r
+align_top_right:"Top h\u00F8gre",\r
+align_bottom_left:"Botn venste",\r
+align_bottom_right:"Botn h\u00F8gre",\r
+flv_options:"Flash video-val",\r
+flv_scalemode:"Skalering",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Startbilde",\r
+flv_starttime:"Starttid",\r
+flv_defaultvolume:"Standardvolum",\r
+flv_hiddengui:"Skjult GUI",\r
+flv_autostart:"Autostart",\r
+flv_loop:"L\u00F8kke",\r
+flv_showscalemodes:"Vis skalering",\r
+flv_smoothvideo:"Jamn video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pl.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"G\u0142owny",\r
+advanced:"Zaawansowany",\r
+file:"Plik/URL",\r
+list:"Lista",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Zachowaj proporcje",\r
+type:"Typ",\r
+id:"Id",\r
+name:"Nazwa",\r
+class_name:"Klasa",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Poka\u017C menu",\r
+quality:"Jako\u015B\u0107",\r
+scale:"Scale",\r
+align:"Wyr\u00F3wna\u0107",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"T\u0142o",\r
+base:"Baza",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Ukryty",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Cel",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Pe\u0142ny ekran",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Aktualna pozycja",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash opcje",\r
+qt_options:"Quicktime opcje",\r
+wmp_options:"Windows media player opcje",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"G\u00F3ra",\r
+align_right:"Prawo",\r
+align_bottom:"D\u00F3\u0142",\r
+align_left:"Lewo",\r
+align_center:"\u015Arodek",\r
+align_top_left:"G\u00F3rny lewy",\r
+align_top_right:"G\u00F3rny prawy",\r
+align_bottom_left:"Dolny lewy",\r
+align_bottom_right:"Dolny prawy",\r
+flv_options:"Flash video opcje",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pt.media_dlg',{\r
+title:"Inserir/editar m\u00EDdia embutida",\r
+general:"Geral",\r
+advanced:"Avan\u00E7ado",\r
+file:"Arquivo/URL",\r
+list:"Lista",\r
+size:"Dimens\u00F5es",\r
+preview:"Previs\u00E3o",\r
+constrain_proportions:"Manter propor\u00E7\u00F5es",\r
+type:"Tipo",\r
+id:"Id",\r
+name:"Nome",\r
+class_name:"Classe",\r
+vspace:"Espa\u00E7o vertical",\r
+hspace:"Espa\u00E7o horizontal",\r
+play:"Execu\u00E7\u00E3o autom\u00E1tica",\r
+loop:"Repeti\u00E7\u00E3o autom\u00E1tica",\r
+menu:"Mostrar menu",\r
+quality:"Qualidade",\r
+scale:"Escala",\r
+align:"Alinhamento",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Fundo",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Oculto",\r
+controller:"Controlador",\r
+kioskmode:"Modo Quiosque",\r
+playeveryframe:"Executar todas as frames",\r
+targetcache:"Cache alvo",\r
+correction:"Sem corre\u00E7\u00F5es",\r
+enablejavascript:"Disponibilizar javaScript",\r
+starttime:"Hora in\u00EDcio",\r
+endtime:"Hora fim",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Alvo",\r
+volume:"Volume",\r
+autostart:"Execu\u00E7\u00E3o autom\u00E1tica",\r
+enabled:"Ativado",\r
+fullscreen:"Tela inteira",\r
+invokeurls:"Invocar URLs",\r
+mute:"Mudo",\r
+stretchtofit:"Estender",\r
+windowlessvideo:"V\u00EDdeo sem janela",\r
+balance:"Stereo",\r
+baseurl:"Base URL",\r
+captioningid:"Id de legenda",\r
+currentmarker:"Marcador atual",\r
+currentposition:"Posi\u00E7\u00E3o atual",\r
+defaultframe:"Frame padr\u00E3o",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Op\u00E7\u00F5es Flash",\r
+qt_options:"Op\u00E7\u00F5es Quicktime",\r
+wmp_options:"Op\u00E7\u00F5es Windows Media Player",\r
+rmp_options:"Op\u00E7\u00F5es Real Media Player",\r
+shockwave_options:"Op\u00E7\u00F5es Shockwave",\r
+autogotourl:"Auto goto URL",\r
+center:"Centro",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controles",\r
+scriptcallbacks:"callbacks de script",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Som",\r
+progress:"Progresso",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Fluxos de recursos rtsp devem ser acrescentados ao campo QT Src no Modo Avan\u00E7ado.\NUma vers\u00E3o sem fluxo tamb\u00E9m deve ser acrescentada ao campo Src.",\r
+align_top:"Topo",\r
+align_right:"Direita",\r
+align_bottom:"Embaixo",\r
+align_left:"Esquerda",\r
+align_center:"Centro",\r
+align_top_left:"Topo \u00E0\u00A0 esquerda",\r
+align_top_right:"Topo \u00E0\u00A0 direita",\r
+align_bottom_left:"Embaixo \u00E0\u00A0 esquerda",\r
+align_bottom_right:"Embaixo \u00E0\u00A0 direita",\r
+flv_options:"Op\u00E7\u00F5es de Flash video",\r
+flv_scalemode:"Modo escala",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Imagem inicial",\r
+flv_starttime:"Hor\u00E1rio inicial",\r
+flv_defaultvolume:"Volume padr\u00E3o",\r
+flv_hiddengui:"GUI oculta",\r
+flv_autostart:"Execu\u00E7\u00E3o Autom\u00E1tica",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Mostrar modos escala",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ro.media_dlg',{\r
+title:"Insereaz\u0103 / editeaz\u0103 media",\r
+general:"General",\r
+advanced:"Avansat\u0103",\r
+file:"Fi\u015Fier/URL",\r
+list:"List\u0103",\r
+size:"Dimensiuni",\r
+preview:"Previzualizare",\r
+constrain_proportions:"Men\u0163inere propor\u0163ii",\r
+type:"Tip",\r
+id:"Id",\r
+name:"Nume",\r
+class_name:"Clas\u0103",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Redare automat\u0103",\r
+loop:"Repetare",\r
+menu:"Arat\u0103 meniu",\r
+quality:"Calitate",\r
+scale:"Scar\u0103",\r
+align:"Aliniere",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Fundal",\r
+base:"URL de baza",\r
+flashvars:"Variabile Flash",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Ascuns",\r
+controller:"Controler",\r
+kioskmode:"Mod Kiosk",\r
+playeveryframe:"Red\u0103 fiecare frame",\r
+targetcache:"Target cache",\r
+correction:"F\u0103r\u0103 corecturi",\r
+enablejavascript:"Activeaz\u0103 JavaScript",\r
+starttime:"Timp de \u00EEnceput",\r
+endtime:"Timp de sf\u00E2r\u015Fit",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Tin\u0163a",\r
+volume:"Volum",\r
+autostart:"Pornire automat\u0103",\r
+enabled:"Activat",\r
+fullscreen:"Ecran complet",\r
+invokeurls:"Invoc\u0103 URL-uri",\r
+mute:"Mut",\r
+stretchtofit:"\u00CEntinde pentru a se \u00EEncadra",\r
+windowlessvideo:"Video f\u0103r\u0103 fereastr\u0103",\r
+balance:"Balan\u0163\u0103",\r
+baseurl:"URL baz\u0103",\r
+captioningid:"Titlu id",\r
+currentmarker:"Marcator curent",\r
+currentposition:"Pozi\u0163ie curent\u0103",\r
+defaultframe:"Frame implicit",\r
+playcount:"Numar red\u0103ri",\r
+rate:"Vot",\r
+uimode:"Mod UI",\r
+flash_options:"Op\u0163iuni Flash",\r
+qt_options:"Op\u0163iuni QuickTime",\r
+wmp_options:"Op\u0163iuni Windows media player",\r
+rmp_options:"Op\u0163iuni Real media player",\r
+shockwave_options:"Op\u0163iuni Shockwave",\r
+autogotourl:"Auto goto URL",\r
+center:"Centru",\r
+imagestatus:"Status imagine",\r
+maintainaspect:"Men\u0163ine aspect",\r
+nojava:"F\u0103r\u0103 java",\r
+prefetch:"Prefetch",\r
+shuffle:"Aleator",\r
+console:"Consola",\r
+numloop:"Num\u0103r de repet\u0103ri",\r
+controls:"Controale",\r
+scriptcallbacks:"Script callback",\r
+swstretchstyle:"Stil strech",\r
+swstretchhalign:"Stretch H-Aliniere",\r
+swstretchvalign:"Stretch V-Aliniere",\r
+sound:"Sunet",\r
+progress:"Progres",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Sus",\r
+align_right:"Dreapta",\r
+align_bottom:"Jos",\r
+align_left:"St\u00E2nga",\r
+align_center:"Centru",\r
+align_top_left:"St\u00E2nga sus",\r
+align_top_right:"Dreapta sus",\r
+align_bottom_left:"St\u00E2nga jos",\r
+align_bottom_right:"Dreapta jos",\r
+flv_options:"Op\u0163iuni Flash video",\r
+flv_scalemode:"Moduri scal\u0103",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Imagine start ",\r
+flv_starttime:"Timp start",\r
+flv_defaultvolume:"Volum implicit",\r
+flv_hiddengui:"GUI ascuns",\r
+flv_autostart:"Auto pornire",\r
+flv_loop:"Repetare",\r
+flv_showscalemodes:"Afi\u015Fare moduri scalare",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ru.media_dlg',{\r
+title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043C\u0435\u0434\u0438\u0430-\u043E\u0431\u044A\u0435\u043A\u0442",\r
+general:"\u041E\u0431\u0449\u0438\u0435",\r
+advanced:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435",\r
+file:"\u0424\u0430\u0439\u043B/\u0430\u0434\u0440\u0435\u0441",\r
+list:"\u0421\u043F\u0438\u0441\u043E\u043A",\r
+size:"\u0420\u0430\u0437\u043C\u0435\u0440\u044B",\r
+preview:"\u041F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440",\r
+constrain_proportions:"\u0421\u043E\u0445\u0440\u0430\u043D\u044F\u0442\u044C \u043F\u0440\u043E\u043F\u043E\u0440\u0446\u0438\u0438",\r
+type:"\u0422\u0438\u043F",\r
+id:"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440",\r
+name:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",\r
+class_name:"\u041A\u043B\u0430\u0441\u0441",\r
+vspace:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E",\r
+hspace:"\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E",\r
+play:"\u041F\u0440\u043E\u0438\u0433\u0440\u044B\u0432\u0430\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438",\r
+loop:"\u0417\u0430\u0446\u0438\u043A\u043B\u0438\u0442\u044C",\r
+menu:"\u041E\u0442\u043E\u0431\u0440\u0430\u0437\u0438\u0442\u044C \u043C\u0435\u043D\u044E",\r
+quality:"\u041A\u0430\u0447\u0435\u0441\u0442\u0432\u043E",\r
+scale:"\u041C\u0430\u0441\u0448\u0442\u0430\u0431",\r
+align:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"\u0424\u043E\u043D",\r
+base:"\u041E\u0441\u043D\u043E\u0432\u0430",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"\u041A\u044D\u0448",\r
+hidden:"\u0421\u043A\u0440\u044B\u0442\u043E\u0435",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('si.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"General",\r
+advanced:"Advanced",\r
+file:"File/URL",\r
+list:"List",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sk.media_dlg',{\r
+title:"Vlo\u017Eenie / editovanie vnoren\u00FDch m\u00E9di\u00ED",\r
+general:"Z\u00E1kladn\u00E9",\r
+advanced:"Pokro\u010Dil\u00E9",\r
+file:"S\u00FAbor/URL",\r
+list:"Zoznam",\r
+size:"Rozmery",\r
+preview:"N\u00E1h\u013Ead",\r
+constrain_proportions:"Zachova\u0165 proporcie",\r
+type:"Typ",\r
+id:"ID",\r
+name:"N\u00E1zov",\r
+class_name:"Trieda",\r
+vspace:"Ver. medzera",\r
+hspace:"Hor. medzera",\r
+play:"Samosp\u00FA\u0161\u0165anie",\r
+loop:"Slu\u010Dka",\r
+menu:"Zobrazi\u0165 menu",\r
+quality:"Kvalita",\r
+scale:"Mierka",\r
+align:"Zarovna\u0165",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Pozadie",\r
+base:"Z\u00E1klad",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Z\u00E1loha",\r
+hidden:"Skryt\u00FD",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Prehra\u0165 ka\u017Ed\u00FD frame",\r
+targetcache:"Target cache",\r
+correction:"Bez opravy",\r
+enablejavascript:"Povoli\u0165 JavaScript",\r
+starttime:"Po\u010Diato\u010Dn\u00FD \u010Das",\r
+endtime:"Kone\u010Dn\u00FD \u010Das",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Cie\u013E",\r
+volume:"Hlasitos\u0165 zvuku",\r
+autostart:"Samosp\u00FA\u0161\u0165anie",\r
+enabled:"Povoli\u0165",\r
+fullscreen:"Cel\u00E1 obrazovka",\r
+invokeurls:"Invoke URLs",\r
+mute:"Uml\u010Da\u0165",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Rovnov\u00E1ha",\r
+baseurl:"Z\u00E1kladn\u00E1 URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Predvolen\u00FD r\u00E1mec",\r
+playcount:"Po\u010D\u00EDtadlo prehrat\u00ED",\r
+rate:"Pomer",\r
+uimode:"UI Mode",\r
+flash_options:"Vlastnosti Flash",\r
+qt_options:"Vlastnosti Quicktime",\r
+wmp_options:"Vlastnosti Windows media player",\r
+rmp_options:"Vlastnosti Real media player",\r
+shockwave_options:"Vlastnosti Shockwave",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Konzola",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Zvuk",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Samosp\u00FA\u0161\u0165anie",\r
+flv_loop:"Slu\u010Dka",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sl.media_dlg',{\r
+title:"Vstavi / uredi multimedijsko vsebino",\r
+general:"Splo\u0161no",\r
+advanced:"Napredno",\r
+file:"Datoteka/URL",\r
+list:"Seznam",\r
+size:"Dimenzije",\r
+preview:"Predogled",\r
+constrain_proportions:"Obdr\u017Ei razmerje",\r
+type:"Tip",\r
+id:"Oznaka",\r
+name:"Ime",\r
+class_name:"Razred",\r
+vspace:"n-razmik",\r
+hspace:"v-razmik",\r
+play:"Samodejno predvajaj",\r
+loop:"Zankaj",\r
+menu:"Prika\u017Ei meni",\r
+quality:"Kakovost",\r
+scale:"Stopnja pove\u010Dave",\r
+align:"Poravnava",\r
+salign:"\"SAlign\"",\r
+wmode:"\"WMode\"",\r
+bgcolor:"Ozadje",\r
+base:"\"Base\"",\r
+flashvars:"\"Flashvars\"",\r
+liveconnect:"\"SWLiveConnect\"",\r
+autohref:"\"AutoHREF\"",\r
+cache:"Predpomnjenje",\r
+hidden:"Skrito",\r
+controller:"Nadzorni element",\r
+kioskmode:"Na\u010Din \'kiosk\'",\r
+playeveryframe:"Predvajaj vsak okvir",\r
+targetcache:"Ciljno predpomnjenje",\r
+correction:"Brez popravkov",\r
+enablejavascript:"Omogo\u010Di JavaScript",\r
+starttime:"Za\u010Detni \u010Das",\r
+endtime:"Kon\u010Dni \u010Das",\r
+href:"\"Href\"",\r
+qtsrcchokespeed:"\"Choke speed\"",\r
+target:"Cilj",\r
+volume:"Glasnost",\r
+autostart:"Samodejno za\u010Dni",\r
+enabled:"Omogo\u010Deno",\r
+fullscreen:"Cel zaslon",\r
+invokeurls:"Naslovi URLje",\r
+mute:"Uti\u0161aj",\r
+stretchtofit:"Raz\u0161iri",\r
+windowlessvideo:"Video brez okna",\r
+balance:"Ravnovesje",\r
+baseurl:"Temeljni URL",\r
+captioningid:"Oznaka podnapisov",\r
+currentmarker:"Trenutna oznaka",\r
+currentposition:"Trenutni polo\u017Eaj",\r
+defaultframe:"Privzeti okvir",\r
+playcount:"\u0160tevilo predvajanj",\r
+rate:"Ocena",\r
+uimode:"Na\u010Din uporabni\u0161kega vmesnika",\r
+flash_options:"Mo\u017Enosti Flash",\r
+qt_options:"Mo\u017Enosti Quicktime",\r
+wmp_options:"Mo\u017Enosti Windows media player",\r
+rmp_options:"Mo\u017Enosti Real media player",\r
+shockwave_options:"Mo\u017Enosti Shockwave",\r
+autogotourl:"Samodejno na URL",\r
+center:"Sredina",\r
+imagestatus:"Slika stanja",\r
+maintainaspect:"Zakleni razmerje",\r
+nojava:"Brez Jave",\r
+prefetch:"Vnaprej\u0161nje nalaganje",\r
+shuffle:"Pome\u0161aj",\r
+console:"Konzola",\r
+numloop:"\u0160t. zank",\r
+controls:"Nadzorni elementi",\r
+scriptcallbacks:"Klicani skript",\r
+swstretchstyle:"Slog raztegovanja",\r
+swstretchhalign:"raztegni v-poravnano",\r
+swstretchvalign:"raztegni n-poravnano",\r
+sound:"Zvok",\r
+progress:"Napredek",\r
+qtsrc:"\"QT Src\"",\r
+qt_stream_warn:"Opozorilo: \"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..\"",\r
+align_top:"vrh",\r
+align_right:"desno",\r
+align_bottom:"dno",\r
+align_left:"levo",\r
+align_center:"sredina",\r
+align_top_left:"zgoraj levo",\r
+align_top_right:"zgoraj desno",\r
+align_bottom_left:"spodaj levo",\r
+align_bottom_right:"spodaj desno",\r
+flv_options:"Mo\u017Enosti videa Flash",\r
+flv_scalemode:"Na\u010Din pove\u010Devanja",\r
+flv_buffer:"Medpomnjenje",\r
+flv_startimage:"Za\u010Detna slika",\r
+flv_starttime:"Za\u010Detni \u010Das",\r
+flv_defaultvolume:"Privzeta glasnost",\r
+flv_hiddengui:"Skrit up. vmesnik",\r
+flv_autostart:"Samodejni zagon",\r
+flv_loop:"Zanka",\r
+flv_showscalemodes:"Prika\u017Ei na\u010Dine pove\u010Dave",\r
+flv_smoothvideo:"Meh\u010Daj video",\r
+flv_jscallback:"Klicani JavaScript"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sr.media_dlg',{\r
+title:"Insert / edit embedded media",\r
+general:"General",\r
+advanced:"Advanced",\r
+file:"File/URL",\r
+list:"List",\r
+size:"Dimensions",\r
+preview:"Preview",\r
+constrain_proportions:"Constrain proportions",\r
+type:"Type",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sv.media_dlg',{\r
+title:"Infoga/redigera inb\u00E4ddad media",\r
+general:"Generellt",\r
+advanced:"Avancerat",\r
+file:"Fil/URL",\r
+list:"Lista",\r
+size:"Dimensioner",\r
+preview:"F\u00F6rhandsvisning",\r
+constrain_proportions:"Bibeh\u00E5ll proportionerna",\r
+type:"Typ",\r
+id:"Id",\r
+name:"Namn",\r
+class_name:"Klass",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Spela upp automatiskt",\r
+loop:"Loopa",\r
+menu:"Visa menyn",\r
+quality:"Kvalit\u00E9",\r
+scale:"Skala",\r
+align:"Justera",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Bakgrundsf\u00E4rg",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Spela varje bildruta",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volym",\r
+autostart:"Starta automatiskt",\r
+enabled:"Enabled",\r
+fullscreen:"Fullsk\u00E4rm",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('tr.media_dlg',{\r
+title:"T\u00FCmle\u015Fik medya ekle/d\u00FCzenle",\r
+general:"Genel",\r
+advanced:"Geli\u015Fmi\u015F",\r
+file:"Dosya/URL",\r
+list:"Liste",\r
+size:"Boyutlar",\r
+preview:"\u00D6nizleme",\r
+constrain_proportions:"Orant\u0131y\u0131 koru",\r
+type:"Tip",\r
+id:"Id",\r
+name:"\u0130sim",\r
+class_name:"S\u0131n\u0131f",\r
+vspace:"Dik.Bo\u015Fluk",\r
+hspace:"Yty.Bo\u015Fluk",\r
+play:"Oto.\u00C7al",\r
+loop:"D\u00F6ng\u00FC",\r
+menu:"Men\u00FC g\u00F6ster",\r
+quality:"Kalite",\r
+scale:"\u00D6l\u00E7ek",\r
+align:"Hizala",\r
+salign:"SHizala",\r
+wmode:"WMode",\r
+bgcolor:"Arkaplan",\r
+base:"Taban",\r
+flashvars:"Flash de\u011Fi\u015F.",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"Oto.HREF",\r
+cache:"\u00D6nbellek",\r
+hidden:"Gizli",\r
+controller:"Kontrolc\u00FC",\r
+kioskmode:"Kiosk modu",\r
+playeveryframe:"Her \u00E7er\u00E7eveyi \u00E7al",\r
+targetcache:"Hedef \u00F6nbellek",\r
+correction:"D\u00FCzeltmesiz",\r
+enablejavascript:"JavaScript etkin",\r
+starttime:"Ba\u015Flang\u0131c zaman\u0131",\r
+endtime:"Biti\u015F zaman\u0131",\r
+href:"Href",\r
+qtsrcchokespeed:"T\u0131kanma h\u0131z\u0131",\r
+target:"Hedef",\r
+volume:"Ses d\u00FCzeyi",\r
+autostart:"Oto.ba\u015Flat",\r
+enabled:"Etkin",\r
+fullscreen:"Tam ekran",\r
+invokeurls:"\u00C7a\u011Fr\u0131lacak URL'ler",\r
+mute:"Sessiz",\r
+stretchtofit:"S\u0131\u011Facak \u015Fekilde boyutland\u0131r",\r
+windowlessvideo:"Penceresiz video",\r
+balance:"Balans",\r
+baseurl:"Taban URL",\r
+captioningid:"Ba\u015Fl\u0131kland\u0131rma id",\r
+currentmarker:"\u015Eimdiki i\u015Faret\u00E7i",\r
+currentposition:"\u015Eimdiki konum",\r
+defaultframe:"Varsay\u0131lan \u00E7er\u00E7eve",\r
+playcount:"\u00C7alma say\u0131s\u0131",\r
+rate:"Oran",\r
+uimode:"UI Modu",\r
+flash_options:"Flash se\u00E7enekleri",\r
+qt_options:"Quicktime se\u00E7enekleri",\r
+wmp_options:"Windows media player se\u00E7enekleri",\r
+rmp_options:"Real media player se\u00E7enekleri",\r
+shockwave_options:"Shockwave se\u00E7enekleri",\r
+autogotourl:"Otomatik gidilecek URL",\r
+center:"Ortala",\r
+imagestatus:"Resim durumu",\r
+maintainaspect:"Orant\u0131y\u0131 koru",\r
+nojava:"Java yok",\r
+prefetch:"\u00D6n-getirme",\r
+shuffle:"Kar\u0131\u015Ft\u0131r",\r
+console:"Konsol",\r
+numloop:"D\u00F6ng\u00FC say\u0131s\u0131",\r
+controls:"Kontroller",\r
+scriptcallbacks:"Script \u00E7a\u011Fr\u0131mlar\u0131",\r
+swstretchstyle:"Esnetme stili",\r
+swstretchhalign:"Esnetme Y-Hiza",\r
+swstretchvalign:"Esnetme D-Hiza",\r
+sound:"Ses",\r
+progress:"\u0130lerleme",\r
+qtsrc:"QT Kay.",\r
+qt_stream_warn:"Ak\u0131nt\u0131 rtsp kaynaklar\u0131 geli\u015Fmi\u015F alt\u0131ndaki QT Kay. alan\u0131na girilmeli.\nSrc alan\u0131na ayr\u0131ca ak\u0131nt\u0131l\u0131 olmayan bir s\u00FCr\u00FCm\u00FC de girmelisiniz..",\r
+align_top:"\u00DCst",\r
+align_right:"Sa\u011Fa",\r
+align_bottom:"Alt",\r
+align_left:"Sola",\r
+align_center:"Ortala",\r
+align_top_left:"Sol \u00DCst",\r
+align_top_right:"Sa\u011F \u00FCst",\r
+align_bottom_left:"Sol alt",\r
+align_bottom_right:"Sa\u011F alt",\r
+flv_options:"Flash video se\u00E7enekleri",\r
+flv_scalemode:"Esnetme modu",\r
+flv_buffer:"Tampon",\r
+flv_startimage:"Ba\u015Flang\u0131\u00E7 resmi",\r
+flv_starttime:"Ba\u015Flang\u0131\u00E7 zaman\u0131",\r
+flv_defaultvolume:"Varsay\u0131lan ses d\u00FCzeyi",\r
+flv_hiddengui:"Gizli GUI",\r
+flv_autostart:"Otomatik ba\u015Flat",\r
+flv_loop:"D\u00F6ng\u00FC",\r
+flv_showscalemodes:"\u00D6l\u00E7ek modlar\u0131n\u0131 g\u00F6ster",\r
+flv_smoothvideo:"Video'yu yumu\u015Fat",\r
+flv_jscallback:"JS \u00C7a\u011Fr\u0131mlar\u0131"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('uk.media_dlg',{\r
+title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 / \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 embedded media",\r
+general:"\u0417\u0430\u0433\u0430\u043B\u044C\u043D\u0435",\r
+advanced:"\u0414\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u043E",\r
+file:"\u0424\u0430\u0439\u043B/URL",\r
+list:"\u0421\u043F\u0438\u0441\u043E\u043A",\r
+size:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438",\r
+preview:"\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u0434",\r
+constrain_proportions:"\u0417\u0431\u0435\u0440\u0456\u0433\u0430\u0442\u0438 \u043F\u0440\u043E\u043F\u043E\u0440\u0446\u0456\u0457",\r
+type:"\u0422\u0438\u043F",\r
+id:"Id",\r
+name:"\u041D\u0430\u0437\u0432\u0430",\r
+class_name:"\u041A\u043B\u0430\u0441",\r
+vspace:"\u0432\u0435\u0440\u0442.\u0432\u0456\u0434\u0441\u0442\u0443\u043F",\r
+hspace:"\u0433\u043E\u0440.\u0432\u0456\u0434\u0441\u0442\u0443\u043F",\r
+play:"\u0410\u0432\u0442\u043E\u043F\u043B\u0435\u0439",\r
+loop:"\u041B\u0443\u043F",\r
+menu:"\u041F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043C\u0435\u043D\u044E",\r
+quality:"\u042F\u043A\u0456\u0441\u0442\u044C",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"\u0424\u043E\u043D",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"\u041A\u0435\u0448",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"\u0413\u0443\u0447\u043D\u0456\u0441\u0442\u044C",\r
+autostart:"\u0410\u0432\u0442\u043E\u0441\u0442\u0430\u0440\u0442",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"\u0411\u0430\u043B\u0430\u043D\u0441",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Windows media player options",\r
+rmp_options:"Real media player options",\r
+shockwave_options:"Shockwave options",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('vi.media_dlg',{\r
+title:"Ch\u00E8n/thay \u0111\u1ED5i media(flash, nh\u1EA1c, video ...)",\r
+general:"C\u01A1 b\u1EA3n",\r
+advanced:"N\u00E2ng cao",\r
+file:"\u0110\u1ECBa ch\u1EC9 media",\r
+list:"List",\r
+size:"K\u00EDch th\u01B0\u1EDBc",\r
+preview:"Xem tr\u01B0\u1EDBc",\r
+constrain_proportions:"Gi\u1EEF \u0111\u00FAng t\u1EC9 l\u1EC7",\r
+type:"Lo\u1EA1i",\r
+id:"Id",\r
+name:"Name",\r
+class_name:"Class",\r
+vspace:"V-Space",\r
+hspace:"H-Space",\r
+play:"Auto play",\r
+loop:"Loop",\r
+menu:"Show menu",\r
+quality:"Quality",\r
+scale:"Scale",\r
+align:"Align",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"Background",\r
+base:"Base",\r
+flashvars:"Flashvars",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"Cache",\r
+hidden:"Hidden",\r
+controller:"Controller",\r
+kioskmode:"Kiosk mode",\r
+playeveryframe:"Play every frame",\r
+targetcache:"Target cache",\r
+correction:"No correction",\r
+enablejavascript:"Enable JavaScript",\r
+starttime:"Start time",\r
+endtime:"End time",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke speed",\r
+target:"Target",\r
+volume:"Volume",\r
+autostart:"Auto start",\r
+enabled:"Enabled",\r
+fullscreen:"Fullscreen",\r
+invokeurls:"Invoke URLs",\r
+mute:"Mute",\r
+stretchtofit:"Stretch to fit",\r
+windowlessvideo:"Windowless video",\r
+balance:"Balance",\r
+baseurl:"Base URL",\r
+captioningid:"Captioning id",\r
+currentmarker:"Current marker",\r
+currentposition:"Current position",\r
+defaultframe:"Default frame",\r
+playcount:"Play count",\r
+rate:"Rate",\r
+uimode:"UI Mode",\r
+flash_options:"Flash options",\r
+qt_options:"Quicktime options",\r
+wmp_options:"Thi\u1EBFt l\u1EADp cho Windows media player",\r
+rmp_options:"Thi\u1EBFt l\u1EADp cho Real media player",\r
+shockwave_options:"Thi\u1EBFt l\u1EADp cho Shockwave",\r
+autogotourl:"Auto goto URL",\r
+center:"Center",\r
+imagestatus:"Image status",\r
+maintainaspect:"Maintain aspect",\r
+nojava:"No java",\r
+prefetch:"Prefetch",\r
+shuffle:"Shuffle",\r
+console:"Console",\r
+numloop:"Num loops",\r
+controls:"Controls",\r
+scriptcallbacks:"Script callbacks",\r
+swstretchstyle:"Stretch style",\r
+swstretchhalign:"Stretch H-Align",\r
+swstretchvalign:"Stretch V-Align",\r
+sound:"Sound",\r
+progress:"Progress",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"Top",\r
+align_right:"Right",\r
+align_bottom:"Bottom",\r
+align_left:"Left",\r
+align_center:"Center",\r
+align_top_left:"Top left",\r
+align_top_right:"Top right",\r
+align_bottom_left:"Bottom left",\r
+align_bottom_right:"Bottom right",\r
+flv_options:"Flash video options",\r
+flv_scalemode:"Scale mode",\r
+flv_buffer:"Buffer",\r
+flv_startimage:"Start image",\r
+flv_starttime:"Start time",\r
+flv_defaultvolume:"Default volumne",\r
+flv_hiddengui:"Hidden GUI",\r
+flv_autostart:"Auto start",\r
+flv_loop:"Loop",\r
+flv_showscalemodes:"Show scale modes",\r
+flv_smoothvideo:"Smooth video",\r
+flv_jscallback:"JS Callback"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('zh.media_dlg',{\r
+title:"\u63D2\u5165/\u7F16\u8F91\u5F71\u7247",\r
+general:"\u4E00\u822C",\r
+advanced:"\u9AD8\u7EA7",\r
+file:"\u6863\u6848/URL",\r
+list:"\u5217\u8868",\r
+size:"\u5927\u5C0F",\r
+preview:"\u9884\u89C8",\r
+constrain_proportions:"\u7EF4\u6301\u6BD4\u4F8B",\r
+type:"\u7C7B\u578B",\r
+id:"ID",\r
+name:"\u540D\u79F0",\r
+class_name:"\u7C7B\u522B",\r
+vspace:"\u5782\u76F4\u95F4\u8DDD",\r
+hspace:"\u6C34\u5E73\u95F4\u8DDD",\r
+play:"\u81EA\u52A8\u64AD\u653E",\r
+loop:"\u5FAA\u73AF",\r
+menu:"\u663E\u793A\u9009\u9879",\r
+quality:"\u54C1\u8D28",\r
+scale:"\u7F29\u653E",\r
+align:"\u5BF9\u9F50",\r
+salign:"SAlign",\r
+wmode:"WMode",\r
+bgcolor:"\u80CC\u666F\u8272",\r
+base:"\u57FA\u5E95",\r
+flashvars:"Flash\u53D8\u91CF",\r
+liveconnect:"SWLiveConnect",\r
+autohref:"AutoHREF",\r
+cache:"\u6682\u5B58\u533A",\r
+hidden:"\u9690\u85CF",\r
+controller:"\u63A7\u5236\u53F0",\r
+kioskmode:"Kiosk\u6A21\u5F0F",\r
+playeveryframe:"\u9010\u5E27\u64AD\u653E",\r
+targetcache:"\u76EE\u6807\u6682\u5B58",\r
+correction:"\u4FEE\u6B63",\r
+enablejavascript:"\u542F\u7528JavaScript",\r
+starttime:"\u5F00\u59CB\u65F6\u95F4",\r
+endtime:"\u7ED3\u675F\u65F6\u95F4",\r
+href:"Href",\r
+qtsrcchokespeed:"Choke\u901F\u5EA6",\r
+target:"\u76EE\u6807",\r
+volume:"\u97F3\u91CF",\r
+autostart:"\u81EA\u52A8\u542F\u7528",\r
+enabled:"\u542F\u7528",\r
+fullscreen:"\u5168\u5C4F\u5E55",\r
+invokeurls:"\u6302\u7528\u7684URLs",\r
+mute:"\u9759\u97F3",\r
+stretchtofit:"\u7F29\u653E\u81F3\u9002\u5408\u5927\u5C0F",\r
+windowlessvideo:"\u65E0\u7A97\u53E3\u64AD\u653E",\r
+balance:"\u5E73\u8861",\r
+baseurl:"\u57FA\u5E95URL",\r
+captioningid:"\u5B57\u5E55\u7F16\u53F7",\r
+currentmarker:"\u76EE\u524D\u6807\u8BB0",\r
+currentposition:"\u5F53\u524D\u4F4D\u7F6E",\r
+defaultframe:"\u9884\u8BBE\u5E27",\r
+playcount:"\u64AD\u653E\u6B21\u6570",\r
+rate:"\u7801\u7387",\r
+uimode:"UI\u6A21\u5F0F",\r
+flash_options:"Flash\u9009\u9879",\r
+qt_options:"Quicktime\u9009\u9879",\r
+wmp_options:"Windows Media Player\u9009\u9879",\r
+rmp_options:"Real Media Player\u9009\u9879",\r
+shockwave_options:"Shockwave\u9009\u9879",\r
+autogotourl:"\u81EA\u52A8\u8F6C\u81F3URL",\r
+center:"\u5C45\u4E2D",\r
+imagestatus:"\u56FE\u7247\u72B6\u6001",\r
+maintainaspect:"\u7EF4\u6301\u6BD4\u4F8B",\r
+nojava:"No java",\r
+prefetch:"\u9884\u8BFB",\r
+shuffle:"\u968F\u673A",\r
+console:"\u63A7\u5236\u53F0",\r
+numloop:"\u5FAA\u73AF\u6B21\u6570",\r
+controls:"\u63A7\u5236",\r
+scriptcallbacks:"Script\u56DE\u4F20",\r
+swstretchstyle:"\u7F29\u653E\u6837\u5F0F",\r
+swstretchhalign:"\u7F29\u653E\u81F3\u6C34\u5E73\u5BF9\u9F50",\r
+swstretchvalign:"\u7F29\u653E\u81F3\u5782\u76F4\u5BF9\u9F50",\r
+sound:"\u58F0\u97F3",\r
+progress:"\u8FDB\u5EA6",\r
+qtsrc:"QT Src",\r
+qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
+align_top:"\u5C45\u9876",\r
+align_right:"\u5C45\u53F3",\r
+align_bottom:"\u5C45\u5E95",\r
+align_left:"\u5C45\u5DE6",\r
+align_center:"\u5C45\u4E2D",\r
+align_top_left:"\u5C45\u9876\u5DE6",\r
+align_top_right:"\u5C45\u9876\u53F3",\r
+align_bottom_left:"\u5C45\u5E95\u5DE6",\r
+align_bottom_right:"\u5C45\u5E95\u53F3",\r
+flv_options:"Flash\u89C6\u9891\u9009\u9879",\r
+flv_scalemode:"\u7F29\u653E\u6A21\u5F0F",\r
+flv_buffer:"\u7F13\u51B2",\r
+flv_startimage:"\u542F\u52A8\u56FE\u7247",\r
+flv_starttime:"\u542F\u52A8\u65F6\u95F4",\r
+flv_defaultvolume:"\u9884\u8BBE\u97F3\u91CF",\r
+flv_hiddengui:"\u9690\u85CFGUI",\r
+flv_autostart:"\u81EA\u52A8\u542F\u52A8",\r
+flv_loop:"\u5FAA\u73AF",\r
+flv_showscalemodes:"\u663E\u793A\u7F29\u653E\u6A21\u5F0F",\r
+flv_smoothvideo:"\u5E73\u6ED1\u89C6\u56FE",\r
+flv_jscallback:"JS\u56DE\u4F20"\r
+});
\ No newline at end of file
-(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.PastePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mcePasteText',function(ui,v){if(ui){if((ed.getParam('paste_use_dialog',true))||(!tinymce.isIE)){ed.windowManager.open({file:url+'/pastetext.htm',width:450,height:400,inline:1},{plugin_url:url});}else t._insertText(clipboardData.getData("Text"),true);}else t._insertText(v.html,v.linebreaks);});ed.addCommand('mcePasteWord',function(ui,v){if(ui){if((ed.getParam('paste_use_dialog',true))||(!tinymce.isIE)){ed.windowManager.open({file:url+'/pasteword.htm',width:450,height:400,inline:1},{plugin_url:url});}else t._insertText(t._clipboardHTML());}else t._insertWordContent(v);});ed.addCommand('mceSelectAll',function(){ed.execCommand('selectall');});ed.addButton('pastetext',{title:'paste.paste_text_desc',cmd:'mcePasteText',ui:true});ed.addButton('pasteword',{title:'paste.paste_word_desc',cmd:'mcePasteWord',ui:true});ed.addButton('selectall',{title:'paste.selectall_desc',cmd:'mceSelectAll'});if(ed.getParam("paste_auto_cleanup_on_paste",false)){ed.onPaste.add(function(ed,e){return t._handlePasteEvent(e)});}if(!tinymce.isIE&&ed.getParam("paste_auto_cleanup_on_paste",false)){ed.onKeyDown.add(function(ed,e){if(e.ctrlKey&&e.keyCode==86){window.setTimeout(function(){ed.execCommand("mcePasteText",true);},1);Event.cancel(e);}});}},getInfo:function(){return{longname:'Paste text/word',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_handlePasteEvent:function(e){var html=this._clipboardHTML(),ed=this.editor,sel=ed.selection,r;if(ed&&(r=sel.getRng())&&r.text.length>0)ed.execCommand('delete');if(html&&html.length>0)ed.execCommand('mcePasteWord',false,html);return Event.cancel(e);},_insertText:function(content,bLinebreaks){if(content&&content.length>0){if(bLinebreaks){if(this.editor.getParam("paste_create_paragraphs",true)){var rl=this.editor.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);content=content.replace(/\r\n\r\n/g,'</p><p>');content=content.replace(/\r\r/g,'</p><p>');content=content.replace(/\n\n/g,'</p><p>');if((pos=content.indexOf('</p><p>'))!=-1){this.editor.execCommand("Delete");var node=this.editor.selection.getNode();var breakElms=[];do{if(node.nodeType==1){if(node.nodeName=="TD"||node.nodeName=="BODY")break;breakElms[breakElms.length]=node;}}while(node=node.parentNode);var before="",after="</p>";before+=content.substring(0,pos);for(var i=0;i<breakElms.length;i++){before+="</"+breakElms[i].nodeName+">";after+="<"+breakElms[(breakElms.length-1)-i].nodeName+">";}before+="<p>";content=before+content.substring(pos+7)+after;}}if(this.editor.getParam("paste_create_linebreaks",true)){content=content.replace(/\r\n/g,'<br />');content=content.replace(/\r/g,'<br />');content=content.replace(/\n/g,'<br />');}}this.editor.execCommand("mceInsertRawHTML",false,content);}},_insertWordContent:function(content){var t=this,ed=t.editor;if(content&&content.length>0){var bull=String.fromCharCode(8226);var middot=String.fromCharCode(183);if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','before',content);var rl=ed.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);if(this.editor.getParam("paste_convert_headers_to_strong",false)){content=content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>','gi'),'<p><b>$1</b></p>');}content=content.replace(new RegExp('tab-stops: list [0-9]+.0pt">','gi'),'">'+"--list--");content=content.replace(new RegExp(bull+"(.*?)<BR>","gi"),"<p>"+middot+"$1</p>");content=content.replace(new RegExp('<SPAN style="mso-list: Ignore">','gi'),"<span>"+bull);content=content.replace(/<o:p><\/o:p>/gi,"");content=content.replace(new RegExp('<br style="page-break-before: always;.*>','gi'),'-- page break --');content=content.replace(new RegExp('<(!--)([^>]*)(--)>','g'),"");if(this.editor.getParam("paste_remove_spans",true))content=content.replace(/<\/?span[^>]*>/gi,"");if(this.editor.getParam("paste_remove_styles",true))content=content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)','gi'),"<$1$3");content=content.replace(/<\/?font[^>]*>/gi,"");switch(this.editor.getParam("paste_strip_class_attributes","all")){case"all":content=content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi,"<$1$3");break;case"mso":content=content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)','gi'),"<$1$3");break;}content=content.replace(new RegExp('href="?'+this._reEscape(""+document.location)+'','gi'),'href="'+this.editor.documentBaseURI.getURI());content=content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");content=content.replace(/<\\?\?xml[^>]*>/gi,"");content=content.replace(/<\/?\w+:[^>]*>/gi,"");content=content.replace(/-- page break --\s*<p> <\/p>/gi,"");content=content.replace(/-- page break --/gi,"");if(!this.editor.getParam('force_p_newlines')){content=content.replace('','','gi');content=content.replace('</p>','<br /><br />','gi');}if(!tinymce.isIE&&!this.editor.getParam('force_p_newlines')){content=content.replace(/<\/?p[^>]*>/gi,"");}content=content.replace(/<\/?div[^>]*>/gi,"");if(this.editor.getParam("paste_convert_middot_lists",true)){var div=ed.dom.create("div",null,content);var className=this.editor.getParam("paste_unindented_list_class","unIndentedList");while(this._convertMiddots(div,"--list--"));while(this._convertMiddots(div,middot,className));while(this._convertMiddots(div,bull));content=div.innerHTML;}if(this.editor.getParam("paste_convert_headers_to_strong",false)){content=content.replace(/<h[1-6]> <\/h[1-6]>/gi,'<p> </p>');content=content.replace(/<h[1-6]>/gi,'<p><b>');content=content.replace(/<\/h[1-6]>/gi,'</b></p>');content=content.replace(/<b> <\/b>/gi,'<b> </b>');content=content.replace(/^( )*/gi,'');}content=content.replace(/--list--/gi,"");if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','after',content);this.editor.execCommand("mceInsertContent",false,content);if(this.editor.getParam('paste_force_cleanup_wordpaste',true)){var ed=this.editor;window.setTimeout(function(){ed.execCommand("mceCleanup");},1);}}},_reEscape:function(s){var l="?.\\*[](){}+^$:";var o="";for(var i=0;i<s.length;i++){var c=s.charAt(i);if(l.indexOf(c)!=-1)o+='\\'+c;else o+=c;}return o;},_convertMiddots:function(div,search,class_name){var ed=this.editor,mdot=String.fromCharCode(183),bull=String.fromCharCode(8226);var nodes,prevul,i,p,ul,li,np,cp,li;nodes=div.getElementsByTagName("p");for(i=0;i<nodes.length;i++){p=nodes[i];if(p.innerHTML.indexOf(search)==0){ul=ed.dom.create("ul");if(class_name)ul.className=class_name;li=ed.dom.create("li");li.innerHTML=p.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--| ',"gi"),'');ul.appendChild(li);np=p.nextSibling;while(np){if(np.nodeType==3&&new RegExp('^\\s$','m').test(np.nodeValue)){np=np.nextSibling;continue;}if(search==mdot){if(np.nodeType==1&&new RegExp('^o(\\s+| )').test(np.innerHTML)){if(!prevul){prevul=ul;ul=ed.dom.create("ul");prevul.appendChild(ul);}np.innerHTML=np.innerHTML.replace(/^o/,'');}else{if(prevul){ul=prevul;prevul=null;}if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break;}}else{if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break;}cp=np.nextSibling;li=ed.dom.create("li");li.innerHTML=np.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--| ',"gi"),'');np.parentNode.removeChild(np);ul.appendChild(li);np=cp;}p.parentNode.replaceChild(ul,p);return true;}}return false;},_clipboardHTML:function(){var div=document.getElementById('_TinyMCE_clipboardHTML');if(!div){var div=document.createElement('DIV');div.id='_TinyMCE_clipboardHTML';with(div.style){visibility='hidden';overflow='hidden';position='absolute';width=1;height=1;}document.body.appendChild(div);}div.innerHTML='';var rng=document.body.createTextRange();rng.moveToElementText(div);rng.execCommand('Paste');var html=div.innerHTML;div.innerHTML='';return html;}});tinymce.PluginManager.add('paste',tinymce.plugins.PastePlugin);})();
\ No newline at end of file
+(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.PastePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mcePasteText',function(ui,v){if(ui){if((ed.getParam('paste_use_dialog',true))||(!tinymce.isIE)){ed.windowManager.open({file:url+'/pastetext.htm',width:450,height:400,inline:1},{plugin_url:url});}else t._insertText(clipboardData.getData("Text"),true);}else t._insertText(v.html,v.linebreaks);});ed.addCommand('mcePasteWord',function(ui,v){if(ui){if((ed.getParam('paste_use_dialog',true))||(!tinymce.isIE)){ed.windowManager.open({file:url+'/pasteword.htm',width:450,height:400,inline:1},{plugin_url:url});}else t._insertText(t._clipboardHTML());}else t._insertWordContent(v);});ed.addCommand('mceSelectAll',function(){ed.execCommand('selectall');});ed.addButton('pastetext',{title:'paste.paste_text_desc',cmd:'mcePasteText',ui:true});ed.addButton('pasteword',{title:'paste.paste_word_desc',cmd:'mcePasteWord',ui:true});ed.addButton('selectall',{title:'paste.selectall_desc',cmd:'mceSelectAll'});if(ed.getParam("paste_auto_cleanup_on_paste",false)){ed.onPaste.add(function(ed,e){return t._handlePasteEvent(e)});}if(!tinymce.isIE&&ed.getParam("paste_auto_cleanup_on_paste",false)){ed.onKeyDown.add(function(ed,e){if(e.ctrlKey&&e.keyCode==86){window.setTimeout(function(){ed.execCommand("mcePasteText",true);},1);Event.cancel(e);}});}},getInfo:function(){return{longname:'Paste text/word',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_handlePasteEvent:function(e){var html=this._clipboardHTML(),ed=this.editor,sel=ed.selection,r;if(ed&&(r=sel.getRng())&&r.text.length>0)ed.execCommand('delete');if(html&&html.length>0)ed.execCommand('mcePasteWord',false,html);return Event.cancel(e);},_insertText:function(content,bLinebreaks){content=this.editor.dom.encode(content);if(content&&content.length>0){if(bLinebreaks){if(this.editor.getParam("paste_create_paragraphs",true)){var rl=this.editor.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);content=content.replace(/\r\n\r\n/g,'</p><p>');content=content.replace(/\r\r/g,'</p><p>');content=content.replace(/\n\n/g,'</p><p>');if((pos=content.indexOf('</p><p>'))!=-1){this.editor.execCommand("Delete");var node=this.editor.selection.getNode();var breakElms=[];do{if(node.nodeType==1){if(node.nodeName=="TD"||node.nodeName=="BODY")break;breakElms[breakElms.length]=node;}}while(node=node.parentNode);var before="",after="</p>";before+=content.substring(0,pos);for(var i=0;i<breakElms.length;i++){before+="</"+breakElms[i].nodeName+">";after+="<"+breakElms[(breakElms.length-1)-i].nodeName+">";}before+="<p>";content=before+content.substring(pos+7)+after;}}if(this.editor.getParam("paste_create_linebreaks",true)){content=content.replace(/\r\n/g,'<br />');content=content.replace(/\r/g,'<br />');content=content.replace(/\n/g,'<br />');}}this.editor.execCommand("mceInsertRawHTML",false,content);}},_insertWordContent:function(content){var t=this,ed=t.editor;if(content&&content.length>0){var bull=String.fromCharCode(8226);var middot=String.fromCharCode(183);if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','before',content);var rl=ed.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);if(this.editor.getParam("paste_convert_headers_to_strong",false)){content=content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>','gi'),'<p><b>$1</b></p>');}content=content.replace(new RegExp('tab-stops: list [0-9]+.0pt">','gi'),'">'+"--list--");content=content.replace(new RegExp(bull+"(.*?)<BR>","gi"),"<p>"+middot+"$1</p>");content=content.replace(new RegExp('<SPAN style="mso-list: Ignore">','gi'),"<span>"+bull);content=content.replace(/<o:p><\/o:p>/gi,"");content=content.replace(new RegExp('<br style="page-break-before: always;.*>','gi'),'-- page break --');content=content.replace(new RegExp('<(!--)([^>]*)(--)>','g'),"");if(this.editor.getParam("paste_remove_spans",true))content=content.replace(/<\/?span[^>]*>/gi,"");if(this.editor.getParam("paste_remove_styles",true))content=content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)','gi'),"<$1$3");content=content.replace(/<\/?font[^>]*>/gi,"");switch(this.editor.getParam("paste_strip_class_attributes","all")){case"all":content=content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi,"<$1$3");break;case"mso":content=content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)','gi'),"<$1$3");break;}content=content.replace(new RegExp('href="?'+this._reEscape(""+document.location)+'','gi'),'href="'+this.editor.documentBaseURI.getURI());content=content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");content=content.replace(/<\\?\?xml[^>]*>/gi,"");content=content.replace(/<\/?\w+:[^>]*>/gi,"");content=content.replace(/-- page break --\s*<p> <\/p>/gi,"");content=content.replace(/-- page break --/gi,"");if(!this.editor.getParam('force_p_newlines')){content=content.replace('','','gi');content=content.replace('</p>','<br /><br />','gi');}if(!tinymce.isIE&&!this.editor.getParam('force_p_newlines')){content=content.replace(/<\/?p[^>]*>/gi,"");}content=content.replace(/<\/?div[^>]*>/gi,"");if(this.editor.getParam("paste_convert_middot_lists",true)){var div=ed.dom.create("div",null,content);var className=this.editor.getParam("paste_unindented_list_class","unIndentedList");while(this._convertMiddots(div,"--list--"));while(this._convertMiddots(div,middot,className));while(this._convertMiddots(div,bull));content=div.innerHTML;}if(this.editor.getParam("paste_convert_headers_to_strong",false)){content=content.replace(/<h[1-6]> <\/h[1-6]>/gi,'<p> </p>');content=content.replace(/<h[1-6]>/gi,'<p><b>');content=content.replace(/<\/h[1-6]>/gi,'</b></p>');content=content.replace(/<b> <\/b>/gi,'<b> </b>');content=content.replace(/^( )*/gi,'');}content=content.replace(/--list--/gi,"");if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','after',content);this.editor.execCommand("mceInsertContent",false,content);if(this.editor.getParam('paste_force_cleanup_wordpaste',true)){var ed=this.editor;window.setTimeout(function(){ed.execCommand("mceCleanup");},1);}}},_reEscape:function(s){var l="?.\\*[](){}+^$:";var o="";for(var i=0;i<s.length;i++){var c=s.charAt(i);if(l.indexOf(c)!=-1)o+='\\'+c;else o+=c;}return o;},_convertMiddots:function(div,search,class_name){var ed=this.editor,mdot=String.fromCharCode(183),bull=String.fromCharCode(8226);var nodes,prevul,i,p,ul,li,np,cp,li;nodes=div.getElementsByTagName("p");for(i=0;i<nodes.length;i++){p=nodes[i];if(p.innerHTML.indexOf(search)==0){ul=ed.dom.create("ul");if(class_name)ul.className=class_name;li=ed.dom.create("li");li.innerHTML=p.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--| ',"gi"),'');ul.appendChild(li);np=p.nextSibling;while(np){if(np.nodeType==3&&new RegExp('^\\s$','m').test(np.nodeValue)){np=np.nextSibling;continue;}if(search==mdot){if(np.nodeType==1&&new RegExp('^o(\\s+| )').test(np.innerHTML)){if(!prevul){prevul=ul;ul=ed.dom.create("ul");prevul.appendChild(ul);}np.innerHTML=np.innerHTML.replace(/^o/,'');}else{if(prevul){ul=prevul;prevul=null;}if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break;}}else{if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break;}cp=np.nextSibling;li=ed.dom.create("li");li.innerHTML=np.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--| ',"gi"),'');np.parentNode.removeChild(np);ul.appendChild(li);np=cp;}p.parentNode.replaceChild(ul,p);return true;}}return false;},_clipboardHTML:function(){var div=document.getElementById('_TinyMCE_clipboardHTML');if(!div){var div=document.createElement('DIV');div.id='_TinyMCE_clipboardHTML';with(div.style){visibility='hidden';overflow='hidden';position='absolute';width=1;height=1;}document.body.appendChild(div);}div.innerHTML='';var rng=document.body.createTextRange();rng.moveToElementText(div);rng.execCommand('Paste');var html=div.innerHTML;div.innerHTML='';return html;}});tinymce.PluginManager.add('paste',tinymce.plugins.PastePlugin);})();
\ No newline at end of file
/**\r
- * $Id: editor_plugin_src.js 738 2008-03-20 20:00:48Z spocke $\r
+ * $Id: editor_plugin_src.js 862 2008-06-02 20:09:06Z spocke $\r
*\r
* @author Moxiecode\r
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
return Event.cancel(e);\r
},\r
\r
- _insertText : function(content, bLinebreaks) { \r
+ _insertText : function(content, bLinebreaks) {\r
+ content = this.editor.dom.encode(content);\r
+\r
if (content && content.length > 0) {\r
if (bLinebreaks) { \r
// Special paragraph treatment \r
content = content.replace(/\n/g, '<br />');\r
}\r
} \r
- \r
+\r
this.editor.execCommand("mceInsertRawHTML", false, content); \r
}\r
},\r
--- /dev/null
+tinyMCE.addI18n('ar.searchreplace_dlg',{\r
+searchnext_desc:"\u0628\u062D\u062B \u0645\u0646 \u062C\u062F\u064A\u062F",\r
+notfound:"\u0627\u0646\u062A\u0647\u0649 \u0627\u0644\u0628\u062D\u062B. \u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0643\u0644\u0645\u0629 \u0627\u0644\u0628\u062D\u062B.",\r
+search_title:"\u0628\u062D\u062B",\r
+replace_title:"\u0628\u062D\u062B/\u0627\u0633\u062A\u0628\u062F\u0627\u0644",\r
+allreplaced:"All occurrences of the search string were replaced.",\r
+findwhat:"\u0627\u0644\u0628\u062D\u062B \u0639\u0646",\r
+replacewith:"\u0627\u0633\u062A\u0628\u062F\u0627\u0644 \u0628\u0640",\r
+direction:"\u0627\u0644\u0625\u062A\u062C\u0627\u0647",\r
+up:"\u0627\u0639\u0644\u0649",\r
+down:"\u0627\u0633\u0641\u0644",\r
+mcase:"\u0627\u0644\u062A\u0623\u0643\u062F \u0645\u0646 \u062D\u0627\u0644\u0629 \u0627\u0644\u0623\u062D\u0631\u0641",\r
+findnext:"\u0628\u062D\u062B \u0639\u0646 \u0627\u0644\u062A\u0627\u0644\u064A",\r
+replace:"\u0627\u0633\u062A\u0628\u062F\u0627\u0644",\r
+replaceall:"\u0627\u0633\u062A\u0628\u062F\u0627\u0644 \u0627\u0644\u0643\u0644"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bg.searchreplace_dlg',{\r
+searchnext_desc:"\u0422\u044A\u0440\u0441\u0438 \u043E\u0442\u043D\u043E\u0432\u043E",\r
+notfound:"\u0422\u044A\u0440\u0441\u0435\u043D\u0435\u0442\u043E \u0437\u0430\u0432\u044A\u0440\u0448\u0438. \u0422\u044A\u0440\u0441\u0435\u043D\u0438\u0442\u0435 \u0434\u0443\u043C\u0438 \u043D\u0435 \u0431\u044F\u0445\u0430 \u043E\u0442\u043A\u0440\u0438\u0442\u0438.",\r
+search_title:"\u0422\u044A\u0440\u0441\u0438",\r
+replace_title:"\u0422\u044A\u0440\u0441\u0438/\u0417\u0430\u043C\u0435\u0441\u0442\u0438",\r
+allreplaced:"\u0412\u0441\u0438\u0447\u043A\u0438 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0438 \u0434\u0443\u043C\u0438 \u0431\u044F\u0445\u0430 \u0437\u0430\u043C\u0435\u0441\u0442\u0435\u043D\u0438.",\r
+findwhat:"\u0422\u044A\u0440\u0441\u0438",\r
+replacewith:"\u0417\u0430\u043C\u0435\u0441\u0442\u0438 \u0441",\r
+direction:"\u041F\u043E\u0441\u043E\u043A\u0430",\r
+up:"\u041D\u0430\u0433\u043E\u0440\u0435",\r
+down:"\u041D\u0430\u0434\u043E\u043B\u0443",\r
+mcase:"\u0421\u044A\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0435 \u043D\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u044A\u0440\u0430",\r
+findnext:"\u0422\u044A\u0440\u0441\u0438 \u0441\u043B\u0435\u0434\u0432\u0430\u0449\u0438",\r
+replace:"\u0417\u0430\u043C\u0435\u0441\u0442\u0438",\r
+replaceall:"\u0417\u0430\u043C\u0435\u0441\u0442\u0438 \u0432\u0441\u0438\u0447\u043A\u0438"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bs.searchreplace_dlg',{\r
+searchnext_desc:"Prona\u0111i opet",\r
+notfound:"Pretra\u017Eivanje je zavr\u0161eno. Tra\u017Eeni tekst nije prona\u0111en.",\r
+search_title:"Prona\u0111i",\r
+replace_title:"Prona\u0111i/Zamijeni",\r
+allreplaced:"Sva pojavljivanja tra\u017Eenog teksta su zamijenjena.",\r
+findwhat:"Prona\u0111i tekst",\r
+replacewith:"Zamijeni sa",\r
+direction:"Smjer",\r
+up:"Gore",\r
+down:"Dolje",\r
+mcase:"Match case",\r
+findnext:"Prona\u0111i sljede\u0107e",\r
+replace:"Zamijeni",\r
+replaceall:"Zamijeni sve"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ca.searchreplace_dlg',{\r
+searchnext_desc:"Torna a buscar",\r
+notfound:"S'ha completat la recerca. No s'ha trobat la cadena buscada.",\r
+search_title:"Busca",\r
+replace_title:"Busca/Substitueix",\r
+allreplaced:"S'han substitu\u00EFt totes les ocurr\u00E8ncies de la cadena buscada.",\r
+findwhat:"Busca",\r
+replacewith:"Substitueix per",\r
+direction:"Direcci\u00F3",\r
+up:"Amunt",\r
+down:"Avall",\r
+mcase:"Distingeix maj\u00FAscules i min\u00FAscules",\r
+findnext:"Seg\u00FCent",\r
+replace:"Substitueix",\r
+replaceall:"Substitueix tot"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('cs.searchreplace_dlg',{\r
+searchnext_desc:"Naj\u00EDt dal\u0161\u00ED",\r
+notfound:"Hled\u00E1n\u00ED bylo dokon\u010Deno. Hledan\u00FD text nebyl nalezen.",\r
+search_title:"Naj\u00EDt",\r
+replace_title:"Naj\u00EDt/nahradit",\r
+allreplaced:"V\u0161echny v\u00FDskyty byly nahrazeny.",\r
+findwhat:"Co hledat",\r
+replacewith:"\u010C\u00EDm nahradit",\r
+direction:"Sm\u011Br",\r
+up:"Nahoru",\r
+down:"Dol\u016F",\r
+mcase:"Rozli\u0161ovat velikost",\r
+findnext:"Naj\u00EDt dal\u0161\u00ED",\r
+replace:"Nahradit",\r
+replaceall:"Nahradit v\u0161e"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('da.searchreplace_dlg',{\r
+searchnext_desc:"S\u00F8g igen",\r
+notfound:"S\u00F8gningen gav intet resultat.",\r
+search_title:"S\u00F8g",\r
+replace_title:"S\u00F8g / Erstate",\r
+allreplaced:"Alle forekomster af s\u00F8gestrengen er erstattet.",\r
+findwhat:"S\u00F8g efter",\r
+replacewith:"Erstat med",\r
+direction:"Retning",\r
+up:"Op",\r
+down:"Ned",\r
+mcase:"Forskel p\u00E5 store og sm\u00E5 bogstaver",\r
+findnext:"Find n\u00E6ste",\r
+replace:"Erstat",\r
+replaceall:"Erstat alle"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('de.searchreplace_dlg',{\r
+searchnext_desc:"Weitersuchen",\r
+notfound:"Die Suche ist am Ende angelangt. Die Zeichenkette konnte nicht gefunden werden.",\r
+search_title:"Suchen",\r
+replace_title:"Suchen/Ersetzen",\r
+allreplaced:"Alle Vorkommen der Zeichenkette wurden ersetzt.",\r
+findwhat:"Zu suchender Text",\r
+replacewith:"Ersetzen durch",\r
+direction:"Suchrichtung",\r
+up:"Aufw\u00E4rts",\r
+down:"Abw\u00E4rts",\r
+mcase:"Gro\u00DF-/Kleinschreibung beachten",\r
+findnext:"Weitersuchen",\r
+replace:"Ersetzen",\r
+replaceall:"Alle ersetzen"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('el.searchreplace_dlg',{\r
+searchnext_desc:"\u0395\u03CD\u03C1\u03B5\u03C3\u03B7 \u03BE\u03B1\u03BD\u03AC",\r
+notfound:"\u0397 \u03B1\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 \u03C4\u03B5\u03BB\u03B5\u03AF\u03C9\u03C3\u03B5. \u03A4\u03BF \u03B6\u03B7\u03C4\u03BF\u03CD\u03BC\u03B5\u03BD\u03BF \u03BA\u03B5\u03AF\u03BC\u03B5\u03BD\u03BF \u03B4\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5.",\r
+search_title:"\u0395\u03CD\u03C1\u03B5\u03C3\u03B7",\r
+replace_title:"\u0395\u03CD\u03C1\u03B5\u03C3\u03B7/\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7",\r
+allreplaced:"\u038C\u03BB\u03B5\u03C2 \u03BF\u03B9 \u03B5\u03BC\u03C6\u03B1\u03BD\u03AF\u03C3\u03B5\u03B9\u03C2 \u03C4\u03BF\u03C5 \u03B6\u03B7\u03C4\u03BF\u03CD\u03BC\u03B5\u03BD\u03BF\u03C5 \u03BA\u03B5\u03B9\u03BC\u03AD\u03BD\u03BF\u03C5 \u03B1\u03BD\u03C4\u03B9\u03BA\u03B1\u03C4\u03B1\u03C3\u03C4\u03AC\u03B8\u03B7\u03BA\u03B1\u03BD.",\r
+findwhat:"\u0395\u03CD\u03C1\u03B5\u03C3\u03B7 \u03C4\u03BF\u03C5",\r
+replacewith:"\u0391\u03BD\u03C4\u03B9\u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03BC\u03B5",\r
+direction:"\u039A\u03B1\u03C4\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7",\r
+up:"\u03A0\u03AC\u03BD\u03C9",\r
+down:"\u039A\u03AC\u03C4\u03C9",\r
+mcase:"\u03A4\u03B1\u03AF\u03C1\u03B9\u03B1\u03C3\u03BC\u03B1 \u03BA\u03B5\u03C6\u03B1\u03BB\u03B1\u03AF\u03B1/\u03BC\u03B9\u03BA\u03C1\u03AC",\r
+findnext:"\u0392\u03C1\u03B5\u03C2 \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03BF",\r
+replace:"\u0391\u03BD\u03C4\u03B9\u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7",\r
+replaceall:"\u0391\u03BD\u03C4\u03B9\u03BA\u03B1\u03C4. \u03CC\u03BB\u03C9\u03BD"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('es.searchreplace_dlg',{\r
+searchnext_desc:"Buscar de nuevo",\r
+notfound:"La b\u00FAsqueda se ha completado. No se encontr\u00F3 el texto introducido.",\r
+search_title:"Buscar",\r
+replace_title:"Buscar/Reemplazar",\r
+allreplaced:"Se ha reemplazado el texto.",\r
+findwhat:"Qu\u00E9 buscar",\r
+replacewith:"Reemplazar por",\r
+direction:"Direcci\u00F3n",\r
+up:"Arriba",\r
+down:"Abajo",\r
+mcase:"Min\u00FAs./May\u00FAs.",\r
+findnext:"Buscar siguiente",\r
+replace:"Reemplazar",\r
+replaceall:"Reemplazar todo"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('et.searchreplace_dlg',{\r
+searchnext_desc:"Otsi uuesti",\r
+notfound:"Otsing on l\u00F5petatud. Otsis\u00F5na ei leitud.",\r
+search_title:"Otsi",\r
+replace_title:"Otsi/Asenda",\r
+allreplaced:"K\u00F5ik otsis\u00F5na ilmingud on asendatud.",\r
+findwhat:"Otsi mida",\r
+replacewith:"Asenda millega",\r
+direction:"Suund",\r
+up:"\u00DCles",\r
+down:"Alla",\r
+mcase:"Vasta suurusele",\r
+findnext:"Otsi j\u00E4rgmine",\r
+replace:"Asenda",\r
+replaceall:"Asenda k\u00F5ik"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fa.searchreplace_dlg',{\r
+searchnext_desc:"Find again",\r
+notfound:"\u062C\u0633\u062A\u062C\u0648 \u062A\u0645\u0627\u0645 \u0634\u062F. \u0631\u0634\u062A\u0647 \u0645\u0648\u0631\u062F \u062C\u0633\u062A\u062C\u0648 \u06CC\u0627\u0641\u062A \u0646\u0634\u062F.",\r
+search_title:"\u06CC\u0627\u0641\u062A\u0646",\r
+replace_title:"\u06CC\u0627\u0641\u062A\u0646/\u062C\u0627\u06CC\u06AF\u0632\u06CC\u0646 \u06A9\u0631\u062F\u0646",\r
+allreplaced:"All occurrences of the search string were replaced.",\r
+findwhat:"Find what",\r
+replacewith:"\u062C\u0627\u06CC\u06AF\u0632\u06CC\u0646 \u06A9\u0631\u062F\u0646 \u0628\u0627",\r
+direction:"\u062C\u0647\u062A",\r
+up:"\u0628\u0627\u0644\u0627",\r
+down:"\u067E\u0627\u06CC\u06CC\u0646",\r
+mcase:"Match case",\r
+findnext:"Find next",\r
+replace:"Replace",\r
+replaceall:"\u062C\u0627\u06CC\u06AF\u0631\u06CC\u0646 \u06A9\u0631\u062F\u0646 \u0647\u0645\u0647"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fi.searchreplace_dlg',{\r
+searchnext_desc:"Etsi uudestaan",\r
+notfound:"Haku on valmis. Haettua teksti\u00E4 ei l\u00F6ytynyt.",\r
+search_title:"Haku",\r
+replace_title:"Etsi ja korvaa",\r
+allreplaced:"Kaikki l\u00F6ydetyt merkkijonot korvattiin.",\r
+findwhat:"Etsit\u00E4\u00E4n",\r
+replacewith:"Korvataan",\r
+direction:"Suunta",\r
+up:"Yl\u00F6s",\r
+down:"Alas",\r
+mcase:"Huomioi isot ja pienet kirjaimet",\r
+findnext:"Etsi seuraavaa",\r
+replace:"Korvaa",\r
+replaceall:"Korvaa kaikki"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fr.searchreplace_dlg',{\r
+searchnext_desc:"Suivant",\r
+notfound:"La recherche est termin\u00E9e. La cha\u00EEne recherch\u00E9e n'a pas \u00E9t\u00E9 trouv\u00E9e.",\r
+search_title:"Chercher",\r
+replace_title:"Chercher/Remplacer",\r
+allreplaced:"Toutes les occurences de la cha\u00EEne recherch\u00E9e ont \u00E9t\u00E9 remplac\u00E9es.",\r
+findwhat:"Chercher",\r
+replacewith:"Remplacer par",\r
+direction:"Direction",\r
+up:"Haut",\r
+down:"Bas",\r
+mcase:"Prendre la casse en compte",\r
+findnext:"Chercher suivant",\r
+replace:"Remplacer",\r
+replaceall:"Rempl. tous"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('he.searchreplace_dlg',{\r
+searchnext_desc:"\u05D7\u05D9\u05E4\u05D5\u05E9 \u05D4\u05D1\u05D0",\r
+notfound:"\u05D4\u05D7\u05D9\u05E4\u05D5\u05E9 \u05D4\u05E1\u05EA\u05D9\u05D9\u05DD. \u05E4\u05E8\u05D9\u05D8 \u05D4\u05D7\u05D9\u05E4\u05D5\u05E9 \u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0.",\r
+search_title:"\u05D7\u05D9\u05E4\u05D5\u05E9",\r
+replace_title:"\u05D7\u05D9\u05E4\u05D5\u05E9 \u05D5\u05D4\u05D7\u05DC\u05E4\u05D4",\r
+allreplaced:"\u05DB\u05DC \u05E4\u05E8\u05D9\u05D8\u05D9 \u05D4\u05D7\u05D9\u05E4\u05D5\u05E9 \u05D4\u05D5\u05D7\u05DC\u05E4\u05D5",\r
+findwhat:"\u05DC\u05D7\u05E4\u05E9 \u05D0\u05EA",\r
+replacewith:"\u05DC\u05D4\u05D7\u05DC\u05D9\u05E3 \u05D1",\r
+direction:"\u05DB\u05D9\u05D5\u05D5\u05DF",\r
+up:"\u05DC\u05DE\u05E2\u05DC\u05D4",\r
+down:"\u05DC\u05DE\u05D8\u05D4",\r
+mcase:"\u05D4\u05EA\u05D0\u05DD \u05E8\u05D9\u05E9\u05D9\u05D5\u05EA",\r
+findnext:"\u05D7\u05E4\u05E9 \u05D0\u05EA \u05D4\u05D1\u05D0",\r
+replace:"\u05D4\u05D7\u05DC\u05E3",\r
+replaceall:"\u05D4\u05D7\u05DC\u05E4\u05EA \u05D4\u05DB\u05DC"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hr.searchreplace_dlg',{\r
+searchnext_desc:"Prona\u0111i opet",\r
+notfound:"Pretra\u017Eivanje je zavr\u0161eno. Tra\u017Eeni tekst nije prona\u0111en.",\r
+search_title:"Prona\u0111i",\r
+replace_title:"Prona\u0111i/Zamijeni",\r
+allreplaced:"Sva pojavljivanja tra\u017Eenog teksta su zamijenjena.",\r
+findwhat:"Prona\u0111i tekst",\r
+replacewith:"Zamijeni sa",\r
+direction:"Smjer",\r
+up:"Gore",\r
+down:"Dolje",\r
+mcase:"Match case",\r
+findnext:"Prona\u0111i sljede\u0107e",\r
+replace:"Zamijeni",\r
+replaceall:"Zamijeni sve"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hu.searchreplace_dlg',{\r
+searchnext_desc:"Keres\u00E9s megint",\r
+notfound:"A keres\u00E9s v\u00E9get \u00E9rt. A keresett sz\u00F6vegr\u00E9sz nem tal\u00E1lhat\u00F3.",\r
+search_title:"Keres\u00E9s",\r
+replace_title:"Keres\u00E9s/Csere",\r
+allreplaced:"A keresett r\u00E9szsz\u00F6veg minden el\u0151fordul\u00E1sa cser\u00E9lve lett.",\r
+findwhat:"Mit cser\u00E9l",\r
+replacewith:"Mire cser\u00E9l",\r
+direction:"Ir\u00E1ny",\r
+up:"Fel",\r
+down:"Le",\r
+mcase:"Kis- \u00E9s nagybet\u0171k megk\u00FCl\u00F6nb\u00F6ztet\u00E9se",\r
+findnext:"Keres\u00E9s",\r
+replace:"Csere",\r
+replaceall:"Minden tal\u00E1lat cser\u00E9je"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('is.searchreplace_dlg',{\r
+searchnext_desc:"Finna aftur",\r
+notfound:"Leitinni er loki\u00F0. Leitarstrengurinn fannst ekki.",\r
+search_title:"Finna",\r
+replace_title:"Finna/Skipta \u00FAt",\r
+allreplaced:"\u00D6llum ni\u00F0urst\u00F6\u00F0um leitar var skipt \u00FAt.",\r
+findwhat:"Finna hva\u00F0",\r
+replacewith:"Skipta \u00FAt me\u00F0",\r
+direction:"\u00C1tt",\r
+up:"Upp",\r
+down:"Ni\u00F0ur",\r
+mcase:"Match case",\r
+findnext:"Finna n\u00E6sta",\r
+replace:"Skipta \u00FAt",\r
+replaceall:"Skipta \u00FAt \u00F6llu"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('it.searchreplace_dlg',{\r
+searchnext_desc:"Trova successivo",\r
+notfound:"Ricerca completata. Nessun risultato trovato.",\r
+search_title:"Trova",\r
+replace_title:"Trova/Sostituisci",\r
+allreplaced:"Tutte le occorrenze del criterio di ricerca sono state sostituite.",\r
+findwhat:"Trova:",\r
+replacewith:"Sostituisci con:",\r
+direction:"Direzione",\r
+up:"Avanti",\r
+down:"Indietro",\r
+mcase:"Maiuscole/minuscole",\r
+findnext:"Trova succ.",\r
+replace:"Sostituisci",\r
+replaceall:"Sost. tutto"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ja.searchreplace_dlg',{\r
+searchnext_desc:"\u518D\u691C\u7D22",\r
+notfound:"\u6700\u5F8C\u307E\u3067\u691C\u7D22\u3057\u307E\u3057\u305F\u304C\u3001\u691C\u7D22\u6587\u5B57\u5217\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002",\r
+search_title:"\u691C\u7D22",\r
+replace_title:"\u691C\u7D22/\u7F6E\u63DB",\r
+allreplaced:"\u5168\u3066\u7F6E\u63DB\u3055\u308C\u307E\u3057\u305F\u3002",\r
+findwhat:"\u691C\u7D22\u6587\u5B57\u5217",\r
+replacewith:"\u7F6E\u63DB\u6587\u5B57\u5217",\r
+direction:"\u65B9\u5411",\r
+up:"\u4E0A\u3078",\r
+down:"\u4E0B\u3078",\r
+mcase:"\u5927\u6587\u5B57/\u5C0F\u6587\u5B57\u3092\u533A\u5225\u3059\u308B",\r
+findnext:"\u6B21\u3078",\r
+replace:"\u7F6E\u63DB",\r
+replaceall:"\u5168\u3066\u7F6E\u63DB"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ko.searchreplace_dlg',{\r
+searchnext_desc:"\uC7AC\uAC80\uC0C9",\r
+notfound:"\uAC80\uC0C9\uC774 \uC644\uB8CC\uD588\uC2B5\uB2C8\uB2E4. \uAC80\uC0C9 \uBB38\uC790\uC5F4\uC740 \uBC1C\uACAC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.",\r
+search_title:"\uAC80\uC0C9",\r
+replace_title:"\uAC80\uC0C9/\uCE58\uD658",\r
+allreplaced:"\uBAA8\uB450 \uCE58\uD658\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",\r
+findwhat:"\uAC80\uC0C9 \uBB38\uC790\uC5F4",\r
+replacewith:"\uCE58\uD658 \uBB38\uC790\uC5F4",\r
+direction:"\uBC29\uD5A5",\r
+up:"\uC704\uC5D0",\r
+down:"\uC544\uB798\uC5D0",\r
+mcase:"\uB300\uBB38\uC790/\uC18C\uBB38\uC790\uB97C \uAD6C\uBCC4",\r
+findnext:"\uAC80\uC0C9",\r
+replace:"\uCE58\uD658",\r
+replaceall:"\uBAA8\uB450 \uCE58\uD658"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lt.searchreplace_dlg',{\r
+searchnext_desc:"Ie\u0161koti dar kart\u0105",\r
+notfound:"Paie\u0161ka baigta. Paie\u0161kos fraz\u0117 nerasta.",\r
+search_title:"Ie\u0161koti",\r
+replace_title:"Ie\u0161koti/Pakeisti",\r
+allreplaced:"Visi paie\u0161kos fraz\u0117s pasikartojimai pakeisti.",\r
+findwhat:"Ko ie\u0161koti",\r
+replacewith:"Kuo pakeisti",\r
+direction:"Kryptis",\r
+up:"\u012E vir\u0161\u0173",\r
+down:"\u012E apa\u010Di\u0105",\r
+mcase:"Visi\u0161kas atitikimas",\r
+findnext:"Ie\u0161koti sek.",\r
+replace:"Pakeisti",\r
+replaceall:"Pakeisti visus"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lv.searchreplace_dlg',{\r
+searchnext_desc:"Mekl\u0113t v\u0113lreiz",\r
+notfound:"Mekl\u0113\u0161ana pabeigta. Mekl\u0113t\u0101 fr\u0101ze/v\u0101rds netika atrasta.",\r
+search_title:"Mekl\u0113t",\r
+replace_title:"Mekl\u0113t/Aizvietot",\r
+allreplaced:"Visas fr\u0101zes/v\u0101rdi tika veiksm\u012Bgi aizvietoti.",\r
+findwhat:"Ko atrast",\r
+replacewith:"Aizvietot ar",\r
+direction:"Virziens",\r
+up:"Uz aug\u0161u",\r
+down:"Uz leju",\r
+mcase:"Re\u0123istrj\u016Bt\u012Bgs",\r
+findnext:"Mekl\u0113t n\u0101kamo",\r
+replace:"Aizvietot",\r
+replaceall:"Aizvietot visu"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('mk.searchreplace_dlg',{\r
+searchnext_desc:"Prona\u0111i opet",\r
+notfound:"Pretra\u017Eivanje je zavr\u0161eno. Tra\u017Eeni tekst nije prona\u0111en.",\r
+search_title:"Prona\u0111i",\r
+replace_title:"Prona\u0111i/Zameni",\r
+allreplaced:"Sva pojavljivanja tra\u017Eenog teksta su zamenjena.",\r
+findwhat:"Prona\u0111i tekst",\r
+replacewith:"Zameni sa",\r
+direction:"Smjer",\r
+up:"Gore",\r
+down:"Dolje",\r
+mcase:"Match case",\r
+findnext:"Prona\u0111i sljede\u0107e",\r
+replace:"Zameni",\r
+replaceall:"Zameni sve"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ms.searchreplace_dlg',{\r
+searchnext_desc:"Cari lagi",\r
+notfound:"Carian tamat. Perkataan yang dicari tiada.",\r
+search_title:"Cari",\r
+replace_title:"Cari/Ganti",\r
+allreplaced:"Kesemua perkataan telah digantikan.",\r
+findwhat:"Cari apa",\r
+replacewith:"Ganti dengan",\r
+direction:"Arah",\r
+up:"Atas",\r
+down:"Bawah",\r
+mcase:"Samakan kes",\r
+findnext:"Carian seterusnya",\r
+replace:"Ganti",\r
+replaceall:"Ganti kesemuanya"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nb.searchreplace_dlg',{\r
+searchnext_desc:"S\u00F8k igjen",\r
+notfound:"S\u00F8ket er avsluttet. Fant ikke s\u00F8kestrengen.",\r
+search_title:"S\u00F8k",\r
+replace_title:"S\u00F8k/Erstatt",\r
+allreplaced:"Alle forekomster av s\u00F8kestrengen er erstattet.",\r
+findwhat:"Finn hva",\r
+replacewith:"Erstatt med",\r
+direction:"Retning",\r
+up:"Oppover",\r
+down:"Nedover",\r
+mcase:"Skill mellom store og sm\u00E5 tegn",\r
+findnext:"Finn neste",\r
+replace:"Erstatt",\r
+replaceall:"Erstatt alt"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nl.searchreplace_dlg',{\r
+searchnext_desc:"Opnieuw zoeken",\r
+notfound:"Het doorzoeken is voltooid. De zoekterm kon niet meer worden gevonden.",\r
+search_title:"Zoeken",\r
+replace_title:"Zoeken/Vervangen",\r
+allreplaced:"Alle instanties van de zoekterm zijn vervangen.",\r
+findwhat:"Zoeken naar",\r
+replacewith:"Vervangen door",\r
+direction:"Richting",\r
+up:"Omhoog",\r
+down:"Omlaag",\r
+mcase:"Identieke hoofdletters/kleine letters",\r
+findnext:"Zoeken",\r
+replace:"Vervangen",\r
+replaceall:"Alles verv."\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nn.searchreplace_dlg',{\r
+searchnext_desc:"S\u00F8k igjen",\r
+notfound:"S\u00F8ket avslutta. Fann ikkje s\u00F8kjestrengen.",\r
+search_title:"S\u00F8k",\r
+replace_title:"S\u00F8k/Erstatt",\r
+allreplaced:"Alle f\u00F8rekomstar av s\u00F8kjestrengen er erstatta.",\r
+findwhat:"Finn kva",\r
+replacewith:"Erstatt med",\r
+direction:"Retning",\r
+up:"Oppover",\r
+down:"Nedover",\r
+mcase:"Skill mellom store og sm\u00E5 teikn",\r
+findnext:"Finn neste",\r
+replace:"Erstatt",\r
+replaceall:"Erstatt alt"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pl.searchreplace_dlg',{\r
+searchnext_desc:"Znajd\u017A ponownie",\r
+notfound:"Wyszukiwanie zako\u0144czone. Poszukiwany \u0142a\u0144cuch nie zosta\u0142 znaleziony.",\r
+search_title:"Znajd\u017A",\r
+replace_title:"Znajd\u017A/Zamie\u0144",\r
+allreplaced:"Wszystkie wyst\u0105pienia szukanego \u0142a\u0144cucha zosta\u0142y zast\u0105pione.",\r
+findwhat:"Znajd\u017A...",\r
+replacewith:"Zamie\u0144 z...",\r
+direction:"Kierunek",\r
+up:"W g\u00F3r\u0119",\r
+down:"W d\u00F3\u0142",\r
+mcase:"Dopasuj case",\r
+findnext:"Znajd\u017A nast\u0119pny",\r
+replace:"Zamie\u0144",\r
+replaceall:"Zamien wszystko"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pt.searchreplace_dlg',{\r
+searchnext_desc:"Localizar novamente",\r
+notfound:"Pesquisa conclu\u00EDda sem resultados.",\r
+search_title:"Localizar",\r
+replace_title:"Localizar/substituir",\r
+allreplaced:"Todas substitui\u00E7\u00F5es foram efetuadas.",\r
+findwhat:"Localizar",\r
+replacewith:"Substituir com",\r
+direction:"Dire\u00E7\u00E3o",\r
+up:"Acima",\r
+down:"Abaixo",\r
+mcase:"Diferenciar mai\u00FAsculas/min\u00FAsculas",\r
+findnext:"Localizar o seguinte",\r
+replace:"Substituir",\r
+replaceall:"Substituir todos"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ro.searchreplace_dlg',{\r
+searchnext_desc:"Caut\u0103 din nou",\r
+notfound:"C\u0103utarea a fost terminat\u0103. Nu am g\u0103sit termenul c\u0103utat.",\r
+search_title:"Caut\u0103",\r
+replace_title:"Caut\u0103/\u00CEnlocuie\u015Fte",\r
+allreplaced:"Toate instan\u0163ele termenului c\u0103utat au fost \u00EEnlocuite.",\r
+findwhat:"Termen c\u0103utat:",\r
+replacewith:"\u00CEnlocuie\u015Fte cu:",\r
+direction:"Direc\u0163ia",\r
+up:"\u00CEn sus",\r
+down:"\u00CEn jos",\r
+mcase:"Conteaz\u0103 litere mici/mari?",\r
+findnext:"Caut\u0103 urm\u0103torul",\r
+replace:"\u00CEnlocuie\u015Fte",\r
+replaceall:"\u00CEnlocuie\u015Fte toate"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ru.searchreplace_dlg',{\r
+searchnext_desc:"\u041D\u0430\u0439\u0442\u0438 \u0441\u043D\u043E\u0432\u0430",\r
+notfound:"\u041F\u043E\u0438\u0441\u043A \u0437\u0430\u043A\u043E\u043D\u0447\u0435\u043D. \u0421\u0442\u0440\u043E\u043A\u0430 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430.",\r
+search_title:"\u041D\u0430\u0439\u0442\u0438",\r
+replace_title:"\u041D\u0430\u0439\u0442\u0438/\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C",\r
+allreplaced:"\u0412\u0441\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044E\u0449\u0438\u0435\u0441\u044F \u0441\u0442\u0440\u043E\u043A\u0438 \u0431\u044B\u043B\u0438 \u0437\u0430\u043C\u0435\u043D\u0435\u043D\u044B.",\r
+findwhat:"\u0427\u0442\u043E \u043D\u0430\u0439\u0442\u0438",\r
+replacewith:"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0430",\r
+direction:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435",\r
+up:"\u0412\u0432\u0435\u0440\u0445",\r
+down:"\u0412\u043D\u0438\u0437",\r
+mcase:"\u0423\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C \u0440\u0435\u0433\u0438\u0441\u0442\u0440",\r
+findnext:"\u041D\u0430\u0439\u0442\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0443\u044E",\r
+replace:"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C",\r
+replaceall:"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0441\u0435"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('si.searchreplace_dlg',{\r
+searchnext_desc:"Find again",\r
+notfound:"The search has been completed. The search string could not be found.",\r
+search_title:"Find",\r
+replace_title:"Find/Replace",\r
+allreplaced:"All occurrences of the search string were replaced.",\r
+findwhat:"Find what",\r
+replacewith:"Replace with",\r
+direction:"Direction",\r
+up:"Up",\r
+down:"Down",\r
+mcase:"Match case",\r
+findnext:"Find next",\r
+replace:"Replace",\r
+replaceall:"Replace all"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sk.searchreplace_dlg',{\r
+searchnext_desc:"N\u00E1jdi znova",\r
+notfound:"Vyh\u013Ead\u00E1vanie ukon\u010Den\u00E9. Re\u0165azec nemusel by\u0165 n\u00E1jden\u00FD.",\r
+search_title:"N\u00E1jdi",\r
+replace_title:"N\u00E1jdi/Nahra\u010F",\r
+allreplaced:"V\u0161etky v\u00FDskyty re\u0165azca boly zmenen\u00E9.",\r
+findwhat:"N\u00E1jdi v\u00FDraz",\r
+replacewith:"Nahra\u010F s",\r
+direction:"Smer",\r
+up:"Nahor",\r
+down:"Dolu",\r
+mcase:"Presn\u00E1 zhoda",\r
+findnext:"N\u00E1jdi \u010Fal\u0161\u00ED",\r
+replace:"Nahra\u010F",\r
+replaceall:"Nahradi\u0165 v\u0161etko"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sl.searchreplace_dlg',{\r
+searchnext_desc:"Najdi znova",\r
+notfound:"Preiskovanje zaklju\u010Deno. Iskanega besedila nisem na\u0161el.",\r
+search_title:"Najdi",\r
+replace_title:"Najdi/zamenjaj",\r
+allreplaced:"Vse pojavitve iskanega besedila so bile zamenjane.",\r
+findwhat:"I\u0161\u010Dem za",\r
+replacewith:"Zamenjam z",\r
+direction:"Smer",\r
+up:"navzgor",\r
+down:"navzdol",\r
+mcase:"ujemanje velikosti",\r
+findnext:"Najdi nasled.",\r
+replace:"Zamenjaj",\r
+replaceall:"Zamenjaj vse"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sr.searchreplace_dlg',{\r
+searchnext_desc:"Prona\u0111i opet",\r
+notfound:"Pretra\u017Eivanje je zavr\u0161eno. Tra\u017Eeni tekst nije prona\u0111en.",\r
+search_title:"Prona\u0111i",\r
+replace_title:"Prona\u0111i/Zameni",\r
+allreplaced:"Sva pojavljivanja tra\u017Eenog teksta su zamenjena.",\r
+findwhat:"Prona\u0111i tekst",\r
+replacewith:"Zameni sa",\r
+direction:"Smjer",\r
+up:"Gore",\r
+down:"Dolje",\r
+mcase:"Match case",\r
+findnext:"Prona\u0111i sljede\u0107e",\r
+replace:"Zameni",\r
+replaceall:"Zameni sve"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sv.searchreplace_dlg',{\r
+searchnext_desc:"S\u00F6k igen",\r
+notfound:"S\u00F6kningen har slutf\u00F6rts. S\u00F6kstr\u00E4ngen kunde inte hittas.",\r
+search_title:"S\u00F6k",\r
+replace_title:"S\u00F6k/ers\u00E4tt",\r
+allreplaced:"Alla st\u00E4llen d\u00E4r s\u00F6kstr\u00E4ngen kunde hittas har ersatts.",\r
+findwhat:"Hitta vad",\r
+replacewith:"Ers\u00E4tt med",\r
+direction:"Riktning",\r
+up:"Upp\u00E5t",\r
+down:"Ner\u00E5t",\r
+mcase:"Matcha gemener/versaler",\r
+findnext:"Hitta n\u00E4sta",\r
+replace:"Ers\u00E4tt",\r
+replaceall:"Ers\u00E4tt alla"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('tr.searchreplace_dlg',{\r
+searchnext_desc:"Tekrar ara",\r
+notfound:"Arama tamamland\u0131. Aranan metin bulunamad\u0131.",\r
+search_title:"Bul",\r
+replace_title:"Bul/De\u011Fi\u015Ftir",\r
+allreplaced:"Aranan metin bulundu\u011Fu yerlerde de\u011Fi\u015Ftirildi.",\r
+findwhat:"Aranacak",\r
+replacewith:"De\u011Fi\u015Ftirilecek",\r
+direction:"Y\u00F6n",\r
+up:"Yukar\u0131",\r
+down:"A\u015Fa\u011F\u0131",\r
+mcase:"B\u00FCy\u00FCk/k\u00FC\u00E7\u00FCk harf e\u015Fle",\r
+findnext:"Sonrakini bul",\r
+replace:"De\u011Fi\u015Ftir",\r
+replaceall:"T\u00FCm\u00FCn\u00FC de\u011Fi\u015Ftir"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('uk.searchreplace_dlg',{\r
+searchnext_desc:"\u0417\u043D\u0430\u0439\u0442\u0438 \u0449\u0435",\r
+notfound:"\u041F\u043E\u0448\u0443\u043A \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E. \u041F\u043E\u0448\u0443\u043A\u043E\u0432\u0438\u0439 \u0440\u044F\u0434\u043E \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E.",\r
+search_title:"\u0417\u043D\u0430\u0439\u0442\u0438",\r
+replace_title:"\u0417\u043D\u0430\u0439\u0442\u0438/\u0417\u0430\u043C\u0456\u043D\u0438\u0442\u0438",\r
+allreplaced:"\u0412\u0441\u0456 \u0432\u0445\u043E\u0434\u0436\u0435\u043D\u043D\u044F \u0440\u044F\u0434\u043A\u0430 \u0431\u0443\u043B\u0438 \u0437\u0430\u043C\u0456\u043D\u0435\u043D\u0456.",\r
+findwhat:"\u0417\u043D\u0430\u0439\u0442\u0438",\r
+replacewith:"\u0417\u0430\u043C\u0456\u043D\u0438\u0442\u0438 \u043D\u0430",\r
+direction:"\u041D\u0430\u043F\u0440\u044F\u043C",\r
+up:"\u0412\u0433\u043E\u0440\u0443",\r
+down:"\u0412\u043D\u0438\u0437",\r
+mcase:"\u0412\u0440\u0430\u0445\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440",\r
+findnext:"\u0417\u043D\u0430\u0439\u0442\u0438 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0435",\r
+replace:"\u0417\u0430\u043C\u0456\u043D\u0438\u0442\u0438",\r
+replaceall:"\u0417\u0430\u043C\u0456\u043D\u0438\u0442\u0438 \u0432\u0441\u0435"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('vi.searchreplace_dlg',{\r
+searchnext_desc:"T\u00ECm l\u1EA1i",\r
+notfound:"K\u1EBFt th\u00FAc t\u00ECm ki\u1EBFm. Kh\u00F4ng th\u1EC3 t\u00ECm th\u1EA5y chu\u1ED7i t\u1EEB c\u1EA7n t\u00ECm.",\r
+search_title:"T\u00ECm ki\u1EBFm",\r
+replace_title:"T\u00ECm ki\u1EBFm/Thay th\u1EBF",\r
+allreplaced:"\u0110\u00E3 thay th\u1EBF t\u1EA5t c\u1EA3 chu\u1ED7i t\u1EEB c\u1EA7n t\u00ECm.",\r
+findwhat:"Chu\u1ED7i t\u1EEB c\u1EA7n t\u00ECm",\r
+replacewith:"Thay th\u1EBF b\u1EB1ng chu\u1ED7i t\u1EEB",\r
+direction:"H\u01B0\u1EDBng t\u00ECm ki\u1EBFm",\r
+up:"L\u00EAn",\r
+down:"Xu\u1ED1ng",\r
+mcase:"Ph\u00E2n bi\u1EC7t ch\u1EEF hoa, ch\u1EEF th\u01B0\u1EDDng ",\r
+findnext:"Ti\u1EBFp t\u1EE5c t\u00ECm",\r
+replace:"Thay th\u1EBF",\r
+replaceall:"Thay th\u1EBF t\u1EA5t c\u1EA3"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('zh.searchreplace_dlg',{\r
+searchnext_desc:"\u518D\u6B21\u641C\u5BFB",\r
+notfound:"\u641C\u5BFB\u5B8C\u6BD5\uFF0C\u6CA1\u6709\u627E\u5230\u7B26\u5408\u7684\u5B57\u7B26\u4E32\u3002 ",\r
+search_title:"\u641C\u5BFB",\r
+replace_title:"\u641C\u5BFB/\u53D6\u4EE3",\r
+allreplaced:"\u6240\u6709\u7B26\u5408\u7684\u5B57\u7B26\u4E32\u5747\u5DF2\u53D6\u4EE3\u3002 ",\r
+findwhat:"\u641C\u5BFB\u76EE\u6807",\r
+replacewith:"\u53D6\u4EE3\u4E3A",\r
+direction:"\u65B9\u5411",\r
+up:"\u5411\u4E0A",\r
+down:"\u5411\u4E0B",\r
+mcase:"\u533A\u5206\u5927\u5C0F\u5199",\r
+findnext:"\u641C\u5BFB\u4E0B\u4E00\u4E2A",\r
+replace:"\u53D6\u4EE3",\r
+replaceall:"\u5168\u90E8\u53D6\u4EE3"\r
+});
\ No newline at end of file
--- /dev/null
+<?php\r
+/**\r
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
+ *\r
+ * This class was contributed by Michel Weimerskirch.\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+class EnchantSpell extends SpellChecker {\r
+ /**\r
+ * Spellchecks an array of words.\r
+ *\r
+ * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1\r
+ * @param Array $words Array of words to check.\r
+ * @return Array of misspelled words.\r
+ */\r
+ function &checkWords($lang, $words) {\r
+ $r = enchant_broker_init();\r
+ \r
+ if (enchant_broker_dict_exists($r,$lang)) {\r
+ $d = enchant_broker_request_dict($r, $lang);\r
+ \r
+ $returnData = array();\r
+ foreach($words as $key => $value) {\r
+ $correct = enchant_dict_check($d, $value);\r
+ if(!$correct) {\r
+ $returnData[] = trim($value);\r
+ }\r
+ }\r
+ \r
+ return $returnData;\r
+ enchant_broker_free_dict($d);\r
+ } else {\r
+\r
+ }\r
+ enchant_broker_free($r);\r
+ }\r
+\r
+ /**\r
+ * Returns suggestions for a specific word.\r
+ *\r
+ * @param String $lang Selected language code (like en_US or de_DE). Shortcodes like "en" and "de" work with enchant >= 1.4.1\r
+ * @param String $word Specific word to get suggestions for.\r
+ * @return Array of suggestions for the specified word.\r
+ */\r
+ function &getSuggestions($lang, $word) {\r
+ $r = enchant_broker_init();\r
+ $suggs = array();\r
+\r
+ if (enchant_broker_dict_exists($r,$lang)) {\r
+ $d = enchant_broker_request_dict($r, $lang);\r
+ $suggs = enchant_dict_suggest($d, $word);\r
+\r
+ enchant_broker_free_dict($d);\r
+ } else {\r
+\r
+ }\r
+ enchant_broker_free($r);\r
+\r
+ return $suggs;\r
+ }\r
+}\r
+\r
+?>\r
--- /dev/null
+<?php\r
+/**\r
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+class GoogleSpell extends SpellChecker {\r
+ /**\r
+ * Spellchecks an array of words.\r
+ *\r
+ * @param {String} $lang Language code like sv or en.\r
+ * @param {Array} $words Array of words to spellcheck.\r
+ * @return {Array} Array of misspelled words.\r
+ */\r
+ function &checkWords($lang, $words) {\r
+ $wordstr = implode(' ', $words);\r
+ $matches = $this->_getMatches($lang, $wordstr);\r
+ $words = array();\r
+\r
+ for ($i=0; $i<count($matches); $i++)\r
+ $words[] = $this->_unhtmlentities(mb_substr($wordstr, $matches[$i][1], $matches[$i][2], "UTF-8"));\r
+\r
+ return $words;\r
+ }\r
+\r
+ /**\r
+ * Returns suggestions of for a specific word.\r
+ *\r
+ * @param {String} $lang Language code like sv or en.\r
+ * @param {String} $word Specific word to get suggestions for.\r
+ * @return {Array} Array of suggestions for the specified word.\r
+ */\r
+ function &getSuggestions($lang, $word) {\r
+ $sug = array();\r
+ $osug = array();\r
+ $matches = $this->_getMatches($lang, $word);\r
+\r
+ if (count($matches) > 0)\r
+ $sug = explode("\t", $this->_unhtmlentities($matches[0][4]));\r
+\r
+ // Remove empty\r
+ foreach ($sug as $item) {\r
+ if ($item)\r
+ $osug[] = $item;\r
+ }\r
+\r
+ return $osug;\r
+ }\r
+\r
+ function &_getMatches($lang, $str) {\r
+ $server = "www.google.com";\r
+ $port = 443;\r
+ $path = "/tbproxy/spell?lang=" . $lang . "&hl=en";\r
+ $ssl = true;\r
+ \r
+ // spell check uri is configured (added by RoundCube)\r
+ if (!empty($this->_config['rpc_uri'])) {\r
+ $a_uri = parse_url($this->_config['rpc_uri']);\r
+ $ssl = ($a_uri['scheme']=='https' || $a_uri['scheme']=='ssl');\r
+ $port = $a_uri['port'] ? $a_uri['port'] : ($ssl ? 443 : 80);\r
+ $server = $a_uri['host'];\r
+ $path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '') . $lang;\r
+ }\r
+\r
+ // Setup XML request\r
+ $xml = '<?xml version="1.0" encoding="utf-8" ?><spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><text>' . $str . '</text></spellrequest>';\r
+\r
+ $header = "POST ".$path." HTTP/1.0 \r\n";\r
+ $header .= "MIME-Version: 1.0 \r\n";\r
+ $header .= "Content-type: application/PTI26 \r\n";\r
+ $header .= "Content-length: ".strlen($xml)." \r\n";\r
+ $header .= "Content-transfer-encoding: text \r\n";\r
+ $header .= "Request-number: 1 \r\n";\r
+ $header .= "Document-type: Request \r\n";\r
+ $header .= "Interface-Version: Test 1.4 \r\n";\r
+ $header .= "Connection: close \r\n\r\n";\r
+ $header .= $xml;\r
+\r
+ // Use curl if it exists\r
+ if (function_exists('curl_init')) {\r
+ // Use curl\r
+ $ch = curl_init();\r
+ curl_setopt($ch, CURLOPT_URL, ($ssl ? "https://" : "http://") . $server);\r
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);\r
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);\r
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);\r
+ $xml = curl_exec($ch);\r
+ curl_close($ch);\r
+ } else {\r
+ // Use raw sockets\r
+ $fp = fsockopen(($ssl ? "ssl://" : "") . $server, $port, $errno, $errstr, 30);\r
+ if ($fp) {\r
+ // Send request\r
+ fwrite($fp, $header);\r
+\r
+ // Read response\r
+ $xml = "";\r
+ while (!feof($fp))\r
+ $xml .= fgets($fp, 128);\r
+\r
+ fclose($fp);\r
+ } else\r
+ echo "Could not open SSL connection to google.";\r
+ }\r
+\r
+ // Grab and parse content\r
+ $matches = array();\r
+ preg_match_all('/<c o="([^"]*)" l="([^"]*)" s="([^"]*)">([^<]*)<\/c>/', $xml, $matches, PREG_SET_ORDER);\r
+\r
+ return $matches;\r
+ }\r
+\r
+ function _unhtmlentities($string) {\r
+ $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);\r
+ $string = preg_replace('~&#([0-9]+);~e', 'chr(\\1)', $string);\r
+\r
+ $trans_tbl = get_html_translation_table(HTML_ENTITIES);\r
+ $trans_tbl = array_flip($trans_tbl);\r
+\r
+ return strtr($string, $trans_tbl);\r
+ }\r
+}\r
+\r
+// Patch in multibyte support\r
+if (!function_exists('mb_substr')) {\r
+ function mb_substr($str, $start, $len = '', $encoding="UTF-8"){\r
+ $limit = strlen($str);\r
+\r
+ for ($s = 0; $start > 0;--$start) {// found the real start\r
+ if ($s >= $limit)\r
+ break;\r
+\r
+ if ($str[$s] <= "\x7F")\r
+ ++$s;\r
+ else {\r
+ ++$s; // skip length\r
+\r
+ while ($str[$s] >= "\x80" && $str[$s] <= "\xBF")\r
+ ++$s;\r
+ }\r
+ }\r
+\r
+ if ($len == '')\r
+ return substr($str, $s);\r
+ else\r
+ for ($e = $s; $len > 0; --$len) {//found the real end\r
+ if ($e >= $limit)\r
+ break;\r
+\r
+ if ($str[$e] <= "\x7F")\r
+ ++$e;\r
+ else {\r
+ ++$e;//skip length\r
+\r
+ while ($str[$e] >= "\x80" && $str[$e] <= "\xBF" && $e < $limit)\r
+ ++$e;\r
+ }\r
+ }\r
+\r
+ return substr($str, $s, $e - $s);\r
+ }\r
+}\r
+\r
+?>\r
--- /dev/null
+<?php\r
+/**\r
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+class PSpell extends SpellChecker {\r
+ /**\r
+ * Spellchecks an array of words.\r
+ *\r
+ * @param {String} $lang Language code like sv or en.\r
+ * @param {Array} $words Array of words to spellcheck.\r
+ * @return {Array} Array of misspelled words.\r
+ */\r
+ function &checkWords($lang, $words) {\r
+ $plink = $this->_getPLink($lang);\r
+\r
+ $outWords = array();\r
+ foreach ($words as $word) {\r
+ if (!pspell_check($plink, trim($word)))\r
+ $outWords[] = utf8_encode($word);\r
+ }\r
+\r
+ return $outWords;\r
+ }\r
+\r
+ /**\r
+ * Returns suggestions of for a specific word.\r
+ *\r
+ * @param {String} $lang Language code like sv or en.\r
+ * @param {String} $word Specific word to get suggestions for.\r
+ * @return {Array} Array of suggestions for the specified word.\r
+ */\r
+ function &getSuggestions($lang, $word) {\r
+ $words = pspell_suggest($this->_getPLink($lang), $word);\r
+\r
+ for ($i=0; $i<count($words); $i++)\r
+ $words[$i] = $words[$i];\r
+\r
+ return $words;\r
+ }\r
+\r
+ /**\r
+ * Opens a link for pspell.\r
+ */\r
+ function &_getPLink($lang) {\r
+ // Check for native PSpell support\r
+ if (!function_exists("pspell_new"))\r
+ $this->throwError("PSpell support not found in PHP installation.");\r
+\r
+ // Setup PSpell link\r
+ $plink = pspell_new(\r
+ $lang,\r
+ $this->_config['PSpell.spelling'],\r
+ $this->_config['PSpell.jargon'],\r
+ $this->_config['PSpell.encoding'],\r
+ $this->_config['PSpell.mode']\r
+ );\r
+\r
+ // Setup PSpell link\r
+/* if (!$plink) {\r
+ $pspellConfig = pspell_config_create(\r
+ $lang,\r
+ $this->_config['PSpell.spelling'],\r
+ $this->_config['PSpell.jargon'],\r
+ $this->_config['PSpell.encoding']\r
+ );\r
+\r
+ $plink = pspell_new_config($pspell_config);\r
+ }*/\r
+\r
+ if (!$plink)\r
+ $this->throwError("No PSpell link found opened.");\r
+\r
+ return $plink;\r
+ }\r
+}\r
+\r
+?>\r
--- /dev/null
+<?php\r
+/**\r
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+class PSpellShell extends SpellChecker {\r
+ /**\r
+ * Spellchecks an array of words.\r
+ *\r
+ * @param {String} $lang Language code like sv or en.\r
+ * @param {Array} $words Array of words to spellcheck.\r
+ * @return {Array} Array of misspelled words.\r
+ */\r
+ function &checkWords($lang, $words) {\r
+ $cmd = $this->_getCMD($lang);\r
+\r
+ if ($fh = fopen($this->_tmpfile, "w")) {\r
+ fwrite($fh, "!\n");\r
+\r
+ foreach($words as $key => $value)\r
+ fwrite($fh, "^" . $value . "\n");\r
+\r
+ fclose($fh);\r
+ } else\r
+ $this->throwError("PSpell support was not found.");\r
+\r
+ $data = shell_exec($cmd);\r
+ @unlink($this->_tmpfile);\r
+\r
+ $returnData = array();\r
+ $dataArr = preg_split("/[\r\n]/", $data, -1, PREG_SPLIT_NO_EMPTY);\r
+\r
+ foreach ($dataArr as $dstr) {\r
+ $matches = array();\r
+\r
+ // Skip this line.\r
+ if (strpos($dstr, "@") === 0)\r
+ continue;\r
+\r
+ preg_match("/\& ([^ ]+) .*/i", $dstr, $matches);\r
+\r
+ if (!empty($matches[1]))\r
+ $returnData[] = utf8_encode(trim($matches[1]));\r
+ }\r
+\r
+ return $returnData;\r
+ }\r
+\r
+ /**\r
+ * Returns suggestions of for a specific word.\r
+ *\r
+ * @param {String} $lang Language code like sv or en.\r
+ * @param {String} $word Specific word to get suggestions for.\r
+ * @return {Array} Array of suggestions for the specified word.\r
+ */\r
+ function &getSuggestions($lang, $word) {\r
+ $cmd = $this->_getCMD($lang);\r
+\r
+ if (function_exists("mb_convert_encoding"))\r
+ $word = mb_convert_encoding($word, "ISO-8859-1", mb_detect_encoding($word, "UTF-8"));\r
+ else\r
+ $word = utf8_encode($word);\r
+\r
+ if ($fh = fopen($this->_tmpfile, "w")) {\r
+ fwrite($fh, "!\n");\r
+ fwrite($fh, "^$word\n");\r
+ fclose($fh);\r
+ } else\r
+ $this->throwError("Error opening tmp file.");\r
+\r
+ $data = shell_exec($cmd);\r
+ @unlink($this->_tmpfile);\r
+\r
+ $returnData = array();\r
+ $dataArr = preg_split("/\n/", $data, -1, PREG_SPLIT_NO_EMPTY);\r
+\r
+ foreach($dataArr as $dstr) {\r
+ $matches = array();\r
+\r
+ // Skip this line.\r
+ if (strpos($dstr, "@") === 0)\r
+ continue;\r
+\r
+ preg_match("/\&[^:]+:(.*)/i", $dstr, $matches);\r
+\r
+ if (!empty($matches[1])) {\r
+ $words = array_slice(explode(',', $matches[1]), 0, 10);\r
+\r
+ for ($i=0; $i<count($words); $i++)\r
+ $words[$i] = trim($words[$i]);\r
+\r
+ return $words;\r
+ }\r
+ }\r
+\r
+ return array();\r
+ }\r
+\r
+ function _getCMD($lang) {\r
+ $this->_tmpfile = tempnam($this->_config['PSpellShell.tmp'], "tinyspell");\r
+\r
+ if(preg_match("#win#i", php_uname()))\r
+ return $this->_config['PSpellShell.aspell'] . " -a --lang=". escapeshellarg($lang) . " --encoding=utf-8 -H < " . $this->_tmpfile . " 2>&1";\r
+\r
+ return "cat ". $this->_tmpfile ." | " . $this->_config['PSpellShell.aspell'] . " -a --encoding=utf-8 -H --lang=". escapeshellarg($lang);\r
+ }\r
+}\r
+\r
+?>\r
--- /dev/null
+<?php\r
+/**\r
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+class SpellChecker {\r
+ /**\r
+ * Constructor.\r
+ *\r
+ * @param $config Configuration name/value array.\r
+ */\r
+ function SpellChecker(&$config) {\r
+ $this->_config = $config;\r
+ }\r
+\r
+ /**\r
+ * Simple loopback function everything that gets in will be send back.\r
+ *\r
+ * @param $args.. Arguments.\r
+ * @return {Array} Array of all input arguments. \r
+ */\r
+ function &loopback(/* args.. */) {\r
+ return func_get_args();\r
+ }\r
+\r
+ /**\r
+ * Spellchecks an array of words.\r
+ *\r
+ * @param {String} $lang Language code like sv or en.\r
+ * @param {Array} $words Array of words to spellcheck.\r
+ * @return {Array} Array of misspelled words.\r
+ */\r
+ function &checkWords($lang, $words) {\r
+ return $words;\r
+ }\r
+\r
+ /**\r
+ * Returns suggestions of for a specific word.\r
+ *\r
+ * @param {String} $lang Language code like sv or en.\r
+ * @param {String} $word Specific word to get suggestions for.\r
+ * @return {Array} Array of suggestions for the specified word.\r
+ */\r
+ function &getSuggestions($lang, $word) {\r
+ return array();\r
+ }\r
+\r
+ /**\r
+ * Throws an error message back to the user. This will stop all execution.\r
+ *\r
+ * @param {String} $str Message to send back to user.\r
+ */\r
+ function throwError($str) {\r
+ die('{"result":null,"id":null,"error":{"errstr":"' . addslashes($str) . '","errfile":"","errline":null,"errcontext":"","level":"FATAL"}}');\r
+ }\r
+}\r
+\r
+?>\r
--- /dev/null
+<?php
+/**
+ * $Id: JSON.php 40 2007-06-18 11:43:15Z spocke $
+ *
+ * @package MCManager.utils
+ * @author Moxiecode
+ * @copyright Copyright © 2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+define('JSON_BOOL', 1);
+define('JSON_INT', 2);
+define('JSON_STR', 3);
+define('JSON_FLOAT', 4);
+define('JSON_NULL', 5);
+define('JSON_START_OBJ', 6);
+define('JSON_END_OBJ', 7);
+define('JSON_START_ARRAY', 8);
+define('JSON_END_ARRAY', 9);
+define('JSON_KEY', 10);
+define('JSON_SKIP', 11);
+
+define('JSON_IN_ARRAY', 30);
+define('JSON_IN_OBJECT', 40);
+define('JSON_IN_BETWEEN', 50);
+
+class Moxiecode_JSONReader {
+ var $_data, $_len, $_pos;
+ var $_value, $_token;
+ var $_location, $_lastLocations;
+ var $_needProp;
+
+ function Moxiecode_JSONReader($data) {
+ $this->_data = $data;
+ $this->_len = strlen($data);
+ $this->_pos = -1;
+ $this->_location = JSON_IN_BETWEEN;
+ $this->_lastLocations = array();
+ $this->_needProp = false;
+ }
+
+ function getToken() {
+ return $this->_token;
+ }
+
+ function getLocation() {
+ return $this->_location;
+ }
+
+ function getTokenName() {
+ switch ($this->_token) {
+ case JSON_BOOL:
+ return 'JSON_BOOL';
+
+ case JSON_INT:
+ return 'JSON_INT';
+
+ case JSON_STR:
+ return 'JSON_STR';
+
+ case JSON_FLOAT:
+ return 'JSON_FLOAT';
+
+ case JSON_NULL:
+ return 'JSON_NULL';
+
+ case JSON_START_OBJ:
+ return 'JSON_START_OBJ';
+
+ case JSON_END_OBJ:
+ return 'JSON_END_OBJ';
+
+ case JSON_START_ARRAY:
+ return 'JSON_START_ARRAY';
+
+ case JSON_END_ARRAY:
+ return 'JSON_END_ARRAY';
+
+ case JSON_KEY:
+ return 'JSON_KEY';
+ }
+
+ return 'UNKNOWN';
+ }
+
+ function getValue() {
+ return $this->_value;
+ }
+
+ function readToken() {
+ $chr = $this->read();
+
+ if ($chr != null) {
+ switch ($chr) {
+ case '[':
+ $this->_lastLocation[] = $this->_location;
+ $this->_location = JSON_IN_ARRAY;
+ $this->_token = JSON_START_ARRAY;
+ $this->_value = null;
+ $this->readAway();
+ return true;
+
+ case ']':
+ $this->_location = array_pop($this->_lastLocation);
+ $this->_token = JSON_END_ARRAY;
+ $this->_value = null;
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT)
+ $this->_needProp = true;
+
+ return true;
+
+ case '{':
+ $this->_lastLocation[] = $this->_location;
+ $this->_location = JSON_IN_OBJECT;
+ $this->_needProp = true;
+ $this->_token = JSON_START_OBJ;
+ $this->_value = null;
+ $this->readAway();
+ return true;
+
+ case '}':
+ $this->_location = array_pop($this->_lastLocation);
+ $this->_token = JSON_END_OBJ;
+ $this->_value = null;
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT)
+ $this->_needProp = true;
+
+ return true;
+
+ // String
+ case '"':
+ case '\'':
+ return $this->_readString($chr);
+
+ // Null
+ case 'n':
+ return $this->_readNull();
+
+ // Bool
+ case 't':
+ case 'f':
+ return $this->_readBool($chr);
+
+ default:
+ // Is number
+ if (is_numeric($chr) || $chr == '-' || $chr == '.')
+ return $this->_readNumber($chr);
+
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ function _readBool($chr) {
+ $this->_token = JSON_BOOL;
+ $this->_value = $chr == 't';
+
+ if ($chr == 't')
+ $this->skip(3); // rue
+ else
+ $this->skip(4); // alse
+
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function _readNull() {
+ $this->_token = JSON_NULL;
+ $this->_value = null;
+
+ $this->skip(3); // ull
+ $this->readAway();
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function _readString($quote) {
+ $output = "";
+ $this->_token = JSON_STR;
+ $endString = false;
+
+ while (($chr = $this->peek()) != -1) {
+ switch ($chr) {
+ case '\\':
+ // Read away slash
+ $this->read();
+
+ // Read escape code
+ $chr = $this->read();
+ switch ($chr) {
+ case 't':
+ $output .= "\t";
+ break;
+
+ case 'b':
+ $output .= "\b";
+ break;
+
+ case 'f':
+ $output .= "\f";
+ break;
+
+ case 'r':
+ $output .= "\r";
+ break;
+
+ case 'n':
+ $output .= "\n";
+ break;
+
+ case 'u':
+ $output .= $this->_int2utf8(hexdec($this->read(4)));
+ break;
+
+ default:
+ $output .= $chr;
+ break;
+ }
+
+ break;
+
+ case '\'':
+ case '"':
+ if ($chr == $quote)
+ $endString = true;
+
+ $chr = $this->read();
+ if ($chr != -1 && $chr != $quote)
+ $output .= $chr;
+
+ break;
+
+ default:
+ $output .= $this->read();
+ }
+
+ // String terminated
+ if ($endString)
+ break;
+ }
+
+ $this->readAway();
+ $this->_value = $output;
+
+ // Needed a property
+ if ($this->_needProp) {
+ $this->_token = JSON_KEY;
+ $this->_needProp = false;
+ return true;
+ }
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function _int2utf8($int) {
+ $int = intval($int);
+
+ switch ($int) {
+ case 0:
+ return chr(0);
+
+ case ($int & 0x7F):
+ return chr($int);
+
+ case ($int & 0x7FF):
+ return chr(0xC0 | (($int >> 6) & 0x1F)) . chr(0x80 | ($int & 0x3F));
+
+ case ($int & 0xFFFF):
+ return chr(0xE0 | (($int >> 12) & 0x0F)) . chr(0x80 | (($int >> 6) & 0x3F)) . chr (0x80 | ($int & 0x3F));
+
+ case ($int & 0x1FFFFF):
+ return chr(0xF0 | ($int >> 18)) . chr(0x80 | (($int >> 12) & 0x3F)) . chr(0x80 | (($int >> 6) & 0x3F)) . chr(0x80 | ($int & 0x3F));
+ }
+ }
+
+ function _readNumber($start) {
+ $value = "";
+ $isFloat = false;
+
+ $this->_token = JSON_INT;
+ $value .= $start;
+
+ while (($chr = $this->peek()) != -1) {
+ if (is_numeric($chr) || $chr == '-' || $chr == '.') {
+ if ($chr == '.')
+ $isFloat = true;
+
+ $value .= $this->read();
+ } else
+ break;
+ }
+
+ $this->readAway();
+
+ if ($isFloat) {
+ $this->_token = JSON_FLOAT;
+ $this->_value = floatval($value);
+ } else
+ $this->_value = intval($value);
+
+ if ($this->_location == JSON_IN_OBJECT && !$this->_needProp)
+ $this->_needProp = true;
+
+ return true;
+ }
+
+ function readAway() {
+ while (($chr = $this->peek()) != null) {
+ if ($chr != ':' && $chr != ',' && $chr != ' ')
+ return;
+
+ $this->read();
+ }
+ }
+
+ function read($len = 1) {
+ if ($this->_pos < $this->_len) {
+ if ($len > 1) {
+ $str = substr($this->_data, $this->_pos + 1, $len);
+ $this->_pos += $len;
+
+ return $str;
+ } else
+ return $this->_data[++$this->_pos];
+ }
+
+ return null;
+ }
+
+ function skip($len) {
+ $this->_pos += $len;
+ }
+
+ function peek() {
+ if ($this->_pos < $this->_len)
+ return $this->_data[$this->_pos + 1];
+
+ return null;
+ }
+}
+
+/**
+ * This class handles JSON stuff.
+ *
+ * @package MCManager.utils
+ */
+class Moxiecode_JSON {
+ function Moxiecode_JSON() {
+ }
+
+ function decode($input) {
+ $reader = new Moxiecode_JSONReader($input);
+
+ return $this->readValue($reader);
+ }
+
+ function readValue(&$reader) {
+ $this->data = array();
+ $this->parents = array();
+ $this->cur =& $this->data;
+ $key = null;
+ $loc = JSON_IN_ARRAY;
+
+ while ($reader->readToken()) {
+ switch ($reader->getToken()) {
+ case JSON_STR:
+ case JSON_INT:
+ case JSON_BOOL:
+ case JSON_FLOAT:
+ case JSON_NULL:
+ switch ($reader->getLocation()) {
+ case JSON_IN_OBJECT:
+ $this->cur[$key] = $reader->getValue();
+ break;
+
+ case JSON_IN_ARRAY:
+ $this->cur[] = $reader->getValue();
+ break;
+
+ default:
+ return $reader->getValue();
+ }
+ break;
+
+ case JSON_KEY:
+ $key = $reader->getValue();
+ break;
+
+ case JSON_START_OBJ:
+ case JSON_START_ARRAY:
+ if ($loc == JSON_IN_OBJECT)
+ $this->addArray($key);
+ else
+ $this->addArray(null);
+
+ $cur =& $obj;
+
+ $loc = $reader->getLocation();
+ break;
+
+ case JSON_END_OBJ:
+ case JSON_END_ARRAY:
+ $loc = $reader->getLocation();
+
+ if (count($this->parents) > 0) {
+ $this->cur =& $this->parents[count($this->parents) - 1];
+ array_pop($this->parents);
+ }
+ break;
+ }
+ }
+
+ return $this->data[0];
+ }
+
+ // This method was needed since PHP is crapy and doesn't have pointers/references
+ function addArray($key) {
+ $this->parents[] =& $this->cur;
+ $ar = array();
+
+ if ($key)
+ $this->cur[$key] =& $ar;
+ else
+ $this->cur[] =& $ar;
+
+ $this->cur =& $ar;
+ }
+
+ function getDelim($index, &$reader) {
+ switch ($reader->getLocation()) {
+ case JSON_IN_ARRAY:
+ case JSON_IN_OBJECT:
+ if ($index > 0)
+ return ",";
+ break;
+ }
+
+ return "";
+ }
+
+ function encode($input) {
+ switch (gettype($input)) {
+ case 'boolean':
+ return $input ? 'true' : 'false';
+
+ case 'integer':
+ return (int) $input;
+
+ case 'float':
+ case 'double':
+ return (float) $input;
+
+ case 'NULL':
+ return 'null';
+
+ case 'string':
+ return $this->encodeString($input);
+
+ case 'array':
+ return $this->_encodeArray($input);
+
+ case 'object':
+ return $this->_encodeArray(get_object_vars($input));
+ }
+
+ return '';
+ }
+
+ function encodeString($input) {
+ // Needs to be escaped
+ if (preg_match('/[^a-zA-Z0-9]/', $input)) {
+ $output = '';
+
+ for ($i=0; $i<strlen($input); $i++) {
+ switch ($input[$i]) {
+ case "\b":
+ $output .= "\\b";
+ break;
+
+ case "\t":
+ $output .= "\\t";
+ break;
+
+ case "\f":
+ $output .= "\\f";
+ break;
+
+ case "\r":
+ $output .= "\\r";
+ break;
+
+ case "\n":
+ $output .= "\\n";
+ break;
+
+ case '\\':
+ $output .= "\\\\";
+ break;
+
+ case '\'':
+ $output .= "\\'";
+ break;
+
+ case '"':
+ $output .= '\"';
+ break;
+
+ default:
+ $byte = ord($input[$i]);
+
+ if (($byte & 0xE0) == 0xC0) {
+ $char = pack('C*', $byte, ord($input[$i + 1]));
+ $i += 1;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xF0) == 0xE0) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2]));
+ $i += 2;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xF8) == 0xF0) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2], ord($input[$i + 3])));
+ $i += 3;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xFC) == 0xF8) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2], ord($input[$i + 3]), ord($input[$i + 4])));
+ $i += 4;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } if (($byte & 0xFE) == 0xFC) {
+ $char = pack('C*', $byte, ord($input[$i + 1]), ord($input[$i + 2], ord($input[$i + 3]), ord($input[$i + 4]), ord($input[$i + 5])));
+ $i += 5;
+ $output .= sprintf('\u%04s', bin2hex($this->_utf82utf16($char)));
+ } else if ($byte < 128)
+ $output .= $input[$i];
+ }
+ }
+
+ return '"' . $output . '"';
+ }
+
+ return '"' . $input . '"';
+ }
+
+ function _utf82utf16($utf8) {
+ if (function_exists('mb_convert_encoding'))
+ return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
+
+ switch (strlen($utf8)) {
+ case 1:
+ return $utf8;
+
+ case 2:
+ return chr(0x07 & (ord($utf8[0]) >> 2)) . chr((0xC0 & (ord($utf8[0]) << 6)) | (0x3F & ord($utf8[1])));
+
+ case 3:
+ return chr((0xF0 & (ord($utf8[0]) << 4)) | (0x0F & (ord($utf8[1]) >> 2))) . chr((0xC0 & (ord($utf8[1]) << 6)) | (0x7F & ord($utf8[2])));
+ }
+
+ return '';
+ }
+
+ function _encodeArray($input) {
+ $output = '';
+ $isIndexed = true;
+
+ $keys = array_keys($input);
+ for ($i=0; $i<count($keys); $i++) {
+ if (!is_int($keys[$i])) {
+ $output .= $this->encodeString($keys[$i]) . ':' . $this->encode($input[$keys[$i]]);
+ $isIndexed = false;
+ } else
+ $output .= $this->encode($input[$keys[$i]]);
+
+ if ($i != count($keys) - 1)
+ $output .= ',';
+ }
+
+ return $isIndexed ? '[' . $output . ']' : '{' . $output . '}';
+ }
+}
+
+?>
--- /dev/null
+<?php\r
+/**\r
+ * $Id: Logger.class.php 10 2007-05-27 10:55:12Z spocke $\r
+ *\r
+ * @package MCFileManager.filesystems\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2005, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+// File type contstants\r
+define('MC_LOGGER_DEBUG', 0);\r
+define('MC_LOGGER_INFO', 10);\r
+define('MC_LOGGER_WARN', 20);\r
+define('MC_LOGGER_ERROR', 30);\r
+define('MC_LOGGER_FATAL', 40);\r
+\r
+/**\r
+ * Logging utility class. This class handles basic logging with levels, log rotation and custom log formats. It's\r
+ * designed to be compact but still powerful and flexible.\r
+ */\r
+class Moxiecode_Logger {\r
+ // Private fields\r
+ var $_path;\r
+ var $_filename;\r
+ var $_maxSize;\r
+ var $_maxFiles;\r
+ var $_maxSizeBytes;\r
+ var $_level;\r
+ var $_format;\r
+\r
+ /**\r
+ * Constructs a new logger instance.\r
+ */\r
+ function Moxiecode_Logger() {\r
+ $this->_path = "";\r
+ $this->_filename = "{level}.log";\r
+ $this->setMaxSize("100k");\r
+ $this->_maxFiles = 10;\r
+ $this->_level = MC_LOGGER_DEBUG;\r
+ $this->_format = "[{time}] [{level}] {message}";\r
+ }\r
+\r
+ /**\r
+ * Sets the current log level, use the MC_LOGGER constants.\r
+ *\r
+ * @param int $level Log level instance for example MC_LOGGER_DEBUG.\r
+ */\r
+ function setLevel($level) {\r
+ if (is_string($level)) {\r
+ switch (strtolower($level)) {\r
+ case "debug":\r
+ $level = MC_LOGGER_DEBUG;\r
+ break;\r
+\r
+ case "info":\r
+ $level = MC_LOGGER_INFO;\r
+ break;\r
+\r
+ case "warn":\r
+ case "warning":\r
+ $level = MC_LOGGER_WARN;\r
+ break;\r
+\r
+ case "error":\r
+ $level = MC_LOGGER_ERROR;\r
+ break;\r
+\r
+ case "fatal":\r
+ $level = MC_LOGGER_FATAL;\r
+ break;\r
+\r
+ default:\r
+ $level = MC_LOGGER_FATAL;\r
+ }\r
+ }\r
+\r
+ $this->_level = $level;\r
+ }\r
+\r
+ /**\r
+ * Returns the current log level for example MC_LOGGER_DEBUG.\r
+ *\r
+ * @return int Current log level for example MC_LOGGER_DEBUG.\r
+ */\r
+ function getLevel() {\r
+ return $this->_level;\r
+ }\r
+\r
+ function setPath($path) {\r
+ $this->_path = $path;\r
+ }\r
+\r
+ function getPath() {\r
+ return $this->_path;\r
+ }\r
+\r
+ function setFileName($file_name) {\r
+ $this->_filename = $file_name;\r
+ }\r
+\r
+ function getFileName() {\r
+ return $this->_filename;\r
+ }\r
+\r
+ function setFormat($format) {\r
+ $this->_format = $format;\r
+ }\r
+\r
+ function getFormat() {\r
+ return $this->_format;\r
+ }\r
+\r
+ function setMaxSize($size) {\r
+ // Fix log max size\r
+ $logMaxSizeBytes = intval(preg_replace("/[^0-9]/", "", $size));\r
+\r
+ // Is KB\r
+ if (strpos((strtolower($size)), "k") > 0)\r
+ $logMaxSizeBytes *= 1024;\r
+\r
+ // Is MB\r
+ if (strpos((strtolower($size)), "m") > 0)\r
+ $logMaxSizeBytes *= (1024 * 1024);\r
+\r
+ $this->_maxSizeBytes = $logMaxSizeBytes;\r
+ $this->_maxSize = $size;\r
+ }\r
+\r
+ function getMaxSize() {\r
+ return $this->_maxSize;\r
+ }\r
+\r
+ function setMaxFiles($max_files) {\r
+ $this->_maxFiles = $max_files;\r
+ }\r
+\r
+ function getMaxFiles() {\r
+ return $this->_maxFiles;\r
+ }\r
+\r
+ function debug($msg) {\r
+ $args = func_get_args();\r
+ $this->_logMsg(MC_LOGGER_DEBUG, implode(', ', $args));\r
+ }\r
+\r
+ function info($msg) {\r
+ $args = func_get_args();\r
+ $this->_logMsg(MC_LOGGER_INFO, implode(', ', $args));\r
+ }\r
+\r
+ function warn($msg) {\r
+ $args = func_get_args();\r
+ $this->_logMsg(MC_LOGGER_WARN, implode(', ', $args));\r
+ }\r
+\r
+ function error($msg) {\r
+ $args = func_get_args();\r
+ $this->_logMsg(MC_LOGGER_ERROR, implode(', ', $args));\r
+ }\r
+\r
+ function fatal($msg) {\r
+ $args = func_get_args();\r
+ $this->_logMsg(MC_LOGGER_FATAL, implode(', ', $args));\r
+ }\r
+\r
+ function isDebugEnabled() {\r
+ return $this->_level >= MC_LOGGER_DEBUG;\r
+ }\r
+\r
+ function isInfoEnabled() {\r
+ return $this->_level >= MC_LOGGER_INFO;\r
+ }\r
+\r
+ function isWarnEnabled() {\r
+ return $this->_level >= MC_LOGGER_WARN;\r
+ }\r
+\r
+ function isErrorEnabled() {\r
+ return $this->_level >= MC_LOGGER_ERROR;\r
+ }\r
+\r
+ function isFatalEnabled() {\r
+ return $this->_level >= MC_LOGGER_FATAL;\r
+ }\r
+\r
+ function _logMsg($level, $message) {\r
+ $roll = false;\r
+\r
+ if ($level < $this->_level)\r
+ return;\r
+\r
+ $logFile = $this->toOSPath($this->_path . "/" . $this->_filename);\r
+\r
+ switch ($level) {\r
+ case MC_LOGGER_DEBUG:\r
+ $levelName = "DEBUG";\r
+ break;\r
+\r
+ case MC_LOGGER_INFO:\r
+ $levelName = "INFO";\r
+ break;\r
+\r
+ case MC_LOGGER_WARN:\r
+ $levelName = "WARN";\r
+ break;\r
+\r
+ case MC_LOGGER_ERROR:\r
+ $levelName = "ERROR";\r
+ break;\r
+\r
+ case MC_LOGGER_FATAL:\r
+ $levelName = "FATAL";\r
+ break;\r
+ }\r
+\r
+ $logFile = str_replace('{level}', strtolower($levelName), $logFile);\r
+\r
+ $text = $this->_format;\r
+ $text = str_replace('{time}', date("Y-m-d H:i:s"), $text);\r
+ $text = str_replace('{level}', strtolower($levelName), $text);\r
+ $text = str_replace('{message}', $message, $text);\r
+ $message = $text . "\r\n";\r
+\r
+ // Check filesize\r
+ if (file_exists($logFile)) {\r
+ $size = @filesize($logFile);\r
+\r
+ if ($size + strlen($message) > $this->_maxSizeBytes)\r
+ $roll = true;\r
+ }\r
+\r
+ // Roll if the size is right\r
+ if ($roll) {\r
+ for ($i=$this->_maxFiles-1; $i>=1; $i--) {\r
+ $rfile = $this->toOSPath($logFile . "." . $i);\r
+ $nfile = $this->toOSPath($logFile . "." . ($i+1));\r
+\r
+ if (@file_exists($rfile))\r
+ @rename($rfile, $nfile);\r
+ }\r
+\r
+ @rename($logFile, $this->toOSPath($logFile . ".1"));\r
+\r
+ // Delete last logfile\r
+ $delfile = $this->toOSPath($logFile . "." . ($this->_maxFiles + 1));\r
+ if (@file_exists($delfile))\r
+ @unlink($delfile);\r
+ }\r
+\r
+ // Append log line\r
+ if (($fp = @fopen($logFile, "a")) != null) {\r
+ @fputs($fp, $message);\r
+ @fflush($fp);\r
+ @fclose($fp);\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Converts a Unix path to OS specific path.\r
+ *\r
+ * @param String $path Unix path to convert.\r
+ */\r
+ function toOSPath($path) {\r
+ return str_replace("/", DIRECTORY_SEPARATOR, $path);\r
+ }\r
+}\r
+\r
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+\r
+ /** start RoundCube specific code */\r
+ \r
+ define('INSTALL_PATH', preg_replace('/program[\\\\\/]js[\\\\\/].+$/', '', getcwd()));\r
+ require_once INSTALL_PATH . 'program/include/iniset.php';\r
+ \r
+ $rcmail_config = new rcube_config();\r
+ $config['general.engine'] = $rcmail_config->get('spellcheck_engine') == 'pspell' ? 'PSpell' : 'GoogleSpell';\r
+ $config['GoogleSpell.rpc_uri'] = $rcmail_config->get('spellcheck_uri');\r
+ \r
+ /** end RoundCube specific code */\r
+\r
+ // General settings\r
+ //$config['general.engine'] = 'GoogleSpell';\r
+ //$config['general.engine'] = 'PSpell';\r
+ //$config['general.engine'] = 'PSpellShell';\r
+ //$config['general.remote_rpc_url'] = 'http://some.other.site/some/url/rpc.php';\r
+\r
+ // PSpell settings\r
+ $config['PSpell.mode'] = PSPELL_FAST;\r
+ $config['PSpell.spelling'] = "";\r
+ $config['PSpell.jargon'] = "";\r
+ $config['PSpell.encoding'] = "";\r
+\r
+ // PSpellShell settings\r
+ $config['PSpellShell.mode'] = PSPELL_FAST;\r
+ $config['PSpellShell.aspell'] = '/usr/bin/aspell';\r
+ $config['PSpellShell.tmp'] = '/tmp';\r
+ \r
+ // Windows PSpellShell settings\r
+ //$config['PSpellShell.aspell'] = '"c:\Program Files\Aspell\bin\aspell.exe"';\r
+ //$config['PSpellShell.tmp'] = 'c:/temp';\r
+?>\r
-(function(){var JSONRequest=tinymce.util.JSONRequest,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.SpellcheckerPlugin',{getInfo:function(){return{longname:'Spellchecker',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',version:tinymce.majorVersion+"."+tinymce.minorVersion};},init:function(ed,url){var t=this,cm;t.url=url;t.editor=ed;ed.addCommand('mceSpellCheck',function(){if(!t.active){ed.setProgressState(1);t._sendRPC('checkWords',[t.selectedLang,t._getWords()],function(r){if(r.length>0){t.active=1;t._markWords(r);ed.setProgressState(0);ed.nodeChanged();}else{ed.setProgressState(0);ed.windowManager.alert('spellchecker.no_mpell');}});}else t._done();});ed.onInit.add(function(){if(ed.settings.content_css!==false)ed.dom.loadCSS(url+'/css/content.css');});ed.onClick.add(t._showMenu,t);ed.onContextMenu.add(t._showMenu,t);ed.onBeforeGetContent.add(function(){if(t.active)t._removeWords();});ed.onNodeChange.add(function(ed,cm){cm.setActive('spellchecker',t.active);});ed.onSetContent.add(function(){t._done();});ed.onBeforeGetContent.add(function(){t._done();});ed.onBeforeExecCommand.add(function(ed,cmd){if(cmd=='mceFullScreen')t._done();});t.languages={};each(ed.getParam('spellchecker_languages','+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv','hash'),function(v,k){if(k.indexOf('+')===0){k=k.substring(1);t.selectedLang=v;}t.languages[k]=v;});},createControl:function(n,cm){var t=this,c,ed=t.editor;if(n=='spellchecker'){c=cm.createSplitButton(n,{title:'spellchecker.desc',cmd:'mceSpellCheck',scope:t});c.onRenderMenu.add(function(c,m){m.add({title:'spellchecker.langs','class':'mceMenuItemTitle'}).setDisabled(1);each(t.languages,function(v,k){var o={icon:1},mi;o.onclick=function(){mi.setSelected(1);t.selectedItem.setSelected(0);t.selectedItem=mi;t.selectedLang=v;};o.title=k;mi=m.add(o);mi.setSelected(v==t.selectedLang);if(v==t.selectedLang)t.selectedItem=mi;})});return c;}},_walk:function(n,f){var d=this.editor.getDoc(),w;if(d.createTreeWalker){w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while((n=w.nextNode())!=null)f.call(this,n);}else tinymce.walk(n,f,'childNodes');},_getSeparators:function(){var re='',i,str=this.editor.getParam('spellchecker_word_separator_chars','\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}����������������\u201d\u201c');for(i=0;i<str.length;i++)re+='\\'+str.charAt(i);return re;},_getWords:function(){var ed=this.editor,wl=[],tx='',lo={};this._walk(ed.getBody(),function(n){if(n.nodeType==3)tx+=n.nodeValue+' ';});tx=tx.replace(new RegExp('([0-9]|['+this._getSeparators()+'])','g'),' ');tx=tinymce.trim(tx.replace(/(\s+)/g,' '));each(tx.split(' '),function(v){if(!lo[v]){wl.push(v);lo[v]=1;}});return wl;},_removeWords:function(w){var ed=this.editor,dom=ed.dom,se=ed.selection,b=se.getBookmark();each(dom.select('span').reverse(),function(n){if(n&&(dom.hasClass(n,'mceItemHiddenSpellWord')||dom.hasClass(n,'mceItemHidden'))){if(!w||dom.decode(n.innerHTML)==w)dom.remove(n,1);}});se.moveToBookmark(b);},_markWords:function(wl){var r1,r2,r3,r4,r5,w='',ed=this.editor,re=this._getSeparators(),dom=ed.dom,nl=[];var se=ed.selection,b=se.getBookmark();each(wl,function(v){w+=(w?'|':'')+v;});r1=new RegExp('(['+re+'])('+w+')(['+re+'])','g');r2=new RegExp('^('+w+')','g');r3=new RegExp('('+w+')(['+re+']?)$','g');r4=new RegExp('^('+w+')(['+re+']?)$','g');r5=new RegExp('('+w+')(['+re+'])','g');this._walk(this.editor.getBody(),function(n){if(n.nodeType==3){nl.push(n);}});each(nl,function(n){var v;if(n.nodeType==3){v=n.nodeValue;if(r1.test(v)||r2.test(v)||r3.test(v)||r4.test(v)){v=dom.encode(v);v=v.replace(r5,'<span class="mceItemHiddenSpellWord">$1</span>$2');v=v.replace(r3,'<span class="mceItemHiddenSpellWord">$1</span>$2');dom.replace(dom.create('span',{'class':'mceItemHidden'},v),n);}}});se.moveToBookmark(b);},_showMenu:function(ed,e){var t=this,ed=t.editor,m=t._menu,p1,dom=ed.dom,vp=dom.getViewPort(ed.getWin());if(!m){p1=DOM.getPos(ed.getContentAreaContainer());m=ed.controlManager.createDropMenu('spellcheckermenu',{offset_x:p1.x,offset_y:p1.y,'class':'mceNoIcons'});t._menu=m;}if(dom.hasClass(e.target,'mceItemHiddenSpellWord')){m.removeAll();m.add({title:'spellchecker.wait','class':'mceMenuItemTitle'}).setDisabled(1);t._sendRPC('getSuggestions',[t.selectedLang,dom.decode(e.target.innerHTML)],function(r){m.removeAll();if(r.length>0){m.add({title:'spellchecker.sug','class':'mceMenuItemTitle'}).setDisabled(1);each(r,function(v){m.add({title:v,onclick:function(){dom.replace(ed.getDoc().createTextNode(v),e.target);t._checkDone();}});});m.addSeparator();}else m.add({title:'spellchecker.no_sug','class':'mceMenuItemTitle'}).setDisabled(1);m.add({title:'spellchecker.ignore_word',onclick:function(){dom.remove(e.target,1);t._checkDone();}});m.add({title:'spellchecker.ignore_words',onclick:function(){t._removeWords(dom.decode(e.target.innerHTML));t._checkDone();}});m.update();});ed.selection.select(e.target);p1=dom.getPos(e.target);m.showMenu(p1.x,p1.y+e.target.offsetHeight-vp.y);return tinymce.dom.Event.cancel(e);}else m.hideMenu();},_checkDone:function(){var t=this,ed=t.editor,dom=ed.dom,o;each(dom.select('span'),function(n){if(n&&dom.hasClass(n,'mceItemHiddenSpellWord')){o=true;return false;}});if(!o)t._done();},_done:function(){var t=this,la=t.active;if(t.active){t.active=0;t._removeWords();if(t._menu)t._menu.hideMenu();if(la)t.editor.nodeChanged();}},_sendRPC:function(m,p,cb){var t=this,url=t.editor.getParam("spellchecker_rpc_url","{backend}");if(url=='{backend}'){t.editor.setProgressState(0);alert('Please specify: spellchecker_rpc_url');return;}JSONRequest.sendRPC({url:url,method:m,params:p,success:cb,error:function(e,x){t.editor.setProgressState(0);t.editor.windowManager.alert(e.errstr||('Error response: '+x.responseText));}});}});tinymce.PluginManager.add('spellchecker',tinymce.plugins.SpellcheckerPlugin);})();
\ No newline at end of file
+(function(){var JSONRequest=tinymce.util.JSONRequest,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.SpellcheckerPlugin',{getInfo:function(){return{longname:'Spellchecker',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',version:"2.0.2"};},init:function(ed,url){var t=this,cm;t.url=url;t.editor=ed;ed.addCommand('mceSpellCheck',function(){if(!t.active){ed.setProgressState(1);t._sendRPC('checkWords',[t.selectedLang,t._getWords()],function(r){if(r.length>0){t.active=1;t._markWords(r);ed.setProgressState(0);ed.nodeChanged();}else{ed.setProgressState(0);ed.windowManager.alert('spellchecker.no_mpell');}});}else t._done();});ed.onInit.add(function(){if(ed.settings.content_css!==false)ed.dom.loadCSS(url+'/css/content.css');});ed.onClick.add(t._showMenu,t);ed.onContextMenu.add(t._showMenu,t);ed.onBeforeGetContent.add(function(){if(t.active)t._removeWords();});ed.onNodeChange.add(function(ed,cm){cm.setActive('spellchecker',t.active);});ed.onSetContent.add(function(){t._done();});ed.onBeforeGetContent.add(function(){t._done();});ed.onBeforeExecCommand.add(function(ed,cmd){if(cmd=='mceFullScreen')t._done();});t.languages={};each(ed.getParam('spellchecker_languages','+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv','hash'),function(v,k){if(k.indexOf('+')===0){k=k.substring(1);t.selectedLang=v;}t.languages[k]=v;});},createControl:function(n,cm){var t=this,c,ed=t.editor;if(n=='spellchecker'){c=cm.createSplitButton(n,{title:'spellchecker.desc',cmd:'mceSpellCheck',scope:t});c.onRenderMenu.add(function(c,m){m.add({title:'spellchecker.langs','class':'mceMenuItemTitle'}).setDisabled(1);each(t.languages,function(v,k){var o={icon:1},mi;o.onclick=function(){mi.setSelected(1);t.selectedItem.setSelected(0);t.selectedItem=mi;t.selectedLang=v;};o.title=k;mi=m.add(o);mi.setSelected(v==t.selectedLang);if(v==t.selectedLang)t.selectedItem=mi;})});return c;}},_walk:function(n,f){var d=this.editor.getDoc(),w;if(d.createTreeWalker){w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while((n=w.nextNode())!=null)f.call(this,n);}else tinymce.walk(n,f,'childNodes');},_getSeparators:function(){var re='',i,str=this.editor.getParam('spellchecker_word_separator_chars','\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}����������������\u201d\u201c');for(i=0;i<str.length;i++)re+='\\'+str.charAt(i);return re;},_getWords:function(){var ed=this.editor,wl=[],tx='',lo={};this._walk(ed.getBody(),function(n){if(n.nodeType==3)tx+=n.nodeValue+' ';});tx=tx.replace(new RegExp('([0-9]|['+this._getSeparators()+'])','g'),' ');tx=tinymce.trim(tx.replace(/(\s+)/g,' '));each(tx.split(' '),function(v){if(!lo[v]){wl.push(v);lo[v]=1;}});return wl;},_removeWords:function(w){var ed=this.editor,dom=ed.dom,se=ed.selection,b=se.getBookmark();each(dom.select('span').reverse(),function(n){if(n&&(dom.hasClass(n,'mceItemHiddenSpellWord')||dom.hasClass(n,'mceItemHidden'))){if(!w||dom.decode(n.innerHTML)==w)dom.remove(n,1);}});se.moveToBookmark(b);},_markWords:function(wl){var r1,r2,r3,r4,r5,w='',ed=this.editor,re=this._getSeparators(),dom=ed.dom,nl=[];var se=ed.selection,b=se.getBookmark();each(wl,function(v){w+=(w?'|':'')+v;});r1=new RegExp('(['+re+'])('+w+')(['+re+'])','g');r2=new RegExp('^('+w+')','g');r3=new RegExp('('+w+')(['+re+']?)$','g');r4=new RegExp('^('+w+')(['+re+']?)$','g');r5=new RegExp('('+w+')(['+re+'])','g');this._walk(this.editor.getBody(),function(n){if(n.nodeType==3){nl.push(n);}});each(nl,function(n){var v;if(n.nodeType==3){v=n.nodeValue;if(r1.test(v)||r2.test(v)||r3.test(v)||r4.test(v)){v=dom.encode(v);v=v.replace(r5,'<span class="mceItemHiddenSpellWord">$1</span>$2');v=v.replace(r3,'<span class="mceItemHiddenSpellWord">$1</span>$2');dom.replace(dom.create('span',{'class':'mceItemHidden'},v),n);}}});se.moveToBookmark(b);},_showMenu:function(ed,e){var t=this,ed=t.editor,m=t._menu,p1,dom=ed.dom,vp=dom.getViewPort(ed.getWin());if(!m){p1=DOM.getPos(ed.getContentAreaContainer());m=ed.controlManager.createDropMenu('spellcheckermenu',{offset_x:p1.x,offset_y:p1.y,'class':'mceNoIcons'});t._menu=m;}if(dom.hasClass(e.target,'mceItemHiddenSpellWord')){m.removeAll();m.add({title:'spellchecker.wait','class':'mceMenuItemTitle'}).setDisabled(1);t._sendRPC('getSuggestions',[t.selectedLang,dom.decode(e.target.innerHTML)],function(r){m.removeAll();if(r.length>0){m.add({title:'spellchecker.sug','class':'mceMenuItemTitle'}).setDisabled(1);each(r,function(v){m.add({title:v,onclick:function(){dom.replace(ed.getDoc().createTextNode(v),e.target);t._checkDone();}});});m.addSeparator();}else m.add({title:'spellchecker.no_sug','class':'mceMenuItemTitle'}).setDisabled(1);m.add({title:'spellchecker.ignore_word',onclick:function(){dom.remove(e.target,1);t._checkDone();}});m.add({title:'spellchecker.ignore_words',onclick:function(){t._removeWords(dom.decode(e.target.innerHTML));t._checkDone();}});m.update();});ed.selection.select(e.target);p1=dom.getPos(e.target);m.showMenu(p1.x,p1.y+e.target.offsetHeight-vp.y);return tinymce.dom.Event.cancel(e);}else m.hideMenu();},_checkDone:function(){var t=this,ed=t.editor,dom=ed.dom,o;each(dom.select('span'),function(n){if(n&&dom.hasClass(n,'mceItemHiddenSpellWord')){o=true;return false;}});if(!o)t._done();},_done:function(){var t=this,la=t.active;if(t.active){t.active=0;t._removeWords();if(t._menu)t._menu.hideMenu();if(la)t.editor.nodeChanged();}},_sendRPC:function(m,p,cb){var t=this,url=t.editor.getParam("spellchecker_rpc_url",this.url+'/rpc.php');if(url=='{backend}'){t.editor.setProgressState(0);alert('Please specify: spellchecker_rpc_url');return;}JSONRequest.sendRPC({url:url,method:m,params:p,success:cb,error:function(e,x){t.editor.setProgressState(0);t.editor.windowManager.alert(e.errstr||('Error response: '+x.responseText));}});}});tinymce.PluginManager.add('spellchecker',tinymce.plugins.SpellcheckerPlugin);})();
\ No newline at end of file
author : 'Moxiecode Systems AB',\r
authorurl : 'http://tinymce.moxiecode.com',\r
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ version : "2.0.2"\r
};\r
},\r
\r
},\r
\r
_sendRPC : function(m, p, cb) {\r
- var t = this, url = t.editor.getParam("spellchecker_rpc_url", "{backend}");\r
+ var t = this, url = t.editor.getParam("spellchecker_rpc_url", this.url+'/rpc.php');\r
\r
if (url == '{backend}') {\r
t.editor.setProgressState(0);\r
--- /dev/null
+<?php
+/**
+ * general.php
+ *
+ * @package MCManager.includes
+ * @author Moxiecode
+ * @copyright Copyright © 2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+@error_reporting(E_ALL ^ E_NOTICE);
+$config = array();
+
+require_once(dirname(__FILE__) . "/../classes/utils/Logger.php");
+require_once(dirname(__FILE__) . "/../classes/utils/JSON.php");
+require_once(dirname(__FILE__) . "/../config.php");
+require_once(dirname(__FILE__) . "/../classes/SpellChecker.php");
+
+if (isset($config['general.engine']))
+ require_once(dirname(__FILE__) . "/../classes/" . $config["general.engine"] . ".php");
+
+/**
+ * Returns an request value by name without magic quoting.
+ *
+ * @param String $name Name of parameter to get.
+ * @param String $default_value Default value to return if value not found.
+ * @return String request value by name without magic quoting or default value.
+ */
+function getRequestParam($name, $default_value = false, $sanitize = false) {
+ if (!isset($_REQUEST[$name]))
+ return $default_value;
+
+ if (is_array($_REQUEST[$name])) {
+ $newarray = array();
+
+ foreach ($_REQUEST[$name] as $name => $value)
+ $newarray[formatParam($name, $sanitize)] = formatParam($value, $sanitize);
+
+ return $newarray;
+ }
+
+ return formatParam($_REQUEST[$name], $sanitize);
+}
+
+function &getLogger() {
+ global $mcLogger, $man;
+
+ if (isset($man))
+ $mcLogger = $man->getLogger();
+
+ if (!$mcLogger) {
+ $mcLogger = new Moxiecode_Logger();
+
+ // Set logger options
+ $mcLogger->setPath(dirname(__FILE__) . "/../logs");
+ $mcLogger->setMaxSize("100kb");
+ $mcLogger->setMaxFiles("10");
+ $mcLogger->setFormat("{time} - {message}");
+ }
+
+ return $mcLogger;
+}
+
+function debug($msg) {
+ $args = func_get_args();
+
+ $log = getLogger();
+ $log->debug(implode(', ', $args));
+}
+
+function info($msg) {
+ $args = func_get_args();
+
+ $log = getLogger();
+ $log->info(implode(', ', $args));
+}
+
+function error($msg) {
+ $args = func_get_args();
+
+ $log = getLogger();
+ $log->error(implode(', ', $args));
+}
+
+function warn($msg) {
+ $args = func_get_args();
+
+ $log = getLogger();
+ $log->warn(implode(', ', $args));
+}
+
+function fatal($msg) {
+ $args = func_get_args();
+
+ $log = getLogger();
+ $log->fatal(implode(', ', $args));
+}
+
+?>
\ No newline at end of file
--- /dev/null
+<?php\r
+/**\r
+ * $Id: rpc.php 822 2008-04-28 13:45:03Z spocke $\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+require_once("./includes/general.php");\r
+\r
+// Set RPC response headers\r
+header('Content-Type: text/plain');\r
+header('Content-Encoding: UTF-8');\r
+header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");\r
+header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");\r
+header("Cache-Control: no-store, no-cache, must-revalidate");\r
+header("Cache-Control: post-check=0, pre-check=0", false);\r
+header("Pragma: no-cache");\r
+\r
+$raw = "";\r
+\r
+// Try param\r
+if (isset($_POST["json_data"]))\r
+ $raw = getRequestParam("json_data");\r
+\r
+// Try globals array\r
+if (!$raw && isset($_GLOBALS) && isset($_GLOBALS["HTTP_RAW_POST_DATA"]))\r
+ $raw = $_GLOBALS["HTTP_RAW_POST_DATA"];\r
+\r
+// Try globals variable\r
+if (!$raw && isset($HTTP_RAW_POST_DATA))\r
+ $raw = $HTTP_RAW_POST_DATA;\r
+\r
+// Try stream\r
+if (!$raw) {\r
+ if (!function_exists('file_get_contents')) {\r
+ $fp = fopen("php://input", "r");\r
+ if ($fp) {\r
+ $raw = "";\r
+\r
+ while (!feof($fp))\r
+ $raw = fread($fp, 1024);\r
+\r
+ fclose($fp);\r
+ }\r
+ } else\r
+ $raw = "" . file_get_contents("php://input");\r
+}\r
+\r
+// No input data\r
+if (!$raw)\r
+ die('{"result":null,"id":null,"error":{"errstr":"Could not get raw post data.","errfile":"","errline":null,"errcontext":"","level":"FATAL"}}');\r
+\r
+// Passthrough request to remote server\r
+if (isset($config['general.remote_rpc_url'])) {\r
+ $url = parse_url($config['general.remote_rpc_url']);\r
+\r
+ // Setup request\r
+ $req = "POST " . $url["path"] . " HTTP/1.0\r\n";\r
+ $req .= "Connection: close\r\n";\r
+ $req .= "Host: " . $url['host'] . "\r\n";\r
+ $req .= "Content-Length: " . strlen($raw) . "\r\n";\r
+ $req .= "\r\n" . $raw;\r
+\r
+ if (!isset($url['port']) || !$url['port'])\r
+ $url['port'] = 80;\r
+\r
+ $errno = $errstr = "";\r
+\r
+ $socket = fsockopen($url['host'], intval($url['port']), $errno, $errstr, 30);\r
+ if ($socket) {\r
+ // Send request headers\r
+ fputs($socket, $req);\r
+\r
+ // Read response headers and data\r
+ $resp = "";\r
+ while (!feof($socket))\r
+ $resp .= fgets($socket, 4096);\r
+\r
+ fclose($socket);\r
+\r
+ // Split response header/data\r
+ $resp = explode("\r\n\r\n", $resp);\r
+ echo $resp[1]; // Output body\r
+ }\r
+\r
+ die();\r
+}\r
+\r
+// Get JSON data\r
+$json = new Moxiecode_JSON();\r
+$input = $json->decode($raw);\r
+\r
+// Execute RPC\r
+if (isset($config['general.engine'])) {\r
+ $spellchecker = new $config['general.engine']($config);\r
+ $result = call_user_func_array(array($spellchecker, $input['method']), $input['params']);\r
+} else\r
+ die('{"result":null,"id":null,"error":{"errstr":"You must choose an spellchecker engine in the config.php file.","errfile":"","errline":null,"errcontext":"","level":"FATAL"}}');\r
+\r
+// Request and response id should always be the same\r
+$output = array(\r
+ "id" => $input->id,\r
+ "result" => $result,\r
+ "error" => null\r
+);\r
+\r
+// Return JSON encoded string\r
+echo $json->encode($output);\r
+\r
+?>
\ No newline at end of file
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TablePlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;each([['table','table.desc','mceInsertTable',true],['delete_table','table.del','mceTableDelete'],['delete_col','table.delete_col_desc','mceTableDeleteCol'],['delete_row','table.delete_row_desc','mceTableDeleteRow'],['col_after','table.col_after_desc','mceTableInsertColAfter'],['col_before','table.col_before_desc','mceTableInsertColBefore'],['row_after','table.row_after_desc','mceTableInsertRowAfter'],['row_before','table.row_before_desc','mceTableInsertRowBefore'],['row_props','table.row_desc','mceTableRowProps',true],['cell_props','table.cell_desc','mceTableCellProps',true],['split_cells','table.split_cells_desc','mceTableSplitCells',true],['merge_cells','table.merge_cells_desc','mceTableMergeCells',true]],function(c){ed.addButton(c[0],{title:c[1],cmd:c[2],ui:c[3]});});ed.onInit.add(function(){if(ed&&ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){var sm,se=ed.selection,el=se.getNode()||ed.getBody();if(ed.dom.getParent(e,'td')||ed.dom.getParent(e,'th')){m.removeAll();if(el.nodeName=='A'&&!ed.dom.getAttrib(el,'name')){m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});m.addSeparator();}if(el.nodeName=='IMG'&&el.className.indexOf('mceItem')==-1){m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();}m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true,value:{action:'insert'}});m.add({title:'table.props_desc',icon:'table_props',cmd:'mceInsertTable',ui:true});m.add({title:'table.del',icon:'delete_table',cmd:'mceTableDelete',ui:true});m.addSeparator();sm=m.addMenu({title:'table.cell'});sm.add({title:'table.cell_desc',icon:'cell_props',cmd:'mceTableCellProps',ui:true});sm.add({title:'table.split_cells_desc',icon:'split_cells',cmd:'mceTableSplitCells',ui:true});sm.add({title:'table.merge_cells_desc',icon:'merge_cells',cmd:'mceTableMergeCells',ui:true});sm=m.addMenu({title:'table.row'});sm.add({title:'table.row_desc',icon:'row_props',cmd:'mceTableRowProps',ui:true});sm.add({title:'table.row_before_desc',icon:'row_before',cmd:'mceTableInsertRowBefore'});sm.add({title:'table.row_after_desc',icon:'row_after',cmd:'mceTableInsertRowAfter'});sm.add({title:'table.delete_row_desc',icon:'delete_row',cmd:'mceTableDeleteRow'});sm.addSeparator();sm.add({title:'table.cut_row_desc',icon:'cut',cmd:'mceTableCutRow'});sm.add({title:'table.copy_row_desc',icon:'copy',cmd:'mceTableCopyRow'});sm.add({title:'table.paste_row_before_desc',icon:'paste',cmd:'mceTablePasteRowBefore'});sm.add({title:'table.paste_row_after_desc',icon:'paste',cmd:'mceTablePasteRowAfter'});sm=m.addMenu({title:'table.col'});sm.add({title:'table.col_before_desc',icon:'col_before',cmd:'mceTableInsertColBefore'});sm.add({title:'table.col_after_desc',icon:'col_after',cmd:'mceTableInsertColAfter'});sm.add({title:'table.delete_col_desc',icon:'delete_col',cmd:'mceTableDeleteCol'});}else m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true});});}});ed.onKeyDown.add(function(ed,e){if(e.keyCode==9&&ed.dom.getParent(ed.selection.getNode(),'TABLE'))ed.undoManager.add();});ed.onNodeChange.add(function(ed,cm,n){var p=ed.dom.getParent(n,'td,th,caption');cm.setActive('table',!!p);if(p&&p.nodeName==='CAPTION')p=null;cm.setDisabled('delete_table',!p);cm.setDisabled('delete_col',!p);cm.setDisabled('delete_table',!p);cm.setDisabled('delete_row',!p);cm.setDisabled('col_after',!p);cm.setDisabled('col_before',!p);cm.setDisabled('row_after',!p);cm.setDisabled('row_before',!p);cm.setDisabled('row_props',!p);cm.setDisabled('cell_props',!p);cm.setDisabled('split_cells',!p||(parseInt(ed.dom.getAttrib(p,'colspan','1'))<2&&parseInt(ed.dom.getAttrib(p,'rowspan','1'))<2));cm.setDisabled('merge_cells',!p);});if(!tinymce.isIE){ed.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/<(td|th)([^>]+|)>\s*<\/(td|th)>/g,tinymce.isOpera?'<$1$2> </$1>':'<$1$2><br mce_bogus="1" /></$1>');});}},execCommand:function(cmd,ui,val){var ed=this.editor,b;switch(cmd){case"mceInsertTable":case"mceTableRowProps":case"mceTableCellProps":case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":case"mceTableDelete":ed.execCommand('mceBeginUndoLevel');this._doExecCommand(cmd,ui,val);ed.execCommand('mceEndUndoLevel');return true;}return false;},getInfo:function(){return{longname:'Tables',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_doExecCommand:function(command,user_interface,value){var inst=this.editor,ed=inst,url=this.url;var focusElm=inst.selection.getNode();var trElm=inst.dom.getParent(focusElm,"tr");var tdElm=inst.dom.getParent(focusElm,"td,th");var tableElm=inst.dom.getParent(focusElm,"table");var doc=inst.contentWindow.document;var tableBorder=tableElm?tableElm.getAttribute("border"):"";if(trElm&&tdElm==null)tdElm=trElm.cells[0];function inArray(ar,v){for(var i=0;i<ar.length;i++){if(ar[i].length>0&&inArray(ar[i],v))return true;if(ar[i]==v)return true;}return false;}function select(dx,dy){var td;grid=getTableGrid(tableElm);dx=dx||0;dy=dy||0;dx=Math.max(cpos.cellindex+dx,0);dy=Math.max(cpos.rowindex+dy,0);inst.execCommand('mceRepaint');td=getCell(grid,dy,dx);if(td){inst.selection.select(td.firstChild||td);inst.selection.collapse(1);}};function makeTD(){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';}function getColRowSpan(td){var colspan=inst.dom.getAttrib(td,"colspan");var rowspan=inst.dom.getAttrib(td,"rowspan");colspan=colspan==""?1:parseInt(colspan);rowspan=rowspan==""?1:parseInt(rowspan);return{colspan:colspan,rowspan:rowspan};}function getCellPos(grid,td){var x,y;for(y=0;y<grid.length;y++){for(x=0;x<grid[y].length;x++){if(grid[y][x]==td)return{cellindex:x,rowindex:y};}}return null;}function getCell(grid,row,col){if(grid[row]&&grid[row][col])return grid[row][col];return null;}function getTableGrid(table){var grid=[],rows=table.rows,x,y,td,sd,xstart,x2,y2;for(y=0;y<rows.length;y++){for(x=0;x<rows[y].cells.length;x++){td=rows[y].cells[x];sd=getColRowSpan(td);for(xstart=x;grid[y]&&grid[y][xstart];xstart++);for(y2=y;y2<y+sd['rowspan'];y2++){if(!grid[y2])grid[y2]=[];for(x2=xstart;x2<xstart+sd['colspan'];x2++)grid[y2][x2]=td;}}}return grid;}function trimRow(table,tr,td,new_tr){var grid=getTableGrid(table),cpos=getCellPos(grid,td);var cells,lastElm;if(new_tr.cells.length!=tr.childNodes.length){cells=tr.childNodes;lastElm=null;for(var x=0;td=getCell(grid,cpos.rowindex,x);x++){var remove=true;var sd=getColRowSpan(td);if(inArray(cells,td)){new_tr.childNodes[x]._delete=true;}else if((lastElm==null||td!=lastElm)&&sd.colspan>1){for(var i=x;i<x+td.colSpan;i++)new_tr.childNodes[i]._delete=true;}if((lastElm==null||td!=lastElm)&&sd.rowspan>1)td.rowSpan=sd.rowspan+1;lastElm=td;}deleteMarked(tableElm);}}function prevElm(node,name){while((node=node.previousSibling)!=null){if(node.nodeName==name)return node;}return null;}function nextElm(node,names){var namesAr=names.split(',');while((node=node.nextSibling)!=null){for(var i=0;i<namesAr.length;i++){if(node.nodeName.toLowerCase()==namesAr[i].toLowerCase())return node;}}return null;}function deleteMarked(tbl){if(tbl.rows==0)return;var tr=tbl.rows[0];do{var next=nextElm(tr,"TR");if(tr._delete){tr.parentNode.removeChild(tr);continue;}var td=tr.cells[0];if(td.cells>1){do{var nexttd=nextElm(td,"TD,TH");if(td._delete)td.parentNode.removeChild(td);}while((td=nexttd)!=null);}}while((tr=next)!=null);}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,"TR");for(var i=1;i<rowspan&&trNext;i++){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';if(tinymce.isIE)trNext.insertBefore(newTD,trNext.cells(td_elm.cellIndex));else trNext.insertBefore(newTD,trNext.cells[td_elm.cellIndex]);trNext=nextElm(trNext,"TR");}}function copyRow(doc,table,tr){var grid=getTableGrid(table);var newTR=tr.cloneNode(false);var cpos=getCellPos(grid,tr.cells[0]);var lastCell=null;var tableBorder=inst.dom.getAttrib(table,"border");var tdElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){var newTD=null;if(lastCell!=tdElm){for(var i=0;i<tr.cells.length;i++){if(tdElm==tr.cells[i]){newTD=tdElm.cloneNode(true);break;}}}if(newTD==null){newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';}newTD.colSpan=1;newTD.rowSpan=1;newTR.appendChild(newTD);lastCell=tdElm;}return newTR;}switch(command){case"mceTableRowProps":if(trElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/row.htm',width:400+parseInt(inst.getLang('table.rowprops_delta_width',0)),height:295+parseInt(inst.getLang('table.rowprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case"mceTableCellProps":if(tdElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/cell.htm',width:400+parseInt(inst.getLang('table.cellprops_delta_width',0)),height:295+parseInt(inst.getLang('table.cellprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case"mceInsertTable":if(user_interface){inst.windowManager.open({url:url+'/table.htm',width:400+parseInt(inst.getLang('table.table_delta_width',0)),height:320+parseInt(inst.getLang('table.table_delta_height',0)),inline:1},{plugin_url:url,action:value?value.action:0});}return true;case"mceTableDelete":var table=inst.dom.getParent(inst.selection.getNode(),"table");if(table){table.parentNode.removeChild(table);inst.execCommand('mceRepaint');}return true;case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":if(!tableElm)return true;if(trElm&&tableElm!=trElm.parentNode)tableElm=trElm.parentNode;if(tableElm&&trElm){switch(command){case"mceTableCutRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);inst.execCommand("mceTableDeleteRow");break;case"mceTableCopyRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);break;case"mceTablePasteRowBefore":if(!trElm||!tdElm)return true;var newTR=inst.tableRowClipboard.cloneNode(true);var prevTR=prevElm(trElm,"TR");if(prevTR!=null)trimRow(tableElm,prevTR,prevTR.cells[0],newTR);trElm.parentNode.insertBefore(newTR,trElm);break;case"mceTablePasteRowAfter":if(!trElm||!tdElm)return true;var nextTR=nextElm(trElm,"TR");var newTR=inst.tableRowClipboard.cloneNode(true);trimRow(tableElm,trElm,tdElm,newTR);if(nextTR==null)trElm.parentNode.appendChild(newTR);else nextTR.parentNode.insertBefore(newTR,nextTR);break;case"mceTableInsertRowBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}trElm.parentNode.insertBefore(newTR,trElm);select(0,1);break;case"mceTableInsertRowAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}if(newTR.hasChildNodes()){var nextTR=nextElm(trElm,"TR");if(nextTR)nextTR.parentNode.insertBefore(newTR,nextTR);else tableElm.appendChild(newTR);}select(0,1);break;case"mceTableDeleteRow":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);if(grid.length==1){inst.dom.remove(inst.dom.getParent(tableElm,"table"));return true;}var cells=trElm.cells;var nextTR=nextElm(trElm,"TR");for(var x=0;x<cells.length;x++){if(cells[x].rowSpan>1){var newTD=cells[x].cloneNode(true);var sd=getColRowSpan(cells[x]);newTD.rowSpan=sd.rowspan-1;var nextTD=nextTR.cells[x];if(nextTD==null)nextTR.appendChild(newTD);else nextTR.insertBefore(newTD,nextTD);}}var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd.rowspan>1){tdElm.rowSpan=sd.rowspan-1;}else{trElm=tdElm.parentNode;if(trElm.parentNode)trElm._delete=true;}lastTDElm=tdElm;}}deleteMarked(tableElm);select(0,-1);break;case"mceTableInsertColBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.rowSpan=tdElm.rowSpan;tdElm.parentNode.insertBefore(newTD,tdElm);}else tdElm.colSpan++;lastTDElm=tdElm;}}select();break;case"mceTableInsertColAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.rowSpan=tdElm.rowSpan;var nextTD=nextElm(tdElm,"TD,TH");if(nextTD==null)tdElm.parentNode.appendChild(newTD);else nextTD.parentNode.insertBefore(newTD,nextTD);}else tdElm.colSpan++;lastTDElm=tdElm;}}select(1);break;case"mceTableDeleteCol":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;if(grid.length>1&&grid[0].length<=1){inst.dom.remove(inst.dom.getParent(tableElm,"table"));return true;}for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']>1)tdElm.colSpan=sd['colspan']-1;else{if(tdElm.parentNode)tdElm.parentNode.removeChild(tdElm);}lastTDElm=tdElm;}}select(-1);break;case"mceTableSplitCells":if(!trElm||!tdElm)return true;var spandata=getColRowSpan(tdElm);var colspan=spandata["colspan"];var rowspan=spandata["rowspan"];if(colspan>1||rowspan>1){tdElm.colSpan=1;for(var i=1;i<colspan;i++){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';trElm.insertBefore(newTD,nextElm(tdElm,"TD,TH"));if(rowspan>1)addRows(newTD,trElm,rowspan);}addRows(tdElm,trElm,rowspan);}tableElm=inst.dom.getParent(inst.selection.getNode(),"table");break;case"mceTableMergeCells":var rows=[];var sel=inst.selection.getSel();var grid=getTableGrid(tableElm);if(tinymce.isIE||sel.rangeCount==1){if(user_interface){var sp=getColRowSpan(tdElm);inst.windowManager.open({url:url+'/merge_cells.htm',width:240+parseInt(inst.getLang('table.merge_cells_delta_width',0)),height:110+parseInt(inst.getLang('table.merge_cells_delta_height',0)),inline:1},{action:"update",numcols:sp.colspan,numrows:sp.rowspan,plugin_url:url});return true;}else{var numRows=parseInt(value['numrows']);var numCols=parseInt(value['numcols']);var cpos=getCellPos(grid,tdElm);if((""+numRows)=="NaN")numRows=1;if((""+numCols)=="NaN")numCols=1;var tRows=tableElm.rows;for(var y=cpos.rowindex;y<grid.length;y++){var rowCells=[];for(var x=cpos.cellindex;x<grid[y].length;x++){var td=getCell(grid,y,x);if(td&&!inArray(rows,td)&&!inArray(rowCells,td)){var cp=getCellPos(grid,td);if(cp.cellindex<cpos.cellindex+numCols&&cp.rowindex<cpos.rowindex+numRows)rowCells[rowCells.length]=td;}}if(rowCells.length>0)rows[rows.length]=rowCells;var td=getCell(grid,cpos.rowindex,cpos.cellindex);each(ed.dom.select('br',td),function(e,i){if(i>0&&ed.dom.getAttrib('mce_bogus'))ed.dom.remove(e);});}}}else{var cells=[];var sel=inst.selection.getSel();var lastTR=null;var curRow=null;var x1=-1,y1=-1,x2,y2;if(sel.rangeCount<2)return true;for(var i=0;i<sel.rangeCount;i++){var rng=sel.getRangeAt(i);var tdElm=rng.startContainer.childNodes[rng.startOffset];if(!tdElm)break;if(tdElm.nodeName=="TD")cells[cells.length]=tdElm;}var tRows=tableElm.rows;for(var y=0;y<tRows.length;y++){var rowCells=[];for(var x=0;x<tRows[y].cells.length;x++){var td=tRows[y].cells[x];for(var i=0;i<cells.length;i++){if(td==cells[i]){rowCells[rowCells.length]=td;}}}if(rowCells.length>0)rows[rows.length]=rowCells;}var curRow=[];var lastTR=null;for(var y=0;y<grid.length;y++){for(var x=0;x<grid[y].length;x++){grid[y][x]._selected=false;for(var i=0;i<cells.length;i++){if(grid[y][x]==cells[i]){if(x1==-1){x1=x;y1=y;}x2=x;y2=y;grid[y][x]._selected=true;}}}}for(var y=y1;y<=y2;y++){for(var x=x1;x<=x2;x++){if(!grid[y][x]._selected){alert("Invalid selection for merge.");return true;}}}}var rowSpan=1,colSpan=1;var lastRowSpan=-1;for(var y=0;y<rows.length;y++){var rowColSpan=0;for(var x=0;x<rows[y].length;x++){var sd=getColRowSpan(rows[y][x]);rowColSpan+=sd['colspan'];if(lastRowSpan!=-1&&sd['rowspan']!=lastRowSpan){alert("Invalid selection for merge.");return true;}lastRowSpan=sd['rowspan'];}if(rowColSpan>colSpan)colSpan=rowColSpan;lastRowSpan=-1;}var lastColSpan=-1;for(var x=0;x<rows[0].length;x++){var colRowSpan=0;for(var y=0;y<rows.length;y++){var sd=getColRowSpan(rows[y][x]);colRowSpan+=sd['rowspan'];if(lastColSpan!=-1&&sd['colspan']!=lastColSpan){alert("Invalid selection for merge.");return true;}lastColSpan=sd['colspan'];}if(colRowSpan>rowSpan)rowSpan=colRowSpan;lastColSpan=-1;}tdElm=rows[0][0];tdElm.rowSpan=rowSpan;tdElm.colSpan=colSpan;for(var y=0;y<rows.length;y++){for(var x=0;x<rows[y].length;x++){var html=rows[y][x].innerHTML;var chk=html.replace(/[ \t\r\n]/g,"");if(chk!="<br/>"&&chk!="<br>"&&chk!='<br mce_bogus="1"/>'&&(x+y>0))tdElm.innerHTML+=html;if(rows[y][x]!=tdElm&&!rows[y][x]._deleted){var cpos=getCellPos(grid,rows[y][x]);var tr=rows[y][x].parentNode;tr.removeChild(rows[y][x]);rows[y][x]._deleted=true;if(!tr.hasChildNodes()){tr.parentNode.removeChild(tr);var lastCell=null;for(var x=0;cellElm=getCell(grid,cpos.rowindex,x);x++){if(cellElm!=lastCell&&cellElm.rowSpan>1)cellElm.rowSpan--;lastCell=cellElm;}if(tdElm.rowSpan>1)tdElm.rowSpan--;}}}}each(ed.dom.select('br',tdElm),function(e,i){if(i>0&&ed.dom.getAttrib(e,'mce_bogus'))ed.dom.remove(e);});break;}tableElm=inst.dom.getParent(inst.selection.getNode(),"table");inst.addVisual(tableElm);inst.nodeChanged();}return true;}return false;}});tinymce.PluginManager.add('table',tinymce.plugins.TablePlugin);})();
\ No newline at end of file
+(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TablePlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;each([['table','table.desc','mceInsertTable',true],['delete_table','table.del','mceTableDelete'],['delete_col','table.delete_col_desc','mceTableDeleteCol'],['delete_row','table.delete_row_desc','mceTableDeleteRow'],['col_after','table.col_after_desc','mceTableInsertColAfter'],['col_before','table.col_before_desc','mceTableInsertColBefore'],['row_after','table.row_after_desc','mceTableInsertRowAfter'],['row_before','table.row_before_desc','mceTableInsertRowBefore'],['row_props','table.row_desc','mceTableRowProps',true],['cell_props','table.cell_desc','mceTableCellProps',true],['split_cells','table.split_cells_desc','mceTableSplitCells',true],['merge_cells','table.merge_cells_desc','mceTableMergeCells',true]],function(c){ed.addButton(c[0],{title:c[1],cmd:c[2],ui:c[3]});});ed.onInit.add(function(){if(ed&&ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){var sm,se=ed.selection,el=se.getNode()||ed.getBody();if(ed.dom.getParent(e,'td')||ed.dom.getParent(e,'th')){m.removeAll();if(el.nodeName=='A'&&!ed.dom.getAttrib(el,'name')){m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});m.addSeparator();}if(el.nodeName=='IMG'&&el.className.indexOf('mceItem')==-1){m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();}m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true,value:{action:'insert'}});m.add({title:'table.props_desc',icon:'table_props',cmd:'mceInsertTable',ui:true});m.add({title:'table.del',icon:'delete_table',cmd:'mceTableDelete',ui:true});m.addSeparator();sm=m.addMenu({title:'table.cell'});sm.add({title:'table.cell_desc',icon:'cell_props',cmd:'mceTableCellProps',ui:true});sm.add({title:'table.split_cells_desc',icon:'split_cells',cmd:'mceTableSplitCells',ui:true});sm.add({title:'table.merge_cells_desc',icon:'merge_cells',cmd:'mceTableMergeCells',ui:true});sm=m.addMenu({title:'table.row'});sm.add({title:'table.row_desc',icon:'row_props',cmd:'mceTableRowProps',ui:true});sm.add({title:'table.row_before_desc',icon:'row_before',cmd:'mceTableInsertRowBefore'});sm.add({title:'table.row_after_desc',icon:'row_after',cmd:'mceTableInsertRowAfter'});sm.add({title:'table.delete_row_desc',icon:'delete_row',cmd:'mceTableDeleteRow'});sm.addSeparator();sm.add({title:'table.cut_row_desc',icon:'cut',cmd:'mceTableCutRow'});sm.add({title:'table.copy_row_desc',icon:'copy',cmd:'mceTableCopyRow'});sm.add({title:'table.paste_row_before_desc',icon:'paste',cmd:'mceTablePasteRowBefore'});sm.add({title:'table.paste_row_after_desc',icon:'paste',cmd:'mceTablePasteRowAfter'});sm=m.addMenu({title:'table.col'});sm.add({title:'table.col_before_desc',icon:'col_before',cmd:'mceTableInsertColBefore'});sm.add({title:'table.col_after_desc',icon:'col_after',cmd:'mceTableInsertColAfter'});sm.add({title:'table.delete_col_desc',icon:'delete_col',cmd:'mceTableDeleteCol'});}else m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true});});}});ed.onKeyDown.add(function(ed,e){if(e.keyCode==9&&ed.dom.getParent(ed.selection.getNode(),'TABLE')){if(!tinymce.isGecko&&!tinymce.isOpera){tinyMCE.execInstanceCommand(ed.editorId,"mceTableMoveToNextRow",true);return tinymce.dom.Event.cancel(e);}ed.undoManager.add();}});if(!tinymce.isIE){if(ed.getParam('table_selection',true)){ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='TABLE')ed.selection.select(e);});}}ed.onNodeChange.add(function(ed,cm,n){var p=ed.dom.getParent(n,'td,th,caption');cm.setActive('table',n.nodeName==='TABLE'||!!p);if(p&&p.nodeName==='CAPTION')p=null;cm.setDisabled('delete_table',!p);cm.setDisabled('delete_col',!p);cm.setDisabled('delete_table',!p);cm.setDisabled('delete_row',!p);cm.setDisabled('col_after',!p);cm.setDisabled('col_before',!p);cm.setDisabled('row_after',!p);cm.setDisabled('row_before',!p);cm.setDisabled('row_props',!p);cm.setDisabled('cell_props',!p);cm.setDisabled('split_cells',!p||(parseInt(ed.dom.getAttrib(p,'colspan','1'))<2&&parseInt(ed.dom.getAttrib(p,'rowspan','1'))<2));cm.setDisabled('merge_cells',!p);});if(!tinymce.isIE){ed.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/<(td|th)([^>]+|)>\s*<\/(td|th)>/g,tinymce.isOpera?'<$1$2> </$1>':'<$1$2><br mce_bogus="1" /></$1>');});}},execCommand:function(cmd,ui,val){var ed=this.editor,b;switch(cmd){case"mceTableMoveToNextRow":case"mceInsertTable":case"mceTableRowProps":case"mceTableCellProps":case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":case"mceTableDelete":ed.execCommand('mceBeginUndoLevel');this._doExecCommand(cmd,ui,val);ed.execCommand('mceEndUndoLevel');return true;}return false;},getInfo:function(){return{longname:'Tables',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_doExecCommand:function(command,user_interface,value){var inst=this.editor,ed=inst,url=this.url;var focusElm=inst.selection.getNode();var trElm=inst.dom.getParent(focusElm,"tr");var tdElm=inst.dom.getParent(focusElm,"td,th");var tableElm=inst.dom.getParent(focusElm,"table");var doc=inst.contentWindow.document;var tableBorder=tableElm?tableElm.getAttribute("border"):"";if(trElm&&tdElm==null)tdElm=trElm.cells[0];function inArray(ar,v){for(var i=0;i<ar.length;i++){if(ar[i].length>0&&inArray(ar[i],v))return true;if(ar[i]==v)return true;}return false;}function select(dx,dy){var td;grid=getTableGrid(tableElm);dx=dx||0;dy=dy||0;dx=Math.max(cpos.cellindex+dx,0);dy=Math.max(cpos.rowindex+dy,0);inst.execCommand('mceRepaint');td=getCell(grid,dy,dx);if(td){inst.selection.select(td.firstChild||td);inst.selection.collapse(1);}};function makeTD(){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';}function getColRowSpan(td){var colspan=inst.dom.getAttrib(td,"colspan");var rowspan=inst.dom.getAttrib(td,"rowspan");colspan=colspan==""?1:parseInt(colspan);rowspan=rowspan==""?1:parseInt(rowspan);return{colspan:colspan,rowspan:rowspan};}function getCellPos(grid,td){var x,y;for(y=0;y<grid.length;y++){for(x=0;x<grid[y].length;x++){if(grid[y][x]==td)return{cellindex:x,rowindex:y};}}return null;}function getCell(grid,row,col){if(grid[row]&&grid[row][col])return grid[row][col];return null;}function getNextCell(table,cell){var cells=[],x=0,i,j,cell,nextCell;for(i=0;i<table.rows.length;i++)for(j=0;j<table.rows[i].cells.length;j++,x++)cells[x]=table.rows[i].cells[j];for(i=0;i<cells.length;i++)if(cells[i]==cell)if(nextCell=cells[i+1])return nextCell;}function getTableGrid(table){var grid=[],rows=table.rows,x,y,td,sd,xstart,x2,y2;for(y=0;y<rows.length;y++){for(x=0;x<rows[y].cells.length;x++){td=rows[y].cells[x];sd=getColRowSpan(td);for(xstart=x;grid[y]&&grid[y][xstart];xstart++);for(y2=y;y2<y+sd['rowspan'];y2++){if(!grid[y2])grid[y2]=[];for(x2=xstart;x2<xstart+sd['colspan'];x2++)grid[y2][x2]=td;}}}return grid;}function trimRow(table,tr,td,new_tr){var grid=getTableGrid(table),cpos=getCellPos(grid,td);var cells,lastElm;if(new_tr.cells.length!=tr.childNodes.length){cells=tr.childNodes;lastElm=null;for(var x=0;td=getCell(grid,cpos.rowindex,x);x++){var remove=true;var sd=getColRowSpan(td);if(inArray(cells,td)){new_tr.childNodes[x]._delete=true;}else if((lastElm==null||td!=lastElm)&&sd.colspan>1){for(var i=x;i<x+td.colSpan;i++)new_tr.childNodes[i]._delete=true;}if((lastElm==null||td!=lastElm)&&sd.rowspan>1)td.rowSpan=sd.rowspan+1;lastElm=td;}deleteMarked(tableElm);}}function prevElm(node,name){while((node=node.previousSibling)!=null){if(node.nodeName==name)return node;}return null;}function nextElm(node,names){var namesAr=names.split(',');while((node=node.nextSibling)!=null){for(var i=0;i<namesAr.length;i++){if(node.nodeName.toLowerCase()==namesAr[i].toLowerCase())return node;}}return null;}function deleteMarked(tbl){if(tbl.rows==0)return;var tr=tbl.rows[0];do{var next=nextElm(tr,"TR");if(tr._delete){tr.parentNode.removeChild(tr);continue;}var td=tr.cells[0];if(td.cells>1){do{var nexttd=nextElm(td,"TD,TH");if(td._delete)td.parentNode.removeChild(td);}while((td=nexttd)!=null);}}while((tr=next)!=null);}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,"TR");for(var i=1;i<rowspan&&trNext;i++){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';if(tinymce.isIE)trNext.insertBefore(newTD,trNext.cells(td_elm.cellIndex));else trNext.insertBefore(newTD,trNext.cells[td_elm.cellIndex]);trNext=nextElm(trNext,"TR");}}function copyRow(doc,table,tr){var grid=getTableGrid(table);var newTR=tr.cloneNode(false);var cpos=getCellPos(grid,tr.cells[0]);var lastCell=null;var tableBorder=inst.dom.getAttrib(table,"border");var tdElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){var newTD=null;if(lastCell!=tdElm){for(var i=0;i<tr.cells.length;i++){if(tdElm==tr.cells[i]){newTD=tdElm.cloneNode(true);break;}}}if(newTD==null){newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';}newTD.colSpan=1;newTD.rowSpan=1;newTR.appendChild(newTD);lastCell=tdElm;}return newTR;}switch(command){case"mceTableMoveToNextRow":var nextCell=getNextCell(tableElm,tdElm);if(!nextCell){inst.execCommand("mceTableInsertRowAfter",tdElm);nextCell=getNextCell(tableElm,tdElm);}inst.selection.select(nextCell);inst.selection.collapse(true);return true;case"mceTableRowProps":if(trElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/row.htm',width:400+parseInt(inst.getLang('table.rowprops_delta_width',0)),height:295+parseInt(inst.getLang('table.rowprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case"mceTableCellProps":if(tdElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/cell.htm',width:400+parseInt(inst.getLang('table.cellprops_delta_width',0)),height:295+parseInt(inst.getLang('table.cellprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case"mceInsertTable":if(user_interface){inst.windowManager.open({url:url+'/table.htm',width:400+parseInt(inst.getLang('table.table_delta_width',0)),height:320+parseInt(inst.getLang('table.table_delta_height',0)),inline:1},{plugin_url:url,action:value?value.action:0});}return true;case"mceTableDelete":var table=inst.dom.getParent(inst.selection.getNode(),"table");if(table){table.parentNode.removeChild(table);inst.execCommand('mceRepaint');}return true;case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":if(!tableElm)return true;if(trElm&&tableElm!=trElm.parentNode)tableElm=trElm.parentNode;if(tableElm&&trElm){switch(command){case"mceTableCutRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);inst.execCommand("mceTableDeleteRow");break;case"mceTableCopyRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);break;case"mceTablePasteRowBefore":if(!trElm||!tdElm)return true;var newTR=inst.tableRowClipboard.cloneNode(true);var prevTR=prevElm(trElm,"TR");if(prevTR!=null)trimRow(tableElm,prevTR,prevTR.cells[0],newTR);trElm.parentNode.insertBefore(newTR,trElm);break;case"mceTablePasteRowAfter":if(!trElm||!tdElm)return true;var nextTR=nextElm(trElm,"TR");var newTR=inst.tableRowClipboard.cloneNode(true);trimRow(tableElm,trElm,tdElm,newTR);if(nextTR==null)trElm.parentNode.appendChild(newTR);else nextTR.parentNode.insertBefore(newTR,nextTR);break;case"mceTableInsertRowBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}trElm.parentNode.insertBefore(newTR,trElm);select(0,1);break;case"mceTableInsertRowAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}if(newTR.hasChildNodes()){var nextTR=nextElm(trElm,"TR");if(nextTR)nextTR.parentNode.insertBefore(newTR,nextTR);else tableElm.appendChild(newTR);}select(0,1);break;case"mceTableDeleteRow":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);if(grid.length==1&&tableElm.nodeName=='TBODY'){inst.dom.remove(inst.dom.getParent(tableElm,"table"));return true;}var cells=trElm.cells;var nextTR=nextElm(trElm,"TR");for(var x=0;x<cells.length;x++){if(cells[x].rowSpan>1){var newTD=cells[x].cloneNode(true);var sd=getColRowSpan(cells[x]);newTD.rowSpan=sd.rowspan-1;var nextTD=nextTR.cells[x];if(nextTD==null)nextTR.appendChild(newTD);else nextTR.insertBefore(newTD,nextTD);}}var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd.rowspan>1){tdElm.rowSpan=sd.rowspan-1;}else{trElm=tdElm.parentNode;if(trElm.parentNode)trElm._delete=true;}lastTDElm=tdElm;}}deleteMarked(tableElm);select(0,-1);break;case"mceTableInsertColBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.rowSpan=tdElm.rowSpan;tdElm.parentNode.insertBefore(newTD,tdElm);}else tdElm.colSpan++;lastTDElm=tdElm;}}select();break;case"mceTableInsertColAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.rowSpan=tdElm.rowSpan;var nextTD=nextElm(tdElm,"TD,TH");if(nextTD==null)tdElm.parentNode.appendChild(newTD);else nextTD.parentNode.insertBefore(newTD,nextTD);}else tdElm.colSpan++;lastTDElm=tdElm;}}select(1);break;case"mceTableDeleteCol":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;if((grid.length>1&&grid[0].length<=1)&&tableElm.nodeName=='TBODY'){inst.dom.remove(inst.dom.getParent(tableElm,"table"));return true;}for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']>1)tdElm.colSpan=sd['colspan']-1;else{if(tdElm.parentNode)tdElm.parentNode.removeChild(tdElm);}lastTDElm=tdElm;}}select(-1);break;case"mceTableSplitCells":if(!trElm||!tdElm)return true;var spandata=getColRowSpan(tdElm);var colspan=spandata["colspan"];var rowspan=spandata["rowspan"];if(colspan>1||rowspan>1){tdElm.colSpan=1;for(var i=1;i<colspan;i++){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';trElm.insertBefore(newTD,nextElm(tdElm,"TD,TH"));if(rowspan>1)addRows(newTD,trElm,rowspan);}addRows(tdElm,trElm,rowspan);}tableElm=inst.dom.getParent(inst.selection.getNode(),"table");break;case"mceTableMergeCells":var rows=[];var sel=inst.selection.getSel();var grid=getTableGrid(tableElm);if(tinymce.isIE||sel.rangeCount==1){if(user_interface){var sp=getColRowSpan(tdElm);inst.windowManager.open({url:url+'/merge_cells.htm',width:240+parseInt(inst.getLang('table.merge_cells_delta_width',0)),height:110+parseInt(inst.getLang('table.merge_cells_delta_height',0)),inline:1},{action:"update",numcols:sp.colspan,numrows:sp.rowspan,plugin_url:url});return true;}else{var numRows=parseInt(value['numrows']);var numCols=parseInt(value['numcols']);var cpos=getCellPos(grid,tdElm);if((""+numRows)=="NaN")numRows=1;if((""+numCols)=="NaN")numCols=1;var tRows=tableElm.rows;for(var y=cpos.rowindex;y<grid.length;y++){var rowCells=[];for(var x=cpos.cellindex;x<grid[y].length;x++){var td=getCell(grid,y,x);if(td&&!inArray(rows,td)&&!inArray(rowCells,td)){var cp=getCellPos(grid,td);if(cp.cellindex<cpos.cellindex+numCols&&cp.rowindex<cpos.rowindex+numRows)rowCells[rowCells.length]=td;}}if(rowCells.length>0)rows[rows.length]=rowCells;var td=getCell(grid,cpos.rowindex,cpos.cellindex);each(ed.dom.select('br',td),function(e,i){if(i>0&&ed.dom.getAttrib('mce_bogus'))ed.dom.remove(e);});}}}else{var cells=[];var sel=inst.selection.getSel();var lastTR=null;var curRow=null;var x1=-1,y1=-1,x2,y2;if(sel.rangeCount<2)return true;for(var i=0;i<sel.rangeCount;i++){var rng=sel.getRangeAt(i);var tdElm=rng.startContainer.childNodes[rng.startOffset];if(!tdElm)break;if(tdElm.nodeName=="TD"||tdElm.nodeName=="TH")cells[cells.length]=tdElm;}var tRows=tableElm.rows;for(var y=0;y<tRows.length;y++){var rowCells=[];for(var x=0;x<tRows[y].cells.length;x++){var td=tRows[y].cells[x];for(var i=0;i<cells.length;i++){if(td==cells[i]){rowCells[rowCells.length]=td;}}}if(rowCells.length>0)rows[rows.length]=rowCells;}var curRow=[];var lastTR=null;for(var y=0;y<grid.length;y++){for(var x=0;x<grid[y].length;x++){grid[y][x]._selected=false;for(var i=0;i<cells.length;i++){if(grid[y][x]==cells[i]){if(x1==-1){x1=x;y1=y;}x2=x;y2=y;grid[y][x]._selected=true;}}}}for(var y=y1;y<=y2;y++){for(var x=x1;x<=x2;x++){if(!grid[y][x]._selected){alert("Invalid selection for merge.");return true;}}}}var rowSpan=1,colSpan=1;var lastRowSpan=-1;for(var y=0;y<rows.length;y++){var rowColSpan=0;for(var x=0;x<rows[y].length;x++){var sd=getColRowSpan(rows[y][x]);rowColSpan+=sd['colspan'];if(lastRowSpan!=-1&&sd['rowspan']!=lastRowSpan){alert("Invalid selection for merge.");return true;}lastRowSpan=sd['rowspan'];}if(rowColSpan>colSpan)colSpan=rowColSpan;lastRowSpan=-1;}var lastColSpan=-1;for(var x=0;x<rows[0].length;x++){var colRowSpan=0;for(var y=0;y<rows.length;y++){var sd=getColRowSpan(rows[y][x]);colRowSpan+=sd['rowspan'];if(lastColSpan!=-1&&sd['colspan']!=lastColSpan){alert("Invalid selection for merge.");return true;}lastColSpan=sd['colspan'];}if(colRowSpan>rowSpan)rowSpan=colRowSpan;lastColSpan=-1;}tdElm=rows[0][0];tdElm.rowSpan=rowSpan;tdElm.colSpan=colSpan;for(var y=0;y<rows.length;y++){for(var x=0;x<rows[y].length;x++){var html=rows[y][x].innerHTML;var chk=html.replace(/[ \t\r\n]/g,"");if(chk!="<br/>"&&chk!="<br>"&&chk!='<br mce_bogus="1"/>'&&(x+y>0))tdElm.innerHTML+=html;if(rows[y][x]!=tdElm&&!rows[y][x]._deleted){var cpos=getCellPos(grid,rows[y][x]);var tr=rows[y][x].parentNode;tr.removeChild(rows[y][x]);rows[y][x]._deleted=true;if(!tr.hasChildNodes()){tr.parentNode.removeChild(tr);var lastCell=null;for(var x=0;cellElm=getCell(grid,cpos.rowindex,x);x++){if(cellElm!=lastCell&&cellElm.rowSpan>1)cellElm.rowSpan--;lastCell=cellElm;}if(tdElm.rowSpan>1)tdElm.rowSpan--;}}}}each(ed.dom.select('br',tdElm),function(e,i){if(i>0&&ed.dom.getAttrib(e,'mce_bogus'))ed.dom.remove(e);});break;}tableElm=inst.dom.getParent(inst.selection.getNode(),"table");inst.addVisual(tableElm);inst.nodeChanged();}return true;}return false;}});tinymce.PluginManager.add('table',tinymce.plugins.TablePlugin);})();
\ No newline at end of file
/**\r
- * $Id: editor_plugin_src.js 768 2008-04-04 13:52:49Z spocke $\r
+ * $Id: editor_plugin_src.js 853 2008-05-27 08:05:35Z spocke $\r
*\r
* @author Moxiecode\r
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
\r
// Add undo level when new rows are created using the tab key\r
ed.onKeyDown.add(function(ed, e) {\r
- if (e.keyCode == 9 && ed.dom.getParent(ed.selection.getNode(), 'TABLE'))\r
+ if (e.keyCode == 9 && ed.dom.getParent(ed.selection.getNode(), 'TABLE')) {\r
+ if (!tinymce.isGecko && !tinymce.isOpera) {\r
+ tinyMCE.execInstanceCommand(ed.editorId, "mceTableMoveToNextRow", true);\r
+ return tinymce.dom.Event.cancel(e);\r
+ }\r
+\r
ed.undoManager.add();\r
+ }\r
});\r
\r
+ // Select whole table is a table border is clicked\r
+ if (!tinymce.isIE) {\r
+ if (ed.getParam('table_selection', true)) {\r
+ ed.onClick.add(function(ed, e) {\r
+ e = e.target;\r
+\r
+ if (e.nodeName === 'TABLE')\r
+ ed.selection.select(e);\r
+ });\r
+ }\r
+ }\r
+\r
ed.onNodeChange.add(function(ed, cm, n) {\r
var p = ed.dom.getParent(n, 'td,th,caption');\r
\r
- cm.setActive('table', !!p);\r
+ cm.setActive('table', n.nodeName === 'TABLE' || !!p);\r
if (p && p.nodeName === 'CAPTION')\r
p = null;\r
\r
\r
// Is table command\r
switch (cmd) {\r
+ case "mceTableMoveToNextRow":\r
case "mceInsertTable":\r
case "mceTableRowProps":\r
case "mceTableCellProps":\r
return null;\r
}\r
\r
+ function getNextCell(table, cell) {\r
+ var cells = [], x = 0, i, j, cell, nextCell;\r
+\r
+ for (i = 0; i < table.rows.length; i++)\r
+ for (j = 0; j < table.rows[i].cells.length; j++, x++)\r
+ cells[x] = table.rows[i].cells[j];\r
+\r
+ for (i = 0; i < cells.length; i++)\r
+ if (cells[i] == cell)\r
+ if (nextCell = cells[i+1])\r
+ return nextCell;\r
+ }\r
+\r
function getTableGrid(table) {\r
var grid = [], rows = table.rows, x, y, td, sd, xstart, x2, y2;\r
\r
\r
// Handle commands\r
switch (command) {\r
+ case "mceTableMoveToNextRow":\r
+ var nextCell = getNextCell(tableElm, tdElm);\r
+\r
+ if (!nextCell) {\r
+ inst.execCommand("mceTableInsertRowAfter", tdElm);\r
+ nextCell = getNextCell(tableElm, tdElm);\r
+ }\r
+\r
+ inst.selection.select(nextCell);\r
+ inst.selection.collapse(true);\r
+\r
+ return true;\r
+\r
case "mceTableRowProps":\r
if (trElm == null)\r
return true;\r
var cpos = getCellPos(grid, tdElm);\r
\r
// Only one row, remove whole table\r
- if (grid.length == 1) {\r
+ if (grid.length == 1 && tableElm.nodeName == 'TBODY') {\r
inst.dom.remove(inst.dom.getParent(tableElm, "table"));\r
return true;\r
}\r
var lastTDElm = null;\r
\r
// Only one col, remove whole table\r
- if (grid.length > 1 && grid[0].length <= 1) {\r
+ if ((grid.length > 1 && grid[0].length <= 1) && tableElm.nodeName == 'TBODY') {\r
inst.dom.remove(inst.dom.getParent(tableElm, "table"));\r
return true;\r
}\r
if (!tdElm)\r
break;\r
\r
- if (tdElm.nodeName == "TD")\r
+ if (tdElm.nodeName == "TD" || tdElm.nodeName == "TH")\r
cells[cells.length] = tdElm;\r
}\r
\r
tinyMCEPopup.resizeToInnerSize();\r
\r
f.numcols.value = tinyMCEPopup.getWindowArg('numcols', 1);\r
- f.numrows.value = tinyMCEPopup.getWindowArg('numcols', 1);\r
+ f.numrows.value = tinyMCEPopup.getWindowArg('numrows', 1);\r
}\r
\r
function mergeCells() {\r
\r
// Validate table size\r
if (colLimit && cols > colLimit) {\r
- alert(inst.getLang('table_col_limit', '', true, {cols : colLimit}));\r
+ inst.windowManager.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit));\r
return false;\r
} else if (rowLimit && rows > rowLimit) {\r
- alert(inst.getLang('table_row_limit', '', true, {rows : rowLimit}));\r
+ inst.windowManager.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit));\r
return false;\r
} else if (cellLimit && cols * rows > cellLimit) {\r
- alert(inst.getLang('table_cell_limit', '', true, {cells : cellLimit}));\r
+ inst.windowManager.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit));\r
return false;\r
}\r
\r
--- /dev/null
+tinyMCE.addI18n('ar.table_dlg',{\r
+general_tab:"\u0639\u0627\u0645",\r
+advanced_tab:"\u0645\u062A\u0642\u062F\u0645",\r
+general_props:"\u062E\u0635\u0627\u0626\u0635 \u0639\u0627\u0645\u0629",\r
+advanced_props:"\u062E\u0635\u0627\u0626\u0635 \u0645\u062A\u0642\u062F\u0645\u0629",\r
+rowtype:"Row in table part",\r
+title:"\u0625\u062F\u0631\u0627\u062C/\u062A\u0639\u062F\u064A\u0644 \u062C\u062F\u0648\u0644",\r
+width:"\u0627\u0644\u0639\u0631\u0636",\r
+height:"\u0627\u0644\u0625\u0631\u062A\u0641\u0627\u0639",\r
+cols:"\u0627\u0639\u0645\u062F\u0629",\r
+rows:"\u0635\u0641\u0648\u0641",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"\u0627\u0644\u062D\u062F\u0648\u062F",\r
+align:"\u0645\u062D\u0627\u0630\u0627\u0629",\r
+align_default:"Default",\r
+align_left:"\u064A\u0633\u0627\u0631",\r
+align_right:"\u064A\u0645\u064A\u0646",\r
+align_middle:"Center",\r
+row_title:"Table row \u062E\u0635\u0627\u0626\u0635",\r
+cell_title:"Table cell \u062E\u0635\u0627\u0626\u0635",\r
+cell_type:"Cell type",\r
+valign:"Vertical alignment",\r
+align_top:"\u0623\u0639\u0644\u0649",\r
+align_bottom:"\u0623\u0633\u0641\u0644",\r
+bordercolor:"\u0627\u0644\u062D\u062F\u0648\u062F color",\r
+bgcolor:"\u0644\u0648\u0646 \u0627\u0644\u062E\u0644\u0641\u064A\u0629",\r
+merge_cells_title:"Merge table cells",\r
+id:"Id",\r
+style:"Style",\r
+langdir:"\u0627\u062A\u062C\u0627\u0647 \u0627\u0644\u0644\u063A\u0629",\r
+langcode:"\u0634\u0641\u0631\u0629 \u0627\u0644\u0644\u063A\u0629",\r
+mime:"\u0627\u0644\u0645\u0633\u0627\u0631 MIME type",\r
+ltr:"\u064A\u0633\u0627\u0631 to \u064A\u0645\u064A\u0646",\r
+rtl:"\u064A\u0645\u064A\u0646 to \u064A\u0633\u0627\u0631",\r
+bgimage:"\u0635\u0648\u0631\u0629 \u0627\u0644\u062E\u0644\u0641\u064A\u0629",\r
+summary:"Summary",\r
+td:"Data",\r
+th:"Header",\r
+cell_cell:"Update current cell",\r
+cell_row:"Update all cells in row",\r
+cell_all:"Update all cells in table",\r
+row_row:"Update current row",\r
+row_odd:"Update odd rows in table",\r
+row_even:"Update even rows in table",\r
+row_all:"Update all rows in table",\r
+thead:"Table Head",\r
+tbody:"Table Body",\r
+tfoot:"Table Foot",\r
+scope:"Scope",\r
+rowgroup:"Row Group",\r
+colgroup:"Col Group",\r
+col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
+row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
+cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Table caption",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bg.table_dlg',{\r
+general_tab:"\u041E\u0431\u0449\u0438",\r
+advanced_tab:"\u0417\u0430 \u043D\u0430\u043F\u0440\u0435\u0434\u043D\u0430\u043B\u0438",\r
+general_props:"\u041E\u0431\u0449\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438",\r
+advanced_props:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0430 \u043D\u0430\u043F\u0440\u0435\u0434\u043D\u0430\u043B\u0438",\r
+rowtype:"\u0420\u043E\u043B\u044F \u043D\u0430 \u0440\u0435\u0434\u0430",\r
+title:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u0442\u0430\u0431\u043B\u0438\u0446\u0430",\r
+width:"\u0428\u0438\u0440\u0438\u043D\u0430",\r
+height:"\u0412\u0438\u0441\u043E\u0447\u0438\u043D\u0430",\r
+cols:"\u041A\u043E\u043B\u043E\u043D\u0438",\r
+rows:"\u0420\u0435\u0434\u043E\u0432\u0435",\r
+cellspacing:"\u0420\u0430\u0437\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043C\u044A\u0436\u0434\u0443 \u043A\u043B\u0435\u0442\u043A\u0438\u0442\u0435",\r
+cellpadding:"Padding \u043D\u0430 \u043A\u043B\u0435\u0442\u043A\u0438\u0442\u0435",\r
+border:"\u0420\u0430\u043C\u043A\u0430",\r
+align:"\u041F\u043E\u0434\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435",\r
+align_default:"\u041F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435",\r
+align_left:"\u041B\u044F\u0432\u043E",\r
+align_right:"\u0414\u044F\u0441\u043D\u043E",\r
+align_middle:"\u0426\u0435\u043D\u0442\u044A\u0440",\r
+row_title:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043D\u0430 \u0440\u0435\u0434\u0430",\r
+cell_title:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043D\u0430 \u043A\u043B\u0435\u0442\u043A\u0430\u0442\u0430",\r
+cell_type:"\u0422\u0438\u043F \u043D\u0430 \u043A\u043B\u0435\u0442\u043A\u0430\u0442\u0430",\r
+valign:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u043D\u043E \u043F\u043E\u0434\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435",\r
+align_top:"\u0413\u043E\u0440\u0435",\r
+align_bottom:"\u0414\u043E\u043B\u0443",\r
+bordercolor:"\u0426\u0432\u044F\u0442 \u043D\u0430 \u0440\u0430\u043C\u043A\u0430\u0442\u0430",\r
+bgcolor:"\u0426\u0432\u044F\u0442 \u043D\u0430 \u0444\u043E\u043D\u0430",\r
+merge_cells_title:"\u0421\u043B\u0435\u0439 \u043A\u043B\u0435\u0442\u043A\u0438\u0442\u0435",\r
+id:"Id",\r
+style:"\u0421\u0442\u0438\u043B",\r
+langdir:"\u041F\u043E\u0441\u043E\u043A\u0430 \u043D\u0430 \u0435\u0437\u0438\u043A\u0430",\r
+langcode:"\u041A\u043E\u0434 \u043D\u0430 \u0435\u0437\u0438\u043A\u0430",\r
+mime:"MIME \u0442\u0438\u043F",\r
+ltr:"\u041E\u0442\u043B\u044F\u0432\u043E \u043D\u0430 \u0434\u044F\u0441\u043D\u043E",\r
+rtl:"\u041E\u0442\u0434\u044F\u0441\u043D\u043E \u043D\u0430 \u043B\u044F\u0432\u043E",\r
+bgimage:"\u0424\u043E\u043D\u043E\u0432\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+summary:"\u041E\u0431\u043E\u0431\u0449\u0435\u043D\u0438\u0435",\r
+td:"\u0414\u0430\u043D\u0438\u043D",\r
+th:"\u0413\u043B\u0430\u0432\u0430",\r
+cell_cell:"\u041E\u0431\u043D\u043E\u0432\u0438 \u0442\u0435\u043A\u0443\u0449\u0430\u0442\u0430 \u043A\u043B\u0435\u0442\u043A\u0430Update current cell",\r
+cell_row:"\u041E\u0431\u043D\u043E\u0432\u0438 \u0432\u0441\u0438\u0447\u043A\u0438 \u043A\u043B\u0435\u0442\u043A\u0438 \u043D\u0430 \u0440\u0435\u0434\u0430",\r
+cell_all:"\u041E\u0431\u043D\u043E\u0432\u0438 \u0432\u0441\u0438\u0447\u043A\u0438 \u043A\u043B\u0435\u0442\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0442\u0430",\r
+row_row:"\u041E\u0431\u043D\u043E\u0432\u0438 \u0442\u0435\u043A\u0443\u0449\u0438\u044F \u0440\u0435\u0434",\r
+row_odd:"\u041E\u0431\u043D\u043E\u0432\u0438 \u043D\u0435\u0447\u0435\u0442\u043D\u0438\u0442\u0435 \u0440\u0435\u0434\u043E\u0432\u0435 \u0432 \u0442\u0430\u043B\u0438\u0446\u0430\u0442\u0430",\r
+row_even:"\u041E\u0431\u043D\u043E\u0432\u0438 \u0447\u0435\u0442\u043D\u0438\u0442\u0435 \u0440\u0435\u0434\u043E\u0432\u0435 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0442\u0430",\r
+row_all:"\u041E\u0431\u043D\u043E\u0432\u0438 \u0432\u0441\u0438\u0447\u043A\u0438 \u0440\u0435\u0434\u043E\u0432\u0435 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0442\u0430",\r
+thead:"\u0413\u043B\u0430\u0432\u0430 \u043D\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0442\u0430",\r
+tbody:"\u0422\u044F\u043B\u043E \u043D\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0442\u0430",\r
+tfoot:"\u0414\u044A\u043D\u043E \u043D\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0442\u0430",\r
+scope:"\u041E\u0431\u0445\u0432\u0430\u0442",\r
+rowgroup:"\u0413\u0440\u0443\u043F\u0430 \u0440\u0435\u0434\u043E\u0432\u0435",\r
+colgroup:"\u0413\u0440\u0443\u043F\u0430 \u043A\u043E\u043B\u043E\u043D\u0438",\r
+col_limit:"\u041F\u0440\u0435\u0432\u0438\u0448\u0438\u0445\u0442\u0435 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u043D\u0430\u0442\u0430 \u0431\u0440\u043E\u0439\u043A\u0430 \u043A\u043E\u043B\u043E\u043D\u0438: {$cols}.",\r
+row_limit:"\u041F\u0440\u0435\u0432\u0438\u0448\u0438\u0445\u0442\u0435 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u043D\u0430\u0442\u0430 \u0431\u0440\u043E\u0439\u043A\u0430 \u0440\u0435\u0434\u043E\u0432\u0435: {$rows}.",\r
+cell_limit:"\u041F\u0440\u0435\u0432\u0438\u0448\u0438\u0445\u0442\u0435 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u043D\u0430\u0442\u0430 \u0431\u0440\u043E\u0439\u043A\u0430 \u043A\u043B\u0435\u0442\u043A\u0438: {$cells}.",\r
+missing_scope:"\u0421\u0438\u0433\u0443\u0440\u0435\u043D \u043B\u0438 \u0441\u0442\u0435 \u0447\u0435 \u0436\u0435\u043B\u0430\u0435\u0442\u0435 \u0434\u0430 \u043F\u0440\u043E\u0434\u0443\u043B\u0436\u0438\u0442\u0435 \u0431\u0435\u0437 \u0434\u0430 \u0441\u043B\u043E\u0436\u0438\u0442\u0435 \u043E\u0431\u0445\u0432\u0430\u0442 \u043D\u0430 \u0433\u043B\u0430\u0432\u0430\u0442\u0430 \u043D\u0430 \u043A\u043B\u0435\u0442\u043A\u0430\u0442\u0430. \u0411\u0435\u0437 \u043D\u0435\u0433\u043E, \u043D\u044F\u043A\u043E\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438 \u0441 \u043D\u0435\u0434\u044A\u0437\u0438 \u043C\u043E\u0433\u0430\u0442 \u0434\u0430 \u0438\u043C\u0430\u0442 \u043F\u0440\u043E\u0431\u043B\u0435\u043C \u0434\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0430\u0442 \u0434\u0430\u043D\u043D\u0438\u0442\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0442\u0430.",\r
+caption:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 \u043D\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0442\u0430",\r
+frame:"\u0424\u0440\u0435\u0439\u043C",\r
+frame_none:"\u0431\u0435\u0437",\r
+frame_groups:"\u0433\u0440\u0443\u043F\u0438",\r
+frame_rows:"\u0440\u0435\u0434\u043E\u0432\u0435",\r
+frame_cols:"\u043A\u043E\u043B\u043E\u043D\u0438",\r
+frame_all:"\u0432\u0441\u0438\u0447\u043A\u0438",\r
+rules:"\u041F\u0440\u0430\u0432\u0438\u043B\u0430",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bs.table_dlg',{\r
+general_tab:"Osnovno",\r
+advanced_tab:"Napredno",\r
+general_props:"Osnovna svojstva",\r
+advanced_props:"Napredna svojstva",\r
+rowtype:"Row in table part",\r
+title:"Umetni/uredi tablicu",\r
+width:"\u0160irina",\r
+height:"Visina",\r
+cols:"Stupaca",\r
+rows:"Redaka",\r
+cellspacing:"Razmak \u0107elija",\r
+cellpadding:"Dopuna \u0107elije",\r
+border:"Obrub",\r
+align:"Poravnavanje",\r
+align_default:"Zadano",\r
+align_left:"Lijevo",\r
+align_right:"Desno",\r
+align_middle:"Sredina",\r
+row_title:"Svojstva retka",\r
+cell_title:"Svojstva \u0107elije",\r
+cell_type:"Tip \u0107elije",\r
+valign:"Okomito poravnavanje",\r
+align_top:"Vrh",\r
+align_bottom:"Dno",\r
+bordercolor:"Boja obruba",\r
+bgcolor:"Background color",\r
+merge_cells_title:"Spoji \u0107elije",\r
+id:"Id",\r
+style:"Stil",\r
+langdir:"Smjer jezika",\r
+langcode:"Kod jezika",\r
+mime:"MIME tip",\r
+ltr:"S lijeva na desno",\r
+rtl:"S desna na lijevo",\r
+bgimage:"Slika pozadine",\r
+summary:"Sa\u017Eetak",\r
+td:"Podatkovna",\r
+th:"Zaglavlje",\r
+cell_cell:"Primjeni na odabranu \u0107eliju",\r
+cell_row:"Primjeni na sve \u0107elije u retku",\r
+cell_all:"Primjeni na sve \u0107elije u tablici",\r
+row_row:"Primjeni na odabrani redak",\r
+row_odd:"Primjeni na neparne retke u tablici",\r
+row_even:"Primjeni na parne retke u tablici",\r
+row_all:"Primjeni na sve retke u tablici",\r
+thead:"Zaglavlje tablice",\r
+tbody:"Tijelo tablice",\r
+tfoot:"Podno\u017Eje tablice",\r
+scope:"Domet",\r
+rowgroup:"Grupa redaka",\r
+colgroup:"Grupa stupaca",\r
+col_limit:"Prema\u0161ili ste maksimalni broj stupaca ({$cols}).",\r
+row_limit:"Prema\u0161ili ste maksimalni broj redaka ({$rows}).",\r
+cell_limit:"Prema\u0161ili ste maksimalni broj \u0107elija ({$cells}).",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Opis tablice",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ca.table_dlg',{\r
+general_tab:"General",\r
+advanced_tab:"Avan\u00E7at",\r
+general_props:"Propietats generals",\r
+advanced_props:"Propietats avan\u00E7ades",\r
+rowtype:"Part de la taula on \u00E9s la fila",\r
+title:"Insereix/Modifica taula",\r
+width:"Amplada",\r
+height:"Al\u00E7ada",\r
+cols:"Columnes",\r
+rows:"Files",\r
+cellspacing:"Espai de Cel.la",\r
+cellpadding:"Espai de marge",\r
+border:"Vora",\r
+align:"Alineaci\u00F3",\r
+align_default:"Per defecte",\r
+align_left:"Esquerra",\r
+align_right:"Dreta",\r
+align_middle:"Centrat",\r
+row_title:"Propietats de la fila de la taula",\r
+cell_title:"Propietats de la cel\u00B7la de la taula",\r
+cell_type:"Tipus de cel\u00B7la",\r
+valign:"Alineaci\u00F3 vertical",\r
+align_top:"Dalt",\r
+align_bottom:"Baix",\r
+bordercolor:"Color de la vora",\r
+bgcolor:"Color del fons",\r
+merge_cells_title:"Refon les cel\u00B7les de la taula",\r
+id:"Id",\r
+style:"Estil",\r
+langdir:"Direcci\u00F3 de l'Idioma",\r
+langcode:"Codi de l'idioma",\r
+mime:"Tipus MIME de l'objectiu",\r
+ltr:"D'esquerra a dreta",\r
+rtl:"De dreta a esquerra",\r
+bgimage:"Imatge de fons",\r
+summary:"Resum",\r
+td:"Dades",\r
+th:"Cap\u00E7alera",\r
+cell_cell:"Actualitza la cel\u00B7la actual",\r
+cell_row:"Actualitza totes les cel\u00B7les de la fila",\r
+cell_all:"Actualitza totes les cel\u00B7les de la taula",\r
+row_row:"Actualitza la fila actual",\r
+row_odd:"Actualitza les files senars de la taula",\r
+row_even:"Actualitza les files parelles de la taula",\r
+row_all:"Actualitza les files de la taula",\r
+thead:"Cap\u00E7alera de la Taula",\r
+tbody:"Cos de la Taula",\r
+tfoot:"Peu de la Taula",\r
+scope:"Abast",\r
+rowgroup:"Grup de Files",\r
+colgroup:"Grup de Columnes",\r
+col_limit:"Has excedit el nombre m\u00E0xim de columnes de {$cols}.",\r
+row_limit:"Has excedit el nombre m\u00E0xim de files de {$rows}.",\r
+cell_limit:"Has excedit el nombre m\u00E0xim de cel\u00B7les de {$cells}.",\r
+missing_scope:"Segur que vols continuar sense especificar un abast per a les cel\u00B7les de cap\u00E7alera d'aquesta taula? Sense aix\u00F2, alguns usuaris/es amb discapacitats tindran dificultats per entendre el contingut o les dades mostrades a la taula.",\r
+caption:"T\u00EDtol de la taula",\r
+frame:"Marc",\r
+frame_none:"cap",\r
+frame_groups:"grups",\r
+frame_rows:"files",\r
+frame_cols:"columnes",\r
+frame_all:"totes",\r
+rules:"Regles",\r
+rules_void:"salta regles",\r
+rules_above:"sobre",\r
+rules_below:"sota",\r
+rules_hsides:"banda horitzontal",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"banda vertical",\r
+rules_box:"caixa",\r
+rules_border:"vora"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('cs.table_dlg',{\r
+general_tab:"Hlavn\u00ED",\r
+advanced_tab:"Pokro\u010Dil\u00E9",\r
+general_props:"Hlavn\u00ED nastaven\u00ED",\r
+advanced_props:"Pokro\u010Dil\u00E9 nastaven\u00ED",\r
+rowtype:"Typ \u0159\u00E1dku",\r
+title:"Vlo\u017Eit/upravit tabulku",\r
+width:"\u0160\u00ED\u0159ka",\r
+height:"V\u00FD\u0161ka",\r
+cols:"Sloupce",\r
+rows:"\u0158\u00E1dky",\r
+cellspacing:"Rozestup bun\u011Bk",\r
+cellpadding:"Odsazen\u00ED obsahu",\r
+border:"R\u00E1me\u010Dek",\r
+align:"Zarovn\u00E1n\u00ED",\r
+align_default:"V\u00FDchoz\u00ED",\r
+align_left:"Vlevo",\r
+align_right:"Vpravo",\r
+align_middle:"Doprost\u0159ed",\r
+row_title:"Vlastnosti \u0159\u00E1dku",\r
+cell_title:"Vlastnosti bu\u0148ky",\r
+cell_type:"Typ bu\u0148ky",\r
+valign:"Vertik\u00E1ln\u00ED zarovn\u00E1n\u00ED",\r
+align_top:"Nahoru",\r
+align_bottom:"Dol\u016F",\r
+bordercolor:"Barva r\u00E1me\u010Dku",\r
+bgcolor:"Barva pozad\u00ED",\r
+merge_cells_title:"Spojit bu\u0148ky",\r
+id:"ID",\r
+style:"Styl",\r
+langdir:"Sm\u011Br textu",\r
+langcode:"K\u00F3d jazyka",\r
+mime:"MIME typ c\u00EDle",\r
+ltr:"Zleva doprava",\r
+rtl:"Zprava doleva",\r
+bgimage:"Obr\u00E1zek pozad\u00ED",\r
+summary:"Sum\u00E1\u0159",\r
+td:"Data",\r
+th:"Z\u00E1hlav\u00ED",\r
+cell_cell:"Aktualizovat zvolenou bu\u0148ku",\r
+cell_row:"Aktualizovat v\u0161echny bu\u0148ky v \u0159\u00E1dku",\r
+cell_all:"Aktualizovat v\u0161echny bu\u0148ky v tabulce",\r
+row_row:"Aktualizovat zvolen\u00FD \u0159\u00E1dek",\r
+row_odd:"Aktualizovat lich\u00E9 \u0159\u00E1dky tabulky",\r
+row_even:"Aktualizovat sud\u00E9 \u0159\u00E1dky tabulky",\r
+row_all:"Aktualizovat v\u0161echny \u0159\u00E1dky tabulky",\r
+thead:"Hlavi\u010Dka tabulky",\r
+tbody:"T\u011Blo tabulky",\r
+tfoot:"Pata tabulky",\r
+scope:"Zv\u00FDrazn\u011Bn\u00ED",\r
+rowgroup:"Skupina \u0159\u00E1dk\u016F",\r
+colgroup:"Skupina sloupc\u016F",\r
+col_limit:"P\u0159ekro\u010Dili jste maxim\u00E1ln\u00ED po\u010Det sloupc\u016F {$cols}.",\r
+row_limit:"P\u0159ekro\u010Dili jste maxim\u00E1ln\u00ED po\u010Det \u0159\u00E1dk\u016F {$rows}.",\r
+cell_limit:"P\u0159ekro\u010Dili jste maxim\u00E1ln\u00ED po\u010Det bun\u011Bk {$cells}.",\r
+missing_scope:"Jste si jist\u00ED, \u017Ee nechcete definovat zv\u00FDrazn\u011Bn\u00ED pro tuto hlavi\u010Dkovou bu\u0148ku (hlavi\u010Dku \u0159\u00E1dku nebo sloupce)? Bez n\u011Bj mo\u017En\u00E1 nebude mo\u017En\u00E9 spr\u00E1vn\u011B pochopit zobrazen\u00FD obsah \u010Di data tabulky.",\r
+caption:"Nadpis tabulky",\r
+frame:"R\u00E1m (frame)",\r
+frame_none:"\u017E\u00E1dn\u00FD",\r
+frame_groups:"skupiny",\r
+frame_rows:"\u0159\u00E1dky",\r
+frame_cols:"sloupce",\r
+frame_all:"v\u0161e",\r
+rules:"Pravidla (rules)",\r
+rules_void:"void",\r
+rules_above:"nad",\r
+rules_below:"pod",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"r\u00E1me\u010Dek"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('da.table_dlg',{\r
+general_tab:"Generelt",\r
+advanced_tab:"Avanceret",\r
+general_props:"Generelle egenskaber",\r
+advanced_props:"Avancerede egenskaber",\r
+rowtype:"Row in table part",\r
+title:"Inds\u00E6t/rediger tabel",\r
+width:"Bredde",\r
+height:"H\u00F8jde",\r
+cols:"Kolonner",\r
+rows:"R\u00E6kker",\r
+cellspacing:"Afstand mellem celler",\r
+cellpadding:"Afstand til celleindhold",\r
+border:"Kant",\r
+align:"Justering",\r
+align_default:"Standard",\r
+align_left:"Venstre",\r
+align_right:"H\u00F8jre",\r
+align_middle:"Centreret",\r
+row_title:"R\u00E6kkeegenskaber",\r
+cell_title:"Celleegenskaber",\r
+cell_type:"Celletype",\r
+valign:"Vertikal justering",\r
+align_top:"Top",\r
+align_bottom:"Bund",\r
+bordercolor:"Kantfarve",\r
+bgcolor:"Baggrundsfarve",\r
+merge_cells_title:"Flet celler",\r
+id:"Id",\r
+style:"Style",\r
+langdir:"Sprogretning",\r
+langcode:"Sprogkode",\r
+mime:"Destinations MIME type",\r
+ltr:"Venstre mod h\u00F8jre",\r
+rtl:"H\u00F8jre mod venstre",\r
+bgimage:"Baggrundsbillede",\r
+summary:"Beskrivelse",\r
+td:"Data",\r
+th:"Hoved",\r
+cell_cell:"Opdater aktuelle celle",\r
+cell_row:"Opdater alle celler i r\u00E6kken",\r
+cell_all:"Opdater alle celler i tabellen",\r
+row_row:"Opdater aktuelle celle",\r
+row_odd:"Opdater ulige r\u00E6kker",\r
+row_even:"Opdater lige r\u00E6kker",\r
+row_all:"Opdater alle r\u00E6kker",\r
+thead:"Tabelhoved",\r
+tbody:"Tabelkrop",\r
+tfoot:"Tabelfod",\r
+scope:"Forklaring",\r
+rowgroup:"R\u00E6kkegruppe",\r
+colgroup:"Kolonnegruppe",\r
+col_limit:"Du har overskredet antallet af tilladte kolonnerr p\u00E5 {$cols}.",\r
+row_limit:"Du har overskredet antallet af tilladte r\u00E6kker p\u00E5 {$rows}.",\r
+cell_limit:"Du har overskredet antallet af tilladte celler p\u00E5 {$cells}.",\r
+missing_scope:"Er du sikker p\u00E5 di vil forts\u00E6tte uden at angive forklaring for denne overskriftscelle? Uden forklaring vil v\u00E6re sv\u00E6rt for f.ek.s blinde at l\u00E6se og forst\u00E5 indholdet i tabellen.",\r
+caption:"Tabeloverskrift",\r
+frame:"Ramme",\r
+frame_none:"ingen",\r
+frame_groups:"grupper",\r
+frame_rows:"r\u00E6kker",\r
+frame_cols:"kolonner",\r
+frame_all:"alle",\r
+rules:"Regler",\r
+rules_void:"void",\r
+rules_above:"over",\r
+rules_below:"under",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"boks",\r
+rules_border:"kant"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('de.table_dlg',{\r
+general_tab:"Allgemein",\r
+advanced_tab:"Erweitert",\r
+general_props:"Allgemeine Einstellungen",\r
+advanced_props:"Erweiterte Einstellungen",\r
+rowtype:"Row in table part",\r
+title:"Tabelle einf\u00FCgen/bearbeiten",\r
+width:"Breite",\r
+height:"H\u00F6he",\r
+cols:"Spalten",\r
+rows:"Zeilen",\r
+cellspacing:"Zellenabstand",\r
+cellpadding:"Abstand innerhalb der Zellen",\r
+border:"Rahmen",\r
+align:"Ausrichtung",\r
+align_default:"Standard",\r
+align_left:"Links",\r
+align_right:"Rechts",\r
+align_middle:"Mittig",\r
+row_title:"Eigenschaften der Zeile",\r
+cell_title:"Eigenschaften der Zelle",\r
+cell_type:"Zellentyp",\r
+valign:"Vertikale Ausrichtung",\r
+align_top:"Oben",\r
+align_bottom:"Unten",\r
+bordercolor:"Rahmenfarbe",\r
+bgcolor:"Hintergrundfarbe",\r
+merge_cells_title:"Zellen vereinen",\r
+id:"ID",\r
+style:"Format",\r
+langdir:"Schriftrichtung",\r
+langcode:"Sprachcode",\r
+mime:"MIME-Type des Inhalts",\r
+ltr:"Links nach rechts",\r
+rtl:"Rechts nach links",\r
+bgimage:"Hintergrundbild",\r
+summary:"Zusammenfassung",\r
+td:"Textzelle",\r
+th:"\u00DCberschrift",\r
+cell_cell:"Diese Zelle ver\u00E4ndern",\r
+cell_row:"Alle Zellen in dieser Zeile ver\u00E4ndern",\r
+cell_all:"Alle Zellen der Tabelle ver\u00E4ndern",\r
+row_row:"Diese Zeile ver\u00E4ndern",\r
+row_odd:"Ungerade Zeilen ver\u00E4ndern",\r
+row_even:"Gerade Zeilen ver\u00E4ndern",\r
+row_all:"Alle Zeilen ver\u00E4ndern",\r
+thead:"Tabellenkopf",\r
+tbody:"Tabelleninhalt",\r
+tfoot:"Tabellenfu\u00DF",\r
+scope:"Zusammenhang",\r
+rowgroup:"Vertikal gruppieren",\r
+colgroup:"Horizontal gruppieren",\r
+col_limit:"Sie haben die maximale Spaltenzahl von {$cols} \u00FCberschritten.",\r
+row_limit:"Sie haben die maximale Zeilenzahl von {$rows} \u00FCberschritten.",\r
+cell_limit:"Sie haben die maximale Zellenzahl von {$cells} \u00FCberschritten.",\r
+missing_scope:"Sind Sie sicher, dass Sie keinen Zusammenhang f\u00FCr diese \u00DCberschrift angeben wollen? Benutzer mit k\u00F6rperlichen Einschr\u00E4nkungen k\u00F6nnten Schwierigkeiten haben, den Inhalt der Tabelle zu verstehen.",\r
+caption:"Beschriftung der Tabelle",\r
+frame:"Gitter",\r
+frame_none:"keins",\r
+frame_groups:"Gruppen",\r
+frame_rows:"Zeilen",\r
+frame_cols:"Spalten",\r
+frame_all:"Alle",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('el.table_dlg',{\r
+general_tab:"\u0393\u03B5\u03BD\u03B9\u03BA\u03AC",\r
+advanced_tab:"\u0393\u03B9\u03B1 \u03C0\u03C1\u03BF\u03C7\u03C9\u03C1\u03B7\u03BC\u03AD\u03BD\u03BF\u03C5\u03C2",\r
+general_props:"\u0393\u03B5\u03BD\u03B9\u03BA\u03AD\u03C2 \u03B9\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2",\r
+advanced_props:"\u03A0\u03C1\u03BF\u03C7\u03C9\u03C1\u03B7\u03BC\u03AD\u03BD\u03B5\u03C2 \u03B9\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2",\r
+rowtype:"\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u03C3\u03B5 \u03BC\u03AD\u03C1\u03BF\u03C2 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+title:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+width:"\u03A0\u03BB\u03AC\u03C4\u03BF\u03C2",\r
+height:"\u038E\u03C8\u03BF\u03C2",\r
+cols:"\u03A3\u03C4\u03AE\u03BB\u03B5\u03C2",\r
+rows:"\u0393\u03C1\u03B1\u03BC\u03BC\u03AD\u03C2",\r
+cellspacing:"\u0391\u03C0\u03CC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03BA\u03B5\u03BB\u03B9\u03CE\u03BD",\r
+cellpadding:"\u0393\u03AD\u03BC\u03B9\u03C3\u03BC\u03B1 \u03BA\u03B5\u03BB\u03B9\u03CE\u03BD",\r
+border:"\u03A0\u03BB\u03B1\u03AF\u03C3\u03B9\u03BF",\r
+align:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7",\r
+align_default:"\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03B7",\r
+align_left:"\u0391\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC",\r
+align_right:"\u0394\u03B5\u03BE\u03B9\u03AC",\r
+align_middle:"\u039A\u03AD\u03BD\u03C4\u03C1\u03BF",\r
+row_title:"\u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+cell_title:"\u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2 \u03BA\u03B5\u03BB\u03B9\u03BF\u03CD \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+cell_type:"\u03A4\u03CD\u03C0\u03BF\u03C2 \u03BA\u03B5\u03BB\u03B9\u03BF\u03CD",\r
+valign:"\u039A\u03B1\u03C4\u03B1\u03BA\u03CC\u03C1\u03C5\u03C6\u03B7 \u03C3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7",\r
+align_top:"\u03A0\u03AC\u03BD\u03C9",\r
+align_bottom:"\u039A\u03AC\u03C4\u03C9",\r
+bordercolor:"\u03A7\u03C1\u03CE\u03BC\u03B1 \u03C0\u03BB\u03B1\u03B9\u03C3\u03AF\u03BF\u03C5",\r
+bgcolor:"\u03A7\u03C1\u03CE\u03BC\u03B1 \u03C6\u03CC\u03BD\u03C4\u03BF\u03C5",\r
+merge_cells_title:"\u03A3\u03C5\u03B3\u03C7\u03CE\u03BD\u03B5\u03C5\u03C3\u03B7 \u03BA\u03B5\u03BB\u03B9\u03CE\u03BD \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+id:"Id",\r
+style:"\u03A3\u03C4\u03C5\u03BB",\r
+langdir:"\u039A\u03B1\u03C4\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 \u03B3\u03BB\u03CE\u03C3\u03C3\u03B1\u03C2",\r
+langcode:"\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 \u03B3\u03BB\u03CE\u03C3\u03C3\u03B1\u03C2",\r
+mime:"\u03A4\u03CD\u03C0\u03BF\u03C2 MIME \u03C3\u03C4\u03CC\u03C7\u03BF\u03C5",\r
+ltr:"\u0391\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC \u03C0\u03C1\u03BF\u03C2 \u03B4\u03B5\u03BE\u03B9\u03AC",\r
+rtl:"\u0394\u03B5\u03BE\u03B9\u03AC \u03C0\u03C1\u03BF\u03C2 \u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC",\r
+bgimage:"\u0395\u03B9\u03BA\u03CC\u03BD\u03B1 \u03C6\u03CC\u03BD\u03C4\u03BF\u03C5",\r
+summary:"\u03A0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7",\r
+td:"\u0394\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03B1",\r
+th:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1",\r
+cell_cell:"\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u03C4\u03C1\u03AD\u03C7\u03BF\u03BD\u03C4\u03BF\u03C2 \u03BA\u03B5\u03BB\u03B9\u03BF\u03CD",\r
+cell_row:"\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u03CC\u03BB\u03C9\u03BD \u03C4\u03C9\u03BD \u03BA\u03B5\u03BB\u03B9\u03CE\u03BD \u03C4\u03B7\u03C2 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2",\r
+cell_all:"\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u03CC\u03BB\u03C9\u03BD \u03C4\u03C9\u03BD \u03BA\u03B5\u03BB\u03B9\u03CE\u03BD \u03C4\u03BF\u03C5 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+row_row:"\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u03C4\u03B7\u03C2 \u03C4\u03C1\u03AD\u03C7\u03BF\u03C5\u03C3\u03B1\u03C2 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2",\r
+row_odd:"\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u03C4\u03C9\u03BD \u03BC\u03BF\u03BD\u03CE\u03BD \u03B3\u03C1\u03B1\u03BC\u03BC\u03CE\u03BD \u03C4\u03BF\u03C5 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+row_even:"\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u03C4\u03C9\u03BD \u03B6\u03C5\u03B3\u03CE\u03BD \u03B3\u03C1\u03B1\u03BC\u03BC\u03CE\u03BD \u03C4\u03BF\u03C5 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+row_all:"\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u03CC\u03BB\u03C9\u03BD \u03C4\u03C9\u03BD \u03B3\u03C1\u03B1\u03BC\u03BC\u03CE\u03BD \u03C4\u03BF\u03C5 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+thead:"\u039A\u03BF\u03C1\u03C5\u03C6\u03AE \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+tbody:"\u03A3\u03CE\u03BC\u03B1 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+tfoot:"\u0392\u03AC\u03C3\u03B7 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+scope:"\u0395\u03BC\u03B2\u03AD\u03BB\u03B5\u03B9\u03B1",\r
+rowgroup:"\u039F\u03BC\u03AC\u03B4\u03B1 \u03B3\u03C1\u03B1\u03BC\u03BC\u03CE\u03BD",\r
+colgroup:"\u039F\u03BC\u03AC\u03B4\u03B1 \u03C3\u03C4\u03B7\u03BB\u03CE\u03BD",\r
+col_limit:"\u0388\u03C7\u03B5\u03C4\u03B5 \u03BE\u03B5\u03C0\u03B5\u03C1\u03AC\u03C3\u03B5\u03B9 \u03C4\u03BF \u03CC\u03C1\u03B9\u03BF \u03C4\u03C9\u03BD \u03C3\u03C4\u03B7\u03BB\u03C9\u03BD \u03C0\u03BF\u03C5 \u03B5\u03AF\u03BD\u03B1\u03B9 {$cols}.",\r
+row_limit:"\u0388\u03C7\u03B5\u03C4\u03B5 \u03BE\u03B5\u03C0\u03B5\u03C1\u03AC\u03C3\u03B5\u03B9 \u03C4\u03BF \u03CC\u03C1\u03B9\u03BF \u03C4\u03C9\u03BD \u03B3\u03C1\u03B1\u03BC\u03BC\u03CE\u03BD \u03C0\u03BF\u03C5 \u03B5\u03AF\u03BD\u03B1\u03B9 {$rows}.",\r
+cell_limit:"\u0388\u03C7\u03B5\u03C4\u03B5 \u03BE\u03B5\u03C0\u03B5\u03C1\u03AC\u03C3\u03B5\u03B9 \u03C4\u03BF \u03CC\u03C1\u03B9\u03BF \u03C4\u03C9\u03BD \u03BA\u03B5\u03BB\u03B9\u03CE\u03BD \u03C0\u03BF\u03C5 \u03B5\u03AF\u03BD\u03B1\u03B9 {$cells}.",\r
+missing_scope:"\u03A3\u03AF\u03B3\u03BF\u03C5\u03C1\u03B1 \u03B8\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03C3\u03C5\u03BD\u03B5\u03C7\u03AF\u03C3\u03B5\u03C4\u03B5 \u03C7\u03C9\u03C1\u03AF\u03C2 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BA\u03B1\u03B8\u03BF\u03C1\u03AF\u03C3\u03B5\u03B9 \u03C4\u03B7\u03BD \u03B5\u03BC\u03B2\u03AD\u03BB\u03B5\u03B9\u03B1 \u03C4\u03BF\u03C5 \u03BA\u03B5\u03BB\u03B9\u03BF\u03CD \u03C4\u03B7\u03C2 \u03BA\u03BF\u03C1\u03C5\u03C6\u03AE\u03C2 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1. \u03A7\u03C9\u03C1\u03AF\u03C2 \u03B1\u03C5\u03C4\u03AE, \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03CD\u03C3\u03BA\u03BF\u03BB\u03BF \u03B3\u03B9\u03B1 \u03BA\u03AC\u03C0\u03BF\u03B9\u03BF\u03C5\u03C2 \u03C7\u03C1\u03AE\u03C3\u03C4\u03B5\u03C2 \u03BC\u03B5 \u03C0\u03C1\u03BF\u03B2\u03BB\u03AE\u03BC\u03B1\u03C4\u03B1 \u03BD\u03B1 \u03BA\u03B1\u03C4\u03B1\u03BB\u03AC\u03B2\u03BF\u03C5\u03BD \u03C4\u03BF \u03C0\u03B5\u03C1\u03B9\u03B5\u03C7\u03CC\u03BC\u03B5\u03BD\u03BF \u03C4\u03BF\u03C5 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1.",\r
+caption:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1",\r
+frame:"Frame",\r
+frame_none:"\u03BA\u03B1\u03BD\u03AD\u03BD\u03B1",\r
+frame_groups:"\u03BF\u03BC\u03AC\u03B4\u03B5\u03C2",\r
+frame_rows:"\u03B3\u03C1\u03B1\u03BC\u03BC\u03AD\u03C2",\r
+frame_cols:"\u03C3\u03C4\u03AE\u03BB\u03B5\u03C2",\r
+frame_all:"\u03CC\u03BB\u03B1",\r
+rules:"\u039A\u03B1\u03BD\u03CC\u03BD\u03B5\u03C2",\r
+rules_void:"\u03BA\u03B5\u03BD\u03CC",\r
+rules_above:"\u03B1\u03C0\u03CC \u03C0\u03AC\u03BD\u03C9",\r
+rules_below:"\u03B1\u03C0\u03CC \u03BA\u03AC\u03C4\u03C9",\r
+rules_hsides:"\u03BF\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03B5\u03C2 \u03C0\u03BB\u03B5\u03C5\u03C1\u03AD\u03C2",\r
+rules_lhs:"\u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AE \u03BF\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03B1 \u03C0\u03BB\u03B5\u03C5\u03C1\u03AC",\r
+rules_rhs:"\u03B4\u03B5\u03BE\u03B9\u03AC \u03BF\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03B1 \u03C0\u03BB\u03B5\u03C5\u03C1\u03AC",\r
+rules_vsides:"\u03BA\u03AC\u03B8\u03B5\u03C4\u03B5\u03C2 \u03C0\u03BB\u03B5\u03C5\u03C1\u03AD\u03C2",\r
+rules_box:"\u03BA\u03BF\u03C5\u03C4\u03AF",\r
+rules_border:"\u03C0\u03BB\u03B1\u03AF\u03C3\u03B9\u03BF"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('es.table_dlg',{\r
+general_tab:"General",\r
+advanced_tab:"Avanzado",\r
+general_props:"Propiedades generales",\r
+advanced_props:"Propiedades avanzadas",\r
+rowtype:"Tipo de fila",\r
+title:"Insertar/Modificar tabla",\r
+width:"Ancho",\r
+height:"Alto",\r
+cols:"Cols",\r
+rows:"Filas",\r
+cellspacing:"Espaciado de celda",\r
+cellpadding:"Relleno de celda",\r
+border:"Borde",\r
+align:"Alineaci\u00F3n",\r
+align_default:"Predet.",\r
+align_left:"Izquierda",\r
+align_right:"Derecha",\r
+align_middle:"Centrado",\r
+row_title:"Propiedades de la fila",\r
+cell_title:"Propiedades de la celda",\r
+cell_type:"Tipo de celda",\r
+valign:"Alineaci\u00F3n vertical",\r
+align_top:"Arriba",\r
+align_bottom:"Debajo",\r
+bordercolor:"Color del borde",\r
+bgcolor:"Color de fondo",\r
+merge_cells_title:"Vincular celdas",\r
+id:"Id",\r
+style:"Estilo",\r
+langdir:"Direcci\u00F3n del lenguaje",\r
+langcode:"C\u00F3digo del lenguaje",\r
+mime:"Tipo MIME",\r
+ltr:"Izquierda a derecha",\r
+rtl:"Derecha a izquierda",\r
+bgimage:"Imagen de fondo",\r
+summary:"Resumen",\r
+td:"Datos",\r
+th:"Encabezado",\r
+cell_cell:"Actualizar celda actual",\r
+cell_row:"Actualizar todas las celdas en la fila",\r
+cell_all:"Actualizar todas las celdas en la tabla",\r
+row_row:"Actualizar fila actual",\r
+row_odd:"Actualizar filas impares",\r
+row_even:"Actualizar filas pares",\r
+row_all:"Actualizar todas las filas",\r
+thead:"Encabezado de la tabla",\r
+tbody:"Cuerpo de la tabla",\r
+tfoot:"Pie de la tabla",\r
+scope:"Alcance",\r
+rowgroup:"Grupo de filas",\r
+colgroup:"Grupo de columnas",\r
+col_limit:"Ha superado el n\u00FAmero m\u00E1ximo de columnas: {$cols}.",\r
+row_limit:"Ha superado el n\u00FAmero m\u00E1ximo de filas: {$rows}.",\r
+cell_limit:"Ha superado el n\u00FAmero m\u00E1ximo de celdas: {$cells}.",\r
+missing_scope:"\u00BFEst\u00E1 seguro que desea continuar sin especificar el alcance del encabezado de celda? Sin \u00E9l podr\u00EDa ser dificultoso para algunos usuarios entender el contenido o los datos mostrados en la tabla.",\r
+caption:"Subt\u00EDtulo de la tabla",\r
+frame:"Recuadro",\r
+frame_none:"ninguno",\r
+frame_groups:"grupos",\r
+frame_rows:"filas",\r
+frame_cols:"cols",\r
+frame_all:"todos",\r
+rules:"Reglas",\r
+rules_void:"vac\u00EDo",\r
+rules_above:"encima",\r
+rules_below:"debajo",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('et.table_dlg',{\r
+general_tab:"General",\r
+advanced_tab:"Advanced",\r
+general_props:"General properties",\r
+advanced_props:"Advanced properties",\r
+rowtype:"Row in table part",\r
+title:"Insert/Modify table",\r
+width:"Width",\r
+height:"Height",\r
+cols:"Cols",\r
+rows:"Rows",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"Border",\r
+align:"Alignment",\r
+align_default:"Default",\r
+align_left:"Left",\r
+align_right:"Right",\r
+align_middle:"Center",\r
+row_title:"Table row properties",\r
+cell_title:"Table cell properties",\r
+cell_type:"Cell type",\r
+valign:"Vertical alignment",\r
+align_top:"Top",\r
+align_bottom:"Bottom",\r
+bordercolor:"Border color",\r
+bgcolor:"Background color",\r
+merge_cells_title:"Merge table cells",\r
+id:"Id",\r
+style:"Style",\r
+langdir:"Language direction",\r
+langcode:"Language code",\r
+mime:"Target MIME type",\r
+ltr:"Left to right",\r
+rtl:"Right to left",\r
+bgimage:"Background image",\r
+summary:"Summary",\r
+td:"Data",\r
+th:"Header",\r
+cell_cell:"Update current cell",\r
+cell_row:"Update all cells in row",\r
+cell_all:"Update all cells in table",\r
+row_row:"Update current row",\r
+row_odd:"Update odd rows in table",\r
+row_even:"Update even rows in table",\r
+row_all:"Update all rows in table",\r
+thead:"Table Head",\r
+tbody:"Table Body",\r
+tfoot:"Table Foot",\r
+scope:"Scope",\r
+rowgroup:"Row Group",\r
+colgroup:"Col Group",\r
+col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
+row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
+cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Table caption",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fa.table_dlg',{\r
+general_tab:"\u0639\u0645\u0648\u0645\u06CC",\r
+advanced_tab:"\u067E\u06CC\u0634\u0631\u0641\u062A\u0647",\r
+general_props:"\u0645\u0634\u062E\u0635\u0627\u062A \u0639\u0645\u0648\u0645\u06CC",\r
+advanced_props:"\u0645\u0634\u062E\u0635\u0627\u062A \u067E\u06CC\u0634\u0631\u0641\u062A\u0647",\r
+rowtype:"Row in table part",\r
+title:"\u062F\u0631\u062C/\u0627\u0635\u0644\u0627\u062D \u062C\u062F\u0648\u0644",\r
+width:"\u0639\u0631\u0636",\r
+height:"\u0627\u0631\u062A\u0641\u0627\u0639",\r
+cols:"\u0633\u062A\u0648\u0646\u200C\u0647\u0627",\r
+rows:"\u0633\u0637\u0631\u0647\u0627",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"\u062D\u0627\u0634\u06CC\u0647",\r
+align:"\u062A\u0631\u0627\u0632",\r
+align_default:"\u067E\u06CC\u0634 \u0641\u0631\u0636",\r
+align_left:"\u0686\u067E",\r
+align_right:"\u0631\u0627\u0633\u062A",\r
+align_middle:"\u0645\u0631\u06A9\u0632",\r
+row_title:"\u0645\u0634\u062E\u0635\u0627\u062A \u0633\u0637\u0631 \u062C\u062F\u0648\u0644",\r
+cell_title:"\u0645\u0634\u062E\u0635\u0627\u062A \u0633\u062A\u0648\u0646 \u062C\u062F\u0648\u0644",\r
+cell_type:"\u0646\u0648\u0639 \u0633\u0644\u0648\u0644",\r
+valign:"\u062A\u0631\u0627\u0632 \u0639\u0645\u0648\u062F\u06CC",\r
+align_top:"\u0628\u0627\u0644\u0627",\r
+align_bottom:"\u067E\u0627\u06CC\u06CC\u0646",\r
+bordercolor:"\u0631\u0646\u06AF \u062D\u0627\u0634\u06CC\u0647",\r
+bgcolor:"\u0631\u0646\u06AF \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647",\r
+merge_cells_title:"\u0627\u062F\u063A\u0627\u0645 \u0633\u0644\u0648\u0644\u200C\u0647\u0627\u06CC \u062C\u062F\u0648\u0644",\r
+id:"\u0634\u0646\u0627\u0633\u0647",\r
+style:"\u0633\u0628\u06A9",\r
+langdir:"\u062C\u0647\u062A \u0632\u0628\u0627\u0646",\r
+langcode:"\u06A9\u062F \u0632\u0628\u0627\u0646",\r
+mime:"\u0647\u062F\u0641 MIME type",\r
+ltr:"\u0686\u067E \u0628\u0647 \u0631\u0627\u0633\u062A",\r
+rtl:"\u0631\u0627\u0633\u062A \u0628\u0647 \u0686\u067E",\r
+bgimage:"\u062A\u0635\u0648\u06CC\u0631 \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647",\r
+summary:"\u062E\u0644\u0627\u0635\u0647 \u0648\u0636\u0639\u06CC\u062A",\r
+td:"\u062F\u0627\u062F\u0647\u200C\u0647\u0627",\r
+th:"\u0633\u0631\u0641\u0635\u0644",\r
+cell_cell:"\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06CC \u0633\u0644\u0648\u0644 \u062C\u0627\u0631\u06CC",\r
+cell_row:"\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06CC \u062A\u0645\u0627\u0645 \u0633\u0644\u0648\u0644\u200C\u0647\u0627\u06CC \u0627\u06CC\u0646 \u0633\u0637\u0631",\r
+cell_all:"\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06CC \u062A\u0645\u0627\u0645 \u0633\u0644\u0648\u0644\u200C\u0647\u0627\u06CC \u062C\u062F\u0648\u0644",\r
+row_row:"\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06CC \u0633\u0637\u0631 \u062C\u0627\u0631\u06CC",\r
+row_odd:"\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06CC \u0633\u0637\u0631\u0647\u0627\u06CC \u0641\u0631\u062F \u062C\u062F\u0648\u0644",\r
+row_even:"\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06CC \u0633\u0637\u0631\u0647\u0627\u06CC \u0632\u0648\u062C \u062C\u062F\u0648\u0644",\r
+row_all:"\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06CC \u062A\u0645\u0627\u0645 \u0633\u0637\u0631\u0647\u0627\u06CC \u062C\u062F\u0648\u0644",\r
+thead:"\u062C\u062F\u0648\u0644 Head",\r
+tbody:"\u0628\u062F\u0646\u0647 \u062C\u062F\u0648\u0644",\r
+tfoot:"\u062C\u062F\u0648\u0644 Foot",\r
+scope:"Scope",\r
+rowgroup:"Row Group",\r
+colgroup:"Col Group",\r
+col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
+row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
+cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Table caption",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"\u0647\u0645\u0647",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fi.table_dlg',{\r
+general_tab:"Yleiset",\r
+advanced_tab:"Edistynyt",\r
+general_props:"Yleiset asetukset",\r
+advanced_props:"Edistyneet asetukset",\r
+rowtype:"Rivi taulukon osassa",\r
+title:"Lis\u00E4\u00E4/muokkaa taulukkoa",\r
+width:"Leveys",\r
+height:"Korkeus",\r
+cols:"Sarakkeet",\r
+rows:"Rivit",\r
+cellspacing:"Solun v\u00E4li",\r
+cellpadding:"Solun tyhj\u00E4 tila",\r
+border:"Kehys",\r
+align:"Tasaus",\r
+align_default:"Oletus",\r
+align_left:"Vasen",\r
+align_right:"Oikea",\r
+align_middle:"Keskitetty",\r
+row_title:"Taulukon rivin asetukset",\r
+cell_title:"Taulukon solun asetukset",\r
+cell_type:"Solun tyyppi",\r
+valign:"Pystysuunnan tasaus",\r
+align_top:"Yl\u00F6s",\r
+align_bottom:"Alas",\r
+bordercolor:"Kehyksen v\u00E4ri",\r
+bgcolor:"Taustan v\u00E4ri",\r
+merge_cells_title:"Yhdist\u00E4 taulukon solut",\r
+id:"Id",\r
+style:"Tyyli",\r
+langdir:"Kielen suunta",\r
+langcode:"Kielen koodi",\r
+mime:"Kohteen MIME-tyyppi",\r
+ltr:"Vasemmalta oikealle",\r
+rtl:"Oikealta vasemmalle",\r
+bgimage:"Taustakuva",\r
+summary:"Yhteenveto",\r
+td:"Tietue",\r
+th:"Otsake",\r
+cell_cell:"P\u00E4ivit\u00E4 solu",\r
+cell_row:"P\u00E4ivit\u00E4 kaikki rivin solut",\r
+cell_all:"P\u00E4ivit\u00E4 kaikki taulukon solut",\r
+row_row:"P\u00E4ivit\u00E4 rivi",\r
+row_odd:"P\u00E4ivit\u00E4 taulukon parittomat rivit",\r
+row_even:"P\u00E4ivit\u00E4 taulukon parilliset rivit",\r
+row_all:"P\u00E4ivit\u00E4 kaikki taulukon rivit",\r
+thead:"Taulukon otsake",\r
+tbody:"Taulukon runko",\r
+tfoot:"Taulukon alaosa",\r
+scope:"Tila",\r
+rowgroup:"Rivi ryhm\u00E4",\r
+colgroup:"Sarake ryhm\u00E4",\r
+col_limit:"Olet ylitt\u00E4nyt suurimman sallitun m\u00E4\u00E4r\u00E4n sarakkeita {$cols}.",\r
+row_limit:"Olet ylitt\u00E4nyt suurimman sallitun m\u00E4\u00E4r\u00E4n rivej\u00E4 {$rows}.",\r
+cell_limit:"Olet ylitt\u00E4nyt suurimman sallitun m\u00E4\u00E4r\u00E4n soluja {$cells}.",\r
+missing_scope:"Haluatko varmasti jatkaa m\u00E4\u00E4ritt\u00E4m\u00E4tt\u00E4 tilaa t\u00E4lle taulukon otsakesolulle? Ilman sit\u00E4 voi olla joillekin k\u00E4ytt\u00E4jille vaikea ymm\u00E4rt\u00E4\u00E4 taulukon sis\u00E4lt\u00E4m\u00E4\u00E4 informaatiota.",\r
+caption:"Taulukon seloste",\r
+frame:"kehys",\r
+frame_none:"ei mit\u00E4\u00E4n",\r
+frame_groups:"ryhm\u00E4t",\r
+frame_rows:"rivit",\r
+frame_cols:"sarakkeet",\r
+frame_all:"kaikki",\r
+rules:"S\u00E4\u00E4nn\u00F6t",\r
+rules_void:"tyhj\u00E4",\r
+rules_above:"yl\u00E4puoli",\r
+rules_below:"alapuoli",\r
+rules_hsides:"vaakasuorat reunat",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"pystysuorat reunat",\r
+rules_box:"laatikko",\r
+rules_border:"kehys"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fr.table_dlg',{\r
+general_tab:"G\u00E9n\u00E9ral",\r
+advanced_tab:"Avanc\u00E9",\r
+general_props:"Propri\u00E9t\u00E9s g\u00E9n\u00E9rales",\r
+advanced_props:"Propri\u00E9t\u00E9s avanc\u00E9es",\r
+rowtype:"Type de ligne",\r
+title:"Ins\u00E9rer/Modifier tableau",\r
+width:"Largeur",\r
+height:"Hauteur",\r
+cols:"Colonnes",\r
+rows:"Lignes",\r
+cellspacing:"Espacement des cellules",\r
+cellpadding:"Espacement dans les cellules",\r
+border:"Bordure",\r
+align:"Alignement",\r
+align_default:"Par defaut",\r
+align_left:"Gauche",\r
+align_right:"Droit",\r
+align_middle:"Centr\u00E9",\r
+row_title:"Propri\u00E9t\u00E9s de la ligne",\r
+cell_title:"Propri\u00E9t\u00E9s de la cellule",\r
+cell_type:"Type de cellule",\r
+valign:"Alignement vertical",\r
+align_top:"Haut",\r
+align_bottom:"Bas",\r
+bordercolor:"Couleur de la bordure",\r
+bgcolor:"Couleur du fond",\r
+merge_cells_title:"Fusioner les cellules",\r
+id:"Id",\r
+style:"Style",\r
+langdir:"Sens de lecture",\r
+langcode:"Code de la langue",\r
+mime:"Type MIME de la cible",\r
+ltr:"De gauche \u00E0 droite",\r
+rtl:"de droite \u00E0 gauche",\r
+bgimage:"Image de fond",\r
+summary:"R\u00E9sum\u00E9",\r
+td:"Donn\u00E9es",\r
+th:"Titre",\r
+cell_cell:"Mettre \u00E0 jour la cellule courante",\r
+cell_row:"Mettre \u00E0 jour toutes les cellules de la ligne",\r
+cell_all:"Mettre \u00E0 jour toutes les celluls du tableau",\r
+row_row:"Mettre \u00E0 jour la ligne courante",\r
+row_odd:"Mettre \u00E0 jour les lignes impaires",\r
+row_even:"Mettre \u00E0 jour les lignes paires",\r
+row_all:"Mettre \u00E0 jout toutes les lignes du tableau",\r
+thead:"T\u00EAte de tableau",\r
+tbody:"Corps de tableau",\r
+tfoot:"Pied de tableau",\r
+scope:"Port\u00E9e",\r
+rowgroup:"Groupe de lignes",\r
+colgroup:"Groupe de colonnes",\r
+col_limit:"Vous avez d\u00E9pass\u00E9 le nombre maximum de colonnes ({$cols}).",\r
+row_limit:"Vous avez d\u00E9pass\u00E9 le nombre maximum de lignes ({$rows}).",\r
+cell_limit:"Vous avez d\u00E9pass\u00E9 le nombre maximum de cellules ({$cells}).",\r
+missing_scope:"\u00CAtes-vous s\u00FBr de vouloir continuer sans sp\u00E9ficier de port\u00E9e pour cette cellule de titre\u00A0? Sans port\u00E9e, cela peut \u00EAtre difficile pour certains usagers \u00E0 probl\u00E8mes de comprendre le contenu ou les donn\u00E9es affich\u00E9es dans le tableau.",\r
+caption:"Afficher la l\u00E9gende du tableau",\r
+frame:"Cadre",\r
+frame_none:"aucun",\r
+frame_groups:"groupe",\r
+frame_rows:"lignes",\r
+frame_cols:"colonnes",\r
+frame_all:"tous",\r
+rules:"R\u00E8gles",\r
+rules_void:"nul",\r
+rules_above:"au dessus",\r
+rules_below:"au dessous",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('he.table_dlg',{\r
+general_tab:"\u05DB\u05DC\u05DC\u05D9",\r
+advanced_tab:"\u05DE\u05EA\u05E7\u05D3\u05DD",\r
+general_props:"\u05EA\u05DB\u05D5\u05E0\u05D5\u05EA \u05DB\u05DC\u05DC\u05D9\u05D5\u05EA",\r
+advanced_props:"\u05EA\u05DB\u05D5\u05E0\u05D5\u05EA \u05DE\u05EA\u05E7\u05D3\u05DE\u05D5\u05EA",\r
+rowtype:"Row in table part",\r
+title:"Insert/Modify table",\r
+width:"\u05E8\u05D5\u05D7\u05D1",\r
+height:"\u05D2\u05D5\u05D1\u05D4",\r
+cols:"\u05E2\u05DE\u05D5\u05D3\u05D5\u05EA",\r
+rows:"\u05E9\u05D5\u05E8\u05D5\u05EA",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"\u05D2\u05D1\u05D5\u05DC",\r
+align:"\u05D9\u05E9\u05D5\u05E8",\r
+align_default:"Default",\r
+align_left:"\u05DC\u05E9\u05DE\u05D0\u05DC",\r
+align_right:"\u05DC\u05D9\u05DE\u05D9\u05DF",\r
+align_middle:"\u05D0\u05DE\u05E6\u05E2",\r
+row_title:"\u05EA\u05DB\u05D5\u05E0\u05D5\u05EA \u05E9\u05D5\u05E8\u05D4 \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+cell_title:"\u05EA\u05DB\u05D5\u05E0\u05D5\u05EA \u05EA\u05D0 \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+cell_type:"\u05E1\u05D2\u05E0\u05D5\u05DF \u05D4\u05EA\u05D0",\r
+valign:"Vertical alignment",\r
+align_top:"\u05E2\u05DC\u05D9\u05D5\u05DF",\r
+align_bottom:"\u05EA\u05D7\u05EA\u05D9\u05EA",\r
+bordercolor:"\u05E6\u05D1\u05E2 \u05D4\u05D2\u05D1\u05D5\u05DC",\r
+bgcolor:"\u05E6\u05D1\u05E2 \u05D4\u05E8\u05E7\u05E2",\r
+merge_cells_title:"\u05D0\u05D7\u05D3 \u05EA\u05D0\u05D9\u05DD \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+id:"Id",\r
+style:"Style",\r
+langdir:"\u05DB\u05D9\u05D5\u05D5\u05DF \u05D4\u05E9\u05E4\u05D4",\r
+langcode:"\u05E7\u05D5\u05D3 \u05D4\u05E9\u05E4\u05D4",\r
+mime:"Target MIME type",\r
+ltr:"\u05DE\u05E9\u05DE\u05D0\u05DC \u05DC\u05D9\u05DE\u05D9\u05DF",\r
+rtl:"\u05DE\u05D9\u05DE\u05D9\u05DF \u05DC\u05E9\u05DE\u05D0\u05DC",\r
+bgimage:"\u05EA\u05DE\u05D5\u05E0\u05EA \u05E8\u05E7\u05E2",\r
+summary:"\u05EA\u05DE\u05E6\u05D9\u05EA",\r
+td:"Data",\r
+th:"Header",\r
+cell_cell:"\u05E2\u05D3\u05DB\u05D5\u05DF \u05EA\u05D0 \u05E0\u05D5\u05DB\u05D7\u05D9",\r
+cell_row:"\u05E2\u05D3\u05DB\u05D5\u05DF \u05DB\u05DC \u05EA\u05D0\u05D9 \u05D4\u05E9\u05D5\u05E8\u05D4",\r
+cell_all:"\u05E2\u05D3\u05DB\u05D5\u05DF \u05DB\u05DC \u05EA\u05D0\u05D9 \u05D4\u05D8\u05D1\u05DC\u05D4",\r
+row_row:"\u05E2\u05D3\u05DB\u05D5\u05DF \u05E9\u05D5\u05E8\u05D4 \u05E0\u05D5\u05DB\u05D7\u05D9\u05EA",\r
+row_odd:"\u05E2\u05D3\u05DB\u05D5\u05DF \u05E9\u05D5\u05E8\u05D5\u05EA \u05D0\u05D9-\u05D6\u05D5\u05D2\u05D9\u05D5\u05EA \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+row_even:"\u05E2\u05D3\u05DB\u05D5\u05DF \u05E9\u05D5\u05E8\u05D5\u05EA \u05D6\u05D5\u05D2\u05D9\u05D5\u05EA \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+row_all:"\u05E2\u05D3\u05DB\u05D5\u05DF\u05DB\u05DC \u05D4\u05E9\u05D5\u05E8\u05D5\u05EA \u05D1\u05D8\u05D1\u05DC\u05D4",\r
+thead:"Table Head",\r
+tbody:"Table Body",\r
+tfoot:"Table Foot",\r
+scope:"Scope",\r
+rowgroup:"Row Group",\r
+colgroup:"Col Group",\r
+col_limit:"\u05D7\u05E8\u05D9\u05D2\u05D4 \u05DE\u05DE\u05E1\u05E4\u05E8 \u05D4\u05E2\u05DE\u05D5\u05D3\u05D5\u05EA \u05D4\u05DE\u05E7\u05E1\u05D9\u05DE\u05D0\u05DC\u05D9 \u05E9\u05DC {$cols}.",\r
+row_limit:"\u05D7\u05E8\u05D9\u05D2\u05D4 \u05DE\u05DE\u05E1\u05E4\u05E8 \u05D4\u05DE\u05E7\u05E1\u05D9\u05DE\u05D0\u05DC\u05D9 \u05E9\u05DC \u05D4\u05E9\u05D5\u05E8\u05D5\u05EA \u05E9\u05DC {$rows}.",\r
+cell_limit:"\u05D7\u05E8\u05D9\u05D2\u05D4 \u05DE\u05DE\u05E1\u05E4\u05E8 \u05D4\u05DE\u05E7\u05E1\u05D9\u05DE\u05D0\u05DC\u05D9 \u05E9\u05DC \u05D4\u05EA\u05D0\u05D9\u05DD \u05D1\u05D8\u05D1\u05DC\u05D4 \u05E9\u05DC {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"\u05DB\u05D5\u05EA\u05E8\u05EA \u05D4\u05D8\u05D1\u05DC\u05D4",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"\u05E7\u05D1\u05D5\u05E6\u05D5\u05EA",\r
+frame_rows:"\u05E9\u05D5\u05E8\u05D5\u05EA",\r
+frame_cols:"\u05E2\u05DE\u05D5\u05D3\u05D5\u05EA",\r
+frame_all:"\u05D4\u05DB\u05D5\u05DC",\r
+rules:"\u05D7\u05D5\u05E7\u05D9\u05DD",\r
+rules_void:"void",\r
+rules_above:"\u05DE\u05E2\u05DC",\r
+rules_below:"\u05DE\u05EA\u05D7\u05EA",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"\u05D2\u05D1\u05D5\u05DC"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hr.table_dlg',{\r
+general_tab:"Osnovno",\r
+advanced_tab:"Napredno",\r
+general_props:"Osnovna svojstva",\r
+advanced_props:"Napredna svojstva",\r
+rowtype:"Row in table part",\r
+title:"Umetni/uredi tablicu",\r
+width:"\u0160irina",\r
+height:"Visina",\r
+cols:"Stupaca",\r
+rows:"Redaka",\r
+cellspacing:"Razmak \u0107elija",\r
+cellpadding:"Dopuna \u0107elije",\r
+border:"Obrub",\r
+align:"Poravnavanje",\r
+align_default:"Zadano",\r
+align_left:"Lijevo",\r
+align_right:"Desno",\r
+align_middle:"Sredina",\r
+row_title:"Svojstva retka",\r
+cell_title:"Svojstva \u0107elije",\r
+cell_type:"Tip \u0107elije",\r
+valign:"Okomito poravnavanje",\r
+align_top:"Vrh",\r
+align_bottom:"Dno",\r
+bordercolor:"Boja obruba",\r
+bgcolor:"Background color",\r
+merge_cells_title:"Spoji \u0107elije",\r
+id:"Id",\r
+style:"Stil",\r
+langdir:"Smjer jezika",\r
+langcode:"Kod jezika",\r
+mime:"MIME tip",\r
+ltr:"S lijeva na desno",\r
+rtl:"S desna na lijevo",\r
+bgimage:"Slika pozadine",\r
+summary:"Sa\u017Eetak",\r
+td:"Podatkovna",\r
+th:"Zaglavlje",\r
+cell_cell:"Primjeni na odabranu \u0107eliju",\r
+cell_row:"Primjeni na sve \u0107elije u retku",\r
+cell_all:"Primjeni na sve \u0107elije u tablici",\r
+row_row:"Primjeni na odabrani redak",\r
+row_odd:"Primjeni na neparne retke u tablici",\r
+row_even:"Primjeni na parne retke u tablici",\r
+row_all:"Primjeni na sve retke u tablici",\r
+thead:"Zaglavlje tablice",\r
+tbody:"Tijelo tablice",\r
+tfoot:"Podno\u017Eje tablice",\r
+scope:"Domet",\r
+rowgroup:"Grupa redaka",\r
+colgroup:"Grupa stupaca",\r
+col_limit:"Prema\u0161ili ste maksimalni broj stupaca ({$cols}).",\r
+row_limit:"Prema\u0161ili ste maksimalni broj redaka ({$rows}).",\r
+cell_limit:"Prema\u0161ili ste maksimalni broj \u0107elija ({$cells}).",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Opis tablice",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hu.table_dlg',{\r
+general_tab:"\u00C1ltal\u00E1nos",\r
+advanced_tab:"Halad\u00F3",\r
+general_props:"\u00C1ltal\u00E1nos tulajdons\u00E1gok",\r
+advanced_props:"Halad\u00F3 tulajdons\u00E1gok",\r
+rowtype:"Sor a t\u00E1bl\u00E1ban",\r
+title:"T\u00E1bl\u00E1zat besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+width:"Sz\u00E9less\u00E9g",\r
+height:"Magass\u00E1g",\r
+cols:"Oszlopok",\r
+rows:"Sorok",\r
+cellspacing:"Cellak\u00F6z",\r
+cellpadding:"Cella bels\u0151k\u00F6z",\r
+border:"Keret",\r
+align:"Igaz\u00EDt\u00E1s",\r
+align_default:"Alap\u00E9rtelmezett",\r
+align_left:"Balra",\r
+align_right:"Jobbra",\r
+align_middle:"K\u00F6z\u00E9pre",\r
+row_title:"Sor tulajdons\u00E1gai",\r
+cell_title:"Cella tulajdons\u00E1gai",\r
+cell_type:"Cellat\u00EDpus",\r
+valign:"F\u00FCgg\u0151leges igaz\u00EDt\u00E1s",\r
+align_top:"Fel",\r
+align_bottom:"Le",\r
+bordercolor:"Keretsz\u00EDn",\r
+bgcolor:"H\u00E1tt\u00E9rsz\u00EDn",\r
+merge_cells_title:"Cell\u00E1k \u00F6sszevon\u00E1sa",\r
+id:"Id",\r
+style:"St\u00EDlus",\r
+langdir:"\u00CDr\u00E1s ir\u00E1ny",\r
+langcode:"Nyelvk\u00F3d",\r
+mime:"C\u00E9l MIME t\u00EDpus",\r
+ltr:"Balr\u00F3l jobbra",\r
+rtl:"Jobbr\u00F3l balra",\r
+bgimage:"H\u00E1tt\u00E9rk\u00E9p",\r
+summary:"\u00D6sszegz\u00E9s",\r
+td:"Adat",\r
+th:"Fejl\u00E9c",\r
+cell_cell:"Cella friss\u00EDt\u00E9se",\r
+cell_row:"Sor \u00F6sszes cell\u00E1j\u00E1nak friss\u00EDt\u00E9se",\r
+cell_all:"T\u00E1bl\u00E1zat \u00F6sszes cell\u00E1j\u00E1nak friss\u00EDt\u00E9se",\r
+row_row:"Sor friss\u00EDt\u00E9se",\r
+row_odd:"P\u00E1ratlan sorok friss\u00EDt\u00E9se",\r
+row_even:"P\u00E1ros sorok friss\u00EDt\u00E9se",\r
+row_all:"Minden sor friss\u00EDt\u00E9se",\r
+thead:"T\u00E1bl\u00E1zat fej",\r
+tbody:"T\u00E1bl\u00E1zat test",\r
+tfoot:"T\u00E1bl\u00E1zat l\u00E1b",\r
+scope:"Hat\u00F3k\u00F6r",\r
+rowgroup:"Sor csoport",\r
+colgroup:"Oszlop csoport",\r
+col_limit:"T\u00FAll\u00E9pte a maxim\u00E1lis oszlopsz\u00E1mot, ami {$cols}.",\r
+row_limit:"T\u00FAll\u00E9pte a maxim\u00E1lis sorsz\u00E1mot, ami {$rows}.",\r
+cell_limit:"T\u00FAll\u00E9pte a maxim\u00E1lis cellasz\u00E1mot, ami {$cells}.",\r
+missing_scope:"Biztosan folytatni akarja an\u00E9lk\u00FCl, hogy hat\u00F3k\u00F6rt adna ennek a fejl\u00E9ccell\u00E1nak? Korl\u00E1toz\u00E1sokkal \u00E9l\u0151k sz\u00E1m\u00E1ra neh\u00E9z lesz meg\u00E9rteni a t\u00E1bl\u00E1zat tartalm\u00E1t.",\r
+caption:"C\u00EDmsor",\r
+frame:"Keret",\r
+frame_none:"nincs",\r
+frame_groups:"csoportok",\r
+frame_rows:"sorok",\r
+frame_cols:"oszlopok",\r
+frame_all:"mind",\r
+rules:"Vonalak",\r
+rules_void:"sehol",\r
+rules_above:"f\u00F6l\u00F6tte",\r
+rules_below:"alatta",\r
+rules_hsides:"v. oldalak",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"f. oldalak",\r
+rules_box:"doboz",\r
+rules_border:"keret"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('is.table_dlg',{\r
+general_tab:"General",\r
+advanced_tab:"Advanced",\r
+general_props:"General properties",\r
+advanced_props:"Advanced properties",\r
+rowtype:"Row in table part",\r
+title:"Insert/Modify table",\r
+width:"Width",\r
+height:"Height",\r
+cols:"Cols",\r
+rows:"Rows",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"Border",\r
+align:"Alignment",\r
+align_default:"Default",\r
+align_left:"Left",\r
+align_right:"Right",\r
+align_middle:"Center",\r
+row_title:"Table row properties",\r
+cell_title:"Table cell properties",\r
+cell_type:"Cell type",\r
+valign:"Vertical alignment",\r
+align_top:"Top",\r
+align_bottom:"Bottom",\r
+bordercolor:"Border color",\r
+bgcolor:"Background color",\r
+merge_cells_title:"Merge table cells",\r
+id:"Id",\r
+style:"Style",\r
+langdir:"Language direction",\r
+langcode:"Language code",\r
+mime:"Target MIME type",\r
+ltr:"Left to right",\r
+rtl:"Right to left",\r
+bgimage:"Background image",\r
+summary:"Summary",\r
+td:"Data",\r
+th:"Header",\r
+cell_cell:"Update current cell",\r
+cell_row:"Update all cells in row",\r
+cell_all:"Update all cells in table",\r
+row_row:"Update current row",\r
+row_odd:"Update odd rows in table",\r
+row_even:"Update even rows in table",\r
+row_all:"Update all rows in table",\r
+thead:"Table Head",\r
+tbody:"Table Body",\r
+tfoot:"Table Foot",\r
+scope:"Scope",\r
+rowgroup:"Row Group",\r
+colgroup:"Col Group",\r
+col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
+row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
+cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Table caption",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('it.table_dlg',{\r
+general_tab:"Generale",\r
+advanced_tab:"Avanzate",\r
+general_props:"Propriet\u00E0 generali",\r
+advanced_props:"Propriet\u00E0 avanzate",\r
+rowtype:"Riga in una parte di tabella",\r
+title:"Inserisci/Modifica tabella",\r
+width:"Larghezza",\r
+height:"Altezza",\r
+cols:"Colonne",\r
+rows:"Righe",\r
+cellspacing:"Spaziatura celle",\r
+cellpadding:"Padding celle",\r
+border:"Bordo",\r
+align:"Allineamento",\r
+align_default:"Predefinito",\r
+align_left:"A sinistra",\r
+align_right:"A destra",\r
+align_middle:"Centra",\r
+row_title:"Propriet\u00E0 riga",\r
+cell_title:"Propriet\u00E0 cella",\r
+cell_type:"Tipo cella",\r
+valign:"Allineamento verticale",\r
+align_top:"In alto",\r
+align_bottom:"In basso",\r
+bordercolor:"Colore bordo",\r
+bgcolor:"Colore sfondo",\r
+merge_cells_title:"Unisci celle",\r
+id:"Id",\r
+style:"Stile",\r
+langdir:"Direzione testo",\r
+langcode:"Lingua",\r
+mime:"Tipo MIME del target",\r
+ltr:"Sinistra verso destra",\r
+rtl:"Destra verso sinistra",\r
+bgimage:"Immagine sfondo",\r
+summary:"Sommario",\r
+td:"Data",\r
+th:"Intestazione",\r
+cell_cell:"Aggiorna cella corrente",\r
+cell_row:"Aggiorna tutte le celle della riga",\r
+cell_all:"Aggiorna tutte le celle della tabella",\r
+row_row:"Aggiorna riga corrente",\r
+row_odd:"Aggiorna righe dispari della tabella",\r
+row_even:"Aggiorna righe pari della tabella",\r
+row_all:"Update tutte le righe della tabella",\r
+thead:"Intestazione tabella",\r
+tbody:"Corpo tabella",\r
+tfoot:"Pedice tabella",\r
+scope:"Scope",\r
+rowgroup:"Gruppo riga",\r
+colgroup:"Gruppo colonna",\r
+col_limit:"Superato il numero massimo di colonne di {$cols}.",\r
+row_limit:"Superato il numero massimo di righe di {$rows}.",\r
+cell_limit:"Superato il numero massimo di celle di {$cells}.",\r
+missing_scope:"Sicuro di proseguire senza aver specificato uno scope per l'intestazione di questa tabella? Senza di esso, potrebbe essere difficoltoso per alcuni utenti con disabilit\u00E0 capire il contenuto o i dati mostrati nella tabella.",\r
+caption:"Table caption",\r
+frame:"Cornice",\r
+frame_none:"nessuna",\r
+frame_groups:"gruppi",\r
+frame_rows:"righe",\r
+frame_cols:"colonne",\r
+frame_all:"tutte",\r
+rules:"Regole",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ja.table_dlg',{\r
+general_tab:"\u4E00\u822C",\r
+advanced_tab:"\u4E0A\u7D1A\u8005\u5411\u3051",\r
+general_props:"\u4E00\u822C",\r
+advanced_props:"\u4E0A\u7D1A\u8005\u5411\u3051",\r
+rowtype:"\u884C",\r
+title:"\u8868\u306E\u633F\u5165/\u7DE8\u96C6",\r
+width:"\u5E45",\r
+height:"\u9AD8\u3055",\r
+cols:"\u5217",\r
+rows:"\u884C",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"\u67A0\u7DDA",\r
+align:"\u914D\u7F6E",\r
+align_default:"\u30C7\u30D5\u30A9\u30EB\u30C8",\r
+align_left:"\u5DE6\u63C3\u3048",\r
+align_right:"\u53F3\u63C3\u3048",\r
+align_middle:"\u4E2D\u592E\u63C3\u3048",\r
+row_title:"\u884C\u306E\u30D7\u30ED\u30D1\u30C6\u30A3",\r
+cell_title:"\u30BB\u30EB\u306E\u30D7\u30ED\u30D1\u30C6\u30A3",\r
+cell_type:"\u30BB\u30EB\u7A2E\u5225",\r
+valign:"\u5782\u76F4\u65B9\u5411\u306E\u914D\u7F6E",\r
+align_top:"\u4E0A\u63C3\u3048",\r
+align_bottom:"\u4E0B\u63C3\u3048",\r
+bordercolor:"\u67A0\u7DDA\u306E\u8272",\r
+bgcolor:"\u80CC\u666F\u8272",\r
+merge_cells_title:"\u30BB\u30EB\u306E\u7D50\u5408",\r
+id:"ID",\r
+style:"\u30B9\u30BF\u30A4\u30EB",\r
+langdir:"\u6587\u7AE0\u306E\u65B9\u5411",\r
+langcode:"\u8A00\u8A9E\u30B3\u30FC\u30C9",\r
+mime:"\u30BF\u30FC\u30B2\u30C3\u30C8\u306EMIME\u30BF\u30A4\u30D7",\r
+ltr:"\u5DE6\u304B\u3089\u53F3",\r
+rtl:"\u53F3\u304B\u3089\u5DE6",\r
+bgimage:"\u80CC\u666F\u753B\u50CF",\r
+summary:"\u30B5\u30DE\u30EA\u30FC",\r
+td:"\u65E5\u4ED8",\r
+th:"\u30D8\u30C3\u30C0",\r
+cell_cell:"\u9078\u629E\u30BB\u30EB\u306E\u66F4\u65B0",\r
+cell_row:"\u884C\u5185\u306E\u30BB\u30EB\u306E\u66F4\u65B0",\r
+cell_all:"\u5168\u3066\u306E\u30BB\u30EB\u306E\u66F4\u65B0",\r
+row_row:"\u9078\u629E\u884C\u306E\u66F4\u65B0",\r
+row_odd:"\u5947\u6570\u884C\u306E\u66F4\u65B0",\r
+row_even:"\u5076\u6570\u884C\u306E\u66F4\u65B0",\r
+row_all:"\u5168\u3066\u306E\u884C\u306E\u66F4\u65B0",\r
+thead:"\u8868\u30D8\u30C3\u30C0",\r
+tbody:"\u8868\u30DC\u30C7\u30A3",\r
+tfoot:"\u8868\u30D5\u30C3\u30BF",\r
+scope:"\u30B9\u30B3\u30FC\u30D7",\r
+rowgroup:"\u884C\u30B0\u30EB\u30FC\u30D7",\r
+colgroup:"\u5217\u30B0\u30EB\u30FC\u30D7",\r
+col_limit:"\u5217\u306E\u6700\u5927\u6570\u3092\u8D85\u3048\u307E\u3057\u305F\u3002",\r
+row_limit:"\u884C\u306E\u6700\u5927\u6570\u3092\u8D85\u3048\u307E\u3057\u305F\u3002",\r
+cell_limit:"\u30BB\u30EB\u306E\u6700\u5927\u6570\u3092\u8D85\u3048\u307E\u3057\u305F\u3002",\r
+missing_scope:"\u8868\u306E\u30B9\u30B3\u30FC\u30D7\u5C5E\u6027\u3092\u8A2D\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u304C\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F",\r
+caption:"\u8868\u306B\u898B\u51FA\u3057\u3092\u4ED8\u3051\u308B",\r
+frame:"\u30BB\u30EB\u67A0\u7DDA",\r
+frame_none:"\u306A\u3057",\r
+frame_groups:"\u30B0\u30EB\u30FC\u30D7\u6BCE",\r
+frame_rows:"\u884C",\r
+frame_cols:"\u5217",\r
+frame_all:"\u5168\u3066",\r
+rules:"\u8868\u306E\u5916\u67A0",\r
+rules_void:"\u306A\u3057",\r
+rules_above:"\u4E0A",\r
+rules_below:"\u4E0B",\r
+rules_hsides:"\u4E0A\u4E0B",\r
+rules_lhs:"\u5DE6",\r
+rules_rhs:"\u53F3",\r
+rules_vsides:"\u5DE6\u53F3",\r
+rules_box:"\u4E0A\u4E0B\u5DE6\u53F3(box)",\r
+rules_border:"\u4E0A\u4E0B\u5DE6\u53F3(border)"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ko.table_dlg',{\r
+general_tab:"\uC77C\uBC18",\r
+advanced_tab:"\uACE0\uAE09",\r
+general_props:"\uC77C\uBC18 \uC124\uC815",\r
+advanced_props:"\uACE0\uAE09 \uC124\uC815",\r
+rowtype:"\uD589",\r
+title:"\uD14C\uC774\uBE14\uC758 \uC0BD\uC785/\uD3B8\uC9D1",\r
+width:"\uD3ED",\r
+height:"\uB192\uC774",\r
+cols:"\uB82C",\r
+rows:"\uD589",\r
+cellspacing:"\uC140 \uAC04\uACA9",\r
+cellpadding:"\uC140\uB0B4 \uC5EC\uBC31",\r
+border:"\uD14C\uB450\uB9AC\uC120",\r
+align:"\uC815\uB82C",\r
+align_default:"\uAE30\uBCF8\uAC12",\r
+align_left:"\uC67C\uCABD \uB9DE\uCDA4",\r
+align_right:"\uC624\uB978\uCABD \uB9DE\uCDA4",\r
+align_middle:"\uAC00\uC6B4\uB370 \uB9DE\uCDA4",\r
+row_title:"\uD589 \uC124\uC815",\r
+cell_title:"\uC140 \uC124\uC815",\r
+cell_type:"\uC140 \uC885\uB958",\r
+valign:"\uC218\uC9C1 \uC704\uCE58",\r
+align_top:"\uC0C1",\r
+align_bottom:"\uD558",\r
+bordercolor:"\uD14C\uB450\uB9AC\uC120\uC0C9",\r
+bgcolor:"\uBC30\uACBD\uC0C9",\r
+merge_cells_title:"\uC140 \uACB0\uD569",\r
+id:"Id",\r
+style:"\uC2A4\uD0C0\uC77C",\r
+langdir:"\uBB38\uC790 \uBC29\uD5A5",\r
+langcode:"\uC5B8\uC5B4 \uCF54\uB4DC",\r
+mime:"Target MIME \uD0C0\uC785",\r
+ltr:"\uC67C\uCABD\uC5D0\uC11C \uC624\uB978\uCABD",\r
+rtl:"\uC624\uB978\uCABD\uC5D0\uC11C \uC67C\uCABD",\r
+bgimage:"\uBC30\uACBD \uC774\uBBF8\uC9C0",\r
+summary:"\uC694\uC57D",\r
+td:"Data",\r
+th:"Header",\r
+cell_cell:"\uD604\uC7AC\uC758 \uC140\uC744 \uAC31\uC2E0",\r
+cell_row:"\uD589\uC758 \uC804\uC140\uC744 \uAC31\uC2E0",\r
+cell_all:"\uD14C\uC774\uBE14\uC758 \uBAA8\uB4E0 \uC140\uC744 \uAC31\uC2E0",\r
+row_row:"\uD604\uC7AC\uC758 \uD589\uC744 \uAC31\uC2E0",\r
+row_odd:"\uD640\uC218\uD589\uC744 \uAC31\uC2E0",\r
+row_even:"\uC9DD\uC218\uD589\uC744 \uAC31\uC2E0",\r
+row_all:"\uC804\uD589\uC744 \uAC31\uC2E0",\r
+thead:"Table Head",\r
+tbody:"Table Body",\r
+tfoot:"\uD14C\uC774\uBE14 \uD48B\uD130",\r
+scope:"Scope",\r
+rowgroup:"\uD589\uADF8\uB8F9",\r
+colgroup:"\uC5F4\uADF8\uB8F9",\r
+col_limit:"\uB82C\uC218\uC758 \uC0C1\uD55C{$cols}\uB97C \uB118\uC5C8\uC2B5\uB2C8\uB2E4.",\r
+row_limit:"\uD589\uC218\uC758 \uC0C1\uD55C{$rows}\uB97C \uB118\uC5C8\uC2B5\uB2C8\uB2E4.",\r
+cell_limit:"\uC140\uC218\uC758 \uC0C1\uD55C{$cells}\uB97C \uB118\uC5C8\uC2B5\uB2C8\uB2E4.",\r
+missing_scope:"\uC774 \uD45C \uD5E4\uB354\uC140\uC5D0 scope\uC18D\uC131\uC744 \uC9C0\uC815\uD558\uC9C0\uC54A\uC544\uB3C4 \uAD1C\uCC2E\uC2B5\uB2C8\uAE4C? \uC9C0\uC815\uD558\uC9C0 \uC54A\uB294 \uACBD\uC6B0, \uC2DC\uAC04\uC801\uC73C\uB85C \uD14C\uC774\uBE14\uC758 \uAD6C\uC870\uB97C \uD30C\uC545\uD558\uB294 \uAC83\uC774 \uC5B4\uB824\uC6B4 \uBD84\uC758 \uC811\uADFC\uC131\uC774 \uC800\uD558\uD569\uB2C8\uB2E4.",\r
+caption:"\uD45C\uC81C",\r
+frame:"Frame",\r
+frame_none:"\uC5C6\uC74C",\r
+frame_groups:"\uADF8\uB8F9",\r
+frame_rows:"\uD589",\r
+frame_cols:"\uC5F4",\r
+frame_all:"\uBAA8\uB450",\r
+rules:"Rules",\r
+rules_void:"Void",\r
+rules_above:"\uC704",\r
+rules_below:"\uC544\uB798",\r
+rules_hsides:"\uC0C1\uD558\uBC94\uC704\uB9CC",\r
+rules_lhs:"\uC88C\uCE21 \uBC94\uC704\uB9CC",\r
+rules_rhs:"\uC6B0\uCE21 \uBC94\uC704\uB9CC",\r
+rules_vsides:"\uC88C\uC6B0\uBC94\uC704\uB9CC",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lt.table_dlg',{\r
+general_tab:"Bendra",\r
+advanced_tab:"I\u0161pl\u0117sta",\r
+general_props:"Bendri nustatymai",\r
+advanced_props:"I\u0161pl\u0117stiniai nustatymai",\r
+rowtype:"Eilut\u0117 lentel\u0117s dalyje",\r
+title:"\u012Eterpti/modifikuoti lentel\u0119",\r
+width:"Ilgis",\r
+height:"Auk\u0161tis",\r
+cols:"Stulpeliai",\r
+rows:"Eilut\u0117s",\r
+cellspacing:"Tarpas tarp l\u0105steli\u0173",\r
+cellpadding:"Tarpas l\u0105stel\u0117s viduje",\r
+border:"R\u0117melis",\r
+align:"Lygiavimas",\r
+align_default:"Standartinis",\r
+align_left:"Lygiuoti kair\u0117je",\r
+align_right:"Lygiuoti de\u0161in\u0117je",\r
+align_middle:"Centruoti",\r
+row_title:"Lentel\u0117s eilut\u0117s nustatymai",\r
+cell_title:"Lentel\u0117s l\u0105stel\u0117s nustatymai",\r
+cell_type:"L\u0105stel\u0117s tipas",\r
+valign:"Vertikalus lygiavimas",\r
+align_top:"Vir\u0161uje",\r
+align_bottom:"Apa\u010Dioje",\r
+bordercolor:"R\u0117melio spalva",\r
+bgcolor:"Fono spalva",\r
+merge_cells_title:"Sulieti lentel\u0117s l\u0105steles",\r
+id:"Id",\r
+style:"Stilius",\r
+langdir:"Kalbos kryptis",\r
+langcode:"Kalbos kodas",\r
+mime:"Taikinio MIME tipas",\r
+ltr:"I\u0161 kair\u0117s \u012F de\u0161in\u0119",\r
+rtl:"I\u0161 de\u0161in\u0117s \u012F kair\u0119",\r
+bgimage:"Fono paveiksl\u0117lis",\r
+summary:"Apibendrinimas",\r
+td:"Duomenys",\r
+th:"Antra\u0161t\u0117",\r
+cell_cell:"Atnaujinti esam\u0105 l\u0105stel\u0119",\r
+cell_row:"Atnaujinti visas eilut\u0117s l\u0105steles",\r
+cell_all:"Atnaujinti visas lentel\u0117s l\u0105steles",\r
+row_row:"Atnaujinti esam\u0105 eilut\u0119",\r
+row_odd:"Atnaujinti nelygines lentel\u0117s eilutes",\r
+row_even:"Atnaujinti lygines lentel\u0117s eilutes",\r
+row_all:"Atnaujinti visas lentel\u0117s eilutes",\r
+thead:"Lentel\u0117s Vir\u0161us",\r
+tbody:"Lentel\u0117s Vidus",\r
+tfoot:"Lentel\u0117s Apa\u010Dia",\r
+scope:"Galiojimo sritis",\r
+rowgroup:"Eilu\u010Di\u0173 grup\u0117",\r
+colgroup:"Stulpeli\u0173 grup\u0117",\r
+col_limit:"Vir\u0161ijote did\u017Eiausia stulpeli\u0173 kiek\u012F i\u0161 {$cols}.",\r
+row_limit:"Vir\u0161ijote did\u017Eiausia eilu\u010Di\u0173 kiek\u012F i\u0161 {$rows}.",\r
+cell_limit:"Vir\u0161ijote did\u017Eiausia l\u0105steli\u0173 kiek\u012F i\u0161 {$cells}.",\r
+missing_scope:"Ar norite t\u0119sti nenurod\u0119 galiojimo srities \u0161iai lentel\u0117s vir\u0161utinei l\u0105stelei. Be nurodymo, gali b\u016Bti sunku kai kuriems vartotojams su negalia lentel\u0117je atvaizduojam\u0173 duomen\u0173 turin\u012F.",\r
+caption:"Lentel\u0117s antra\u0161t\u0117",\r
+frame:"Freimas",\r
+frame_none:"joks",\r
+frame_groups:"grup\u0117s",\r
+frame_rows:"eilut\u0117s",\r
+frame_cols:"stulpeliai",\r
+frame_all:"visi",\r
+rules:"Taisykl\u0117s",\r
+rules_void:"negaliojantis",\r
+rules_above:"vir\u0161utinis",\r
+rules_below:"apatinis",\r
+rules_hsides:"hor. pus\u0117s",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vert. pus\u0117s",\r
+rules_box:"d\u0117\u017Eut\u0117",\r
+rules_border:"r\u0117melis"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lv.table_dlg',{\r
+general_tab:"General",\r
+advanced_tab:"Advanced",\r
+general_props:"General properties",\r
+advanced_props:"Advanced properties",\r
+rowtype:"Row in table part",\r
+title:"Insert/Modify table",\r
+width:"Width",\r
+height:"Height",\r
+cols:"Cols",\r
+rows:"Rows",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"Border",\r
+align:"Alignment",\r
+align_default:"Default",\r
+align_left:"Left",\r
+align_right:"Right",\r
+align_middle:"Center",\r
+row_title:"Table row properties",\r
+cell_title:"Table cell properties",\r
+cell_type:"Cell type",\r
+valign:"Vertical alignment",\r
+align_top:"Top",\r
+align_bottom:"Bottom",\r
+bordercolor:"Border color",\r
+bgcolor:"Background color",\r
+merge_cells_title:"Merge table cells",\r
+id:"Id",\r
+style:"Style",\r
+langdir:"Language direction",\r
+langcode:"Language code",\r
+mime:"Target MIME type",\r
+ltr:"Left to right",\r
+rtl:"Right to left",\r
+bgimage:"Background image",\r
+summary:"Summary",\r
+td:"Data",\r
+th:"Header",\r
+cell_cell:"Update current cell",\r
+cell_row:"Update all cells in row",\r
+cell_all:"Update all cells in table",\r
+row_row:"Update current row",\r
+row_odd:"Update odd rows in table",\r
+row_even:"Update even rows in table",\r
+row_all:"Update all rows in table",\r
+thead:"Table Head",\r
+tbody:"Table Body",\r
+tfoot:"Table Foot",\r
+scope:"Scope",\r
+rowgroup:"Row Group",\r
+colgroup:"Col Group",\r
+col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
+row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
+cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Table caption",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('mk.table_dlg',{\r
+general_tab:"Osnovno",\r
+advanced_tab:"Napredno",\r
+general_props:"Osnovna svojstva",\r
+advanced_props:"Napredna svojstva",\r
+rowtype:"Row in table part",\r
+title:"\u0412\u043C\u0435\u0442\u043D\u0438/uredi tablicu",\r
+width:"\u0160irina",\r
+height:"Visina",\r
+cols:"Stupaca",\r
+rows:"Redaka",\r
+cellspacing:"Razmak \u0107elija",\r
+cellpadding:"Dopuna \u0107elije",\r
+border:"Obrub",\r
+align:"Poravnavanje",\r
+align_default:"Zadano",\r
+align_left:"Levo",\r
+align_right:"Desno",\r
+align_middle:"Sredina",\r
+row_title:"Svojstva retka",\r
+cell_title:"Svojstva \u0107elije",\r
+cell_type:"Tip \u0107elije",\r
+valign:"Okomito poravnavanje",\r
+align_top:"Vrh",\r
+align_bottom:"Dno",\r
+bordercolor:"Boja obruba",\r
+bgcolor:"Background color",\r
+merge_cells_title:"Spoji \u0107elije",\r
+id:"Id",\r
+style:"Stil",\r
+langdir:"Smjer jezika",\r
+langcode:"Kod jezika",\r
+mime:"MIME tip",\r
+ltr:"S leva na desno",\r
+rtl:"S desna na levo",\r
+bgimage:"Slika pozadine",\r
+summary:"Sa\u017Eetak",\r
+td:"Podatkovna",\r
+th:"Zaglavlje",\r
+cell_cell:"Primjeni na odabranu \u0107eliju",\r
+cell_row:"Primjeni na sve \u0107elije u retku",\r
+cell_all:"Primjeni na sve \u0107elije u tablici",\r
+row_row:"Primjeni na odabrani redak",\r
+row_odd:"Primjeni na neparne retke u tablici",\r
+row_even:"Primjeni na parne retke u tablici",\r
+row_all:"Primjeni na sve retke u tablici",\r
+thead:"Zaglavlje tablice",\r
+tbody:"Telo tablice",\r
+tfoot:"Podno\u017Eje tablice",\r
+scope:"Domet",\r
+rowgroup:"Grupa redaka",\r
+colgroup:"Grupa stupaca",\r
+col_limit:"Prema\u0161ili ste maksimalni broj stupaca ({$cols}).",\r
+row_limit:"Prema\u0161ili ste maksimalni broj redaka ({$rows}).",\r
+cell_limit:"Prema\u0161ili ste maksimalni broj \u0107elija ({$cells}).",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Opis tablice",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ms.table_dlg',{\r
+general_tab:"Am",\r
+advanced_tab:"Lanjutan",\r
+general_props:"Alatan am",\r
+advanced_props:"Alatan lanjutan",\r
+rowtype:"Row dalam jadual",\r
+title:"Masuk/Ubah jadual",\r
+width:"Lebar",\r
+height:"Tinggi",\r
+cols:"Kol",\r
+rows:"Row",\r
+cellspacing:"Ruang sel",\r
+cellpadding:"Lapisan sel",\r
+border:"Sempadan",\r
+align:"Penyelarian",\r
+align_default:"Asal",\r
+align_left:"Kiri",\r
+align_right:"Kanan",\r
+align_middle:"Tengah",\r
+row_title:"Alatan row jadual",\r
+cell_title:"Alatan sel jadual",\r
+cell_type:"Jenis sel",\r
+valign:"Penjajaran tegak",\r
+align_top:"Atas",\r
+align_bottom:"Bawah",\r
+bordercolor:"Warna sempadan",\r
+bgcolor:"Warna latar",\r
+merge_cells_title:"Gabung sel jadual",\r
+id:"Id",\r
+style:"Gaya",\r
+langdir:"Arah bahasa",\r
+langcode:"Kod bahasa",\r
+mime:"Sasaran jenis MIME",\r
+ltr:"Kiri ke kanan",\r
+rtl:"Kanan ke kiri",\r
+bgimage:"Imej latar",\r
+summary:"Kesimpulan",\r
+td:"Data",\r
+th:"Kepala",\r
+cell_cell:"Baharui sel ini",\r
+cell_row:"Baharui semua sel dalam row",\r
+cell_all:"Baharui semua sel dalam jadual",\r
+row_row:"Baharui row semasa",\r
+row_odd:"Baharui row ganjil dalam jadual",\r
+row_even:"Baharui row genap dalam jadual",\r
+row_all:"Baharui semua row dalam jadual",\r
+thead:"Pembuka jadual",\r
+tbody:"Isi jadual",\r
+tfoot:"Penutup jadual Foot",\r
+scope:"Skop",\r
+rowgroup:"Kumpulan row",\r
+colgroup:"Kumpulan kol",\r
+col_limit:"Anda telah melebihi maxima kolum dibenarkan iaitu {$cols}.",\r
+row_limit:"Anda telah melebihi maxima row dibenarkan iaitu {$rows}.",\r
+cell_limit:"Anda telah melebihi maxima sel dibenarkan iaitu {$cells}.",\r
+missing_scope:"Adakah anda pasti terhadap skop sel jadual ini. Ia mungkin memberi kesan kepada OKU memahami isi jadual.",\r
+caption:"Tajuk jadual",\r
+frame:"Bingkai",\r
+frame_none:"tiada",\r
+frame_groups:"kumpulan",\r
+frame_rows:"row",\r
+frame_cols:"kol",\r
+frame_all:"semua",\r
+rules:"Peraturan",\r
+rules_void:"batal",\r
+rules_above:"atas",\r
+rules_below:"bawah",\r
+rules_hsides:"tepian datar",\r
+rules_lhs:"hs-kiri",\r
+rules_rhs:"hs-kanan",\r
+rules_vsides:"tepian tegak",\r
+rules_box:"kotak",\r
+rules_border:"sempadan"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nb.table_dlg',{\r
+general_tab:"Generelt",\r
+advanced_tab:"Avansert",\r
+general_props:"Generelt",\r
+advanced_props:"Generelle egenskaper",\r
+rowtype:"Rad i tabell",\r
+title:"Sett inn / rediger tabell",\r
+width:"Bredde",\r
+height:"H\u00F8yde",\r
+cols:"Kolonner",\r
+rows:"Rader",\r
+cellspacing:"Celleavstand",\r
+cellpadding:"Cellefylling",\r
+border:"Ramme",\r
+align:"Justering",\r
+align_default:"Standard",\r
+align_left:"Venstre",\r
+align_right:"H\u00F8yre",\r
+align_middle:"Midtstilt",\r
+row_title:"Radegenskaper",\r
+cell_title:"Celleegenskaper",\r
+cell_type:"Celletype",\r
+valign:"Vertikal justering",\r
+align_top:"Topp",\r
+align_bottom:"Bunn",\r
+bordercolor:"Rammefarge",\r
+bgcolor:"Bakgrunn",\r
+merge_cells_title:"Sl\u00E5 sammen celler",\r
+id:"Id",\r
+style:"Stil",\r
+langdir:"Skriftretning",\r
+langcode:"Spr\u00E5kkode",\r
+mime:"M\u00E5lets MIME-type",\r
+ltr:"Venstre mot h\u00F8yre",\r
+rtl:"H\u00F8yre mot venstre",\r
+bgimage:"Bakgrunnsbilde",\r
+summary:"Sammendrag",\r
+td:"Data",\r
+th:"Overskrift",\r
+cell_cell:"Oppdater aktuell celle",\r
+cell_row:"Oppdater alle celler i raden",\r
+cell_all:"Oppdater alle celler i tabellen",\r
+row_row:"Oppdater aktuell rad",\r
+row_odd:"Oppdater oddetallsrader",\r
+row_even:"Oppdater partallsrader",\r
+row_all:"Oppdater alle rader",\r
+thead:"Tabellhode",\r
+tbody:"Tabellkropp",\r
+tfoot:"Tabellfot",\r
+scope:"Omr\u00E5de",\r
+rowgroup:"Radgruppe",\r
+colgroup:"Kolonnegruppe",\r
+col_limit:"Du har overskredet maksimalt antall kolonner p\u00E5 {$cols}.",\r
+row_limit:"Du har overskredet maksimalt antall rader p\u00E5 {$rows}.",\r
+cell_limit:"Du har overskredet maksimalt antall celler p\u00E5 {$cells}.",\r
+missing_scope:"Er du sikker p\u00E5 at du vil fortsette uten \u00E5 angi et omr\u00E5de for denne overskrifscellen? Uten dette kan det bli vanskelig for enkelte funksjonshemmede brukere \u00E5 forst\u00E5 innholdet eller dataene som blir presentert i tabellen.",\r
+caption:"Tabelloverskrift",\r
+frame:"Ramme",\r
+frame_none:"ingen",\r
+frame_groups:"grupper",\r
+frame_rows:"rader",\r
+frame_cols:"kolonner",\r
+frame_all:"alle",\r
+rules:"Streker",\r
+rules_void:"ingen",\r
+rules_above:"over",\r
+rules_below:"under",\r
+rules_hsides:"hsider",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"boks",\r
+rules_border:"ramme"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nl.table_dlg',{\r
+general_tab:"Algemeen",\r
+advanced_tab:"Geavanceerd",\r
+general_props:"Algemene eigenschappen",\r
+advanced_props:"Geavanceerde eigenschappen",\r
+rowtype:"Rijtype",\r
+title:"Tabel invoegen/bewerken",\r
+width:"Breedte",\r
+height:"Hoogte",\r
+cols:"Kolommen",\r
+rows:"Rijen",\r
+cellspacing:"Ruimte om cel",\r
+cellpadding:"Ruimte in cel",\r
+border:"Rand",\r
+align:"Uitlijning",\r
+align_default:"Standaard",\r
+align_left:"Links",\r
+align_right:"Rechts",\r
+align_middle:"Centreren",\r
+row_title:"Rij-eigenschappen",\r
+cell_title:"Celeigenschappen",\r
+cell_type:"Celtype",\r
+valign:"Verticale uitlijning",\r
+align_top:"Boven",\r
+align_bottom:"Onder",\r
+bordercolor:"Randkleur",\r
+bgcolor:"Achtergrondkleur",\r
+merge_cells_title:"Cellen samenvoegen",\r
+id:"Id",\r
+style:"Stijl",\r
+langdir:"Taalrichting",\r
+langcode:"Taalcode",\r
+mime:"Doel MIME type",\r
+ltr:"Van links naar rechts",\r
+rtl:"Van rechts naar links",\r
+bgimage:"Achtergrondafbeelding",\r
+summary:"Samenvatting",\r
+td:"Gegevens",\r
+th:"Kop",\r
+cell_cell:"Huidige cel bijwerken",\r
+cell_row:"Alle cellen in rij bijwerken",\r
+cell_all:"Alle cellen in tabel bijwerken",\r
+row_row:"Huidige rij bijwerken",\r
+row_odd:"Oneven rijen bijwerken",\r
+row_even:"Even rijen bijwerken",\r
+row_all:"Alle rijen bijweken",\r
+thead:"Tabelkop",\r
+tbody:"Tabellichaam",\r
+tfoot:"Tabelvoet",\r
+scope:"Bereik",\r
+rowgroup:"Rijgroep",\r
+colgroup:"Kolomgroep",\r
+col_limit:"Je hebt het maximale aantal kolommen van {$cols} overschreden.",\r
+row_limit:"Je hebt het maximale aantal rijen van {$rows} overschreden.",\r
+cell_limit:"Je hebt het maximale aantal cellen van {$cells} overschreden.",\r
+missing_scope:"Weet je zeker dat je door wilt gaan met het toewijzen van een kop zonder een bereik op te geven? Mensen met een visuele handicap kunnen hierdoor waarschijnlijk slecht bij de gegevens.",\r
+caption:"Tabelbeschrijving",\r
+frame:"Frame",\r
+frame_none:"Geen",\r
+frame_groups:"Groepen",\r
+frame_rows:"Rijen",\r
+frame_cols:"Kolommen",\r
+frame_all:"Alles",\r
+rules:"Hulplijnen",\r
+rules_void:"Geen",\r
+rules_above:"Boven",\r
+rules_below:"Onder",\r
+rules_hsides:"Horizontale zijdes",\r
+rules_lhs:"Linkerzijkant",\r
+rules_rhs:"Rechterzijkant",\r
+rules_vsides:"Verticale zijdes",\r
+rules_box:"Box",\r
+rules_border:"Rand"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nn.table_dlg',{\r
+general_tab:"Generelt",\r
+advanced_tab:"Avansert",\r
+general_props:"Generelt",\r
+advanced_props:"Generelle eigenskapar",\r
+rowtype:"Rad i tabell",\r
+title:"Set inn / rediger tabell",\r
+width:"Breidd",\r
+height:"H\u00F8gd",\r
+cols:"Kolonner",\r
+rows:"Rader",\r
+cellspacing:"Celleavstand",\r
+cellpadding:"Cellefylling",\r
+border:"Ramme",\r
+align:"Justering",\r
+align_default:"Standard",\r
+align_left:"Venstre",\r
+align_right:"H\u00F8gre",\r
+align_middle:"Midtstilt",\r
+row_title:"Radeigenskapar",\r
+cell_title:"Celleeigenskapar",\r
+cell_type:"Celletype",\r
+valign:"Vertikal justering",\r
+align_top:"Topp",\r
+align_bottom:"Botn",\r
+bordercolor:"Rammefarge",\r
+bgcolor:"Bakgrunn",\r
+merge_cells_title:"Sl\u00E5 saman celler",\r
+id:"Id",\r
+style:"Stil",\r
+langdir:"Skriftretning",\r
+langcode:"Spr\u00E5kkode",\r
+mime:"M\u00E5let sin MIME-type",\r
+ltr:"Venstre mot h\u00F8gre",\r
+rtl:"H\u00F8gre mot venstre",\r
+bgimage:"Bakgrunnsbilete",\r
+summary:"Samandrag",\r
+td:"Data",\r
+th:"Overskrift",\r
+cell_cell:"Oppdater aktuell celle",\r
+cell_row:"Oppdater alle celler i rada",\r
+cell_all:"Oppdater alle celler i tabellen",\r
+row_row:"Oppdater aktuell rad",\r
+row_odd:"Oppdater oddetallrader",\r
+row_even:"Oppdater partallrader",\r
+row_all:"Oppdater alle rader",\r
+thead:"Tabellhovud",\r
+tbody:"Tabellkropp",\r
+tfoot:"Tabellfot",\r
+scope:"Omr\u00E5de",\r
+rowgroup:"Radgruppe",\r
+colgroup:"Kolonnegruppe",\r
+col_limit:"Du har fleire enn maksimalt tal kolonner p\u00E5 {$cols}.",\r
+row_limit:"Du har fleire enn maksimalt tal rader p\u00E5 {$rows}.",\r
+cell_limit:"Du har fleire enn maksimalt tal celler p\u00E5 {$cells}.",\r
+missing_scope:"Er du sikker p\u00E5 at du vil fortsetje utan \u00E5 angi eit omr\u00E5de for denne overskrifscella? Utan dette kan det bli vanskeleg for enkelte funksjonshemma brukarar \u00E5 forst\u00E5 innhaldet eller dataane som blir presenterte i tabellen.",\r
+caption:"Tabelloverskrift",\r
+frame:"Ramme",\r
+frame_none:"ingen",\r
+frame_groups:"grupper",\r
+frame_rows:"rader",\r
+frame_cols:"kolonnar",\r
+frame_all:"alle",\r
+rules:"Strekar",\r
+rules_void:"ingen",\r
+rules_above:"over",\r
+rules_below:"under",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"boks",\r
+rules_border:"ramme"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pl.table_dlg',{\r
+general_tab:"G\u0142\u00F3wna",\r
+advanced_tab:"Zaawansowana",\r
+general_props:"G\u0142\u00F3wne w\u0142a\u015Bciwo\u015Bci",\r
+advanced_props:"Zaawansowane w\u0142a\u015Bciwo\u015Bci",\r
+rowtype:"Row in table part",\r
+title:"Wklej/Zmie\u0144 tabel\u0119",\r
+width:"Szeroko\u015B\u0107",\r
+height:"Wysoko\u015B\u0107",\r
+cols:"Kolumny",\r
+rows:"Wiersze",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"Ramka",\r
+align:"Wyr\u00F3wnanie",\r
+align_default:"Domy\u015Blnie",\r
+align_left:"Lewy",\r
+align_right:"Prawy",\r
+align_middle:"\u015Arodek",\r
+row_title:"W\u0142a\u015Bciwo\u015Bci wiersza",\r
+cell_title:"W\u0142a\u015Bciwo\u015Bci kom\u00F3rki",\r
+cell_type:"Cell type",\r
+valign:"Pionowe wyr\u00F3wnanie",\r
+align_top:"G\u00F3ra",\r
+align_bottom:"D\u00F3\u0142",\r
+bordercolor:"Kolor ramki",\r
+bgcolor:"Kolor t\u0142a",\r
+merge_cells_title:"Po\u0142\u0105cz kom\u00F3rki",\r
+id:"Id",\r
+style:"Styl",\r
+langdir:"Language direction",\r
+langcode:"Language code",\r
+mime:"Target MIME type",\r
+ltr:"Kierunek z lewej do prawej",\r
+rtl:"Kierunek z prawej do lewej",\r
+bgimage:"Obrazek t\u0142a",\r
+summary:"Podsumowanie",\r
+td:"Data",\r
+th:"Nag\u0142owek",\r
+cell_cell:"Zmie\u0144 aktualn\u0105 kom\u00F3rk\u0119",\r
+cell_row:"Zmie\u0144 wszytkie kom\u00F3rki w wierszu",\r
+cell_all:"Zmie\u0144 wszytkie kom\u00F3rki w tabeli",\r
+row_row:"Zmie\u0144 aktualny wiersz",\r
+row_odd:"Zmie\u0144 nieparzyste wiersze",\r
+row_even:"Zmie\u0144 parzyste wiersze",\r
+row_all:"Zmie\u0144 wszystkie wiersze",\r
+thead:"Nag\u0142\u00F3wek tabeli",\r
+tbody:"Cia\u0142o tabeli",\r
+tfoot:"Stopka tabeli",\r
+scope:"Zakres",\r
+rowgroup:"Grupa wierszy",\r
+colgroup:"Grupa kolumn",\r
+col_limit:"Przekroczy\u0142e\u015B maksymaln\u0105 liczb\u0119 kolumn of {$cols}.",\r
+row_limit:"Przekroczy\u0142e\u015B maksymaln\u0105 liczb\u0119 kolumn {$rows}.",\r
+cell_limit:"Przekroczy\u0142e\u015B maksymaln\u0105 liczb\u0119 cells of {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Nag\u0142\u00F3wek tabeli",\r
+frame:"Ramka",\r
+frame_none:"brak",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"wszystkie",\r
+rules:"Prowadnice",\r
+rules_void:"void",\r
+rules_above:"nad",\r
+rules_below:"pod",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pt.table_dlg',{\r
+general_tab:"Geral",\r
+advanced_tab:"Avan\u00E7ado",\r
+general_props:"Propriedades gerais",\r
+advanced_props:"Propriedades avan\u00E7adas",\r
+rowtype:"Linha na parte da tabela",\r
+title:"Inserir/modificar tabela",\r
+width:"Largura",\r
+height:"Altura",\r
+cols:"Cols",\r
+rows:"Rows",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"Borda",\r
+align:"Alinhamento",\r
+align_default:"Padr\u00E3o",\r
+align_left:"Esquerda",\r
+align_right:"Direita",\r
+align_middle:"Centro",\r
+row_title:"Propriedades de linhas",\r
+cell_title:"Propriedades de c\u00E9lulas",\r
+cell_type:"Tipo de c\u00E9lula",\r
+valign:"Alinhamento vertical",\r
+align_top:"Topo",\r
+align_bottom:"Embaixo",\r
+bordercolor:"Cor da borda",\r
+bgcolor:"Cor de fundo",\r
+merge_cells_title:"Unir c\u00E9lulas",\r
+id:"Id",\r
+style:"Estilo",\r
+langdir:"Dire\u00E7\u00E3o do texto",\r
+langcode:"C\u00F3digo da linguagem",\r
+mime:"MIME alvo",\r
+ltr:"Esquerda para direita",\r
+rtl:"Direita para esquerda",\r
+bgimage:"Imagem de fundo",\r
+summary:"Sum\u00E1rio",\r
+td:"Dados",\r
+th:"Campo",\r
+cell_cell:"Atualizar esta c\u00E9lula",\r
+cell_row:"Atualizar todas as c\u00E9lulas na linha",\r
+cell_all:"Atualizar todas as c\u00E9lulas na tabela",\r
+row_row:"Atualizar esta linha",\r
+row_odd:"Atualizar linhas \u00EDmpares",\r
+row_even:"Atualizar linhas pares",\r
+row_all:"Atualizar todas as linhas",\r
+thead:"Topo da tabela",\r
+tbody:"Corpo da tabela",\r
+tfoot:"Rodap\u00E9 da tabela",\r
+scope:"Alcance",\r
+rowgroup:"Grupo linhas",\r
+colgroup:"Grupo colunas",\r
+col_limit:"Voc\u00EA excedeu o n\u00FAmero m\u00E1ximo de colunas de {$cols}.",\r
+row_limit:"Voc\u00EA excedeu o n\u00FAmero m\u00E1ximo de linhas de {$rows}.",\r
+cell_limit:"Voc\u00EA excedeu o n\u00FAmero m\u00E1ximo de c\u00E9lulas de {$cells}.",\r
+missing_scope:"Tem certeza de que quer continuar sem especificar um escopo para esta c\u00E9lula? (Isso poder\u00E1 causar dificuldades a usu\u00E1rios deficientes)",\r
+caption:"T\u00EDtulo da tabela",\r
+frame:"Frame",\r
+frame_none:"Nenhum",\r
+frame_groups:"Grupos",\r
+frame_rows:"Linhas",\r
+frame_cols:"colunas",\r
+frame_all:"Todos",\r
+rules:"Regras",\r
+rules_void:"Void",\r
+rules_above:"Acima",\r
+rules_below:"Abaixo",\r
+rules_hsides:"Hsides",\r
+rules_lhs:"Lhs",\r
+rules_rhs:"Rhs",\r
+rules_vsides:"Vsides",\r
+rules_box:"Box",\r
+rules_border:"Borda"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ro.table_dlg',{\r
+general_tab:"General",\r
+advanced_tab:"Avansat",\r
+general_props:"Propriet\u0103\u0163i generale",\r
+advanced_props:"Propriet\u0103\u0163i avansate",\r
+rowtype:"R\u0103nd \u00EEn tabel",\r
+title:"Inserare/modificare tabel",\r
+width:"L\u0103\u0163ime",\r
+height:"\u00CEn\u0103l\u0163ime",\r
+cols:"Coloane",\r
+rows:"R\u00E2nduri",\r
+cellspacing:"Spa\u0163iu \u00EEntre celule",\r
+cellpadding:"Spa\u0163iu \u00EEn celule",\r
+border:"Bordur\u0103",\r
+align:"Aliniere",\r
+align_default:"Implicit\u0103",\r
+align_left:"St\u00E2nga",\r
+align_right:"Dreapta",\r
+align_middle:"Centru",\r
+row_title:"Propriet\u0103\u0163i r\u00E2nd",\r
+cell_title:"Propriet\u0103\u0163i celul\u0103",\r
+cell_type:"Tip celul\u0103",\r
+valign:"Aliniere vertical\u0103",\r
+align_top:"Sus",\r
+align_bottom:"Jos",\r
+bordercolor:"Culoare bordur\u0103",\r
+bgcolor:"Culoare fundal",\r
+merge_cells_title:"Uni\u0163i celulele",\r
+id:"Id",\r
+style:"Stil",\r
+langdir:"Direc\u0163ie limb\u0103",\r
+langcode:"Cod limb\u0103",\r
+mime:"MIME type \u0163int\u0103",\r
+ltr:"De la st\u00E2nga la dreapta",\r
+rtl:"De la dreapta la st\u00E2nga",\r
+bgimage:"Imagine de fundal",\r
+summary:"Sumar",\r
+td:"Date",\r
+th:"Antet",\r
+cell_cell:"Actualizeaz\u0103 celula curent\u0103",\r
+cell_row:"Actualizeaz\u0103 toate celulele din r\u00E2nd",\r
+cell_all:"Actualizeaz\u0103 toate celulele din tabel",\r
+row_row:"Actualizeaz\u0103 r\u00E2nd curent",\r
+row_odd:"Actualizeaz\u0103 r\u00E2ndurile impare",\r
+row_even:"Actualizeaz\u0103 r\u00E2ndurile pare",\r
+row_all:"Actualizeaz\u0103 toate r\u00E2ndurile",\r
+thead:"Antet tabel",\r
+tbody:"Corp tabel",\r
+tfoot:"Subsol tabel",\r
+scope:"Scop",\r
+rowgroup:"Grupeaz\u0103 r\u00E2nduri",\r
+colgroup:"Grupeaz\u0103 celule",\r
+col_limit:"A\u0163i dep\u0103\u015Fit num\u0103rul maxim de coloane: {$cols}.",\r
+row_limit:"A\u0163i dep\u0103\u015Fit num\u0103rul maxim de r\u00E2nduri {$rows}.",\r
+cell_limit:"A\u0163i dep\u0103\u015Fit num\u0103rul maxim de celule {$cells}.",\r
+missing_scope:"Sigur dori\u0163i s\u0103 l\u0103sa\u0163i scopul necompletat? ",\r
+caption:"Titlu tabel",\r
+frame:"Frame",\r
+frame_none:"niciuna",\r
+frame_groups:"grupuri",\r
+frame_rows:"r\u00E2nduri",\r
+frame_cols:"coloane",\r
+frame_all:"toate",\r
+rules:"Reguli",\r
+rules_void:"gol",\r
+rules_above:"deasupra",\r
+rules_below:"dedesubt",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ru.table_dlg',{\r
+general_tab:"\u041E\u0431\u0449\u0438\u0435",\r
+advanced_tab:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435",\r
+general_props:"\u041E\u0431\u0449\u0438\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430",\r
+advanced_props:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430",\r
+rowtype:"\u0421\u0442\u0440\u043E\u043A\u0430 \u0432 \u0447\u0430\u0441\u0442\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u044B",\r
+title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0446\u0443",\r
+width:"\u0428\u0438\u0440\u0438\u043D\u0430",\r
+height:"\u0412\u044B\u0441\u043E\u0442\u0430",\r
+cols:"\u0421\u0442\u043E\u043B\u0431\u0446\u044B",\r
+rows:"\u0421\u0442\u0440\u043E\u043A\u0438",\r
+cellspacing:"\u0420\u0430\u0441\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043C\u0435\u0436\u0434\u0443 \u044F\u0447\u0435\u0439\u043A\u0430\u043C\u0438",\r
+cellpadding:"\u041D\u0430\u0431\u0438\u0432\u043A\u0430 \u0432 \u044F\u0447\u0435\u0439\u043A\u0430\u0445",\r
+border:"\u0413\u0440\u0430\u043D\u0438\u0446\u0430",\r
+align:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435",\r
+align_default:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",\r
+align_left:"\u0412\u043B\u0435\u0432\u043E",\r
+align_right:"\u0412\u043F\u0440\u0430\u0432\u043E",\r
+align_middle:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+row_title:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u043E\u043A\u0438",\r
+cell_title:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u044F\u0447\u0435\u0439\u043A\u0438",\r
+cell_type:"\u0422\u0438\u043F \u044F\u0447\u0435\u0439\u043A\u0438",\r
+valign:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435",\r
+align_top:"\u041F\u043E \u0432\u0435\u0440\u0445\u0443",\r
+align_bottom:"\u041F\u043E \u043D\u0438\u0437\u0443",\r
+bordercolor:"\u0426\u0432\u0435\u0442 \u0433\u0440\u0430\u043D\u0438\u0446\u044B",\r
+bgcolor:"\u0426\u0432\u0435\u0442 \u0444\u043E\u043D\u0430",\r
+merge_cells_title:"\u0421\u043B\u0438\u0442\u044C \u044F\u0447\u0435\u0439\u043A\u0438",\r
+id:"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440",\r
+style:"\u0421\u0442\u0438\u043B\u044C",\r
+langdir:"\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u044F\u0437\u044B\u043A\u0430",\r
+langcode:"\u041A\u043E\u0434 \u044F\u0437\u044B\u043A\u0430",\r
+mime:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 MIME-\u0442\u0438\u043F",\r
+ltr:"\u0421\u043B\u0435\u0432\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043E",\r
+rtl:"\u0421\u043F\u0440\u0430\u0432\u0430 \u043D\u0430\u043B\u0435\u0432\u043E",\r
+bgimage:"\u0424\u043E\u043D\u043E\u0432\u043E\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435",\r
+summary:"\u0421\u0432\u043E\u0434\u043A\u0430",\r
+td:"\u0414\u0430\u043D\u043D\u044B\u0435",\r
+th:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A",\r
+cell_cell:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u044F\u0447\u0435\u0439\u043A\u0443",\r
+cell_row:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u044F\u0447\u0435\u0439\u043A\u0438 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435",\r
+cell_all:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u044F\u0447\u0435\u0439\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435",\r
+row_row:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443",\r
+row_odd:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043D\u0435\u0447\u0451\u0442\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435",\r
+row_even:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0447\u0451\u0442\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435",\r
+row_all:"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435",\r
+thead:"\u0412\u0435\u0440\u0445\u043D\u044F\u044F \u0447\u0430\u0441\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0446\u044B",\r
+tbody:"\u041E\u0441\u043D\u043E\u0432\u043D\u0430\u044F \u0447\u0430\u0441\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0446\u044B",\r
+tfoot:"\u041D\u0438\u0436\u043D\u044F\u044F \u0447\u0430\u0441\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0446\u044B",\r
+scope:"\u041F\u0440\u0435\u0434\u0435\u043B\u044B",\r
+rowgroup:"\u0413\u0440\u0443\u043F\u043F\u0430 \u0441\u0442\u0440\u043E\u043A",\r
+colgroup:"\u0413\u0440\u0443\u043F\u043F\u0430 \u0441\u0442\u043E\u043B\u0431\u0446\u043E\u0432",\r
+col_limit:"\u0412\u044B \u043F\u0440\u0435\u0432\u044B\u0441\u0438\u043B\u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0432 {$cols} \u0441\u0442\u043E\u043B\u0431\u0446\u043E\u0432.",\r
+row_limit:"\u0412\u044B \u043F\u0440\u0435\u0432\u044B\u0441\u0438\u043B\u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0432 {$rows} \u0441\u0442\u0440\u043E\u043A.",\r
+cell_limit:"\u0412\u044B \u043F\u0440\u0435\u0432\u044B\u0441\u0438\u043B\u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0432 {$cells} \u044F\u0447\u0435\u0435\u043A.",\r
+missing_scope:"\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0431\u0435\u0437 \u0443\u043A\u0430\u0437\u0430\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u0435\u043B\u043E\u0432 \u044D\u0442\u043E\u0439 \u044F\u0447\u0435\u0439\u043A\u0438 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430? \u0411\u0435\u0437 \u044D\u0442\u043E\u0433\u043E \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u043C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F\u043C \u0441 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u043D\u043E\u0439 \u0442\u0440\u0443\u0434\u043E\u0441\u043F\u043E\u0441\u043E\u0431\u043D\u043E\u0441\u0442\u044C\u044E \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0442\u0440\u0443\u0434\u043D\u043E \u043F\u043E\u043D\u044F\u0442\u044C \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435 \u0438\u043B\u0438 \u0434\u0430\u043D\u043D\u044B\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B.",\r
+caption:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0442\u0430\u0431\u043B\u0438\u0446\u044B",\r
+frame:"\u0420\u0430\u043C\u043A\u0430",\r
+frame_none:"\u043D\u0438\u0447\u0435\u0433\u043E",\r
+frame_groups:"\u0433\u0440\u0443\u043F\u043F\u044B",\r
+frame_rows:"\u0441\u0442\u0440\u043E\u043A\u0438",\r
+frame_cols:"\u0441\u0442\u043E\u043B\u0431\u0446\u044B",\r
+frame_all:"\u0432\u0441\u0451",\r
+rules:"\u041B\u0438\u043D\u0435\u0439\u043A\u0438",\r
+rules_void:"\u043D\u0438\u0447\u0442\u043E",\r
+rules_above:"\u0441\u0432\u0435\u0440\u0445\u0443",\r
+rules_below:"\u0441\u043D\u0438\u0437\u0443",\r
+rules_hsides:"\u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B",\r
+rules_lhs:"\u043B\u0435\u0432\u044B\u0435 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B",\r
+rules_rhs:"\u043F\u0440\u0430\u0432\u044B\u0435 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B",\r
+rules_vsides:"\u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0435 \u0441\u0442\u043E\u0440\u043E\u043D\u044B",\r
+rules_box:"\u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440",\r
+rules_border:"\u0433\u0440\u0430\u043D\u0438\u0446\u0430"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('si.table_dlg',{\r
+general_tab:"General",\r
+advanced_tab:"Advanced",\r
+general_props:"General properties",\r
+advanced_props:"Advanced properties",\r
+rowtype:"Row in table part",\r
+title:"Insert/Modify table",\r
+width:"Width",\r
+height:"Height",\r
+cols:"Cols",\r
+rows:"Rows",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"Border",\r
+align:"Alignment",\r
+align_default:"Default",\r
+align_left:"Left",\r
+align_right:"Right",\r
+align_middle:"Center",\r
+row_title:"Table row properties",\r
+cell_title:"Table cell properties",\r
+cell_type:"Cell type",\r
+valign:"Vertical alignment",\r
+align_top:"Top",\r
+align_bottom:"Bottom",\r
+bordercolor:"Border color",\r
+bgcolor:"Background color",\r
+merge_cells_title:"Merge table cells",\r
+id:"Id",\r
+style:"Style",\r
+langdir:"Language direction",\r
+langcode:"Language code",\r
+mime:"Target MIME type",\r
+ltr:"Left to right",\r
+rtl:"Right to left",\r
+bgimage:"Background image",\r
+summary:"Summary",\r
+td:"Data",\r
+th:"Header",\r
+cell_cell:"Update current cell",\r
+cell_row:"Update all cells in row",\r
+cell_all:"Update all cells in table",\r
+row_row:"Update current row",\r
+row_odd:"Update odd rows in table",\r
+row_even:"Update even rows in table",\r
+row_all:"Update all rows in table",\r
+thead:"Table Head",\r
+tbody:"Table Body",\r
+tfoot:"Table Foot",\r
+scope:"Scope",\r
+rowgroup:"Row Group",\r
+colgroup:"Col Group",\r
+col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
+row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
+cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Table caption",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sk.table_dlg',{\r
+general_tab:"Hlavn\u00E9",\r
+advanced_tab:"Roz\u0161\u00EDren\u00E9",\r
+general_props:"Hlavn\u00E9 vlastnosti",\r
+advanced_props:"Roz\u0161\u00EDren\u00E9 vlastnosti",\r
+rowtype:"Row in table part",\r
+title:"Vlo\u017Ei\u0165/Upravi\u0165 tabu\u013Eku",\r
+width:"\u0160\u00EDrka",\r
+height:"V\u00FD\u0161ka",\r
+cols:"St\u013Apce",\r
+rows:"Riadky",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"R\u00E1m\u010Dek",\r
+align:"Poloha",\r
+align_default:"Predvolene",\r
+align_left:"V\u013Eavo",\r
+align_right:"Vpravo",\r
+align_middle:"Na stred",\r
+row_title:"Vlastnosti riadkov tabu\u013Eky",\r
+cell_title:"Vlastnosti buniek tabu\u013Eky",\r
+cell_type:"Tyb bunky",\r
+valign:"Vertik\u00E1lna poloha",\r
+align_top:"Hore",\r
+align_bottom:"Dolu",\r
+bordercolor:"Farba or\u00E1movania",\r
+bgcolor:"Farba pozadia",\r
+merge_cells_title:"Zl\u00FA\u010Di\u0165 bunky tabu\u013Eky",\r
+id:"ID",\r
+style:"CSS \u0160t\u00FDl",\r
+langdir:"Smer textu",\r
+langcode:"K\u00F3d jazyka",\r
+mime:"Cie\u013Eov\u00FD typ MIME",\r
+ltr:"Z \u013Eava do prava",\r
+rtl:"Z prava do \u013Eava",\r
+bgimage:"Obr\u00E1zok pozadia",\r
+summary:"Popis tabu\u013Eky",\r
+td:"D\u00E1ta",\r
+th:"Hlav\u010Dka",\r
+cell_cell:"Aktualizova\u0165 aktu\u00E1lnu bunku",\r
+cell_row:"Aktualizova\u0165 v\u0161etky bunky v riadku",\r
+cell_all:"Aktualizova\u0165 v\u0161etky bunky v tebu\u013Eke",\r
+row_row:"Aktualizova\u0165 aktu\u00E1lny riadok",\r
+row_odd:"Aktualizova\u0165 odd rows in table",\r
+row_even:"Aktualizova\u0165 nep\u00E1rne riadky v tabu\u013Eke",\r
+row_all:"Aktualizova\u0165 v\u0161etky riadky v tabu\u013Eke",\r
+thead:"Hlavi\u010Dka tabu\u013Eky",\r
+tbody:"Telo tabu\u013Eky",\r
+tfoot:"P\u00E4ta tabu\u013Eky",\r
+scope:"Scope",\r
+rowgroup:"Skupina riadkov",\r
+colgroup:"Skupina st\u013Apcov",\r
+col_limit:"Bol presiahnut\u00FD maxim\u00E1lny po\u010Det st\u013Apcov {$cols}.",\r
+row_limit:"Bol presiahnut\u00FD maxim\u00E1lny po\u010Det riadkov {$rows}.",\r
+cell_limit:"Bol presiahnut\u00FD maxim\u00E1lny po\u010Det buniek {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Table caption",\r
+frame:"R\u00E1m\u010Dek",\r
+frame_none:"\u017Eiadne",\r
+frame_groups:"groups",\r
+frame_rows:"riadky",\r
+frame_cols:"st\u013Apce",\r
+frame_all:"v\u0161etky",\r
+rules:"Pravidl\u00E1",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"okraj"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sl.table_dlg',{\r
+general_tab:"Splo\u0161no",\r
+advanced_tab:"Napredno",\r
+general_props:"Splo\u0161ne lastnosti",\r
+advanced_props:"Napredne lastnosti",\r
+rowtype:"Vrstica v tabeli",\r
+title:"Vstavi/posodobi tabelo",\r
+width:"\u0160irina",\r
+height:"Vi\u0161ina",\r
+cols:"Stolpcev",\r
+rows:"Vrstic",\r
+cellspacing:"Razmik celic",\r
+cellpadding:"Podlaganje celic",\r
+border:"Obroba",\r
+align:"Poravnava",\r
+align_default:"Privzeto",\r
+align_left:"Levo",\r
+align_right:"Desno",\r
+align_middle:"Sredina",\r
+row_title:"Lastnosti vrstice",\r
+cell_title:"Lastnosti celice",\r
+cell_type:"Tip celice",\r
+valign:"Navpi\u010Dna poravnava",\r
+align_top:"Vrh",\r
+align_bottom:"Dno",\r
+bordercolor:"Barva obrobe",\r
+bgcolor:"Barva ozadja",\r
+merge_cells_title:"Spoji celice",\r
+id:"Oznaka",\r
+style:"Slog",\r
+langdir:"Smer pisave",\r
+langcode:"Koda jezika",\r
+mime:"Ciljni tip MIME",\r
+ltr:"Od leve proti desni",\r
+rtl:"Od desne proti levi",\r
+bgimage:"Slika ozadja",\r
+summary:"Povzetek",\r
+td:"Podatek",\r
+th:"Glava",\r
+cell_cell:"Posodobi trenutno celico",\r
+cell_row:"Posodobi vse celice vrstice",\r
+cell_all:"Posodobi vse celice tabele",\r
+row_row:"Posodobi trenutno vrstico",\r
+row_odd:"Posodobi lihe vrstice",\r
+row_even:"Posodobi sode vrstice",\r
+row_all:"Posodobi vse vrstice",\r
+thead:"Glava tabele",\r
+tbody:"Telo tabele",\r
+tfoot:"Noga tabele",\r
+scope:"Doseg",\r
+rowgroup:"Skup. vrst.",\r
+colgroup:"Skup. stolp.",\r
+col_limit:"Presegli ste dovoljeno \u0161tevilo stolpcev: {$cols}.",\r
+row_limit:"Presegli ste dovoljeno \u0161tevilo vrstic: {$rows}.",\r
+cell_limit:"Presegli ste dovoljeno \u0161tevilo celic: {$cells}.",\r
+missing_scope:"Ste prepri\u010Dani, da \u017Eelite nadaljevati brez dolo\u010Denega dosega? Brez dosega je razumevanje tabele lahko ote\u017Eeno ljudem s slab\u0161o zaznavo!",\r
+caption:"Opis tabele",\r
+frame:"Okvir",\r
+frame_none:"brez",\r
+frame_groups:"skupine",\r
+frame_rows:"vrstice",\r
+frame_cols:"stolpci",\r
+frame_all:"vse",\r
+rules:"Pravila",\r
+rules_void:"prazno",\r
+rules_above:"nad",\r
+rules_below:"pod",\r
+rules_hsides:"v-strani",\r
+rules_lhs:"l-strani",\r
+rules_rhs:"d-strani",\r
+rules_vsides:"n-strani",\r
+rules_box:"\u0161katla",\r
+rules_border:"obroba"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sr.table_dlg',{\r
+general_tab:"Osnovno",\r
+advanced_tab:"Napredno",\r
+general_props:"Osnovna svojstva",\r
+advanced_props:"Napredna svojstva",\r
+rowtype:"Row in table part",\r
+title:"Umetni/uredi tablicu",\r
+width:"\u0160irina",\r
+height:"Visina",\r
+cols:"Stupaca",\r
+rows:"Redaka",\r
+cellspacing:"Razmak \u0107elija",\r
+cellpadding:"Dopuna \u0107elije",\r
+border:"Obrub",\r
+align:"Poravnavanje",\r
+align_default:"Zadano",\r
+align_left:"Levo",\r
+align_right:"Desno",\r
+align_middle:"Sredina",\r
+row_title:"Svojstva retka",\r
+cell_title:"Svojstva \u0107elije",\r
+cell_type:"Tip \u0107elije",\r
+valign:"Okomito poravnavanje",\r
+align_top:"Vrh",\r
+align_bottom:"Dno",\r
+bordercolor:"Boja obruba",\r
+bgcolor:"Background color",\r
+merge_cells_title:"Spoji \u0107elije",\r
+id:"Id",\r
+style:"Stil",\r
+langdir:"Smjer jezika",\r
+langcode:"Kod jezika",\r
+mime:"MIME tip",\r
+ltr:"S leva na desno",\r
+rtl:"S desna na levo",\r
+bgimage:"Slika pozadine",\r
+summary:"Sa\u017Eetak",\r
+td:"Podatkovna",\r
+th:"Zaglavlje",\r
+cell_cell:"Primjeni na odabranu \u0107eliju",\r
+cell_row:"Primjeni na sve \u0107elije u retku",\r
+cell_all:"Primjeni na sve \u0107elije u tablici",\r
+row_row:"Primjeni na odabrani redak",\r
+row_odd:"Primjeni na neparne retke u tablici",\r
+row_even:"Primjeni na parne retke u tablici",\r
+row_all:"Primjeni na sve retke u tablici",\r
+thead:"Zaglavlje tablice",\r
+tbody:"Telo tablice",\r
+tfoot:"Podno\u017Eje tablice",\r
+scope:"Domet",\r
+rowgroup:"Grupa redaka",\r
+colgroup:"Grupa stupaca",\r
+col_limit:"Prema\u0161ili ste maksimalni broj stupaca ({$cols}).",\r
+row_limit:"Prema\u0161ili ste maksimalni broj redaka ({$rows}).",\r
+cell_limit:"Prema\u0161ili ste maksimalni broj \u0107elija ({$cells}).",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Opis tablice",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sv.table_dlg',{\r
+general_tab:"Generellt",\r
+advanced_tab:"Avancerat",\r
+general_props:"Generella inst\u00E4llningar",\r
+advanced_props:"Avancerade inst\u00E4llningar",\r
+rowtype:"Radtyp",\r
+title:"Infoga/redigera ny tabell",\r
+width:"Bredd",\r
+height:"H\u00F6jd",\r
+cols:"Kolumner",\r
+rows:"Rader",\r
+cellspacing:"Cellspacing",\r
+cellpadding:"Cellpadding",\r
+border:"Ram",\r
+align:"Justering",\r
+align_default:"Ingen",\r
+align_left:"V\u00E4nster",\r
+align_right:"H\u00F6ger",\r
+align_middle:"Mitten",\r
+row_title:"Tabellradsinst\u00E4llningar",\r
+cell_title:"Tabellcellsinst\u00E4llningar",\r
+cell_type:"Celltyp",\r
+valign:"Vertikal justering",\r
+align_top:"Toppen",\r
+align_bottom:"Botten",\r
+bordercolor:"Ramf\u00E4rg",\r
+bgcolor:"Bakgrundsf\u00E4rg",\r
+merge_cells_title:"Sammanfoga celler",\r
+id:"Id",\r
+style:"Stil",\r
+langdir:"Skriftriktning",\r
+langcode:"Spr\u00E5kkod",\r
+ltr:"V\u00E4nster till h\u00F6ger",\r
+rtl:"H\u00F6ger till v\u00E4nster",\r
+bgimage:"Bakgrundsbild",\r
+summary:"Sammanfattning",\r
+td:"Data",\r
+th:"Huvud",\r
+cell_cell:"Uppdatera nuvarande cell",\r
+cell_row:"Uppdatera alla celler i raden",\r
+cell_all:"Uppdatera alla celler i tabellen",\r
+row_row:"Uppdatera nuvarande rad",\r
+row_odd:"Uppdatera udda rader i tabellen",\r
+row_even:"Uppdatera j\u00E4mna rader i tabellen",\r
+row_all:"Uppdatera alla rader i tabellen",\r
+thead:"tabellhuvud",\r
+tbody:"tabellkropp",\r
+tfoot:"tabellfot",\r
+scope:"Omfattning",\r
+rowgroup:"Radgrupp",\r
+colgroup:"Kolumngrupp",\r
+col_limit:"Du kan inte ange fler \u00E4n {$cols} kolumner.",\r
+row_limit:"Du kan inte ange fler \u00E4n {$rows} rader.",\r
+cell_limit:"Du kan inte skapa en tabell med fler \u00E4n {$cells} celler.",\r
+missing_scope:"\u00C4r du s\u00E4ker p\u00E5 att du vill forts\u00E4tta utan att ange en omfattning, denna underl\u00E4ttar f\u00F6r icke-grafiska webbl\u00E4sare.",\r
+caption:"\u00D6verskrift",\r
+frame:"Ram",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Regler",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('tr.table_dlg',{\r
+general_tab:"Genel",\r
+advanced_tab:"Geli\u015Fmi\u015F",\r
+general_props:"Genel \u00F6zellikler",\r
+advanced_props:"Geli\u015Fmi\u015F \u00F6zellikler",\r
+rowtype:"Tablo par\u00E7as\u0131ndaki sat\u0131r",\r
+title:"Tablo ekle/d\u00FCzenle",\r
+width:"Geni\u015Flik",\r
+height:"Y\u00FCkseklik",\r
+cols:"Kolonlar",\r
+rows:"Sat\u0131rlar",\r
+cellspacing:"H\u00FCcre aralama",\r
+cellpadding:"H\u00FCcre dolgusu",\r
+border:"Kenarl\u0131k",\r
+align:"Hizalama",\r
+align_default:"Varsay\u0131lan",\r
+align_left:"Sola",\r
+align_right:"Sa\u011Fa",\r
+align_middle:"Ortala",\r
+row_title:"Tablo sat\u0131r \u00F6zellikleri",\r
+cell_title:"Tablo h\u00FCcre \u00F6zellikleri",\r
+cell_type:"H\u00FCcre tipi",\r
+valign:"Dikey hizalama",\r
+align_top:"\u00DCst",\r
+align_bottom:"Alt",\r
+bordercolor:"Kenarl\u0131k rengi",\r
+bgcolor:"Arkaplan rengi",\r
+merge_cells_title:"Tablo h\u00FCcrelerini birle\u015Ftir",\r
+id:"Id",\r
+style:"Stil",\r
+langdir:"Dil y\u00F6nelimi",\r
+langcode:"Dil kodu",\r
+mime:"Hedef MIME tipi",\r
+ltr:"Soldan sa\u011Fa",\r
+rtl:"Sa\u011Fdan sola",\r
+bgimage:"Arkaplan resmi",\r
+summary:"\u00D6zet",\r
+td:"Veri",\r
+th:"Ba\u015Fl\u0131k",\r
+cell_cell:"Se\u00E7ili h\u00FCcreyi g\u00FCncelle",\r
+cell_row:"Sat\u0131rdaki t\u00FCm h\u00FCcreleri g\u00FCncelle",\r
+cell_all:"Tablodaki t\u00FCm h\u00FCcreleri g\u00FCncelle",\r
+row_row:"Se\u00E7ili sat\u0131r\u0131 g\u00FCncelle",\r
+row_odd:"Tablodaki tek nolu sat\u0131rlar\u0131 g\u00FCncelle",\r
+row_even:"Tablodaki \u00E7ift nolu sat\u0131rlar\u0131 g\u00FCncele",\r
+row_all:"Tablodaki t\u00FCm sat\u0131rlar\u0131 g\u00FCncelle",\r
+thead:"Tablo Ba\u015Fl\u0131\u011F\u0131",\r
+tbody:"Table G\u00F6vdesi",\r
+tfoot:"Table Altl\u0131\u011F\u0131",\r
+scope:"Kapsam",\r
+rowgroup:"Sat\u0131r Grubu",\r
+colgroup:"Kolon Grubu",\r
+col_limit:"Maksimum kolon say\u0131s\u0131 olan {$cols} de\u011Ferini a\u015Ft\u0131n\u0131z.",\r
+row_limit:"Maksimum sat\u0131r say\u0131s\u0131 olan {$rows} de\u011Ferini a\u015Ft\u0131n\u0131z.",\r
+cell_limit:"Maksimum h\u00FCcre say\u0131s\u0131 olan {$cells} de\u011Ferini a\u015Ft\u0131n\u0131z.",\r
+missing_scope:"Bu tablo ba\u015Fl\u0131k h\u00FCcresi i\u00E7in bir kapsam belirlemeden devam etmek istedi\u011Finizden emin misiniz? Bu de\u011Fer olmadan, engelli kullan\u0131c\u0131lar\u0131n tabloda g\u00F6r\u00FCnt\u00FClenen i\u00E7eri\u011Fi anlamas\u0131 m\u00FCmk\u00FCn olmayabilir.",\r
+caption:"Tablo ba\u015Fl\u0131\u011F\u0131",\r
+frame:"\u00C7er\u00E7eve",\r
+frame_none:"hi\u00E7biri",\r
+frame_groups:"gruplar",\r
+frame_rows:"sat\u0131rlar",\r
+frame_cols:"kolonlar",\r
+frame_all:"t\u00FCm\u00FC",\r
+rules:"\u00C7izgiler",\r
+rules_void:"yok",\r
+rules_above:"\u00FCst\u00FCnde",\r
+rules_below:"alt\u0131nda",\r
+rules_hsides:"solsa\u011F",\r
+rules_lhs:"soltaraf",\r
+rules_rhs:"sa\u011Ftaraf",\r
+rules_vsides:"\u00FCstalt",\r
+rules_box:"kutu",\r
+rules_border:"kenarl\u0131k"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('uk.table_dlg',{\r
+general_tab:"\u0417\u0430\u0433\u0430\u043B\u044C\u043D\u0435",\r
+advanced_tab:"\u0414\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u043E",\r
+general_props:"\u0417\u0430\u0433\u0430\u043B\u044C\u043D\u0456 \u0432\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456",\r
+advanced_props:"\u0420\u043E\u0437\u0448\u0438\u0440\u0435\u043D\u0456 \u0432\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456",\r
+rowtype:"Row in table part",\r
+title:"\u0414\u043E\u0434\u0430\u0432\u0430\u043D\u043D\u044F/\u0417\u043C\u0456\u043D\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+width:"\u0428\u0438\u0440\u0438\u043D\u0430",\r
+height:"\u0412\u0438\u0441\u043E\u0442\u0430",\r
+cols:"\u0421\u0442\u043E\u043B\u0431\u0446\u044B",\r
+rows:"\u0421\u0442\u0440\u043E\u043A\u0438",\r
+cellspacing:"\u0412\u0456\u0434\u0441\u0442\u0430\u043D\u044C \u043C\u0456\u0436 \u043A\u043E\u043C\u0456\u0440\u043A\u0430\u043C\u0438",\r
+cellpadding:"\u0412\u0456\u0434\u0441\u0442\u0443\u043F\u0438 \u0443 \u043A\u043E\u043C\u0456\u0440\u043A\u0430\u0445",\r
+border:"\u0413\u0440\u0430\u043D\u0438\u0446\u044F",\r
+align:"\u0412\u0438\u0440\u0456\u0432\u043D\u044E\u0432\u0430\u043D\u043D\u044F",\r
+align_default:"\u0417\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0430\u043D\u043D\u044F\u043C",\r
+align_left:"\u041F\u043E \u043B\u0456\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+align_right:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+align_middle:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+row_title:"\u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 \u0440\u044F\u0434\u043A\u0443 \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+cell_title:"\u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 \u043A\u043E\u043C\u0456\u0440\u043A\u0438 \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+cell_type:"\u0422\u0438\u043F \u043A\u043E\u043C\u0456\u0440\u043A\u0438",\r
+valign:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435",\r
+align_top:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u0435\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+align_bottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u044C\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+bordercolor:"\u043A\u043E\u043B\u0456\u0440 \u0433\u0440\u0430\u043D\u0438\u0446\u044B",\r
+bgcolor:"\u043A\u043E\u043B\u0456\u0440 \u0444\u043E\u043D\u0443",\r
+merge_cells_title:"\u041E\u0431'\u0454\u0434\u043D\u0430\u0442\u0438 \u043A\u043E\u043C\u0456\u0440\u043A\u0438",\r
+id:"Id",\r
+style:"\u0421\u0442\u0438\u043B\u044C",\r
+langdir:"\u041D\u0430\u043F\u0440\u044F\u043C \u043C\u043E\u0432\u0438",\r
+langcode:"\u041A\u043E\u0434 \u043C\u043E\u0432\u0438",\r
+mime:"Target MIME-\u0442\u0438\u043F",\r
+ltr:"\u0417\u043B\u0456\u0432\u0430 \u043F\u0440\u0430\u0432\u043E\u0440\u0443\u0447",\r
+rtl:"\u0421\u043F\u0440\u0430\u0432\u0430 \u043B\u0456\u0432\u043E\u0440\u0443\u0447",\r
+bgimage:"\u0424\u043E\u043D\u043E\u0432\u0435 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",\r
+summary:"\u0417\u0430\u0433\u0430\u043B\u044C\u043D\u0435",\r
+td:"\u0414\u0430\u043D\u043D\u0456",\r
+th:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A",\r
+cell_cell:"\u041E\u043D\u043E\u0432\u0438\u0442\u0438 \u043F\u043E\u0442\u043E\u0447\u043D\u0443 \u043A\u043E\u043C\u0456\u0440\u043A\u0443",\r
+cell_row:"\u041E\u043D\u043E\u0432\u0438\u0442\u0438 \u0432\u0441\u0456 \u043A\u043E\u043C\u0456\u0440\u043A\u0438 \u0432 \u0440\u044F\u0434\u043A\u0443",\r
+cell_all:"\u041E\u043D\u043E\u0432\u0438\u0442\u0438 \u0432\u0441\u0456 \u043A\u043E\u043C\u0456\u0440\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+row_row:"\u041E\u043D\u043E\u0432\u0438\u0442\u0438 \u043F\u043E\u0442\u043E\u0447\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A",\r
+row_odd:"\u041E\u043D\u043E\u0432\u0438\u0442\u0438 \u043D\u0435\u043F\u0430\u0440\u043D\u0456 \u0440\u044F\u0434\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446",\r
+row_even:"\u041E\u043D\u043E\u0432\u0438\u0442\u0438 \u043F\u0430\u0440\u043D\u0456 \u0440\u044F\u0434\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+row_all:"\u043D\u043E\u0432\u0438\u0442\u0438 \u0432\u0441\u0456 \u0440\u044F\u0434\u043A\u0438 \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+thead:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+tbody:"\u0422\u0456\u043B\u043E \u0442\u0430\u0431\u043B\u0438\u0446\u0456",\r
+tfoot:"\u041D\u0438\u0436\u043D\u044F \u0447\u0430\u0441\u0442\u0441\u0438\u043D\u0430",\r
+scope:"Scope",\r
+rowgroup:"Row Group",\r
+colgroup:"Col Group",\r
+col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
+row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
+cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Table caption",\r
+frame:"\u0424\u0440\u0435\u0439\u043C",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('vi.table_dlg',{\r
+general_tab:"C\u01A1 b\u1EA3n",\r
+advanced_tab:"N\u00E2ng cao",\r
+general_props:"T\u00F9y ch\u1ECDn c\u01A1 b\u1EA3n",\r
+advanced_props:"T\u00F9y ch\u1ECDn n\u00E2ng cao",\r
+rowtype:"Row in table part",\r
+title:"Ch\u00E8n/thay \u0111\u1ED5i b\u1EA3ng",\r
+width:"Chi\u1EC1u r\u1ED9ng",\r
+height:"Chi\u1EC1u cao",\r
+cols:"S\u1ED1 c\u1ED9t",\r
+rows:"S\u1ED1 d\u00F2ng",\r
+cellspacing:"Kho\u1EA3ng c\u00E1ch ngang",\r
+cellpadding:"Kho\u1EA3ng c\u00E1ch d\u1ECDc",\r
+border:"\u0110\u01B0\u1EDDng vi\u1EC1n",\r
+align:"Canh l\u1EC1",\r
+align_default:"M\u1EB7c \u0111\u1ECBnh",\r
+align_left:"Tr\u00E1i",\r
+align_right:"Ph\u1EA3i",\r
+align_middle:"Gi\u1EEFa",\r
+row_title:"Thay \u0111\u1ED5i thu\u1ED9c t\u00EDnh d\u00F2ng",\r
+cell_title:"Thay \u0111\u1ED5i thu\u1ED9c t\u00EDnh \u00F4",\r
+cell_type:"Cell type",\r
+valign:"Canh l\u1EC1 d\u1ECDc",\r
+align_top:"Tr\u00EAn",\r
+align_bottom:"D\u01B0\u1EDBi",\r
+bordercolor:"M\u00E0u \u0111\u01B0\u1EDDng vi\u1EC1n",\r
+bgcolor:"M\u00E0u n\u1EC1n",\r
+merge_cells_title:"G\u1ED9p \u00F4",\r
+id:"Id",\r
+style:"Style",\r
+langdir:"Language direction",\r
+langcode:"Language code",\r
+mime:"Target MIME type",\r
+ltr:"Left to right",\r
+rtl:"Right to left",\r
+bgimage:"Background image",\r
+summary:"Summary",\r
+td:"Data",\r
+th:"Header",\r
+cell_cell:"C\u1EADp nh\u1EADt \u00F4 hi\u1EC7n t\u1EA1i",\r
+cell_row:"C\u1EADp nh\u1EADt t\u1EA5t c\u1EA3 \u00F4 c\u00F3 tr\u00EAn d\u00F2ng",\r
+cell_all:"C\u1EADp nh\u1EADt t\u1EA5t c\u1EA3 \u00F4 c\u00F3 trong b\u1EA3ng",\r
+row_row:"C\u1EADp nh\u1EADt d\u00F2ng hi\u1EC7n t\u1EA1i",\r
+row_odd:"C\u1EADp nh\u1EADt d\u00F2ng l\u1EBB c\u00F3 trong b\u1EA3ng",\r
+row_even:"C\u1EADp nh\u1EADt d\u00F2ng ch\u1EB5n c\u00F3 trong b\u1EA3ng",\r
+row_all:"C\u1EADp nh\u1EADt t\u1EA5t c\u1EA3 d\u00F2ng c\u00F3 trong b\u1EA3ng",\r
+thead:"Ph\u1EA7n \u0111\u1EA7u b\u1EA3ng",\r
+tbody:"Ph\u1EA7n th\u00E2n b\u1EA3ng",\r
+tfoot:"Ph\u1EA7n cu\u1ED1i b\u1EA3ng",\r
+scope:"Scope",\r
+rowgroup:"Row Group",\r
+colgroup:"Col Group",\r
+col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
+row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
+cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
+missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
+caption:"Th\u00EAm ti\u00EAu \u0111\u1EC1 cho b\u1EA3ng",\r
+frame:"Frame",\r
+frame_none:"none",\r
+frame_groups:"groups",\r
+frame_rows:"rows",\r
+frame_cols:"cols",\r
+frame_all:"all",\r
+rules:"Rules",\r
+rules_void:"void",\r
+rules_above:"above",\r
+rules_below:"below",\r
+rules_hsides:"hsides",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"vsides",\r
+rules_box:"box",\r
+rules_border:"border"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('zh.table_dlg',{\r
+general_tab:"\u57FA\u672C",\r
+advanced_tab:"\u9AD8\u7EA7",\r
+general_props:"\u4E00\u822C\u5C5E\u6027",\r
+advanced_props:"\u9AD8\u7EA7\u5C5E\u6027",\r
+rowtype:"\u5217\u6240\u5728\u7684\u8868\u683C\u4F4D\u7F6E",\r
+title:"\u63D2\u5165/\u7F16\u8F91\u8868\u683C",\r
+width:"\u5BBD",\r
+height:"\u9AD8",\r
+cols:"\u680F\u6570",\r
+rows:"\u5217\u6570",\r
+cellspacing:"\u5355\u5143\u683C\u95F4\u8DDD",\r
+cellpadding:"\u5355\u5143\u683C\u5185\u8DDD",\r
+border:"\u8FB9\u6846",\r
+align:"\u5BF9\u9F50\u65B9\u5F0F",\r
+align_default:"\u9884\u8BBE",\r
+align_left:"\u7F6E\u5DE6",\r
+align_right:"\u7F6E\u53F3",\r
+align_middle:"\u7F6E\u4E2D",\r
+row_title:"\u4F8B\u6807\u9898",\r
+cell_title:"\u5355\u5143\u683C\u6807\u9898",\r
+cell_type:"\u5355\u5143\u683C\u7C7B\u578B",\r
+valign:"\u5782\u76F4\u5BF9\u9F50\u65B9\u5F0F",\r
+align_top:"\u9876\u90E8",\r
+align_bottom:"\u5E95\u90E8",\r
+bordercolor:"\u8FB9\u6846\u989C\u8272",\r
+bgcolor:"\u80CC\u666F\u989C\u8272",\r
+merge_cells_title:"\u5408\u5E76\u5355\u5143\u683C",\r
+id:"ID",\r
+style:"\u6837\u5F0F",\r
+langdir:"\u8BED\u8A00\u4E66\u5199\u65B9\u5411",\r
+langcode:"\u8BED\u8A00\u7F16\u7801",\r
+mime:"\u76EE\u6807MIME\u7C7B\u578B",\r
+ltr:"\u4ECE\u5DE6\u5230\u53F3",\r
+rtl:"\u4ECE\u53F3\u5230\u5DE6",\r
+bgimage:"\u80CC\u666F\u56FE\u6863",\r
+summary:"\u6458\u8981",\r
+td:"\u8D44\u6599",\r
+th:"\u8868\u5934",\r
+cell_cell:"\u66F4\u65B0\u5F53\u524D\u5355\u5143\u683C",\r
+cell_row:"\u66F4\u65B0\u76EE\u524D\u5217\u7684\u5355\u5143\u683C",\r
+cell_all:"\u66F4\u65B0\u6240\u6709\u5355\u5143\u683C",\r
+row_row:"\u66F4\u65B0\u76EE\u524D\u5217",\r
+row_odd:"\u66F4\u65B0\u8868\u683C\u7684\u5947\u6570\u5217",\r
+row_even:"\u66F4\u65B0\u8868\u683C\u7684\u5076\u6570\u5217",\r
+row_all:"\u66F4\u65B0\u8868\u683C\u7684\u6240\u6709\u5217",\r
+thead:"\u8868\u683C\u8868\u5934",\r
+tbody:"\u8868\u683C\u4E3B\u4F53",\r
+tfoot:"\u8868\u683C\u811A\u6CE8",\r
+scope:"\u8303\u56F4",\r
+rowgroup:"\u5217\u7FA4\u7EC4",\r
+colgroup:"\u680F\u7FA4\u7EC4",\r
+col_limit:"\u5DF2\u8D85\u8FC7\u6700\u5927\u680F\u6570\u9650\u5236{$cols}\u680F\u3002 ",\r
+row_limit:"\u5DF2\u8D85\u8FC7\u6700\u5927\u5217\u6570\u9650\u5236{$rows}\u5217\u3002 ",\r
+cell_limit:"\u5DF2\u8D85\u8FC7\u6700\u5927\u5355\u5143\u683C\u9650\u5236{$cells}\u5355\u5143\u683C\u3002 ",\r
+missing_scope:"\u60A8\u786E\u5B9A\u4E0D\u6307\u5B9A\u8868\u5934\u5355\u5143\u683C\u7684\u8303\u56F4\u5417\uFF1F\u5982\u679C\u4E0D\u6307\u5B9A\uFF0C\u90E8\u5206\u7528\u6237\u5C06\u5F88\u96BE\u67E5\u770B\u8868\u683C\u5185\u5BB9\u3002 ",\r
+caption:"\u8868\u683C\u6807\u9898",\r
+frame:"\u7A97\u6846",\r
+frame_none:"\u65E0",\r
+frame_groups:"\u7FA4\u7EC4",\r
+frame_rows:"\u5217",\r
+frame_cols:"\u680F",\r
+frame_all:"\u5168\u90E8",\r
+rules:"\u6807\u5C3A",\r
+rules_void:"\u7A7A",\r
+rules_above:"\u4E4B\u4E0A",\r
+rules_below:"\u4E4B\u4E0B",\r
+rules_hsides:"\u6C34\u5E73\u5927\u5C0F",\r
+rules_lhs:"lhs",\r
+rules_rhs:"rhs",\r
+rules_vsides:"\u5782\u76F4\u5927\u5C0F",\r
+rules_box:"\u76D2",\r
+rules_border:"\u6846\u7EBF"\r
+});
\ No newline at end of file
<td class="column1"><label for="frame">{#table_dlg.frame}</label></td> \r
<td>\r
<select id="frame" name="frame" class="advfield"> \r
- <option value="">{#not_set}</option> \r
- <option value="none">{#table_dlg.frame_none}</option>\r
- <option value="groups">{#table_dlg.frame_groups}</option>\r
- <option value="rows">{#table_dlg.frame_rows}</option>\r
- <option value="cols">{#table_dlg.frame_cols}</option>\r
- <option value="all">{#table_dlg.frame_all}</option>\r
- </select>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="rules">{#table_dlg.rules}</label></td> \r
- <td>\r
- <select id="rules" name="rules" class="advfield"> \r
- <option value="">{#not_set}</option> \r
+ <option value="">{#not_set}</option>\r
<option value="void">{#table_dlg.rules_void}</option>\r
<option value="above">{#table_dlg.rules_above}</option> \r
<option value="below">{#table_dlg.rules_below}</option> \r
<option value="vsides">{#table_dlg.rules_vsides}</option> \r
<option value="box">{#table_dlg.rules_box}</option> \r
<option value="border">{#table_dlg.rules_border}</option> \r
+ </select>\r
+ </td> \r
+ </tr>\r
+\r
+ <tr>\r
+ <td class="column1"><label for="rules">{#table_dlg.rules}</label></td> \r
+ <td>\r
+ <select id="rules" name="rules" class="advfield"> \r
+ <option value="">{#not_set}</option> \r
+ <option value="none">{#table_dlg.frame_none}</option>\r
+ <option value="groups">{#table_dlg.frame_groups}</option>\r
+ <option value="rows">{#table_dlg.frame_rows}</option>\r
+ <option value="cols">{#table_dlg.frame_cols}</option>\r
+ <option value="all">{#table_dlg.frame_all}</option>\r
</select>\r
</td> \r
</tr>\r
\r
element_name = element_name.toLowerCase();\r
var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());\r
- if (elm != null && elm.nodeName == element_name.toUpperCase()) {\r
+ if (elm != null && elm.nodeName.toUpperCase() == element_name.toUpperCase()) {\r
SXE.currentAction = "update";\r
}\r
\r
SXE.removeElement = function(element_name){\r
element_name = element_name.toLowerCase();\r
elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());\r
- if(elm && elm.nodeName == element_name.toUpperCase()){\r
+ if(elm && elm.nodeName.toUpperCase() == element_name.toUpperCase()){\r
tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
tinyMCE.execCommand('mceRemoveNode', false, elm);\r
SXE.inst.nodeChanged();\r
-(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,each=tinymce.each,Cookie=tinymce.util.Cookie,lastExtID,explode=tinymce.explode;tinymce.ThemeManager.requireLangPack('advanced');tinymce.create('tinymce.themes.AdvancedTheme',{controls:{bold:['bold_desc','Bold'],italic:['italic_desc','Italic'],underline:['underline_desc','Underline'],strikethrough:['striketrough_desc','Strikethrough'],justifyleft:['justifyleft_desc','JustifyLeft'],justifycenter:['justifycenter_desc','JustifyCenter'],justifyright:['justifyright_desc','JustifyRight'],justifyfull:['justifyfull_desc','JustifyFull'],bullist:['bullist_desc','InsertUnorderedList'],numlist:['numlist_desc','InsertOrderedList'],outdent:['outdent_desc','Outdent'],indent:['indent_desc','Indent'],cut:['cut_desc','Cut'],copy:['copy_desc','Copy'],paste:['paste_desc','Paste'],undo:['undo_desc','Undo'],redo:['redo_desc','Redo'],link:['link_desc','mceLink'],unlink:['unlink_desc','unlink'],image:['image_desc','mceImage'],cleanup:['cleanup_desc','mceCleanup'],help:['help_desc','mceHelp'],code:['code_desc','mceCodeEditor'],hr:['hr_desc','InsertHorizontalRule'],removeformat:['removeformat_desc','RemoveFormat'],sub:['sub_desc','subscript'],sup:['sup_desc','superscript'],forecolor:['forecolor_desc','ForeColor'],forecolorpicker:['forecolor_desc','mceForeColor'],backcolor:['backcolor_desc','HiliteColor'],backcolorpicker:['backcolor_desc','mceBackColor'],charmap:['charmap_desc','mceCharMap'],visualaid:['visualaid_desc','mceToggleVisualAid'],anchor:['anchor_desc','mceInsertAnchor'],newdocument:['newdocument_desc','mceNewDocument'],blockquote:['blockquote_desc','mceBlockQuote']},stateControls:['bold','italic','underline','strikethrough','bullist','numlist','justifyleft','justifycenter','justifyright','justifyfull','sub','sup','blockquote'],init:function(ed,url){var t=this,s,v;t.editor=ed;t.url=url;t.onResolveName=new tinymce.util.Dispatcher(this);t.settings=s=extend({theme_advanced_path:true,theme_advanced_toolbar_location:'bottom',theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,|,sub,sup,|,charmap",theme_advanced_blockformats:"p,address,pre,h1,h2,h3,h4,h5,h6",theme_advanced_toolbar_align:"center",theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",theme_advanced_font_sizes:"1,2,3,4,5,6,7",theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1},ed.settings);if((v=s.theme_advanced_path_location)&&v!='none')s.theme_advanced_statusbar_location=s.theme_advanced_path_location;if(s.theme_advanced_statusbar_location=='none')s.theme_advanced_statusbar_location=0;ed.onInit.add(function(){ed.onNodeChange.add(t._nodeChanged,t);if(ed.settings.content_css!==false)ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/advanced/skins/"+ed.settings.skin+"/content.css"));});ed.onSetProgressState.add(function(ed,b,ti){var co,id=ed.id,tb;if(b){t.progressTimer=setTimeout(function(){co=ed.getContainer();co=co.insertBefore(DOM.create('DIV',{style:'position:relative'}),co.firstChild);tb=DOM.get(ed.id+'_tbl');DOM.add(co,'div',{id:id+'_blocker','class':'mceBlocker',style:{width:tb.clientWidth+2,height:tb.clientHeight+2}});DOM.add(co,'div',{id:id+'_progress','class':'mceProgress',style:{left:tb.clientWidth/ 2, top : tb.clientHeight /2}});},ti||0);}else{DOM.remove(id+'_blocker');DOM.remove(id+'_progress');clearTimeout(t.progressTimer);}});DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css||"themes/advanced/skins/"+ed.settings.skin+"/ui.css"));if(s.skin_variant)DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css||"themes/advanced/skins/"+ed.settings.skin+"/ui_"+s.skin_variant+".css"));},createControl:function(n,cf){var cd,c;if(c=cf.createControl(n))return c;switch(n){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu();}if((cd=this.controls[n]))return cf.createButton(n,{title:"advanced."+cd[0],cmd:cd[1],ui:cd[2],value:cd[3]});},execCommand:function(cmd,ui,val){var f=this['_'+cmd];if(f){f.call(this,ui,val);return true;}return false;},_importClasses:function(){var ed=this.editor,c=ed.controlManager.get('styleselect');if(c.getLength()==0){each(ed.dom.getClasses(),function(o){c.add(o['class'],o['class']);});}},_createStyleSelect:function(n){var t=this,ed=t.editor,cf=ed.controlManager,c=cf.createListBox('styleselect',{title:'advanced.style_select',onselect:function(v){if(c.selectedValue===v){ed.execCommand('mceSetStyleInfo',0,{command:'removeformat'});c.select();return false;}else ed.execCommand('mceSetCSSClass',0,v);}});if(c){each(ed.getParam('theme_advanced_styles','','hash'),function(v,k){if(v)c.add(t.editor.translate(k),v);});c.onPostRender.add(function(ed,n){Event.add(n,'focus',t._importClasses,t);Event.add(n,'mousedown',t._importClasses,t);});}return c;},_createFontSelect:function(){var c,t=this,ed=t.editor;c=ed.controlManager.createListBox('fontselect',{title:'advanced.fontdefault',cmd:'FontName'});if(c){each(ed.getParam('theme_advanced_fonts',t.settings.theme_advanced_fonts,'hash'),function(v,k){c.add(ed.translate(k),v,{style:v.indexOf('dings')==-1?'font-family:'+v:''});});}return c;},_createFontSizeSelect:function(){var c,t=this,lo=["1 (8 pt)","2 (10 pt)","3 (12 pt)","4 (14 pt)","5 (18 pt)","6 (24 pt)","7 (36 pt)"],fz=[8,10,12,14,18,24,36];c=t.editor.controlManager.createListBox('fontsizeselect',{title:'advanced.font_size',cmd:'FontSize'});if(c){each(explode(t.settings.theme_advanced_font_sizes),function(v){c.add(lo[parseInt(v)-1],v,{'style':'font-size:'+fz[v-1]+'pt','class':'mceFontSize'+v});});}return c;},_createBlockFormats:function(){var c,fmts={p:'advanced.paragraph',address:'advanced.address',pre:'advanced.pre',h1:'advanced.h1',h2:'advanced.h2',h3:'advanced.h3',h4:'advanced.h4',h5:'advanced.h5',h6:'advanced.h6',div:'advanced.div',blockquote:'advanced.blockquote',code:'advanced.code',dt:'advanced.dt',dd:'advanced.dd',samp:'advanced.samp'},t=this;c=t.editor.controlManager.createListBox('formatselect',{title:'advanced.block',cmd:'FormatBlock'});if(c){each(t.editor.getParam('theme_advanced_blockformats',t.settings.theme_advanced_blockformats,'hash'),function(v,k){c.add(t.editor.translate(k!=v?k:fmts[v]),v,{'class':'mce_formatPreview mce_'+v});});}return c;},_createForeColorMenu:function(){var c,t=this,s=t.settings,o={},v;if(s.theme_advanced_more_colors){o.more_colors_func=function(){t._mceColorPicker(0,{color:c.value,func:function(co){c.setColor(co);}});};}if(v=s.theme_advanced_text_colors)o.colors=v;o.title='advanced.forecolor_desc';o.cmd='ForeColor';o.scope=this;c=t.editor.controlManager.createColorSplitButton('forecolor',o);return c;},_createBackColorMenu:function(){var c,t=this,s=t.settings,o={},v;if(s.theme_advanced_more_colors){o.more_colors_func=function(){t._mceColorPicker(0,{color:c.value,func:function(co){c.setColor(co);}});};}if(v=s.theme_advanced_background_colors)o.colors=v;o.title='advanced.backcolor_desc';o.cmd='HiliteColor';o.scope=this;c=t.editor.controlManager.createColorSplitButton('backcolor',o);return c;},renderUI:function(o){var n,ic,tb,t=this,ed=t.editor,s=t.settings,sc,p,nl;n=p=DOM.create('span',{id:ed.id+'_parent','class':'mceEditor '+ed.settings.skin+'Skin'+(s.skin_variant?' '+ed.settings.skin+'Skin'+t._ufirst(s.skin_variant):'')});if(!DOM.boxModel)n=DOM.add(n,'div',{'class':'mceOldBoxModel'});n=sc=DOM.add(n,'table',{id:ed.id+'_tbl','class':'mceLayout',cellSpacing:0,cellPadding:0});n=tb=DOM.add(n,'tbody');switch((s.theme_advanced_layout_manager||'').toLowerCase()){case"rowlayout":ic=t._rowLayout(s,tb,o);break;case"customlayout":ic=ed.execCallback("theme_advanced_custom_layout",s,tb,o,p);break;default:ic=t._simpleLayout(s,tb,o,p);}n=o.targetNode;nl=DOM.stdMode?sc.getElementsByTagName('tr'):sc.rows;DOM.addClass(nl[0],'mceFirst');DOM.addClass(nl[nl.length-1],'mceLast');each(DOM.select('tr',tb),function(n){DOM.addClass(n.firstChild,'mceFirst');DOM.addClass(n.childNodes[n.childNodes.length-1],'mceLast');});if(DOM.get(s.theme_advanced_toolbar_container))DOM.get(s.theme_advanced_toolbar_container).appendChild(p);else DOM.insertAfter(p,n);Event.add(ed.id+'_path_row','click',function(e){e=e.target;if(e.nodeName=='A'){t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/,'$1'));return Event.cancel(e);}});if(!ed.getParam('accessibility_focus')||ed.getParam('tab_focus'))Event.add(DOM.add(p,'a',{href:'#'},'<!-- IE -->'),'focus',function(){tinyMCE.get(ed.id).focus();});if(s.theme_advanced_toolbar_location=='external')o.deltaHeight=0;t.deltaHeight=o.deltaHeight;o.targetNode=null;return{iframeContainer:ic,editorContainer:ed.id+'_parent',sizeContainer:sc,deltaHeight:o.deltaHeight};},getInfo:function(){return{longname:'Advanced theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}},resizeBy:function(dw,dh){var e=DOM.get(this.editor.id+'_tbl');this.resizeTo(e.clientWidth+dw,e.clientHeight+dh);},resizeTo:function(w,h){var ed=this.editor,s=ed.settings,e=DOM.get(ed.id+'_tbl'),ifr=DOM.get(ed.id+'_ifr'),dh;w=Math.max(s.theme_advanced_resizing_min_width||100,w);h=Math.max(s.theme_advanced_resizing_min_height||100,h);w=Math.min(s.theme_advanced_resizing_max_width||0xFFFF,w);h=Math.min(s.theme_advanced_resizing_max_height||0xFFFF,h);dh=e.clientHeight-ifr.clientHeight;DOM.setStyle(ifr,'height',h-dh);DOM.setStyles(e,{width:w,height:h});},destroy:function(){var id=this.editor.id;Event.clear(id+'_resize');Event.clear(id+'_path_row');Event.clear(id+'_external_close');},_simpleLayout:function(s,tb,o,p){var t=this,ed=t.editor,lo=s.theme_advanced_toolbar_location,sl=s.theme_advanced_statusbar_location,n,ic,etb,c;if(lo=='top')t._addToolbars(tb,o);if(lo=='external'){n=c=DOM.create('div',{style:'position:relative'});n=DOM.add(n,'div',{id:ed.id+'_external','class':'mceExternalToolbar'});DOM.add(n,'a',{id:ed.id+'_external_close',href:'javascript:;','class':'mceExternalClose'});n=DOM.add(n,'table',{id:ed.id+'_tblext',cellSpacing:0,cellPadding:0});etb=DOM.add(n,'tbody');if(p.firstChild.className=='mceOldBoxModel')p.firstChild.appendChild(c);else p.insertBefore(c,p.firstChild);t._addToolbars(etb,o);ed.onMouseUp.add(function(){var e=DOM.get(ed.id+'_external');DOM.show(e);DOM.hide(lastExtID);var f=Event.add(ed.id+'_external_close','click',function(){DOM.hide(ed.id+'_external');Event.remove(ed.id+'_external_close','click',f);});DOM.show(e);DOM.setStyle(e,'top',0-DOM.getRect(ed.id+'_tblext').h-1);DOM.hide(e);DOM.show(e);e.style.filter='';lastExtID=ed.id+'_external';e=null;});}if(sl=='top')t._addStatusBar(tb,o);if(!s.theme_advanced_toolbar_container){n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});}if(lo=='bottom')t._addToolbars(tb,o);if(sl=='bottom')t._addStatusBar(tb,o);return ic;},_rowLayout:function(s,tb,o){var t=this,ed=t.editor,dc,da,cf=ed.controlManager,n,ic,to,a;dc=s.theme_advanced_containers_default_class||'';da=s.theme_advanced_containers_default_align||'center';each(explode(s.theme_advanced_containers||''),function(c,i){var v=s['theme_advanced_container_'+c]||'';switch(c.toLowerCase()){case'mceeditor':n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});break;case'mceelementpath':t._addStatusBar(tb,o);break;default:a=s['theme_advanced_container_'+c+'_align'].toLowerCase();a='mce'+t._ufirst(a);n=DOM.add(DOM.add(tb,'tr'),'td',{'class':'mceToolbar '+(s['theme_advanced_container_'+c+'_class']||dc)+' '+a||da});to=cf.createToolbar("toolbar"+i);t._addControls(v,to);DOM.setHTML(n,to.renderHTML());o.deltaHeight-=s.theme_advanced_row_height;}});return ic;},_addControls:function(v,tb){var t=this,s=t.settings,di,cf=t.editor.controlManager;if(s.theme_advanced_disable&&!t._disabled){di={};each(explode(s.theme_advanced_disable),function(v){di[v]=1;});t._disabled=di;}else di=t._disabled;each(explode(v),function(n){var c;if(di&&di[n])return;if(n=='tablecontrols'){each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"],function(n){n=t.createControl(n,cf);if(n)tb.add(n);});return;}c=t.createControl(n,cf);if(c)tb.add(c);});},_addToolbars:function(c,o){var t=this,i,tb,ed=t.editor,s=t.settings,v,cf=ed.controlManager,di,n,h=[],a;a=s.theme_advanced_toolbar_align.toLowerCase();a='mce'+t._ufirst(a);n=DOM.add(DOM.add(c,'tr'),'td',{'class':'mceToolbar '+a});if(!ed.getParam('accessibility_focus')||ed.getParam('tab_focus'))h.push(DOM.createHTML('a',{href:'#',onfocus:'tinyMCE.get(\''+ed.id+'\').focus();'},'<!-- IE -->'));h.push(DOM.createHTML('a',{href:'#',accesskey:'q',title:ed.getLang("advanced.toolbar_focus")},'<!-- IE -->'));for(i=1;(v=s['theme_advanced_buttons'+i]);i++){tb=cf.createToolbar("toolbar"+i,{'class':'mceToolbarRow'+i});if(s['theme_advanced_buttons'+i+'_add'])v+=','+s['theme_advanced_buttons'+i+'_add'];if(s['theme_advanced_buttons'+i+'_add_before'])v=s['theme_advanced_buttons'+i+'_add_before']+','+v;t._addControls(v,tb);h.push(tb.renderHTML());o.deltaHeight-=s.theme_advanced_row_height;}h.push(DOM.createHTML('a',{href:'#',accesskey:'z',title:ed.getLang("advanced.toolbar_focus"),onfocus:'tinyMCE.getInstanceById(\''+ed.id+'\').focus();'},'<!-- IE -->'));DOM.setHTML(n,h.join(''));},_addStatusBar:function(tb,o){var n,t=this,ed=t.editor,s=t.settings,r,mf,me,td;n=DOM.add(tb,'tr');n=td=DOM.add(n,'td',{'class':'mceStatusbar'});n=DOM.add(n,'div',{id:ed.id+'_path_row'},s.theme_advanced_path?ed.translate('advanced.path')+': ':' ');DOM.add(n,'a',{href:'#',accesskey:'x'});if(s.theme_advanced_resizing&&!tinymce.isOldWebKit){DOM.add(td,'a',{id:ed.id+'_resize',href:'javascript:;',onclick:"return false;",'class':'mceResize'});if(s.theme_advanced_resizing_use_cookie){ed.onPostRender.add(function(){var o=Cookie.getHash("TinyMCE_"+ed.id+"_size"),c=DOM.get(ed.id+'_tbl');if(!o)return;if(s.theme_advanced_resize_horizontal)c.style.width=Math.max(10,o.cw)+'px';c.style.height=Math.max(10,o.ch)+'px';DOM.get(ed.id+'_ifr').style.height=Math.max(10,parseInt(o.ch)+t.deltaHeight)+'px';});}ed.onPostRender.add(function(){Event.add(ed.id+'_resize','mousedown',function(e){var c,p,w,h,n,pa;c=DOM.get(ed.id+'_tbl');w=c.clientWidth;h=c.clientHeight;miw=s.theme_advanced_resizing_min_width||100;mih=s.theme_advanced_resizing_min_height||100;maw=s.theme_advanced_resizing_max_width||0xFFFF;mah=s.theme_advanced_resizing_max_height||0xFFFF;p=DOM.add(DOM.get(ed.id+'_parent'),'div',{'class':'mcePlaceHolder'});DOM.setStyles(p,{width:w,height:h});DOM.hide(c);DOM.show(p);r={x:e.screenX,y:e.screenY,w:w,h:h,dx:null,dy:null};mf=Event.add(DOM.doc,'mousemove',function(e){var w,h;r.dx=e.screenX-r.x;r.dy=e.screenY-r.y;w=Math.max(miw,r.w+r.dx);h=Math.max(mih,r.h+r.dy);w=Math.min(maw,w);h=Math.min(mah,h);if(s.theme_advanced_resize_horizontal)p.style.width=w+'px';p.style.height=h+'px';return Event.cancel(e);});me=Event.add(DOM.doc,'mouseup',function(e){var ifr;Event.remove(DOM.doc,'mousemove',mf);Event.remove(DOM.doc,'mouseup',me);c.style.display='';DOM.remove(p);if(r.dx===null)return;ifr=DOM.get(ed.id+'_ifr');if(s.theme_advanced_resize_horizontal)c.style.width=Math.max(10,r.w+r.dx)+'px';c.style.height=Math.max(10,r.h+r.dy)+'px';ifr.style.height=Math.max(10,ifr.clientHeight+r.dy)+'px';if(s.theme_advanced_resizing_use_cookie){Cookie.setHash("TinyMCE_"+ed.id+"_size",{cw:r.w+r.dx,ch:r.h+r.dy});}});return Event.cancel(e);});});}o.deltaHeight-=21;n=tb=null;},_nodeChanged:function(ed,cm,n,co){var t=this,p,de=0,v,c,s=t.settings;tinymce.each(t.stateControls,function(c){cm.setActive(c,ed.queryCommandState(t.controls[c][1]));});cm.setActive('visualaid',ed.hasVisual);cm.setDisabled('undo',!ed.undoManager.hasUndo()&&!ed.typing);cm.setDisabled('redo',!ed.undoManager.hasRedo());cm.setDisabled('outdent',!ed.queryCommandState('Outdent'));p=DOM.getParent(n,'A');if(c=cm.get('link')){if(!p||!p.name){c.setDisabled(!p&&co);c.setActive(!!p);}}if(c=cm.get('unlink')){c.setDisabled(!p&&co);c.setActive(!!p&&!p.name);}if(c=cm.get('anchor')){c.setActive(!!p&&p.name);if(tinymce.isWebKit){p=DOM.getParent(n,'IMG');c.setActive(!!p&&DOM.getAttrib(p,'mce_name')=='a');}}p=DOM.getParent(n,'IMG');if(c=cm.get('image'))c.setActive(!!p&&n.className.indexOf('mceItem')==-1);if(c=cm.get('styleselect')){if(n.className){t._importClasses();c.select(n.className);}else c.select();}if(c=cm.get('formatselect')){p=DOM.getParent(n,DOM.isBlock);if(p)c.select(p.nodeName.toLowerCase());}if(c=cm.get('fontselect'))c.select(ed.queryCommandValue('FontName'));if(c=cm.get('fontsizeselect'))c.select(ed.queryCommandValue('FontSize'));if(s.theme_advanced_path&&s.theme_advanced_statusbar_location){p=DOM.get(ed.id+'_path')||DOM.add(ed.id+'_path_row','span',{id:ed.id+'_path'});DOM.setHTML(p,'');ed.dom.getParent(n,function(n){var na=n.nodeName.toLowerCase(),u,pi,ti='';if(n.nodeType!=1||(DOM.hasClass(n,'mceItemHidden')||DOM.hasClass(n,'mceItemRemoved')))return;if(v=DOM.getAttrib(n,'mce_name'))na=v;if(tinymce.isIE&&n.scopeName!=='HTML')na=n.scopeName+':'+na;na=na.replace(/mce\:/g,'');switch(na){case'b':na='strong';break;case'i':na='em';break;case'img':if(v=DOM.getAttrib(n,'src'))ti+='src: '+v+' ';break;case'a':if(v=DOM.getAttrib(n,'name')){ti+='name: '+v+' ';na+='#'+v;}if(v=DOM.getAttrib(n,'href'))ti+='href: '+v+' ';break;case'font':if(s.convert_fonts_to_spans)na='span';if(v=DOM.getAttrib(n,'face'))ti+='font: '+v+' ';if(v=DOM.getAttrib(n,'size'))ti+='size: '+v+' ';if(v=DOM.getAttrib(n,'color'))ti+='color: '+v+' ';break;case'span':if(v=DOM.getAttrib(n,'style'))ti+='style: '+v+' ';break;}if(v=DOM.getAttrib(n,'id'))ti+='id: '+v+' ';if(v=n.className){v=v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g,'');if(v&&v.indexOf('mceItem')==-1){ti+='class: '+v+' ';if(DOM.isBlock(n)||na=='img'||na=='span')na+='.'+v;}}na=na.replace(/(html:)/g,'');na={name:na,node:n,title:ti};t.onResolveName.dispatch(t,na);ti=na.title;na=na.name;pi=DOM.create('a',{'href':"javascript:;",onmousedown:"return false;",title:ti,'class':'mcePath_'+(de++)},na);if(p.hasChildNodes()){p.insertBefore(DOM.doc.createTextNode(' \u00bb '),p.firstChild);p.insertBefore(pi,p.firstChild);}else p.appendChild(pi);},ed.getBody());}},_sel:function(v){this.editor.execCommand('mceSelectNodeDepth',false,v);},_mceInsertAnchor:function(ui,v){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/anchor.htm',width:320+parseInt(ed.getLang('advanced.anchor_delta_width',0)),height:90+parseInt(ed.getLang('advanced.anchor_delta_height',0)),inline:true},{theme_url:this.url});},_mceCharMap:function(){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/charmap.htm',width:550+parseInt(ed.getLang('advanced.charmap_delta_width',0)),height:250+parseInt(ed.getLang('advanced.charmap_delta_height',0)),inline:true},{theme_url:this.url});},_mceHelp:function(){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/about.htm',width:480,height:380,inline:true},{theme_url:this.url});},_mceColorPicker:function(u,v){var ed=this.editor;v=v||{};ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/color_picker.htm',width:375+parseInt(ed.getLang('advanced.colorpicker_delta_width',0)),height:250+parseInt(ed.getLang('advanced.colorpicker_delta_height',0)),close_previous:false,inline:true},{input_color:v.color,func:v.func,theme_url:this.url});},_mceCodeEditor:function(ui,val){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/source_editor.htm',width:parseInt(ed.getParam("theme_advanced_source_editor_width",720)),height:parseInt(ed.getParam("theme_advanced_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url});},_mceImage:function(ui,val){var ed=this.editor;if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/image.htm',width:355+parseInt(ed.getLang('advanced.image_delta_width',0)),height:275+parseInt(ed.getLang('advanced.image_delta_height',0)),inline:true},{theme_url:this.url});},_mceLink:function(ui,val){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/link.htm',width:310+parseInt(ed.getLang('advanced.link_delta_width',0)),height:200+parseInt(ed.getLang('advanced.link_delta_height',0)),inline:true},{theme_url:this.url});},_mceNewDocument:function(){var ed=this.editor;ed.windowManager.confirm('advanced.newdocument',function(s){if(s)ed.execCommand('mceSetContent',false,'');});},_mceForeColor:function(){var t=this;this._mceColorPicker(0,{func:function(co){t.editor.execCommand('ForeColor',false,co);}});},_mceBackColor:function(){var t=this;this._mceColorPicker(0,{func:function(co){t.editor.execCommand('HiliteColor',false,co);}});},_ufirst:function(s){return s.substring(0,1).toUpperCase()+s.substring(1);}});tinymce.ThemeManager.add('advanced',tinymce.themes.AdvancedTheme);}());
\ No newline at end of file
+(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,each=tinymce.each,Cookie=tinymce.util.Cookie,lastExtID,explode=tinymce.explode;tinymce.ThemeManager.requireLangPack('advanced');tinymce.create('tinymce.themes.AdvancedTheme',{controls:{bold:['bold_desc','Bold'],italic:['italic_desc','Italic'],underline:['underline_desc','Underline'],strikethrough:['striketrough_desc','Strikethrough'],justifyleft:['justifyleft_desc','JustifyLeft'],justifycenter:['justifycenter_desc','JustifyCenter'],justifyright:['justifyright_desc','JustifyRight'],justifyfull:['justifyfull_desc','JustifyFull'],bullist:['bullist_desc','InsertUnorderedList'],numlist:['numlist_desc','InsertOrderedList'],outdent:['outdent_desc','Outdent'],indent:['indent_desc','Indent'],cut:['cut_desc','Cut'],copy:['copy_desc','Copy'],paste:['paste_desc','Paste'],undo:['undo_desc','Undo'],redo:['redo_desc','Redo'],link:['link_desc','mceLink'],unlink:['unlink_desc','unlink'],image:['image_desc','mceImage'],cleanup:['cleanup_desc','mceCleanup'],help:['help_desc','mceHelp'],code:['code_desc','mceCodeEditor'],hr:['hr_desc','InsertHorizontalRule'],removeformat:['removeformat_desc','RemoveFormat'],sub:['sub_desc','subscript'],sup:['sup_desc','superscript'],forecolor:['forecolor_desc','ForeColor'],forecolorpicker:['forecolor_desc','mceForeColor'],backcolor:['backcolor_desc','HiliteColor'],backcolorpicker:['backcolor_desc','mceBackColor'],charmap:['charmap_desc','mceCharMap'],visualaid:['visualaid_desc','mceToggleVisualAid'],anchor:['anchor_desc','mceInsertAnchor'],newdocument:['newdocument_desc','mceNewDocument'],blockquote:['blockquote_desc','mceBlockQuote']},stateControls:['bold','italic','underline','strikethrough','bullist','numlist','justifyleft','justifycenter','justifyright','justifyfull','sub','sup','blockquote'],init:function(ed,url){var t=this,s,v;t.editor=ed;t.url=url;t.onResolveName=new tinymce.util.Dispatcher(this);t.settings=s=extend({theme_advanced_path:true,theme_advanced_toolbar_location:'bottom',theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,|,sub,sup,|,charmap",theme_advanced_blockformats:"p,address,pre,h1,h2,h3,h4,h5,h6",theme_advanced_toolbar_align:"center",theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",theme_advanced_font_sizes:"1,2,3,4,5,6,7",theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1},ed.settings);if((v=s.theme_advanced_path_location)&&v!='none')s.theme_advanced_statusbar_location=s.theme_advanced_path_location;if(s.theme_advanced_statusbar_location=='none')s.theme_advanced_statusbar_location=0;ed.onInit.add(function(){ed.onNodeChange.add(t._nodeChanged,t);if(ed.settings.content_css!==false)ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/advanced/skins/"+ed.settings.skin+"/content.css"));});ed.onSetProgressState.add(function(ed,b,ti){var co,id=ed.id,tb;if(b){t.progressTimer=setTimeout(function(){co=ed.getContainer();co=co.insertBefore(DOM.create('DIV',{style:'position:relative'}),co.firstChild);tb=DOM.get(ed.id+'_tbl');DOM.add(co,'div',{id:id+'_blocker','class':'mceBlocker',style:{width:tb.clientWidth+2,height:tb.clientHeight+2}});DOM.add(co,'div',{id:id+'_progress','class':'mceProgress',style:{left:tb.clientWidth/ 2, top : tb.clientHeight /2}});},ti||0);}else{DOM.remove(id+'_blocker');DOM.remove(id+'_progress');clearTimeout(t.progressTimer);}});DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css||"themes/advanced/skins/"+ed.settings.skin+"/ui.css"));if(s.skin_variant)DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css||"themes/advanced/skins/"+ed.settings.skin+"/ui_"+s.skin_variant+".css"));},createControl:function(n,cf){var cd,c;if(c=cf.createControl(n))return c;switch(n){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu();}if((cd=this.controls[n]))return cf.createButton(n,{title:"advanced."+cd[0],cmd:cd[1],ui:cd[2],value:cd[3]});},execCommand:function(cmd,ui,val){var f=this['_'+cmd];if(f){f.call(this,ui,val);return true;}return false;},_importClasses:function(e){var ed=this.editor,c=ed.controlManager.get('styleselect');if(c.getLength()==0){each(ed.dom.getClasses(),function(o){c.add(o['class'],o['class']);});}},_createStyleSelect:function(n){var t=this,ed=t.editor,cf=ed.controlManager,c=cf.createListBox('styleselect',{title:'advanced.style_select',onselect:function(v){if(c.selectedValue===v){ed.execCommand('mceSetStyleInfo',0,{command:'removeformat'});c.select();return false;}else ed.execCommand('mceSetCSSClass',0,v);}});if(c){each(ed.getParam('theme_advanced_styles','','hash'),function(v,k){if(v)c.add(t.editor.translate(k),v);});c.onPostRender.add(function(ed,n){Event.add(n.id+'_text','focus',t._importClasses,t);Event.add(n.id+'_text','mousedown',t._importClasses,t);});}return c;},_createFontSelect:function(){var c,t=this,ed=t.editor;c=ed.controlManager.createListBox('fontselect',{title:'advanced.fontdefault',cmd:'FontName'});if(c){each(ed.getParam('theme_advanced_fonts',t.settings.theme_advanced_fonts,'hash'),function(v,k){c.add(ed.translate(k),v,{style:v.indexOf('dings')==-1?'font-family:'+v:''});});}return c;},_createFontSizeSelect:function(){var t=this,ed=t.editor,c,lo=["1 (8 pt)","2 (10 pt)","3 (12 pt)","4 (14 pt)","5 (18 pt)","6 (24 pt)","7 (36 pt)"],fz=[8,10,12,14,18,24,36];c=ed.controlManager.createListBox('fontsizeselect',{title:'advanced.font_size',cmd:'FontSize'});if(c){each(ed.getParam('theme_advanced_font_sizes',t.settings.theme_advanced_font_sizes,'hash'),function(v,k){c.add(k!=v?k:lo[parseInt(v)-1],v,{'style':'font-size:'+fz[v-1]+'pt','class':'mceFontSize'+v});});}return c;},_createBlockFormats:function(){var c,fmts={p:'advanced.paragraph',address:'advanced.address',pre:'advanced.pre',h1:'advanced.h1',h2:'advanced.h2',h3:'advanced.h3',h4:'advanced.h4',h5:'advanced.h5',h6:'advanced.h6',div:'advanced.div',blockquote:'advanced.blockquote',code:'advanced.code',dt:'advanced.dt',dd:'advanced.dd',samp:'advanced.samp'},t=this;c=t.editor.controlManager.createListBox('formatselect',{title:'advanced.block',cmd:'FormatBlock'});if(c){each(t.editor.getParam('theme_advanced_blockformats',t.settings.theme_advanced_blockformats,'hash'),function(v,k){c.add(t.editor.translate(k!=v?k:fmts[v]),v,{'class':'mce_formatPreview mce_'+v});});}return c;},_createForeColorMenu:function(){var c,t=this,s=t.settings,o={},v;if(s.theme_advanced_more_colors){o.more_colors_func=function(){t._mceColorPicker(0,{color:c.value,func:function(co){c.setColor(co);}});};}if(v=s.theme_advanced_text_colors)o.colors=v;o.title='advanced.forecolor_desc';o.cmd='ForeColor';o.scope=this;c=t.editor.controlManager.createColorSplitButton('forecolor',o);return c;},_createBackColorMenu:function(){var c,t=this,s=t.settings,o={},v;if(s.theme_advanced_more_colors){o.more_colors_func=function(){t._mceColorPicker(0,{color:c.value,func:function(co){c.setColor(co);}});};}if(v=s.theme_advanced_background_colors)o.colors=v;o.title='advanced.backcolor_desc';o.cmd='HiliteColor';o.scope=this;c=t.editor.controlManager.createColorSplitButton('backcolor',o);return c;},renderUI:function(o){var n,ic,tb,t=this,ed=t.editor,s=t.settings,sc,p,nl;n=p=DOM.create('span',{id:ed.id+'_parent','class':'mceEditor '+ed.settings.skin+'Skin'+(s.skin_variant?' '+ed.settings.skin+'Skin'+t._ufirst(s.skin_variant):'')});if(!DOM.boxModel)n=DOM.add(n,'div',{'class':'mceOldBoxModel'});n=sc=DOM.add(n,'table',{id:ed.id+'_tbl','class':'mceLayout',cellSpacing:0,cellPadding:0});n=tb=DOM.add(n,'tbody');switch((s.theme_advanced_layout_manager||'').toLowerCase()){case"rowlayout":ic=t._rowLayout(s,tb,o);break;case"customlayout":ic=ed.execCallback("theme_advanced_custom_layout",s,tb,o,p);break;default:ic=t._simpleLayout(s,tb,o,p);}n=o.targetNode;nl=DOM.stdMode?sc.getElementsByTagName('tr'):sc.rows;DOM.addClass(nl[0],'mceFirst');DOM.addClass(nl[nl.length-1],'mceLast');each(DOM.select('tr',tb),function(n){DOM.addClass(n.firstChild,'mceFirst');DOM.addClass(n.childNodes[n.childNodes.length-1],'mceLast');});if(DOM.get(s.theme_advanced_toolbar_container))DOM.get(s.theme_advanced_toolbar_container).appendChild(p);else DOM.insertAfter(p,n);Event.add(ed.id+'_path_row','click',function(e){e=e.target;if(e.nodeName=='A'){t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/,'$1'));return Event.cancel(e);}});if(!ed.getParam('accessibility_focus')||ed.getParam('tab_focus'))Event.add(DOM.add(p,'a',{href:'#'},'<!-- IE -->'),'focus',function(){tinyMCE.get(ed.id).focus();});if(s.theme_advanced_toolbar_location=='external')o.deltaHeight=0;t.deltaHeight=o.deltaHeight;o.targetNode=null;return{iframeContainer:ic,editorContainer:ed.id+'_parent',sizeContainer:sc,deltaHeight:o.deltaHeight};},getInfo:function(){return{longname:'Advanced theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}},resizeBy:function(dw,dh){var e=DOM.get(this.editor.id+'_tbl');this.resizeTo(e.clientWidth+dw,e.clientHeight+dh);},resizeTo:function(w,h){var ed=this.editor,s=ed.settings,e=DOM.get(ed.id+'_tbl'),ifr=DOM.get(ed.id+'_ifr'),dh;w=Math.max(s.theme_advanced_resizing_min_width||100,w);h=Math.max(s.theme_advanced_resizing_min_height||100,h);w=Math.min(s.theme_advanced_resizing_max_width||0xFFFF,w);h=Math.min(s.theme_advanced_resizing_max_height||0xFFFF,h);dh=e.clientHeight-ifr.clientHeight;DOM.setStyle(ifr,'height',h-dh);DOM.setStyles(e,{width:w,height:h});},destroy:function(){var id=this.editor.id;Event.clear(id+'_resize');Event.clear(id+'_path_row');Event.clear(id+'_external_close');},_simpleLayout:function(s,tb,o,p){var t=this,ed=t.editor,lo=s.theme_advanced_toolbar_location,sl=s.theme_advanced_statusbar_location,n,ic,etb,c;if(lo=='top')t._addToolbars(tb,o);if(lo=='external'){n=c=DOM.create('div',{style:'position:relative'});n=DOM.add(n,'div',{id:ed.id+'_external','class':'mceExternalToolbar'});DOM.add(n,'a',{id:ed.id+'_external_close',href:'javascript:;','class':'mceExternalClose'});n=DOM.add(n,'table',{id:ed.id+'_tblext',cellSpacing:0,cellPadding:0});etb=DOM.add(n,'tbody');if(p.firstChild.className=='mceOldBoxModel')p.firstChild.appendChild(c);else p.insertBefore(c,p.firstChild);t._addToolbars(etb,o);ed.onMouseUp.add(function(){var e=DOM.get(ed.id+'_external');DOM.show(e);DOM.hide(lastExtID);var f=Event.add(ed.id+'_external_close','click',function(){DOM.hide(ed.id+'_external');Event.remove(ed.id+'_external_close','click',f);});DOM.show(e);DOM.setStyle(e,'top',0-DOM.getRect(ed.id+'_tblext').h-1);DOM.hide(e);DOM.show(e);e.style.filter='';lastExtID=ed.id+'_external';e=null;});}if(sl=='top')t._addStatusBar(tb,o);if(!s.theme_advanced_toolbar_container){n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});}if(lo=='bottom')t._addToolbars(tb,o);if(sl=='bottom')t._addStatusBar(tb,o);return ic;},_rowLayout:function(s,tb,o){var t=this,ed=t.editor,dc,da,cf=ed.controlManager,n,ic,to,a;dc=s.theme_advanced_containers_default_class||'';da=s.theme_advanced_containers_default_align||'center';each(explode(s.theme_advanced_containers||''),function(c,i){var v=s['theme_advanced_container_'+c]||'';switch(v.toLowerCase()){case'mceeditor':n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});break;case'mceelementpath':t._addStatusBar(tb,o);break;default:a=(s['theme_advanced_container_'+c+'_align']||da).toLowerCase();a='mce'+t._ufirst(a);n=DOM.add(DOM.add(tb,'tr'),'td',{'class':'mceToolbar '+(s['theme_advanced_container_'+c+'_class']||dc)+' '+a||da});to=cf.createToolbar("toolbar"+i);t._addControls(v,to);DOM.setHTML(n,to.renderHTML());o.deltaHeight-=s.theme_advanced_row_height;}});return ic;},_addControls:function(v,tb){var t=this,s=t.settings,di,cf=t.editor.controlManager;if(s.theme_advanced_disable&&!t._disabled){di={};each(explode(s.theme_advanced_disable),function(v){di[v]=1;});t._disabled=di;}else di=t._disabled;each(explode(v),function(n){var c;if(di&&di[n])return;if(n=='tablecontrols'){each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"],function(n){n=t.createControl(n,cf);if(n)tb.add(n);});return;}c=t.createControl(n,cf);if(c)tb.add(c);});},_addToolbars:function(c,o){var t=this,i,tb,ed=t.editor,s=t.settings,v,cf=ed.controlManager,di,n,h=[],a;a=s.theme_advanced_toolbar_align.toLowerCase();a='mce'+t._ufirst(a);n=DOM.add(DOM.add(c,'tr'),'td',{'class':'mceToolbar '+a});if(!ed.getParam('accessibility_focus')||ed.getParam('tab_focus'))h.push(DOM.createHTML('a',{href:'#',onfocus:'tinyMCE.get(\''+ed.id+'\').focus();'},'<!-- IE -->'));h.push(DOM.createHTML('a',{href:'#',accesskey:'q',title:ed.getLang("advanced.toolbar_focus")},'<!-- IE -->'));for(i=1;(v=s['theme_advanced_buttons'+i]);i++){tb=cf.createToolbar("toolbar"+i,{'class':'mceToolbarRow'+i});if(s['theme_advanced_buttons'+i+'_add'])v+=','+s['theme_advanced_buttons'+i+'_add'];if(s['theme_advanced_buttons'+i+'_add_before'])v=s['theme_advanced_buttons'+i+'_add_before']+','+v;t._addControls(v,tb);h.push(tb.renderHTML());o.deltaHeight-=s.theme_advanced_row_height;}h.push(DOM.createHTML('a',{href:'#',accesskey:'z',title:ed.getLang("advanced.toolbar_focus"),onfocus:'tinyMCE.getInstanceById(\''+ed.id+'\').focus();'},'<!-- IE -->'));DOM.setHTML(n,h.join(''));},_addStatusBar:function(tb,o){var n,t=this,ed=t.editor,s=t.settings,r,mf,me,td;n=DOM.add(tb,'tr');n=td=DOM.add(n,'td',{'class':'mceStatusbar'});n=DOM.add(n,'div',{id:ed.id+'_path_row'},s.theme_advanced_path?ed.translate('advanced.path')+': ':' ');DOM.add(n,'a',{href:'#',accesskey:'x'});if(s.theme_advanced_resizing&&!tinymce.isOldWebKit){DOM.add(td,'a',{id:ed.id+'_resize',href:'javascript:;',onclick:"return false;",'class':'mceResize'});if(s.theme_advanced_resizing_use_cookie){ed.onPostRender.add(function(){var o=Cookie.getHash("TinyMCE_"+ed.id+"_size"),c=DOM.get(ed.id+'_tbl');if(!o)return;if(s.theme_advanced_resize_horizontal)c.style.width=Math.max(10,o.cw)+'px';c.style.height=Math.max(10,o.ch)+'px';DOM.get(ed.id+'_ifr').style.height=Math.max(10,parseInt(o.ch)+t.deltaHeight)+'px';});}ed.onPostRender.add(function(){Event.add(ed.id+'_resize','mousedown',function(e){var c,p,w,h,n,pa;c=DOM.get(ed.id+'_tbl');w=c.clientWidth;h=c.clientHeight;miw=s.theme_advanced_resizing_min_width||100;mih=s.theme_advanced_resizing_min_height||100;maw=s.theme_advanced_resizing_max_width||0xFFFF;mah=s.theme_advanced_resizing_max_height||0xFFFF;p=DOM.add(DOM.get(ed.id+'_parent'),'div',{'class':'mcePlaceHolder'});DOM.setStyles(p,{width:w,height:h});DOM.hide(c);DOM.show(p);r={x:e.screenX,y:e.screenY,w:w,h:h,dx:null,dy:null};mf=Event.add(DOM.doc,'mousemove',function(e){var w,h;r.dx=e.screenX-r.x;r.dy=e.screenY-r.y;w=Math.max(miw,r.w+r.dx);h=Math.max(mih,r.h+r.dy);w=Math.min(maw,w);h=Math.min(mah,h);if(s.theme_advanced_resize_horizontal)p.style.width=w+'px';p.style.height=h+'px';return Event.cancel(e);});me=Event.add(DOM.doc,'mouseup',function(e){var ifr;Event.remove(DOM.doc,'mousemove',mf);Event.remove(DOM.doc,'mouseup',me);c.style.display='';DOM.remove(p);if(r.dx===null)return;ifr=DOM.get(ed.id+'_ifr');if(s.theme_advanced_resize_horizontal)c.style.width=Math.max(10,r.w+r.dx)+'px';c.style.height=Math.max(10,r.h+r.dy)+'px';ifr.style.height=Math.max(10,ifr.clientHeight+r.dy)+'px';if(s.theme_advanced_resizing_use_cookie){Cookie.setHash("TinyMCE_"+ed.id+"_size",{cw:r.w+r.dx,ch:r.h+r.dy});}});return Event.cancel(e);});});}o.deltaHeight-=21;n=tb=null;},_nodeChanged:function(ed,cm,n,co){var t=this,p,de=0,v,c,s=t.settings;tinymce.each(t.stateControls,function(c){cm.setActive(c,ed.queryCommandState(t.controls[c][1]));});cm.setActive('visualaid',ed.hasVisual);cm.setDisabled('undo',!ed.undoManager.hasUndo()&&!ed.typing);cm.setDisabled('redo',!ed.undoManager.hasRedo());cm.setDisabled('outdent',!ed.queryCommandState('Outdent'));p=DOM.getParent(n,'A');if(c=cm.get('link')){if(!p||!p.name){c.setDisabled(!p&&co);c.setActive(!!p);}}if(c=cm.get('unlink')){c.setDisabled(!p&&co);c.setActive(!!p&&!p.name);}if(c=cm.get('anchor')){c.setActive(!!p&&p.name);if(tinymce.isWebKit){p=DOM.getParent(n,'IMG');c.setActive(!!p&&DOM.getAttrib(p,'mce_name')=='a');}}p=DOM.getParent(n,'IMG');if(c=cm.get('image'))c.setActive(!!p&&n.className.indexOf('mceItem')==-1);if(c=cm.get('styleselect')){if(n.className){t._importClasses();c.select(n.className);}else c.select();}if(c=cm.get('formatselect')){p=DOM.getParent(n,DOM.isBlock);if(p)c.select(p.nodeName.toLowerCase());}if(c=cm.get('fontselect'))c.select(ed.queryCommandValue('FontName'));if(c=cm.get('fontsizeselect'))c.select(''+ed.queryCommandValue('FontSize'));if(s.theme_advanced_path&&s.theme_advanced_statusbar_location){p=DOM.get(ed.id+'_path')||DOM.add(ed.id+'_path_row','span',{id:ed.id+'_path'});DOM.setHTML(p,'');ed.dom.getParent(n,function(n){var na=n.nodeName.toLowerCase(),u,pi,ti='';if(n.nodeType!=1||(DOM.hasClass(n,'mceItemHidden')||DOM.hasClass(n,'mceItemRemoved')))return;if(v=DOM.getAttrib(n,'mce_name'))na=v;if(tinymce.isIE&&n.scopeName!=='HTML')na=n.scopeName+':'+na;na=na.replace(/mce\:/g,'');switch(na){case'b':na='strong';break;case'i':na='em';break;case'img':if(v=DOM.getAttrib(n,'src'))ti+='src: '+v+' ';break;case'a':if(v=DOM.getAttrib(n,'name')){ti+='name: '+v+' ';na+='#'+v;}if(v=DOM.getAttrib(n,'href'))ti+='href: '+v+' ';break;case'font':if(s.convert_fonts_to_spans)na='span';if(v=DOM.getAttrib(n,'face'))ti+='font: '+v+' ';if(v=DOM.getAttrib(n,'size'))ti+='size: '+v+' ';if(v=DOM.getAttrib(n,'color'))ti+='color: '+v+' ';break;case'span':if(v=DOM.getAttrib(n,'style'))ti+='style: '+v+' ';break;}if(v=DOM.getAttrib(n,'id'))ti+='id: '+v+' ';if(v=n.className){v=v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g,'');if(v&&v.indexOf('mceItem')==-1){ti+='class: '+v+' ';if(DOM.isBlock(n)||na=='img'||na=='span')na+='.'+v;}}na=na.replace(/(html:)/g,'');na={name:na,node:n,title:ti};t.onResolveName.dispatch(t,na);ti=na.title;na=na.name;pi=DOM.create('a',{'href':"javascript:;",onmousedown:"return false;",title:ti,'class':'mcePath_'+(de++)},na);if(p.hasChildNodes()){p.insertBefore(DOM.doc.createTextNode(' \u00bb '),p.firstChild);p.insertBefore(pi,p.firstChild);}else p.appendChild(pi);},ed.getBody());}},_sel:function(v){this.editor.execCommand('mceSelectNodeDepth',false,v);},_mceInsertAnchor:function(ui,v){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/anchor.htm',width:320+parseInt(ed.getLang('advanced.anchor_delta_width',0)),height:90+parseInt(ed.getLang('advanced.anchor_delta_height',0)),inline:true},{theme_url:this.url});},_mceCharMap:function(){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/charmap.htm',width:550+parseInt(ed.getLang('advanced.charmap_delta_width',0)),height:250+parseInt(ed.getLang('advanced.charmap_delta_height',0)),inline:true},{theme_url:this.url});},_mceHelp:function(){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/about.htm',width:480,height:380,inline:true},{theme_url:this.url});},_mceColorPicker:function(u,v){var ed=this.editor;v=v||{};ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/color_picker.htm',width:375+parseInt(ed.getLang('advanced.colorpicker_delta_width',0)),height:250+parseInt(ed.getLang('advanced.colorpicker_delta_height',0)),close_previous:false,inline:true},{input_color:v.color,func:v.func,theme_url:this.url});},_mceCodeEditor:function(ui,val){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/source_editor.htm',width:parseInt(ed.getParam("theme_advanced_source_editor_width",720)),height:parseInt(ed.getParam("theme_advanced_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url});},_mceImage:function(ui,val){var ed=this.editor;if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/image.htm',width:355+parseInt(ed.getLang('advanced.image_delta_width',0)),height:275+parseInt(ed.getLang('advanced.image_delta_height',0)),inline:true},{theme_url:this.url});},_mceLink:function(ui,val){var ed=this.editor;ed.windowManager.open({url:tinymce.baseURL+'/themes/advanced/link.htm',width:310+parseInt(ed.getLang('advanced.link_delta_width',0)),height:200+parseInt(ed.getLang('advanced.link_delta_height',0)),inline:true},{theme_url:this.url});},_mceNewDocument:function(){var ed=this.editor;ed.windowManager.confirm('advanced.newdocument',function(s){if(s)ed.execCommand('mceSetContent',false,'');});},_mceForeColor:function(){var t=this;this._mceColorPicker(0,{color:t.fgColor,func:function(co){t.fgColor=co;t.editor.execCommand('ForeColor',false,co);}});},_mceBackColor:function(){var t=this;this._mceColorPicker(0,{color:t.bgColor,func:function(co){t.bgColor=co;t.editor.execCommand('HiliteColor',false,co);}});},_ufirst:function(s){return s.substring(0,1).toUpperCase()+s.substring(1);}});tinymce.ThemeManager.add('advanced',tinymce.themes.AdvancedTheme);}());
\ No newline at end of file
/**\r
- * $Id: editor_template_src.js 766 2008-04-03 20:37:06Z spocke $\r
+ * $Id: editor_template_src.js 852 2008-05-27 05:52:09Z spocke $\r
*\r
* @author Moxiecode\r
* @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
return false;\r
},\r
\r
- _importClasses : function() {\r
+ _importClasses : function(e) {\r
var ed = this.editor, c = ed.controlManager.get('styleselect');\r
\r
if (c.getLength() == 0) {\r
});\r
\r
c.onPostRender.add(function(ed, n) {\r
- Event.add(n, 'focus', t._importClasses, t);\r
- Event.add(n, 'mousedown', t._importClasses, t);\r
+ Event.add(n.id + '_text', 'focus', t._importClasses, t);\r
+ Event.add(n.id + '_text', 'mousedown', t._importClasses, t);\r
});\r
}\r
\r
},\r
\r
_createFontSizeSelect : function() {\r
- var c, t = this, lo = [\r
+ var t = this, ed = t.editor, c, lo = [\r
"1 (8 pt)",\r
"2 (10 pt)",\r
"3 (12 pt)",\r
"7 (36 pt)"\r
], fz = [8, 10, 12, 14, 18, 24, 36];\r
\r
- c = t.editor.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', cmd : 'FontSize'});\r
+ c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', cmd : 'FontSize'});\r
if (c) {\r
- each(explode(t.settings.theme_advanced_font_sizes), function(v) {\r
- c.add(lo[parseInt(v) - 1], v, {'style' : 'font-size:' + fz[v - 1] + 'pt', 'class' : 'mceFontSize' + v});\r
+ each(ed.getParam('theme_advanced_font_sizes', t.settings.theme_advanced_font_sizes, 'hash'), function(v, k) {\r
+ c.add(k != v ? k : lo[parseInt(v) - 1], v, {'style' : 'font-size:' + fz[v - 1] + 'pt', 'class' : 'mceFontSize' + v});\r
});\r
}\r
\r
each(explode(s.theme_advanced_containers || ''), function(c, i) {\r
var v = s['theme_advanced_container_' + c] || '';\r
\r
- switch (c.toLowerCase()) {\r
+ switch (v.toLowerCase()) {\r
case 'mceeditor':\r
n = DOM.add(tb, 'tr');\r
n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
break;\r
\r
default:\r
- a = s['theme_advanced_container_' + c + '_align'].toLowerCase();\r
+ a = (s['theme_advanced_container_' + c + '_align'] || da).toLowerCase();\r
a = 'mce' + t._ufirst(a);\r
\r
n = DOM.add(DOM.add(tb, 'tr'), 'td', {\r
c.select(ed.queryCommandValue('FontName'));\r
\r
if (c = cm.get('fontsizeselect'))\r
- c.select(ed.queryCommandValue('FontSize'));\r
+ c.select('' + ed.queryCommandValue('FontSize'));\r
\r
if (s.theme_advanced_path && s.theme_advanced_statusbar_location) {\r
p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'});\r
var t = this;\r
\r
this._mceColorPicker(0, {\r
+ color: t.fgColor,\r
func : function(co) {\r
+ t.fgColor = co;\r
t.editor.execCommand('ForeColor', false, co);\r
}\r
});\r
var t = this;\r
\r
this._mceColorPicker(0, {\r
+ color: t.bgColor,\r
func : function(co) {\r
+ t.bgColor = co;\r
t.editor.execCommand('HiliteColor', false, co);\r
}\r
});\r
\r
color = finalR + finalG + finalB;\r
\r
- document.getElementById('gs' + i).style.backgroundColor = '#'+color;\r
+ setCol('gs' + i, '#'+color);\r
}\r
}\r
\r
if (color.indexOf('#') == -1)\r
color = convertRGBToHex(color);\r
\r
- document.getElementById('preview').style.backgroundColor = color;\r
+ setCol('preview', color);\r
document.getElementById('color').value = color;\r
}\r
\r
+function setCol(e, c) {\r
+ try {\r
+ document.getElementById(e).style.backgroundColor = c;\r
+ } catch (ex) {\r
+ // Ignore IE warning\r
+ }\r
+}\r
+\r
tinyMCEPopup.onInit.add(init);\r
if (el && el.nodeName == 'IMG') {\r
ed.dom.setAttribs(el, args);\r
} else {\r
- ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" src="javascript:;" />', {skip_undo : 1});\r
+ ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});\r
ed.dom.setAttribs('__mce_tmp', args);\r
ed.dom.setAttrib('__mce_tmp', 'id', '');\r
ed.undoManager.add();\r
var f = document.forms[0], ed = tinyMCEPopup.editor, e, b;\r
\r
tinyMCEPopup.restoreSelection();\r
+ e = ed.dom.getParent(ed.selection.getNode(), 'A');\r
\r
// Remove element if there is no href\r
if (!f.href.value) {\r
- e = ed.dom.getParent(ed.selection.getNode(), 'A');\r
if (e) {\r
tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
b = ed.selection.getBookmark();\r
}\r
}\r
\r
- ed.execCommand('mceInsertLink', false, {\r
- href : f.href.value,\r
- title : f.linktitle.value,\r
- target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,\r
- 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null\r
- });\r
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
\r
+ // Create new anchor elements\r
+ if (e == null) {\r
+ tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});\r
+\r
+ tinymce.each(ed.dom.select("a"), function(n) {\r
+ if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {\r
+ e = n;\r
+\r
+ ed.dom.setAttribs(e, {\r
+ href : f.href.value,\r
+ title : f.linktitle.value,\r
+ target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,\r
+ 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null\r
+ });\r
+ }\r
+ });\r
+ } else {\r
+ ed.dom.setAttribs(e, {\r
+ href : f.href.value,\r
+ title : f.linktitle.value,\r
+ target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,\r
+ 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null\r
+ });\r
+ }\r
+\r
+ // Don't move caret if selection was image\r
+ if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') {\r
+ ed.focus();\r
+ ed.selection.select(e);\r
+ ed.selection.collapse(0);\r
+ tinyMCEPopup.storeSelection();\r
+ }\r
+\r
+ tinyMCEPopup.execCommand("mceEndUndoLevel");\r
tinyMCEPopup.close();\r
},\r
\r
--- /dev/null
+tinyMCE.addI18n('ar.advanced',{\r
+style_select:"Styles",\r
+font_size:"\u062D\u062C\u0645 \u0627\u0644\u062E\u0637",\r
+fontdefault:"\u0646\u0648\u0639 \u0627\u0644\u062E\u0637",\r
+block:"\u062A\u0646\u0633\u064A\u0642",\r
+paragraph:"\u0641\u0642\u0631\u0629",\r
+div:"Div",\r
+address:"\u0639\u0646\u0648\u0627\u0646",\r
+pre:"Preformatted",\r
+h1:"\u0639\u0646\u0648\u0627\u0646 1",\r
+h2:"\u0639\u0646\u0648\u0627\u0646 2",\r
+h3:"\u0639\u0646\u0648\u0627\u0646 3",\r
+h4:"\u0639\u0646\u0648\u0627\u0646 4",\r
+h5:"\u0639\u0646\u0648\u0627\u0646 5",\r
+h6:"\u0639\u0646\u0648\u0627\u0646 6",\r
+blockquote:"Blockquote",\r
+code:"\u0643\u0648\u062F",\r
+samp:"\u0643\u0648\u062F \u0628\u0633\u064A\u0637",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"\u0639\u0631\u064A\u0636 (Ctrl+B)",\r
+italic_desc:"\u0645\u0627\u0626\u0644 (Ctrl+I)",\r
+underline_desc:"\u062A\u062D\u062A\u0647 \u062E\u0637 (Ctrl+U)",\r
+striketrough_desc:"\u064A\u062A\u0648\u0633\u0637\u0629 \u062E\u0637",\r
+justifyleft_desc:"\u0645\u062D\u0627\u0630\u0627\u0629 \u0644\u0644\u064A\u0633\u0627\u0631",\r
+justifycenter_desc:"\u0645\u062D\u0627\u0630\u0627\u0629 \u0644\u0644\u0648\u0633\u0637",\r
+justifyright_desc:"\u0645\u062D\u0627\u0630\u0627\u0629 \u064A\u0645\u064A\u0646",\r
+justifyfull_desc:"\u0636\u0628\u0637",\r
+bullist_desc:"\u062A\u0639\u062F\u0627\u062F \u0646\u0642\u0637\u064A",\r
+numlist_desc:"\u062A\u0639\u062F\u0627\u062F \u0631\u0642\u0645\u064A",\r
+outdent_desc:"\u0625\u0646\u0642\u0627\u0635 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062F\u0626\u0629",\r
+indent_desc:"\u0632\u064A\u0627\u062F\u0629 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062F\u0626\u0629",\r
+undo_desc:"\u062A\u0631\u0627\u062C\u0639 (Ctrl+Z)",\r
+redo_desc:"\u0625\u0639\u0627\u062F\u0629 (Ctrl+Y)",\r
+link_desc:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0631\u0627\u0628\u0637",\r
+unlink_desc:"\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0631\u0627\u0628\u0637",\r
+image_desc:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0635\u0648\u0631\u0629",\r
+cleanup_desc:"\u062A\u0646\u0636\u064A\u0641 \u0627\u0644\u0623\u0643\u0648\u0627\u062F \u0627\u0644\u062E\u0627\u0637\u0626\u0629",\r
+code_desc:"\u062A\u062D\u0631\u064A\u0631 \u0643\u0648\u062F HTML",\r
+sub_desc:"\u0623\u0633\u0641\u0644 \u0627\u0644\u0646\u0635",\r
+sup_desc:"\u0623\u0639\u0644\u0649 \u0627\u0644\u0646\u0635",\r
+hr_desc:"\u0625\u062F\u0631\u0627\u062C \u062E\u0637 \u0627\u0641\u0642\u064A",\r
+removeformat_desc:"\u0645\u0633\u062D \u0627\u0644\u062A\u0646\u0633\u064A\u0642\u0627\u062A",\r
+custom1_desc:"Your custom description here",\r
+forecolor_desc:"\u062D\u062F\u062F \u0644\u0648\u0646 \u0627\u0644\u0646\u0635",\r
+backcolor_desc:"\u062D\u062F\u062F \u0644\u0648\u0646 \u0627\u0644\u062E\u0644\u0641\u064A\u0629",\r
+charmap_desc:"\u0625\u062F\u0627\u0631\u062C \u062D\u0631\u0641 \u0645\u062E\u0635\u0635",\r
+visualaid_desc:"Toggle guidelines/invisible elements",\r
+anchor_desc:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0639\u0644\u0627\u0645\u0629",\r
+cut_desc:"\u0642\u0635",\r
+copy_desc:"\u0646\u0633\u062E",\r
+paste_desc:"\u0644\u0635\u0642",\r
+image_props_desc:"\u062E\u0635\u0627\u0626\u0635 \u0627\u0644\u0635\u0648\u0631\u0629",\r
+newdocument_desc:"\u0645\u0633\u062A\u0646\u062F \u062C\u062F\u064A\u062F",\r
+help_desc:"\u0645\u0633\u0627\u0639\u062F\u0629",\r
+blockquote_desc:"Blockquote",\r
+clipboard_msg:"\u0646\u0633\u062E/\u0642\u0635/\u0644\u0635\u0642 \u063A\u064A\u0631 \u0645\u062A\u0648\u0641\u0631\u0629 \u0644\u0645\u062A\u0635\u0641\u062D Mozilla \u0648 Firefox.\n\u0647\u0644 \u062A\u0631\u064A\u062F \u0645\u0639\u0631\u0641\u0629 \u0627\u0644\u0645\u0632\u064A\u062F \u0645\u0646 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u062D\u0648\u0644 \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0636\u0648\u0639?",\r
+path:"\u0627\u0644\u0645\u0633\u0627\u0631",\r
+newdocument:"\u0647\u0644 \u062A\u0631\u064A\u062F \u062D\u0642\u0627 \u0645\u0633\u062D \u062C\u0645\u064A\u0639 \u0627\u0644\u0645\u062D\u062A\u0648\u064A\u0627\u062A?",\r
+toolbar_focus:"\u0625\u0646\u062A\u0642\u0627\u0644 \u0644\u0634\u0631\u064A\u0637 \u0627\u0644\u0623\u062F\u0648\u0627\u062A - Alt+Q, \u0625\u0646\u062A\u0642\u0627\u0644 \u0644\u0644\u0645\u062D\u0631\u0631 - Alt-Z, \u0625\u0646\u062A\u0642\u0627\u0644 \u0644\u0644\u0645\u0633\u0627\u0631 - Alt-X",\r
+more_colors:"\u0645\u0632\u064A\u062F \u0645\u0646 \u0627\u0644\u0623\u0644\u0648\u0627\u0646"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ar.advanced_dlg',{\r
+about_title:"\u062D\u0648\u0644 TinyMCE",\r
+about_general:"\u062D\u0648\u0644",\r
+about_help:"\u0645\u0633\u0627\u0639\u062F\u0629",\r
+about_license:"\u0627\u0644\u0631\u062E\u0635\u0629",\r
+about_plugins:"\u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062A",\r
+about_plugin:"\u0627\u0644\u0625\u0636\u0627\u0641\u0629",\r
+about_author:"\u0627\u0644\u0645\u0628\u0631\u0645\u062C",\r
+about_version:"\u0627\u0644\u0625\u0635\u062F\u0627\u0631",\r
+about_loaded:"\u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062A \u0627\u0644\u0645\u062D\u0645\u0644\u0629",\r
+anchor_title:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0639\u0644\u0627\u0645\u0629",\r
+anchor_name:"\u0627\u0633\u0645 \u0627\u0644\u0639\u0644\u0627\u0645\u0629",\r
+code_title:"\u0645\u062D\u0631\u0631 \u0643\u0648\u062F HTML",\r
+code_wordwrap:"\u0627\u0644\u062A\u0641\u0627\u0641 \u0627\u0644\u0646\u0635",\r
+colorpicker_title:"\u062D\u062F\u062F \u0644\u0648\u0646",\r
+colorpicker_picker_tab:"\u0627\u0644\u0645\u0627\u0632\u062C",\r
+colorpicker_picker_title:"\u0645\u0627\u0632\u062C \u0627\u0644\u0623\u0644\u0648\u0627\u0646",\r
+colorpicker_palette_tab:"\u0627\u0644\u0644\u0648\u062D\u0629",\r
+colorpicker_palette_title:"\u0644\u0648\u062D\u0629 \u0627\u0644\u0623\u0644\u0648\u0627\u0646",\r
+colorpicker_named_tab:"\u0627\u0644\u0623\u0633\u0645\u0627\u0621",\r
+colorpicker_named_title:"\u0627\u0633\u0645\u0627\u0621 \u0627\u0644\u0623\u0644\u0648\u0627\u0646",\r
+colorpicker_color:"\u0627\u0644\u0644\u0648\u0646:",\r
+colorpicker_name:"\u0627\u0644\u0623\u0633\u0645:",\r
+charmap_title:"\u062D\u062F\u062F \u062D\u0631\u0641 \u0645\u062E\u0635\u0635",\r
+image_title:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0635\u0648\u0631\u0629",\r
+image_src:"\u0631\u0627\u0628\u0637 \u0627\u0644\u0635\u0648\u0631\u0629",\r
+image_alt:"\u0648\u0635\u0641 \u0627\u0644\u0635\u0648\u0631\u0629",\r
+image_list:"\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0635\u0648\u0631",\r
+image_border:"\u0627\u0644\u062D\u062F\u0648\u062F",\r
+image_dimensions:"\u0627\u0644\u0642\u064A\u0627\u0633\u0627\u062A",\r
+image_vspace:"\u0645\u0633\u0627\u0641\u0629 \u0639\u0645\u0648\u062F\u064A\u0629",\r
+image_hspace:"\u0645\u0633\u0627\u0641\u0629 \u0627\u0641\u0642\u064A\u0629",\r
+image_align:"\u0645\u062D\u0627\u0630\u0627\u0629",\r
+image_align_baseline:"\u062E\u0637 \u0627\u0644\u0642\u0627\u0639\u062F\u0629",\r
+image_align_top:"\u0623\u0639\u0644\u0649",\r
+image_align_middle:"\u062A\u0648\u0633\u064A\u0637 \u0639\u0645\u0648\u062F\u064A",\r
+image_align_bottom:"\u0627\u0633\u0641\u0644",\r
+image_align_texttop:"\u0623\u0639\u0644\u0649 \u0627\u0644\u0646\u0635",\r
+image_align_textbottom:"\u0623\u0633\u0641\u0644 \u0627\u0644\u0646\u0635",\r
+image_align_left:"\u064A\u0633\u0627\u0631",\r
+image_align_right:"\u064A\u0645\u064A\u0646",\r
+link_title:"\u0625\u062F\u0631\u0627\u062C/\u062A\u062D\u0631\u064A\u0631 \u0631\u0627\u0628\u0637",\r
+link_url:"\u0627\u0644\u0631\u0627\u0628\u0637",\r
+link_target:"\u0627\u0644\u0645\u0633\u0627\u0631",\r
+link_target_same:"\u0641\u062A\u062D \u0627\u0644\u0631\u0627\u0628\u0637 \u0641\u064A \u0646\u0641\u0633 \u0627\u0644\u0635\u0641\u062D\u0629",\r
+link_target_blank:"\u0641\u062A\u062D \u0627\u0644\u0631\u0627\u0628\u0637 \u0641\u064A \u0635\u0641\u062D\u0629 \u062C\u062F\u064A\u062F\u0629",\r
+link_titlefield:"\u0627\u0644\u0639\u0646\u0648\u0627\u0646",\r
+link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
+link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
+link_list:"\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0631\u0648\u0627\u0628\u0637"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bg.advanced',{\r
+style_select:"\u0421\u0442\u0438\u043B\u043E\u0432\u0435",\r
+font_size:"\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0430 \u0448\u0440\u0438\u0444\u0442\u0430",\r
+fontdefault:"\u0428\u0440\u0438\u0444\u0442",\r
+block:"\u0424\u043E\u0440\u043C\u0430\u0442",\r
+paragraph:"\u041F\u0430\u0440\u0430\u0433\u0440\u0430\u0444",\r
+div:"Div",\r
+address:"\u0410\u0434\u0440\u0435\u0441",\r
+pre:"\u041F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u043D\u043E \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u0430\u043D",\r
+h1:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 1",\r
+h2:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 2",\r
+h3:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 3",\r
+h4:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 4",\r
+h5:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 5",\r
+h6:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435 6",\r
+blockquote:"\u0426\u0438\u0442\u0430\u0442",\r
+code:"\u041A\u043E\u0434",\r
+samp:"\u041F\u0440\u043E\u043C\u0435\u0440\u0435\u043D \u043A\u043E\u0434",\r
+dt:"\u0414\u0435\u0444\u0438\u043D\u0438\u0446\u0438\u044F ",\r
+dd:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430 \u0434\u0435\u0444\u0438\u043D\u0438\u0446\u0438\u044F",\r
+bold_desc:"\u041F\u043E\u043B\u0443\u0447\u0435\u0440 (Ctrl+B)",\r
+italic_desc:"\u041A\u0443\u0440\u0441\u0438\u0432 (Ctrl+I)",\r
+underline_desc:"\u041F\u043E\u0434\u0447\u0435\u0440\u0442\u0430\u043D (Ctrl+U)",\r
+striketrough_desc:"\u0417\u0430\u0447\u0435\u0440\u0442\u0430\u043D",\r
+justifyleft_desc:"\u041F\u043E\u0434\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435 \u043E\u0442\u043B\u044F\u0432\u043E",\r
+justifycenter_desc:"\u0426\u0435\u043D\u0442\u0440\u0438\u0440\u0430\u043D\u043E",\r
+justifyright_desc:"\u041F\u043E\u0434\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435 \u043E\u0442\u0434\u044F\u0441\u043D\u043E",\r
+justifyfull_desc:"\u0414\u0432\u0443\u0441\u0442\u0440\u0430\u043D\u043D\u043E",\r
+bullist_desc:"\u0412\u043E\u0434\u0430\u0447\u0438",\r
+numlist_desc:"\u041D\u043E\u043C\u0435\u0440\u0430",\r
+outdent_desc:"\u041D\u0430\u043C\u0430\u043B\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0442\u0441\u0442\u044A\u043F\u0430",\r
+indent_desc:"\u0423\u0432\u0435\u043B\u0438\u0447\u0430\u0432\u0430\u043D\u0435 \u043D\u0430 \u043E\u0442\u0441\u0442\u044A\u043F\u0430",\r
+undo_desc:"\u041E\u0442\u043C\u044F\u043D\u0430 (Ctrl+Z)",\r
+redo_desc:"\u0412\u044A\u0437\u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0432\u0430\u043D\u0435 (Ctrl+Y)",\r
+link_desc:"\u0412\u043C\u044A\u043A\u0432\u0430\u043D\u0435/\u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u043D\u0430 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430",\r
+unlink_desc:"\u041F\u0440\u0435\u043C\u0430\u0445\u043D\u0438 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430",\r
+image_desc:"\u0412\u043C\u044A\u043A\u0432\u0430\u043D\u0435/\u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044F \u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+cleanup_desc:"\u0418\u0437\u0447\u0438\u0441\u0442\u0438 \u043A\u043E\u0434\u0430",\r
+code_desc:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 HTML",\r
+sub_desc:"\u0414\u043E\u043B\u0435\u043D \u0438\u043D\u0434\u0435\u043A\u0441",\r
+sup_desc:"\u0413\u043E\u0440\u0435\u043D \u0438\u043D\u0434\u0435\u043A\u0441",\r
+hr_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u0445\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u043D\u0430 \u043B\u0438\u043D\u0438\u044F",\r
+removeformat_desc:"\u041F\u0440\u0435\u043C\u0430\u0445\u043D\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u0430\u043D\u0435\u0442\u043E",\r
+custom1_desc:"\u0412\u0430\u0448\u0435\u0442\u043E \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0442\u0443\u043A",\r
+forecolor_desc:"\u0418\u0437\u0431\u0435\u0440\u0438 \u0446\u0432\u044F\u0442 \u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u0430",\r
+backcolor_desc:"\u0418\u0437\u0431\u0435\u0440\u0438 \u0446\u0432\u044F\u0442 \u043D\u0430 \u0444\u043E\u043D\u0430",\r
+charmap_desc:"\u0412\u043C\u044A\u043A\u043D\u0438 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+visualaid_desc:"\u0412\u043A\u043B./\u0438\u0437\u043A\u043B. \u043D\u0435\u0432\u0438\u0434\u0438\u043C\u0438\u0442\u0435 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438",\r
+anchor_desc:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u043A\u043E\u0442\u0432\u0430",\r
+cut_desc:"\u0418\u0437\u0440\u044F\u0437\u0432\u0430\u043D\u0435",\r
+copy_desc:"\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435",\r
+paste_desc:"\u041F\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435",\r
+image_props_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430\u0442\u0430",\r
+newdocument_desc:"\u041D\u043E\u0432 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442",\r
+help_desc:"\u041F\u043E\u043C\u043E\u0449",\r
+blockquote_desc:"\u0426\u0438\u0442\u0430\u0442",\r
+clipboard_msg:"\u041A\u043E\u043F\u0438\u0440\u0430\u043D\u0435/\u041E\u0442\u0440\u044F\u0437\u0432\u0430\u043D\u0435/\u041F\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435 \u043D\u0435 \u0435 \u0434\u043E\u0441\u0442\u044A\u043F\u043D\u043E \u043F\u043E\u0434 Mozilla \u0438 Firefox.\r\n\u0416\u0435\u043B\u0430\u0435\u0442\u0435 \u043B\u0438 \u043F\u043E\u0432\u0435\u0447\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430?",\r
+path:"\u041F\u044A\u0442",\r
+newdocument:"\u0421\u0438\u0433\u0443\u0440\u0435\u043D \u043B\u0438 \u0441\u0442\u0435, \u0447\u0435 \u0438\u0441\u043A\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u0447\u0438\u0441\u0442\u0438\u0442\u0435 \u0446\u044F\u043B\u043E\u0442\u043E \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435?",\r
+toolbar_focus:"\u041E\u0442\u0438\u0434\u0438 \u043F\u0440\u0438 \u0431\u0443\u0442\u043E\u043D\u0438\u0442\u0435 - Alt+Q, \u041E\u0442\u0438\u0434\u0438 \u043F\u0440\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430 - Alt-Z, \u041E\u0442\u0438\u0434\u0438 \u043F\u0440\u0438 \u043F\u044A\u0442\u0435\u043A\u0430\u0442\u0430 \u043D\u0430 \u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438\u0442\u0435 - Alt-X",\r
+more_colors:"\u041E\u0449\u0435 \u0446\u0432\u0435\u0442\u043E\u0432\u0435"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bg.advanced_dlg',{\r
+about_title:"\u041E\u0442\u043D\u043E\u0441\u043D\u043E TinyMCE",\r
+about_general:"\u041E\u0442\u043D\u043E\u0441\u043D\u043E",\r
+about_help:"\u041F\u043E\u043C\u043E\u0449",\r
+about_license:"\u041B\u0438\u0446\u0435\u043D\u0437",\r
+about_plugins:"\u0414\u043E\u0431\u0430\u0432\u043A\u0438",\r
+about_plugin:"\u0414\u043E\u0431\u0430\u0432\u043A\u0430",\r
+about_author:"\u0410\u0432\u0442\u043E\u0440",\r
+about_version:"\u0412\u0435\u0440\u0441\u0438\u044F",\r
+about_loaded:"\u0417\u0430\u0440\u0435\u0434\u0435\u043D\u0438 \u0434\u043E\u0431\u0430\u0432\u043A\u0438",\r
+anchor_title:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u043A\u043E\u0442\u0432\u0430",\r
+anchor_name:"\u0418\u043C\u0435 \u043D\u0430 \u043A\u043E\u0442\u0432\u0430\u0442\u0430",\r
+code_title:"\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043D\u0430 HTML",\r
+code_wordwrap:"\u041F\u0440\u0435\u043D\u043E\u0441 \u043D\u0430 \u0434\u0443\u043C\u0438",\r
+colorpicker_title:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0446\u0432\u044F\u0442",\r
+colorpicker_picker_tab:"\u0418\u0437\u0431\u043E\u0440",\r
+colorpicker_picker_title:"\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0446\u0432\u044F\u0442",\r
+colorpicker_palette_tab:"\u041F\u0430\u043B\u0438\u0442\u0440\u0430",\r
+colorpicker_palette_title:"\u0426\u0432\u0435\u0442\u043E\u0432\u0430 \u043F\u0430\u043B\u0438\u0442\u0440\u0430",\r
+colorpicker_named_tab:"\u0418\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0438",\r
+colorpicker_named_title:"\u0418\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0438 \u0446\u0432\u0435\u0442\u043E\u0432\u0435",\r
+colorpicker_color:"\u0426\u0432\u044F\u0442:",\r
+colorpicker_name:"\u0418\u043C\u0435:",\r
+charmap_title:"\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+image_title:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+image_src:"URL \u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+image_alt:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430",\r
+image_list:"\u0421\u043F\u0438\u0441\u044A\u043A \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438",\r
+image_border:"\u0420\u0430\u043C\u043A\u0430",\r
+image_dimensions:"\u0420\u0430\u0437\u043C\u0435\u0440\u0438",\r
+image_vspace:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u043D\u043E \u0440\u0430\u0437\u0441\u0442\u043E\u044F\u043D\u0438\u0435",\r
+image_hspace:"\u0425\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u043D\u043E \u0440\u0430\u0437\u0441\u0442\u043E\u044F\u043D\u0438\u0435",\r
+image_align:"\u041F\u043E\u0434\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435",\r
+image_align_baseline:"\u0411\u0430\u0437\u043E\u0432\u0430 \u043B\u0438\u043D\u0438\u044F",\r
+image_align_top:"\u0413\u043E\u0440\u0435",\r
+image_align_middle:"\u0426\u0435\u043D\u0442\u0440\u0438\u0440\u0430\u043D\u0435",\r
+image_align_bottom:"\u0414\u043E\u043B\u0443",\r
+image_align_texttop:"\u0422\u0435\u043A\u0441\u0442 \u0433\u043E\u0440\u0435",\r
+image_align_textbottom:"\u0422\u0435\u043A\u0441\u0442 \u0434\u043E\u043B\u0443",\r
+image_align_left:"\u041B\u044F\u0432\u043E",\r
+image_align_right:"\u0414\u044F\u0441\u043D\u043E",\r
+link_title:"\u0412\u043C\u044A\u043A\u043D\u0438/\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0430\u0439 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430",\r
+link_url:"URL \u043D\u0430 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430",\r
+link_target:"\u0426\u0435\u043B",\r
+link_target_same:"\u041E\u0442\u0432\u043E\u0440\u0438 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u0432 \u0441\u044A\u0449\u0438\u044F\u0442 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446",\r
+link_target_blank:"\u041E\u0442\u0432\u043E\u0440\u0438 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430\u0442\u0430 \u0432 \u043D\u043E\u0432 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446",\r
+link_titlefield:"\u0417\u0430\u0433\u043B\u0430\u0432\u0438\u0435",\r
+link_is_email:"URL-\u0442\u043E \u043A\u043E\u0435\u0442\u043E \u0432\u044A\u0432\u0435\u0434\u043E\u0445\u0442\u0435 \u0435 email \u0430\u0434\u0440\u0435\u0441, \u0436\u0435\u043B\u0430\u0435\u0442\u0435 \u043B\u0438 \u0434\u0430 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u0435 \u043D\u0443\u0436\u043D\u0438\u044F\u0442 mailto: \u043F\u0440\u0435\u0444\u0438\u043A\u0441?",\r
+link_is_external:"URL-\u0442\u043E \u043A\u043E\u0435\u0442\u043E \u0432\u044A\u0432\u0435\u0434\u043E\u0445\u0442\u0435 \u0435 \u0432\u044A\u043D\u0448\u043D\u0430 \u0445\u0438\u043F\u0435\u0440\u0432\u0440\u044A\u0437\u043A\u0430, \u0436\u0435\u043B\u0430\u0435\u0442\u0435 \u043B\u0438 \u0434\u0430 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u0435 \u043D\u0443\u0436\u043D\u0438\u044F\u0442 http:// \u043F\u0440\u0435\u0444\u0438\u043A\u0441?",\r
+link_list:"\u0421\u043F\u0438\u0441\u044A\u043A \u043B\u0438\u043D\u043A\u043E\u0432\u0435"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bs.advanced',{\r
+style_select:"Stilovi",\r
+font_size:"Veli\u010Dina pisma",\r
+fontdefault:"Vrsta pisma",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adresa",\r
+pre:"Oblikovano",\r
+h1:"Naslov 1",\r
+h2:"Naslov 2",\r
+h3:"Naslov 3",\r
+h4:"Naslov 4",\r
+h5:"Naslov 5",\r
+h6:"Naslov 6",\r
+blockquote:"Citat",\r
+code:"Kod",\r
+samp:"Primjer koda",\r
+dt:"Definicija pojma",\r
+dd:"Opis definicije",\r
+bold_desc:"Podebljaj (Ctrl+B)",\r
+italic_desc:"Kurziv (Ctrl+I)",\r
+underline_desc:"Podcrtaj (Ctrl+U)",\r
+striketrough_desc:"Precrtaj",\r
+justifyleft_desc:"Poravnaj lijevo",\r
+justifycenter_desc:"Centriraj",\r
+justifyright_desc:"Poravnaj desno",\r
+justifyfull_desc:"Poravnaj potpuno",\r
+bullist_desc:"Neure\u0111ena lista",\r
+numlist_desc:"Ure\u0111ena lista",\r
+outdent_desc:"Uvuci",\r
+indent_desc:"Izvuci",\r
+undo_desc:"Poni\u0161ti (Ctrl+Z)",\r
+redo_desc:"Ponovi (Ctrl+Y)",\r
+link_desc:"Umetni/uredi poveznicu",\r
+unlink_desc:"Poni\u0161ti poveznicu",\r
+image_desc:"Umetni/uredi sliku",\r
+cleanup_desc:"Po\u010Disti kod",\r
+code_desc:"Uredi HTML izvor",\r
+sub_desc:"Indeks",\r
+sup_desc:"Eksponent",\r
+hr_desc:"Umetni vodoravnu crtu",\r
+removeformat_desc:"Poni\u0161ti oblikovanje",\r
+custom1_desc:"Vlastiti opis ovdje",\r
+forecolor_desc:"Odaberite boju teksta",\r
+backcolor_desc:"Odaberite boju pozadine",\r
+charmap_desc:"Umetni vlastiti znak",\r
+visualaid_desc:"Vodilice/nevidljivi elementi",\r
+anchor_desc:"Umetni/uredi sidro",\r
+cut_desc:"Izre\u017Ei",\r
+copy_desc:"Kopiraj",\r
+paste_desc:"Zalijepi",\r
+image_props_desc:"Svojstva slike",\r
+newdocument_desc:"Novi dokument",\r
+help_desc:"Pomo\u0107",\r
+blockquote_desc:"Citiraj",\r
+clipboard_msg:"Kopiraj/Izre\u017Ei/Zalijepi nije dostupno u Mozilla i Firefox preglednicima. Vi\u0161e informacija?",\r
+path:"Staza",\r
+newdocument:"Jeste li sigurni da \u017Eelite izbrisati cijeli sadr\u017Eaj?",\r
+toolbar_focus:"Prije\u0111i na alatnu traku - Alt+Q, prije\u0111i na ure\u0111iva\u010D - Alt-Z, prije\u0111i na element path - Alt-X",\r
+more_colors:"Vi\u0161e boja"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('bs.advanced_dlg',{\r
+about_title:"TinyMCE",\r
+about_general:"O programu",\r
+about_help:"Pomo\u0107",\r
+about_license:"Licenca",\r
+about_plugins:"Dodaci",\r
+about_plugin:"Dodatak",\r
+about_author:"Autor",\r
+about_version:"Verzija",\r
+about_loaded:"Postoje\u0107i dodaci",\r
+anchor_title:"Umetni/uredi sidro",\r
+anchor_name:"Ime sidra",\r
+code_title:"HTML ure\u0111iva\u010D",\r
+code_wordwrap:"Omatanje teksta",\r
+colorpicker_title:"Izbor boje",\r
+colorpicker_picker_tab:"Odabir",\r
+colorpicker_picker_title:"Odabir boje",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta boja",\r
+colorpicker_named_tab:"Imenovano",\r
+colorpicker_named_title:"Imenovane boje",\r
+colorpicker_color:"Boja:",\r
+colorpicker_name:"Naziv:",\r
+charmap_title:"Odaberite znak",\r
+image_title:"Umetni/uredi sliku",\r
+image_src:"URL slike",\r
+image_alt:"Opis slike",\r
+image_list:"Lista slika",\r
+image_border:"Obrub",\r
+image_dimensions:"Dimenzije",\r
+image_vspace:"Okomiti razmak",\r
+image_hspace:"Vodoravni razmak",\r
+image_align:"Poravnavanje",\r
+image_align_baseline:"Osnovna linija",\r
+image_align_top:"Vrh",\r
+image_align_middle:"Sredina",\r
+image_align_bottom:"Dno",\r
+image_align_texttop:"Vrh teksta",\r
+image_align_textbottom:"Dno teksta",\r
+image_align_left:"Lijevo",\r
+image_align_right:"Desno",\r
+link_title:"Umetni/uredi poveznicu",\r
+link_url:"URL poveznice",\r
+link_target:"Meta",\r
+link_target_same:"Otvori poveznicu u istom prozoru",\r
+link_target_blank:"Otvori poveznicu u novom prozoru",\r
+link_titlefield:"Naslov",\r
+link_is_email:"URL koji ste unijeli izgleda kao e-mail adresa, \u017Eelite li dodati potrebni mailto: prefiks?",\r
+link_is_external:"URL koji ste unijeli izgleda kao vanjska poveznica, \u017Eelite li dodati potrebni http:// prefiks?",\r
+link_list:"Lista poveznica"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ca.advanced',{\r
+style_select:"Estils",\r
+font_size:"Mida de lletra",\r
+fontdefault:"Tipografia",\r
+block:"Format",\r
+paragraph:"Par\u00E0graf",\r
+div:"Div",\r
+address:"Adre\u00E7a",\r
+pre:"Preformatat",\r
+h1:"Cap\u00E7alera 1",\r
+h2:"Cap\u00E7alera 2",\r
+h3:"Cap\u00E7alera 3",\r
+h4:"Cap\u00E7alera 4",\r
+h5:"Cap\u00E7alera 5",\r
+h6:"Cap\u00E7alera 6",\r
+blockquote:"Cita",\r
+code:"Codi",\r
+samp:"Mostra de codi",\r
+dt:"Terme de la definici\u00F3",\r
+dd:"Descripci\u00F3 de la definici\u00F3",\r
+bold_desc:"Negreta (Ctrl+B)",\r
+italic_desc:"Cursiva (Ctrl+I)",\r
+underline_desc:"Subratllat (Ctrl+U)",\r
+striketrough_desc:"Tatxat",\r
+justifyleft_desc:"Alinea a l'esquerra",\r
+justifycenter_desc:"Centra",\r
+justifyright_desc:"Alinea a la dreta",\r
+justifyfull_desc:"Justifica",\r
+bullist_desc:"Llista no ordenada",\r
+numlist_desc:"Llista ordenada",\r
+outdent_desc:"Redueix el sagnat",\r
+indent_desc:"Augmenta el sagnat",\r
+undo_desc:"Desf\u00E9s (Ctrl+Z)",\r
+redo_desc:"Ref\u00E9s (Ctrl+Y)",\r
+link_desc:"Insereix/edita enlla\u00E7",\r
+unlink_desc:"Desenlla\u00E7a",\r
+image_desc:"Insereix/edita imatge",\r
+cleanup_desc:"Neteja el codi no correcte",\r
+code_desc:"Edita la font HTML",\r
+sub_desc:"Sub\u00EDndex",\r
+sup_desc:"Super\u00EDndex",\r
+hr_desc:"Insereix regle horitzontal",\r
+removeformat_desc:"Elimina el format",\r
+custom1_desc:"Aqu\u00ED la teva descripci\u00F3 personalitzada",\r
+forecolor_desc:"Selecciona el color del text",\r
+backcolor_desc:"Selecciona el color de fons",\r
+charmap_desc:"Insereix car\u00E0cter personalitzat",\r
+visualaid_desc:"Canvia els elements guies/invisibles",\r
+anchor_desc:"Insereix/edita \u00E0ncora",\r
+cut_desc:"Retalla",\r
+copy_desc:"Copia",\r
+paste_desc:"Enganxa",\r
+image_props_desc:"Propietats de la imatge",\r
+newdocument_desc:"Nou document",\r
+help_desc:"Ajuda",\r
+blockquote_desc:"Descripci\u00F3 de la cita",\r
+clipboard_msg:"Copia/Retalla/Enganxa no est\u00E0 disponible en Mozilla/Firefox.\r\nVols m\u00E9s informaci\u00F3 sobre aquest tema?",\r
+path:"Cam\u00ED",\r
+newdocument:"Segur que vols esborrar tot el contingut?",\r
+toolbar_focus:"Salta als botons d'eines - Alt+Q, Salta a l'editor - Alt-Z, Salta al cam\u00ED de l'element - Alt-X",\r
+more_colors:"M\u00E9s colors"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ca.advanced_dlg',{\r
+about_title:"Quant a TinyMCE",\r
+about_general:"Quant a",\r
+about_help:"Ajuda",\r
+about_license:"Llic\u00E8ncia",\r
+about_plugins:"Extensions",\r
+about_plugin:"Extensi\u00F3",\r
+about_author:"Autor",\r
+about_version:"Versi\u00F3",\r
+about_loaded:"Extensions carregades",\r
+anchor_title:"Insereix/edita \u00E0ncora",\r
+anchor_name:"Nom de l'\u00E0ncora",\r
+code_title:"Editor de Font HTML",\r
+code_wordwrap:"Salt de paraula",\r
+colorpicker_title:"Selecciona un color",\r
+colorpicker_picker_tab:"Triador",\r
+colorpicker_picker_title:"Triador de color",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Colors de la paleta",\r
+colorpicker_named_tab:"Amb nom",\r
+colorpicker_named_title:"Colors amb nom",\r
+colorpicker_color:"Color:",\r
+colorpicker_name:"Nom:",\r
+charmap_title:"Selecciona el car\u00E0cter personalitzat",\r
+image_title:"Insereix/edita imatge",\r
+image_src:"URL de la imatge",\r
+image_alt:"Descripci\u00F3 de la imatge",\r
+image_list:"Llista d'imatges",\r
+image_border:"Vora",\r
+image_dimensions:"Dimensions",\r
+image_vspace:"Espaiat vertical",\r
+image_hspace:"Espaiat horitzontal",\r
+image_align:"Alineaci\u00F3",\r
+image_align_baseline:"L\u00EDnia base",\r
+image_align_top:"Dalt",\r
+image_align_middle:"Mig",\r
+image_align_bottom:"Baix",\r
+image_align_texttop:"A dalt del text",\r
+image_align_textbottom:"A baix del text",\r
+image_align_left:"Esquerra",\r
+image_align_right:"Dreta",\r
+link_title:"Insereix/edita enlla\u00E7",\r
+link_url:"URL de l'enlla\u00E7",\r
+link_target:"Objectiu",\r
+link_target_same:"Obre l'enlla\u00E7 a la mateixa finestra",\r
+link_target_blank:"Obre l'enlla\u00E7 en una finestra nova",\r
+link_titlefield:"T\u00EDtol",\r
+link_is_email:"L'URL que has introdu\u00EFt sembla una adre\u00E7a de correu, vols afegir-hi el prefix mailto://?",\r
+link_is_external:"L'URL que has introdu\u00EFt sembla un enlla\u00E7 extern, vols afegir-hi el prefix http://?",\r
+link_list:"Llista d'enlla\u00E7os"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('cs.advanced',{\r
+style_select:"--- Styly ---",\r
+font_size:"- Velikost p\u00EDsma -",\r
+fontdefault:"--- P\u00EDsma ---",\r
+block:"-- Form\u00E1t --",\r
+paragraph:"Odstavec",\r
+div:"Div",\r
+address:"Adresa",\r
+pre:"P\u0159edform\u00E1tov\u00E1no",\r
+h1:"Nadpis 1",\r
+h2:"Nadpis 2",\r
+h3:"Nadpis 3",\r
+h4:"Nadpis 4",\r
+h5:"Nadpis 5",\r
+h6:"Nadpis 6",\r
+blockquote:"Odsazen\u00FD blok textu",\r
+code:"K\u00F3d",\r
+samp:"Vzorek",\r
+dt:"Term\u00EDn",\r
+dd:"Definice",\r
+bold_desc:"Tu\u010Dn\u00E9 (Ctrl+B)",\r
+italic_desc:"Kurz\u00EDva (Ctrl+I)",\r
+underline_desc:"Podtr\u017Een\u00E9 (Ctrl+U)",\r
+striketrough_desc:"P\u0159e\u0161krtnut\u00E9",\r
+justifyleft_desc:"Zarovnat doleva",\r
+justifycenter_desc:"Zarovnat na st\u0159ed",\r
+justifyright_desc:"Zarovnat doprava",\r
+justifyfull_desc:"Zarovnat do bloku",\r
+bullist_desc:"Seznam s odr\u00E1\u017Ekami",\r
+numlist_desc:"\u010C\u00EDslovan\u00FD seznam",\r
+outdent_desc:"Zmen\u0161it odsazen\u00ED",\r
+indent_desc:"Zv\u011Bt\u0161it odsazen\u00ED",\r
+undo_desc:"Zp\u011Bt (Ctrl+Z)",\r
+redo_desc:"Znovu (Ctrl+Y)",\r
+link_desc:"Vlo\u017Eit/upravit odkaz",\r
+unlink_desc:"Zru\u0161it odkaz",\r
+image_desc:"Vlo\u017Eit/upravit obr\u00E1zek",\r
+cleanup_desc:"Vy\u010Distit k\u00F3d",\r
+code_desc:"Editovat HTML k\u00F3d",\r
+sub_desc:"Doln\u00ED index",\r
+sup_desc:"Horn\u00ED index",\r
+hr_desc:"Vlo\u017Eit vodorovn\u00FD odd\u011Blova\u010D",\r
+removeformat_desc:"Zru\u0161it form\u00E1tov\u00E1n\u00ED",\r
+custom1_desc:"Libovoln\u00FD popisek",\r
+forecolor_desc:"Barva textu",\r
+backcolor_desc:"Barva pozad\u00ED",\r
+charmap_desc:"Vlo\u017Eit speci\u00E1ln\u00ED znak",\r
+visualaid_desc:"Zviditelnit zna\u010Dky",\r
+anchor_desc:"Vlo\u017Eit/upravit kotvu",\r
+cut_desc:"Vyjmout",\r
+copy_desc:"Kop\u00EDrovat",\r
+paste_desc:"Vlo\u017Eit",\r
+image_props_desc:"Vlastnosti obr\u00E1zku",\r
+newdocument_desc:"Nov\u00FD dokument",\r
+help_desc:"N\u00E1pov\u011Bda",\r
+blockquote_desc:"Blok citace",\r
+clipboard_msg:"Funkce kop\u00EDrovat/vyjmout/vlo\u017Eit nejsou pou\u017Eiteln\u00E9 v Mozille a Firefoxu.\nChcete v\u00EDce informac\u00ED?",\r
+path:"Cesta",\r
+newdocument:"Jste si opravdu jisti, \u017Ee chcete vymazat ve\u0161ker\u00FD obsah?",\r
+toolbar_focus:"Skok na li\u0161tu n\u00E1stroj\u016F - Alt+Q, skok do editoru - Alt-Z, skok na cestu prvk\u016F - Alt-X",\r
+more_colors:"Dal\u0161\u00ED barvy"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('cs.advanced_dlg',{\r
+about_title:"O TinyMCE",\r
+about_general:"O n\u00E1s",\r
+about_help:"N\u00E1pov\u011Bda",\r
+about_license:"Licence",\r
+about_plugins:"Pluginy",\r
+about_plugin:"Plugin",\r
+about_author:"Autor",\r
+about_version:"Verze",\r
+about_loaded:"Na\u010Dten\u00E9 pluginy",\r
+anchor_title:"Vlo\u017Eit/upravit kotvu",\r
+anchor_name:"N\u00E1zev kotvy",\r
+code_title:"HTML",\r
+code_wordwrap:"Zalomen\u00ED \u0159\u00E1dk\u016F",\r
+colorpicker_title:"V\u00FDb\u011Br barvy",\r
+colorpicker_picker_tab:"Kap\u00E1tko",\r
+colorpicker_picker_title:"Kap\u00E1tko",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta barev",\r
+colorpicker_named_tab:"N\u00E1zvy",\r
+colorpicker_named_title:"Pojmenovan\u00E9 barvy",\r
+colorpicker_color:"Vybran\u00E1 barva:",\r
+colorpicker_name:"N\u00E1zev:",\r
+charmap_title:"Vlo\u017Eit speci\u00E1ln\u00ED znak",\r
+image_title:"Vlo\u017Eit/upravit obr\u00E1zek",\r
+image_src:"URL obr\u00E1zku",\r
+image_alt:"Popis obr\u00E1zku",\r
+image_list:"Seznam obr\u00E1zk\u016F",\r
+image_border:"R\u00E1me\u010Dek",\r
+image_dimensions:"Rozm\u011Bry",\r
+image_vspace:"Vertik\u00E1ln\u00ED mezera",\r
+image_hspace:"Horizont\u00E1ln\u00ED mezera",\r
+image_align:"Zarovn\u00E1n\u00ED",\r
+image_align_baseline:"Na z\u00E1kladnu",\r
+image_align_top:"Nahoru",\r
+image_align_middle:"Na st\u0159ed \u0159\u00E1dku",\r
+image_align_bottom:"Dol\u016F",\r
+image_align_texttop:"S vrchem \u0159\u00E1dku",\r
+image_align_textbottom:"Se spodkem \u0159\u00E1dku",\r
+image_align_left:"Vlevo",\r
+image_align_right:"Vpravo",\r
+link_title:"Vlo\u017Eit/upravit odkaz",\r
+link_url:"URL odkazu",\r
+link_target:"C\u00EDl",\r
+link_target_same:"Otev\u0159\u00EDt odkaz ve stejn\u00E9m okn\u011B",\r
+link_target_blank:"Otev\u0159\u00EDt odkaz v nov\u00E9m okn\u011B",\r
+link_titlefield:"Titulek",\r
+link_is_email:"Zadan\u00E9 URL vypad\u00E1 jako e-mailov\u00E1 adresa, chcete doplnit prefix mailto:?",\r
+link_is_external:"Zadan\u00E9 URL vypad\u00E1 jako extern\u00ED odkaz, chcete doplnit prefix http://?",\r
+link_list:"Seznam odkaz\u016F"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('da.advanced',{\r
+style_select:"Typografier",\r
+font_size:"Skriftst\u00F8rrelse",\r
+fontdefault:"Skrifttype",\r
+block:"Format",\r
+paragraph:"Afsnit",\r
+div:"Div",\r
+address:"Adresse",\r
+pre:"Pr\u00E6formatteret",\r
+h1:"Overskrift 1",\r
+h2:"Overskrift 2",\r
+h3:"Overskrift 3",\r
+h4:"Overskrift 4",\r
+h5:"Overskrift 5",\r
+h6:"Overskrift 6",\r
+blockquote:"Blokcitat",\r
+code:"Kode",\r
+samp:"Kodeeksempel",\r
+dt:"Definitionsterm ",\r
+dd:"Definitionsbeskrivelse",\r
+bold_desc:"Fed (Ctrl+B)",\r
+italic_desc:"Kursiv (Ctrl+I)",\r
+underline_desc:"Understreget (Ctrl+U)",\r
+striketrough_desc:"Gennemstreget",\r
+justifyleft_desc:"Venstrejusteret",\r
+justifycenter_desc:"Centreret",\r
+justifyright_desc:"H\u00F8jrejusteret",\r
+justifyfull_desc:"Lige marginer",\r
+bullist_desc:"Unummereret punktopstilling",\r
+numlist_desc:"Nummereret punktopstilling",\r
+outdent_desc:"Formindsk indrykning",\r
+indent_desc:"\u00D8g indrykning",\r
+undo_desc:"Fortryd (Ctrl+Z)",\r
+redo_desc:"Gendan (Ctrl+Y)",\r
+link_desc:"Inds\u00E6t/rediger link",\r
+unlink_desc:"Fjern link",\r
+image_desc:"Inds\u00E6t/rediger billede",\r
+cleanup_desc:"Ryd op i uordentlig kode",\r
+code_desc:"Rediger HTML-kilde",\r
+sub_desc:"S\u00E6nket skrift",\r
+sup_desc:"H\u00E6vet skrift",\r
+hr_desc:"Inds\u00E6t horisontal linie",\r
+removeformat_desc:"Fjern formatering",\r
+custom1_desc:"Din egen beskrivelse her",\r
+forecolor_desc:"V\u00E6lg tekstfarve",\r
+backcolor_desc:"V\u00E6lg baggrundsfarve",\r
+charmap_desc:"Inds\u00E6t specialtegn",\r
+visualaid_desc:"Sl\u00E5 hj\u00E6lp/synlige elementer til/fra",\r
+anchor_desc:"Inds\u00E6t/rediger anker",\r
+cut_desc:"Klip",\r
+copy_desc:"Kopier",\r
+paste_desc:"Inds\u00E6t",\r
+image_props_desc:"Billedeegenskaber",\r
+newdocument_desc:"Nyt dokument",\r
+help_desc:"Hj\u00E6lp",\r
+blockquote_desc:"Blokcitat",\r
+clipboard_msg:"Kopier/Klip/inds\u00E6t er ikke muligt i Mozilla og Firefox.\nVil du have mere information om dette emne?",\r
+path:"Sti",\r
+newdocument:"Er du sikker p\u00E5 du vil slette alt indhold?",\r
+toolbar_focus:"Hop til v\u00E6rkt\u00F8jsknapper - Alt+Q, Skift til redigering - Alt-Z, Skift til element sti - Alt-X",\r
+more_colors:"Flere farver"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('da.advanced_dlg',{\r
+about_title:"Om TinyMCE",\r
+about_general:"Om",\r
+about_help:"Hj\u00E6lp",\r
+about_license:"Licens",\r
+about_plugins:"Udvidelser",\r
+about_plugin:"Udvidelse",\r
+about_author:"Forfatter",\r
+about_version:"Version",\r
+about_loaded:"Indl\u00E6ste udvidelser",\r
+anchor_title:"Inds\u00E6t/rediger anker",\r
+anchor_name:"Navn p\u00E5 anker",\r
+code_title:"HTML kildekode redigering",\r
+code_wordwrap:"Tekstombrydning",\r
+colorpicker_title:"V\u00E6lg en farve",\r
+colorpicker_picker_tab:"V\u00E6lger",\r
+colorpicker_picker_title:"Farve v\u00E6lger",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Palette farver",\r
+colorpicker_named_tab:"Navngivet",\r
+colorpicker_named_title:"Navngivet farve",\r
+colorpicker_color:"Farve:",\r
+colorpicker_name:"Navn:",\r
+charmap_title:"V\u00E6lg specialtegn",\r
+image_title:"Inds\u00E6t/rediger billede",\r
+image_src:"Billede URL",\r
+image_alt:"Billedebeskrivelse",\r
+image_list:"Liste over billeder",\r
+image_border:"Kant",\r
+image_dimensions:"Dimensioner",\r
+image_vspace:"Vertikal afstand",\r
+image_hspace:"Horisontal afstand",\r
+image_align:"Justering",\r
+image_align_baseline:"Grundlinie",\r
+image_align_top:"Toppen",\r
+image_align_middle:"Centreret",\r
+image_align_bottom:"Bunden",\r
+image_align_texttop:"Tekst toppen",\r
+image_align_textbottom:"Tekst bunden",\r
+image_align_left:"Venstre",\r
+image_align_right:"H\u00F8jre",\r
+link_title:"Inds\u00E6t/rediger link",\r
+link_url:"Link URL",\r
+link_target:"Target",\r
+link_target_same:"\u00C5ben link i samme vindue",\r
+link_target_blank:"\u00C5ben link i nyt vindue",\r
+link_titlefield:"Titel",\r
+link_is_email:"Den URL der er indtastet ser ud til at v\u00E6re en emailadresse. Vil du have tilf\u00F8jet det p\u00E5kr\u00E6vede mailto: foran?",\r
+link_is_external:"Den URL der er indtastet ser ud til at v\u00E6re et eksternt link. Vil du have tilf\u00F8jet det p\u00E5kr\u00E6vede http:// foran?",\r
+link_list:"Liste over links"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('de.advanced',{\r
+style_select:"Format",\r
+font_size:"Schriftgr\u00F6\u00DFe",\r
+fontdefault:"Schriftart",\r
+block:"Vorlage",\r
+paragraph:"Absatz",\r
+div:"Zusammenh\u00E4ngender Bereich",\r
+address:"Addresse",\r
+pre:"Rohdaten",\r
+h1:"\u00DCberschrift 1",\r
+h2:"\u00DCberschrift 2",\r
+h3:"\u00DCberschrift 3",\r
+h4:"\u00DCberschrift 4",\r
+h5:"\u00DCberschrift 5",\r
+h6:"\u00DCberschrift 6",\r
+blockquote:"Zitatblock",\r
+code:"Code",\r
+samp:"Beispiel",\r
+dt:"Definitionsbegriff",\r
+dd:"Definitionsbeschreibung",\r
+bold_desc:"Fett (Strg+B)",\r
+italic_desc:"Kursiv (Strg+I)",\r
+underline_desc:"Unterstrichen (Strg+U)",\r
+striketrough_desc:"Durchgestrichen",\r
+justifyleft_desc:"Links ausgerichtet",\r
+justifycenter_desc:"Mittig ausgerichtet",\r
+justifyright_desc:"Rechts ausgerichtet",\r
+justifyfull_desc:"Blocksatz",\r
+bullist_desc:"Unsortierte Liste",\r
+numlist_desc:"Sortierte Liste",\r
+outdent_desc:"Ausr\u00FCcken",\r
+indent_desc:"Einr\u00FCcken",\r
+undo_desc:"R\u00FCckg\u00E4ngig (Strg+Z)",\r
+redo_desc:"Wiederholen (Strg+Y)",\r
+link_desc:"Link einf\u00FCgen/ver\u00E4ndern",\r
+unlink_desc:"Link entfernen",\r
+image_desc:"Bild einf\u00FCgen/ver\u00E4ndern",\r
+cleanup_desc:"Quellcode aufr\u00E4ufen",\r
+code_desc:"HTML-Quellcode bearbeiten",\r
+sub_desc:"Tiefgestellt",\r
+sup_desc:"Hochgestellt",\r
+hr_desc:"Trennlinie einf\u00FCgen",\r
+removeformat_desc:"Formatierungen zur\u00FCcksetzen",\r
+custom1_desc:"Benutzerdefinierte Beschreibung",\r
+forecolor_desc:"Textfarbe",\r
+backcolor_desc:"Hintergrundfarbe",\r
+charmap_desc:"Sonderzeichen einf\u00FCgen",\r
+visualaid_desc:"Hilfslinien und unsichtbare Elemente ein-/ausblenden",\r
+anchor_desc:"Anker einf\u00FCgen/ver\u00E4ndern",\r
+cut_desc:"Ausschneiden",\r
+copy_desc:"Kopieren",\r
+paste_desc:"Einf\u00FCgen",\r
+image_props_desc:"Bildeigenschaften",\r
+newdocument_desc:"Neues Dokument",\r
+help_desc:"Hilfe",\r
+blockquote_desc:"Zitatblock",\r
+clipboard_msg:"Kopieren, Ausschneiden und Einf\u00FCgen sind im Mozilla Firefox nicht m\u00F6glich.\r\nWollen Sie mehr \u00FCber dieses Problem erfahren?",\r
+path:"Pfad",\r
+newdocument:"Wollen Sie wirklich den ganzen Inhalt l\u00F6schen?",\r
+toolbar_focus:"Zur Werkzeugleiste springen: Alt+Q; Zum Editor springen: Alt-Z; Zum Elementpfad springen: Alt-X",\r
+more_colors:"Weitere Farben"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('de.advanced_dlg',{\r
+about_title:"\u00DCber TinyMCE",\r
+about_general:"\u00DCber\u2026",\r
+about_help:"Hilfe",\r
+about_license:"Lizenzbedingungen",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Urheber",\r
+about_version:"Version",\r
+about_loaded:"Geladene Plugins",\r
+anchor_title:"Anker einf\u00FCgen/ver\u00E4ndern",\r
+anchor_name:"Name des Ankers",\r
+code_title:"HTML-Quellcode bearbeiten",\r
+code_wordwrap:"Automatischer Zeilenumbruch",\r
+colorpicker_title:"Farbe",\r
+colorpicker_picker_tab:"Farbwahl",\r
+colorpicker_picker_title:"Farbwahl",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Farbpalette",\r
+colorpicker_named_tab:"Benannte Farben",\r
+colorpicker_named_title:"Benannte Farben",\r
+colorpicker_color:"Farbe:",\r
+colorpicker_name:"Name:",\r
+charmap_title:"Sonderzeichen",\r
+image_title:"Bild einf\u00FCgen/bearbeiten",\r
+image_src:"Adresse",\r
+image_alt:"Alternativtext",\r
+image_list:"Bilderliste",\r
+image_border:"Rahmen",\r
+image_dimensions:"Ausma\u00DFe",\r
+image_vspace:"Vertikaler Abstand",\r
+image_hspace:"Horizontaler Abstand",\r
+image_align:"Ausrichtung",\r
+image_align_baseline:"Zeile",\r
+image_align_top:"Oben",\r
+image_align_middle:"Mittig",\r
+image_align_bottom:"Unten",\r
+image_align_texttop:"Oben im Text",\r
+image_align_textbottom:"Unten im Text",\r
+image_align_left:"Links",\r
+image_align_right:"Rechts",\r
+link_title:"Link einf\u00FCgen/bearbeiten",\r
+link_url:"Adresse",\r
+link_target:"Fenster",\r
+link_target_same:"Im selben Fenster \u00F6ffnen",\r
+link_target_blank:"Neues Fenster \u00F6ffnen",\r
+link_titlefield:"Titel",\r
+link_is_email:"Bei der Adresse scheint es sich um eine E-Mail-Adresse zu handeln. Wollen Sie das dazu ben\u00F6tigte mailto: voranstellen?",\r
+link_is_external:"Bei der Adresse scheint es sich um einen externen Link zu handeln. M\u00F6chten Sie, dass zur korrekten Verlinkung ein http:// vorangestellt wird?",\r
+link_list:"Linkliste"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('el.advanced',{\r
+style_select:"\u03A3\u03C4\u03C5\u03BB",\r
+font_size:"\u039C\u03AD\u03B3\u03B5\u03B8\u03BF\u03C2 \u0393\u03C1\u03B1\u03BC\u03BC\u03AC\u03C4\u03C9\u03BD",\r
+fontdefault:"\u0393\u03C1\u03B1\u03BC\u03BC\u03B1\u03C4\u03BF\u03C3\u03B5\u03B9\u03C1\u03AC",\r
+block:"\u039C\u03BF\u03C1\u03C6\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7",\r
+paragraph:"\u03A0\u03B1\u03C1\u03AC\u03B3\u03C1\u03B1\u03C6\u03BF\u03C2",\r
+div:"Div",\r
+address:"\u0394\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7",\r
+pre:"Pre",\r
+h1:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 1",\r
+h2:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 2",\r
+h3:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 3",\r
+h4:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 4",\r
+h5:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 5",\r
+h6:"\u0395\u03C0\u03B9\u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 6",\r
+blockquote:"Blockquote",\r
+code:"\u039A\u03CE\u03B4\u03B9\u03BA\u03B1\u03C2",\r
+samp:"\u0394\u03B5\u03AF\u03B3\u03BC\u03B1 \u039A\u03CE\u03B4\u03B9\u03BA\u03B1",\r
+dt:"\u039F\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2",\r
+dd:"\u03A0\u03B5\u03C1\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u039F\u03C1\u03B9\u03C3\u03BC\u03BF\u03CD",\r
+bold_desc:"\u039C\u03B1\u03CD\u03C1\u03B1 (Ctrl+B)",\r
+italic_desc:"\u03A0\u03BB\u03AC\u03B3\u03B9\u03B1 (Ctrl+I)",\r
+underline_desc:"\u03A5\u03C0\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B9\u03C3\u03BC\u03AD\u03BD\u03B1 (Ctrl+U)",\r
+striketrough_desc:"\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03BC\u03BC\u03B9\u03C3\u03BC\u03AD\u03BD\u03B1",\r
+justifyleft_desc:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7 \u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC",\r
+justifycenter_desc:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7 \u03BA\u03AD\u03BD\u03C4\u03C1\u03BF",\r
+justifyright_desc:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7 \u03B4\u03B5\u03BE\u03B9\u03AC",\r
+justifyfull_desc:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7 \u03C0\u03BB\u03AE\u03C1\u03B7\u03C2",\r
+bullist_desc:"\u039B\u03AF\u03C3\u03C4\u03B1 \u03C7\u03C9\u03C1\u03AF\u03C2 \u03C3\u03B5\u03B9\u03C1\u03AC",\r
+numlist_desc:"\u039B\u03AF\u03C3\u03C4\u03B1 \u03BC\u03B5 \u03C3\u03B5\u03B9\u03C1\u03AC",\r
+outdent_desc:"\u03A0\u03C1\u03BF\u03B5\u03BE\u03BF\u03C7\u03AE",\r
+indent_desc:"\u0395\u03C3\u03BF\u03C7\u03AE",\r
+undo_desc:"\u0391\u03BD\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 (Ctrl+Z)",\r
+redo_desc:"\u0395\u03C0\u03B1\u03BD\u03AC\u03BB\u03B7\u03C8\u03B7 (Ctrl+Y)",\r
+link_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5",\r
+unlink_desc:"\u039A\u03B1\u03C4\u03AC\u03C1\u03B3\u03B7\u03C3\u03B7 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5",\r
+image_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+cleanup_desc:"\u039A\u03B1\u03B8\u03B1\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u03BC\u03C0\u03B5\u03C1\u03B4\u03B5\u03BC\u03AD\u03BD\u03BF\u03C5 \u03BA\u03CE\u03B4\u03B9\u03BA\u03B1",\r
+code_desc:"\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 HTML \u039A\u03CE\u03B4\u03B9\u03BA\u03B1",\r
+sub_desc:"\u0394\u03B5\u03AF\u03BA\u03C4\u03B7\u03C2",\r
+sup_desc:"\u0395\u03BA\u03B8\u03AD\u03C4\u03B7\u03C2",\r
+hr_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03BF\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03B1\u03C2 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2",\r
+removeformat_desc:"\u0391\u03C6\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 \u03BC\u03BF\u03C1\u03C6\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7\u03C2",\r
+custom1_desc:"\u0397 \u03C0\u03B5\u03C1\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u03C3\u03B1\u03C2 \u03B5\u03B4\u03CE",\r
+forecolor_desc:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03BF\u03C2 \u03BA\u03B5\u03B9\u03BC\u03AD\u03BD\u03BF\u03C5",\r
+backcolor_desc:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03BF\u03C2 \u03C6\u03CC\u03BD\u03C4\u03BF\u03C5",\r
+charmap_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B1",\r
+visualaid_desc:"\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7/\u0391\u03C0\u03CC\u03BA\u03C1\u03C5\u03C8\u03B7 \u03B2\u03BF\u03B7\u03B8\u03B7\u03C4\u03B9\u03BA\u03CE\u03BD \u03B3\u03C1\u03B1\u03BC\u03BC\u03CE\u03BD \u03BA\u03B1\u03B9 \u03B1\u03CC\u03C1\u03B1\u03C4\u03C9\u03BD \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03C9\u03BD",\r
+anchor_desc:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 anchor",\r
+cut_desc:"\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE",\r
+copy_desc:"\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE",\r
+paste_desc:"\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7",\r
+image_props_desc:"\u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2 \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+newdocument_desc:"\u039D\u03AD\u03BF \u03AD\u03B3\u03B3\u03C1\u03B1\u03C6\u03BF",\r
+help_desc:"\u0392\u03BF\u03AE\u03B8\u03B5\u03B9\u03B1",\r
+blockquote_desc:"Blockquote",\r
+clipboard_msg:"\u039F\u03B9 \u03BB\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B5\u03C2 \u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE/\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE/\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03B5\u03C2 \u03C3\u03B5 Mozilla \u03BA\u03B1\u03B9 Firefox.\n\u0398\u03AD\u03BB\u03B5\u03C4\u03B5 \u03C0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B5\u03C2 \u03C0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B5\u03C2 ;",\r
+path:"\u0394\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE",\r
+newdocument:"\u03A3\u03B9\u03AF\u03B3\u03BF\u03C5\u03C1\u03B1 \u03B8\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03BA\u03B1\u03B8\u03B1\u03C1\u03AF\u03C3\u03B5\u03C4\u03B5 \u03CC\u03BB\u03BF \u03C4\u03BF \u03C0\u03B5\u03C1\u03B9\u03B5\u03C7\u03CC\u03BC\u03B5\u03BD\u03BF ;",\r
+toolbar_focus:"\u039C\u03B5\u03C4\u03AC\u03B2\u03B1\u03C3\u03B7 \u03C3\u03C4\u03B1 \u03BA\u03BF\u03C5\u03BC\u03C0\u03B9\u03AC \u03B5\u03C1\u03B3\u03B1\u03BB\u03B5\u03AF\u03C9\u03BD - Alt+Q, \u039C\u03B5\u03C4\u03AC\u03B2\u03B1\u03C3\u03B7 \u03C3\u03C4\u03BF\u03BD \u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03C4\u03AE \u03BA\u03B5\u03B9\u03BC\u03AD\u03BD\u03BF\u03C5 - Alt-Z, \u039C\u03B5\u03C4\u03AC\u03B2\u03B1\u03C3\u03B7 \u03C3\u03C4\u03B7\u03BD \u03B4\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE \u03C4\u03BF\u03C5 \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03BF\u03C5 - Alt-X",\r
+more_colors:"\u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1 \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03B1"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('el.advanced_dlg',{\r
+about_title:"\u03A3\u03C7\u03B5\u03C4\u03B9\u03BA\u03AC \u03BC\u03B5 \u03C4\u03BF TinyMCE",\r
+about_general:"\u03A3\u03C7\u03B5\u03C4\u03B9\u03BA\u03AC",\r
+about_help:"\u0392\u03BF\u03AE\u03B8\u03B5\u03B9\u03B1",\r
+about_license:"\u0386\u03B4\u03B5\u03B9\u03B1",\r
+about_plugins:"\u03A3\u03C7\u03B5\u03C4\u03B9\u03BA\u03AC \u03BC\u03B5 \u03C4\u03B1 \u03C0\u03C1\u03CC\u03C3\u03B8\u03B5\u03C4\u03B1",\r
+about_plugin:"\u03A3\u03C7\u03B5\u03C4\u03B9\u03BA\u03AC \u03BC\u03B5 \u03C4\u03BF \u03C0\u03C1\u03CC\u03C3\u03B8\u03B5\u03C4\u03BF",\r
+about_author:"\u03A3\u03C5\u03B3\u03B3\u03C1\u03B1\u03C6\u03AD\u03B1\u03C2",\r
+about_version:"\u0388\u03BA\u03B4\u03BF\u03C3\u03B7",\r
+about_loaded:"\u03A6\u03BF\u03C1\u03C4\u03C9\u03BC\u03AD\u03BD\u03B1 \u03C0\u03C1\u03CC\u03C3\u03B8\u03B5\u03C4\u03B1",\r
+anchor_title:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 anchor",\r
+anchor_name:"\u038C\u03BD\u03BF\u03BC\u03B1 anchor",\r
+code_title:"\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03C4\u03AE\u03C2 \u03BA\u03CE\u03B4\u03B9\u03BA\u03B1 HTML",\r
+code_wordwrap:"\u0391\u03BD\u03B1\u03B4\u03AF\u03C0\u03BB\u03C9\u03C3\u03B7 \u03BA\u03B5\u03B9\u03BC\u03AD\u03BD\u03BF\u03C5",\r
+colorpicker_title:"\u0394\u03B9\u03B1\u03BB\u03AD\u03BE\u03C4\u03B5 \u03C7\u03C1\u03CE\u03BC\u03B1",\r
+colorpicker_picker_tab:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE",\r
+colorpicker_picker_title:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03BF\u03C2",\r
+colorpicker_palette_tab:"\u03A0\u03B1\u03BB\u03AD\u03C4\u03B1",\r
+colorpicker_palette_title:"\u03A7\u03C1\u03CE\u03BC\u03B1\u03C4\u03B1 \u03C0\u03B1\u03BB\u03AD\u03C4\u03B1\u03C2",\r
+colorpicker_named_tab:"\u039F\u03BD\u03BF\u03BC\u03B1\u03C3\u03C4\u03B9\u03BA\u03AC",\r
+colorpicker_named_title:"\u039F\u03BD\u03BF\u03BC\u03B1\u03C3\u03C4\u03B9\u03BA\u03AC \u03C7\u03C1\u03CE\u03BC\u03B1\u03C4\u03B1",\r
+colorpicker_color:"\u03A7\u03C1\u03CE\u03BC\u03B1:",\r
+colorpicker_name:"\u038C\u03BD\u03BF\u03BC\u03B1:",\r
+charmap_title:"\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B1",\r
+image_title:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+image_src:"\u0394\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE URL \u0395\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+image_alt:"\u03A0\u03B5\u03C1\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1\u03C2",\r
+image_list:"\u039B\u03AF\u03C3\u03C4\u03B1 \u03B5\u03B9\u03BA\u03CC\u03BD\u03C9\u03BD",\r
+image_border:"\u03A0\u03BB\u03B1\u03AF\u03C3\u03B9\u03BF",\r
+image_dimensions:"\u0394\u03B9\u03B1\u03C3\u03C4\u03AC\u03C3\u03B5\u03B9\u03C2",\r
+image_vspace:"\u0391\u03C0\u03CC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03BA\u03AC\u03B8\u03B5\u03C4\u03B7",\r
+image_hspace:"\u0391\u03C0\u03CC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03BF\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03B1",\r
+image_align:"\u03A3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7",\r
+image_align_baseline:"\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u03C3\u03C4\u03BF\u03AF\u03C7\u03B9\u03C3\u03B7\u03C2 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AC\u03C4\u03C9\u03BD",\r
+image_align_top:"\u0395\u03C0\u03AC\u03BD\u03C9",\r
+image_align_middle:"\u039C\u03AD\u03C3\u03B7",\r
+image_align_bottom:"\u039A\u03AC\u03C4\u03C9",\r
+image_align_texttop:"\u039A\u03AD\u03B9\u03BC\u03B5\u03BD\u03BF \u03C0\u03AC\u03BD\u03C9",\r
+image_align_textbottom:"\u039A\u03B5\u03AF\u03BC\u03B5\u03BD\u03BF \u03BA\u03AC\u03C4\u03C9",\r
+image_align_left:"\u0391\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC",\r
+image_align_right:"\u0394\u03B5\u03BE\u03B9\u03AC",\r
+link_title:"\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5",\r
+link_url:"\u0394\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE URL \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5",\r
+link_target:"\u03A3\u03C4\u03CC\u03C7\u03BF\u03C2",\r
+link_target_same:"\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 \u03C3\u03C4\u03BF \u03AF\u03B4\u03B9\u03BF \u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF",\r
+link_target_blank:"\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 \u03C3\u03B5 \u03BD\u03AD\u03BF \u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF",\r
+link_titlefield:"\u03A4\u03AF\u03C4\u03BB\u03BF\u03C2",\r
+link_is_email:"\u0397 \u03B4\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE URL \u03C0\u03BF\u03C5 \u03B5\u03B9\u03C3\u03AC\u03B3\u03B1\u03C4\u03B5 \u03C6\u03B1\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 email, \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03C4\u03B5\u03B8\u03B5\u03AF \u03C4\u03BF \u03B1\u03C0\u03B1\u03C1\u03B1\u03AF\u03C4\u03B7\u03C4\u03BF mailto: ;",\r
+link_is_external:"\u0397 \u03B4\u03B9\u03B1\u03B4\u03C1\u03BF\u03BC\u03AE URL \u03C0\u03BF\u03C5 \u03B5\u03B9\u03C3\u03AC\u03B3\u03B1\u03C4\u03B5 \u03C6\u03B1\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B5\u03BE\u03C9\u03C4\u03B5\u03C1\u03B9\u03BA\u03CC\u03C2 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03BC\u03BF\u03C2, \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03C4\u03B5\u03B8\u03B5\u03AF \u03C4\u03BF \u03B1\u03C0\u03B1\u03C1\u03B1\u03AF\u03C4\u03B7\u03C4\u03BF http:// ;",\r
+link_list:"\u039B\u03AF\u03C3\u03C4\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03C9\u03BD"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('es.advanced',{\r
+style_select:"Estilos",\r
+font_size:"Tama\u00F1o",\r
+fontdefault:"Fuente",\r
+block:"Formato",\r
+paragraph:"P\u00E1rrafo",\r
+div:"Div",\r
+address:"Direcci\u00F3n",\r
+pre:"Preformateado",\r
+h1:"Encabezado 1",\r
+h2:"Encabezado 2",\r
+h3:"Encabezado 3",\r
+h4:"Encabezado 4",\r
+h5:"Encabezado 5",\r
+h6:"Encabezado 6",\r
+blockquote:"Cita",\r
+code:"C\u00F3digo",\r
+samp:"Ejemplo de c\u00F3digo",\r
+dt:"T\u00E9rmino de definici\u00F3n",\r
+dd:"Descripci\u00F3n de definici\u00F3n",\r
+bold_desc:"Negrita (Ctrl+B)",\r
+italic_desc:"Cursiva (Ctrl+I)",\r
+underline_desc:"Subrayado (Ctrl+U)",\r
+striketrough_desc:"Tachado",\r
+justifyleft_desc:"Alinear a la izquierda",\r
+justifycenter_desc:"Alinear al centro",\r
+justifyright_desc:"Alinear a la derecha",\r
+justifyfull_desc:"Justificar",\r
+bullist_desc:"Lista desordenada",\r
+numlist_desc:"Lista ordenada",\r
+outdent_desc:"Reducir sangr\u00EDa",\r
+indent_desc:"Aumentar sandr\u00EDa",\r
+undo_desc:"Deshacer (Ctrl+Z)",\r
+redo_desc:"Rehacer (Ctrl+Y)",\r
+link_desc:"Insertar/editar hiperv\u00EDnculo",\r
+unlink_desc:"Quitar hiperv\u00EDnculo",\r
+image_desc:"Insertar/editar imagen",\r
+cleanup_desc:"Limpiar c\u00F3digo basura",\r
+code_desc:"Editar c\u00F3digo HTML",\r
+sub_desc:"Sub\u00EDndice",\r
+sup_desc:"Super\u00EDndice",\r
+hr_desc:"Insertar regla horizontal",\r
+removeformat_desc:"Limpiar formato",\r
+custom1_desc:"Su descripci\u00F3n personal aqu\u00ED",\r
+forecolor_desc:"Seleccionar color del texto",\r
+backcolor_desc:"Seleccionar color de fondo",\r
+charmap_desc:"Insertar caracteres personalizados",\r
+visualaid_desc:"Mostrar/ocultar l\u00EDnea de gu\u00EDa/elementos invisibles",\r
+anchor_desc:"Insertar/editar ancla",\r
+cut_desc:"Cortar",\r
+copy_desc:"Copiar",\r
+paste_desc:"Pegar",\r
+image_props_desc:"Propiedades de imagen",\r
+newdocument_desc:"Nuevo documento",\r
+help_desc:"Ayuda",\r
+blockquote_desc:"Cita",\r
+clipboard_msg:"Copiar/Cortar/Pegar no se encuentra disponible en Mozilla y Firefox.\n\u00BFDesea obtener m\u00E1s informaci\u00F3n acerca de este tema?",\r
+path:"Ruta",\r
+newdocument:"\u00BFEst\u00E1 seguro que desea limpiar todo el contenido?",\r
+toolbar_focus:"Ir a los botones de herramientas - Alt+Q, Ir al editor - Alt-Z, Ir a la ruta del elemento - Alt-X",\r
+more_colors:"M\u00E1s colores"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('es.advanced_dlg',{\r
+about_title:"Acerca de TinyMCE",\r
+about_general:"Acerca de ",\r
+about_help:"Ayuda",\r
+about_license:"Licencia",\r
+about_plugins:"Complementos",\r
+about_plugin:"Complemento",\r
+about_author:"Autor",\r
+about_version:"Versi\u00F3n",\r
+about_loaded:"Complementos cargados",\r
+anchor_title:"Insertar/editar ancla",\r
+anchor_name:"Nombre del ancla",\r
+code_title:"Editor del c\u00F3digo fuente HTML",\r
+code_wordwrap:"Ajustar al margen",\r
+colorpicker_title:"Seleccionar color",\r
+colorpicker_picker_tab:"Selector",\r
+colorpicker_picker_title:"Paleta de color",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta de colores",\r
+colorpicker_named_tab:"Nombrados",\r
+colorpicker_named_title:"Colores nombrados",\r
+colorpicker_color:"Color:",\r
+colorpicker_name:"Nombre:",\r
+charmap_title:"Seleccionar caracter personalizado",\r
+image_title:"Insertar/editar imagen",\r
+image_src:"URL de la Imagen",\r
+image_alt:"Descripci\u00F3n de la Imagen",\r
+image_list:"Lista de la Imagen",\r
+image_border:"Borde",\r
+image_dimensions:"Dimensi\u00F3n",\r
+image_vspace:"Espacio vertical",\r
+image_hspace:"Espacio horizontal",\r
+image_align:"Alineaci\u00F3n",\r
+image_align_baseline:"L\u00EDnea base",\r
+image_align_top:"Arriba",\r
+image_align_middle:"Medio",\r
+image_align_bottom:"Debajo",\r
+image_align_texttop:"Texto arriba",\r
+image_align_textbottom:"Texto debajo",\r
+image_align_left:"Izquierda",\r
+image_align_right:"Derecha",\r
+link_title:"Insertar/editar hiperv\u00EDnculo",\r
+link_url:"URL del hiperv\u00EDnculo",\r
+link_target:"Destino",\r
+link_target_same:"Abrir v\u00EDnculo en la misma ventana",\r
+link_target_blank:"Abrir v\u00EDnculo en una ventana nueva",\r
+link_titlefield:"T\u00EDtulo",\r
+link_is_email:"La URL que introdujo parece ser una direcci\u00F3n de email, \u00BFdesea agregar el prefijo mailto: necesario?",\r
+link_is_external:"La URL que introdujo parece ser un v\u00EDnculo externo, \u00BFdesea agregar el prefijo http:// necesario?",\r
+link_list:"Lista de hiperv\u00EDnculos"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('et.advanced',{\r
+style_select:"Styles",\r
+font_size:"Font size",\r
+fontdefault:"Font family",\r
+block:"Format",\r
+paragraph:"Paragraph",\r
+div:"Div",\r
+address:"Address",\r
+pre:"Preformatted",\r
+h1:"Heading 1",\r
+h2:"Heading 2",\r
+h3:"Heading 3",\r
+h4:"Heading 4",\r
+h5:"Heading 5",\r
+h6:"Heading 6",\r
+blockquote:"Blockquote",\r
+code:"Code",\r
+samp:"Code sample",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"Rasvane (Ctrl+B)",\r
+italic_desc:"Kursiiv (Ctrl+I)",\r
+underline_desc:"Allajoonitud (Ctrl+U)",\r
+striketrough_desc:"L\u00E4bijoonitud",\r
+justifyleft_desc:"Vasak joondus",\r
+justifycenter_desc:"Keskjoondus",\r
+justifyright_desc:"Parem joondus",\r
+justifyfull_desc:"T\u00E4isjoondus",\r
+bullist_desc:"Ebakorrap\u00E4rane loetelu",\r
+numlist_desc:"Korrap\u00E4rane loetelu",\r
+outdent_desc:"Taanda v\u00E4lja",\r
+indent_desc:"Taanda sisse",\r
+undo_desc:"V\u00F5ta tagasi (Ctrl+Z)",\r
+redo_desc:"Tee uuesti (Ctrl+Y)",\r
+link_desc:"Sisesta/redigeeri link",\r
+unlink_desc:"Eemalda link",\r
+image_desc:"Sisesta/redigeeri pilt",\r
+cleanup_desc:"Puhasta segane kood",\r
+code_desc:"Redigeeri HTML l\u00E4htekoodi",\r
+sub_desc:"Alaindeks",\r
+sup_desc:"\u00DClaindeks",\r
+hr_desc:"Sisesta horisontaalne joonlaud",\r
+removeformat_desc:"Eemalda vormindus",\r
+custom1_desc:"Teie kohandatud kirjeldus siia",\r
+forecolor_desc:"Vali teksti v\u00E4rv",\r
+backcolor_desc:"Vali tausta v\u00E4rv",\r
+charmap_desc:"Sisesta kohandatud kirjam\u00E4rk",\r
+visualaid_desc:"L\u00FClita \u00FCmber juhtjooned/n\u00E4htamatud elemendid",\r
+anchor_desc:"Sisesta/redigeeri ankur",\r
+cut_desc:"L\u00F5ika",\r
+copy_desc:"Kopeeri",\r
+paste_desc:"Kleebi",\r
+image_props_desc:"Pildi kirjeldus",\r
+newdocument_desc:"Uus dokument",\r
+help_desc:"Abi",\r
+blockquote_desc:"Plokkviide",\r
+clipboard_msg:"Kopeeri/L\u00F5ika/Kleebi ei ole Mozillas ja Firefoxis saadaval.\r\nKas soovid rohkem infot selle probleemi kohta?",\r
+path:"Tee",\r
+newdocument:"Oled sa kindel, et tahad kustutada k\u00F5ik sisud?",\r
+toolbar_focus:"H\u00FCppa t\u00F6\u00F6riista nuppudele - Alt+Q, H\u00FCppa redigeerijale - Alt-Z, H\u00FCppa elemendi teele - Alt-X",\r
+more_colors:"Rohkem v\u00E4rve"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('et.advanced_dlg',{\r
+about_title:"About TinyMCE",\r
+about_general:"About",\r
+about_help:"Help",\r
+about_license:"License",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Author",\r
+about_version:"Version",\r
+about_loaded:"Loaded plugins",\r
+anchor_title:"Sisesta/redigeeri ankur",\r
+anchor_name:"Ankru nimi",\r
+code_title:"HTML Source Editor",\r
+code_wordwrap:"Word wrap",\r
+colorpicker_title:"Vali v\u00E4rv",\r
+colorpicker_picker_tab:"Korjaja",\r
+colorpicker_picker_title:"V\u00E4rvi korjaja",\r
+colorpicker_palette_tab:"Palett",\r
+colorpicker_palette_title:"Palett v\u00E4rvid",\r
+colorpicker_named_tab:"Nimetatud",\r
+colorpicker_named_title:"Nimetatud v\u00E4rvid",\r
+colorpicker_color:"V\u00E4rv:",\r
+colorpicker_name:"Nimi:",\r
+charmap_title:"Vali kohandatud t\u00E4hem\u00E4rk",\r
+image_title:"Sisestal/redigeeri pilt",\r
+image_src:"Pildi URL",\r
+image_alt:"Pildi kirjeldus",\r
+image_list:"Pildi loend",\r
+image_border:"Raam",\r
+image_dimensions:"Dimensioonid",\r
+image_vspace:"Vertikaalne vahe",\r
+image_hspace:"Horisontaalne vahe",\r
+image_align:"Reastus",\r
+image_align_baseline:"Kirjajoondus",\r
+image_align_top:"\u00DClemine",\r
+image_align_middle:"Keskmine",\r
+image_align_bottom:"Alumine",\r
+image_align_texttop:"Teksti tipp",\r
+image_align_textbottom:"Teksti p\u00F5hi",\r
+image_align_left:"Vasak",\r
+image_align_right:"Parem",\r
+link_title:"Sisesta/redigeeri link",\r
+link_url:"Link URL",\r
+link_target:"Sihtala",\r
+link_target_same:"Ava link samas aknas",\r
+link_target_blank:"Ava link uues aknas",\r
+link_titlefield:"Tiitel",\r
+link_is_email:"URL, mille te sisestasite, tundub olevat emaili aadress, kas soovite, et lisataks mailto: eesliite?",\r
+link_is_external:"URL, mille sisestasite, tundub olevat v\u00E4line link, kas soovite, et lisataks http:// eesliite?",\r
+link_list:"Lingi loetelu"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fa.advanced',{\r
+style_select:"\u0633\u0628\u06A9\u200C\u0647\u0627",\r
+font_size:"\u0627\u0646\u062F\u0627\u0632\u0647 \u0642\u0644\u0645",\r
+fontdefault:"\u0646\u0648\u0639 \u0642\u0644\u0645",\r
+block:"\u0642\u0627\u0644\u0628",\r
+paragraph:"\u067E\u0627\u0631\u0627\u06AF\u0631\u0627\u0641",\r
+div:"Div",\r
+address:"\u0622\u062F\u0631\u0633",\r
+pre:"\u0627\u0632 \u0642\u0628\u0644 \u0642\u0627\u0644\u0628\u0646\u062F\u06CC \u0634\u062F\u0647",\r
+h1:"\u0633\u0631\u0641\u0635\u0644 1",\r
+h2:"\u0633\u0631\u0641\u0635\u0644 2",\r
+h3:"\u0633\u0631\u0641\u0635\u0644 3",\r
+h4:"\u0633\u0631\u0641\u0635\u0644 4",\r
+h5:"\u0633\u0631\u0641\u0635\u0644 5",\r
+h6:"\u0633\u0631\u0641\u0635\u0644 6",\r
+blockquote:"\u062C\u0639\u0628\u0647 \u0646\u0642\u0644 \u0642\u0648\u0644",\r
+code:"\u06A9\u062F",\r
+samp:"\u0646\u0645\u0648\u0646\u0647 \u06A9\u062F",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"(Ctrl+B) \u067E\u0631\u0631\u0646\u06AF",\r
+italic_desc:"(Ctrl+I) \u06A9\u062C",\r
+underline_desc:"(Ctrl+U) \u0632\u06CC\u0631\u062E\u0637",\r
+striketrough_desc:"\u062E\u0637 \u062E\u0648\u0631\u062F\u0647",\r
+justifyleft_desc:"\u0686\u067E \u0686\u06CC\u0646",\r
+justifycenter_desc:"\u0648\u0633\u0637 \u0686\u06CC\u0646",\r
+justifyright_desc:"\u0631\u0627\u0633\u062A \u0686\u06CC\u0646",\r
+justifyfull_desc:"\u062A\u0631\u0627\u0632 \u06A9\u0634\u06CC\u062F\u0647",\r
+bullist_desc:"\u0644\u06CC\u0633\u062A \u0633\u0627\u062F\u0647",\r
+numlist_desc:"\u0644\u06CC\u0633\u062A \u0634\u0645\u0627\u0631\u0647\u200C\u062F\u0627\u0631",\r
+outdent_desc:"\u06A9\u0627\u0647\u0634 \u062A\u0648\u0631\u0641\u062A\u06AF\u06CC",\r
+indent_desc:"\u0627\u0641\u0632\u0627\u06CC\u0634 \u062A\u0648\u0631\u0641\u062A\u06AF\u06CC",\r
+undo_desc:"(Ctrl+Z) \u0628\u0627\u0637\u0644 \u0646\u0645\u0648\u062F\u0646",\r
+redo_desc:"(Ctrl+Y) \u062A\u06A9\u0631\u0627\u0631",\r
+link_desc:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0644\u06CC\u0646\u06A9",\r
+unlink_desc:"\u062D\u0630\u0641 \u0644\u06CC\u0646\u06A9",\r
+image_desc:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u062A\u0635\u0648\u06CC\u0631",\r
+cleanup_desc:"\u067E\u0627\u06A9 \u0633\u0627\u0632\u06CC \u06A9\u062F\u0647\u0627\u06CC \u0622\u0634\u0641\u062A\u0647",\r
+code_desc:"HTML \u0648\u06CC\u0631\u0627\u06CC\u0634 \u06A9\u062F",\r
+sub_desc:"(\u0632\u06CC\u0631\u0646\u0648\u06CC\u0633 (\u0627\u0646\u062F\u06CC\u0633",\r
+sup_desc:"(\u0628\u0627\u0644\u0627\u0646\u0648\u06CC\u0633 (\u062A\u0648\u0627\u0646",\r
+hr_desc:"\u062F\u0631\u062C \u062E\u0637 \u0627\u0641\u0642\u06CC",\r
+removeformat_desc:"\u062D\u0630\u0641 \u0633\u0628\u06A9",\r
+custom1_desc:"\u0645\u062D\u0644 \u062A\u0648\u0636\u06CC\u062D \u062F\u0644\u062E\u0648\u0627\u0647 \u0634\u0645\u0627",\r
+forecolor_desc:"\u0631\u0646\u06AF \u0645\u062A\u0646 \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F",\r
+backcolor_desc:"\u0631\u0646\u06AF \u067E\u0633 \u0632\u0645\u06CC\u0646\u0647 \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F",\r
+charmap_desc:"\u062F\u0631\u062C \u06A9\u0627\u0631\u0627\u06A9\u062A\u0631 \u062F\u0644\u062E\u0648\u0627\u0647",\r
+visualaid_desc:"\u062A\u063A\u06CC\u06CC\u0631 \u0648\u0636\u0639\u06CC\u062A \u062E\u0637\u0648\u0637 \u0631\u0627\u0647\u0646\u0645\u0627/\u0639\u0646\u0627\u0635\u0631 \u0645\u062E\u0641\u06CC",\r
+anchor_desc:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0645\u0631\u062C\u0639",\r
+cut_desc:"\u0628\u0631\u0634",\r
+copy_desc:"\u0631\u0648\u0646\u0648\u0634\u062A",\r
+paste_desc:"\u0686\u0633\u0628\u0627\u0646\u062F\u0646",\r
+image_props_desc:"\u062A\u0646\u0638\u06CC\u0645\u0627\u062A \u062A\u0635\u0648\u06CC\u0631",\r
+newdocument_desc:"\u0633\u0646\u062F \u062C\u062F\u06CC\u062F",\r
+help_desc:"\u0631\u0627\u0647\u0646\u0645\u0627",\r
+blockquote_desc:"\u062C\u0639\u0628\u0647 \u0646\u0642\u0644 \u0642\u0648\u0644",\r
+clipboard_msg:"\u0631\u0648\u0646\u0648\u0634\u062A/\u0628\u0631\u0634/\u062C\u0627\u06CC\u06AF\u0630\u0627\u0631\u06CC \u062F\u0631 \u0645\u0631\u0648\u0631\u06AF\u0631\u0647\u0627\u06CC \u0645\u0648\u0632\u06CC\u0644\u0627 \u0648 \u0641\u0627\u06CC\u0631\u0641\u0627\u06A9\u0633 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u0646\u062F.\r\n\u0622\u06CC\u0627 \u0628\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062A \u0628\u06CC\u0634\u062A\u0631\u06CC \u062F\u0631 \u0627\u06CC\u0646 \u0632\u0645\u06CC\u0646\u0647 \u0646\u06CC\u0627\u0632 \u062F\u0627\u0631\u06CC\u062F\u061F",\r
+path:"\u0645\u0633\u064A\u0631",\r
+newdocument:"\u0622\u06CC\u0627 \u0645\u0637\u0645\u0626\u0646\u06CC\u062F \u06A9\u0647 \u0645\u0647\u0645 \u0645\u062D\u062A\u0648\u06CC\u0627\u062A \u0631\u0627 \u067E\u0627\u06A9 \u0645\u06CC \u06A9\u0646\u06CC\u062F\u061F",\r
+toolbar_focus:"\u067E\u0631\u0634 \u0628\u0647 \u06A9\u0644\u06CC\u062F\u0647\u0627\u06CC \u0627\u0628\u0632\u0627\u0631 - Alt+Q, \u067E\u0631\u0634 \u0628\u0647 \u0648\u06CC\u0631\u0627\u06CC\u0634\u06AF\u0631 - Alt-Z, \u067E\u0631\u0634 \u0628\u0647 \u0645\u0633\u06CC\u0631 \u0639\u0646\u0635\u0631 - Alt-X",\r
+more_colors:"\u0631\u0646\u06AF\u200C\u0647\u0627\u06CC \u0628\u06CC\u0634\u062A\u0631"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fa.advanced_dlg',{\r
+about_title:"About TinyMCE",\r
+about_general:"\u062F\u0631\u0628\u0627\u0631\u0647",\r
+about_help:"\u0631\u0627\u0647\u0646\u0645\u0627",\r
+about_license:"\u0627\u062C\u0627\u0632\u0647 \u0646\u0627\u0645\u0647",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Author",\r
+about_version:"\u0646\u06AF\u0627\u0631\u0634",\r
+about_loaded:"Loaded plugins",\r
+anchor_title:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0645\u0631\u062C\u0639",\r
+anchor_name:"\u0646\u0627\u0645 \u0645\u0631\u062C\u0639",\r
+code_title:"HTML Source Editor",\r
+code_wordwrap:"Word wrap",\r
+colorpicker_title:"\u0631\u0646\u06AF\u06CC \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F",\r
+colorpicker_picker_tab:"Picker",\r
+colorpicker_picker_title:"Color picker",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Palette colors",\r
+colorpicker_named_tab:"Named",\r
+colorpicker_named_title:"Named colors",\r
+colorpicker_color:"\u0631\u0646\u06AF:",\r
+colorpicker_name:"\u0646\u0627\u0645:",\r
+charmap_title:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631 \u062F\u0644\u062E\u0648\u0627\u0647 \u0631\u0627 \u0627\u0646\u062A\u062E\u0627\u0628 \u06A9\u0646\u06CC\u062F",\r
+image_title:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u062A\u0635\u0648\u06CC\u0631",\r
+image_src:"\u062A\u0635\u0648\u06CC\u0631 URL",\r
+image_alt:"\u062A\u0648\u0636\u06CC\u062D\u0627\u062A \u062A\u0635\u0648\u06CC\u0631",\r
+image_list:"Image list",\r
+image_border:"\u062D\u0627\u0634\u06CC\u0647",\r
+image_dimensions:"\u0627\u0628\u0639\u0627\u062F",\r
+image_vspace:"\u0641\u0636\u0627\u06CC \u0639\u0645\u0648\u062F\u06CC",\r
+image_hspace:"\u0641\u0636\u0627\u06CC \u0627\u0641\u0642\u06CC",\r
+image_align:"\u062A\u0631\u0627\u0632",\r
+image_align_baseline:"\u062E\u0637 \u0632\u0645\u06CC\u0646\u0647",\r
+image_align_top:"\u0628\u0627\u0644\u0627",\r
+image_align_middle:"\u0648\u0633\u0637",\r
+image_align_bottom:"\u067E\u0627\u06CC\u06CC\u0646",\r
+image_align_texttop:"Text top",\r
+image_align_textbottom:"Text bottom",\r
+image_align_left:"\u0686\u067E",\r
+image_align_right:"\u0631\u0627\u0633\u062A",\r
+link_title:"\u062F\u0631\u062C/\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0644\u06CC\u0646\u06A9",\r
+link_url:"\u0644\u06CC\u0646\u06A9 URL",\r
+link_target:"\u0647\u062F\u0641",\r
+link_target_same:"\u0628\u0627\u0632\u0634\u062F\u0646 \u062F\u0631 \u0647\u0645\u0627\u0646 \u067E\u0646\u062C\u0631\u0647",\r
+link_target_blank:"\u0628\u0627\u0632\u0634\u062F\u0646 \u062F\u0631 \u067E\u0646\u062C\u0631\u0647 \u062C\u062F\u06CC\u062F",\r
+link_titlefield:"\u0639\u0646\u0648\u0627\u0646",\r
+link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
+link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
+link_list:"Link list"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fi.advanced',{\r
+style_select:"Tyylit",\r
+font_size:"Fonttikoko",\r
+fontdefault:"Fontti",\r
+block:"Muotoilu",\r
+paragraph:"Kappale",\r
+div:"Div",\r
+address:"Osoite",\r
+pre:"Esimuotoiltu (pre)",\r
+h1:"Otsikko 1",\r
+h2:"Otsikko 2",\r
+h3:"Otsikko 3",\r
+h4:"Otsikko 4",\r
+h5:"Otsikko 5",\r
+h6:"Otsikko 6",\r
+blockquote:"Pitk\u00E4 lainaus",\r
+code:"Koodi",\r
+samp:"Koodi esimerkki",\r
+dt:"M\u00E4\u00E4rittelyn ehto ",\r
+dd:"M\u00E4\u00E4rittelyn kuvaus",\r
+bold_desc:"Lihavoitu (Ctrl+B)",\r
+italic_desc:"Kursivoitu (Ctrl+I)",\r
+underline_desc:"Alleviivattu (Ctrl+U)",\r
+striketrough_desc:"Yliviivattu",\r
+justifyleft_desc:"Tasaus vasemmalle",\r
+justifycenter_desc:"Keskitetty",\r
+justifyright_desc:"Tasaus oikealle",\r
+justifyfull_desc:"Tasattu",\r
+bullist_desc:"J\u00E4rjest\u00E4m\u00E4t\u00F6n lista",\r
+numlist_desc:"J\u00E4rjestetty lista",\r
+outdent_desc:"V\u00E4henn\u00E4 sisennyst\u00E4",\r
+indent_desc:"Sisenn\u00E4",\r
+undo_desc:"Peru (Ctrl+Z)",\r
+redo_desc:"Tee uudelleen (Ctrl+Y)",\r
+link_desc:"Lis\u00E4\u00E4/muuta linkki",\r
+unlink_desc:"Poista linkki",\r
+image_desc:"Lis\u00E4\u00E4/muuta kuva",\r
+cleanup_desc:"Siisti sekainen koodi",\r
+code_desc:"Editoi HTML-koodia",\r
+sub_desc:"Alaindeksi",\r
+sup_desc:"Yl\u00E4indeksi",\r
+hr_desc:"Lis\u00E4\u00E4 vaakasuora viivain",\r
+removeformat_desc:"Poista muotoilu",\r
+custom1_desc:"Oma kuvauksesi t\u00E4h\u00E4n",\r
+forecolor_desc:"Valitse tekstin v\u00E4ri",\r
+backcolor_desc:"Valitse taustan v\u00E4ri",\r
+charmap_desc:"Lis\u00E4\u00E4 erikoismerkki",\r
+visualaid_desc:"Suuntaviivat/N\u00E4kym\u00E4tt\u00F6m\u00E4t elementit",\r
+anchor_desc:"Lis\u00E4\u00E4/Muokkaa ankkuri",\r
+cut_desc:"Leikkaa",\r
+copy_desc:"Kopioi",\r
+paste_desc:"Liit\u00E4",\r
+image_props_desc:"Kuvan ominaisuudet",\r
+newdocument_desc:"Uusi tiedosto",\r
+help_desc:"Ohje",\r
+blockquote_desc:"Pitk\u00E4 lainaus",\r
+clipboard_msg:"Kopioi/Leikkaa/Liit\u00E4 -painikkeet eiv\u00E4t toimi Mozilla ja Firefox-selaimilla. Voit kuitenkin k\u00E4ytt\u00E4\u00E4 n\u00E4pp\u00E4inyhdistelmi\u00E4 kopioimiseen (ctrl+c), leikkaamiseen (ctrl+x) ja liitt\u00E4miseen (ctrl+v).\r\nHalutatko lis\u00E4\u00E4 tietoa?",\r
+path:"Polku",\r
+newdocument:"Haluatko varmasti tyhjent\u00E4\u00E4 kaiken sis\u00E4ll\u00F6n?",\r
+toolbar_focus:"Siirry ty\u00F6kaluihin - Alt+Q, Siirry tekstieditoriin - Alt-Z, Siirry elementin polkuun - Alt-X",\r
+more_colors:"Enemm\u00E4n v\u00E4rej\u00E4"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fi.advanced_dlg',{\r
+about_title:"Tietoja TinyMCE:st\u00E4",\r
+about_general:"Tietoja",\r
+about_help:"Ohje",\r
+about_license:"Lisenssi",\r
+about_plugins:"Lis\u00E4osat",\r
+about_plugin:"Lis\u00E4osa",\r
+about_author:"Kirjoittaja",\r
+about_version:"Versio",\r
+about_loaded:"Ladatut lis\u00E4osat",\r
+anchor_title:"Liit\u00E4/muokkaa ankkuria",\r
+anchor_name:"Ankkurin nimi",\r
+code_title:"HTML-koodin muokkaus",\r
+code_wordwrap:"Automaattinen rivinvaihto",\r
+colorpicker_title:"Valitse v\u00E4ri",\r
+colorpicker_picker_tab:"Valitsin",\r
+colorpicker_picker_title:"V\u00E4rin valitsin",\r
+colorpicker_palette_tab:"Paletti",\r
+colorpicker_palette_title:"V\u00E4ripalette",\r
+colorpicker_named_tab:"Nimetty",\r
+colorpicker_named_title:"Nimetyt v\u00E4rit",\r
+colorpicker_color:"V\u00E4ri:",\r
+colorpicker_name:"Nimi:",\r
+charmap_title:"Valitse erikoismerkki",\r
+image_title:"Lis\u00E4\u00E4/muokkaa kuvaa",\r
+image_src:"Kuvan osoite",\r
+image_alt:"Kuvan kuvaus",\r
+image_list:"Kuvalista",\r
+image_border:"Reunus",\r
+image_dimensions:"Mitat",\r
+image_vspace:"Pystysuuntainen tila",\r
+image_hspace:"Vaakasuuntainen tila",\r
+image_align:"Tasaus",\r
+image_align_baseline:"Tekstin tasossa",\r
+image_align_top:"Yl\u00F6s",\r
+image_align_middle:"Keskelle",\r
+image_align_bottom:"Alas",\r
+image_align_texttop:"Tekstin yl\u00E4osaan",\r
+image_align_textbottom:"Tekstin alaosaan",\r
+image_align_left:"Vasemmalle",\r
+image_align_right:"Oikealle",\r
+link_title:"Lis\u00E4\u00E4/muuta linkki",\r
+link_url:"Linkin osoite",\r
+link_target:"Kohde",\r
+link_target_same:"Avaa linkki samassa ikkunassa",\r
+link_target_blank:"Avaa linkki uuteen ikkunaan",\r
+link_titlefield:"Otsikko",\r
+link_is_email:"Antamasi osoite n\u00E4ytt\u00E4\u00E4 olevan s\u00E4\u00E4hk\u00F6postiosoite. Haluatko lis\u00E4t\u00E4 siihen mailto:-etuliitteen?",\r
+link_is_external:"Antamasi osoite n\u00E4ytt\u00E4\u00E4 johtavan ulkopuoliselle sivustolle. Haluatko lis\u00E4t\u00E4 linkin eteen http://-etuliitteen? (suositus)",\r
+link_list:"Linkkilista"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fr.advanced',{\r
+style_select:"Styles",\r
+font_size:"Taille de la police",\r
+fontdefault:"Famille de police",\r
+block:"Format",\r
+paragraph:"Paragraphe",\r
+div:"Div",\r
+address:"Adresse",\r
+pre:"Preformatt\u00E9",\r
+h1:"Titre 1",\r
+h2:"Titre 2",\r
+h3:"Titre 3",\r
+h4:"Titre 4",\r
+h5:"Titre 5",\r
+h6:"Titre 6",\r
+blockquote:"Citation",\r
+code:"Code",\r
+samp:"Exemple de code",\r
+dt:"Terme \u00E0 d\u00E9finir",\r
+dd:"D\u00E9finition du terme",\r
+bold_desc:"Gras (Ctrl+B)",\r
+italic_desc:"Italique (Ctrl+I)",\r
+underline_desc:"Soulign\u00E9 (Ctrl+U)",\r
+striketrough_desc:"Barr\u00E9",\r
+justifyleft_desc:"Align\u00E9 \u00E0 gauche",\r
+justifycenter_desc:"Centr\u00E9",\r
+justifyright_desc:"Align\u00E9 \u00E0 droite",\r
+justifyfull_desc:"Justifi\u00E9",\r
+bullist_desc:"Liste non-num\u00E9rot\u00E9e",\r
+numlist_desc:"Liste num\u00E9rot\u00E9e",\r
+outdent_desc:"Retirer l'indentation",\r
+indent_desc:"Indenter",\r
+undo_desc:"D\u00E9faire (Ctrl+Z)",\r
+redo_desc:"Refaire (Ctrl+Y)",\r
+link_desc:"Ins\u00E9rer/\u00C9diter le lien",\r
+unlink_desc:"D\u00E9lier",\r
+image_desc:"Ins\u00E9rer/\u00C9diter l'image",\r
+cleanup_desc:"Nettoyer le code non propre",\r
+code_desc:"\u00C9diter source HTML",\r
+sub_desc:"Indice",\r
+sup_desc:"Exposant",\r
+hr_desc:"Ins\u00E9rer trait horizontal",\r
+removeformat_desc:"Enlever formattage",\r
+custom1_desc:"Votre description personnalis\u00E9e ici",\r
+forecolor_desc:"Choisir la couleur du texte",\r
+backcolor_desc:"Choisir la couleur de surlignage",\r
+charmap_desc:"Ins\u00E9rer caract\u00E8res sp\u00E9ciaux",\r
+visualaid_desc:"Activer/d\u00E9sactiver les guides et les \u00E9l\u00E9ments invisibles",\r
+anchor_desc:"Ins\u00E9rer/\u00C9diter ancre",\r
+cut_desc:"Couper",\r
+copy_desc:"Copier",\r
+paste_desc:"Coller",\r
+image_props_desc:"Propri\u00E9t\u00E9s de l'image",\r
+newdocument_desc:"Nouveau document",\r
+help_desc:"Aide",\r
+blockquote_desc:"Citation",\r
+clipboard_msg:"Copier/Couper/Coller n'est pas disponible sous Mozilla et sous Firefox.\n\r\n Voulez-vous plus d'information sur ce probl\u00E8me\u00A0?",\r
+path:"Chemin",\r
+newdocument:"\u00CAtes-vous s\u00FBr de vouloir effacer l'enti\u00E8ret\u00E9 du document\u00A0?",\r
+toolbar_focus:"Aller aux boutons de l'\u00E9diteur - Alt+Q, Aller \u00E0 l'\u00E9diteur - Alt-Z, Aller au chemin de l'\u00E9l\u00E9ment - Alt-X",\r
+more_colors:"Plus de couleurs"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('fr.advanced_dlg',{\r
+about_title:"\u00C0 propos de TinyMCE",\r
+about_general:"\u00C0 propos",\r
+about_help:"Aide",\r
+about_license:"Licence",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Auteur",\r
+about_version:"Version",\r
+about_loaded:"Plugins charg\u00E9s",\r
+anchor_title:"Ins\u00E9rer/\u00C9diter ancre",\r
+anchor_name:"Nom de l'ancre",\r
+code_title:"\u00C9diteur de la source HTML",\r
+code_wordwrap:"Rupture de ligne",\r
+colorpicker_title:"Choisir une couleur",\r
+colorpicker_picker_tab:"Nuancier",\r
+colorpicker_picker_title:"Nuancier",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Couleurs de la palette",\r
+colorpicker_named_tab:"Noms",\r
+colorpicker_named_title:"Couleurs nomm\u00E9es",\r
+colorpicker_color:"Couleur :",\r
+colorpicker_name:"Nom :",\r
+charmap_title:"Choisir le caract\u00E8re \u00E0 ins\u00E9rer",\r
+image_title:"Ins\u00E9rer/\u00C9diter image",\r
+image_src:"URL de l'image",\r
+image_alt:"Description de l'image",\r
+image_list:"Liste d'images",\r
+image_border:"Bordure",\r
+image_dimensions:"Dimensions",\r
+image_vspace:"Espacement vertical",\r
+image_hspace:"Espacement horizontal",\r
+image_align:"Alignement",\r
+image_align_baseline:"Base",\r
+image_align_top:"Sommet",\r
+image_align_middle:"Milieu",\r
+image_align_bottom:"Bas",\r
+image_align_texttop:"Haut du texte",\r
+image_align_textbottom:"Bas du texte",\r
+image_align_left:"Gauche",\r
+image_align_right:"Droite",\r
+link_title:"Ins\u00E9rer/\u00C9diter lien",\r
+link_url:"URL du lien",\r
+link_target:"Cible",\r
+link_target_same:"Ouvrir dans la m\u00EAme fen\u00EAtre",\r
+link_target_blank:"Ouvrir dans une nouvelle fen\u00EAtre",\r
+link_titlefield:"Titre",\r
+link_is_email:"L'url que vous avez entr\u00E9 semble \u00EAtre une adresse e-mail, voulez-vous ajouter le pr\u00E9fixe mailto:\u00A0?",\r
+link_is_external:"L'url que vous avez entr\u00E9 semble \u00EAtre une adresse web externe, voulez-vous ajouter le pr\u00E9fixe http://\u00A0?",\r
+link_list:"Liste de liens"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('he.advanced',{\r
+style_select:"\u05E1\u05D2\u05E0\u05D5\u05E0\u05D5\u05EA",\r
+font_size:"\u05D2\u05D5\u05D3\u05DC \u05D2\u05D5\u05E4\u05DF",\r
+fontdefault:"\u05D2\u05D5\u05E4\u05DF",\r
+block:"\u05E2\u05D9\u05E6\u05D5\u05D1",\r
+paragraph:"\u05E4\u05E1\u05E7\u05D4",\r
+div:"Div",\r
+address:"\u05DB\u05EA\u05D5\u05D1\u05EA",\r
+pre:"Preformatted",\r
+h1:"\u05DB\u05D5\u05EA\u05E8\u05EA 1",\r
+h2:"\u05DB\u05D5\u05EA\u05E8\u05EA 2",\r
+h3:"\u05DB\u05D5\u05EA\u05E8\u05EA 3",\r
+h4:"\u05DB\u05D5\u05EA\u05E8\u05EA 4",\r
+h5:"\u05DB\u05D5\u05EA\u05E8\u05EA 5",\r
+h6:"\u05DB\u05D5\u05EA\u05E8\u05EA 6",\r
+blockquote:"\u05E6\u05D9\u05D8\u05D5\u05D8 \u05D1\u05DC\u05D5\u05E7",\r
+code:"\u05E7\u05D5\u05D3",\r
+samp:"\u05D3\u05D5\u05D2\u05DE\u05EA \u05E7\u05D5\u05D3",\r
+dt:"\u05DE\u05D5\u05E9\u05D2",\r
+dd:"\u05D4\u05D2\u05D3\u05E8\u05EA \u05D4\u05DE\u05D5\u05E9\u05D2",\r
+bold_desc:"\u05DE\u05D5\u05D3\u05D2\u05E9 (Ctrl+B)",\r
+italic_desc:"\u05E0\u05D8\u05D5\u05D9 (Ctrl+I)",\r
+underline_desc:"\u05E7\u05D5 \u05EA\u05D7\u05EA\u05D5\u05DF(Ctrl+U)",\r
+striketrough_desc:"\u05E7\u05D5 \u05D7\u05D5\u05E6\u05D4",\r
+justifyleft_desc:"\u05D9\u05D9\u05E9\u05D5\u05E8 \u05D8\u05E7\u05E1\u05D8 \u05DC\u05E9\u05DE\u05D0\u05DC",\r
+justifycenter_desc:"\u05DE\u05E8\u05DB\u05D6",\r
+justifyright_desc:"\u05D9\u05D9\u05E9\u05D5\u05E8 \u05D8\u05E7\u05E1\u05D8 \u05DC\u05D9\u05DE\u05D9\u05DF",\r
+justifyfull_desc:"\u05D9\u05D9\u05E9\u05D5\u05E8 \u05DC\u05E9\u05E0\u05D9 \u05D4\u05E6\u05D3\u05D3\u05D9\u05DD",\r
+bullist_desc:"\u05EA\u05D1\u05DC\u05D9\u05D8\u05D9\u05DD",\r
+numlist_desc:"\u05DE\u05E1\u05E4\u05D5\u05E8",\r
+outdent_desc:"\u05D4\u05D2\u05D3\u05DC\u05EA \u05DB\u05E0\u05D9\u05E1\u05D4",\r
+indent_desc:"\u05D4\u05E7\u05D8\u05E0\u05EA \u05DB\u05E0\u05D9\u05E1\u05D4",\r
+undo_desc:"\u05D1\u05D9\u05D8\u05D5\u05DC \u05E4\u05E2\u05D5\u05DC\u05D4 (Ctrl+Z)",\r
+redo_desc:"\u05D7\u05D6\u05E8\u05D4 \u05E2\u05DC \u05E4\u05E2\u05D5\u05DC\u05D4 (Ctrl+Y)",\r
+link_desc:"\u05D4\u05D5\u05E1\u05E4\u05D4/\u05E2\u05E8\u05D9\u05DB\u05EA \u05D4\u05D9\u05E4\u05E8-\u05E7\u05D9\u05E9\u05D5\u05E8",\r
+unlink_desc:"\u05D4\u05E1\u05E8\u05EA \u05D4\u05D9\u05E4\u05E8-\u05E7\u05D9\u05E9\u05D5\u05E8",\r
+image_desc:"\u05D4\u05D5\u05E1\u05E4\u05D4/\u05E2\u05E8\u05D9\u05DB\u05EA \u05D3\u05E3 \u05EA\u05DE\u05D5\u05E0\u05D4",\r
+cleanup_desc:"\u05E0\u05D9\u05E7\u05D5\u05D9 \u05E7\u05D5\u05D3",\r
+code_desc:"\u05E2\u05E8\u05D9\u05DB\u05EA \u05E7\u05D5\u05D3 HTML",\r
+sub_desc:"\u05DB\u05EA\u05D1 \u05E2\u05D9\u05DC\u05D9",\r
+sup_desc:"\u05DB\u05EA\u05D1 \u05EA\u05D7\u05EA\u05D9",\r
+hr_desc:"\u05D4\u05D5\u05E1\u05E4\u05EA \u05E7\u05D5 \u05DE\u05EA\u05D7",\r
+removeformat_desc:"\u05D4\u05E1\u05E8\u05EA \u05E2\u05D9\u05E6\u05D5\u05D1",\r
+custom1_desc:"\u05D4\u05EA\u05D0\u05D5\u05E8 \u05E9\u05DC\u05DA \u05DB\u05D0\u05D5",\r
+forecolor_desc:"\u05D1\u05D7\u05D9\u05E8\u05EA \u05E6\u05D1\u05E2 \u05D2\u05D5\u05E4\u05DF",\r
+backcolor_desc:"\u05D1\u05D7\u05D9\u05E8\u05EA \u05E6\u05D1\u05E2 \u05E8\u05E7\u05E2",\r
+charmap_desc:"\u05D4\u05D5\u05E1\u05E4\u05EA \u05E1\u05D9\u05DE\u05DF",\r
+visualaid_desc:"\u05D4\u05E6\u05D2\u05D4 \u05D0\u05D5 \u05D4\u05E1\u05EA\u05E8\u05D4 \u05E9\u05DC \u05E1\u05D9\u05DE\u05D5\u05E0\u05D9 \u05E2\u05D9\u05E6\u05D5\u05D1",\r
+anchor_desc:"\u05D4\u05D5\u05E1\u05E4\u05D4/\u05E2\u05E8\u05D9\u05DB\u05EA \u05E1\u05D9\u05DE\u05E0\u05D9\u05D4",\r
+cut_desc:"\u05D2\u05D6\u05D9\u05E8\u05D4",\r
+copy_desc:"\u05D4\u05E2\u05EA\u05E7\u05D4",\r
+paste_desc:"\u05D4\u05D3\u05D1\u05E7\u05D4",\r
+image_props_desc:"\u05DE\u05D0\u05E4\u05D9\u05D9\u05E0\u05D9 \u05D4\u05EA\u05DE\u05D5\u05E0\u05D4",\r
+newdocument_desc:"\u05DE\u05E1\u05DE\u05DA \u05D7\u05D3\u05E9",\r
+help_desc:"\u05E2\u05D6\u05E8\u05D4",\r
+blockquote_desc:"\u05E6\u05D9\u05D8\u05D5\u05D8",\r
+clipboard_msg:"\u05D4\u05E2\u05EA\u05E7/\u05D2\u05D6\u05D5\u05E8/\u05D4\u05D3\u05D1\u05E7 \u05DC\u05D0 \u05D6\u05DE\u05D9\u05E0\u05D9\u05DD \u05D1 Mozilla \u05D5\u05D1-Firefox.\r\n \u05D4\u05D0\u05DD \u05D1\u05E8\u05E6\u05D5\u05E0\u05DA \u05DC\u05E7\u05D1\u05DC \u05DE\u05D9\u05D3\u05E2 \u05E0\u05D5\u05E1\u05E3 \u05E2\u05DC \u05D4\u05E0\u05D5\u05E9\u05D0?",\r
+path:"path",\r
+newdocument:"\u05D4\u05D0\u05DD \u05D1\u05E8\u05E6\u05D5\u05E0\u05DA \u05DC\u05DE\u05D7\u05D5\u05E7 \u05D0\u05EA \u05DB\u05DC \u05D4\u05EA\u05D5\u05DB\u05DF?",\r
+toolbar_focus:"\u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05E1\u05E8\u05D2\u05DC \u05D4\u05DB\u05DC\u05D9\u05DD - Alt+Q, \u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05DE\u05E2\u05D1\u05D3 \u05EA\u05DE\u05DC\u05D9\u05DC\u05D9\u05DD - Alt-Z, \u05D4\u05E2\u05D1\u05E8\u05D4 \u05DC\u05E0\u05EA\u05D9\u05D1 \u05D4\u05D0\u05DC\u05DE\u05D8\u05D9\u05DD - Alt-X",\r
+more_colors:"\u05E2\u05D5\u05D3 \u05E6\u05D1\u05E2\u05D9\u05DD"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('he.advanced_dlg',{\r
+about_title:"\u05D0\u05D5\u05D3\u05D5\u05EA TinyMCE",\r
+about_general:"\u05D0\u05D5\u05D3\u05D5\u05EA",\r
+about_help:"\u05E2\u05D6\u05E8\u05D4",\r
+about_license:"\u05E8\u05E9\u05D9\u05D5\u05DF",\r
+about_plugins:"\u05EA\u05D5\u05E1\u05E4\u05D5\u05EA",\r
+about_plugin:"\u05EA\u05D5\u05E1\u05E4\u05EA",\r
+about_author:"\u05D9\u05D5\u05E6\u05E8",\r
+about_version:"\u05D2\u05D9\u05E8\u05E1\u05D4",\r
+about_loaded:"\u05EA\u05D5\u05E1\u05E4\u05D5\u05EA \u05E4\u05E2\u05D9\u05DC\u05D5\u05EA",\r
+anchor_title:"\u05D4\u05D5\u05E1\u05E4\u05D4/\u05E2\u05E8\u05D9\u05DB\u05EA \u05E1\u05D9\u05DE\u05E0\u05D9\u05D4",\r
+anchor_name:"\u05E9\u05DD \u05D4\u05E1\u05D9\u05DE\u05E0\u05D9\u05D4",\r
+code_title:"\u05E2\u05D5\u05E8\u05DA \u05D4-HTML",\r
+code_wordwrap:"\u05D4\u05E2\u05D1\u05E8\u05EA \u05DE\u05D9\u05DC\u05D9\u05DD",\r
+colorpicker_title:"\u05D1\u05D7\u05D9\u05E8\u05EA \u05E6\u05D1\u05E2",\r
+colorpicker_picker_tab:"\u05D1\u05D5\u05E8\u05E8",\r
+colorpicker_picker_title:"\u05D1\u05D5\u05E8\u05E8 \u05D4\u05E6\u05D1\u05E2\u05D9\u05DD",\r
+colorpicker_palette_tab:"\u05DC\u05D5\u05D7 \u05E6\u05D1\u05E2\u05D9\u05DD",\r
+colorpicker_palette_title:"\u05DC\u05D5\u05D7 \u05E6\u05D1\u05E2\u05D9\u05DD",\r
+colorpicker_named_tab:"\u05DB\u05E0\u05D5\u05D9",\r
+colorpicker_named_title:"\u05E6\u05D1\u05E2\u05D9\u05DD \u05DB\u05E0\u05D5\u05D9\u05DD",\r
+colorpicker_color:"\u05E6\u05D1\u05E2:",\r
+colorpicker_name:"\u05E9\u05DD:",\r
+charmap_title:"\u05D1\u05D7\u05D9\u05E8\u05EA \u05E1\u05D9\u05DE\u05DF",\r
+image_title:"\u05D4\u05D5\u05E1\u05E4\u05D4/\u05E2\u05E8\u05D9\u05DB\u05EA \u05EA\u05DE\u05D5\u05E0\u05D4",\r
+image_src:"\u05DB\u05EA\u05D5\u05D1\u05EA:",\r
+image_alt:"\u05EA\u05D9\u05D0\u05D5\u05E8",\r
+image_list:"\u05E8\u05E9\u05D9\u05DE\u05D4",\r
+image_border:"\u05D2\u05D1\u05D5\u05DC",\r
+image_dimensions:"\u05D2\u05D5\u05D3\u05DC",\r
+image_vspace:"\u05E8\u05D5\u05D5\u05D7 \u05D0\u05E0\u05DB\u05D9",\r
+image_hspace:"\u05E8\u05D5\u05D5\u05D7 \u05D0\u05D5\u05E4\u05E7\u05D9",\r
+image_align:"\u05D9\u05D9\u05E9\u05D5\u05E8",\r
+image_align_baseline:"\u05E7\u05D5 \u05D4\u05D4\u05EA\u05D7\u05DC\u05D4",\r
+image_align_top:"\u05E7\u05E6\u05D4 \u05D4\u05E2\u05DC\u05D9\u05D5\u05DF",\r
+image_align_middle:"\u05D0\u05DE\u05E6\u05E2",\r
+image_align_bottom:"\u05E7\u05E6\u05D4 \u05D4\u05EA\u05D7\u05EA\u05D5\u05DF",\r
+image_align_texttop:"\u05E7\u05E6\u05D4 \u05D4\u05E2\u05DC\u05D9\u05D5\u05DF \u05E9\u05DC \u05D4\u05D8\u05E7\u05E1\u05D8",\r
+image_align_textbottom:"\u05E7\u05E6\u05D4 \u05D4\u05EA\u05D7\u05EA\u05D5\u05DF \u05E9\u05DC \u05D4\u05D8\u05E7\u05E1\u05D8",\r
+image_align_left:"\u05E9\u05DE\u05D0\u05DC",\r
+image_align_right:"\u05D9\u05DE\u05D9\u05DF",\r
+link_title:"\u05D4\u05D5\u05E1\u05E4\u05D4/\u05E2\u05E8\u05D9\u05DB\u05EA \u05E7\u05D9\u05E9\u05D5\u05E8",\r
+link_url:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D4\u05D4\u05D9\u05E4\u05E8-\u05E7\u05D9\u05E9\u05D5\u05E8",\r
+link_target:"\u05D9\u05E2\u05D3",\r
+link_target_same:"\u05E4\u05EA\u05D7 \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D1\u05D0\u05D5\u05EA\u05D5 \u05D7\u05DC\u05D5\u05DF",\r
+link_target_blank:"\u05E4\u05EA\u05D7 \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D1\u05D7\u05DC\u05D5\u05DF \u05D7\u05D3\u05E9",\r
+link_titlefield:"\u05DB\u05D5\u05EA\u05E8\u05EA",\r
+link_is_email:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D4-URL \u05E9\u05D4\u05D5\u05DB\u05E0\u05E1\u05D4 \u05D4\u05D9\u05D0 \u05DB\u05DB\u05DC \u05D4\u05E0\u05E8\u05D0\u05D4 \u05DB\u05EA\u05D5\u05D1\u05EA \u05DE\u05D9\u05D9\u05DC \u05D4\u05D0\u05DD \u05D1\u05E8\u05E6\u05D5\u05E0\u05DA \u05DC\u05D4\u05D5\u05E1\u05D9\u05E3 \u05D0\u05EA \u05D4\u05E7\u05D9\u05D3\u05D5\u05DE\u05EA MAILTO \u05D4\u05E0\u05D3\u05E8\u05E9\u05EA?",\r
+link_is_external:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D4-URL \u05E9\u05D4\u05D5\u05DB\u05E0\u05E1\u05D4 \u05D4\u05D9\u05D0 \u05DB\u05DB\u05DC \u05D4\u05E0\u05E8\u05D0\u05D4 \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D7\u05D9\u05E6\u05D5\u05E0\u05D9 \u05D4\u05D0\u05DD \u05D1\u05E8\u05E6\u05D5\u05E0\u05DA \u05DC\u05D4\u05D5\u05E1\u05D9\u05E3 \u05D0\u05EA \u05D4\u05E7\u05D9\u05D3\u05D5\u05DE\u05EA http:// \u05D4\u05E0\u05D3\u05E8\u05E9\u05EA?",\r
+link_list:"\u05E8\u05E9\u05D9\u05DE\u05EA \u05E7\u05D9\u05E9\u05D5\u05E8\u05D9\u05DD"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hr.advanced',{\r
+style_select:"Stilovi",\r
+font_size:"Veli\u010Dina pisma",\r
+fontdefault:"Vrsta pisma",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adresa",\r
+pre:"Oblikovano",\r
+h1:"Naslov 1",\r
+h2:"Naslov 2",\r
+h3:"Naslov 3",\r
+h4:"Naslov 4",\r
+h5:"Naslov 5",\r
+h6:"Naslov 6",\r
+blockquote:"Citat",\r
+code:"Kod",\r
+samp:"Primjer koda",\r
+dt:"Definicija pojma",\r
+dd:"Opis definicije",\r
+bold_desc:"Podebljaj (Ctrl+B)",\r
+italic_desc:"Kurziv (Ctrl+I)",\r
+underline_desc:"Podcrtaj (Ctrl+U)",\r
+striketrough_desc:"Precrtaj",\r
+justifyleft_desc:"Poravnaj lijevo",\r
+justifycenter_desc:"Centriraj",\r
+justifyright_desc:"Poravnaj desno",\r
+justifyfull_desc:"Poravnaj potpuno",\r
+bullist_desc:"Neure\u0111ena lista",\r
+numlist_desc:"Ure\u0111ena lista",\r
+outdent_desc:"Uvuci",\r
+indent_desc:"Izvuci",\r
+undo_desc:"Poni\u0161ti (Ctrl+Z)",\r
+redo_desc:"Ponovi (Ctrl+Y)",\r
+link_desc:"Umetni/uredi poveznicu",\r
+unlink_desc:"Poni\u0161ti poveznicu",\r
+image_desc:"Umetni/uredi sliku",\r
+cleanup_desc:"Po\u010Disti kod",\r
+code_desc:"Uredi HTML izvor",\r
+sub_desc:"Indeks",\r
+sup_desc:"Eksponent",\r
+hr_desc:"Umetni vodoravnu crtu",\r
+removeformat_desc:"Poni\u0161ti oblikovanje",\r
+custom1_desc:"Vlastiti opis ovdje",\r
+forecolor_desc:"Odaberite boju teksta",\r
+backcolor_desc:"Odaberite boju pozadine",\r
+charmap_desc:"Umetni vlastiti znak",\r
+visualaid_desc:"Vodilice/nevidljivi elementi",\r
+anchor_desc:"Umetni/uredi sidro",\r
+cut_desc:"Izre\u017Ei",\r
+copy_desc:"Kopiraj",\r
+paste_desc:"Zalijepi",\r
+image_props_desc:"Svojstva slike",\r
+newdocument_desc:"Novi dokument",\r
+help_desc:"Pomo\u0107",\r
+blockquote_desc:"Citiraj",\r
+clipboard_msg:"Kopiraj/Izre\u017Ei/Zalijepi nije dostupno u Mozilla i Firefox preglednicima. Vi\u0161e informacija?",\r
+path:"Staza",\r
+newdocument:"Jeste li sigurni da \u017Eelite izbrisati cijeli sadr\u017Eaj?",\r
+toolbar_focus:"Prije\u0111i na alatnu traku - Alt+Q, prije\u0111i na ure\u0111iva\u010D - Alt-Z, prije\u0111i na element path - Alt-X",\r
+more_colors:"Vi\u0161e boja"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hr.advanced_dlg',{\r
+about_title:"TinyMCE",\r
+about_general:"O programu",\r
+about_help:"Pomo\u0107",\r
+about_license:"Licenca",\r
+about_plugins:"Dodaci",\r
+about_plugin:"Dodatak",\r
+about_author:"Autor",\r
+about_version:"Verzija",\r
+about_loaded:"Postoje\u0107i dodaci",\r
+anchor_title:"Umetni/uredi sidro",\r
+anchor_name:"Ime sidra",\r
+code_title:"HTML ure\u0111iva\u010D",\r
+code_wordwrap:"Omatanje teksta",\r
+colorpicker_title:"Izbor boje",\r
+colorpicker_picker_tab:"Odabir",\r
+colorpicker_picker_title:"Odabir boje",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta boja",\r
+colorpicker_named_tab:"Imenovano",\r
+colorpicker_named_title:"Imenovane boje",\r
+colorpicker_color:"Boja:",\r
+colorpicker_name:"Naziv:",\r
+charmap_title:"Odaberite znak",\r
+image_title:"Umetni/uredi sliku",\r
+image_src:"URL slike",\r
+image_alt:"Opis slike",\r
+image_list:"Lista slika",\r
+image_border:"Obrub",\r
+image_dimensions:"Dimenzije",\r
+image_vspace:"Okomiti razmak",\r
+image_hspace:"Vodoravni razmak",\r
+image_align:"Poravnavanje",\r
+image_align_baseline:"Osnovna linija",\r
+image_align_top:"Vrh",\r
+image_align_middle:"Sredina",\r
+image_align_bottom:"Dno",\r
+image_align_texttop:"Vrh teksta",\r
+image_align_textbottom:"Dno teksta",\r
+image_align_left:"Lijevo",\r
+image_align_right:"Desno",\r
+link_title:"Umetni/uredi poveznicu",\r
+link_url:"URL poveznice",\r
+link_target:"Meta",\r
+link_target_same:"Otvori poveznicu u istom prozoru",\r
+link_target_blank:"Otvori poveznicu u novom prozoru",\r
+link_titlefield:"Naslov",\r
+link_is_email:"URL koji ste unijeli izgleda kao e-mail adresa, \u017Eelite li dodati potrebni mailto: prefiks?",\r
+link_is_external:"URL koji ste unijeli izgleda kao vanjska poveznica, \u017Eelite li dodati potrebni http:// prefiks?",\r
+link_list:"Lista poveznica"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hu.advanced',{\r
+style_select:"St\u00EDlusok",\r
+font_size:"Bet\u0171m\u00E9ret",\r
+fontdefault:"Bet\u0171t\u00EDpus",\r
+block:"Form\u00E1tum",\r
+paragraph:"Bekezd\u00E9s",\r
+div:"Div",\r
+address:"C\u00EDm",\r
+pre:"El\u0151form\u00E1zott",\r
+h1:"C\u00EDmsor 1",\r
+h2:"C\u00EDmsor 2",\r
+h3:"C\u00EDmsor 3",\r
+h4:"C\u00EDmsor 4",\r
+h5:"C\u00EDmsor 5",\r
+h6:"C\u00EDmsor 6",\r
+blockquote:"Id\u00E9zet",\r
+code:"K\u00F3d",\r
+samp:"K\u00F3d minta",\r
+dt:"Defini\u00E1lt kifejez\u00E9s a defin\u00EDci\u00F3s list\u00E1ban",\r
+dd:"Defin\u00EDci\u00F3 a defin\u00EDci\u00F3s list\u00E1ban",\r
+bold_desc:"F\u00E9lk\u00F6v\u00E9r (Ctrl+B)",\r
+italic_desc:"D\u0151lt (Ctrl+I)",\r
+underline_desc:"Al\u00E1h\u00FAzott (Ctrl+U)",\r
+striketrough_desc:"\u00C1th\u00FAzott",\r
+justifyleft_desc:"Balra z\u00E1rt",\r
+justifycenter_desc:"K\u00F6z\u00E9pre z\u00E1rt",\r
+justifyright_desc:"Jobbra z\u00E1rt",\r
+justifyfull_desc:"Sorkiz\u00E1rt",\r
+bullist_desc:"Rendezetlen lista",\r
+numlist_desc:"Rendezett lista",\r
+outdent_desc:"Beh\u00FAz\u00E1s cs\u00F6kkent\u00E9se",\r
+indent_desc:"Beh\u00FAz\u00E1s n\u00F6vel\u00E9se",\r
+undo_desc:"Visszavon (Ctrl+Z)",\r
+redo_desc:"M\u00E9gis v\u00E9grehajt (Ctrl+Y)",\r
+link_desc:"Link besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+unlink_desc:"Link megsz\u00FCntet\u00E9se",\r
+image_desc:"K\u00E9p besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+cleanup_desc:"Rendetlen k\u00F3d takar\u00EDt\u00E1sa",\r
+code_desc:"HTML forr\u00E1s szerkeszt\u00E9se",\r
+sub_desc:"Als\u00F3 index",\r
+sup_desc:"Fels\u0151 index",\r
+hr_desc:"V\u00EDzszintes elv\u00E1laszt\u00F3 besz\u00FAr\u00E1sa",\r
+removeformat_desc:"Form\u00E1z\u00E1s elt\u00E1vol\u00EDt\u00E1sa",\r
+custom1_desc:"Az \u00F6n egyedi le\u00EDr\u00E1sa",\r
+forecolor_desc:"Sz\u00F6vegsz\u00EDn v\u00E1laszt\u00E1sa",\r
+backcolor_desc:"H\u00E1tt\u00E9rsz\u00EDn v\u00E1laszt\u00E1sa",\r
+charmap_desc:"Speci\u00E1lis karakter besz\u00FAr\u00E1sa",\r
+visualaid_desc:"Vezet\u0151vonalak/nem l\u00E1that\u00F3 elemek ki-/bekapcsol\u00E1sa",\r
+anchor_desc:"Horgony besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+cut_desc:"Kiv\u00E1g\u00E1s",\r
+copy_desc:"M\u00E1sol\u00E1s",\r
+paste_desc:"Besz\u00FAr\u00E1s",\r
+image_props_desc:"K\u00E9p tulajdons\u00E1gai",\r
+newdocument_desc:"\u00DAj dokumentum",\r
+help_desc:"Seg\u00EDts\u00E9g",\r
+blockquote_desc:"Id\u00E9zet",\r
+clipboard_msg:"A M\u00E1sol\u00E1s/Kiv\u00E1g\u00E1s/Besz\u00FAr\u00E1s funkci\u00F3k nem el\u00E9rhet\u0151k Mozilla \u00E9s Firefox alatt. K\u00EDv\u00E1n t\u00F6bbet tudni err\u0151l a t\u00E9m\u00E1r\u00F3l?",\r
+path:"\u00DAtvonal",\r
+newdocument:"Biztosan t\u00F6rli az eddigi tartalmat?",\r
+toolbar_focus:"Eszk\u00F6zgombokra ugr\u00E1s - Alt+Q, Szerkeszt\u0151h\u00F6z ugr\u00E1s - Alt-Z, Elem\u00FAtvonalhoz ugr\u00E1s - Alt-X",\r
+more_colors:"T\u00F6bb sz\u00EDn"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('hu.advanced_dlg',{\r
+about_title:"A TinyMCE-r\u0151l",\r
+about_general:"R\u00F3lunk",\r
+about_help:"Seg\u00EDts\u00E9g",\r
+about_license:"Licensz",\r
+about_plugins:"Pluginok",\r
+about_plugin:"Plugin",\r
+about_author:"Szerz\u0151",\r
+about_version:"Verzi\u00F3",\r
+about_loaded:"Bet\u00F6lt\u00F6tt pluginok",\r
+anchor_title:"Horgony besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+anchor_name:"Horgonyn\u00E9v",\r
+code_title:"HTML forr\u00E1s szerkeszt\u00E9se",\r
+code_wordwrap:"Sz\u00F6veg t\u00F6rdel\u00E9se",\r
+colorpicker_title:"Sz\u00EDnv\u00E1laszt\u00E1s",\r
+colorpicker_picker_tab:"V\u00E1laszt\u00F3",\r
+colorpicker_picker_title:"Sz\u00EDnv\u00E1laszt\u00F3",\r
+colorpicker_palette_tab:"Paletta",\r
+colorpicker_palette_title:"Paletta sz\u00EDnek",\r
+colorpicker_named_tab:"Elnevezettek",\r
+colorpicker_named_title:"Elnevezett sz\u00EDnek",\r
+colorpicker_color:"Sz\u00EDn:",\r
+colorpicker_name:"N\u00E9v:",\r
+charmap_title:"Egyedi karakter v\u00E1laszt\u00E1sa",\r
+image_title:"K\u00E9p besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+image_src:"K\u00E9p URL",\r
+image_alt:"K\u00E9p le\u00EDr\u00E1s",\r
+image_list:"K\u00E9p lista",\r
+image_border:"Keret",\r
+image_dimensions:"Dimenzi\u00F3k",\r
+image_vspace:"F\u00FCgg\u0151leges t\u00E1v",\r
+image_hspace:"V\u00EDzszintes t\u00E1v",\r
+image_align:"Igaz\u00EDt\u00E1s",\r
+image_align_baseline:"Alapvonalhoz",\r
+image_align_top:"Fentre",\r
+image_align_middle:"K\u00F6z\u00E9pre",\r
+image_align_bottom:"Lentre",\r
+image_align_texttop:"Sz\u00F6veg tetej\u00E9hez",\r
+image_align_textbottom:"Sz\u00F6veg alj\u00E1hoz",\r
+image_align_left:"Balra",\r
+image_align_right:"Jobbra",\r
+link_title:"Link besz\u00FAr\u00E1sa/szerkeszt\u00E9se",\r
+link_url:"Link URL",\r
+link_target:"Target",\r
+link_target_same:"Link azonos ablakba nyit\u00E1sa",\r
+link_target_blank:"Link \u00FAj ablakba nyit\u00E1sa",\r
+link_titlefield:"C\u00EDm",\r
+link_is_email:"A be\u00EDrt URL e-mail c\u00EDmnek t\u0171nik, k\u00EDv\u00E1nja a sz\u00FCks\u00E9ges mailto:-t el\u00E9 tenni?",\r
+link_is_external:"A be\u00EDrt URL k\u00FCls\u0151 hivatkoz\u00E1snak t\u0171nik, k\u00EDv\u00E1nja a sz\u00FCks\u00E9ges http://-t el\u00E9 tenni?",\r
+link_list:"Link lista"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('is.advanced',{\r
+style_select:"St\u00EDlsni\u00F0",\r
+font_size:"Leturst\u00E6r\u00F0",\r
+fontdefault:"Leturger\u00F0",\r
+block:"Format",\r
+paragraph:"M\u00E1lsgrein",\r
+div:"Div",\r
+address:"Heimilisfang",\r
+pre:"Forsni\u00F0i\u00F0",\r
+h1:"Fyrirs\u00F6gn 1",\r
+h2:"Fyrirs\u00F6gn 2",\r
+h3:"Fyrirs\u00F6gn 3",\r
+h4:"Fyrirs\u00F6gn 4",\r
+h5:"Fyrirs\u00F6gn 5",\r
+h6:"Fyrirs\u00F6gn 6",\r
+blockquote:"Blockquote",\r
+code:"K\u00F3\u00F0i",\r
+samp:"K\u00F3\u00F0ad\u00E6mi",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"Feitletra (Ctrl+B)",\r
+italic_desc:"Sk\u00E1letra (Ctrl+I)",\r
+underline_desc:"Undirstrika (Ctrl+U)",\r
+striketrough_desc:"Yfirstrika",\r
+justifyleft_desc:"Vinstrijafna",\r
+justifycenter_desc:"Mi\u00F0jujafna",\r
+justifyright_desc:"H\u00E6grijafna",\r
+justifyfull_desc:"Jafna",\r
+bullist_desc:"B\u00F3lulisti",\r
+numlist_desc:"N\u00FAmera\u00F0ur listi",\r
+outdent_desc:"Draga \u00FAt",\r
+indent_desc:"Draga inn",\r
+undo_desc:"Taka til baka (Ctrl+Z)",\r
+redo_desc:"Endurtaka (Ctrl+Y)",\r
+link_desc:"Setja inn/breyta hlekk",\r
+unlink_desc:"Afhlekkja",\r
+image_desc:"Setja inn/breyta mynd",\r
+cleanup_desc:"Hreinsa sk\u00EDtugan k\u00F3\u00F0a",\r
+code_desc:"Breyta HTML k\u00F3\u00F0a",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Setja inn l\u00E1r\u00E9tta l\u00EDnu",\r
+removeformat_desc:"Hreinsa sni\u00F0",\r
+custom1_desc:"L\u00FDsingin \u00FE\u00EDn h\u00E9r",\r
+forecolor_desc:"Veldu lit texta",\r
+backcolor_desc:"Veldu bakgrunnslit",\r
+charmap_desc:"Setja inn t\u00E1kn",\r
+visualaid_desc:"Toggle guidelines/invisible elements",\r
+anchor_desc:"Setja inn/breyta akkeri",\r
+cut_desc:"Klippa",\r
+copy_desc:"Afrita",\r
+paste_desc:"L\u00EDma",\r
+image_props_desc:"Stillingar myndar",\r
+newdocument_desc:"N\u00FDtt skjal",\r
+help_desc:"Hj\u00E1lp",\r
+blockquote_desc:"Blockquote",\r
+clipboard_msg:"Afrita/Klippa/L\u00EDma er ekki a\u00F0gengilegt \u00ED Mozilla og Firefox eins og er.\nViltu f\u00E1 n\u00E1nari uppl\u00FDsingar?",\r
+path:"Sl\u00F3\u00F0",\r
+newdocument:"Ertu viss um a\u00F0 \u00FE\u00FA viljir hreinsa allt?",\r
+toolbar_focus:"Hoppa \u00ED t\u00F3lastiku - Alt+Q, Hoppa \u00ED ritil - Alt-Z, Hoppa \u00ED sl\u00F3\u00F0 - Alt-X",\r
+more_colors:"Fleiri litir"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('is.advanced_dlg',{\r
+about_title:"Um TinyMCE",\r
+about_general:"Um",\r
+about_help:"Hj\u00E1lp",\r
+about_license:"Leyfi",\r
+about_plugins:"Vi\u00F0b\u00E6tur",\r
+about_plugin:"Vi\u00F0b\u00E6tur",\r
+about_author:"H\u00F6fundur",\r
+about_version:"\u00DAtg\u00E1fa",\r
+about_loaded:"Vi\u00F0b\u00E6tur \u00ED notkun",\r
+anchor_title:"Setja inn/breyta akkeri",\r
+anchor_name:"Nafn akkeris",\r
+code_title:"HTML k\u00F3\u00F0a ritill",\r
+code_wordwrap:"Word wrap",\r
+colorpicker_title:"Veldu lit",\r
+colorpicker_picker_tab:"Veljari",\r
+colorpicker_picker_title:"Litaveljari",\r
+colorpicker_palette_tab:"Litaspjald",\r
+colorpicker_palette_title:"Litir litaspjalds",\r
+colorpicker_named_tab:"Nefndir",\r
+colorpicker_named_title:"Nefndir litir",\r
+colorpicker_color:"Litur:",\r
+colorpicker_name:"Nafn:",\r
+charmap_title:"Veldu t\u00E1kn",\r
+image_title:"Setja inn/breyta mynd",\r
+image_src:"Sl\u00F3\u00F0 myndar",\r
+image_alt:"L\u00FDsing myndar",\r
+image_list:"Myndalisti",\r
+image_border:"Rammi",\r
+image_dimensions:"St\u00E6r\u00F0ir",\r
+image_vspace:"L\u00F3\u00F0r\u00E9tt loftun",\r
+image_hspace:"L\u00E1r\u00E9tt loftun",\r
+image_align:"J\u00F6fnun",\r
+image_align_baseline:"Baseline",\r
+image_align_top:"Toppur",\r
+image_align_middle:"Mi\u00F0ja",\r
+image_align_bottom:"Botn",\r
+image_align_texttop:"Toppur texta",\r
+image_align_textbottom:"Botn texta",\r
+image_align_left:"Vinstri",\r
+image_align_right:"H\u00E6gri",\r
+link_title:"Setja inn/breyta hlekk",\r
+link_url:"Sl\u00F3\u00F0 hlekks",\r
+link_target:"Target",\r
+link_target_same:"Opna hlekk \u00ED sama glugga",\r
+link_target_blank:"Opna hlekk \u00ED n\u00FDjum glugga",\r
+link_titlefield:"Titill",\r
+link_is_email:"Sl\u00F3\u00F0in sem \u00FE\u00FA sl\u00F3st inn vir\u00F0ist vera netfang, viltu b\u00E6ta vi\u00F0 mailto: forskeytinu?",\r
+link_is_external:"Sl\u00F3\u00F0in sem \u00FE\u00FA sl\u00F3st inn vir\u00F0ist vera utana\u00F0komandi, viltu b\u00E6ta vi\u00F0 http:// forskeytinu?",\r
+link_list:"Hlekkjalisti"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('it.advanced',{\r
+style_select:"Stili",\r
+font_size:"Grandezza carattere",\r
+fontdefault:"Famiglia carattere",\r
+block:"Formato",\r
+paragraph:"Paragrafo",\r
+div:"Div",\r
+address:"Indirizzo",\r
+pre:"Preformattato",\r
+h1:"Intestazione 1",\r
+h2:"Intestazione 2",\r
+h3:"Intestazione 3",\r
+h4:"Intestazione 4",\r
+h5:"Intestazione 5",\r
+h6:"Intestazione 6",\r
+blockquote:"Testo quotato",\r
+code:"Codice",\r
+samp:"Esempio codice",\r
+dt:"Termine definizione",\r
+dd:"Descrizione definizione",\r
+bold_desc:"Grassetto (Ctrl+B)",\r
+italic_desc:"Corsivo (Ctrl+I)",\r
+underline_desc:"Sottolineato (Ctrl+U)",\r
+striketrough_desc:"Barrato",\r
+justifyleft_desc:"Allinea a sinistra",\r
+justifycenter_desc:"Centra",\r
+justifyright_desc:"Allinea a destra",\r
+justifyfull_desc:"Giustifica",\r
+bullist_desc:"Lista non ordinata",\r
+numlist_desc:"Lista ordinata",\r
+outdent_desc:"Sposta verso esterno",\r
+indent_desc:"Sposta verso interno",\r
+undo_desc:"Annulla (Ctrl+Z)",\r
+redo_desc:"Ripristina (Ctrl+Y)",\r
+link_desc:"Inserisci/modifica collegamento",\r
+unlink_desc:"Togli collegamento",\r
+image_desc:"Inserisci/modifica immagine",\r
+cleanup_desc:"Pulisci codice disordinato",\r
+code_desc:"Modifica sorgente HTML",\r
+sub_desc:"Pedice",\r
+sup_desc:"Apice",\r
+hr_desc:"Inserisci riga orizzontale",\r
+removeformat_desc:"Rimuovi formattazione",\r
+custom1_desc:"La tua descrizione personalizzata qui",\r
+forecolor_desc:"Seleziona colore testo",\r
+backcolor_desc:"Seleziona colore sfondo",\r
+charmap_desc:"Inserisci carattere speciale",\r
+visualaid_desc:"Mostra/nascondi linee guida/elementi invisibili",\r
+anchor_desc:"Inserisci/modifica ancora",\r
+cut_desc:"Taglia",\r
+copy_desc:"Copia",\r
+paste_desc:"Incolla",\r
+image_props_desc:"Propriet\u00E0 immagine",\r
+newdocument_desc:"Nuovo documento",\r
+help_desc:"Aiuto",\r
+blockquote_desc:"Testo quotato",\r
+clipboard_msg:"Copia/Taglia/Incolla non \u00E8 disponibile in Mozilla e Firefox..\r\nSi desidera avere maggiori informazioni su questo problema?",\r
+path:"Percorso",\r
+newdocument:"Sei sicuro di voler cancellare tutti i contenuti?",\r
+toolbar_focus:"Vai ai pulsanti strumento - Alt+Q, Vai all'editor - Alt-Z, Vai al percorso dell'elemento - Alt-X",\r
+more_colors:"Colori aggiuntivi"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('it.advanced_dlg',{\r
+about_title:"Informazioni su TinyMCE",\r
+about_general:"Informazioni",\r
+about_help:"Aiuto",\r
+about_license:"Licenza",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Autore",\r
+about_version:"Versione",\r
+about_loaded:"Plugin caricati",\r
+anchor_title:"Inserisci/modifica ancora",\r
+anchor_name:"Nome ancora",\r
+code_title:"Editor sorgente HTML",\r
+code_wordwrap:"A capo automatico",\r
+colorpicker_title:"Seleziona un colore",\r
+colorpicker_picker_tab:"Selettore",\r
+colorpicker_picker_title:"Selettore colori",\r
+colorpicker_palette_tab:"Tavolozza",\r
+colorpicker_palette_title:"Tavolozza dei colori",\r
+colorpicker_named_tab:"Per nome",\r
+colorpicker_named_title:"Colori per nome",\r
+colorpicker_color:"Colore:",\r
+colorpicker_name:"Nome:",\r
+charmap_title:"Seleziona carattere speciale",\r
+image_title:"Inserisci/modifica immagine",\r
+image_src:"URL immagine",\r
+image_alt:"Descrizione immagine",\r
+image_list:"Lista immagini",\r
+image_border:"Bordo",\r
+image_dimensions:"Dimensioni",\r
+image_vspace:"Spaziatura verticale",\r
+image_hspace:"Spaziatura orizzontale",\r
+image_align:"Allineamentot",\r
+image_align_baseline:"Alla base",\r
+image_align_top:"In alto",\r
+image_align_middle:"In mezzo",\r
+image_align_bottom:"In basso",\r
+image_align_texttop:"In alto al testo",\r
+image_align_textbottom:"In basso al testo",\r
+image_align_left:"A sinistra",\r
+image_align_right:"A destra",\r
+link_title:"Inserisci/modifica collegamento",\r
+link_url:"URL collegamento",\r
+link_target:"Target",\r
+link_target_same:"Apri link nella stessa finestra",\r
+link_target_blank:"Apri link in una nuova finestra",\r
+link_titlefield:"Titolo",\r
+link_is_email:"L'URL inserito sembra essere un indirizzo email. Aggiungere il necessario prefisso mailto: ?",\r
+link_is_external:"L'URL inserito sembra essere un link esterno. Aggiungere il necessario prefisso http:// ?",\r
+link_list:"Lista collegamenti"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ja.advanced',{\r
+style_select:"\u30B9\u30BF\u30A4\u30EB",\r
+font_size:"\u30D5\u30A9\u30F3\u30C8\u30B5\u30A4\u30BA",\r
+fontdefault:"\u30D5\u30A9\u30F3\u30C8",\r
+block:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8",\r
+paragraph:"\u6BB5\u843D",\r
+div:"Div",\r
+address:"\u4F4F\u6240",\r
+pre:"\u6574\u5F62\u6E08\u307F",\r
+h1:"\u898B\u51FA\u30571",\r
+h2:"\u898B\u51FA\u30572",\r
+h3:"\u898B\u51FA\u30573",\r
+h4:"\u898B\u51FA\u30574",\r
+h5:"\u898B\u51FA\u30575",\r
+h6:"\u898B\u51FA\u30576",\r
+blockquote:"\u5F15\u7528",\r
+code:"\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9",\r
+samp:"\u30B3\u30FC\u30C9\u30B5\u30F3\u30D7\u30EB",\r
+dt:"\u8A9E\u53E5\u5B9A\u7FA9",\r
+dd:"\u8A9E\u53E5\u8AAC\u660E",\r
+bold_desc:"\u592A\u5B57 (Ctrl+B)",\r
+italic_desc:"\u659C\u4F53 (Ctrl+I)",\r
+underline_desc:"\u4E0B\u7DDA (Ctrl+U)",\r
+striketrough_desc:"\u6253\u6D88\u3057\u7DDA",\r
+justifyleft_desc:"\u5DE6\u63C3\u3048",\r
+justifycenter_desc:"\u4E2D\u592E\u63C3\u3048",\r
+justifyright_desc:"\u53F3\u63C3\u3048",\r
+justifyfull_desc:"\u5747\u7B49\u5272\u4ED8",\r
+bullist_desc:"\u756A\u53F7\u306A\u3057\u30EA\u30B9\u30C8",\r
+numlist_desc:"\u756A\u53F7\u3064\u304D\u30EA\u30B9\u30C8",\r
+outdent_desc:"\u30A4\u30F3\u30C7\u30F3\u30C8\u89E3\u9664",\r
+indent_desc:"\u30A4\u30F3\u30C7\u30F3\u30C8",\r
+undo_desc:"\u5143\u306B\u623B\u3059 (Ctrl+Z)",\r
+redo_desc:"\u3084\u308A\u76F4\u3059 (Ctrl+Y)",\r
+link_desc:"\u30EA\u30F3\u30AF\u306E\u633F\u5165/\u7DE8\u96C6",\r
+unlink_desc:"\u30EA\u30F3\u30AF\u89E3\u9664",\r
+image_desc:"\u753B\u50CF\u306E\u633F\u5165/\u7DE8\u96C6",\r
+cleanup_desc:"\u30B3\u30FC\u30C9\u6574\u5F62",\r
+code_desc:"HTML\u30BD\u30FC\u30B9\u7DE8\u96C6",\r
+sub_desc:"\u4E0B\u4ED8\u304D",\r
+sup_desc:"\u4E0A\u4ED8\u304D",\r
+hr_desc:"\u6C34\u5E73\u7DDA",\r
+removeformat_desc:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u89E3\u9664",\r
+custom1_desc:"\u8AAC\u660E\u6587\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",\r
+forecolor_desc:"\u6587\u5B57\u8272",\r
+backcolor_desc:"\u80CC\u666F\u8272",\r
+charmap_desc:"\u7279\u6B8A\u6587\u5B57",\r
+visualaid_desc:"\u30AC\u30A4\u30C9\u30E9\u30A4\u30F3\u3068\u975E\u8868\u793A\u9805\u76EE\u306E\u8868\u793A\u5207\u66FF",\r
+anchor_desc:"\u30A2\u30F3\u30AB\u30FC\u306E\u633F\u5165/\u7DE8\u96C6",\r
+cut_desc:"\u5207\u308A\u53D6\u308A",\r
+copy_desc:"\u30B3\u30D4\u30FC",\r
+paste_desc:"\u8CBC\u308A\u4ED8\u3051",\r
+image_props_desc:"\u753B\u50CF\u306E\u30D7\u30ED\u30D1\u30C6\u30A3",\r
+newdocument_desc:"\u65B0\u898F\u4F5C\u6210",\r
+help_desc:"\u30D8\u30EB\u30D7",\r
+blockquote_desc:"\u5F15\u7528",\r
+clipboard_msg:"\u30B3\u30D4\u30FC/\u5207\u308A\u53D6\u308A/\u8CBC\u308A\u4ED8\u3051\u306FMozilla\u53CA\u3073Firefox\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n\u8A73\u7D30\u306F\u3053\u3061\u3089",\r
+path:"\u30D1\u30B9",\r
+newdocument:"\u7DE8\u96C6\u4E2D\u306E\u30C7\u30FC\u30BF\u3092\u7834\u68C4\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F",\r
+toolbar_focus:"\u30C4\u30FC\u30EB\u30DC\u30BF\u30F3\u3078\u30B8\u30E3\u30F3\u30D7 - Alt+Q, \u30A8\u30C7\u30A3\u30BF\u306B\u30B8\u30E3\u30F3\u30D7 - Alt-Z, \u30A8\u30EC\u30E1\u30F3\u30C8\u30D1\u30B9\u3078\u30B8\u30E3\u30F3\u30D7 - Alt-X",\r
+more_colors:"\u305D\u306E\u4ED6\u306E\u8272"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ja.advanced_dlg',{\r
+about_title:"TinyMCE\u306B\u3064\u3044\u3066",\r
+about_general:"\u8A73\u7D30",\r
+about_help:"\u30D8\u30EB\u30D7",\r
+about_license:"\u30E9\u30A4\u30BB\u30F3\u30B9",\r
+about_plugins:"\u30D7\u30E9\u30B0\u30A4\u30F3",\r
+about_plugin:"\u30D7\u30E9\u30B0\u30A4\u30F3",\r
+about_author:"\u4F5C\u8005",\r
+about_version:"\u30D0\u30FC\u30B8\u30E7\u30F3",\r
+about_loaded:"\u8AAD\u8FBC\u6E08\u307F\u30D7\u30E9\u30B0\u30A4\u30F3",\r
+anchor_title:"\u30A2\u30F3\u30AB\u30FC\u306E\u633F\u5165/\u7DE8\u96C6",\r
+anchor_name:"\u30A2\u30F3\u30AB\u30FC\u540D",\r
+code_title:"HTML\u30BD\u30FC\u30B9\u30A8\u30C7\u30A3\u30BF",\r
+code_wordwrap:"\u6298\u308A\u8FD4\u3057",\r
+colorpicker_title:"\u8272\u306E\u9078\u629E",\r
+colorpicker_picker_tab:"\u30AB\u30E9\u30FC\u30D4\u30C3\u30AB\u30FC",\r
+colorpicker_picker_title:"\u30AB\u30E9\u30FC\u30D4\u30C3\u30AB\u30FC",\r
+colorpicker_palette_tab:"\u30D1\u30EC\u30C3\u30C8",\r
+colorpicker_palette_title:"\u30D1\u30EC\u30C3\u30C8",\r
+colorpicker_named_tab:"\u65E2\u5B9A\u8272",\r
+colorpicker_named_title:"\u65E2\u5B9A\u8272",\r
+colorpicker_color:"\u30AB\u30E9\u30FC:",\r
+colorpicker_name:"\u540D\u524D:",\r
+charmap_title:"\u7279\u6B8A\u6587\u5B57",\r
+image_title:"\u753B\u50CF\u306E\u633F\u5165/\u7DE8\u96C6",\r
+image_src:"\u753B\u50CFURL",\r
+image_alt:"\u753B\u50CF\u306E\u8AAC\u660E",\r
+image_list:"\u4E00\u89A7\u304B\u3089\u9078\u3076",\r
+image_border:"\u67A0\u7DDA",\r
+image_dimensions:"\u30B5\u30A4\u30BA",\r
+image_vspace:"\u4E0A\u4E0B\u4F59\u767D",\r
+image_hspace:"\u5DE6\u53F3\u4F59\u767D",\r
+image_align:"\u914D\u7F6E",\r
+image_align_baseline:"Baseline",\r
+image_align_top:"Top",\r
+image_align_middle:"Middle",\r
+image_align_bottom:"Bottom",\r
+image_align_texttop:"Text top",\r
+image_align_textbottom:"Text bottom",\r
+image_align_left:"Left",\r
+image_align_right:"Right",\r
+link_title:"\u30EA\u30F3\u30AF\u306E\u633F\u5165/\u7DE8\u96C6",\r
+link_url:"\u30EA\u30F3\u30AFURL",\r
+link_target:"\u30BF\u30FC\u30B2\u30C3\u30C8",\r
+link_target_same:"\u540C\u3058\u30A6\u30A4\u30F3\u30C9\u30A6\u3067\u958B\u304F",\r
+link_target_blank:"\u65B0\u3057\u3044\u30A6\u30A4\u30F3\u30C9\u30A6\u3067\u958B\u304F",\r
+link_titlefield:"\u30BF\u30A4\u30C8\u30EB",\r
+link_is_email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F\u3002\u30EA\u30F3\u30AF\u306Bmailto:\u3092\u4ED8\u52A0\u3057\u307E\u3059\u304B\uFF1F",\r
+link_is_external:"\u30EA\u30F3\u30AF\u306Bhttp://\u3092\u4ED8\u52A0\u3057\u307E\u3059\u304B\uFF1F",\r
+link_list:"\u4E00\u89A7\u304B\u3089\u9078\u3076"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ko.advanced',{\r
+style_select:"\uC2A4\uD0C0\uC77C",\r
+font_size:"\uAE00\uAF34 \uD06C\uAE30",\r
+fontdefault:"\uAE00\uAF34",\r
+block:"\uD3EC\uB9F7",\r
+paragraph:"\uB2E8\uB77D",\r
+div:"Div",\r
+address:"\uC8FC\uC18C",\r
+pre:"pre",\r
+h1:"\uD45C\uC81C1",\r
+h2:"\uD45C\uC81C2",\r
+h3:"\uD45C\uC81C3",\r
+h4:"\uD45C\uC81C4",\r
+h5:"\uD45C\uC81C5",\r
+h6:"\uD45C\uC81C6",\r
+blockquote:"\uC778\uC6A9\uBB38",\r
+code:"\uCF54\uB4DC",\r
+samp:"\uC0D8\uD50C\uCF54\uB4DC",\r
+dt:"\uC5B4\uAD6C \uC815\uC758",\r
+dd:"\uC815\uC758 \uC124\uBA85",\r
+bold_desc:"\uAD75\uC740 \uAE00\uC528(Ctrl+B)",\r
+italic_desc:"\uC774\uD0E4\uB9AD(Ctrl+I)",\r
+underline_desc:"\uBC11\uC904(Ctrl+U)",\r
+striketrough_desc:"\uCDE8\uC18C\uC120",\r
+justifyleft_desc:"\uC67C\uCABD \uC815\uB82C",\r
+justifycenter_desc:"\uAC00\uC6B4\uB370 \uC815\uB82C",\r
+justifyright_desc:"\uC624\uB978\uCABD \uC815\uB82C",\r
+justifyfull_desc:"\uBC30\uBD84 \uC815\uB82C",\r
+bullist_desc:"\uBE44\uC21C\uCC28\uBAA9\uB85D",\r
+numlist_desc:"\uC21C\uCC28\uBAA9\uB85D",\r
+outdent_desc:"\uB0B4\uC5B4\uC4F0\uAE30",\r
+indent_desc:"\uB4E4\uC5EC\uC4F0\uAE30",\r
+undo_desc:"\uC2E4\uD589\uCDE8\uC18C(Ctrl+Z)",\r
+redo_desc:"\uB2E4\uC2DC\uC2E4\uD589(Ctrl+Y)",\r
+link_desc:"\uB9C1\uD06C\uC758 \uC0BD\uC785/\uD3B8\uC9D1",\r
+unlink_desc:"\uB9C1\uD06C \uC0AD\uC81C",\r
+image_desc:"\uC774\uBBF8\uC9C0 \uC0BD\uC785/\uD3B8\uC9D1",\r
+cleanup_desc:"\uC9C0\uC800\uBD84\uD55C \uCF54\uB4DC \uC0AD\uC81C",\r
+code_desc:"HTML \uD3B8\uC9D1",\r
+sub_desc:"\uC544\uB798\uCCA8\uC790",\r
+sup_desc:"\uC704\uCCA8\uC790",\r
+hr_desc:"\uAD6C\uBD84\uC120",\r
+removeformat_desc:"\uC11C\uC2DD \uD574\uC81C",\r
+custom1_desc:"\uCEE4\uC2A4\uD140 \uC124\uBA85",\r
+forecolor_desc:"\uAE00\uC790\uC0C9",\r
+backcolor_desc:"\uBC30\uACBD\uC0C9",\r
+charmap_desc:"\uD2B9\uC218 \uBB38\uC790",\r
+visualaid_desc:"\uAC00\uC774\uB4DC\uB77C\uC778 \uD45C\uC2DC/\uBE44\uD45C\uC2DC",\r
+anchor_desc:"\uC5E5\uCEE4 \uC0BD\uC785/\uD3B8\uC9D1",\r
+cut_desc:"\uC798\uB77C\uB0B4\uAE30",\r
+copy_desc:"\uBCF5\uC0AC",\r
+paste_desc:"\uBD99\uC774\uAE30",\r
+image_props_desc:"\uC774\uBBF8\uC9C0\uC18D\uC131",\r
+newdocument_desc:"\uC2E0\uADDC\uAE00 \uC791\uC131",\r
+help_desc:"\uB3C4\uC6C0\uB9D0",\r
+blockquote_desc:"\uC778\uC6A9\uBB38",\r
+clipboard_msg:"\uBCF5\uC0AC/\uC798\uB77C\uB0B4\uAE30/\uBD99\uC774\uAE30\uB294 Mozilla \uBC0FFirefox \uC5D0\uC11C \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n\uC0C1\uC138\uC815\uBCF4\uB97C \uD45C\uC2DC\uD569\uB2C8\uAE4C?",\r
+path:"Path",\r
+newdocument:"\uD3B8\uC9D1\uC911\uC758 \uB370\uC774\uD130\uB97C \uBAA8\uB450 \uC783\uC5B4\uB3C4 \uAD1C\uCC2E\uC2B5\uB2C8\uAE4C?",\r
+toolbar_focus:"\uBC84\uD2BC\uC73C\uB85C \uC810\uD504 - Alt+Q, \uC5D0\uB514\uD130\uB85C \uC810\uD504 - Alt-Z, Jump to element path - Alt-X",\r
+more_colors:"\uADF8 \uC678\uC758 \uC0C9"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ko.advanced_dlg',{\r
+about_title:"TinyMCE\uC5D0 \uB300\uD558\uC5EC",\r
+about_general:"About",\r
+about_help:"\uB3C4\uC6C0\uB9D0",\r
+about_license:"\uB77C\uC774\uC13C\uC2A4",\r
+about_plugins:"\uD50C\uB7EC\uADF8\uC778",\r
+about_plugin:"\uD50C\uB7EC\uADF8\uC778",\r
+about_author:"\uC81C\uC791\uC790",\r
+about_version:"\uBC84\uC83C",\r
+about_loaded:"\uC2E4\uD589\uB41C \uD50C\uB7EC\uADF8\uC778",\r
+anchor_title:"\uC5E5\uCEE4 \uC0BD\uC785/\uD3B8\uC9D1",\r
+anchor_name:"\uC5E5\uCEE4\uBA85",\r
+code_title:"\uC18C\uC2A4 \uD3B8\uC9D1",\r
+code_wordwrap:"\uC6CC\uB4DC\uB7A9",\r
+colorpicker_title:"\uC0C9\uC744 \uC120\uD0DD",\r
+colorpicker_picker_tab:"\uD53D\uCEE4",\r
+colorpicker_picker_title:"\uCEEC\uB7EC \uD53D\uCEE4",\r
+colorpicker_palette_tab:"\uD314\uB808\uD2B8",\r
+colorpicker_palette_title:"\uD314\uB808\uD2B8 \uC0C9",\r
+colorpicker_named_tab:"\uC0C9 \uC774\uB984",\r
+colorpicker_named_title:"\uC0C9",\r
+colorpicker_color:"Color:",\r
+colorpicker_name:"\uC0C9 \uC774\uB984:",\r
+charmap_title:"\uD2B9\uC218 \uBB38\uC790",\r
+image_title:"\uC774\uBBF8\uC9C0\uC758 \uC0BD\uC785/\uD3B8\uC9D1",\r
+image_src:"\uC774\uBBF8\uC9C0 URL",\r
+image_alt:"\uC774\uBBF8\uC9C0 \uC124\uBA85",\r
+image_list:"\uC774\uBBF8\uC9C0 \uBAA9\uB85D",\r
+image_border:"\uD14C\uB450\uB9AC\uC120",\r
+image_dimensions:"\uD06C\uAE30",\r
+image_vspace:"\uC0C1\uD558 \uC5EC\uBC31",\r
+image_hspace:"\uC88C\uC6B0 \uC5EC\uBC31",\r
+image_align:"\uC815\uB82C",\r
+image_align_baseline:"\uAE30\uC900\uC120",\r
+image_align_top:"Top",\r
+image_align_middle:"Middle",\r
+image_align_bottom:"Bottom",\r
+image_align_texttop:"Text top",\r
+image_align_textbottom:"Text bottom",\r
+image_align_left:"Left",\r
+image_align_right:"Right",\r
+link_title:"\uB9C1\uD06C\uC758 \uC0BD\uC785/\uD3B8\uC9D1",\r
+link_url:"\uB9C1\uD06C URL",\r
+link_target:"Target",\r
+link_target_same:"\uAC19\uC740\uCC3D",\r
+link_target_blank:"\uC0C8\uCC3D",\r
+link_titlefield:"\uC81C\uBAA9",\r
+link_is_email:"\uBA54\uC77C\uC8FC\uC18C\uAC00 \uC785\uB825\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\n\uBA54\uC77C\uC8FC\uC18C\uC758 \uC55E\uC5D0 mailto:\uB97C \uBD99\uC785\uB2C8\uAE4C?",\r
+link_is_external:"\uC678\uBD80URL\uC774 \uC785\uB825\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\nURL\uC758 \uC55E\uC5D0 http://\uB97C \uBD99\uC785\uB2C8\uAE4C?",\r
+link_list:"\uB9C1\uD06C \uBAA9\uB85D"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lt.advanced',{\r
+style_select:"Stiliai",\r
+font_size:"\u0160rifto dydis",\r
+fontdefault:"\u0160rifto \u0161eima",\r
+block:"Formatas",\r
+paragraph:"Paragrafas",\r
+div:"Div \u017Eym\u0117",\r
+address:"Adresas",\r
+pre:"Preformatuotas tekstas",\r
+h1:"Antra\u0161t\u0117 1",\r
+h2:"Antra\u0161t\u0117 2",\r
+h3:"Antra\u0161t\u0117 3",\r
+h4:"Antra\u0161t\u0117 4",\r
+h5:"Antra\u0161t\u0117 5",\r
+h6:"Antra\u0161t\u0117 6",\r
+blockquote:"Citatos blokas",\r
+code:"Kodas",\r
+samp:"Kodo pavyzdys",\r
+dt:"Apibr\u0117\u017Eimo terminas",\r
+dd:"Apibr\u0117\u017Eimo apra\u0161ymas",\r
+bold_desc:"Storas (Ctrl+B)",\r
+italic_desc:"Pasvir\u0119s (Ctrl+I)",\r
+underline_desc:"Pabrauktas (Ctrl+U)",\r
+striketrough_desc:"Perbrauktas",\r
+justifyleft_desc:"Lygiuoti pagal kair\u0119",\r
+justifycenter_desc:"Centruoti",\r
+justifyright_desc:"Lygiuoti pagal de\u0161in\u0119",\r
+justifyfull_desc:"Lygiuoti pagal abu kra\u0161tus",\r
+bullist_desc:"Ner\u016B\u0161uotas s\u0105ra\u0161as",\r
+numlist_desc:"R\u016B\u0161uotas skai\u010Diais s\u0105ra\u0161as",\r
+outdent_desc:"Stumti prie kairiojo kra\u0161to",\r
+indent_desc:"Stumti nuo kairiojo kra\u0161to",\r
+undo_desc:"Atstatyti (Ctrl+Z)",\r
+redo_desc:"Perdaryti (Ctrl+Y)",\r
+link_desc:"\u012Eterpti/redaguoti nuorod\u0105",\r
+unlink_desc:"Pa\u0161alinti nuorod\u0105",\r
+image_desc:"\u012Eterpti/redaguoti paveiksl\u0117l\u012F",\r
+cleanup_desc:"I\u0161valyti netvarking\u0105 kod\u0105",\r
+code_desc:"Redaguoti HTML i\u0161eities kod\u0105",\r
+sub_desc:"Apatinis indeksas",\r
+sup_desc:"Vir\u0161utinis indeksas",\r
+hr_desc:"\u012Eterpti horizontali\u0105 linij\u0105",\r
+removeformat_desc:"Pa\u0161alinti formatavim\u0105",\r
+custom1_desc:"J\u016Bs\u0173 apra\u0161ymas \u010Dia",\r
+forecolor_desc:"Parinkti teksto spalv\u0105",\r
+backcolor_desc:"Parinkti fono spalv\u0105",\r
+charmap_desc:"\u012Eterpti nestandartin\u012F simbol\u012F",\r
+visualaid_desc:"Kaitalioti gaires/nematom\u0173 element\u0173 rodym\u0105",\r
+anchor_desc:"\u012Eterpti/redaguoti inkar\u0105",\r
+cut_desc:"I\u0161kirpti",\r
+copy_desc:"Kopijuoti",\r
+paste_desc:"\u012Eklijuoti",\r
+image_props_desc:"Paveiksl\u0117lio nustatymai",\r
+newdocument_desc:"Naujas dokumentas",\r
+help_desc:"Pagalba",\r
+blockquote_desc:"Citatos blokas",\r
+clipboard_msg:"Kopijavimas/I\u0161kirpimas/\u012Eklijavimas negalimas Mozilla ir Firefox nar\u0161ykl\u0117se.\r\nAr norite daugiau informacijos apie \u0161i\u0105 problem\u0105?",\r
+path:"Kelias",\r
+newdocument:"Ar tikrai norite i\u0161trinti vis\u0105 turin\u012F?",\r
+toolbar_focus:"Per\u0161okimas prie \u012Franki\u0173 juostos mygtuk\u0173 - Alt+Q, Per\u0161okimas prie redaktoriaus - Alt-Z, Per\u0161okimas prie element\u0173 kelio - Alt-X",\r
+more_colors:"Daugiau spalv\u0173"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lt.advanced_dlg',{\r
+about_title:"Apie TinyMCE",\r
+about_general:"Apie",\r
+about_help:"Pagalba",\r
+about_license:"Licenzija",\r
+about_plugins:"\u012Eskiepiai",\r
+about_plugin:"\u012Eskiepis",\r
+about_author:"Autorius",\r
+about_version:"Versija",\r
+about_loaded:"U\u017Ekrauti \u012Fskiepiai",\r
+anchor_title:"\u012Eterpti/redaguoti inkar\u0105",\r
+anchor_name:"Inkaro vardas",\r
+code_title:"HTML i\u0161eities kodo redaktorius",\r
+code_wordwrap:"\u017Dod\u017Eio lau\u017Eymas",\r
+colorpicker_title:"Pasirinkti spalv\u0105",\r
+colorpicker_picker_tab:"Parink\u0117jas",\r
+colorpicker_picker_title:"Spalvos parink\u0117jas",\r
+colorpicker_palette_tab:"Palet\u0117",\r
+colorpicker_palette_title:"Paletin\u0117s spalvos",\r
+colorpicker_named_tab:"\u012Evardintosios",\r
+colorpicker_named_title:"\u012Evardintosios spalvos",\r
+colorpicker_color:"Spalva:",\r
+colorpicker_name:"Pavadinimas:",\r
+charmap_title:"Pasirinkti nestandartin\u012F simbol\u012F",\r
+image_title:"\u012Eterpti/redaguoti paveiksl\u0117l\u012F",\r
+image_src:"Paveiksl\u0117lio URL adresas",\r
+image_alt:"Paveiksl\u0117lio apra\u0161ymas",\r
+image_list:"Paveiksl\u0117li\u0173 s\u0105ra\u0161as",\r
+image_border:"R\u0117melis",\r
+image_dimensions:"I\u0161matavimai",\r
+image_vspace:"Vertikalus tarpas",\r
+image_hspace:"Horizontalus tarpas",\r
+image_align:"Lygiavimas",\r
+image_align_baseline:"Pradiniame ta\u0161ke",\r
+image_align_top:"Vir\u0161uje",\r
+image_align_middle:"Viduryje",\r
+image_align_bottom:"Apa\u010Dioje",\r
+image_align_texttop:"Teksto vir\u0161uje",\r
+image_align_textbottom:"Teksto apa\u010Dioje",\r
+image_align_left:"Kair\u0117je",\r
+image_align_right:"De\u0161in\u0117je",\r
+link_title:"\u012Eterpti/redaguoti nuorod\u0105",\r
+link_url:"Nuorodos URL adresas",\r
+link_target:"Taikinys",\r
+link_target_same:"Atidaryti tame pa\u010Diame lange",\r
+link_target_blank:"Atidaryti naujame lange",\r
+link_titlefield:"Pavadinimas",\r
+link_is_email:"URL adresas, kur\u012F \u012Fved\u0117te yra e-pa\u0161to adresas, ar norite prid\u0117ti reikaling\u0105 mailto: prefiks\u0105?",\r
+link_is_external:"URL adresas, kur\u012F \u012Fved\u0117te yra i\u0161orin\u0117 nuoroda, ar norite prid\u0117ti reikaling\u0105 http:// prefiks\u0105?",\r
+link_list:"Nuorod\u0173 s\u0105ra\u0161as"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lv.advanced',{\r
+style_select:"Stili",\r
+font_size:"Fonta lielums",\r
+fontdefault:"Fonta veids",\r
+block:"Form\u0101ts",\r
+paragraph:"Rindkopa",\r
+div:"Div\u012Bzija",\r
+address:"Adrese",\r
+pre:"Priek\u0161format\u0113ts",\r
+h1:"Virsraksts 1",\r
+h2:"Virsraksts 2",\r
+h3:"Virsraksts 3",\r
+h4:"Virsraksts 4",\r
+h5:"Virsraksts 5",\r
+h6:"Virsraksts 6",\r
+blockquote:"Cit\u0101ts",\r
+code:"Kods",\r
+samp:"Koda piem\u0113rs",\r
+dt:"Defin\u012Bcijas termins ",\r
+dd:"Defin\u012Bcijas apraksts",\r
+bold_desc:"Treknraksts (Ctrl+B)",\r
+italic_desc:"Sl\u012Bpraksts (Ctrl+I)",\r
+underline_desc:"Pasv\u012Btrojums (Ctrl+U)",\r
+striketrough_desc:"P\u0101rsv\u012Btrojums",\r
+justifyleft_desc:"Novietot pa kreisi",\r
+justifycenter_desc:"Centr\u0113t",\r
+justifyright_desc:"Novietot pa labi",\r
+justifyfull_desc:"Nol\u012Bdzin\u0101t malas",\r
+bullist_desc:"Nenumur\u0113ts saraksts",\r
+numlist_desc:"Numur\u0113ts saraksts",\r
+outdent_desc:"Uzk\u0101pe",\r
+indent_desc:"Atk\u0101pe",\r
+undo_desc:"Atsaukt (Ctrl+Z)",\r
+redo_desc:"Atatsaukt (Ctrl+Y)",\r
+link_desc:"Ievietot/Redi\u0123\u0113t saiti",\r
+unlink_desc:"Atsait\u0113t",\r
+image_desc:"Ievietot/Redi\u0123\u0113t att\u0113lu",\r
+cleanup_desc:"Izt\u012Br\u012Bt nek\u0101rt\u012Bgu kodu",\r
+code_desc:"Redi\u0123\u0113t HTML kodu",\r
+sub_desc:"Apak\u0161raksts",\r
+sup_desc:"Aug\u0161raksts",\r
+hr_desc:"Ievietot horizont\u0101lu sv\u012Btru",\r
+removeformat_desc:"Izdz\u0113st format\u0113to",\r
+custom1_desc:"Tevis izdom\u0101ts apraksts \u0161eit",\r
+forecolor_desc:"Uzst\u0101d\u012Bt teksta kr\u0101su",\r
+backcolor_desc:"Uzst\u0101d\u012Bt fona kr\u0101su",\r
+charmap_desc:"Ievietot simbolu",\r
+visualaid_desc:"Uzlikt/Nov\u0101kt pal\u012Bgsv\u012Btras/neredzamos elementus",\r
+anchor_desc:"Ievietot/Redi\u0123\u0113t enkursaiti",\r
+cut_desc:"Izgriezt",\r
+copy_desc:"Kop\u0113t",\r
+paste_desc:"Iekop\u0113t",\r
+image_props_desc:"Bildes iestat\u012Bjumi",\r
+newdocument_desc:"Jauns dokuments",\r
+help_desc:"Pal\u012Bdz\u012Bba",\r
+blockquote_desc:"Cit\u0101ts",\r
+clipboard_msg:"Iesp\u0113ja Kop\u0113t/Izgriezt/Iekop\u0113t nav pieejama p\u0101rl\u016Bkiem Mozilla and Firefox.\r\nVai J\u016Bs v\u0113laties uzzin\u0101t vair\u0101k par \u0161o probl\u0113mu?",\r
+path:"Atra\u0161an\u0101s vieta",\r
+newdocument:"Vai J\u016Bs esat p\u0101rliecin\u0101ti, ka v\u0113laties izdz\u0113st visu saturu?",\r
+toolbar_focus:"Iet uz r\u012Bkpog\u0101m - Alt+Q, Iet uz redaktoru - Alt-Z, Iet uz elementa atra\u0161an\u0101s vietu - Alt-X",\r
+more_colors:"Vair\u0101k kr\u0101su"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('lv.advanced_dlg',{\r
+about_title:"Par TinyMCE",\r
+about_general:"Par",\r
+about_help:"Pal\u012Bdz\u012Bba",\r
+about_license:"Licence",\r
+about_plugins:"Papildmodu\u013Ci",\r
+about_plugin:"Papildmodulis",\r
+about_author:"Autors",\r
+about_version:"Versija",\r
+about_loaded:"Iestat\u012Btie papildmodu\u013Ci",\r
+anchor_title:"Ievietot/Redi\u0123\u0113t enkursaiti",\r
+anchor_name:"Enkursaites nosaukums",\r
+code_title:"HTML koda redaktors",\r
+code_wordwrap:"V\u0101rdu p\u0101rne\u0161ana jaun\u0101 rind\u0101",\r
+colorpicker_title:"Izv\u0113l\u0113ties kr\u0101su",\r
+colorpicker_picker_tab:"Izv\u0113lnis",\r
+colorpicker_picker_title:"Kr\u0101su izv\u0113lnis",\r
+colorpicker_palette_tab:"Palete",\r
+colorpicker_palette_title:"Kr\u0101su palete",\r
+colorpicker_named_tab:"Nosaukts",\r
+colorpicker_named_title:"Nosaukt\u0101s kr\u0101sas",\r
+colorpicker_color:"Kr\u0101sa:",\r
+colorpicker_name:"Nosaukums:",\r
+charmap_title:"Izv\u0113lies simbolu",\r
+image_title:"Ievietot/Redi\u0123\u0113t att\u0113lu",\r
+image_src:"Att\u0113la URL",\r
+image_alt:"Att\u0113la apraksts",\r
+image_list:"Att\u0113lu saraksts",\r
+image_border:"Apmale",\r
+image_dimensions:"Izm\u0113ri",\r
+image_vspace:"Vertik\u0101l\u0101 atstarpe",\r
+image_hspace:"Horizont\u0101l\u0101 atstarpe",\r
+image_align:"Novietojums",\r
+image_align_baseline:"Pati apak\u0161a",\r
+image_align_top:"Aug\u0161a",\r
+image_align_middle:"Vidus",\r
+image_align_bottom:"Apak\u0161a",\r
+image_align_texttop:"Teksta aug\u0161a",\r
+image_align_textbottom:"Teksta apak\u0161a",\r
+image_align_left:"Pa kreisi",\r
+image_align_right:"Pa labi",\r
+link_title:"Ievietot/Redi\u0123\u0113t saiti",\r
+link_url:"Saites URL",\r
+link_target:"M\u0113r\u0137is",\r
+link_target_same:"Atv\u0113rt saiti \u0161ai pa\u0161\u0101 log\u0101",\r
+link_target_blank:"Atv\u0113rt saiti jaun\u0101 log\u0101",\r
+link_titlefield:"Nosaukums",\r
+link_is_email:"Ievad\u012Btais URL \u0161\u0137iet ir e-pasta adrese, vai tu v\u0113lies pirms t\u0101s pievienot mailto: pried\u0113kli? ",\r
+link_is_external:"Ievad\u012Btais URL \u0161\u0137iet ir \u0101r\u0113j\u0101 saite, vai tu v\u0113lies pirms t\u0101s pievienot http:// pried\u0113kli?",\r
+link_list:"Sai\u0161u saraksts"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('mk.advanced',{\r
+style_select:"Stilovi",\r
+font_size:"Veli\u010Dina pisma",\r
+fontdefault:"Vrsta pisma",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adresa",\r
+pre:"Oblikovano",\r
+h1:"\u041D\u0430\u0441\u043B\u043E\u0432 1",\r
+h2:"\u041D\u0430\u0441\u043B\u043E\u0432 2",\r
+h3:"\u041D\u0430\u0441\u043B\u043E\u0432 3",\r
+h4:"\u041D\u0430\u0441\u043B\u043E\u0432 4",\r
+h5:"\u041D\u0430\u0441\u043B\u043E\u0432 5",\r
+h6:"\u041D\u0430\u0441\u043B\u043E\u0432 6",\r
+blockquote:"Citat",\r
+code:"Kod",\r
+samp:"Primjer koda",\r
+dt:"Definicija pojma",\r
+dd:"Opis definicije",\r
+bold_desc:"Podebljaj (Ctrl+B)",\r
+italic_desc:"Kurziv (Ctrl+I)",\r
+underline_desc:"Podcrtaj (Ctrl+U)",\r
+striketrough_desc:"Precrtaj",\r
+justifyleft_desc:"Poravnaj levo",\r
+justifycenter_desc:"Centriraj",\r
+justifyright_desc:"Poravnaj desno",\r
+justifyfull_desc:"Poravnaj potpuno",\r
+bullist_desc:"Neure\u0111ena lista",\r
+numlist_desc:"Ure\u0111ena lista",\r
+outdent_desc:"Uvuci",\r
+indent_desc:"Izvuci",\r
+undo_desc:"Poni\u0161ti (Ctrl+Z)",\r
+redo_desc:"Ponovi (Ctrl+Y)",\r
+link_desc:"\u0412\u043C\u0435\u0442\u043D\u0438/uredi poveznicu",\r
+unlink_desc:"Poni\u0161ti poveznicu",\r
+image_desc:"\u0412\u043C\u0435\u0442\u043D\u0438/uredi sliku",\r
+cleanup_desc:"Po\u010Disti kod",\r
+code_desc:"Uredi HTML izvor",\r
+sub_desc:"Indeks",\r
+sup_desc:"Eksponent",\r
+hr_desc:"\u0412\u043C\u0435\u0442\u043D\u0438 vodoravnu crtu",\r
+removeformat_desc:"Poni\u0161ti oblikovanje",\r
+custom1_desc:"Vlastiti opis ovdje",\r
+forecolor_desc:"Odaberite boju teksta",\r
+backcolor_desc:"Odaberite boju pozadine",\r
+charmap_desc:"\u0412\u043C\u0435\u0442\u043D\u0438 vlastiti znak",\r
+visualaid_desc:"Vodilice/nevidljivi elementi",\r
+anchor_desc:"\u0412\u043C\u0435\u0442\u043D\u0438/uredi sidro",\r
+cut_desc:"Izre\u017Ei",\r
+copy_desc:"Kopiraj",\r
+paste_desc:"Zalepi",\r
+image_props_desc:"Svojstva slike",\r
+newdocument_desc:"Novi dokument",\r
+help_desc:"Pomo\u0107",\r
+blockquote_desc:"Citiraj",\r
+clipboard_msg:"Kopiraj/Izre\u017Ei/Zalepi nije dostupno u Mozilla i Firefox preglednicima. Vi\u0161e informacija?",\r
+path:"Staza",\r
+newdocument:"Jeste li sigurni da \u017Eelite izbrisati celi sadr\u017Eaj?",\r
+toolbar_focus:"Pre\u0111i na alatnu traku - Alt+Q, pre\u0111i na ure\u0111iva\u010D - Alt-Z, pre\u0111i na element path - Alt-X",\r
+more_colors:"Vi\u0161e boja"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('mk.advanced_dlg',{\r
+about_title:"TinyMCE",\r
+about_general:"\u0417\u0430 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0430\u0442\u0430",\r
+about_help:"\u041F\u043E\u043C\u043E\u0448",\r
+about_license:"\u041B\u0438\u0446\u0435\u043D\u0446\u0430",\r
+about_plugins:"\u0414\u043E\u0434\u0430\u0442\u043E\u0446\u0438",\r
+about_plugin:"\u0414\u043E\u0434\u0430\u0442\u043E\u043A",\r
+about_author:"\u0410\u0432\u0442\u043E\u0440",\r
+about_version:"\u0412\u0435\u0440\u0437\u0438\u0458\u0430",\r
+about_loaded:"\u041F\u043E\u0441\u0442\u043E\u0435\u0447\u043A\u0438 \u0434\u043E\u0434\u0430\u0442\u043E\u0446\u0438",\r
+anchor_title:"\u0412\u043C\u0435\u0442\u043D\u0438/\u0441\u0440\u0435\u0434\u0438 \u0441\u0438\u0434\u0440\u043E",\r
+anchor_name:"\u0418\u043C\u0435 \u043D\u0430 \u0441\u0438\u0434\u0440\u043E\u0442\u043E",\r
+code_title:"HTML \u0441\u0440\u0435\u0434\u0443\u0432\u0430\u0447",\r
+code_wordwrap:"\u041F\u0440\u0435\u043A\u043B\u043E\u043F\u0443\u0432\u0430\u045A\u0435 \u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u043E\u0442",\r
+colorpicker_title:"\u0418\u0437\u0431\u043E\u0440 \u043D\u0430 \u0431\u043E\u0438",\r
+colorpicker_picker_tab:"\u041E\u0434\u0431\u0435\u0440\u0438",\r
+colorpicker_picker_title:"\u041E\u0434\u0431\u0435\u0440\u0438 \u0431\u043E\u0438",\r
+colorpicker_palette_tab:"\u041F\u0430\u043B\u0435\u0442\u0430",\r
+colorpicker_palette_title:"\u041F\u0430\u043B\u0435\u0442\u0430 \u043D\u0430 \u0431\u043E\u0438",\r
+colorpicker_named_tab:"\u0418\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u043E",\r
+colorpicker_named_title:"\u0418\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u0438 \u0431\u043E\u0438",\r
+colorpicker_color:"\u0411\u043E\u0458\u0430:",\r
+colorpicker_name:"\u0418\u043C\u0435:",\r
+charmap_title:"\u041E\u0434\u0431\u0435\u0440\u0435\u0442\u0435 \u0437\u043D\u0430\u043A",\r
+image_title:"\u0412\u043C\u0435\u0442\u043D\u0438/\u0441\u0440\u0435\u0434\u0438 \u0441\u043B\u0438\u043A\u0438",\r
+image_src:"\u041B\u0438\u043D\u043A \u043D\u0430 \u0441\u043B\u0438\u043A\u0430\u0442\u0430",\r
+image_alt:"\u041E\u043F\u0438\u0441 \u043D\u0430 \u0441\u043B\u0438\u043A\u0430\u0442\u0430",\r
+image_list:"\u041B\u0438\u0441\u0442\u0430 \u043D\u0430 \u0441\u043B\u0438\u043A\u0438\u0442\u0435",\r
+image_border:"\u0420\u0430\u0431",\r
+image_dimensions:"\u0414\u0438\u043C\u0435\u043D\u0437\u0438\u0438",\r
+image_vspace:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u0435\u043D \u043F\u0440\u043E\u0441\u0442\u043E\u0440",\r
+image_hspace:"\u0425\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u0435\u043D \u043F\u0440\u043E\u0441\u0442\u043E\u0440",\r
+image_align:"\u041F\u043E\u0440\u0430\u043C\u043D\u0443\u0432\u0430\u045A\u0435",\r
+image_align_baseline:"\u041E\u0441\u043D\u043E\u0432\u043D\u0430 \u043B\u0438\u043D\u0438\u0458\u0430",\r
+image_align_top:"\u0412\u0440\u0432",\r
+image_align_middle:"\u0421\u0440\u0435\u0434\u0438\u043D\u0430",\r
+image_align_bottom:"\u0414\u043D\u043E",\r
+image_align_texttop:"\u0412\u0440\u0432 \u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u043E\u0442",\r
+image_align_textbottom:"\u0414\u043D\u043E \u043D\u0430 \u0442\u0435\u043A\u0441\u0442\u043E\u0442",\r
+image_align_left:"\u041B\u0435\u0432\u043E",\r
+image_align_right:"\u0414\u0435\u0441\u043D\u043E",\r
+link_title:"\u0412\u043C\u0435\u0442\u043D\u0438/\u0441\u0440\u0435\u0434\u0438 \u043B\u0438\u043D\u043A",\r
+link_url:"URL poveznice",\r
+link_target:"Meta",\r
+link_target_same:"Otvori poveznicu u istom prozoru",\r
+link_target_blank:"Otvori poveznicu u novom prozoru",\r
+link_titlefield:"\u041D\u0430\u0441\u043B\u043E\u0432",\r
+link_is_email:"URL koji ste uneli izgleda kao e-mail adresa, \u017Eelite li dodati potrebni mailto: prefiks?",\r
+link_is_external:"URL koji ste uneli izgleda kao vanjska poveznica, \u017Eelite li dodati potrebni http:// prefiks?",\r
+link_list:"Lista poveznica"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ms.advanced',{\r
+style_select:"Gaya",\r
+font_size:"Saiz Huruf",\r
+fontdefault:"Jenis Huruf",\r
+block:"Format",\r
+paragraph:"Perenggan",\r
+div:"Div",\r
+address:"Alamat",\r
+pre:"Telah diformatkan",\r
+h1:"Tajuk 1",\r
+h2:"Tajuk 2",\r
+h3:"Tajuk 3",\r
+h4:"Tajuk 4",\r
+h5:"Tajuk 5",\r
+h6:"Tajuk 6",\r
+blockquote:"Petikan blok",\r
+code:"Kod",\r
+samp:"Contoh kod",\r
+dt:"Maksud terma",\r
+dd:"Maksud huraian",\r
+bold_desc:"Tebal (Ctrl+B)",\r
+italic_desc:"Condong (Ctrl+I)",\r
+underline_desc:"Garis bawah (Ctrl+U)",\r
+striketrough_desc:"Garis tengah",\r
+justifyleft_desc:"Selari kekiri",\r
+justifycenter_desc:"Selari ketengah",\r
+justifyright_desc:"Selari kekanan",\r
+justifyfull_desc:"Selari penuh",\r
+bullist_desc:"Senarai tidak tertib",\r
+numlist_desc:"Senarai tertib",\r
+outdent_desc:"Lekuk kebelakang",\r
+indent_desc:"Lekuk kedepan",\r
+undo_desc:"Undur (Ctrl+Z)",\r
+redo_desc:"Maju (Ctrl+Y)",\r
+link_desc:"Sisip/sunting pautan",\r
+unlink_desc:"Tiada pautan",\r
+image_desc:"Sisip/sunting imej",\r
+cleanup_desc:"Bersihkan kod",\r
+code_desc:"Sunting kod HTML",\r
+sub_desc:"Subskrip",\r
+sup_desc:"Superskrip",\r
+hr_desc:"Sisip pembaris mengufuk",\r
+removeformat_desc:"Alih format",\r
+custom1_desc:"Huraian anda di sini",\r
+forecolor_desc:"Pilih warna teks",\r
+backcolor_desc:"Pilih warna latar belakang",\r
+charmap_desc:"Sisip aksara",\r
+visualaid_desc:"Alih garis panduan/unsur tak nampak",\r
+anchor_desc:"Sisip/sunting anchor",\r
+cut_desc:"Potong",\r
+copy_desc:"Salin",\r
+paste_desc:"Tempel",\r
+image_props_desc:"Alatan imej",\r
+newdocument_desc:"Dokumen baru",\r
+help_desc:"Bantuan",\r
+blockquote_desc:"Petikan blok",\r
+clipboard_msg:"Salin/Potong/Tempel tidak disokong dalam Mozilla dan Firefox.\r\nAdakah anda mahu informasi lanjut tentang isu ini?",\r
+path:"Laluan",\r
+newdocument:"Hapus semua kandungan?",\r
+toolbar_focus:"Lompat ke butang alatan - Alt+Q, Lompat ke editor - Alt-Z, Lompat ke unsur laluan - Alt-X",\r
+more_colors:"Warna lain"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ms.advanced_dlg',{\r
+about_title:"Perihal TinyMCE",\r
+about_general:"Perihal",\r
+about_help:"Bantuan",\r
+about_license:"Lesen",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Pengarang",\r
+about_version:"Versi",\r
+about_loaded:"Muatan plugins",\r
+anchor_title:"Sisip/sunting sauh",\r
+anchor_name:"Nama sauh",\r
+code_title:"Penyunting HTML",\r
+code_wordwrap:"Sisip perkataan",\r
+colorpicker_title:"Pilih warna",\r
+colorpicker_picker_tab:"Pemungut",\r
+colorpicker_picker_title:"Pemungut warna",\r
+colorpicker_palette_tab:"Palet",\r
+colorpicker_palette_title:"Palet warna",\r
+colorpicker_named_tab:"Dinamakan",\r
+colorpicker_named_title:"Warna telah dinamakan",\r
+colorpicker_color:"Warna:",\r
+colorpicker_name:"Nama:",\r
+charmap_title:"Pilih aksara sendiri",\r
+image_title:"Sisip/sunting imej",\r
+image_src:"Imej URL",\r
+image_alt:"Huraian imej",\r
+image_list:"Senarai imej",\r
+image_border:"Sempadan",\r
+image_dimensions:"Dimensi",\r
+image_vspace:"Ruangan tegak",\r
+image_hspace:"Ruangan ufuk",\r
+image_align:"Penyelarian",\r
+image_align_baseline:"Garis pangkal",\r
+image_align_top:"Atas",\r
+image_align_middle:"Tengah",\r
+image_align_bottom:"Bawah",\r
+image_align_texttop:"Teks atas",\r
+image_align_textbottom:"Teks bawah",\r
+image_align_left:"Kiri",\r
+image_align_right:"Kanan",\r
+link_title:"Sisip/sunting pautan",\r
+link_url:"Pautan URL",\r
+link_target:"Sasaran",\r
+link_target_same:"Buka pautan dalam tetingkap yang sama",\r
+link_target_blank:"Buka pautan dalam tetingkap yang sama",\r
+link_titlefield:"Tajuk",\r
+link_is_email:"URL yang anda masukkan adalah alamat emel, tambah \"mailto\": di awalan?",\r
+link_is_external:"URL yang anda masukkan adalah pautan luar, tambah \"http://\" di awalan?",\r
+link_list:"Senarai pautan"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nb.advanced',{\r
+style_select:"Stiler",\r
+font_size:"Skriftst\u00F8rrelse",\r
+fontdefault:"Skriftfamilie",\r
+block:"Format",\r
+paragraph:"Avsnitt",\r
+div:"Div",\r
+address:"Adresse",\r
+pre:"Pre-formatert",\r
+h1:"Overskrift 1",\r
+h2:"Overskrift 2",\r
+h3:"Overskrift 3",\r
+h4:"Overskrift 4",\r
+h5:"Overskrift 5",\r
+h6:"Overskrift 6",\r
+blockquote:"Innrykkinnrykk",\r
+code:"Kode",\r
+samp:"Kodeeksempel",\r
+dt:"Definisjonsuttrykk",\r
+dd:"Definisjonsbeskrivelse",\r
+bold_desc:"Fet",\r
+italic_desc:"Kursiv",\r
+underline_desc:"Understreking",\r
+striketrough_desc:"Gjennomstreking",\r
+justifyleft_desc:"Venstrejuster",\r
+justifycenter_desc:"Midtstill",\r
+justifyright_desc:"H\u00F8yrejuster",\r
+justifyfull_desc:"Blokkjuster",\r
+bullist_desc:"Punktliste",\r
+numlist_desc:"Nummerliste",\r
+outdent_desc:"Reduser innrykk",\r
+indent_desc:"\u00D8k innrykk",\r
+undo_desc:"Angre",\r
+redo_desc:"Gj\u00F8r om",\r
+link_desc:"Sett inn / endre lenke",\r
+unlink_desc:"Fjern lenke",\r
+image_desc:"Sett inn / endre bilde",\r
+cleanup_desc:"Rens ukurant kode",\r
+code_desc:"Redigere HTML-koden",\r
+sub_desc:"Senket skrift",\r
+sup_desc:"Hevet skrift",\r
+hr_desc:"Sett inn horisontal linje",\r
+removeformat_desc:"Fjern formatering",\r
+custom1_desc:"Beskrivelse av spesialfunksjon",\r
+forecolor_desc:"Velg skriftfarge",\r
+backcolor_desc:"Velg bakgrunnsfarge",\r
+charmap_desc:"Sett inn spesialtegn",\r
+visualaid_desc:"Sl\u00E5 av/p\u00E5 usynlige elementer",\r
+anchor_desc:"Sett inn / endre anker",\r
+cut_desc:"Klipp ut",\r
+copy_desc:"Kopier",\r
+paste_desc:"Lim inn",\r
+image_props_desc:"Bildeegenskaper",\r
+newdocument_desc:"Nytt dokument",\r
+help_desc:"Hjelp",\r
+blockquote_desc:"Innrykk",\r
+clipboard_msg:"Klipp ut / Kopier /Lim inn fungerer ikke i Mozilla og Firefox. \r\n Vil du vite mer om dette?",\r
+path:"Sti",\r
+newdocument:"Er du sikker p\u00E5 at du vil slette alt innhold?",\r
+toolbar_focus:"Skift til verkt\u00F8yknapper - Alt+Q, Skift til editor - Alt-Z, Skift til elementsti - Alt-",\r
+more_colors:"Flere farger"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nb.advanced_dlg',{\r
+about_title:"Om TinyMCE",\r
+about_general:"Om",\r
+about_help:"Hjelp",\r
+about_license:"Lisens",\r
+about_plugins:"Programtillegg",\r
+about_plugin:"Programtillegg",\r
+about_author:"Utvikler",\r
+about_version:"Versjon",\r
+about_loaded:"Lastede programtillegg",\r
+anchor_title:"Sett inn / endre anker",\r
+anchor_name:"Ankernavn",\r
+code_title:"HTML-editor",\r
+code_wordwrap:"Tekstbryting",\r
+colorpicker_title:"Velg en farge",\r
+colorpicker_picker_tab:"Velg farge",\r
+colorpicker_picker_title:"Fargevalg",\r
+colorpicker_palette_tab:"Palett",\r
+colorpicker_palette_title:"Palettfarger",\r
+colorpicker_named_tab:"Navnevalg",\r
+colorpicker_named_title:"Fargenavn",\r
+colorpicker_color:"Farge:",\r
+colorpicker_name:"Navn:",\r
+charmap_title:"Velg spesialtegn",\r
+image_title:"Sett inn / endre bilde",\r
+image_src:"Bildets URL",\r
+image_alt:"Bildebeskrivelse",\r
+image_list:"Bildeliste",\r
+image_border:"Ramme",\r
+image_dimensions:"Dimensjoner",\r
+image_vspace:"Vertikal avstand",\r
+image_hspace:"Horisontal avstand",\r
+image_align:"Justering",\r
+image_align_baseline:"Bunnlinje",\r
+image_align_top:"Topp",\r
+image_align_middle:"Midtstilt",\r
+image_align_bottom:"Bunn",\r
+image_align_texttop:"Teksttopp",\r
+image_align_textbottom:"Tekstbunn",\r
+image_align_left:"Venstre",\r
+image_align_right:"H\u00F8yre",\r
+link_title:"Sett inn /endre lenke",\r
+link_url:"Lenkens URL",\r
+link_target:"M\u00E5lside",\r
+link_target_same:"\u00C5pne i dette vinduet",\r
+link_target_blank:"\u00C5pne i nytt vindu",\r
+link_titlefield:"Tittel",\r
+link_is_email:"Nettadressen du skrev inn ser ut til \u00E5 v\u00E6re en e-postadresse. \u00D8nsker du \u00E5 legge til det p\u00E5krevde mailto:-prefikset?",\r
+link_is_external:"Nettadressen du skrev inn ser ut til \u00E5 v\u00E6re en ekstern nettadresse. \u00D8nsker du \u00E5 legge til det p\u00E5krevde http://-prefikset?",\r
+link_list:"Lenkeliste"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nl.advanced',{\r
+style_select:"Stijlen",\r
+font_size:"Tekengrootte",\r
+fontdefault:"Lettertype",\r
+block:"Formaat",\r
+paragraph:"Paragraaf",\r
+div:"Div",\r
+address:"Adres",\r
+pre:"Vaste opmaak",\r
+h1:"Kop 1",\r
+h2:"Kop 2",\r
+h3:"Kop 3",\r
+h4:"Kop 4",\r
+h5:"Kop 5",\r
+h6:"Kop 6",\r
+blockquote:"Citaat",\r
+code:"Code",\r
+samp:"Codevoorbeeld",\r
+dt:"Definitieterm",\r
+dd:"Definitiebeschrijving",\r
+bold_desc:"Vet (Ctrl+B)",\r
+italic_desc:"Cursief (Ctrl+I)",\r
+underline_desc:"Onderstrepen (Ctrl+U)",\r
+striketrough_desc:"Doorhalen",\r
+justifyleft_desc:"Links uitlijnen",\r
+justifycenter_desc:"Centreren",\r
+justifyright_desc:"Rechts uitlijnen",\r
+justifyfull_desc:"Uitvullen",\r
+bullist_desc:"Opsommingstekens",\r
+numlist_desc:"Nummering",\r
+outdent_desc:"Inspringing verkleinen",\r
+indent_desc:"Inspringing vergroten",\r
+undo_desc:"Ongedaan maken (Ctrl+Z)",\r
+redo_desc:"Herhalen (Ctrl+Y)",\r
+link_desc:"Link invoegen/bewerken",\r
+unlink_desc:"Link verwijderen",\r
+image_desc:"Afbeelding invoegen/bewerken",\r
+cleanup_desc:"Code opruimen",\r
+code_desc:"HTML bron bewerken",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Scheidingslijn invoegen",\r
+removeformat_desc:"Opmaak verwijderen",\r
+custom1_desc:"Uw eigen beschrijving hier",\r
+forecolor_desc:"Tekstkleur",\r
+backcolor_desc:"Tekstmarkeringskleur",\r
+charmap_desc:"Symbool invoegen",\r
+visualaid_desc:"Hulplijnen weergeven",\r
+anchor_desc:"Anker invoegen/bewerken",\r
+cut_desc:"Knippen",\r
+copy_desc:"Kopi\u00EBren",\r
+paste_desc:"Plakken",\r
+image_props_desc:"Afbeeldingseigenschappen",\r
+newdocument_desc:"Nieuw document",\r
+help_desc:"Help",\r
+blockquote_desc:"Citaat",\r
+clipboard_msg:"Kopi\u00EBren/knippen/plakken is niet beschikbaar in Mozilla en Firefox.\nWilt u meer informatie over deze beperking?",\r
+path:"Pad",\r
+newdocument:"Weet u zeker dat u alle inhoud wilt wissen?",\r
+toolbar_focus:"Spring naar werkbalk - Alt+Q, Spring naar tekst - Alt-Z, Spring naar elementpad - Alt-X",\r
+more_colors:"Meer kleuren"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nl.advanced_dlg',{\r
+about_title:"Over TinyMCE",\r
+about_general:"Info",\r
+about_help:"Help",\r
+about_license:"Licentie",\r
+about_plugins:"Invoegtoepassingen",\r
+about_plugin:"Invoegtoepassing",\r
+about_author:"Auteur",\r
+about_version:"Versie",\r
+about_loaded:"Geladen Invoegtoepassingen",\r
+anchor_title:"Anker invoegen/bewerken",\r
+anchor_name:"Ankernaam",\r
+code_title:"HTML Bron",\r
+code_wordwrap:"Automatische terugloop",\r
+colorpicker_title:"Kleuren",\r
+colorpicker_picker_tab:"Alle kleuren",\r
+colorpicker_picker_title:"Alle kleuren",\r
+colorpicker_palette_tab:"Palet",\r
+colorpicker_palette_title:"Paletkleuren",\r
+colorpicker_named_tab:"Benoemd",\r
+colorpicker_named_title:"Benoemde kleuren",\r
+colorpicker_color:"Kleur:",\r
+colorpicker_name:"Naam:",\r
+charmap_title:"Symbolen",\r
+image_title:"Afbeelding invoegen/bewerken",\r
+image_src:"Bestand/URL",\r
+image_alt:"Beschrijving",\r
+image_list:"Lijst",\r
+image_border:"Rand",\r
+image_dimensions:"Afmetingen",\r
+image_vspace:"Verticale ruimte",\r
+image_hspace:"Horizontale ruimte",\r
+image_align:"Uitlijning",\r
+image_align_baseline:"Basislijn",\r
+image_align_top:"Boven",\r
+image_align_middle:"Midden",\r
+image_align_bottom:"Onder",\r
+image_align_texttop:"Bovenkant tekst",\r
+image_align_textbottom:"Onderkant tekst",\r
+image_align_left:"Links",\r
+image_align_right:"Rechts",\r
+link_title:"Link invoegen/bewerken",\r
+link_url:"URL",\r
+link_target:"Doel",\r
+link_target_same:"Link in hetzelfde venster openen",\r
+link_target_blank:"Link in een nieuw venster openen",\r
+link_titlefield:"Titel",\r
+link_is_email:"De ingevoerde URL lijkt op een e-mailadres. Wilt u de vereiste mailto: tekst voorvoegen?",\r
+link_is_external:"De ingevoerde URL lijkt op een externe link. Wilt u de vereiste http:// tekst voorvoegen?",\r
+link_list:"Link lijst"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nn.advanced',{\r
+style_select:"Stilar",\r
+font_size:"Skriftstorleik",\r
+fontdefault:"Skriftfamilie",\r
+block:"Format",\r
+paragraph:"Avsnitt",\r
+div:"Div",\r
+address:"Adresse",\r
+pre:"Pre-formatert",\r
+h1:"Overskrift 1",\r
+h2:"Overskrift 2",\r
+h3:"Overskrift 3",\r
+h4:"Overskrift 4",\r
+h5:"Overskrift 5",\r
+h6:"Overskrift 6",\r
+blockquote:"Innrykk",\r
+code:"Kode",\r
+samp:"Kodeeksempel",\r
+dt:"Definisjonsuttrykk",\r
+dd:"Definisjonsbeskrivelse",\r
+bold_desc:"Feit",\r
+italic_desc:"Kursiv",\r
+underline_desc:"Understreking",\r
+striketrough_desc:"Gjennomstreking",\r
+justifyleft_desc:"Venstrejustert",\r
+justifycenter_desc:"Midtstilt",\r
+justifyright_desc:"H\u00F8grejustert",\r
+justifyfull_desc:"Blokkjustert",\r
+bullist_desc:"Punktliste",\r
+numlist_desc:"Nummerliste",\r
+outdent_desc:"Reduser innrykk",\r
+indent_desc:"Auk innrykk",\r
+undo_desc:"Angre",\r
+redo_desc:"Gjer om",\r
+link_desc:"Set inn / endre lenkje",\r
+unlink_desc:"Fjern lenkje",\r
+image_desc:"Set inn / endre bilete",\r
+cleanup_desc:"Rens grisete kode",\r
+code_desc:"Redigere HTML-koden",\r
+sub_desc:"Senka skrift",\r
+sup_desc:"Heva skrift",\r
+hr_desc:"Set inn horisontal linje",\r
+removeformat_desc:"Fjern formatering",\r
+custom1_desc:"Din spesialfunksjondefinisjon her",\r
+forecolor_desc:"Vel skriftfarge",\r
+backcolor_desc:"Vel bakgrunnsfarge",\r
+charmap_desc:"Set inn spesialteikn",\r
+visualaid_desc:"Sl\u00E5 av/p\u00E5 usynlige element",\r
+anchor_desc:"Set inn / endre anker",\r
+cut_desc:"Klipp ut",\r
+copy_desc:"Kopier",\r
+paste_desc:"Lim inn",\r
+image_props_desc:"Eigenskaper for bilete",\r
+newdocument_desc:"Nytt dokument",\r
+help_desc:"Hjelp",\r
+blockquote_desc:"Innrykk",\r
+clipboard_msg:"Klipp ut / Kopier /Lim inn fungerer ikkje i Mozilla og Firefox. \r\n Vil du vite meir om dette?",\r
+path:"Sti",\r
+newdocument:"Er du sikker p\u00E5 at du vil slette alt innhald?",\r
+toolbar_focus:"Skift til verktyknappar - Alt+Q, Skift til editor - Alt-Z, Skift til elementsti - Alt-",\r
+more_colors:"Fleire fargar"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('nn.advanced_dlg',{\r
+about_title:"Om TinyMCE",\r
+about_general:"Om",\r
+about_help:"Hjelp",\r
+about_license:"Lisens",\r
+about_plugins:"Programtillegg",\r
+about_plugin:"Programtillegg",\r
+about_author:"Utviklar",\r
+about_version:"Versjon",\r
+about_loaded:"Lasta programtillegg",\r
+anchor_title:"Set inn / endre anker",\r
+anchor_name:"Ankernamn",\r
+code_title:"HTML-editor",\r
+code_wordwrap:"Tekstbryting",\r
+colorpicker_title:"Vel ein farge",\r
+colorpicker_picker_tab:"Vel farge",\r
+colorpicker_picker_title:"Fargeval",\r
+colorpicker_palette_tab:"Palett",\r
+colorpicker_palette_title:"Palettfargar",\r
+colorpicker_named_tab:"Namneval",\r
+colorpicker_named_title:"Fargenamn",\r
+colorpicker_color:"Farge:",\r
+colorpicker_name:"Namn:",\r
+charmap_title:"Vel spesialteikn",\r
+image_title:"Set inn / endre bilete",\r
+image_src:"Bilete-URL",\r
+image_alt:"Bileteomtale",\r
+image_list:"Liste med bilete",\r
+image_border:"Ramme",\r
+image_dimensions:"Dimensjonar",\r
+image_vspace:"Vertikal avstand",\r
+image_hspace:"Horisontal avstand",\r
+image_align:"Justering",\r
+image_align_baseline:"Botnlinje",\r
+image_align_top:"Topp",\r
+image_align_middle:"Midtstilt",\r
+image_align_bottom:"Botn",\r
+image_align_texttop:"Teksttopp",\r
+image_align_textbottom:"Tekstbotn",\r
+image_align_left:"Venstre",\r
+image_align_right:"H\u00F8gre",\r
+link_title:"Set inn / endre lenkje",\r
+link_url:"Lenkje-URL",\r
+link_target:"Vindauge",\r
+link_target_same:"Opne i dette vindauget",\r
+link_target_blank:"Opne i nytt vindauget",\r
+link_titlefield:"Tittel",\r
+link_is_email:"Nettadressa du skreiv inn ser ut til \u00E5 vere ein e-postadresse. \u00D8nskjer du \u00E5 leggje til det obligatoriske mailto:-prefikset?",\r
+link_is_external:"Nettadressa du skreiv inn ser ut til \u00E5 vere ein ekstern nettadresse. \u00D8nskjer du \u00E5 leggje til det obligatoriske http://-prefikset?",\r
+link_list:"Lenkjeliste"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pl.advanced',{\r
+style_select:"Styl",\r
+font_size:"Rozmiar czcionki",\r
+fontdefault:"Rodzaj czcionki",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adres",\r
+pre:"Czcionka o sta\u0142ej szeroko\u015Bci",\r
+h1:"Nag\u0142\u00F3wek 1",\r
+h2:"Nag\u0142\u00F3wek 2",\r
+h3:"Nag\u0142\u00F3wek 3",\r
+h4:"Nag\u0142\u00F3wek 4",\r
+h5:"Nag\u0142\u00F3wek 5",\r
+h6:"Nag\u0142\u00F3wek 6",\r
+blockquote:"Wydzielony blok",\r
+code:"Kod",\r
+samp:"Pr\u00F3bka kodu",\r
+dt:"Definicja terminu ",\r
+dd:"Opis terminu",\r
+bold_desc:"Pogrubienie (Ctrl+B)",\r
+italic_desc:"Kursywa (Ctrl+I)",\r
+underline_desc:"Podkre\u015Blenie (Ctrl+U)",\r
+striketrough_desc:"Przekre\u015Blenia",\r
+justifyleft_desc:"Wyr\u00F3wnaj do lewej",\r
+justifycenter_desc:"Wycentruj",\r
+justifyright_desc:"Wyr\u00F3wnaj do prawej",\r
+justifyfull_desc:"R\u00F3wnanie do prawej i lewej",\r
+bullist_desc:"Lista nienumerowana",\r
+numlist_desc:"Lista numerowana",\r
+outdent_desc:"Cofnij wci\u0119cie",\r
+indent_desc:"Wci\u0119cie",\r
+undo_desc:"Cofnij (Ctrl+Z)",\r
+redo_desc:"Pon\u00F3w (Ctrl+Y)",\r
+link_desc:"Wstaw/edytuj link",\r
+unlink_desc:"Usu\u0144 link",\r
+image_desc:"Wstaw/edytuj obraz",\r
+cleanup_desc:"Wyczy\u015B\u0107 nieuporz\u0105dkowany kod",\r
+code_desc:"Edytuj \u017Ar\u00F3d\u0142o HTML",\r
+sub_desc:"Indeks dolny",\r
+sup_desc:"Indeks g\u00F3rny",\r
+hr_desc:"Wstaw poziom\u0105 lini\u0119",\r
+removeformat_desc:"Usu\u0144 formatowanie",\r
+custom1_desc:"Tw\u00F3j niestandardowy opis tutaj",\r
+forecolor_desc:"Wybierz kolor tekstu",\r
+backcolor_desc:"Wybierz kolor t\u0142a",\r
+charmap_desc:"Wstaw niestandardowy znak",\r
+visualaid_desc:"Prze\u0142\u0105cz widoczno\u015B\u0107 wska\u017Anik\u00F3w i niewidzialnych element\u00F3w",\r
+anchor_desc:"Wstaw/edytuj kotwic\u0119",\r
+cut_desc:"Wytnij",\r
+copy_desc:"Kopiuj",\r
+paste_desc:"Wklej",\r
+image_props_desc:"W\u0142a\u015Bciwo\u015Bci obrazka",\r
+newdocument_desc:"Nowy dokument",\r
+help_desc:"Pomoc",\r
+blockquote_desc:"Blok cytatu",\r
+clipboard_msg:"Akcje Kopiuj/Wytnij/Wklej nie s\u0105 dost\u0119pne w Mozilli i Firefox.\nCzy chcesz wi\u0119cej informacji o tym problemie?",\r
+path:"\u015Acie\u017Cka",\r
+newdocument:"Czy jeste\u015B pewnien, ze chcesz wyczy\u015Bci\u0107 ca\u0142\u0105 zawarto\u015B\u0107?",\r
+toolbar_focus:"Przeskocz do przycisk\u00F3w narz\u0119dzi - Alt+Q, Przeskocz do edytora - Alt-Z, Przeskocz do elementu \u015Bcie\u017Cki - Alt-X",\r
+more_colors:"Wi\u0119cej kolor\u00F3w"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pl.advanced_dlg',{\r
+about_title:"O TinyMCE",\r
+about_general:"O TinyMCE",\r
+about_help:"Pomoc",\r
+about_license:"Licencja",\r
+about_plugins:"Wtyczki",\r
+about_plugin:"Wtyczka",\r
+about_author:"Autor",\r
+about_version:"Wersja",\r
+about_loaded:"Za\u0142adowane wtyczki",\r
+anchor_title:"Wstaw/Edytuj zakotwiczenie",\r
+anchor_name:"Nazwa zakotwiczenia",\r
+code_title:"Edytor \u017Ar\u00F3d\u0142a HTML",\r
+code_wordwrap:"Zawijanie s\u0142\u00F3w",\r
+colorpicker_title:"Wybierz kolor",\r
+colorpicker_picker_tab:"Wybieranie",\r
+colorpicker_picker_title:"Wybieranie kolor\u00F3w",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta kolor\u00F3w",\r
+colorpicker_named_tab:"Nazwane",\r
+colorpicker_named_title:"Nazwane kolory",\r
+colorpicker_color:"Kolor:",\r
+colorpicker_name:"Nazwa:",\r
+charmap_title:"Wybierz niestandardowy znak",\r
+image_title:"Wstaw/Edytuj obraz",\r
+image_src:"URL obrazka",\r
+image_alt:"Opis obrazka",\r
+image_list:"Lista obrazk\u00F3w",\r
+image_border:"Ramka",\r
+image_dimensions:"Rozmiary",\r
+image_vspace:"Pionowy odst\u0119p",\r
+image_hspace:"Poziomy odst\u0119p",\r
+image_align:"Wyr\u00F3wnanie",\r
+image_align_baseline:"Linia bazowa",\r
+image_align_top:"G\u00F3ra",\r
+image_align_middle:"\u015Arodek",\r
+image_align_bottom:"Dolny",\r
+image_align_texttop:"G\u00F3rny tekst",\r
+image_align_textbottom:"Dolny tekst",\r
+image_align_left:"Lewy",\r
+image_align_right:"Prawy",\r
+link_title:"Wstaw/edytuj link",\r
+link_url:"Link URL",\r
+link_target:"Cel",\r
+link_target_same:"Otw\u00F3rz link w tym samym oknie",\r
+link_target_blank:"Otw\u00F3rz link w nowym oknie",\r
+link_titlefield:"Tytu\u0142",\r
+link_is_email:"URL kt\u00F3ry otworzy\u0142e\u015B wydaje si\u0119 by\u0107 adresem mailowym, czy chcesz doda\u0107 odpowiedni prefix mailto: ?",\r
+link_is_external:"URL kt\u00F3ry otworzy\u0142e\u015B wydaje si\u0119 by\u0107 zewn\u0119trznym linkiem, czy chcesz doda\u0107 wymagany prefix http:// ?",\r
+link_list:"Lista link\u00F3w"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pt.advanced',{\r
+style_select:"Estilos",\r
+font_size:"Tamanho",\r
+fontdefault:"Fam\u00EDlia(Fonte)",\r
+block:"Formata\u00E7\u00E3o",\r
+paragraph:"Par\u00E1grafo",\r
+div:"Div",\r
+address:"Endere\u00E7o",\r
+pre:"Pr\u00E9-formatado",\r
+h1:"Cabe\u00E7alho 1",\r
+h2:"Cabe\u00E7alho 2",\r
+h3:"Cabe\u00E7alho 3",\r
+h4:"Cabe\u00E7alho 4",\r
+h5:"Cabe\u00E7alho 5",\r
+h6:"Cabe\u00E7alho 6",\r
+blockquote:"Cita\u00E7\u00E3o em bloco",\r
+code:"C\u00F3digo",\r
+samp:"Amostra de c\u00F3digo",\r
+dt:"Termo de defini\u00E7\u00E3o",\r
+dd:"Descri\u00E7\u00E3o de defini\u00E7\u00E3o",\r
+bold_desc:"Negrito (Ctrl+B)",\r
+italic_desc:"It\u00E1lico (Ctrl+I)",\r
+underline_desc:"Sublinhado (Ctrl+U)",\r
+striketrough_desc:"Texto Riscado",\r
+justifyleft_desc:"Alinhar \u00E0\u00A0 esquerda",\r
+justifycenter_desc:"Centralizar",\r
+justifyright_desc:"Alinhar \u00E0\u00A0 direita",\r
+justifyfull_desc:"Justificar",\r
+bullist_desc:"Marcadores",\r
+numlist_desc:"Numera\u00E7\u00E3o",\r
+outdent_desc:"Diminuir recuo",\r
+indent_desc:"Aumentar recuo",\r
+undo_desc:"Desfazer (Ctrl+Z)",\r
+redo_desc:"Refazer (Ctrl+Y)",\r
+link_desc:"Inserir/editar hyperlink",\r
+unlink_desc:"Remover hyperlink",\r
+image_desc:"Inserir/editar imagem",\r
+cleanup_desc:"Limpar c\u00F3digo incorreto",\r
+code_desc:"Editar c\u00F3digo de fonte",\r
+sub_desc:"Subscrito",\r
+sup_desc:"Superscrito",\r
+hr_desc:"Inserir separador horizontal",\r
+removeformat_desc:"Remover formata\u00E7\u00E3o",\r
+custom1_desc:"Sua descri\u00E7\u00E3o personalizada aqui",\r
+forecolor_desc:"Selecionar cor do texto",\r
+backcolor_desc:"Selecionar cor de fundo",\r
+charmap_desc:"Inserir caracteres especiais",\r
+visualaid_desc:"Alternar guias/elementos invis\u00EDveis",\r
+anchor_desc:"Inserir/editar \u00E2ncora",\r
+cut_desc:"Cortar",\r
+copy_desc:"Copiar",\r
+paste_desc:"Colar",\r
+image_props_desc:"Propriedades de imagem",\r
+newdocument_desc:"Novo documento",\r
+help_desc:"Ajuda",\r
+blockquote_desc:"Cita\u00E7\u00E3o em bloco",\r
+clipboard_msg:"Copiar/cortar/colar n\u00E3o est\u00E1 dispon\u00EDvel em Mozilla e Firefox. Deseja mais informa\u00E7\u00F5es sobre isso?",\r
+path:"Endere\u00E7o",\r
+newdocument:"Tem certeza de que deseja apagar tudo?",\r
+toolbar_focus:"Ir para ferramentas - Alt+Q, Ir para o editor - Alt-Z, Ir para endere\u00E7o do elemento - Alt-X",\r
+more_colors:"Mais cores"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('pt.advanced_dlg',{\r
+about_title:"Sobre o TinyMCE",\r
+about_general:"Sobre",\r
+about_help:"Ajuda",\r
+about_license:"Licen\u00E7a",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Autor",\r
+about_version:"Vers\u00E3o",\r
+about_loaded:"Plugins Instalados",\r
+anchor_title:"Inserir/editar \u00E2ncora",\r
+anchor_name:"Nome da \u00E2ncora",\r
+code_title:"Editor HTML",\r
+code_wordwrap:"Quebra autom\u00E1tica de linha",\r
+colorpicker_title:"Selecione uma cor",\r
+colorpicker_picker_tab:"Editor",\r
+colorpicker_picker_title:"Editor de Cores",\r
+colorpicker_palette_tab:"Palheta",\r
+colorpicker_palette_title:"Palheta de Cores",\r
+colorpicker_named_tab:"Personalizadas",\r
+colorpicker_named_title:"Cores Personalizadas",\r
+colorpicker_color:"Cor:",\r
+colorpicker_name:"Nome:",\r
+charmap_title:"Selecionar caracteres personalizados",\r
+image_title:"Inserir/editar imagem",\r
+image_src:"Endere\u00E7o da imagem",\r
+image_alt:"Descri\u00E7\u00E3o da imagem",\r
+image_list:"Lista de imagens",\r
+image_border:"Borda",\r
+image_dimensions:"Dimens\u00F5es",\r
+image_vspace:"Espa\u00E7o Vertical",\r
+image_hspace:"Espa\u00E7o Horizontal",\r
+image_align:"Alinhamento",\r
+image_align_baseline:"Sobre a linha de texto",\r
+image_align_top:"Topo",\r
+image_align_middle:"Meio",\r
+image_align_bottom:"Embaixo",\r
+image_align_texttop:"Topo do texto",\r
+image_align_textbottom:"Base do texto",\r
+image_align_left:"Esquerda",\r
+image_align_right:"Direita",\r
+link_title:"Inserir/editar hyperlink",\r
+link_url:"URL do hyperink",\r
+link_target:"Alvo",\r
+link_target_same:"Abrir hyperlink na mesma janela",\r
+link_target_blank:"Abrir hyperlink em nova janela",\r
+link_titlefield:"T\u00EDtulo",\r
+link_is_email:"A URL digitada parece ser um endere\u00E7o de e-mail. Deseja acrescentar o (necess\u00E1rio) prefixo mailto:?",\r
+link_is_external:"A URL digitada parece conduzir a um link externo. Deseja acrescentar o (necess\u00E1rio) prefixo http://?",\r
+link_list:"Lista de Links"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ro.advanced',{\r
+style_select:"Stiluri",\r
+font_size:"M\u0103rime font",\r
+fontdefault:"Font",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adres\u0103",\r
+pre:"Preformatat",\r
+h1:"Titlu 1",\r
+h2:"Titlu 2",\r
+h3:"Titlu 3",\r
+h4:"Titlu 4",\r
+h5:"Titlu 5",\r
+h6:"Titlu 6",\r
+blockquote:"Citat",\r
+code:"Cod",\r
+samp:"Mostr\u0103 de cod",\r
+dt:"Termen definit ",\r
+dd:"Defini\u0163ie",\r
+bold_desc:"\u00CEngro\u015Fat (Ctrl+B)",\r
+italic_desc:"Italic (Ctrl+I)",\r
+underline_desc:"Subliniat (Ctrl+U)",\r
+striketrough_desc:"T\u0103iat",\r
+justifyleft_desc:"Aliniere la st\u00E2nga",\r
+justifycenter_desc:"Centrare",\r
+justifyright_desc:"Aliniere la dreapta",\r
+justifyfull_desc:"Aliniere \"justify\"",\r
+bullist_desc:"List\u0103 neordonat\u0103",\r
+numlist_desc:"List\u0103 ordonat\u0103",\r
+outdent_desc:"Outdenteaz\u0103",\r
+indent_desc:"Indenteaz\u0103",\r
+undo_desc:"Undo (Ctrl+Z)",\r
+redo_desc:"Ref\u0103 (Ctrl+Y)",\r
+link_desc:"Inserare/editare leg\u0103tur\u0103",\r
+unlink_desc:"\u015Eterge link",\r
+image_desc:"Inserare/editare imagine",\r
+cleanup_desc:"Cur\u0103\u0163are cod",\r
+code_desc:"Editare surs\u0103 HTML",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Insereaz\u0103 linie orizontal\u0103",\r
+removeformat_desc:"Anuleaz\u0103 formatarea",\r
+custom1_desc:"Descriere ...",\r
+forecolor_desc:"Culoare text",\r
+backcolor_desc:"Culoare fundal",\r
+charmap_desc:"Inserare caracter special",\r
+visualaid_desc:"Toggle guidelines/invisible elements",\r
+anchor_desc:"Inserare/editare ancor\u0103",\r
+cut_desc:"Taie",\r
+copy_desc:"Copiaz\u0103",\r
+paste_desc:"Lipe\u015Fte",\r
+image_props_desc:"Detalii imagine",\r
+newdocument_desc:"Document nou",\r
+help_desc:"Autor",\r
+blockquote_desc:"Citat",\r
+clipboard_msg:"Copiere/T\u0103iere/Lipire nu sunt disponibile \u00EEn Mozilla \u015Fi Firefox.\nDori\u0163i mai multe informa\u0163ii despre aceast\u0103 problem\u0103?",\r
+path:"Cale",\r
+newdocument:"Sigur dori\u0163i s\u0103 \u015Fterge\u0163i tot?",\r
+toolbar_focus:"S\u0103ri\u0163i la instrumente - Alt+Q, S\u0103ri\u0163i la editor - Alt-Z, S\u0103ri\u0163i la cale - Alt-X",\r
+more_colors:"Mai multe culori"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ro.advanced_dlg',{\r
+about_title:"Despre TinyMCE",\r
+about_general:"Despre",\r
+about_help:"Ajutor",\r
+about_license:"Licen\u0163\u0103",\r
+about_plugins:"Module",\r
+about_plugin:"Modul",\r
+about_author:"Autor",\r
+about_version:"Versiune",\r
+about_loaded:"Module \u00EEnc\u0103rcate",\r
+anchor_title:"Inserare/editare ancor\u0103",\r
+anchor_name:"Nume ancor\u0103",\r
+code_title:"Editor surs\u0103 HTML",\r
+code_wordwrap:"Word wrap",\r
+colorpicker_title:"Alege\u0163i o culoare",\r
+colorpicker_picker_tab:"Picker",\r
+colorpicker_picker_title:"Color picker",\r
+colorpicker_palette_tab:"Palet\u0103",\r
+colorpicker_palette_title:"Palet\u0103 de culori",\r
+colorpicker_named_tab:"Named",\r
+colorpicker_named_title:"Culori denumite",\r
+colorpicker_color:"Culoare:",\r
+colorpicker_name:"Nume:",\r
+charmap_title:"Alege\u0163i un caracter special",\r
+image_title:"Insereaz\u0103/editeaz\u0103 imagine",\r
+image_src:"URL imagine",\r
+image_alt:"Descriere imagine",\r
+image_list:"List\u0103 de imagini",\r
+image_border:"Bordur\u0103",\r
+image_dimensions:"Dimensiuni",\r
+image_vspace:"Spa\u0163iu vertical",\r
+image_hspace:"Spa\u0163iu orizontal",\r
+image_align:"Aliniere",\r
+image_align_baseline:"Baseline",\r
+image_align_top:"Sus",\r
+image_align_middle:"La mijloc",\r
+image_align_bottom:"Jos",\r
+image_align_texttop:"Textul sus",\r
+image_align_textbottom:"Textul la mijloc",\r
+image_align_left:"St\u00E2nga",\r
+image_align_right:"Dreapta",\r
+link_title:"Insereaz\u0103/editeaz\u0103 link",\r
+link_url:"URL link",\r
+link_target:"\u0162int\u0103",\r
+link_target_same:"Deschide link \u00EEn aceea\u015Fi fereastr\u0103",\r
+link_target_blank:"Deschide link \u00EEn fereastr\u0103 nou\u0103",\r
+link_titlefield:"Titlu",\r
+link_is_email:"URL-ul pe care l-a\u0163i introdus pare a fi o adres\u0103 de email, dori\u0163i s\u0103 adaug \u015Fi prefixul mailto: necesar?",\r
+link_is_external:"URL-ul pe care l-a\u0163i introdus pare a fi un link extern, dori\u0163i s\u0103 adaug \u015Fi prefixul http:// necesar?",\r
+link_list:"Lista de linkuri"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ru.advanced',{\r
+style_select:"\u0421\u0442\u0438\u043B\u0438",\r
+font_size:"\u0420\u0430\u0437\u043C\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430",\r
+fontdefault:"\u0428\u0440\u0438\u0444\u0442",\r
+block:"\u0424\u043E\u0440\u043C\u0430\u0442",\r
+paragraph:"\u0410\u0431\u0437\u0430\u0446",\r
+div:"\u0420\u0430\u0437\u0434\u0435\u043B",\r
+address:"\u0410\u0434\u0440\u0435\u0441",\r
+pre:"\u041E\u0442\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442",\r
+h1:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 1",\r
+h2:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 2",\r
+h3:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 3",\r
+h4:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 4",\r
+h5:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 5",\r
+h6:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 6",\r
+blockquote:"\u0411\u043B\u043E\u043A \u0446\u0438\u0442\u0430\u0442\u044B",\r
+code:"\u041A\u043E\u0434",\r
+samp:"\u041F\u0440\u0438\u043C\u0435\u0440 \u043A\u043E\u0434\u0430",\r
+dt:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0439 \u0442\u0435\u0440\u043C\u0438\u043D",\r
+dd:"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u0442\u0435\u0440\u043C\u0438\u043D\u0430",\r
+bold_desc:"\u041F\u043E\u043B\u0443\u0436\u0438\u0440\u043D\u044B\u0439 (Ctrl+B)",\r
+italic_desc:"\u041A\u0443\u0440\u0441\u0438\u0432 (Ctrl+I)",\r
+underline_desc:"\u041F\u043E\u0434\u0447\u0451\u0440\u043A\u043D\u0443\u0442\u044B\u0439 (Ctrl+U)",\r
+striketrough_desc:"\u041F\u0435\u0440\u0435\u0447\u0451\u0440\u043A\u043D\u0443\u0442\u044B\u0439",\r
+justifyleft_desc:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u043B\u0435\u0432\u043E",\r
+justifycenter_desc:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u043F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+justifyright_desc:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u0432\u043F\u0440\u0430\u0432\u043E",\r
+justifyfull_desc:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u043F\u043E \u0448\u0438\u0440\u0438\u043D\u0435",\r
+bullist_desc:"\u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A",\r
+numlist_desc:"\u041D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A",\r
+outdent_desc:"\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F",\r
+indent_desc:"\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C \u043E\u0442\u0441\u0442\u0443\u043F",\r
+undo_desc:"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C (Ctrl+Z)",\r
+redo_desc:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C (Ctrl+Y)",\r
+link_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443",\r
+unlink_desc:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443",\r
+image_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435",\r
+cleanup_desc:"\u041F\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043A\u0440\u0438\u0432\u043E\u0439 \u043A\u043E\u0434",\r
+code_desc:"\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C HTML-\u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A",\r
+sub_desc:"\u041D\u0438\u0436\u043D\u0438\u0439 \u0438\u043D\u0434\u0435\u043A\u0441",\r
+sup_desc:"\u0412\u0435\u0440\u0445\u043D\u0438\u0439 \u0438\u043D\u0434\u0435\u043A\u0441",\r
+hr_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0443\u044E \u043B\u0438\u043D\u0438\u044E",\r
+removeformat_desc:"\u0423\u0431\u0440\u0430\u0442\u044C \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",\r
+custom1_desc:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",\r
+forecolor_desc:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0446\u0432\u0435\u0442 \u0442\u0435\u043A\u0441\u0442\u0430",\r
+backcolor_desc:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0446\u0432\u0435\u0442 \u0444\u043E\u043D\u0430",\r
+charmap_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+visualaid_desc:"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C/\u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0435/\u043D\u0435\u0432\u0438\u0434\u0438\u043C\u044B\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",\r
+anchor_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u044F\u043A\u043E\u0440\u044C",\r
+cut_desc:"\u0412\u044B\u0440\u0435\u0437\u0430\u0442\u044C",\r
+copy_desc:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",\r
+paste_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C",\r
+image_props_desc:"\u0421\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",\r
+newdocument_desc:"\u041D\u043E\u0432\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442",\r
+help_desc:"\u041F\u043E\u043C\u043E\u0449\u044C",\r
+blockquote_desc:"\u0411\u043B\u043E\u043A \u0446\u0438\u0442\u0430\u0442\u044B",\r
+clipboard_msg:"\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435/\u0412\u0441\u0442\u0430\u0432\u043A\u0430 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0432 Mozilla \u0438 Firefox.\r\n\u0425\u043E\u0442\u0438\u0442\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435 \u0443\u0437\u043D\u0430\u0442\u044C, \u0432 \u0447\u0451\u043C \u0434\u0435\u043B\u043E?",\r
+path:"\u041F\u0443\u0442\u044C",\r
+newdocument:"\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0451 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435?",\r
+toolbar_focus:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043A\u043D\u043E\u043F\u043A\u0430\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 - Alt+Q, \u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0443 - Alt-Z, \u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043F\u0443\u0442\u0438 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 - Alt-X",\r
+more_colors:"\u0415\u0449\u0451 \u0446\u0432\u0435\u0442\u0430",\r
+image_delta_width:"65"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('ru.advanced_dlg',{\r
+about_title:"\u041E TinyMCE",\r
+about_general:"\u041E \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0435",\r
+about_help:"\u041F\u043E\u043C\u043E\u0449\u044C",\r
+about_license:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F",\r
+about_plugins:"\u041F\u043B\u0430\u0433\u0438\u043D\u044B",\r
+about_plugin:"\u041F\u043B\u0430\u0433\u0438\u043D",\r
+about_author:"\u0410\u0432\u0442\u043E\u0440",\r
+about_version:"\u0412\u0435\u0440\u0441\u0438\u044F",\r
+about_loaded:"\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u043F\u043B\u0430\u0433\u0438\u043D\u044B",\r
+anchor_title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u044F\u043A\u043E\u0440\u044C",\r
+anchor_name:"\u0418\u043C\u044F \u044F\u043A\u043E\u0440\u044F",\r
+code_title:"\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 HTML-\u0438\u0441\u0445\u043E\u0434\u043D\u0438\u043A\u0430",\r
+code_wordwrap:"\u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0441\u043B\u043E\u0432",\r
+colorpicker_title:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0446\u0432\u0435\u0442",\r
+colorpicker_picker_tab:"\u0412\u044B\u0431\u043E\u0440",\r
+colorpicker_picker_title:"\u0412\u044B\u0431\u043E\u0440 \u0446\u0432\u0435\u0442\u0430",\r
+colorpicker_palette_tab:"\u041F\u0430\u043B\u0438\u0442\u0440\u0430",\r
+colorpicker_palette_title:"\u0426\u0432\u0435\u0442\u0430 \u043F\u0430\u043B\u0438\u0442\u0440\u044B",\r
+colorpicker_named_tab:"\u0418\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u043D\u044B\u0439",\r
+colorpicker_named_title:"\u0418\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u0430",\r
+colorpicker_color:"\u0426\u0432\u0435\u0442:",\r
+colorpicker_name:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435:",\r
+charmap_title:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0439 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+image_title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435",\r
+image_src:"\u0410\u0434\u0440\u0435\u0441 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",\r
+image_alt:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F",\r
+image_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439",\r
+image_border:"\u0413\u0440\u0430\u043D\u0438\u0446\u0430",\r
+image_dimensions:"\u0420\u0430\u0437\u043C\u0435\u0440\u044B",\r
+image_vspace:"\u0412\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E",\r
+image_hspace:"\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E",\r
+image_align:"\u0412\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435",\r
+image_align_baseline:"\u041F\u043E \u0431\u0430\u0437\u0438\u0441\u043D\u043E\u0439 \u043B\u0438\u043D\u0438\u0438",\r
+image_align_top:"\u041F\u043E \u0432\u0435\u0440\u0445\u0443",\r
+image_align_middle:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+image_align_bottom:"\u041F\u043E \u043D\u0438\u0437\u0443",\r
+image_align_texttop:"\u041F\u043E \u0432\u0435\u0440\u0445\u0443 \u0442\u0435\u043A\u0441\u0442\u0430",\r
+image_align_textbottom:"\u041F\u043E \u043D\u0438\u0437\u0443 \u0442\u0435\u043A\u0441\u0442\u0430",\r
+image_align_left:"\u0412\u043B\u0435\u0432\u043E",\r
+image_align_right:"\u0412\u043F\u0440\u0430\u0432\u043E",\r
+link_title:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C/\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443",\r
+link_url:"\u0410\u0434\u0440\u0435\u0441 \u0441\u0441\u044B\u043B\u043A\u0438",\r
+link_target:"\u0426\u0435\u043B\u044C",\r
+link_target_same:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u0432 \u0442\u043E\u043C \u0436\u0435 \u043E\u043A\u043D\u0435",\r
+link_target_blank:"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443 \u0432 \u043D\u043E\u0432\u043E\u043C \u043E\u043A\u043D\u0435",\r
+link_titlefield:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435",\r
+link_is_email:"\u0412\u0432\u0435\u0434\u0451\u043D\u043D\u044B\u0439 \u0430\u0434\u0440\u0435\u0441 \u043F\u043E\u0445\u043E\u0436 \u043D\u0430 email, \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u0435\u0444\u0438\u043A\u0441 mailto:?",\r
+link_is_external:"\u0412\u0432\u0435\u0434\u0451\u043D\u043D\u044B\u0439 \u0430\u0434\u0440\u0435\u0441 \u043F\u043E\u0445\u043E\u0436 \u043D\u0430 \u0432\u043D\u0435\u0448\u043D\u044E\u044E \u0441\u0441\u044B\u043B\u043A\u0443, \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u0435\u0444\u0438\u043A\u0441 http://?",\r
+link_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0441\u0441\u044B\u043B\u043E\u043A"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('si.advanced',{\r
+style_select:"Styles",\r
+font_size:"Font size",\r
+fontdefault:"Font family",\r
+block:"Format",\r
+paragraph:"Paragraph",\r
+div:"Div",\r
+address:"Address",\r
+pre:"Preformatted",\r
+h1:"Heading 1",\r
+h2:"Heading 2",\r
+h3:"Heading 3",\r
+h4:"Heading 4",\r
+h5:"Heading 5",\r
+h6:"Heading 6",\r
+blockquote:"Blockquote",\r
+code:"Code",\r
+samp:"Code sample",\r
+dt:"Definition term ",\r
+dd:"Definition description",\r
+bold_desc:"Bold (Ctrl+B)",\r
+italic_desc:"Italic (Ctrl+I)",\r
+underline_desc:"Underline (Ctrl+U)",\r
+striketrough_desc:"Strikethrough",\r
+justifyleft_desc:"Align left",\r
+justifycenter_desc:"Align center",\r
+justifyright_desc:"Align right",\r
+justifyfull_desc:"Align full",\r
+bullist_desc:"Unordered list",\r
+numlist_desc:"Ordered list",\r
+outdent_desc:"Outdent",\r
+indent_desc:"Indent",\r
+undo_desc:"Undo (Ctrl+Z)",\r
+redo_desc:"Redo (Ctrl+Y)",\r
+link_desc:"Insert/edit link",\r
+unlink_desc:"Unlink",\r
+image_desc:"Insert/edit image",\r
+cleanup_desc:"Cleanup messy code",\r
+code_desc:"Edit HTML Source",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Insert horizontal ruler",\r
+removeformat_desc:"Remove formatting",\r
+custom1_desc:"Your custom description here",\r
+forecolor_desc:"Select text color",\r
+backcolor_desc:"Select background color",\r
+charmap_desc:"Insert custom character",\r
+visualaid_desc:"Toggle guidelines/invisible elements",\r
+anchor_desc:"Insert/edit anchor",\r
+cut_desc:"Cut",\r
+copy_desc:"Copy",\r
+paste_desc:"Paste",\r
+image_props_desc:"Image properties",\r
+newdocument_desc:"New document",\r
+help_desc:"Help",\r
+blockquote_desc:"Blockquote",\r
+clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\r\nDo you want more information about this issue?",\r
+path:"Path",\r
+newdocument:"Are you sure you want clear all contents?",\r
+toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",\r
+more_colors:"More colors"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('si.advanced_dlg',{\r
+about_title:"About TinyMCE",\r
+about_general:"About",\r
+about_help:"Help",\r
+about_license:"License",\r
+about_plugins:"Plugins",\r
+about_plugin:"Plugin",\r
+about_author:"Author",\r
+about_version:"Version",\r
+about_loaded:"Loaded plugins",\r
+anchor_title:"Insert/edit anchor",\r
+anchor_name:"Anchor name",\r
+code_title:"HTML Source Editor",\r
+code_wordwrap:"Word wrap",\r
+colorpicker_title:"Select a color",\r
+colorpicker_picker_tab:"Picker",\r
+colorpicker_picker_title:"Color picker",\r
+colorpicker_palette_tab:"Palette",\r
+colorpicker_palette_title:"Palette colors",\r
+colorpicker_named_tab:"Named",\r
+colorpicker_named_title:"Named colors",\r
+colorpicker_color:"Color:",\r
+colorpicker_name:"Name:",\r
+charmap_title:"Select custom character",\r
+image_title:"Insert/edit image",\r
+image_src:"Image URL",\r
+image_alt:"Image description",\r
+image_list:"Image list",\r
+image_border:"Border",\r
+image_dimensions:"Dimensions",\r
+image_vspace:"Vertical space",\r
+image_hspace:"Horizontal space",\r
+image_align:"Alignment",\r
+image_align_baseline:"Baseline",\r
+image_align_top:"Top",\r
+image_align_middle:"Middle",\r
+image_align_bottom:"Bottom",\r
+image_align_texttop:"Text top",\r
+image_align_textbottom:"Text bottom",\r
+image_align_left:"Left",\r
+image_align_right:"Right",\r
+link_title:"Insert/edit link",\r
+link_url:"Link URL",\r
+link_target:"Target",\r
+link_target_same:"Open link in the same window",\r
+link_target_blank:"Open link in a new window",\r
+link_titlefield:"Title",\r
+link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
+link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
+link_list:"Link list"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sk.advanced',{\r
+style_select:"- \u0160t\u00FDly -",\r
+font_size:"- Ve\u013Ekos\u0165 p\u00EDsma -",\r
+fontdefault:"- Typ p\u00EDsma -",\r
+block:"- Form\u00E1t -",\r
+paragraph:"Odstavec [p]",\r
+div:"Div",\r
+address:"Adresa [address]",\r
+pre:"Predform\u00E1t [pre]",\r
+h1:"Nadpis 1 [h1]",\r
+h2:"Nadpis 2 [h2]",\r
+h3:"Nadpis 3 [h3]",\r
+h4:"Nadpis 4 [h4]",\r
+h5:"Nadpis 5 [h5]",\r
+h6:"Nadpis 6 [h6]",\r
+blockquote:"Odsadenie",\r
+code:"K\u00F3d",\r
+samp:"Uk\u00E1\u017Eka k\u00F3du",\r
+dt:"Defin\u00EDcia podmienky",\r
+dd:"Defin\u00EDcia popisu",\r
+bold_desc:"Tu\u010Dn\u00FD text (Ctrl+B)",\r
+italic_desc:"\u0160ikm\u00FD text (kurziv\u00E1) (Ctrl+I)",\r
+underline_desc:"Pod\u010Diarknut\u00FD text (Ctrl+U)",\r
+striketrough_desc:"Pre\u0161krtnut\u00FD text",\r
+justifyleft_desc:"Zarovna\u0165 v\u013Eavo",\r
+justifycenter_desc:"Zarovna\u0165 na stred",\r
+justifyright_desc:"Zarovna\u0165 vpravo",\r
+justifyfull_desc:"Zarovna\u0165 do bloku",\r
+bullist_desc:"Zoznam s odr\u00E1\u017Ekami",\r
+numlist_desc:"\u010C\u00EDslovan\u00FD zoznam",\r
+outdent_desc:"Zmen\u0161i\u0165 odsadenie",\r
+indent_desc:"Zv\u00E4\u010D\u0161i\u0165 odsadenie",\r
+undo_desc:"Sp\u00E4\u0165 (Ctrl+Z)",\r
+redo_desc:"Znovu (Ctrl+Y)",\r
+link_desc:"Vlo\u017Ei\u0165/upravi\u0165 odkaz",\r
+unlink_desc:"Zru\u0161i\u0165 odkaz",\r
+image_desc:"Vlo\u017Ei\u0165/upravi\u0165 obr\u00E1zok",\r
+cleanup_desc:"Vy\u010Disti\u0165 neusporiadan\u00FD k\u00F3d",\r
+code_desc:"Zobrazi\u0165 HTML zdroj",\r
+sub_desc:"Doln\u00FD index",\r
+sup_desc:"Horn\u00FD index",\r
+hr_desc:"Vlo\u017Ei\u0165 vodorovn\u00FD odde\u013Eova\u010D",\r
+removeformat_desc:"Odstr\u00E1ni\u0165 form\u00E1tovanie",\r
+custom1_desc:"\u013Dubovoln\u00FD popisok",\r
+forecolor_desc:"Vyber farbu textu",\r
+backcolor_desc:"Vyber farbu pozadia",\r
+charmap_desc:"Vlo\u017Ei\u0165 vlastn\u00FD znak",\r
+visualaid_desc:"Zobrazi\u0165 pomocn\u00E9/skryt\u00E9 prvky",\r
+anchor_desc:"Vlo\u017Ei\u0165/upravi\u0165 n\u00E1zov kotvy",\r
+cut_desc:"Vystrihn\u00FA\u0165",\r
+copy_desc:"Kop\u00EDrova\u0165",\r
+paste_desc:"Vlo\u017Ei\u0165",\r
+image_props_desc:"Vlastnosti obr\u00E1zka",\r
+newdocument_desc:"Nov\u00FD dokument",\r
+help_desc:"N\u00E1poveda",\r
+blockquote_desc:"Citovan\u00FD text",\r
+clipboard_msg:"Funkcie Kop\u00EDrova\u0165/vysrihn\u00FA\u0165/vlo\u017Ei\u0165 nie su podporovan\u00E9 prehliada\u010Dmi Mozilla a Firefox. Chce\u0161 viac inform\u00E1ci\u00ED o tomto probl\u00E9me?",\r
+path:"Cesta",\r
+newdocument:"Naozaj chce\u0161 vy\u010Disti\u0165 v\u0161etok obsah?",\r
+toolbar_focus:"Prejdi na n\u00E1strojov\u00E9 tla\u010Didl\u00E1 - Alt+Q, Prejdi na editor - Alt-Z, Prejdi na cestu elementov - Alt-X",\r
+more_colors:"Viac farieb"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sk.advanced_dlg',{\r
+about_title:"O TinyMCE",\r
+about_general:"O Programe",\r
+about_help:"N\u00E1poveda",\r
+about_license:"Licencia",\r
+about_plugins:"Pluginy",\r
+about_plugin:"Plugin",\r
+about_author:"Autor",\r
+about_version:"Verzia",\r
+about_loaded:"Na\u010D\u00EDtan\u00E9 pluginy",\r
+anchor_title:"Vlo\u017Ei\u0165/upravi\u0165 n\u00E1zov kotvy",\r
+anchor_name:"N\u00E1zov kotvy",\r
+code_title:"Editor HTML k\u00F3du",\r
+code_wordwrap:"Zalamova\u0165 riadky",\r
+colorpicker_title:"Vyber farbu",\r
+colorpicker_picker_tab:"Mie\u0161a\u010D",\r
+colorpicker_picker_title:"Mie\u0161a\u010D farieb",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta farieb",\r
+colorpicker_named_tab:"N\u00E1zvoslovia",\r
+colorpicker_named_title:"N\u00E1zvy farieb",\r
+colorpicker_color:"Farba:",\r
+colorpicker_name:"N\u00E1zov:",\r
+charmap_title:"Vyber \u0161peci\u00E1lny znak",\r
+image_title:"Vlo\u017Ei\u0165/editova\u0165 obr\u00E1zok",\r
+image_src:"URL obr\u00E1zka",\r
+image_alt:"Popis obr\u00E1zka",\r
+image_list:"Zoznam obr\u00E1zkov",\r
+image_border:"Okraj",\r
+image_dimensions:"Rozmery",\r
+image_vspace:"Vertik\u00E1lna medzera",\r
+image_hspace:"Horizont\u00E1lna medzera",\r
+image_align:"Usporiadanie",\r
+image_align_baseline:"Z\u00E1klad\u0148a",\r
+image_align_top:"Hore",\r
+image_align_middle:"Uprostred",\r
+image_align_bottom:"Dolu",\r
+image_align_texttop:"Text hore",\r
+image_align_textbottom:"Text dolu",\r
+image_align_left:"V\u013Eavo",\r
+image_align_right:"Vpravo",\r
+link_title:"Vlo\u017Ei\u0165/editova\u0165 odkaz",\r
+link_url:"URL odkazu",\r
+link_target:"Cie\u013E odkazu",\r
+link_target_same:"Otvori\u0165 odkaz v rovnakom okne",\r
+link_target_blank:"Otvori\u0165 odkaz v novom okne",\r
+link_titlefield:"N\u00E1zov",\r
+link_is_email:"Zd\u00E1 sa, \u017Ee zadan\u00E1 URL je emailov\u00E1 adresa. Chce\u0161 vlo\u017Ei\u0165 povinn\u00FD prefix mailto: ?",\r
+link_is_external:"Zd\u00E1 sa, \u017Ee zadan\u00E1 URL je extern\u00FD odkaz. Chce\u0161 vlo\u017Ei\u0165 povinn\u00FD prefix http:// ?",\r
+link_list:"Zoznam odkazov"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sl.advanced',{\r
+style_select:"Izberite slog",\r
+font_size:"Velikost pisave",\r
+fontdefault:"Dru\u017Eina pisave",\r
+block:"oblika",\r
+paragraph:"odstavek",\r
+div:"blok",\r
+address:"naslov",\r
+pre:"predoblikovano",\r
+h1:"naslov 1",\r
+h2:"naslov 2",\r
+h3:"naslov 3",\r
+h4:"naslov 4",\r
+h5:"naslov 5",\r
+h6:"naslov 6",\r
+blockquote:"citat",\r
+code:"koda",\r
+samp:"kodni zgled",\r
+dt:"definicija - izraz",\r
+dd:"definicija - opis",\r
+bold_desc:"Krepko (Ctrl+B)",\r
+italic_desc:"Po\u0161evno (Ctrl+I)",\r
+underline_desc:"Pod\u010Drtano (Ctrl+U)",\r
+striketrough_desc:"Pre\u010Drtano",\r
+justifyleft_desc:"Poravnava levo",\r
+justifycenter_desc:"Poravnava na sredino",\r
+justifyright_desc:"Poravnava desno",\r
+justifyfull_desc:"Polna poravnava",\r
+bullist_desc:"Alineje",\r
+numlist_desc:"Na\u0161tevanje",\r
+outdent_desc:"Zamakni",\r
+indent_desc:"Odmakni ven",\r
+undo_desc:"Razveljavi (Ctrl+Z)",\r
+redo_desc:"Uveljavi (Ctrl+Y)",\r
+link_desc:"Vstavi/uredi povezavo",\r
+unlink_desc:"Odstrani povezavo",\r
+image_desc:"Vstavi/uredi sliko",\r
+cleanup_desc:"Pre\u010Disti kodo",\r
+code_desc:"Uredi kodo HTML",\r
+sub_desc:"Podpisano",\r
+sup_desc:"Nadpisano",\r
+hr_desc:"Vstavi \u010Drto",\r
+removeformat_desc:"Odstrani oblikovanje",\r
+custom1_desc:"Opis tule",\r
+forecolor_desc:"Izberite barvo pisave",\r
+backcolor_desc:"Izberite barvo ozadja",\r
+charmap_desc:"Vstavi posebni znak",\r
+visualaid_desc:"Preklop prikaza vodil",\r
+anchor_desc:"Vstavi/uredi sidro",\r
+cut_desc:"Izre\u017Ei",\r
+copy_desc:"Kopiraj",\r
+paste_desc:"Prilepi",\r
+image_props_desc:"Lastnosti slike",\r
+newdocument_desc:"Nov dokument",\r
+help_desc:"Pomo\u010D",\r
+blockquote_desc:"Citat",\r
+clipboard_msg:"Delo z odlo\u017Ei\u0161\u010Dem ni mogo\u010De v tem brskalniku. Lahko uporabljate kombinacije tipk Ctrl+X, Ctrl+C, Ctrl+V.\n\u017Delite ve\u010D informacij o tem?",\r
+path:"Pot",\r
+newdocument:"Ste prepri\u010Dani, da \u017Eelite odstraniti vsebino?",\r
+toolbar_focus:"Preskok na orodjarno - Alt+Q, Preskok v urejevalnik - Alt-Z, Preskok na pot elementa - Alt-X",\r
+more_colors:"Ve\u010D barv"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sl.advanced_dlg',{\r
+about_title:"O TinyMCE",\r
+about_general:"Vizitka",\r
+about_help:"Pomo\u010D",\r
+about_license:"Licenca",\r
+about_plugins:"Vsadki",\r
+about_plugin:"Vsadek",\r
+about_author:"Avtor",\r
+about_version:"Verzija",\r
+about_loaded:"Nalo\u017Eeni vsadki",\r
+anchor_title:"Vstavi/uredi sidro",\r
+anchor_name:"Ime sidra",\r
+code_title:"Urejevalnik kode HTML",\r
+code_wordwrap:"Prelomi vrstice",\r
+colorpicker_title:"Izberite barvo",\r
+colorpicker_picker_tab:"Izbor",\r
+colorpicker_picker_title:"Izbor barve",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Barve palete",\r
+colorpicker_named_tab:"Poimenovane",\r
+colorpicker_named_title:"Poimenovane barve",\r
+colorpicker_color:"Barva:",\r
+colorpicker_name:"Ime:",\r
+charmap_title:"Izberite posebni znak",\r
+image_title:"Vstavi/uredi sliko",\r
+image_src:"Naslov URL slike",\r
+image_alt:"Opis slike",\r
+image_list:"Seznam slik",\r
+image_border:"Obroba",\r
+image_dimensions:"Dimenzije",\r
+image_vspace:"Prostor zg/sp",\r
+image_hspace:"Prostor le/de",\r
+image_align:"Poravnava",\r
+image_align_baseline:"osnovna \u010Drta",\r
+image_align_top:"vrh",\r
+image_align_middle:"sredina",\r
+image_align_bottom:"dno",\r
+image_align_texttop:"vrh besedila",\r
+image_align_textbottom:"dno besedila",\r
+image_align_left:"levo, plavajo\u010De",\r
+image_align_right:"desno, plavajo\u010De",\r
+link_title:"Vstavi/uredi povezavo",\r
+link_url:"Naslov URL",\r
+link_target:"Ime cilja",\r
+link_target_same:"odpri povezavo v istem oknu",\r
+link_target_blank:"odpri povezavo v novem oknu",\r
+link_titlefield:"Naslov",\r
+link_is_email:"Vneseni naslov verjetno prestavlja e-naslov, \u017Eelite da dodam zahtevano predpono \'mailto:\'?",\r
+link_is_external:"Vneseni naslov verjetno predstavlja zunanjo povezavo, \u017Eelite da dodam zahtevano predpono \'http://\'?",\r
+link_list:"Seznam povezav"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sr.advanced',{\r
+style_select:"Stilovi",\r
+font_size:"Veli\u010Dina pisma",\r
+fontdefault:"Vrsta pisma",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adresa",\r
+pre:"Oblikovano",\r
+h1:"Naslov 1",\r
+h2:"Naslov 2",\r
+h3:"Naslov 3",\r
+h4:"Naslov 4",\r
+h5:"Naslov 5",\r
+h6:"Naslov 6",\r
+blockquote:"Citat",\r
+code:"Kod",\r
+samp:"Primjer koda",\r
+dt:"Definicija pojma",\r
+dd:"Opis definicije",\r
+bold_desc:"Podebljaj (Ctrl+B)",\r
+italic_desc:"Kurziv (Ctrl+I)",\r
+underline_desc:"Podcrtaj (Ctrl+U)",\r
+striketrough_desc:"Precrtaj",\r
+justifyleft_desc:"Poravnaj levo",\r
+justifycenter_desc:"Centriraj",\r
+justifyright_desc:"Poravnaj desno",\r
+justifyfull_desc:"Poravnaj potpuno",\r
+bullist_desc:"Neure\u0111ena lista",\r
+numlist_desc:"Ure\u0111ena lista",\r
+outdent_desc:"Uvuci",\r
+indent_desc:"Izvuci",\r
+undo_desc:"Poni\u0161ti (Ctrl+Z)",\r
+redo_desc:"Ponovi (Ctrl+Y)",\r
+link_desc:"Umetni/uredi poveznicu",\r
+unlink_desc:"Poni\u0161ti poveznicu",\r
+image_desc:"Umetni/uredi sliku",\r
+cleanup_desc:"Po\u010Disti kod",\r
+code_desc:"Uredi HTML izvor",\r
+sub_desc:"Indeks",\r
+sup_desc:"Eksponent",\r
+hr_desc:"Umetni vodoravnu crtu",\r
+removeformat_desc:"Poni\u0161ti oblikovanje",\r
+custom1_desc:"Vlastiti opis ovdje",\r
+forecolor_desc:"Odaberite boju teksta",\r
+backcolor_desc:"Odaberite boju pozadine",\r
+charmap_desc:"Umetni vlastiti znak",\r
+visualaid_desc:"Vodilice/nevidljivi elementi",\r
+anchor_desc:"Umetni/uredi sidro",\r
+cut_desc:"Izre\u017Ei",\r
+copy_desc:"Kopiraj",\r
+paste_desc:"Zalepi",\r
+image_props_desc:"Svojstva slike",\r
+newdocument_desc:"Novi dokument",\r
+help_desc:"Pomo\u0107",\r
+blockquote_desc:"Citiraj",\r
+clipboard_msg:"Kopiraj/Izre\u017Ei/Zalepi nije dostupno u Mozilla i Firefox preglednicima. Vi\u0161e informacija?",\r
+path:"Staza",\r
+newdocument:"Jeste li sigurni da \u017Eelite izbrisati celi sadr\u017Eaj?",\r
+toolbar_focus:"Pre\u0111i na alatnu traku - Alt+Q, pre\u0111i na ure\u0111iva\u010D - Alt-Z, pre\u0111i na element path - Alt-X",\r
+more_colors:"Vi\u0161e boja"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sr.advanced_dlg',{\r
+about_title:"TinyMCE",\r
+about_general:"O programu",\r
+about_help:"Pomo\u0107",\r
+about_license:"Licenca",\r
+about_plugins:"Dodaci",\r
+about_plugin:"Dodatak",\r
+about_author:"Autor",\r
+about_version:"Verzija",\r
+about_loaded:"Postoje\u0107i dodaci",\r
+anchor_title:"Umetni/uredi sidro",\r
+anchor_name:"Ime sidra",\r
+code_title:"HTML ure\u0111iva\u010D",\r
+code_wordwrap:"Omatanje teksta",\r
+colorpicker_title:"Izbor boje",\r
+colorpicker_picker_tab:"Odabir",\r
+colorpicker_picker_title:"Odabir boje",\r
+colorpicker_palette_tab:"Paleta",\r
+colorpicker_palette_title:"Paleta boja",\r
+colorpicker_named_tab:"Imenovano",\r
+colorpicker_named_title:"Imenovane boje",\r
+colorpicker_color:"Boja:",\r
+colorpicker_name:"Naziv:",\r
+charmap_title:"Odaberite znak",\r
+image_title:"Umetni/uredi sliku",\r
+image_src:"URL slike",\r
+image_alt:"Opis slike",\r
+image_list:"Lista slika",\r
+image_border:"Obrub",\r
+image_dimensions:"Dimenzije",\r
+image_vspace:"Okomiti razmak",\r
+image_hspace:"Vodoravni razmak",\r
+image_align:"Poravnavanje",\r
+image_align_baseline:"Osnovna linija",\r
+image_align_top:"Vrh",\r
+image_align_middle:"Sredina",\r
+image_align_bottom:"Dno",\r
+image_align_texttop:"Vrh teksta",\r
+image_align_textbottom:"Dno teksta",\r
+image_align_left:"Levo",\r
+image_align_right:"Desno",\r
+link_title:"Umetni/uredi poveznicu",\r
+link_url:"URL poveznice",\r
+link_target:"Meta",\r
+link_target_same:"Otvori poveznicu u istom prozoru",\r
+link_target_blank:"Otvori poveznicu u novom prozoru",\r
+link_titlefield:"Naslov",\r
+link_is_email:"URL koji ste uneli izgleda kao e-mail adresa, \u017Eelite li dodati potrebni mailto: prefiks?",\r
+link_is_external:"URL koji ste uneli izgleda kao vanjska poveznica, \u017Eelite li dodati potrebni http:// prefiks?",\r
+link_list:"Lista poveznica"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sv.advanced',{\r
+style_select:"Stilar",\r
+font_size:"Fontstorlek",\r
+fontdefault:"Fontfamilj",\r
+block:"Format",\r
+paragraph:"Paragraf",\r
+div:"Div",\r
+address:"Adress",\r
+pre:"F\u00F6rformaterad",\r
+h1:"Rubrik 1",\r
+h2:"Rubrik 2",\r
+h3:"Rubrik 3",\r
+h4:"Rubrik 4",\r
+h5:"Rubrik 5",\r
+h6:"Rubrik 6",\r
+blockquote:"Blockcitat",\r
+code:"Kodblock",\r
+samp:"Kodexempel",\r
+dt:"Definitionsterm",\r
+dd:"Definitionsbeskrivning",\r
+bold_desc:"Fet (Ctrl+B)",\r
+italic_desc:"Kursiv (Ctrl+I)",\r
+underline_desc:"Understruken (Ctrl+U)",\r
+striketrough_desc:"Genomstruken",\r
+justifyleft_desc:"V\u00E4nsterst\u00E4lld",\r
+justifycenter_desc:"Centrera",\r
+justifyright_desc:"H\u00F6gerst\u00E4lld",\r
+justifyfull_desc:"Justera",\r
+bullist_desc:"Punktlista",\r
+numlist_desc:"Nummerlista",\r
+outdent_desc:"Drag tillbaka",\r
+indent_desc:"Indrag",\r
+undo_desc:"\u00C5ngra (Ctrl+Z)",\r
+redo_desc:"G\u00F6r om (Ctrl+Y)",\r
+link_desc:"Infoga/redigera l\u00E4nk",\r
+unlink_desc:"Ta bort l\u00E4nk",\r
+image_desc:"Infoga/redigera bild",\r
+cleanup_desc:"St\u00E4da upp i k\u00E4llkoden",\r
+code_desc:"Redigera HTML k\u00E4llkoden",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Infoga horisontell skiljelinje",\r
+removeformat_desc:"Ta bort formatering",\r
+forecolor_desc:"V\u00E4lj textf\u00E4rg",\r
+backcolor_desc:"V\u00E4lj bakgrundsf\u00E4rg",\r
+charmap_desc:"Infoga specialtecken",\r
+visualaid_desc:"Visa/d\u00F6lj visuella hj\u00E4lpmedel",\r
+anchor_desc:"Infoga/redigera bokm\u00E4rke",\r
+cut_desc:"Klipp ut",\r
+copy_desc:"Kopiera",\r
+paste_desc:"Klistra in",\r
+image_props_desc:"Bildinst\u00E4llningar",\r
+newdocument_desc:"Nytt dokument",\r
+help_desc:"Hj\u00E4lp",\r
+blockquote_desc:"Blockcitat",\r
+clipboard_msg:"Kopiera/klipp ut/klistra in \u00E4r inte tillg\u00E4ngligt i din webbl\u00E4sare.\nVill du veta mer om detta?",\r
+path:"Element",\r
+newdocument:"\u00C4r du s\u00E4ker p\u00E5 att du vill radera allt inneh\u00E5ll?",\r
+toolbar_focus:"Hoppa till verktygsf\u00E4ltet - Alt+Q, Hoppa till redigeraren - Alt-Z, Hoppa till element listan - Alt-X"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('sv.advanced_dlg',{\r
+about_title:"Om TinyMCE",\r
+about_general:"Om",\r
+about_help:"Hj\u00E4lp",\r
+about_license:"Licens",\r
+about_plugins:"Om plug-in",\r
+about_plugin:"Om plug-in",\r
+about_author:"Utvecklare",\r
+about_version:"Version",\r
+about_loaded:"Laddade plug-ins",\r
+anchor_title:"Infoga/redigera bokm\u00E4rke",\r
+anchor_name:"Namn",\r
+code_title:"HTML k\u00E4llkodsl\u00E4ge",\r
+code_wordwrap:"Bryt ord",\r
+colorpicker_title:"V\u00E4lj en f\u00E4rg",\r
+colorpicker_picker_tab:"V\u00E4ljare",\r
+colorpicker_picker_title:"F\u00E4rgv\u00E4ljare",\r
+colorpicker_palette_tab:"Palett",\r
+colorpicker_palette_title:"Palettf\u00E4rger",\r
+colorpicker_named_tab:"Namngivna",\r
+colorpicker_named_title:"Namngivna f\u00E4rger",\r
+colorpicker_color:"F\u00E4rg:",\r
+colorpicker_name:"Namn:",\r
+charmap_title:"V\u00E4lj ett specialtecken",\r
+image_title:"Infoga/redigera bild",\r
+image_src:"Bildens URL",\r
+image_alt:"Bildens beskrivning",\r
+image_list:"Bildlista",\r
+image_border:"Ram",\r
+image_dimensions:"Dimensioner",\r
+image_vspace:"Vertikalrymd",\r
+image_hspace:"Horisontalrymd",\r
+image_align:"Justering",\r
+image_align_baseline:"Baslinje",\r
+image_align_top:"Toppen",\r
+image_align_middle:"Mitten",\r
+image_align_bottom:"Botten",\r
+image_align_texttop:"Toppen av texten",\r
+image_align_textbottom:"Botten av texten",\r
+image_align_left:"H\u00F6ger",\r
+image_align_right:"V\u00E4nster",\r
+link_title:"Infoga/redigera l\u00E4nk",\r
+link_url:"L\u00E4nkens URL",\r
+link_target:"M\u00E5l",\r
+link_target_same:"\u00D6ppna l\u00E4nken i samma f\u00F6nster",\r
+link_target_blank:"\u00D6ppna l\u00E4nken i ett nytt f\u00F6nster",\r
+link_titlefield:"Titel",\r
+link_is_email:"L\u00E4nken du angav verkar vara en e-post adress. Vill du infoga mailto: prefixet p\u00E5 l\u00E4nken?",\r
+link_is_external:"L\u00E4nken du angav verkar vara en extern adress. Vill du infoga http:// prefixet p\u00E5 l\u00E4nken?",\r
+link_list:"L\u00E4nklista"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('tr.advanced',{\r
+style_select:"Stiller",\r
+font_size:"Yaz\u0131 boyutu",\r
+fontdefault:"Yaz\u0131 tipi",\r
+block:"Bi\u00E7im",\r
+paragraph:"Paragraf",\r
+div:"B\u00F6l\u00FCm",\r
+address:"Adres",\r
+pre:"\u00D6nformatl\u0131",\r
+h1:"Ba\u015Fl\u0131k 1",\r
+h2:"Ba\u015Fl\u0131k 2",\r
+h3:"Ba\u015Fl\u0131k 3",\r
+h4:"Ba\u015Fl\u0131k 4",\r
+h5:"Ba\u015Fl\u0131k 5",\r
+h6:"Ba\u015Fl\u0131k 6",\r
+blockquote:"Al\u0131nt\u0131",\r
+code:"Kod",\r
+samp:"Kod \u00F6rne\u011Fi",\r
+dt:"Tan\u0131m terimi ",\r
+dd:"Tan\u0131m a\u00E7\u0131klamas\u0131",\r
+bold_desc:"Kal\u0131n (Ctrl+B)",\r
+italic_desc:"E\u011Fik (Ctrl+I)",\r
+underline_desc:"Alt\u0131 \u00E7izgili (Ctrl+U)",\r
+striketrough_desc:"Ortas\u0131 \u00E7izgili",\r
+justifyleft_desc:"Sola yasla",\r
+justifycenter_desc:"Ortala",\r
+justifyright_desc:"Sa\u011Fa yasla",\r
+justifyfull_desc:"\u0130ki yana yasla",\r
+bullist_desc:"S\u0131ras\u0131z liste",\r
+numlist_desc:"S\u0131ral\u0131 liste",\r
+outdent_desc:"D\u0131\u015Fa kayd\u0131r",\r
+indent_desc:"\u0130\u00E7e kayd\u0131r",\r
+undo_desc:"Geri al (Ctrl+Z)",\r
+redo_desc:"Tekrarla (Ctrl+Y)",\r
+link_desc:"Ba\u011Flant\u0131 ekle/d\u00FCzenle",\r
+unlink_desc:"Ba\u011Flant\u0131y\u0131 sil",\r
+image_desc:"Resim ekle/d\u00FCzenle",\r
+cleanup_desc:"Da\u011F\u0131n\u0131k kodu temizle",\r
+code_desc:"HTML Kayna\u011F\u0131n\u0131 D\u00FCzenle",\r
+sub_desc:"Altsimge",\r
+sup_desc:"\u00DCstsimge",\r
+hr_desc:"Yatay \u00E7izgi ekle",\r
+removeformat_desc:"Bi\u00E7imi kald\u0131r",\r
+custom1_desc:"\u00D6zel a\u00E7\u0131klaman\u0131z\u0131 buraya girin",\r
+forecolor_desc:"Metin rengi se\u00E7",\r
+backcolor_desc:"Arkaplan rengi se\u00E7",\r
+charmap_desc:"\u00D6zel karakter ekle",\r
+visualaid_desc:"Y\u00F6nergeleri ve g\u00F6r\u00FCnmez elemanlar\u0131 a\u00E7/kapa",\r
+anchor_desc:"\u00C7engel noktas\u0131 ekle",\r
+cut_desc:"Kes",\r
+copy_desc:"Kopyala",\r
+paste_desc:"Yap\u0131\u015Ft\u0131r",\r
+image_props_desc:"Resim \u00F6zellikleri",\r
+newdocument_desc:"Yeni belge",\r
+help_desc:"Yard\u0131m",\r
+blockquote_desc:"Al\u0131nt\u0131",\r
+clipboard_msg:"Kopyala/Kes/Yap\u0131\u015Ft\u0131r Mozilla ve Firefox'ta kullan\u0131lamaz.\r\nBu konuda daha fazla bilgi edinmek ister misiniz?",\r
+path:"Yol",\r
+newdocument:"T\u00FCm i\u00E7eri\u011Fi bo\u015Faltmak istedinizden emin misiniz?",\r
+toolbar_focus:"Ara\u00E7 d\u00FC\u011Fmelerine atla - Alt+Q, Edit\u00F6re atla - Alt-Z, Eleman yoluna atla - Alt-X",\r
+more_colors:"Daha fazla renk"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('tr.advanced_dlg',{\r
+about_title:"TinyMCE Hakk\u0131nda",\r
+about_general:"Hakk\u0131nda",\r
+about_help:"Yard\u0131m",\r
+about_license:"Lisans",\r
+about_plugins:"Eklentiler",\r
+about_plugin:"Eklenti",\r
+about_author:"Yazar",\r
+about_version:"S\u00FCr\u00FCm",\r
+about_loaded:"Y\u00FCkl\u00FC eklentiler",\r
+anchor_title:"\u00C7engel noktas\u0131 ekle/d\u00FCzenle",\r
+anchor_name:"\u00C7engel noktas\u0131 ad\u0131",\r
+code_title:"HTML Kaynak Edit\u00F6r\u00FC",\r
+code_wordwrap:"S\u00F6zc\u00FCk kayd\u0131r",\r
+colorpicker_title:"Bir renk se\u00E7",\r
+colorpicker_picker_tab:"Se\u00E7ici",\r
+colorpicker_picker_title:"Renk se\u00E7ici",\r
+colorpicker_palette_tab:"Palet",\r
+colorpicker_palette_title:"Palet renkleri",\r
+colorpicker_named_tab:"\u0130simli",\r
+colorpicker_named_title:"\u0130simli renkler",\r
+colorpicker_color:"Renk:",\r
+colorpicker_name:"\u0130sim:",\r
+charmap_title:"\u00D6zel karakter se\u00E7",\r
+image_title:"Resim ekle/d\u00FCzenle",\r
+image_src:"Resim URL",\r
+image_alt:"Resim tan\u0131m\u0131",\r
+image_list:"Resim listesi",\r
+image_border:"Kenarl\u0131k",\r
+image_dimensions:"Boyutlar",\r
+image_vspace:"Dikey bo\u015Fluk",\r
+image_hspace:"Yatay bo\u015Fluk",\r
+image_align:"Hizalama",\r
+image_align_baseline:"Taban \u00E7izgisi",\r
+image_align_top:"\u00DCst",\r
+image_align_middle:"Orta",\r
+image_align_bottom:"Alt",\r
+image_align_texttop:"Metin \u00FCstte",\r
+image_align_textbottom:"Metin altta",\r
+image_align_left:"Sola",\r
+image_align_right:"Sa\u011Fa",\r
+link_title:"Ba\u011Flant\u0131 ekle/d\u00FCzenle",\r
+link_url:"Ba\u011Flant\u0131 URL",\r
+link_target:"Hedef",\r
+link_target_same:"Ba\u011Flant\u0131y\u0131 ayn\u0131 pencerede a\u00E7",\r
+link_target_blank:"Ba\u011Flant\u0131y\u0131 yeni pencerede a\u00E7",\r
+link_titlefield:"Ba\u015Fl\u0131k",\r
+link_is_email:"Girdi\u011Finiz URL bir e-posta adresi gibi g\u00F6z\u00FCk\u00FCyor, gerekli olan mailto: \u00F6nekinin eklenmesini ister misiniz?",\r
+link_is_external:"Girdi\u011Finiz URL d\u0131\u015F bir ba\u011Flant\u0131 gibi g\u00F6z\u00FCk\u00FCyor, gerekli olan http:// \u00F6nekinin eklenmesini ister misiniz?",\r
+link_list:"Ba\u011Flant\u0131 listesi"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('uk.advanced',{\r
+style_select:"\u0421\u0442\u0438\u043B\u0456",\r
+font_size:"\u0420\u043E\u0437\u043C\u0456\u0440 \u0448\u0440\u0438\u0444\u0442\u0443",\r
+fontdefault:"\u0428\u0440\u0438\u0444\u0442",\r
+block:"\u0424\u043E\u0440\u043C\u0430\u0442",\r
+paragraph:"\u0410\u0431\u0437\u0430\u0446",\r
+div:"Div",\r
+address:"\u0421\u0442\u0438\u043B\u044C \u0430\u0434\u0440\u0435\u0441\u0438",\r
+pre:"\u041F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u044C\u043E \u0444\u043E\u0440\u043C\u0430\u0442\u043E\u0432\u0430\u043D\u0438\u0439",\r
+h1:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 1",\r
+h2:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 2",\r
+h3:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 3",\r
+h4:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 4",\r
+h5:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 5",\r
+h6:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A 6",\r
+blockquote:"\u0426\u0438\u0442\u0430\u0442\u0430",\r
+code:"\u041A\u043E\u0434",\r
+samp:"\u041F\u0440\u0438\u043A\u043B\u0430\u0434 \u043A\u043E\u0434\u0443",\r
+dt:"\u0414\u043E\u0432\u0456\u0434\u043D\u0438\u043A \u0442\u0435\u0440\u043C\u0456\u043D ",\r
+dd:"\u0414\u043E\u0432\u0456\u0434\u043D\u0438\u043A \u043E\u043F\u0438\u0441 ",\r
+bold_desc:"\u0416\u0438\u0440\u043D\u0438\u0439 (Ctrl+B)",\r
+italic_desc:"\u041A\u0443\u0440\u0441\u0438\u0432 (Ctrl+I)",\r
+underline_desc:"\u041F\u0456\u0434\u043A\u0440\u0435\u0441\u043B\u0435\u043D\u0438\u0439 (Ctrl+U)",\r
+striketrough_desc:"\u0417\u0430\u043A\u0440\u0435\u0441\u043B\u0435\u043D\u0438\u0439",\r
+justifyleft_desc:"\u041F\u043E \u043B\u0456\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+justifycenter_desc:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+justifyright_desc:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+justifyfull_desc:"\u041F\u043E \u0448\u0438\u0440\u0438\u043D\u0456",\r
+bullist_desc:"\u0421\u043F\u0438\u0441\u043E\u043A",\r
+numlist_desc:"\u041D\u0443\u043C\u0435\u0440\u043E\u0432\u0430\u043D\u0438\u0439 \u0441\u043F\u0438\u0441\u043E\u043A",\r
+outdent_desc:"\u0417\u043C\u0435\u043D\u0448\u0442\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043F",\r
+indent_desc:"\u0417\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043F",\r
+undo_desc:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 (Ctrl+Z)",\r
+redo_desc:"\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u0438 (Ctrl+Y)",\r
+link_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",\r
+unlink_desc:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",\r
+image_desc:"\u0414\u043E\u0434\u0430\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",\r
+cleanup_desc:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0437\u0430\u0439\u0432\u044B\u0439 \u043A\u043E\u0434",\r
+code_desc:"\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 HTML \u043A\u043E\u0434",\r
+sub_desc:"\u041D\u0438\u0436\u043D\u0456\u0439 \u0456\u043D\u0434\u0435\u043A\u0441",\r
+sup_desc:"\u0412\u0435\u0440\u0445\u043D\u0456\u0439 \u0456\u043D\u0434\u0435\u043A\u0441",\r
+hr_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u0434\u0456\u043B\u044C\u043D\u0438\u043A",\r
+removeformat_desc:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0443\u0432\u0430\u043D\u043D\u044F",\r
+custom1_desc:"\u0412\u0430\u0448 \u0434\u043E\u0432\u0456\u043B\u044C\u043D\u0438\u0439 \u043E\u043F\u0438\u0441 \u0442\u0443\u0442",\r
+forecolor_desc:"\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u043A\u043E\u043B\u0456\u0440 \u0442\u0435\u043A\u0441\u0442\u0443",\r
+backcolor_desc:"\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u043A\u043E\u043B\u0456\u0440 \u0444\u043E\u043D\u0443",\r
+charmap_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+visualaid_desc:"Toggle guidelines/invisible elements",\r
+anchor_desc:"\u0414\u043E\u0434\u0430\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u044F\u043A\u0456\u0440",\r
+cut_desc:"\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438",\r
+copy_desc:"\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438",\r
+paste_desc:"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438",\r
+image_props_desc:"\u0412\u043B\u0430\u0441\u0442\u0438\u0432\u043E\u0441\u0442\u0456 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",\r
+newdocument_desc:"\u041D\u043E\u0432\u0438\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442",\r
+help_desc:"\u0414\u043E\u043F\u043E\u043C\u043E\u0433\u0430",\r
+blockquote_desc:"\u0426\u0438\u0442\u0430\u0442\u0430",\r
+clipboard_msg:"\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438/\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438/\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0456 \u0432 Mozilla \u0438 Firefox.\n\u0412\u0430\u043C \u0446\u0456\u043A\u0430\u0432\u0430 \u0456\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u044F \u043F\u0440\u043E \u0446\u0435?",\r
+path:"\u0428\u043B\u044F\u0445",\r
+newdocument:"\u0412\u0438 \u043F\u0435\u0432\u043D\u0456, \u0449\u043E \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0432\u0441\u0435 \u0432\u0438\u0434\u0430\u043B\u0438\u0442\u0438?",\r
+toolbar_focus:"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u043F\u0430\u043D\u0435\u043B\u044C \u043A\u043D\u043E\u043F\u043E\u043A - Alt+Q, \u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u0434\u043E \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0443 - Alt-Z, \u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0448\u043B\u044F\u0445\u0443 - Alt-X",\r
+more_colors:"\u0411\u0456\u043B\u044C\u0448\u0435 \u043A\u043E\u043B\u044C\u043E\u0440\u0456\u0432"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('uk.advanced_dlg',{\r
+about_title:"\u041F\u0440\u043E \u043F\u0440\u043E\u0434\u0443\u043A\u0442 TinyMCE",\r
+about_general:"\u041F\u0440\u043E \u043F\u0440\u043E\u0434\u0443\u043A\u0442...",\r
+about_help:"\u0414\u043E\u043F\u043E\u043C\u043E\u0433\u0430",\r
+about_license:"\u041B\u0456\u0446\u0435\u043D\u0437\u0456\u044F",\r
+about_plugins:"\u041F\u043B\u0430\u0433\u0456\u043D\u0438",\r
+about_plugin:"\u041F\u043B\u0430\u0433\u0456\u043D",\r
+about_author:"\u0410\u0432\u0442\u043E\u0440",\r
+about_version:"\u0412\u0435\u0440\u0441\u0456\u044F",\r
+about_loaded:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u0456 \u043F\u043B\u0430\u0433\u0456\u043D\u0438",\r
+anchor_title:"\u0414\u043E\u0434\u0430\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u044F\u043A\u0456\u0440",\r
+anchor_name:"\u041D\u0430\u0437\u0432\u0430 \u044F\u043A\u043E\u0440\u044F",\r
+code_title:"\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 HTML \u043A\u043E\u0434\u0443",\r
+code_wordwrap:"\u041F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0438 \u0441\u043B\u043E\u0432\u0430",\r
+colorpicker_title:"\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u043A\u043E\u043B\u0456\u0440",\r
+colorpicker_picker_tab:"\u041F\u0456\u043F\u0435\u0442\u043A\u0430",\r
+colorpicker_picker_title:"\u041F\u0456\u043F\u0435\u0442\u043A\u0430 \u043A\u043E\u043B\u044C\u043E\u0440\u0443",\r
+colorpicker_palette_tab:"\u041F\u0430\u043B\u0456\u0442\u0440\u0430",\r
+colorpicker_palette_title:"\u041F\u0430\u043B\u0456\u0442\u0440\u0430 \u043A\u043E\u043B\u044C\u043E\u0440\u0456\u0432",\r
+colorpicker_named_tab:"\u0417\u0430 \u043D\u0430\u0437\u0432\u043E\u044E",\r
+colorpicker_named_title:"\u0417\u0430 \u043D\u0430\u0437\u0432\u043E\u044E",\r
+colorpicker_color:"\u041A\u043E\u043B\u0456\u0440:",\r
+colorpicker_name:"\u041D\u0430\u0439\u043C\u0435\u043D\u0443\u0432\u0430\u043D\u043D\u044F:",\r
+charmap_title:"\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u0434\u043E\u0432\u0456\u043B\u044C\u043D\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B",\r
+image_title:"\u0414\u043E\u0434\u0430\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",\r
+image_src:"\u0410\u0434\u0440\u0435\u0441\u0430",\r
+image_alt:"\u041E\u043F\u0438\u0441",\r
+image_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u044C",\r
+image_border:"\u0413\u0440\u0430\u043D\u0438\u0446\u044F",\r
+image_dimensions:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438",\r
+image_vspace:"\u0412\u0435\u0440\u0442. \u0432\u0456\u0434\u0441\u0442\u0443\u043F",\r
+image_hspace:"\u0413\u043E\u0440\u0438\u0437. \u0432\u0456\u0434\u0441\u0442\u0443\u043F",\r
+image_align:"\u0412\u0438\u0440\u0456\u0432\u043D\u044E\u0432\u0430\u043D\u043D\u044F",\r
+image_align_baseline:"\u041F\u043E \u0431\u0430\u0437\u043E\u0432\u0456\u0439 \u043B\u0438\u043D\u0456\u0457",\r
+image_align_top:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u044C\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+image_align_middle:"\u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443",\r
+image_align_bottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u044C\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+image_align_texttop:"\u041F\u043E \u0432\u0435\u0440\u0445\u043D\u044C\u043E\u043C\u0443 \u043A\u0440\u0430\u044E \u0442\u0435\u043A\u0441\u0442\u0443",\r
+image_align_textbottom:"\u041F\u043E \u043D\u0438\u0436\u043D\u044C\u043E\u043C\u0443 \u043A\u0440\u0430\u044E \u0442\u0435\u043A\u0441\u0442\u0443",\r
+image_align_left:"\u041F\u043E \u043B\u0456\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+image_align_right:"\u041F\u043E \u043F\u0440\u0430\u0432\u043E\u043C\u0443 \u043A\u0440\u0430\u044E",\r
+link_title:"\u0414\u043E\u0434\u0430\u0442\u0438/\u0437\u043C\u0456\u043D\u0438\u0442\u0438 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",\r
+link_url:"\u0410\u0434\u0440\u0435\u0441\u0430 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F",\r
+link_target:"\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0432...",\r
+link_target_same:"\u0446\u044C\u043E\u043C\u0443 \u0436\u0435 \u0432\u0456\u043A\u043D\u0456",\r
+link_target_blank:"\u043D\u043E\u0432\u043E\u043C\u0443 \u0432\u0456\u043A\u043D\u0456",\r
+link_titlefield:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A",\r
+link_is_email:"\u0412\u0432\u0435\u0434\u0435\u043D\u0438\u0439 URL \u0441\u0445\u043E\u0436\u0438\u0439 \u043D\u0430 email \u0430\u0434\u0440\u0435\u0441\u0443, \u0432\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043E\u0434\u0430\u0442\u0438 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u0438\u0439 \u043F\u0440\u0435\u0444\u0456\u043A\u0441 mailto:?",\r
+link_is_external:"\u0412\u0432\u0435\u0434\u0435\u043D\u0438\u0439 URL \u0441\u0445\u043E\u0436\u0438\u0439 \u043D\u0430 \u0437\u043E\u0432\u043D\u0456\u0448\u043D\u0454 \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u043D\u044F, \u0432\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043E\u0434\u0430\u0442\u0438 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u0438\u0439 \u043F\u0440\u0435\u0444\u0456\u043A\u0441 http://?",\r
+link_list:"\u0421\u043F\u0438\u0441\u043E\u043A \u043F\u043E\u0441\u0438\u043B\u0430\u043D\u044C"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('vi.advanced',{\r
+style_select:"Ki\u1EC3u",\r
+font_size:"C\u1EE1 ch\u1EEF",\r
+fontdefault:"Ph\u00F4ng ch\u1EEF",\r
+block:"\u0110\u1ECBnh d\u1EA1ng",\r
+paragraph:"\u0110o\u1EA1n v\u0103n b\u1EA3n",\r
+div:"Div",\r
+address:"\u0110\u1ECBa ch\u1EC9",\r
+pre:"Kh\u00F4ng \u0111\u1ECBnh d\u1EA1ng",\r
+h1:"Ti\u00EAu \u0111\u1EC1 1",\r
+h2:"Ti\u00EAu \u0111\u1EC1 2",\r
+h3:"Ti\u00EAu \u0111\u1EC1 3",\r
+h4:"Ti\u00EAu \u0111\u1EC1 4",\r
+h5:"Ti\u00EAu \u0111\u1EC1 5",\r
+h6:"Ti\u00EAu \u0111\u1EC1 6",\r
+blockquote:"\u0110\u1ECBnh d\u1EA1ng kh\u1ED1i",\r
+code:"M\u00E3",\r
+samp:"M\u00E3 v\u00ED d\u1EE5",\r
+dt:"T\u00EAn \u0111\u1ECBnh ngh\u0129a ",\r
+dd:"M\u00F4 t\u1EA3 \u0111\u1ECBnh ngh\u0129a",\r
+bold_desc:"\u0110\u1EADm (Ctrl+B)",\r
+italic_desc:"Nghi\u00EAng (Ctrl+I)",\r
+underline_desc:"G\u1EA1ch ch\u00E2n (Ctrl+U)",\r
+striketrough_desc:"G\u1EA1ch x\u00F3a",\r
+justifyleft_desc:"C\u0103n tr\u00E1i",\r
+justifycenter_desc:"C\u0103n gi\u1EEFa",\r
+justifyright_desc:"C\u0103n ph\u1EA3i",\r
+justifyfull_desc:"C\u0103n \u0111\u1EC1u",\r
+bullist_desc:"Danh s\u00E1ch",\r
+numlist_desc:"Danh s\u00E1ch th\u1EE9 t\u1EF1",\r
+outdent_desc:"Gi\u1EA3m l\u1EC1 tr\u00E1i",\r
+indent_desc:"T\u0103ng l\u1EC1 tr\u00E1i",\r
+undo_desc:"Kh\u00F4i ph\u1EE5c (Ctrl+Z)",\r
+redo_desc:"L\u1EB7p l\u1EA1i (Ctrl+Y)",\r
+link_desc:"Ch\u00E8n/thay \u0111\u1ED5i li\u00EAn k\u1EBFt",\r
+unlink_desc:"X\u00F3a li\u00EAn k\u1EBFt",\r
+image_desc:"Ch\u00E8n/s\u1EEDa h\u00ECnh \u1EA3nh",\r
+cleanup_desc:"D\u1ECDn d\u1EB9p m\u00E3 l\u1ED9n x\u1ED9n",\r
+code_desc:"S\u1EEDa m\u00E3 ngu\u1ED3n HTML",\r
+sub_desc:"Subscript",\r
+sup_desc:"Superscript",\r
+hr_desc:"Ch\u00E8n thanh ngang",\r
+removeformat_desc:"X\u00F3a \u0111\u1ECBnh d\u1EA1ng",\r
+custom1_desc:"M\u00F4 t\u1EA3 c\u1EE7a b\u1EA1n \u1EDF \u0111\u00E2y",\r
+forecolor_desc:"Ch\u1ECDn m\u00E0u ch\u1EEF",\r
+backcolor_desc:"Ch\u1ECDn m\u00E0u n\u1EC1n",\r
+charmap_desc:"Ch\u00E8n k\u00FD t\u1EF1 \u0111\u1EB7c bi\u1EC7t",\r
+visualaid_desc:"B\u1EADt/t\u1EAFt c\u00E1c ph\u1EA7n t\u1EED \u1EA9n",\r
+anchor_desc:"Ch\u00E8n/s\u1EEDa m\u1ED1c (anchor)",\r
+cut_desc:"C\u1EAFt",\r
+copy_desc:"Sao ch\u00E9p",\r
+paste_desc:"D\u00E1n",\r
+image_props_desc:"Thu\u1ED9c t\u00EDnh h\u00ECnh \u1EA3nh",\r
+newdocument_desc:"V\u0103n b\u1EA3n m\u1EDBi",\r
+help_desc:"Gi\u00FAp \u0111\u1EE1",\r
+blockquote_desc:"\u0110\u1ECBnh d\u1EA1ng kh\u1ED1i",\r
+clipboard_msg:"Sao ch\u00E9p/C\u1EAFt/D\u00E1n kh\u00F4ng ho\u1EA1t \u0111\u1ED9ng tr\u00EAn Mozilla v\u00E0 Firefox.\nB\u1EA1n mu\u1ED1n xem th\u00EAm th\u00F4ng tin v\u1EC1 v\u1EA5n \u0111\u1EC1 n\u00E0y?",\r
+path:"D\u01B0\u1EDDng d\u1EABn",\r
+newdocument:"B\u1EA1n c\u00F3 ch\u1EAFc ch\u1EAFn mu\u1ED1n x\u00F3a t\u1EA5t c\u1EA3 n\u1ED9i dung \u0111\u00E3 so\u1EA1n?",\r
+toolbar_focus:"Nh\u1EA3y \u0111\u1EBFn thanh c\u00F4ng c\u1EE5 - Alt+Q, Nh\u1EA3y \u0111\u1EBFn \u00F4 so\u1EA1n th\u1EA3o - Alt-Z, Nh\u1EA3y \u0111\u1EBFn \u0111\u01B0\u1EDDng d\u1EABn - Alt-X",\r
+more_colors:"Nhi\u1EC1u m\u00E0u h\u01A1n"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('vi.advanced_dlg',{\r
+about_title:"Gi\u1EDBi thi\u1EC7u TinyMCE",\r
+about_general:"Gi\u1EDBi thi\u1EC7u",\r
+about_help:"Gi\u00FAp \u0111\u1EE1",\r
+about_license:"Gi\u1EA5y ph\u00E9p",\r
+about_plugins:"C\u00E1c ph\u1EA7n m\u1EDF r\u1ED9ng",\r
+about_plugin:"Ph\u1EA7n m\u1EDF r\u1ED9ng",\r
+about_author:"T\u00E1c gi\u1EA3",\r
+about_version:"Phi\u00EAn b\u1EA3n",\r
+about_loaded:"C\u00E1c ph\u1EA7n m\u1EDF r\u1ED9ng \u0111\u00E3 n\u1EA1p",\r
+anchor_title:"Ch\u00E8n/s\u1EEDa m\u1ED1c (anchor)",\r
+anchor_name:"T\u00EAn m\u1ED1c (anchor)",\r
+code_title:"So\u1EA1n M\u00E3 HTML",\r
+code_wordwrap:"Xu\u1ED1ng d\u00F2ng",\r
+colorpicker_title:"Ch\u1ECDn m\u1ED9t m\u00E0u",\r
+colorpicker_picker_tab:"B\u1ED9 ch\u1ECDn",\r
+colorpicker_picker_title:"B\u1ED9 ch\u1ECDn m\u00E0u",\r
+colorpicker_palette_tab:"B\u1EA3ng",\r
+colorpicker_palette_title:"B\u1EA3ng m\u00E0u",\r
+colorpicker_named_tab:"\u0110\u00E3 c\u00F3 t\u00EAn",\r
+colorpicker_named_title:"M\u00E0u \u0111\u00E3 c\u00F3 t\u00EAn",\r
+colorpicker_color:"M\u00E0u:",\r
+colorpicker_name:"T\u00EAn:",\r
+charmap_title:"Ch\u1ECDn k\u00FD t\u1EF1 \u0111\u1EB7c bi\u1EC7t",\r
+image_title:"Ch\u00E8n/s\u1EEDa h\u00ECnh \u1EA3nh",\r
+image_src:"D\u01B0\u1EDDng d\u1EABn \u0111\u1EBFn h\u00ECnh \u1EA3nh",\r
+image_alt:"M\u00F4 t\u1EA3 h\u00ECnh \u1EA3nh",\r
+image_list:"Danh s\u00E1ch h\u00ECnh \u1EA3nh",\r
+image_border:"Vi\u1EC1n",\r
+image_dimensions:"K\u00EDch th\u01B0\u1EDBc",\r
+image_vspace:"Kho\u1EA3ng c\u00E1ch d\u1ECDc",\r
+image_hspace:"Kho\u1EA3ng c\u00E1ch ngang",\r
+image_align:"C\u0103n l\u1EC1",\r
+image_align_baseline:"\u0110\u01B0\u1EDDng c\u01A1 b\u1EA3n",\r
+image_align_top:"Tr\u00EAn",\r
+image_align_middle:"Gi\u1EEFa",\r
+image_align_bottom:"\u0110\u00E1y",\r
+image_align_texttop:"Tr\u00EAn c\u1EE7a ch\u1EEF",\r
+image_align_textbottom:"\u0110\u00E1y c\u1EE7a ch\u1EEF",\r
+image_align_left:"Tr\u00E1i",\r
+image_align_right:"Ph\u1EA3i",\r
+link_title:"Ch\u00E8n/s\u1EEDa li\u00EAn k\u1EBFt",\r
+link_url:"Li\u00EAn k\u1EBFt",\r
+link_target:"\u0110\u00EDch",\r
+link_target_same:"M\u1EDF li\u00EAn k\u1EBFt trong c\u00F9ng c\u1EEDa s\u1ED5",\r
+link_target_blank:"M\u1EDF li\u00EAn k\u1EBFt trong c\u1EEDa s\u1ED5 m\u1EDBi",\r
+link_titlefield:"Ti\u00EAu \u0111\u1EC1",\r
+link_is_email:"Li\u00EAn k\u1EBFt b\u1EA1n nh\u1EADp c\u00F3 v\u1EBB nh\u01B0 l\u00E0 m\u1ED9t \u0111\u1ECBa ch\u1EC9 email, b\u1EA1n c\u00F3 mu\u1ED1n th\u00EAm ph\u1EA7n mailto: v\u00E0o tr\u01B0\u1EDBc li\u00EAn k\u1EBFt?",\r
+link_is_external:"Li\u00EAn k\u1EBFt b\u1EA1n nh\u1EADp c\u00F3 v\u1EBB nh\u01B0 l\u00E0 m\u1ED9t trang web ngo\u00E0i, b\u1EA1n c\u00F3 mu\u1ED1n th\u00EAm ph\u1EA7n http:// v\u00E0o tr\u01B0\u1EDBc li\u00EAn k\u1EBFt?",\r
+link_list:"Danh s\u00E1ch li\u00EAn k\u1EBFt"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('zh.advanced',{\r
+style_select:"\u6837\u5F0F",\r
+font_size:"\u5B57\u4F53\u5927\u5C0F",\r
+fontdefault:"\u5B57\u578B",\r
+block:"\u683C\u5F0F",\r
+paragraph:"\u6BB5\u843D",\r
+div:"Div",\r
+address:"\u5730\u5740",\r
+pre:"\u539F\u59CB\u683C\u5F0F",\r
+h1:"\u6807\u98981",\r
+h2:"\u6807\u98982",\r
+h3:"\u6807\u98983",\r
+h4:"\u6807\u98984",\r
+h5:"\u6807\u98985",\r
+h6:"\u6807\u98986",\r
+blockquote:"\u5F15\u7528",\r
+code:"\u4EE3\u7801",\r
+samp:"\u7A0B\u5E8F\u8303\u4F8B",\r
+dt:"\u540D\u8BCD\u5B9A\u4E49",\r
+dd:"\u540D\u8BCD\u89E3\u91CA",\r
+bold_desc:"\u7C97\u4F53(Ctrl+B)",\r
+italic_desc:"\u659C\u4F53(Ctrl+I)",\r
+underline_desc:"\u5E95\u7EBF(Ctrl+U)",\r
+striketrough_desc:"\u5220\u9664\u7EBF",\r
+justifyleft_desc:"\u9760\u5DE6\u5BF9\u9F50",\r
+justifycenter_desc:"\u5C45\u4E2D",\r
+justifyright_desc:"\u9760\u53F3\u5BF9\u9F50",\r
+justifyfull_desc:"\u5DE6\u53F3\u5BF9\u9F50",\r
+bullist_desc:"\u9879\u76EE\u65B9\u5F0F\u5217\u8868",\r
+numlist_desc:"\u7F16\u53F7\u65B9\u5F0F\u5217\u8868",\r
+outdent_desc:"\u51CF\u5C11\u7F29\u8FDB",\r
+indent_desc:"\u589E\u52A0\u7F29\u8FDB",\r
+undo_desc:"\u8FD8\u539F(Ctrl+Z)",\r
+redo_desc:"\u91CD\u505A(Ctrl+Y)",\r
+link_desc:"\u63D2\u5165/\u7F16\u8F91\u94FE\u63A5",\r
+unlink_desc:"\u53D6\u6D88\u94FE\u63A5",\r
+image_desc:"\u63D2\u5165/\u7F16\u8F91\u56FE\u7247",\r
+cleanup_desc:"\u6E05\u9664\u5197\u7801",\r
+code_desc:"\u7F16\u8F91HTML\u539F\u59CB\u6587\u4EF6",\r
+sub_desc:"\u4E0B\u6807",\r
+sup_desc:"\u4E0A\u6807",\r
+hr_desc:"\u63D2\u5165\u6C34\u5E73\u5206\u5272\u7EBF",\r
+removeformat_desc:"\u6E05\u9664\u6837\u5F0F",\r
+custom1_desc:"\u5728\u6B64\u8F93\u5165\u81EA\u8BA2\u63CF\u8FF0",\r
+forecolor_desc:"\u9009\u62E9\u6587\u5B57\u989C\u8272",\r
+backcolor_desc:"\u9009\u62E9\u80CC\u666F\u989C\u8272",\r
+charmap_desc:"\u63D2\u5165\u81EA\u5B9A\u4E49\u7B26\u53F7",\r
+visualaid_desc:"\u5207\u6362\u53EF\u89C1/\u9690\u85CF\u5143\u7D20",\r
+anchor_desc:"\u63D2\u5165/\u7F16\u8F91\u951A\u70B9",\r
+cut_desc:"\u526A\u5207(Ctrl+X)",\r
+copy_desc:"\u590D\u5236(Ctrl+C)",\r
+paste_desc:"\u7C98\u8D34(Ctrl+V)",\r
+image_props_desc:"\u56FE\u7247\u5C5E\u6027",\r
+newdocument_desc:"\u65B0\u6587\u4EF6",\r
+help_desc:"\u8BF4\u660E",\r
+blockquote_desc:"\u5F15\u7528",\r
+clipboard_msg:"\u590D\u5236/\u526A\u4E0B/\u8D34\u4E0A\u529F\u80FD\u5728Mozilla\u548CFirefox\u4E2D\u65E0\u6CD5\u4F7F\u7528",\r
+path:"\u8DEF\u5F84",\r
+newdocument:"\u4F60\u786E\u5B9A\u8981\u6E05\u9664\u6240\u6709\u5185\u5BB9\u5417\uFF1F ",\r
+toolbar_focus:"\u79FB\u81F3\u5DE5\u5177\u680F- Alt+Q,\u79FB\u81F3\u7F16\u8F91\u5668- Alt-Z,\u79FB\u81F3\u5143\u7D20\u8DEF\u5F84- Alt-X",\r
+more_colors:"\u66F4\u591A\u989C\u8272"\r
+});
\ No newline at end of file
--- /dev/null
+tinyMCE.addI18n('zh.advanced_dlg',{\r
+about_title:"\u5173\u4E8ETinyMCE",\r
+about_general:"\u5173\u4E8E",\r
+about_help:"\u8BF4\u660E",\r
+about_license:"\u6388\u6743",\r
+about_plugins:"\u5916\u6302\u7EC4\u4EF6",\r
+about_plugin:"\u5916\u6302\u7EC4\u4EF6",\r
+about_author:"\u4F5C\u8005",\r
+about_version:"\u7248\u672C",\r
+about_loaded:"\u5DF2\u52A0\u8F7D\u7684\u5916\u6302\u7EC4\u4EF6",\r
+anchor_title:"\u63D2\u5165/\u7F16\u8F91\u951A\u70B9",\r
+anchor_name:"\u951A\u70B9\u540D\u79F0",\r
+code_title:"HTML\u539F\u59CB\u7801\u7F16\u8F91\u5668",\r
+code_wordwrap:"\u81EA\u52A8\u6362\u884C",\r
+colorpicker_title:"\u9009\u62E9\u989C\u8272",\r
+colorpicker_picker_tab:"\u9009\u8272\u5668",\r
+colorpicker_picker_title:"\u9009\u8272\u5668",\r
+colorpicker_palette_tab:"\u8272\u76D8",\r
+colorpicker_palette_title:"\u8272\u76D8\u989C\u8272",\r
+colorpicker_named_tab:"\u8272\u540D",\r
+colorpicker_named_title:"\u989C\u8272\u540D\u79F0",\r
+colorpicker_color:"\u989C\u8272\uFF1A",\r
+colorpicker_name:"\u540D\u79F0\uFF1A",\r
+charmap_title:"\u9009\u62E9\u81EA\u5B9A\u4E49\u5B57\u7B26\u7B26\u53F7",\r
+image_title:"\u63D2\u5165/\u7F16\u8F91\u56FE\u6863",\r
+image_src:"\u56FE\u6863URL",\r
+image_alt:"\u56FE\u6863\u8BF4\u660E",\r
+image_list:"\u56FE\u6587\u4EF6\u6E05\u5355",\r
+image_border:"\u8FB9\u6846",\r
+image_dimensions:"\u5C3A\u5BF8",\r
+image_vspace:"\u5782\u76F4\u95F4\u8DDD",\r
+image_hspace:"\u6C34\u5E73\u95F4\u8DDD",\r
+image_align:"\u5BF9\u9F50\u65B9\u5F0F",\r
+image_align_baseline:"\u57FA\u7EBF",\r
+image_align_top:"\u7F6E\u9876\u5BF9\u9F50",\r
+image_align_middle:"\u7F6E\u4E2D",\r
+image_align_bottom:"\u7F6E\u5E95\u5BF9\u9F50",\r
+image_align_texttop:"\u6587\u5B57\u4E0A\u65B9",\r
+image_align_textbottom:"\u6587\u5B57\u4E0B\u65B9",\r
+image_align_left:"\u9760\u5DE6\u5BF9\u9F50",\r
+image_align_right:"\u9760\u53F3\u5BF9\u9F50",\r
+link_title:"\u63D2\u5165/\u7F16\u8F91\u94FE\u63A5",\r
+link_url:"\u94FE\u63A5URL",\r
+link_target:"\u76EE\u6807",\r
+link_target_same:"\u76EE\u524D\u7A97\u53E3\u5F00\u542F\u94FE\u63A5",\r
+link_target_blank:"\u65B0\u7A97\u53E3\u5F00\u542F\u94FE\u63A5",\r
+link_titlefield:"\u6807\u9898",\r
+link_is_email:"\u4F60\u8F93\u5165\u7684URL\u4F3C\u4E4E\u662F\u4E00\u4E2Aemail\u5730\u5740\uFF0C\u662F\u5426\u8981\u52A0\u4E0A\u524D\u7F6E\u8BCDmailto: ?",\r
+link_is_external:"\u4F60\u8F93\u5165\u7684URL\u4F3C\u4E4E\u662F\u4E00\u4E2A\u5916\u90E8\u94FE\u63A5\uFF0C\u662F\u5426\u8981\u52A0\u4E0A\u524D\u7F6E\u8BCDhttp:// ?",\r
+link_list:"\u94FE\u63A5\u6E05\u5355"\r
+});
\ No newline at end of file
a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(img/items.gif) no-repeat bottom left;}\r
img.mceItemAnchor {width:12px; height:12px; background:url(img/items.gif) no-repeat;}\r
img {border:0;}\r
+table {cursor:default}\r
+table td, table th {cursor:text}\r
+ins {border-bottom:1px solid green; text-decoration: none; color:green}\r
+del {color:red; text-decoration:line-through}\r
+cite {border-bottom:1px dashed blue}\r
+acronym {border-bottom:1px dotted #CCC; cursor:help}\r
+abbr, html\:abbr {border-bottom:1px dashed #CCC; cursor:help}\r
\r
/* IE */\r
* html body {\r
.defaultSkin td.mceRight table {margin:0 0 0 auto;}\r
\r
/* Button */\r
-.defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px;}\r
+.defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px}\r
.defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}\r
.defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0}\r
.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}\r
+.defaultSkin .mceButtonLabeled {width:auto}\r
+.defaultSkin .mceButtonLabeled span.mceIcon {float:left}\r
+.defaultSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}\r
+.defaultSkin .mceButtonDisabled .mceButtonLabel {color:#888}\r
\r
/* Separator */\r
.defaultSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:2px 2px 0 4px}\r
.defaultSkin span.mce_blockquote {background-position:-220px 0}\r
.defaultSkin .mce_forecolor span.mceAction {background-position:-720px 0}\r
.defaultSkin .mce_backcolor span.mceAction {background-position:-760px 0}\r
-.defaultSkin .mce_forecolorpicker {background-position:-720px 0}\r
-.defaultSkin .mce_backcolorpicker {background-position:-760px 0}\r
+.defaultSkin span.mce_forecolorpicker {background-position:-720px 0}\r
+.defaultSkin span.mce_backcolorpicker {background-position:-760px 0}\r
\r
/* Plugins */\r
.defaultSkin span.mce_advhr {background-position:-0px -20px}\r
a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(../default/img/items.gif) no-repeat bottom left;}\r
img.mceItemAnchor {width:12px; height:12px; background:url(../default/img/items.gif) no-repeat;}\r
img {border:0;}\r
+table {cursor:default}\r
+table td, table th {cursor:text}\r
+ins {border-bottom:1px solid green; text-decoration: none; color:green}\r
+del {color:red; text-decoration:line-through}\r
+cite {border-bottom:1px dashed blue}\r
+acronym {border-bottom:1px dotted #CCC; cursor:help}\r
+abbr, html\:abbr {border-bottom:1px dashed #CCC; cursor:help}\r
\r
/* IE */\r
* html body {\r
.o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}\r
.o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px}\r
.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}\r
+.o2k7Skin .mceButtonLabeled {width:auto}\r
+.o2k7Skin .mceButtonLabeled span.mceIcon {float:left}\r
+.o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}\r
+.o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888}\r
\r
/* Separator */\r
.o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}\r
.o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}\r
.o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}\r
.o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A}\r
-.o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a}\r
-.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px}\r
+.o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden}\r
+.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden}\r
\r
/* Menu */\r
.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD}\r
.o2k7Skin span.mce_blockquote {background-position:-220px 0}\r
.o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0}\r
.o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0}\r
-.o2k7Skin .mce_forecolorpicker {background-position:-720px 0}\r
-.o2k7Skin .mce_backcolorpicker {background-position:-760px 0}\r
+.o2k7Skin span.mce_forecolorpicker {background-position:-720px 0}\r
+.o2k7Skin span.mce_backcolorpicker {background-position:-760px 0}\r
\r
/* Plugins */\r
.o2k7Skin span.mce_advhr {background-position:-0px -20px}\r
-var tinymce={majorVersion:'3',minorVersion:'0.6.2',releaseDate:'2008-04-07',_init:function(){var t=this,ua=navigator.userAgent,i,nl,n,base;t.isOpera=window.opera&&opera.buildNumber;t.isWebKit=/WebKit/.test(ua);t.isOldWebKit=t.isWebKit&&!window.getSelection().getRangeAt;t.isIE=!t.isWebKit&&!t.isOpera&&(/MSIE/gi).test(ua)&&(/Explorer/gi).test(navigator.appName);t.isIE6=t.isIE&&/MSIE [56]/.test(ua);t.isGecko=!t.isWebKit&&/Gecko/.test(ua);t.isMac=ua.indexOf('Mac')!=-1;if(window.tinyMCEPreInit){t.suffix=tinyMCEPreInit.suffix;t.baseURL=tinyMCEPreInit.base;return;}t.suffix='';nl=document.getElementsByTagName('base');for(i=0;i<nl.length;i++){if(nl[i].href)base=nl[i].href;}function getBase(n){if(n.src&&/tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)){if(/_(src|dev)\.js/g.test(n.src))t.suffix='_src';t.baseURL=n.src.substring(0,n.src.lastIndexOf('/'));if(base&&t.baseURL.indexOf('://')==-1)t.baseURL=base+t.baseURL;return t.baseURL;}return null;};nl=document.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}n=document.getElementsByTagName('head')[0];if(n){nl=n.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}}return;},is:function(o,t){var n=typeof(o);if(!t)return n!='undefined';if(t=='array'&&(o instanceof Array))return true;return n==t;},each:function(o,cb,s){var n,l;if(!o)return 0;s=s||o;if(typeof(o.length)!='undefined'){for(n=0,l=o.length;n<l;n++){if(cb.call(s,o[n],n,o)===false)return 0;}}else{for(n in o){if(o.hasOwnProperty(n)){if(cb.call(s,o[n],n,o)===false)return 0;}}}return 1;},map:function(a,f){var o=[];tinymce.each(a,function(v){o.push(f(v));});return o;},grep:function(a,f){var o=[];tinymce.each(a,function(v){if(!f||f(v))o.push(v);});return o;},inArray:function(a,v){var i,l;if(a){for(i=0,l=a.length;i<l;i++){if(a[i]===v)return i;}}return-1;},extend:function(o,e){var i,a=arguments;for(i=1;i<a.length;i++){e=a[i];tinymce.each(e,function(v,n){if(typeof(v)!=='undefined')o[n]=v;});}return o;},trim:function(s){return(s?''+s:'').replace(/^\s*|\s*$/g,'');},create:function(s,p){var t=this,sp,ns,cn,scn,c,de=0;s=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);cn=s[3].match(/(^|\.)(\w+)$/i)[2];ns=t.createNS(s[3].replace(/\.\w+$/,''));if(ns[cn])return;if(s[2]=='static'){ns[cn]=p;if(this.onCreate)this.onCreate(s[2],s[3],ns[cn]);return;}if(!p[cn]){p[cn]=function(){};de=1;}ns[cn]=p[cn];t.extend(ns[cn].prototype,p);if(s[5]){sp=t.resolve(s[5]).prototype;scn=s[5].match(/\.(\w+)$/i)[1];c=ns[cn];if(de){ns[cn]=function(){return sp[scn].apply(this,arguments);};}else{ns[cn]=function(){this.parent=sp[scn];return c.apply(this,arguments);};}ns[cn].prototype[cn]=ns[cn];t.each(sp,function(f,n){ns[cn].prototype[n]=sp[n];});t.each(p,function(f,n){if(sp[n]){ns[cn].prototype[n]=function(){this.parent=sp[n];return f.apply(this,arguments);};}else{if(n!=cn)ns[cn].prototype[n]=f;}});}t.each(p['static'],function(f,n){ns[cn][n]=f;});if(this.onCreate)this.onCreate(s[2],s[3],ns[cn].prototype);},walk:function(o,f,n,s){s=s||this;if(o){if(n)o=o[n];tinymce.each(o,function(o,i){if(f.call(s,o,i,n)===false)return false;tinymce.walk(o,f,n,s);});}},createNS:function(n,o){var i,v;o=o||window;n=n.split('.');for(i=0;i<n.length;i++){v=n[i];if(!o[v])o[v]={};o=o[v];}return o;},resolve:function(n,o){var i,l;o=o||window;n=n.split('.');for(i=0,l=n.length;i<l;i++){o=o[n[i]];if(!o)break;}return o;},addUnload:function(f,s){var t=this,w=window,unload;f={func:f,scope:s||this};if(!t.unloads){unload=function(){var li=t.unloads,o,n;for(n in li){o=li[n];if(o&&o.func)o.func.call(o.scope,1);}if(w.detachEvent)w.detachEvent('onunload',unload);else if(w.removeEventListener)w.removeEventListener('unload',unload,false);o=li=w=unload=null;if(window.CollectGarbage)window.CollectGarbage();};if(w.attachEvent)w.attachEvent('onunload',unload);else if(w.addEventListener)w.addEventListener('unload',unload,false);t.unloads=[f];}else t.unloads.push(f);return f;},removeUnload:function(f){var u=this.unloads,r=null;tinymce.each(u,function(o,i){if(o&&o.func==f){u.splice(i,1);r=f;return false;}});return r;},explode:function(s,d){return tinymce.map(s.split(d||','),tinymce.trim);}};window.tinymce=tinymce;tinymce._init();tinymce.create('tinymce.util.Dispatcher',{scope:null,listeners:null,Dispatcher:function(s){this.scope=s||this;this.listeners=[];},add:function(cb,s){this.listeners.push({cb:cb,scope:s||this.scope});return cb;},addToTop:function(cb,s){this.listeners.unshift({cb:cb,scope:s||this.scope});return cb;},remove:function(cb){var l=this.listeners,o=null;tinymce.each(l,function(c,i){if(cb==c.cb){o=cb;l.splice(i,1);return false;}});return o;},dispatch:function(){var s,a=arguments,i,li=this.listeners,c;for(i=0;i<li.length;i++){c=li[i];s=c.cb.apply(c.scope,a);if(s===false)break;}return s;}});(function(){var each=tinymce.each;tinymce.create('tinymce.util.URI',{URI:function(u,s){var t=this,o,a,b;s=t.settings=s||{};if(/^(mailto|news|javascript|about):/i.test(u)||/^\s*#/.test(u)){t.source=u;return;}if(u.indexOf('/')===0&&u.indexOf('//')!==0)u=(s.base_uri?s.base_uri.protocol||'http':'http')+'://mce_host'+u;if(u.indexOf('://')===-1&&u.indexOf('//')!==0)u=(s.base_uri.protocol||'http')+'://mce_host'+t.toAbsPath(s.base_uri.path,u);u=u.replace(/@@/g,'(mce_at)');u=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(u);each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(v,i){var s=u[i];if(s)s=s.replace(/\(mce_at\)/g,'@@');t[v]=s;});if(b=s.base_uri){if(!t.protocol)t.protocol=b.protocol;if(!t.userInfo)t.userInfo=b.userInfo;if(!t.port&&t.host=='mce_host')t.port=b.port;if(!t.host||t.host=='mce_host')t.host=b.host;t.source='';}},setPath:function(p){var t=this;p=/^(.*?)\/?(\w+)?$/.exec(p);t.path=p[0];t.directory=p[1];t.file=p[2];t.source='';t.getURI();},toRelative:function(u){var t=this,o;u=new tinymce.util.URI(u,{base_uri:t});if((u.host!='mce_host'&&t.host!=u.host&&u.host)||t.port!=u.port||t.protocol!=u.protocol)return u.getURI();o=t.toRelPath(t.path,u.path);if(u.query)o+='?'+u.query;if(u.anchor)o+='#'+u.anchor;return o;},toAbsolute:function(u,nh){var u=new tinymce.util.URI(u,{base_uri:this});return u.getURI(this.host==u.host?nh:0);},toRelPath:function(base,path){var items,bp=0,out='',i;base=base.substring(0,base.lastIndexOf('/'));base=base.split('/');items=path.split('/');if(base.length>=items.length){for(i=0;i<base.length;i++){if(i>=items.length||base[i]!=items[i]){bp=i+1;break;}}}if(base.length<items.length){for(i=0;i<items.length;i++){if(i>=base.length||base[i]!=items[i]){bp=i+1;break;}}}if(bp==1)return path;for(i=0;i<base.length-(bp-1);i++)out+="../";for(i=bp-1;i<items.length;i++){if(i!=bp-1)out+="/"+items[i];else out+=items[i];}return out;},toAbsPath:function(base,path){var i,nb=0,o=[];base=base.split('/');path=path.split('/');each(base,function(k){if(k)o.push(k);});base=o;for(i=path.length-1,o=[];i>=0;i--){if(path[i].length==0||path[i]==".")continue;if(path[i]=='..'){nb++;continue;}if(nb>0){nb--;continue;}o.push(path[i]);}i=base.length-nb;if(i<=0)return'/'+o.reverse().join('/');return'/'+base.slice(0,i).join('/')+'/'+o.reverse().join('/');},getURI:function(nh){var s,t=this;if(!t.source||nh){s='';if(!nh){if(t.protocol)s+=t.protocol+'://';if(t.userInfo)s+=t.userInfo+'@';if(t.host)s+=t.host;if(t.port)s+=':'+t.port;}if(t.path)s+=t.path;if(t.query)s+='?'+t.query;if(t.anchor)s+='#'+t.anchor;t.source=s;}return t.source;}});})();(function(){var each=tinymce.each;tinymce.create('static tinymce.util.Cookie',{getHash:function(n){var v=this.get(n),h;if(v){each(v.split('&'),function(v){v=v.split('=');h=h||{};h[unescape(v[0])]=unescape(v[1]);});}return h;},setHash:function(n,v,e,p,d,s){var o='';each(v,function(v,k){o+=(!o?'':'&')+escape(k)+'='+escape(v);});this.set(n,o,e,p,d,s);},get:function(n){var c=document.cookie,e,p=n+"=",b;if(!c)return;b=c.indexOf("; "+p);if(b==-1){b=c.indexOf(p);if(b!=0)return null;}else b+=2;e=c.indexOf(";",b);if(e==-1)e=c.length;return unescape(c.substring(b+p.length,e));},set:function(n,v,e,p,d,s){document.cookie=n+"="+escape(v)+((e)?"; expires="+e.toGMTString():"")+((p)?"; path="+escape(p):"")+((d)?"; domain="+d:"")+((s)?"; secure":"");},remove:function(n,p){var d=new Date();d.setTime(d.getTime()-1000);this.set(n,'',d,p,d);}});})();tinymce.create('static tinymce.util.JSON',{serialize:function(o){var i,v,s=tinymce.util.JSON.serialize,t;if(o==null)return'null';t=typeof o;if(t=='string'){v='\bb\tt\nn\ff\rr\""\'\'\\\\';return'"'+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'])/g,function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a;})+'"';}if(t=='object'){if(o instanceof Array){for(i=0,v='[';i<o.length;i++)v+=(i>0?',':'')+s(o[i]);return v+']';}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}';}return''+o;},parse:function(s){try{return eval('('+s+')');}catch(ex){}}});tinymce.create('static tinymce.util.XHR',{send:function(o){var x,t,w=window,c=0;o.scope=o.scope||this;o.success_scope=o.success_scope||o.scope;o.error_scope=o.error_scope||o.scope;o.async=o.async===false?false:true;o.data=o.data||'';function get(s){x=0;try{x=new ActiveXObject(s);}catch(ex){}return x;};x=w.XMLHttpRequest?new XMLHttpRequest():get('Microsoft.XMLHTTP')||get('Msxml2.XMLHTTP');if(x){if(x.overrideMimeType)x.overrideMimeType(o.content_type);x.open(o.type||(o.data?'POST':'GET'),o.url,o.async);if(o.content_type)x.setRequestHeader('Content-Type',o.content_type);x.send(o.data);t=w.setInterval(function(){if(x.readyState==4||c++>10000){w.clearInterval(t);if(o.success&&c<10000&&x.status==200)o.success.call(o.success_scope,''+x.responseText,x,o);else if(o.error)o.error.call(o.error_scope,c>10000?'TIMED_OUT':'GENERAL',x,o);x=null;}},10);}}});(function(){var extend=tinymce.extend,JSON=tinymce.util.JSON,XHR=tinymce.util.XHR;tinymce.create('tinymce.util.JSONRequest',{JSONRequest:function(s){this.settings=extend({},s);this.count=0;},send:function(o){var ecb=o.error,scb=o.success;o=extend(this.settings,o);o.success=function(c,x){c=JSON.parse(c);if(typeof(c)=='undefined'){c={error:'JSON Parse error.'};}if(c.error)ecb.call(o.error_scope||o.scope,c.error,x);else scb.call(o.success_scope||o.scope,c.result);};o.error=function(ty,x){ecb.call(o.error_scope||o.scope,ty,x);};o.data=JSON.serialize({id:o.id||'c'+(this.count++),method:o.method,params:o.params});o.content_type='application/json';XHR.send(o);},'static':{sendRPC:function(o){return new tinymce.util.JSONRequest().send(o);}}});}());(function(){var each=tinymce.each,is=tinymce.is;var isWebKit=tinymce.isWebKit,isIE=tinymce.isIE;tinymce.create('tinymce.dom.DOMUtils',{doc:null,root:null,files:null,listeners:{},pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,cache:{},idPattern:/^#[\w]+$/,elmPattern:/^[\w_*]+$/,elmClassPattern:/^([\w_]*)\.([\w_]+)$/,DOMUtils:function(d,s){var t=this;t.doc=d;t.win=window;t.files={};t.cssFlicker=false;t.counter=0;t.boxModel=!tinymce.isIE||d.compatMode=="CSS1Compat";t.stdMode=d.documentMode===8;this.settings=s=tinymce.extend({keep_values:false,hex_colors:1,process_html:1},s);if(tinymce.isIE6){try{d.execCommand('BackgroundImageCache',false,true);}catch(e){t.cssFlicker=true;}}tinymce.addUnload(t.destroy,t);},getRoot:function(){var t=this,s=t.settings;return(s&&t.get(s.root_element))||t.doc.body;},getViewPort:function(w){var d,b;w=!w?this.win:w;d=w.document;b=this.boxModel?d.documentElement:d.body;return{x:w.pageXOffset||b.scrollLeft,y:w.pageYOffset||b.scrollTop,w:w.innerWidth||b.clientWidth,h:w.innerHeight||b.clientHeight};},getRect:function(e){var p,t=this,w,h;e=t.get(e);p=t.getPos(e);w=t.getStyle(e,'width');h=t.getStyle(e,'height');if(w.indexOf('px')===-1)w=0;if(h.indexOf('px')===-1)h=0;return{x:p.x,y:p.y,w:parseInt(w)||e.offsetWidth||e.clientWidth,h:parseInt(h)||e.offsetHeight||e.clientHeight};},getParent:function(n,f,r){var na,se=this.settings;n=this.get(n);if(se.strict_root)r=r||this.getRoot();if(is(f,'string')){na=f.toUpperCase();f=function(n){var s=false;if(n.nodeType==1&&na==='*'){s=true;return false;}each(na.split(','),function(v){if(n.nodeType==1&&((se.strict&&n.nodeName.toUpperCase()==v)||n.nodeName==v)){s=true;return false;}});return s;};}while(n){if(n==r)return null;if(f(n))return n;n=n.parentNode;}return null;},get:function(e){var n;if(this.doc&&typeof(e)=='string'){n=e;e=this.doc.getElementById(e);if(e&&e.id!==n)return this.doc.getElementsByName(n)[1];}return e;},select:function(pa,s){var t=this,cs,c,pl,o=[],x,i,l,n;s=t.get(s)||t.doc;if(s.querySelectorAll){if(s!=t.doc){i=s.id;s.id='_mc_tmp';pa='#_mc_tmp '+pa;}l=tinymce.grep(s.querySelectorAll(pa));s.id=i;return l;}if(t.settings.strict){function get(s,n){return s.getElementsByTagName(n.toLowerCase());};}else{function get(s,n){return s.getElementsByTagName(n);};}if(t.elmPattern.test(pa)){x=get(s,pa);for(i=0,l=x.length;i<l;i++)o.push(x[i]);return o;}if(t.elmClassPattern.test(pa)){pl=t.elmClassPattern.exec(pa);x=get(s,pl[1]||'*');c=' '+pl[2]+' ';for(i=0,l=x.length;i<l;i++){n=x[i];if(n.className&&(' '+n.className+' ').indexOf(c)!==-1)o.push(n);}return o;}function collect(n){if(!n.mce_save){n.mce_save=1;o.push(n);}};function collectIE(n){if(!n.getAttribute('mce_save')){n.setAttribute('mce_save','1');o.push(n);}};function find(n,f,r){var i,l,nl=get(r,n);for(i=0,l=nl.length;i<l;i++)f(nl[i]);};each(pa.split(','),function(v,i){v=tinymce.trim(v);if(t.elmPattern.test(v)){each(get(s,v),function(n){collect(n);});return;}if(t.elmClassPattern.test(v)){x=t.elmClassPattern.exec(v);each(get(s,x[1]),function(n){if(t.hasClass(n,x[2]))collect(n);});return;}if(!(cs=t.cache[pa])){cs='x=(function(cf, s) {';pl=v.split(' ');each(pl,function(v){var p=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i.exec(v);p[1]=p[1]||'*';cs+='find("'+p[1]+'", function(n) {';if(p[2])cs+='if (n.id !== "'+p[2]+'") return;';if(p[3]){cs+='var c = " " + n.className + " ";';cs+='if (';c='';each(p[3].split('.'),function(v){if(v)c+=(c?'||':'')+'c.indexOf(" '+v+' ") === -1';});cs+=c+') return;';}});cs+='cf(n);';for(i=pl.length-1;i>=0;i--)cs+='}, '+(i?'n':'s')+');';cs+='})';t.cache[pa]=cs=eval(cs);}cs(isIE?collectIE:collect,s);});each(o,function(n){if(isIE)n.removeAttribute('mce_save');else delete n.mce_save;});return o;},add:function(p,n,a,h,c){var t=this;return this.run(p,function(p){var e,k;e=is(n,'string')?t.doc.createElement(n):n;if(a){for(k in a){if(a.hasOwnProperty(k)&&!is(a[k],'object'))t.setAttrib(e,k,''+a[k]);}if(a.style&&!is(a.style,'string')){each(a.style,function(v,n){t.setStyle(e,n,v);});}}if(h){if(h.nodeType)e.appendChild(h);else t.setHTML(e,h);}return!c?p.appendChild(e):e;});},create:function(n,a,h){return this.add(this.doc.createElement(n),n,a,h,1);},createHTML:function(n,a,h){var o='',t=this,k;o+='<'+n;for(k in a){if(a.hasOwnProperty(k))o+=' '+k+'="'+t.encode(a[k])+'"';}if(tinymce.is(h))return o+'>'+h+'</'+n+'>';return o+' />';},remove:function(n,k){return this.run(n,function(n){var p,g;p=n.parentNode;if(!p)return null;if(k){each(n.childNodes,function(c){p.insertBefore(c.cloneNode(true),n);});}return p.removeChild(n);});},setStyle:function(n,na,v){var t=this;return t.run(n,function(e){var s,i;s=e.style;na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(t.pixelStyles.test(na)&&(tinymce.is(v,'number')||/^[\-0-9\.]+$/.test(v)))v+='px';switch(na){case'opacity':if(isIE){s.filter=v===''?'':"alpha(opacity="+(v*100)+")";if(!n.currentStyle||!n.currentStyle.hasLayout)s.display='inline-block';}s[na]=s['-moz-opacity']=s['-khtml-opacity']=v||'';break;case'float':isIE?s.styleFloat=v:s.cssFloat=v;break;default:s[na]=v||'';}if(t.settings.update_styles)t.setAttrib(e,'mce_style');});},getStyle:function(n,na,c){n=this.get(n);if(!n)return false;if(this.doc.defaultView&&c){na=na.replace(/[A-Z]/g,function(a){return'-'+a;});try{return this.doc.defaultView.getComputedStyle(n,null).getPropertyValue(na);}catch(ex){return null;}}na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(na=='float')na=isIE?'styleFloat':'cssFloat';if(n.currentStyle&&c)return n.currentStyle[na];return n.style[na];},setStyles:function(e,o){var t=this,s=t.settings,ol;ol=s.update_styles;s.update_styles=0;each(o,function(v,n){t.setStyle(e,n,v);});s.update_styles=ol;if(s.update_styles)t.setAttrib(e,s.cssText);},setAttrib:function(e,n,v){var t=this;if(t.settings.strict)n=n.toLowerCase();return this.run(e,function(e){var s=t.settings;switch(n){case"style":if(s.keep_values){if(v)e.setAttribute('mce_style',v,2);else e.removeAttribute('mce_style',2);}e.style.cssText=v;break;case"class":e.className=v||'';break;case"src":case"href":if(s.keep_values){if(s.url_converter)v=s.url_converter.call(s.url_converter_scope||t,v,n,e);t.setAttrib(e,'mce_'+n,v,2);}break;}if(is(v)&&v!==null&&v.length!==0)e.setAttribute(n,''+v,2);else e.removeAttribute(n,2);});},setAttribs:function(e,o){var t=this;return this.run(e,function(e){each(o,function(v,n){t.setAttrib(e,n,v);});});},getAttrib:function(e,n,dv){var v,t=this;e=t.get(e);if(!e)return false;if(!is(dv))dv="";if(/^(src|href|style|coords)$/.test(n)){v=e.getAttribute("mce_"+n);if(v)return v;}v=e.getAttribute(n,2);if(!v){switch(n){case'class':v=e.className;break;default:if(isIE&&n==='name'&&e.nodeName==='A'){v=e.name;break;}v=e.attributes[n];v=v&&is(v.nodeValue)?v.nodeValue:v;}}switch(n){case'style':v=v||e.style.cssText;if(v){v=t.serializeStyle(t.parseStyle(v));if(t.settings.keep_values)e.setAttribute('mce_style',v);}break;}if(isWebKit&&n==="class"&&v)v=v.replace(/(apple|webkit)\-[a-z\-]+/gi,'');if(isIE){switch(n){case'rowspan':case'colspan':if(v===1)v='';break;case'size':if(v==='+0')v='';break;case'hspace':if(v===-1)v='';break;case'tabindex':if(v===32768)v='';break;case'shape':v=v.toLowerCase();break;default:if(n.indexOf('on')===0&&v)v=(''+v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1');}}return(v&&v!='')?''+v:dv;},getPos:function(n){var t=this,x=0,y=0,e,d=t.doc,r;n=t.get(n);if(n&&isIE){n=n.getBoundingClientRect();e=t.boxModel?d.documentElement:d.body;x=t.getStyle(t.select('html')[0],'borderWidth');x=(x=='medium'||t.boxModel&&!t.isIE6)&&2||x;n.top+=t.win.self!=t.win.top?2:0;return{x:n.left+e.scrollLeft-x,y:n.top+e.scrollTop-x};}r=n;while(r){x+=r.offsetLeft||0;y+=r.offsetTop||0;r=r.offsetParent;}r=n;while(r){if(!/^table-row|inline.*/i.test(t.getStyle(r,"display",1))){x-=r.scrollLeft||0;y-=r.scrollTop||0;}r=r.parentNode;if(r==d.body)break;}return{x:x,y:y};},parseStyle:function(st){var t=this,s=t.settings,o={};if(!st)return o;function compress(p,s,ot){var t,r,b,l;t=o[p+'-top'+s];if(!t)return;r=o[p+'-right'+s];if(t!=r)return;b=o[p+'-bottom'+s];if(r!=b)return;l=o[p+'-left'+s];if(b!=l)return;o[ot]=l;delete o[p+'-top'+s];delete o[p+'-right'+s];delete o[p+'-bottom'+s];delete o[p+'-left'+s];};function compress2(ta,a,b,c){var t;t=o[a];if(!t)return;t=o[b];if(!t)return;t=o[c];if(!t)return;o[ta]=o[a]+' '+o[b]+' '+o[c];delete o[a];delete o[b];delete o[c];};each(st.split(';'),function(v){var sv,ur=[];if(v){v=v.replace(/url\([^\)]+\)/g,function(v){ur.push(v);return'url('+ur.length+')';});v=v.split(':');sv=tinymce.trim(v[1]);sv=sv.replace(/url\(([^\)]+)\)/g,function(a,b){return ur[parseInt(b)-1];});sv=sv.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});if(s.url_converter){sv=sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(x,c){return'url('+t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),'style',null))+')';});}o[tinymce.trim(v[0]).toLowerCase()]=sv;}});compress("border","","border");compress("border","-width","border-width");compress("border","-color","border-color");compress("border","-style","border-style");compress("padding","","padding");compress("margin","","margin");compress2('border','border-width','border-style','border-color');if(isIE){if(o.border=='medium none')o.border='';}return o;},serializeStyle:function(o){var s='';each(o,function(v,k){if(k&&v){switch(k){case'color':case'background-color':v=v.toLowerCase();break;}s+=(s?' ':'')+k+': '+v+';';}});return s;},loadCSS:function(u){var t=this,d=t.doc;if(!u)u='';each(u.split(','),function(u){if(t.files[u])return;t.files[u]=true;t.add(t.select('head')[0],'link',{rel:'stylesheet',href:u});});},addClass:function(e,c){return this.run(e,function(e){var o;if(!c)return 0;if(this.hasClass(e,c))return e.className;o=this.removeClass(e,c);return e.className=(o!=''?(o+' '):'')+c;});},removeClass:function(e,c){var t=this,re;return t.run(e,function(e){var v;if(t.hasClass(e,c)){if(!re)re=new RegExp("(^|\\s+)"+c+"(\\s+|$)","g");v=e.className.replace(re,' ');return e.className=tinymce.trim(v!=' '?v:'');}return e.className;});},hasClass:function(n,c){n=this.get(n);if(!n||!c)return false;return(' '+n.className+' ').indexOf(' '+c+' ')!==-1;},show:function(e){return this.setStyle(e,'display','block');},hide:function(e){return this.setStyle(e,'display','none');},isHidden:function(e){e=this.get(e);return e.style.display=='none'||this.getStyle(e,'display')=='none';},uniqueId:function(p){return(!p?'mce_':p)+(this.counter++);},setHTML:function(e,h){var t=this;return this.run(e,function(e){var x,i,nl,n,p,x;h=t.processHTML(h);if(isIE){function set(){try{e.innerHTML='<br />'+h;e.removeChild(e.firstChild);}catch(ex){while(e.firstChild)e.firstChild.removeNode();x=t.create('div');x.innerHTML='<br />'+h;each(x.childNodes,function(n,i){if(i)e.appendChild(n);});}};if(t.settings.fix_ie_paragraphs)h=h.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi,'<p$1 mce_keep="true"> </p>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("p");for(i=nl.length-1,x=0;i>=0;i--){n=nl[i];if(!n.hasChildNodes()){if(!n.mce_keep){x=1;break;}n.removeAttribute('mce_keep');}}}if(x){h=h.replace(/<p([^>]+)>|<p>/g,'<div$1 mce_tmp="1">');h=h.replace(/<\/p>/g,'</div>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("DIV");for(i=nl.length-1;i>=0;i--){n=nl[i];if(n.mce_tmp){p=t.doc.createElement('p');n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(a,b){var v;if(b!=='mce_tmp'){v=n.getAttribute(b);if(!v&&b==='class')v=n.className;p.setAttribute(b,v);}});for(x=0;x<n.childNodes.length;x++)p.appendChild(n.childNodes[x].cloneNode(true));n.swapNode(p);}}}}}else e.innerHTML=h;return h;});},processHTML:function(h){var t=this,s=t.settings;if(!s.process_html)return h;if(tinymce.isGecko){h=h.replace(/<(\/?)strong>|<strong( [^>]+)>/gi,'<$1b$2>');h=h.replace(/<(\/?)em>|<em( [^>]+)>/gi,'<$1i$2>');}h=h.replace(/<a( )([^>]+)\/>|<a\/>/gi,'<a$1$2></a>');if(s.keep_values){if(h.indexOf('<script')!==-1){h=h.replace(/<script>/g,'<script type="text/javascript">');h=h.replace(/<script(|[^>]+)>(\s*<!--|\/\/\s*<\[CDATA\[)?[\r\n]*/g,'<mce:script$1><!--\n');h=h.replace(/\s*(\/\/\s*-->|\/\/\s*]]>)?<\/script>/g,'\n// --></mce:script>');h=h.replace(/<mce:script(|[^>]+)><!--\n\/\/ --><\/mce:script>/g,'<mce:script$1></mce:script>');}h=h.replace(/<([\w:]+) [^>]*(src|href|style|coords)[^>]*>/gi,function(a,n){function handle(m,b,c){var u=c;if(a.indexOf('mce_'+b)!=-1)return m;if(b=='style'){if(s.hex_colors){u=u.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});}if(s.url_converter){u=u.replace(/url\([\'\"]?([^\)\'\"]+)\)/g,function(x,c){return'url('+t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n))+')';});}}else if(b!='coords'){if(s.url_converter)u=t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n));}return' '+b+'="'+c+'" mce_'+b+'="'+u+'"';};a=a.replace(/ (src|href|style|coords)=[\"]([^\"]+)[\"]/gi,handle);a=a.replace(/ (src|href|style|coords)=[\']([^\']+)[\']/gi,handle);return a.replace(/ (src|href|style|coords)=([^\s\"\'>]+)/gi,handle);});}return h;},getOuterHTML:function(e){var d;e=this.get(e);if(!e)return null;if(isIE)return e.outerHTML;d=(e.ownerDocument||this.doc).createElement("body");d.appendChild(e.cloneNode(true));return d.innerHTML;},setOuterHTML:function(e,h,d){var t=this;return this.run(e,function(e){var n,tp;e=t.get(e);d=d||e.ownerDocument||t.doc;if(isIE&&e.nodeType==1)e.outerHTML=h;else{tp=d.createElement("body");tp.innerHTML=h;n=tp.lastChild;while(n){t.insertAfter(n.cloneNode(true),e);n=n.previousSibling;}t.remove(e);}});},decode:function(s){var e;if(/&[^;]+;/.test(s)){e=this.doc.createElement("div");e.innerHTML=s;return!e.firstChild?s:e.firstChild.nodeValue;}return s;},encode:function(s){return s?(''+s).replace(/[<>&\"]/g,function(c,b){switch(c){case'&':return'&';case'"':return'"';case'<':return'<';case'>':return'>';}return c;}):s;},insertAfter:function(n,r){var t=this;r=t.get(r);return this.run(n,function(n){var p,ns;p=r.parentNode;ns=r.nextSibling;if(ns)p.insertBefore(n,ns);else p.appendChild(n);return n;});},isBlock:function(n){if(n.nodeType&&n.nodeType!==1)return false;n=n.nodeName||n;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);},replace:function(n,o,k){if(is(o,'array'))n=n.cloneNode(true);return this.run(o,function(o){if(k){each(o.childNodes,function(c){n.appendChild(c.cloneNode(true));});}if(isIE&&o.nodeType===1){o.parentNode.insertBefore(n,o);o.outerHTML='';return n;}return o.parentNode.replaceChild(n,o);});},toHex:function(s){var c=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);function hex(s){s=parseInt(s).toString(16);return s.length>1?s:'0'+s;};if(c){s='#'+hex(c[1])+hex(c[2])+hex(c[3]);return s;}return s;},getClasses:function(){var t=this,cl=[],i,lo={},f=t.settings.class_filter,ov;if(t.classes)return t.classes;function addClasses(s){each(s.imports,function(r){addClasses(r);});each(s.cssRules||s.rules,function(r){switch(r.type||1){case 1:if(r.selectorText){each(r.selectorText.split(','),function(v){v=v.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(v)||!/\.[\w\-]+$/.test(v))return;ov=v;v=v.replace(/.*\.([a-z0-9_\-]+).*/i,'$1');if(f&&!(v=f(v,ov)))return;if(!lo[v]){cl.push({'class':v});lo[v]=1;}});}break;case 3:addClasses(r.styleSheet);break;}});};try{each(t.doc.styleSheets,addClasses);}catch(ex){}if(cl.length>0)t.classes=cl;return cl;},run:function(e,f,s){var t=this,o;if(t.doc&&typeof(e)==='string')e=t.doc.getElementById(e);if(!e)return false;s=s||this;if(!e.nodeType&&(e.length||e.length===0)){o=[];each(e,function(e,i){if(e){if(typeof(e)=='string')e=t.doc.getElementById(e);o.push(f.call(s,e,i));}});return o;}return f.call(s,e);},getAttribs:function(n){var o;n=this.get(n);if(!n)return[];if(isIE){o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;}return n.attributes;},destroy:function(s){var t=this;t.win=t.doc=t.root=null;if(!s)tinymce.removeUnload(t.destroy);}});tinymce.DOM=new tinymce.dom.DOMUtils(document,{process_html:0});})();(function(){var each=tinymce.each,DOM=tinymce.DOM,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit,Event;tinymce.create('static tinymce.dom.Event',{inits:[],events:[],add:function(o,n,f,s){var cb,t=this,el=t.events,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.add(o,n,f,s));});return r;}o=DOM.get(o);if(!o)return;cb=function(e){e=e||window.event;if(e&&!e.target&&isIE)e.target=e.srcElement;if(!s)return f(e);return f.call(s,e);};if(n=='unload'){tinymce.unloads.unshift({func:cb});return cb;}if(n=='init'){if(t.domLoaded)cb();else t.inits.push(cb);return cb;}el.push({obj:o,name:n,func:f,cfunc:cb,scope:s});t._add(o,n,cb);return f;},remove:function(o,n,f){var t=this,a=t.events,s=false,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.remove(o,n,f));});return r;}o=DOM.get(o);each(a,function(e,i){if(e.obj==o&&e.name==n&&(!f||(e.func==f||e.cfunc==f))){a.splice(i,1);t._remove(o,n,e.cfunc);s=true;return false;}});return s;},clear:function(o){var t=this,a=t.events,i,e;if(o){o=DOM.get(o);for(i=a.length-1;i>=0;i--){e=a[i];if(e.obj===o){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;a.splice(i,1);}}}},cancel:function(e){if(!e)return false;this.stop(e);return this.prevent(e);},stop:function(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false;},prevent:function(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false;},_unload:function(){var t=Event;each(t.events,function(e,i){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;});t.events=[];t=null;},_add:function(o,n,f){if(o.attachEvent)o.attachEvent('on'+n,f);else if(o.addEventListener)o.addEventListener(n,f,false);else o['on'+n]=f;},_remove:function(o,n,f){if(o){try{if(o.detachEvent)o.detachEvent('on'+n,f);else if(o.removeEventListener)o.removeEventListener(n,f,false);else o['on'+n]=null;}catch(ex){}}},_pageInit:function(){var e=Event;e._remove(window,'DOMContentLoaded',e._pageInit);e.domLoaded=true;each(e.inits,function(c){c();});e.inits=[];},_wait:function(){var t;if(window.tinyMCE_GZ&&tinyMCE_GZ.loaded)return;if(isIE&&document.location.protocol!='https:'){document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');DOM.get("__ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){Event._pageInit();DOM.get("__ie_onload").onreadystatechange=null;}};}else{Event._add(window,'DOMContentLoaded',Event._pageInit,Event);if(isIE||isWebKit){t=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(t);Event._pageInit();}},10);}}}});Event=tinymce.dom.Event;Event._wait();tinymce.addUnload(Event._unload);})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.Element',{Element:function(id,s){var t=this,dom,el;s=s||{};t.id=id;t.dom=dom=s.dom||tinymce.DOM;t.settings=s;if(!tinymce.isIE)el=t.dom.get(t.id);each(['getPos','getRect','getParent','add','setStyle','getStyle','setStyles','setAttrib','setAttribs','getAttrib','addClass','removeClass','hasClass','getOuterHTML','setOuterHTML','remove','show','hide','isHidden','setHTML','get'],function(k){t[k]=function(){var a=arguments,o;if(tinymce.isOpera){a=[id];each(arguments,function(v){a.push(v);});}else Array.prototype.unshift.call(a,el||id);o=dom[k].apply(dom,a);t.update(k);return o;};});},on:function(n,f,s){return tinymce.dom.Event.add(this.id,n,f,s);},getXY:function(){return{x:parseInt(this.getStyle('left')),y:parseInt(this.getStyle('top'))};},getSize:function(){var n=this.dom.get(this.id);return{w:parseInt(this.getStyle('width')||n.clientWidth),h:parseInt(this.getStyle('height')||n.clientHeight)};},moveTo:function(x,y){this.setStyles({left:x,top:y});},moveBy:function(x,y){var p=this.getXY();this.moveTo(p.x+x,p.y+y);},resizeTo:function(w,h){this.setStyles({width:w,height:h});},resizeBy:function(w,h){var s=this.getSize();this.resizeTo(s.w+w,s.h+h);},update:function(k){var t=this,b,dom=t.dom;if(tinymce.isIE6&&t.settings.blocker){k=k||'';if(k.indexOf('get')===0||k.indexOf('has')===0||k.indexOf('is')===0)return;if(k=='remove'){dom.remove(t.blocker);return;}if(!t.blocker){t.blocker=dom.uniqueId();b=dom.add(t.settings.container||dom.getRoot(),'iframe',{id:t.blocker,style:'position:absolute;',frameBorder:0,src:'javascript:""'});dom.setStyle(b,'opacity',0);}else b=dom.get(t.blocker);dom.setStyle(b,'left',t.getStyle('left',1));dom.setStyle(b,'top',t.getStyle('top',1));dom.setStyle(b,'width',t.getStyle('width',1));dom.setStyle(b,'height',t.getStyle('height',1));dom.setStyle(b,'display',t.getStyle('display',1));dom.setStyle(b,'zIndex',parseInt(t.getStyle('zIndex',1)||0)-1);}}});})();(function(){var is=tinymce.is,isIE=tinymce.isIE,each=tinymce.each;tinymce.create('tinymce.dom.Selection',{Selection:function(dom,win,serializer){var t=this;t.dom=dom;t.win=win;t.serializer=serializer;tinymce.addUnload(t.destroy,t);},getContent:function(s){var t=this,r=t.getRng(),e=t.dom.create("body"),se=t.getSel(),wb,wa,n;s=s||{};wb=wa='';s.get=true;s.format=s.format||'html';if(s.format=='text')return t.isCollapsed()?'':(r.text||(se.toString?se.toString():''));if(r.cloneContents){n=r.cloneContents();if(n)e.appendChild(n);}else if(is(r.item)||is(r.htmlText))e.innerHTML=r.item?r.item(0).outerHTML:r.htmlText;else e.innerHTML=r.toString();if(/^\s/.test(e.innerHTML))wb=' ';if(/\s+$/.test(e.innerHTML))wa=' ';s.getInner=true;return t.isCollapsed()?'':wb+t.serializer.serialize(e,s)+wa;},setContent:function(h,s){var t=this,r=t.getRng(),d;s=s||{format:'html'};s.set=true;h=t.dom.processHTML(h);if(r.insertNode){d=t.win.document;if(tinymce.isGecko&&h.indexOf('<')==-1){r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h+'<span id="__caret">_</span>'));t.select(t.dom.get('__caret'));t.getRng().deleteContents();return;}try{if(d.queryCommandEnabled('InsertHTML'))return d.execCommand('InsertHTML',false,h);}catch(ex){r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h));}}else{if(r.item)r.item(0).outerHTML=h;else r.pasteHTML(h);}},getStart:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(1);e=r.parentElement();if(e.nodeName=='BODY')return e.firstChild;return e;}else{e=r.startContainer;if(e.nodeName=='BODY')return e.firstChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getEnd:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(0);e=r.parentElement();if(e.nodeName=='BODY')return e.lastChild;return e;}else{e=r.endContainer;if(e.nodeName=='BODY')return e.lastChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getBookmark:function(si){var t=this,r=t.getRng(),tr,sx,sy,vp=t.dom.getViewPort(t.win),e,sp,bp,le,c=-0xFFFFFF,s,ro=t.dom.getRoot(),wb=0,wa=0,nv;sx=vp.x;sy=vp.y;if(si=='simple')return{rng:r,scrollX:sx,scrollY:sy};if(isIE){if(r.item){e=r.item(0);each(t.dom.select(e.nodeName),function(n,i){if(e==n){sp=i;return false;}});return{tag:e.nodeName,index:sp,scrollX:sx,scrollY:sy};}tr=t.dom.doc.body.createTextRange();tr.moveToElementText(ro);tr.collapse(true);bp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(true);sp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(false);le=Math.abs(tr.move('character',c))-sp;return{start:sp-bp,length:le,scrollX:sx,scrollY:sy};}e=t.getNode();s=t.getSel();if(!s)return null;if(e&&e.nodeName=='IMG'){return{scrollX:sx,scrollY:sy};}function getPos(r,sn,en){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){if(n==sn)d.start=p;if(n==en){d.end=p;return d;}p+=tinymce.trim(n.nodeValue||'').length;}return null;};if(s.anchorNode==s.focusNode&&s.anchorOffset==s.focusOffset){e=getPos(ro,s.anchorNode,s.focusNode);if(!e)return{scrollX:sx,scrollY:sy};(s.anchorNode.nodeValue||'').replace(/^\s+/,function(a){wb=a.length;});return{start:Math.max(e.start+s.anchorOffset-wb,0),end:Math.max(e.end+s.focusOffset-wb,0),scrollX:sx,scrollY:sy,beg:s.anchorOffset-wb==0};}else{e=getPos(ro,r.startContainer,r.endContainer);(r.startContainer.nodeValue||'').replace(/^\s+/,function(a){wb=a.length;});(r.endContainer.nodeValue||'').replace(/^\s+/,function(a){wa=a.length;});if(!e)return{scrollX:sx,scrollY:sy};return{start:Math.max(e.start+r.startOffset-wb,0),end:Math.max(e.end+r.endOffset-wa,0),scrollX:sx,scrollY:sy,beg:r.startOffset-wb==0};}},moveToBookmark:function(b){var t=this,r=t.getRng(),s=t.getSel(),ro=t.dom.getRoot(),sd,nvl,nv;function getPos(r,sp,ep){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={},o,v,wa,wb;while((n=w.nextNode())!=null){wa=wb=0;nv=n.nodeValue||'';nv.replace(/^\s+[^\s]/,function(a){wb=a.length-1;});nv.replace(/[^\s]\s+$/,function(a){wa=a.length-1;});nvl=tinymce.trim(nv).length;p+=nvl;if(p>=sp&&!d.startNode){o=sp-(p-nvl);if(b.beg&&o>=nvl)continue;d.startNode=n;d.startOffset=o+wb;}if(p>=ep){d.endNode=n;d.endOffset=ep-(p-nvl)+wb;return d;}}return null;};if(!b)return false;t.win.scrollTo(b.scrollX,b.scrollY);if(isIE){if(r=b.rng){try{r.select();}catch(ex){}return true;}t.win.focus();if(b.tag){r=ro.createControlRange();each(t.dom.select(b.tag),function(n,i){if(i==b.index)r.addElement(n);});}else{try{if(b.start<0)return true;r=s.createRange();r.moveToElementText(ro);r.collapse(true);r.moveStart('character',b.start);r.moveEnd('character',b.length);}catch(ex2){return true;}}try{r.select();}catch(ex){}return true;}if(!s)return false;if(b.rng){s.removeAllRanges();s.addRange(b.rng);}else{if(is(b.start)&&is(b.end)){try{sd=getPos(ro,b.start,b.end);if(sd){r=t.dom.doc.createRange();r.setStart(sd.startNode,sd.startOffset);r.setEnd(sd.endNode,sd.endOffset);s.removeAllRanges();s.addRange(r);}if(!tinymce.isOpera)t.win.focus();}catch(ex){}}}},select:function(n,c){var t=this,r=t.getRng(),s=t.getSel(),b,fn,ln,d=t.win.document;function first(n){return n?d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode():null;};function last(n){var c,o,w;if(!n)return null;w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(c=w.nextNode())o=c;return o;};if(isIE){try{b=d.body;if(/^(IMG|TABLE)$/.test(n.nodeName)){r=b.createControlRange();r.addElement(n);}else{r=b.createTextRange();r.moveToElementText(n);}r.select();}catch(ex){}}else{if(c){fn=first(n);ln=last(n);if(fn&&ln){r=d.createRange();r.setStart(fn,0);r.setEnd(ln,ln.nodeValue.length);}else r.selectNode(n);}else r.selectNode(n);t.setRng(r);}return n;},isCollapsed:function(){var t=this,r=t.getRng(),s=t.getSel();if(!r||r.item)return false;return!s||r.boundingWidth==0||s.isCollapsed;},collapse:function(b){var t=this,r=t.getRng(),n;if(r.item){n=r.item(0);r=this.win.document.body.createTextRange();r.moveToElementText(n);}r.collapse(!!b);t.setRng(r);},getSel:function(){var t=this,w=this.win;return w.getSelection?w.getSelection():w.document.selection;},getRng:function(){var t=this,s=t.getSel(),r;try{if(s)r=s.rangeCount>0?s.getRangeAt(0):(s.createRange?s.createRange():t.win.document.createRange());}catch(ex){}if(!r)r=isIE?t.win.document.body.createTextRange():t.win.document.createRange();return r;},setRng:function(r){var s;if(!isIE){s=this.getSel();if(s){s.removeAllRanges();s.addRange(r);}}else{try{r.select();}catch(ex){}}},setNode:function(n){var t=this;t.setContent(t.dom.getOuterHTML(n));return n;},getNode:function(){var t=this,r=t.getRng(),s=t.getSel(),e;if(!isIE){if(!r)return t.dom.getRoot();e=r.commonAncestorContainer;if(!r.collapsed){if(r.startContainer==r.endContainer||(tinymce.isWebKit&&r.startContainer==r.endContainer.parentNode)){if(r.startOffset-r.endOffset<2||tinymce.isWebKit){if(r.startContainer.hasChildNodes())e=r.startContainer.childNodes[r.startOffset];}}}return t.dom.getParent(e,function(n){return n.nodeType==1;});}return r.item?r.item(0):r.parentElement();},destroy:function(s){var t=this;t.win=null;if(!s)tinymce.removeUnload(t.destroy);}});})();(function(){tinymce.create('tinymce.dom.XMLWriter',{node:null,XMLWriter:function(s){function getXML(){var i=document.implementation;if(!i||!i.createDocument){try{return new ActiveXObject('MSXML2.DOMDocument');}catch(ex){}try{return new ActiveXObject('Microsoft.XmlDom');}catch(ex){}}else return i.createDocument('','',null);};this.doc=getXML();this.valid=tinymce.isOpera||tinymce.isWebKit;this.reset();},reset:function(){var t=this,d=t.doc;if(d.firstChild)d.removeChild(d.firstChild);t.node=d.appendChild(d.createElement("html"));},writeStartElement:function(n){var t=this;t.node=t.node.appendChild(t.doc.createElement(n));},writeAttribute:function(n,v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.setAttribute(n,v);},writeEndElement:function(){this.node=this.node.parentNode;},writeFullEndElement:function(){var t=this,n=t.node;n.appendChild(t.doc.createTextNode(""));t.node=n.parentNode;},writeText:function(v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.appendChild(this.doc.createTextNode(v));},writeCDATA:function(v){this.node.appendChild(this.doc.createCDATA(v));},writeComment:function(v){this.node.appendChild(this.doc.createComment(v));},getContent:function(){var h;h=this.doc.xml||new XMLSerializer().serializeToString(this.doc);h=h.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g,'');h=h.replace(/ ?\/>/g,' />');if(this.valid)h=h.replace(/\%MCGT%/g,'>');return h;}});})();(function(){tinymce.create('tinymce.dom.StringWriter',{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(s){this.settings=tinymce.extend({indent_char:' ',indentation:1},s);this.reset();},reset:function(){this.indent='';this.str="";this.tags=[];this.count=0;},writeStartElement:function(n){this._writeAttributesEnd();this.writeRaw('<'+n);this.tags.push(n);this.inAttr=true;this.count++;this.elementCount=this.count;},writeAttribute:function(n,v){var t=this;t.writeRaw(" "+t.encode(n)+'="'+t.encode(v)+'"');},writeEndElement:function(){var n;if(this.tags.length>0){n=this.tags.pop();if(this._writeAttributesEnd(1))this.writeRaw('</'+n+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeFullEndElement:function(){if(this.tags.length>0){this._writeAttributesEnd();this.writeRaw('</'+this.tags.pop()+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeText:function(v){this._writeAttributesEnd();this.writeRaw(this.encode(v));this.count++;},writeCDATA:function(v){this._writeAttributesEnd();this.writeRaw('<![CDATA['+v+']]>');this.count++;},writeComment:function(v){this._writeAttributesEnd();this.writeRaw('<!-- '+v+'-->');this.count++;},writeRaw:function(v){this.str+=v;},encode:function(s){return s.replace(/[<>&"]/g,function(v){switch(v){case'<':return'<';case'>':return'>';case'&':return'&';case'"':return'"';}return v;});},getContent:function(){return this.str;},_writeAttributesEnd:function(s){if(!this.inAttr)return;this.inAttr=false;if(s&&this.elementCount==this.count){this.writeRaw(' />');return false;}this.writeRaw('>');return true;}});})();(function(){var extend=tinymce.extend,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher,isIE=tinymce.isIE,isGecko=tinymce.isGecko;function getIEAtts(n){var o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;};function wildcardToRE(s){return s.replace(/([?+*])/g,'.$1');};tinymce.create('tinymce.dom.Serializer',{Serializer:function(s){var t=this;t.key=0;t.onPreProcess=new Dispatcher(t);t.onPostProcess=new Dispatcher(t);if(tinymce.relaxedDomain&&tinymce.isGecko){t.writer=new tinymce.dom.StringWriter();}else{try{t.writer=new tinymce.dom.XMLWriter();}catch(ex){t.writer=new tinymce.dom.StringWriter();}}t.settings=s=extend({dom:tinymce.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_)/,closed:/(br|hr|input|meta|img|link|param)/,entity_encoding:'named',entities:'160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro',valid_elements:'*[*]',extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:0,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,font_size_style_values:0,apply_source_formatting:0,indent_mode:'simple',indent_char:'\t',indent_levels:1,remove_linebreaks:1},s);t.dom=s.dom;if(s.fix_list_elements){t.onPreProcess.add(function(se,o){var nl,x,a=['ol','ul'],i,n,p,r=/^(OL|UL)$/,np;function prevNode(e,n){var a=n.split(','),i;while((e=e.previousSibling)!=null){for(i=0;i<a.length;i++){if(e.nodeName==a[i])return e;}}return null;};for(x=0;x<a.length;x++){nl=t.dom.select(a[x],o.node);for(i=0;i<nl.length;i++){n=nl[i];p=n.parentNode;if(r.test(p.nodeName)){np=prevNode(n,'LI');if(!np){np=t.dom.create('li');np.innerHTML=' ';np.appendChild(n);p.insertBefore(np,p.firstChild);}else np.appendChild(n);}}}});}if(s.fix_table_elements){t.onPreProcess.add(function(se,o){each(t.dom.select('table',o.node),function(e){var pa=t.dom.getParent(e,'H1,H2,H3,H4,H5,H6,P'),pa2,n,tm,pl=[],i,ns;if(pa){pa2=pa.cloneNode(false);pl.push(e);for(n=e;n=n.parentNode;){pl.push(n);if(n==pa)break;}tm=pa2;for(i=pl.length-1;i>=0;i--){if(i==pl.length-1){while(ns=pl[i-1].nextSibling)tm.appendChild(ns.parentNode.removeChild(ns));}else{n=pl[i].cloneNode(false);if(i!=0){while(ns=pl[i-1].nextSibling)n.appendChild(ns.parentNode.removeChild(ns));}tm=tm.appendChild(n);}}e=t.dom.insertAfter(e.parentNode.removeChild(e),pa);t.dom.insertAfter(e,pa);t.dom.insertAfter(pa2,e);}});});}},setEntities:function(s){var t=this,a,i,l={},re='',v;if(t.entityLookup)return;a=s.split(',');for(i=0;i<a.length;i+=2){v=a[i];if(v==34||v==38||v==60||v==62)continue;l[String.fromCharCode(a[i])]=a[i+1];v=parseInt(a[i]).toString(16);re+='\\u'+'0000'.substring(v.length)+v;}if(!re){t.settings.entity_encoding='raw';return;}t.entitiesRE=new RegExp('['+re+']','g');t.entityLookup=l;},setValidChildRules:function(s){this.childRules=null;this.addValidChildRules(s);},addValidChildRules:function(s){var t=this,inst,intr,bloc;if(!s)return;inst='A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';intr='A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';bloc='H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';each(s.split(','),function(s){var p=s.split(/\[|\]/),re;s='';each(p[1].split('|'),function(v){if(s)s+='|';switch(v){case'%itrans':v=intr;break;case'%itrans_na':v=intr.substring(2);break;case'%istrict':v=inst;break;case'%istrict_na':v=inst.substring(2);break;case'%btrans':v=bloc;break;case'%bstrict':v=bloc;break;}s+=v;});re=new RegExp('^('+s.toLowerCase()+')$','i');each(p[0].split('/'),function(s){t.childRules=t.childRules||{};t.childRules[s]=re;});});s='';each(t.childRules,function(v,k){if(s)s+='|';s+=k;});t.parentElementsRE=new RegExp('^('+s.toLowerCase()+')$','i');},setRules:function(s){var t=this;t._setup();t.rules={};t.wildRules=[];t.validElements={};return t.addRules(s);},addRules:function(s){var t=this,dr;if(!s)return;t._setup();each(s.split(','),function(s){var p=s.split(/\[|\]/),tn=p[0].split('/'),ra,at,wat,va=[];if(dr)at=tinymce.extend([],dr.attribs);if(p.length>1){each(p[1].split('|'),function(s){var ar={},i;at=at||[];s=s.replace(/::/g,'~');s=/^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(s);s[2]=s[2].replace(/~/g,':');if(s[1]=='!'){ra=ra||[];ra.push(s[2]);}if(s[1]=='-'){for(i=0;i<at.length;i++){if(at[i].name==s[2]){at.splice(i,1);return;}}}switch(s[3]){case'=':ar.defaultVal=s[4]||'';break;case':':ar.forcedVal=s[4];break;case'<':ar.validVals=s[4].split('?');break;}if(/[*.?]/.test(s[2])){wat=wat||[];ar.nameRE=new RegExp('^'+wildcardToRE(s[2])+'$');wat.push(ar);}else{ar.name=s[2];at.push(ar);}va.push(s[2]);});}each(tn,function(s,i){var pr=s.charAt(0),x=1,ru={};if(dr){if(dr.noEmpty)ru.noEmpty=dr.noEmpty;if(dr.fullEnd)ru.fullEnd=dr.fullEnd;if(dr.padd)ru.padd=dr.padd;}switch(pr){case'-':ru.noEmpty=true;break;case'+':ru.fullEnd=true;break;case'#':ru.padd=true;break;default:x=0;}tn[i]=s=s.substring(x);t.validElements[s]=1;if(/[*.?]/.test(tn[0])){ru.nameRE=new RegExp('^'+wildcardToRE(tn[0])+'$');t.wildRules=t.wildRules||{};t.wildRules.push(ru);}else{ru.name=tn[0];if(tn[0]=='@')dr=ru;t.rules[s]=ru;}ru.attribs=at;if(ra)ru.requiredAttribs=ra;if(wat){s='';each(va,function(v){if(s)s+='|';s+='('+wildcardToRE(v)+')';});ru.validAttribsRE=new RegExp('^'+s.toLowerCase()+'$');ru.wildAttribs=wat;}});});s='';each(t.validElements,function(v,k){if(s)s+='|';if(k!='@')s+=k;});t.validElementsRE=new RegExp('^('+wildcardToRE(s.toLowerCase())+')$');},findRule:function(n){var t=this,rl=t.rules,i,r;t._setup();r=rl[n];if(r)return r;rl=t.wildRules;for(i=0;i<rl.length;i++){if(rl[i].nameRE.test(n))return rl[i];}return null;},findAttribRule:function(ru,n){var i,wa=ru.wildAttribs;for(i=0;i<wa.length;i++){if(wa[i].nameRE.test(n))return wa[i];}return null;},serialize:function(n,o){var h,t=this;t._setup();o=o||{};o.format=o.format||'html';t.processObj=o;n=n.cloneNode(true);t.key=''+(parseInt(t.key)+1);if(!o.no_events){o.node=n;t.onPreProcess.dispatch(t,o);}t.writer.reset();t._serializeNode(n,o.getInner);o.content=t.writer.getContent();if(!o.no_events)t.onPostProcess.dispatch(t,o);t._postProcess(o);o.node=null;return tinymce.trim(o.content);},_postProcess:function(o){var t=this,s=t.settings,h=o.content,sc=[],p,l;if(o.format=='html'){p=t._protect({content:h,patterns:[/(<script[^>]*>)(.*?)(<\/script>)/g,/(<style[^>]*>)(.*?)(<\/style>)/g,/(<pre[^>]*>)(.*?)(<\/pre>)/g]});h=p.content;if(s.entity_encoding!=='raw'){if(s.entity_encoding.indexOf('named')!=-1){t.setEntities(s.entities);l=t.entityLookup;h=h.replace(t.entitiesRE,function(a){var v;if(v=l[a])a='&'+v+';';return a;});}if(s.entity_encoding.indexOf('numeric')!=-1){h=h.replace(/[\u007E-\uFFFF]/g,function(a){return'&#'+a.charCodeAt(0)+';';});}}if(!o.set){h=h.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g,s.entity_encoding=='numeric'?'<p$1> </p>':'<p$1> </p>');if(s.remove_linebreaks){h=h.replace(/\r?\n|\r/g,' ');h=h.replace(/(<[^>]+>)\s+/g,'$1 ');h=h.replace(/\s+(<\/[^>]+>)/g,' $1');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g,'<$1 $2>');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g,'<$1>');h=h.replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g,'</$1>');}if(s.apply_source_formatting&&s.indent_mode=='simple'){h=h.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g,'\n<$1$2$3>\n');h=h.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g,'\n<$1$2>');h=h.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g,'</$1>\n');h=h.replace(/\n\n/g,'\n');}}h=t._unprotect(h,p);if(s.entity_encoding=='raw')h=h.replace(/<p> <\/p>|<p([^>]+)> <\/p>/g,'<p$1>\u00a0</p>');}o.content=h;},_serializeNode:function(n,inn){var t=this,s=t.settings,w=t.writer,hc,el,cn,i,l,a,at,no,v,nn,ru,ar,iv;if(!s.node_filter||s.node_filter(n)){switch(n.nodeType){case 1:if(n.hasAttribute?n.hasAttribute('mce_bogus'):n.getAttribute('mce_bogus'))return;iv=false;hc=n.hasChildNodes();nn=n.getAttribute('mce_name')||n.nodeName.toLowerCase();if(isIE){if(n.scopeName!=='HTML'&&n.scopeName!=='html')nn=n.scopeName+':'+nn;}if(nn.indexOf('mce:')===0)nn=nn.substring(4);if(!t.validElementsRE.test(nn)||(t.invalidElementsRE&&t.invalidElementsRE.test(nn))||inn){iv=true;break;}if(isIE){if(s.fix_content_duplication){if(n.mce_serialized==t.key)return;n.mce_serialized=t.key;}if(nn.charAt(0)=='/')nn=nn.substring(1);}else if(isGecko){if(n.nodeName==='BR'&&n.getAttribute('type')=='_moz')return;}if(t.childRules){if(t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(nn)){iv=true;break;}}t.elementName=nn;}ru=t.findRule(nn);nn=ru.name||nn;if((!hc&&ru.noEmpty)||(isIE&&!nn)){iv=true;break;}if(ru.requiredAttribs){a=ru.requiredAttribs;for(i=a.length-1;i>=0;i--){if(this.dom.getAttrib(n,a[i])!=='')break;}if(i==-1){iv=true;break;}}w.writeStartElement(nn);if(ru.attribs){for(i=0,at=ru.attribs,l=at.length;i<l;i++){a=at[i];v=t._getAttrib(n,a);if(v!==null)w.writeAttribute(a.name,v);}}if(ru.validAttribsRE){at=isIE?getIEAtts(n):n.attributes;for(i=at.length-1;i>-1;i--){no=at[i];if(no.specified){a=no.nodeName.toLowerCase();if(s.invalid_attrs.test(a)||!ru.validAttribsRE.test(a))continue;ar=t.findAttribRule(ru,a);v=t._getAttrib(n,ar,a);if(v!==null)w.writeAttribute(a,v);}}}if(!hc&&ru.padd)w.writeText('\u00a0');break;case 3:if(t.childRules&&t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(n.nodeName))return;}return w.writeText(n.nodeValue);case 4:return w.writeCDATA(n.nodeValue);case 8:return w.writeComment(n.nodeValue);}}else if(n.nodeType==1)hc=n.hasChildNodes();if(hc){cn=n.firstChild;while(cn){t._serializeNode(cn);t.elementName=nn;cn=cn.nextSibling;}}if(!iv){if(hc||!s.closed.test(nn))w.writeFullEndElement();else w.writeEndElement();}},_protect:function(o){o.items=o.items||[];function enc(s){return s.replace(/[\r\n\\]/g,function(c){if(c==='\n')return'\\n';else if(c==='\\')return'\\\\';return'\\r';});};function dec(s){return s.replace(/\\[\\rn]/g,function(c){if(c==='\\n')return'\n';else if(c==='\\\\')return'\\';return'\r';});};each(o.patterns,function(p){o.content=dec(enc(o.content).replace(p,function(x,a,b,c){o.items.push(dec(b));return a+'<!--mce:'+(o.items.length-1)+'-->'+c;}));});return o;},_unprotect:function(h,o){h=h.replace(/\<!--mce:([0-9]+)--\>/g,function(a,b){return o.items[parseInt(b)];});o.items=[];return h;},_setup:function(){var t=this,s=this.settings;if(t.done)return;t.done=1;t.setRules(s.valid_elements);t.addRules(s.extended_valid_elements);t.addValidChildRules(s.valid_child_elements);if(s.invalid_elements)t.invalidElementsRE=new RegExp('^('+wildcardToRE(s.invalid_elements.replace(',','|').toLowerCase())+')$');if(s.attrib_value_filter)t.attribValueFilter=s.attribValueFilter;},_getAttrib:function(n,a,na){var i,v;na=na||a.name;if(a.forcedVal&&(v=a.forcedVal)){if(v==='{$uid}')return this.dom.uniqueId();return v;}v=this.dom.getAttrib(n,na);switch(na){case'rowspan':case'colspan':if(v=='1')v='';break;}if(this.attribValueFilter)v=this.attribValueFilter(na,v,n);if(a.validVals){for(i=a.validVals.length-1;i>=0;i--){if(v==a.validVals[i])break;}if(i==-1)return null;}if(v===''&&typeof(a.defaultVal)!='undefined'){v=a.defaultVal;if(v==='{$uid}')return this.dom.uniqueId();return v;}else{if(na=='class'&&this.processObj.get)v=v.replace(/\s?mceItem\w+\s?/g,'');}if(v==='')return null;return v;}});})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.ScriptLoader',{ScriptLoader:function(s){this.settings=s||{};this.queue=[];this.lookup={};},isDone:function(u){return this.lookup[u]?this.lookup[u].state==2:0;},markDone:function(u){this.lookup[u]={state:2,url:u};},add:function(u,cb,s,pr){var t=this,lo=t.lookup,o;if(o=lo[u]){if(cb&&o.state==2)cb.call(s||this);return o;}o={state:0,url:u,func:cb,scope:s||this};if(pr)t.queue.unshift(o);else t.queue.push(o);lo[u]=o;return o;},load:function(u,cb,s){var t=this,o;if(o=t.lookup[u]){if(cb&&o.state==2)cb.call(s||t);return o;}function loadScript(u){if(tinymce.dom.Event.domLoaded||t.settings.strict_mode){tinymce.util.XHR.send({url:u,error:t.settings.error,async:false,success:function(co){t.eval(co);}});}else document.write('<script type="text/javascript" src="'+u+'"></script>');};if(!tinymce.is(u,'string')){each(u,function(u){loadScript(u);});if(cb)cb.call(s||t);}else{loadScript(u);if(cb)cb.call(s||t);}},loadQueue:function(cb,s){var t=this;if(!t.queueLoading){t.queueLoading=1;t.queueCallbacks=[];t.loadScripts(t.queue,function(){t.queueLoading=0;if(cb)cb.call(s||t);each(t.queueCallbacks,function(o){o.func.call(o.scope);});});}else if(cb)t.queueCallbacks.push({func:cb,scope:s||t});},eval:function(co){var w=window;if(!w.execScript){try{eval.call(w,co);}catch(ex){eval(co,w);}}else w.execScript(co);},loadScripts:function(sc,cb,s){var t=this,lo=t.lookup;function done(o){o.state=2;if(o.func)o.func.call(o.scope||t);};function allDone(){var l;l=sc.length;each(sc,function(o){o=lo[o.url];if(o.state===2){done(o);l--;}else load(o);});if(l===0&&cb){cb.call(s||t);cb=0;}};function load(o){if(o.state>0)return;o.state=1;tinymce.util.XHR.send({url:o.url,error:t.settings.error,success:function(co){t.eval(co);done(o);allDone();}});};each(sc,function(o){var u=o.url;if(!lo[u]){lo[u]=o;t.queue.push(o);}else o=lo[u];if(o.state>0)return;if(!tinymce.dom.Event.domLoaded&&!t.settings.strict_mode){var ix,ol='';if(cb||o.func){o.state=1;ix=tinymce.dom.ScriptLoader._addOnLoad(function(){done(o);allDone();});if(tinymce.isIE)ol=' onreadystatechange="';else ol=' onload="';ol+='tinymce.dom.ScriptLoader._onLoad(this,\''+u+'\','+ix+');"';}document.write('<script type="text/javascript" src="'+u+'"'+ol+'></script>');if(!o.func)done(o);}else load(o);});allDone();},'static':{_addOnLoad:function(f){var t=this;t._funcs=t._funcs||[];t._funcs.push(f);return t._funcs.length-1;},_onLoad:function(e,u,ix){if(!tinymce.isIE||e.readyState=='complete')this._funcs[ix].call(this);}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader();})();(function(){var DOM=tinymce.DOM,is=tinymce.is;tinymce.create('tinymce.ui.Control',{Control:function(id,s){this.id=id;this.settings=s=s||{};this.rendered=false;this.onRender=new tinymce.util.Dispatcher(this);this.classPrefix='';this.scope=s.scope||this;this.disabled=0;this.active=0;},setDisabled:function(s){var e;if(s!=this.disabled){e=DOM.get(this.id);if(e&&this.settings.unavailable_prefix){if(s){this.prevTitle=e.title;e.title=this.settings.unavailable_prefix+": "+e.title;}else e.title=this.prevTitle;}this.setState('Disabled',s);this.setState('Enabled',!s);this.disabled=s;}},isDisabled:function(){return this.disabled;},setActive:function(s){if(s!=this.active){this.setState('Active',s);this.active=s;}},isActive:function(){return this.active;},setState:function(c,s){var n=DOM.get(this.id);c=this.classPrefix+c;if(s)DOM.addClass(n,c);else DOM.removeClass(n,c);},isRendered:function(){return this.rendered;},renderHTML:function(){},renderTo:function(n){DOM.setHTML(n,this.renderHTML());},postRender:function(){var t=this,b;if(is(t.disabled)){b=t.disabled;t.disabled=-1;t.setDisabled(b);}if(is(t.active)){b=t.active;t.active=-1;t.setActive(b);}},remove:function(){DOM.remove(this.id);this.destroy();},destroy:function(){tinymce.dom.Event.clear(this.id);}});})();tinymce.create('tinymce.ui.Container:tinymce.ui.Control',{Container:function(id,s){this.parent(id,s);this.controls=[];this.lookup={};},add:function(c){this.lookup[c.id]=c;this.controls.push(c);return c;},get:function(n){return this.lookup[n];}});tinymce.create('tinymce.ui.Separator:tinymce.ui.Control',{Separator:function(id,s){this.parent(id,s);this.classPrefix='mceSeparator';},renderHTML:function(){return tinymce.DOM.createHTML('span',{'class':this.classPrefix});}});(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control',{MenuItem:function(id,s){this.parent(id,s);this.classPrefix='mceMenuItem';},setSelected:function(s){this.setState('Selected',s);this.selected=s;},isSelected:function(){return this.selected;},postRender:function(){var t=this;t.parent();if(is(t.selected))t.setSelected(t.selected);}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem',{Menu:function(id,s){var t=this;t.parent(id,s);t.items={};t.collapsed=false;t.menuCount=0;t.onAddItem=new tinymce.util.Dispatcher(this);},expand:function(d){var t=this;if(d){walk(t,function(o){if(o.expand)o.expand();},'items',t);}t.collapsed=false;},collapse:function(d){var t=this;if(d){walk(t,function(o){if(o.collapse)o.collapse();},'items',t);}t.collapsed=true;},isCollapsed:function(){return this.collapsed;},add:function(o){if(!o.settings)o=new tinymce.ui.MenuItem(o.id||DOM.uniqueId(),o);this.onAddItem.dispatch(this,o);return this.items[o.id]=o;},addSeparator:function(){return this.add({separator:true});},addMenu:function(o){if(!o.collapse)o=this.createMenu(o);this.menuCount++;return this.add(o);},hasMenus:function(){return this.menuCount!==0;},remove:function(o){delete this.items[o.id];},removeAll:function(){var t=this;walk(t,function(o){if(o.removeAll)o.removeAll();else o.remove();o.destroy();},'items',t);t.items={};},createMenu:function(o){var m=new tinymce.ui.Menu(o.id||DOM.uniqueId(),o);m.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return m;}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,Event=tinymce.dom.Event,Element=tinymce.dom.Element;tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu',{DropMenu:function(id,s){s=s||{};s.container=s.container||DOM.doc.body;s.offset_x=s.offset_x||0;s.offset_y=s.offset_y||0;s.vp_offset_x=s.vp_offset_x||0;s.vp_offset_y=s.vp_offset_y||0;if(is(s.icons)&&!s.icons)s['class']+=' mceNoIcons';this.parent(id,s);this.onShowMenu=new tinymce.util.Dispatcher(this);this.onHideMenu=new tinymce.util.Dispatcher(this);this.classPrefix='mceMenu';this.fixIE=tinymce.isIE&&DOM.win.top!=DOM.win;},createMenu:function(s){var t=this,cs=t.settings,m;s.container=s.container||cs.container;s.parent=t;s.constrain=s.constrain||cs.constrain;s['class']=s['class']||cs['class'];s.vp_offset_x=s.vp_offset_x||cs.vp_offset_x;s.vp_offset_y=s.vp_offset_y||cs.vp_offset_y;m=new tinymce.ui.DropMenu(s.id||DOM.uniqueId(),s);m.onAddItem.add(t.onAddItem.dispatch,t.onAddItem);return m;},update:function(){var t=this,s=t.settings,tb=DOM.get('menu_'+t.id+'_tbl'),co=DOM.get('menu_'+t.id+'_co'),tw,th;tw=s.max_width?Math.min(tb.clientWidth,s.max_width):tb.clientWidth;th=s.max_height?Math.min(tb.clientHeight,s.max_height):tb.clientHeight;if(!DOM.boxModel)t.element.setStyles({width:tw+2,height:th+2});else t.element.setStyles({width:tw,height:th});if(s.max_width)DOM.setStyle(co,'width',tw);if(s.max_height){DOM.setStyle(co,'height',th);if(tb.clientHeight<s.max_height)DOM.setStyle(co,'overflow','hidden');}},showMenu:function(x,y,px){var t=this,s=t.settings,co,vp=DOM.getViewPort(),w,h,mx,my,ot=2,dm,tb,cp=t.classPrefix;t.collapse(1);if(t.isMenuVisible)return;if(!t.rendered){co=DOM.add(t.settings.container,t.renderNode());each(t.items,function(o){o.postRender();});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});}else co=DOM.get('menu_'+t.id);if(!tinymce.isOpera)DOM.setStyles(co,{left:-0xFFFF,top:-0xFFFF});DOM.show(co);t.update();x+=s.offset_x||0;y+=s.offset_y||0;vp.w-=4;vp.h-=4;if(s.constrain){w=co.clientWidth-ot;h=co.clientHeight-ot;mx=vp.x+vp.w;my=vp.y+vp.h;if((x+s.vp_offset_x+w)>mx)x=px?px-w:Math.max(0,(mx-s.vp_offset_x)-w);if((y+s.vp_offset_y+h)>my)y=Math.max(0,(my-s.vp_offset_y)-h);}DOM.setStyles(co,{left:x,top:y});t.element.update();t.isMenuVisible=1;t.mouseClickFunc=Event.add(co,t.fixIE?'mousedown':'click',function(e){var m;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))&&!DOM.hasClass(e,cp+'ItemSub')){m=t.items[e.id];if(m.isDisabled())return;dm=t;while(dm){if(dm.hideMenu)dm.hideMenu();dm=dm.settings.parent;}if(m.settings.onclick)m.settings.onclick(e);return Event.cancel(e);}});if(t.hasMenus()){t.mouseOverFunc=Event.add(co,'mouseover',function(e){var m,r,mi;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))){m=t.items[e.id];if(t.lastMenu)t.lastMenu.collapse(1);if(m.isDisabled())return;if(e&&DOM.hasClass(e,cp+'ItemSub')){r=DOM.getRect(e);m.showMenu((r.x+r.w-ot),r.y-ot,r.x);t.lastMenu=m;DOM.addClass(DOM.get(m.id).firstChild,cp+'ItemActive');}}});}t.onShowMenu.dispatch(t);if(s.keyboard_focus){Event.add(co,'keydown',t._keyHandler,t);DOM.select('a','menu_'+t.id)[0].focus();}},hideMenu:function(c){var t=this,co=DOM.get('menu_'+t.id),e;if(!t.isMenuVisible)return;Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,t.fixIE?'mousedown':'click',t.mouseClickFunc);Event.remove(co,'keydown',t._keyHandler);DOM.hide(co);t.isMenuVisible=0;if(!c)t.collapse(1);if(t.element)t.element.hide();if(e=DOM.get(t.id))DOM.removeClass(e.firstChild,t.classPrefix+'ItemActive');t.onHideMenu.dispatch(t);},add:function(o){var t=this,co;o=t.parent(o);if(t.isRendered&&(co=DOM.get('menu_'+t.id)))t._add(DOM.select('tbody',co)[0],o);return o;},collapse:function(d){this.parent(d);this.hideMenu(1);},remove:function(o){DOM.remove(o.id);this.destroy();return this.parent(o);},destroy:function(){var t=this,co=DOM.get('menu_'+t.id);Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);if(t.element)t.element.remove();DOM.remove(co);},renderNode:function(){var t=this,s=t.settings,n,tb,co,w;w=DOM.create('div',{id:'menu_'+t.id,'class':s['class'],'style':'position:absolute;left:0;top:0;z-index:200000'});co=DOM.add(w,'div',{id:'menu_'+t.id+'_co','class':t.classPrefix+(s['class']?' '+s['class']:'')});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});if(s.menu_line)DOM.add(co,'span',{'class':t.classPrefix+'Line'});n=DOM.add(co,'table',{id:'menu_'+t.id+'_tbl',border:0,cellPadding:0,cellSpacing:0});tb=DOM.add(n,'tbody');each(t.items,function(o){t._add(tb,o);});t.rendered=true;return w;},_keyHandler:function(e){if(e.keyCode==27)this.hideMenu();},_add:function(tb,o){var n,s=o.settings,a,ro,it,cp=this.classPrefix;if(s.separator){ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'ItemSeparator'});DOM.add(ro,'td',{'class':cp+'ItemSeparator'});if(n=ro.previousSibling)DOM.addClass(n,'mceLast');return;}n=ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'Item '+cp+'ItemEnabled'});n=it=DOM.add(n,'td');n=a=DOM.add(n,'a',{href:'javascript:;',onclick:"return false;",onmousedown:'return false;'});DOM.addClass(it,s['class']);DOM.add(n,'span',{'class':'mceIcon'+(s.icon?' mce_'+s.icon:'')});n=DOM.add(n,s.element||'span',{'class':'mceText',title:o.settings.title},o.settings.title);if(o.settings.style)DOM.setAttrib(n,'style',o.settings.style);if(tb.childNodes.length==1)DOM.addClass(ro,'mceFirst');if((n=ro.previousSibling)&&DOM.hasClass(n,cp+'ItemSeparator'))DOM.addClass(ro,'mceFirst');if(o.collapse)DOM.addClass(ro,cp+'ItemSub');if(n=ro.previousSibling)DOM.removeClass(n,'mceLast');DOM.addClass(ro,'mceLast');}});})();(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.ui.Button:tinymce.ui.Control',{Button:function(id,s){this.parent(id,s);this.classPrefix='mceButton';},renderHTML:function(){var cp=this.classPrefix,s=this.settings,h='<a id="'+this.id+'" href="javascript:;" class="'+cp+' '+cp+'Enabled '+s['class']+'" onmousedown="return false;" onclick="return false;" title="'+DOM.encode(s.title)+'">';if(s.image)h+='<img class="mceIcon" src="'+s.image+'" /></a>';else h+='<span class="mceIcon '+s['class']+'"></span></a>';return h;},postRender:function(){var t=this,s=t.settings;tinymce.dom.Event.add(t.id,'click',function(e){if(!t.isDisabled())return s.onclick.call(s.scope,e);});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control',{ListBox:function(id,s){var t=this;t.parent(id,s);t.items=[];t.onChange=new Dispatcher(t);t.onPostRender=new Dispatcher(t);t.onAdd=new Dispatcher(t);t.onRenderMenu=new tinymce.util.Dispatcher(this);t.classPrefix='mceListBox';},select:function(v){var t=this,e,fv;if(v!=t.selectedValue){e=DOM.get(t.id+'_text');t.selectedValue=v;each(t.items,function(o){if(o.value==v){DOM.setHTML(e,DOM.encode(o.title));fv=1;return false;}});if(!fv){DOM.setHTML(e,DOM.encode(t.settings.title));DOM.addClass(e,'mceTitle');e=0;return;}else DOM.removeClass(e,'mceTitle');}e=0;},add:function(n,v,o){var t=this;o=o||{};o=tinymce.extend(o,{title:n,value:v});t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return this.items.length;},renderHTML:function(){var h='',t=this,s=t.settings,cp=t.classPrefix;h='<table id="'+t.id+'" cellpadding="0" cellspacing="0" class="'+cp+' '+cp+'Enabled'+(s['class']?(' '+s['class']):'')+'"><tbody><tr>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_text',href:'javascript:;','class':'mceText',onclick:"return false;",onmousedown:'return false;'},DOM.encode(t.settings.title))+'</td>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',tabindex:-1,href:'javascript:;','class':'mceOpen',onclick:"return false;",onmousedown:'return false;'},'<span></span>')+'</td>';h+='</tr></tbody></table>';return h;},showMenu:function(){var t=this,p1,p2,e=DOM.get(this.id),m;if(t.isDisabled()||t.items.length==0)return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}p1=DOM.getPos(this.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.keyboard_focus=t._focused;if(t.oldID)m.items[t.oldID].setSelected(0);each(t.items,function(o){if(o.value===t.selectedValue){m.items[o.id].setSelected(1);t.oldID=o.id;}});m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);DOM.addClass(t.id,t.classPrefix+'Selected');},hideMenu:function(e){var t=this;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){DOM.removeClass(t.id,t.classPrefix+'Selected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':t.classPrefix+'Menu mceNoIcons',max_width:150,max_height:150});m.onHideMenu.add(t.hideMenu,t);m.add({title:t.settings.title,'class':'mceMenuItemTitle'}).setDisabled(1);each(t.items,function(o){o.id=DOM.uniqueId();o.onclick=function(){if(t.settings.onselect(o.value)!==false)t.select(o.value);};m.add(o);});t.onRenderMenu.dispatch(t,m);t.menu=m;},postRender:function(){var t=this,cp=t.classPrefix;Event.add(t.id,'click',t.showMenu,t);Event.add(t.id+'_text','focus',function(){t._focused=1;});Event.add(t.id+'_text','blur',function(){t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.addClass(t.id,cp+'Hover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.removeClass(t.id,cp+'Hover');});}t.onPostRender.dispatch(t,DOM.get(t.id));},destroy:function(){this.parent();Event.clear(this.id+'_text');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox',{NativeListBox:function(id,s){this.parent(id,s);this.classPrefix='mceNativeListBox';},setDisabled:function(s){DOM.get(this.id).disabled=s;},isDisabled:function(){return DOM.get(this.id).disabled;},select:function(v){var e=DOM.get(this.id),ol=e.options;v=''+(v||'');e.selectedIndex=0;each(ol,function(o,i){if(o.value==v){e.selectedIndex=i;return false;}});},add:function(n,v,a){var o,t=this;a=a||{};a.value=v;if(t.isRendered())DOM.add(DOM.get(this.id),'option',a,n);o={title:n,value:v,attribs:a};t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return DOM.get(this.id).options.length-1;},renderHTML:function(){var h,t=this;h=DOM.createHTML('option',{value:''},'-- '+t.settings.title+' --');each(t.items,function(it){h+=DOM.createHTML('option',{value:it.value},it.title);});h=DOM.createHTML('select',{id:t.id,'class':'mceNativeListBox'},h);return h;},postRender:function(){var t=this,ch;t.rendered=true;function onChange(e){var v=e.target.options[e.target.selectedIndex].value;t.onChange.dispatch(t,v);if(t.settings.onselect)t.settings.onselect(v);};Event.add(t.id,'change',onChange);Event.add(t.id,'keydown',function(e){var bf;Event.remove(t.id,'change',ch);bf=Event.add(t.id,'blur',function(){Event.add(t.id,'change',onChange);Event.remove(t.id,'blur',bf);});if(e.keyCode==13||e.keyCode==32){onChange(e);return Event.cancel(e);}});t.onPostRender.dispatch(t,DOM.get(t.id));}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button',{MenuButton:function(id,s){this.parent(id,s);this.onRenderMenu=new tinymce.util.Dispatcher(this);s.menu_container=s.menu_container||DOM.doc.body;},showMenu:function(){var t=this,p1,p2,e=DOM.get(t.id),m;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}p1=DOM.getPos(t.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.vp_offset_x=p2.x;m.settings.vp_offset_y=p2.y;m.settings.keyboard_focus=t._focused;m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);t.setState('Selected',1);},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':this.classPrefix+'Menu',icons:t.settings.icons});m.onHideMenu.add(t.hideMenu,t);t.onRenderMenu.dispatch(t,m);t.menu=m;},hideMenu:function(e){var t=this;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){t.setState('Selected',0);Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}},postRender:function(){var t=this,s=t.settings;Event.add(t.id,'click',function(){if(!t.isDisabled()){if(s.onclick)s.onclick(t.value);t.showMenu();}});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton',{SplitButton:function(id,s){this.parent(id,s);this.classPrefix='mceSplitButton';},renderHTML:function(){var h,t=this,s=t.settings,h1;h='<tbody><tr>';if(s.image)h1=DOM.createHTML('img ',{src:s.image,'class':'mceAction '+s['class']});else h1=DOM.createHTML('span',{'class':'mceAction '+s['class']},'');h+='<td>'+DOM.createHTML('a',{id:t.id+'_action',href:'javascript:;','class':'mceAction '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h1=DOM.createHTML('span',{'class':'mceOpen '+s['class']});h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',href:'javascript:;','class':'mceOpen '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h+='</tr></tbody>';return DOM.createHTML('table',{id:t.id,'class':'mceSplitButton mceSplitButtonEnabled '+s['class'],cellpadding:'0',cellspacing:'0',onmousedown:'return false;',title:s.title},h);},postRender:function(){var t=this,s=t.settings;if(s.onclick){Event.add(t.id+'_action','click',function(){if(!t.isDisabled())s.onclick(t.value);});}Event.add(t.id+'_open','click',t.showMenu,t);Event.add(t.id+'_open','focus',function(){t._focused=1;});Event.add(t.id+'_open','blur',function(){t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.addClass(t.id,'mceSplitButtonHover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.removeClass(t.id,'mceSplitButtonHover');});}},destroy:function(){this.parent();Event.clear(this.id+'_action');Event.clear(this.id+'_open');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,is=tinymce.is,each=tinymce.each;tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton',{ColorSplitButton:function(id,s){var t=this;t.parent(id,s);t.settings=s=tinymce.extend({colors:'000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF',grid_width:8,default_color:'#888888'},t.settings);t.value=s.default_color;},showMenu:function(){var t=this,r,p,e,p2;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}e=DOM.get(t.id);DOM.show(t.id+'_menu');DOM.addClass(e,'mceSplitButtonSelected');p2=DOM.getPos(e);DOM.setStyles(t.id+'_menu',{left:p2.x,top:p2.y+e.clientHeight,zIndex:200000});e=0;Event.add(DOM.doc,'mousedown',t.hideMenu,t);if(t._focused){t._keyHandler=Event.add(t.id+'_menu','keydown',function(e){if(e.keyCode==27)t.hideMenu();});DOM.select('a',t.id+'_menu')[0].focus();}},hideMenu:function(e){var t=this;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceSplitButtonMenu');})){DOM.removeClass(t.id,'mceSplitButtonSelected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);Event.remove(t.id+'_menu','keydown',t._keyHandler);DOM.hide(t.id+'_menu');}},renderMenu:function(){var t=this,m,i=0,s=t.settings,n,tb,tr,w;w=DOM.add(s.menu_container,'div',{id:t.id+'_menu','class':s['menu_class']+' '+s['class'],style:'position:absolute;left:0;top:-1000px;'});m=DOM.add(w,'div',{'class':s['class']+' mceSplitButtonMenu'});DOM.add(m,'span',{'class':'mceMenuLine'});n=DOM.add(m,'table',{'class':'mceColorSplitMenu'});tb=DOM.add(n,'tbody');i=0;each(is(s.colors,'array')?s.colors:s.colors.split(','),function(c){c=c.replace(/^#/,'');if(!i--){tr=DOM.add(tb,'tr');i=s.grid_width-1;}n=DOM.add(tr,'td');n=DOM.add(n,'a',{href:'javascript:;',style:{backgroundColor:'#'+c},mce_color:'#'+c});});if(s.more_colors_func){n=DOM.add(tb,'tr');n=DOM.add(n,'td',{colspan:s.grid_width,'class':'mceMoreColors'});n=DOM.add(n,'a',{id:t.id+'_more',href:'javascript:;',onclick:'return false;','class':'mceMoreColors'},s.more_colors_title);Event.add(n,'click',function(e){s.more_colors_func.call(s.more_colors_scope||this);return Event.cancel(e);});}DOM.addClass(m,'mceColorSplitMenu');Event.add(t.id+'_menu','click',function(e){var c;e=e.target;if(e.nodeName=='A'&&(c=e.getAttribute('mce_color')))t.setColor(c);});return w;},setColor:function(c){var t=this;DOM.setStyle(t.id+'_preview','backgroundColor',c);t.value=c;t.hideMenu();t.settings.onselect(c);},postRender:function(){var t=this,id=t.id;t.parent();DOM.add(id+'_action','div',{id:id+'_preview','class':'mceColorPreview'});},destroy:function(){this.parent();Event.clear(this.id+'_menu');Event.clear(this.id+'_more');DOM.remove(this.id+'_menu');}});})();tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container',{renderHTML:function(){var t=this,h='',c,co,dom=tinymce.DOM,s=t.settings,i,pr,nx,cl;cl=t.controls;for(i=0;i<cl.length;i++){co=cl[i];pr=cl[i-1];nx=cl[i+1];if(i===0){c='mceToolbarStart';if(co.Button)c+=' mceToolbarStartButton';else if(co.SplitButton)c+=' mceToolbarStartSplitButton';else if(co.ListBox)c+=' mceToolbarStartListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));}if(pr&&co.ListBox){if(pr.Button||pr.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarEnd'},dom.createHTML('span',null,'<!-- IE -->'));}if(dom.stdMode)h+='<td style="position: relative">'+co.renderHTML()+'</td>';else h+='<td>'+co.renderHTML()+'</td>';if(nx&&co.ListBox){if(nx.Button||nx.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarStart'},dom.createHTML('span',null,'<!-- IE -->'));}}c='mceToolbarEnd';if(co.Button)c+=' mceToolbarEndButton';else if(co.SplitButton)c+=' mceToolbarEndSplitButton';else if(co.ListBox)c+=' mceToolbarEndListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));return dom.createHTML('table',{id:t.id,'class':'mceToolbar'+(s['class']?' '+s['class']:''),cellpadding:'0',cellspacing:'0',align:t.settings.align||''},'<tbody><tr>'+h+'</tr></tbody>');}});(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each;tinymce.create('tinymce.AddOnManager',{items:[],urls:{},lookup:{},onAdd:new Dispatcher(this),get:function(n){return this.lookup[n];},requireLangPack:function(n){var u,s;if(tinymce.EditorManager.settings){u=this.urls[n]+'/langs/'+tinymce.EditorManager.settings.language+'.js';s=tinymce.EditorManager.settings;if(s){if(!tinymce.dom.Event.domLoaded&&!s.strict_mode)tinymce.ScriptLoader.load(u);else tinymce.ScriptLoader.add(u);}}},add:function(id,o){this.items.push(o);this.lookup[id]=o;this.onAdd.dispatch(this,id,o);return o;},load:function(n,u,cb,s){var t=this;if(t.urls[n])return;if(u.indexOf('/')!=0&&u.indexOf('://')==-1)u=tinymce.baseURL+'/'+u;t.urls[n]=u.substring(0,u.lastIndexOf('/'));tinymce.ScriptLoader.add(u,cb,s);}});tinymce.PluginManager=new tinymce.AddOnManager();tinymce.ThemeManager=new tinymce.AddOnManager();}());(function(){var each=tinymce.each,extend=tinymce.extend,DOM=tinymce.DOM,Event=tinymce.dom.Event,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,explode=tinymce.explode;tinymce.create('static tinymce.EditorManager',{editors:{},i18n:{},activeEditor:null,preInit:function(){var t=this,lo=window.location;tinymce.documentBaseURL=lo.href.replace(/[\?#].*$/,'').replace(/[\/\\][^\/]+$/,'');if(!/[\/\\]$/.test(tinymce.documentBaseURL))tinymce.documentBaseURL+='/';tinymce.baseURL=new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);tinymce.EditorManager.baseURI=new tinymce.util.URI(tinymce.baseURL);if(tinymce.EditorManager.baseURI.host!=lo.hostname&&lo.hostname)document.domain=tinymce.relaxedDomain=lo.hostname.replace(/.*\.(.+\..+)$/,'$1');t.onBeforeUnload=new tinymce.util.Dispatcher(t);Event.add(window,'beforeunload',function(e){t.onBeforeUnload.dispatch(t,e);});},init:function(s){var t=this,pl,sl=tinymce.ScriptLoader,c;function execCallback(se,n,s){var f=se[n];if(!f)return;if(tinymce.is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);}return f.apply(s||this,Array.prototype.slice.call(arguments,2));};s=extend({theme:"simple",language:"en",strict_loading_mode:document.contentType=='application/xhtml+xml'},s);t.settings=s;if(!Event.domLoaded&&!s.strict_loading_mode){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme&&s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');if(s.plugins){pl=explode(s.plugins);if(tinymce.inArray(pl,'compat2x')!=-1)PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');each(pl,function(v){if(v&&v.charAt(0)!='-'&&!PluginManager.urls[v]){if(!tinymce.isWebKit&&v=='safari')return;PluginManager.load(v,'plugins/'+v+'/editor_plugin'+tinymce.suffix+'.js');}});}sl.loadQueue();}Event.add(document,'init',function(){var l,co;execCallback(s,'onpageload');if(s.browsers){l=false;each(explode(s.browsers),function(v){switch(v){case'ie':case'msie':if(tinymce.isIE)l=true;break;case'gecko':if(tinymce.isGecko)l=true;break;case'safari':case'webkit':if(tinymce.isWebKit)l=true;break;case'opera':if(tinymce.isOpera)l=true;break;}});if(!l)return;}switch(s.mode){case"exact":l=s.elements||'';if(l.length>0){each(explode(l),function(v){if(DOM.get(v))new tinymce.Editor(v,s).render(1);else{c=0;each(document.forms,function(f){each(f.elements,function(e){if(e.name===v){v='mce_editor_'+c;DOM.setAttrib(e,'id',v);new tinymce.Editor(v,s).render(1);}});});}});}break;case"textareas":case"specific_textareas":function hasClass(n,c){return new RegExp('\\b'+c+'\\b','g').test(n.className);};each(DOM.select('textarea'),function(v){if(s.editor_deselector&&hasClass(v,s.editor_deselector))return;if(!s.editor_selector||hasClass(v,s.editor_selector)){v.id=v.id||v.name;if(!v.id||t.get(v.id))v.id=DOM.uniqueId();new tinymce.Editor(v.id,s).render(1);}});break;}if(s.oninit){l=co=0;each(t.editors,function(ed){co++;if(!ed.initialized){ed.onInit.add(function(){l++;if(l==co)execCallback(s,'oninit');});}else l++;if(l==co)execCallback(s,'oninit');});}});},get:function(id){return this.editors[id];},getInstanceById:function(id){return this.get(id);},add:function(e){this.editors[e.id]=e;this._setActive(e);return e;},remove:function(e){var t=this;if(!t.editors[e.id])return null;delete t.editors[e.id];if(t.activeEditor==e){each(t.editors,function(e){t._setActive(e);return false;});}e.destroy();return e;},execCommand:function(c,u,v){var t=this,ed=t.get(v),w;switch(c){case"mceFocus":ed.focus();return true;case"mceAddEditor":case"mceAddControl":new tinymce.Editor(v,t.settings).render();return true;case"mceAddFrameControl":w=v.window;w.tinyMCE=tinyMCE;w.tinymce=tinymce;tinymce.DOM.doc=w.document;tinymce.DOM.win=w;ed=new tinymce.Editor(v.element_id,v);ed.render();if(tinymce.isIE){function clr(){ed.destroy();w.detachEvent('onunload',clr);w=w.tinyMCE=w.tinymce=null;};w.attachEvent('onunload',clr);}v.page_window=null;return true;case"mceRemoveEditor":case"mceRemoveControl":ed.remove();return true;case'mceToggleEditor':if(!ed){t.execCommand('mceAddControl',0,v);return true;}if(ed.isHidden())ed.show();else ed.hide();return true;}if(t.activeEditor)return t.activeEditor.execCommand(c,u,v);return false;},execInstanceCommand:function(id,c,u,v){var ed=this.get(id);if(ed)return ed.execCommand(c,u,v);return false;},triggerSave:function(){each(this.editors,function(e){e.save();});},addI18n:function(p,o){var lo,i18n=this.i18n;if(!tinymce.is(p,'string')){each(p,function(o,lc){each(o,function(o,g){each(o,function(o,k){if(g==='common')i18n[lc+'.'+k]=o;else i18n[lc+'.'+g+'.'+k]=o;});});});}else{each(o,function(o,k){i18n[p+'.'+k]=o;});}},_setActive:function(e){this.selectedInstance=this.activeEditor=e;}});tinymce.EditorManager.preInit();})();var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,Dispatcher=tinymce.util.Dispatcher;var each=tinymce.each,isGecko=tinymce.isGecko,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit;var is=tinymce.is,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,EditorManager=tinymce.EditorManager;var inArray=tinymce.inArray,grep=tinymce.grep,explode=tinymce.explode;tinymce.create('tinymce.Editor',{Editor:function(id,s){var t=this;t.id=t.editorId=id;t.execCommands={};t.queryStateCommands={};t.queryValueCommands={};t.plugins={};each(['onPreInit','onBeforeRenderUI','onPostRender','onInit','onRemove','onActivate','onDeactivate','onClick','onEvent','onMouseUp','onMouseDown','onDblClick','onKeyDown','onKeyUp','onKeyPress','onContextMenu','onSubmit','onReset','onPaste','onPreProcess','onPostProcess','onBeforeSetContent','onBeforeGetContent','onSetContent','onGetContent','onLoadContent','onSaveContent','onNodeChange','onChange','onBeforeExecCommand','onExecCommand','onUndo','onRedo','onVisualAid','onSetProgressState'],function(e){t[e]=new Dispatcher(t);});t.settings=s=extend({id:id,language:'en',docs_language:'en',theme:'simple',skin:'default',delta_width:0,delta_height:0,popup_css:'',plugins:'',document_base_url:tinymce.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',visual_table_class:'mceItemTable',visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:'xx-small,x-small,small,medium,large,x-large,xx-large',apply_source_formatting:1,directionality:'ltr',forced_root_block:'p',valid_elements:'@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote,-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value|_value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:'30px'},s);t.documentBaseURI=new tinymce.util.URI(s.document_base_url||tinymce.documentBaseURL,{base_uri:tinyMCE.baseURI});t.baseURI=EditorManager.baseURI;t.execCallback('setup',t);},render:function(nst){var t=this,s=t.settings,id=t.id,sl=tinymce.ScriptLoader;if(!Event.domLoaded){Event.add(document,'init',function(){t.render();});return;}if(!nst){s.strict_loading_mode=1;tinyMCE.settings=s;}if(!t.getElement())return;if(s.strict_loading_mode){sl.settings.strict_mode=s.strict_loading_mode;tinymce.DOM.settings.strict=1;}if(!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&s.hidden_input&&DOM.getParent(id,'form'))DOM.insertAfter(DOM.create('input',{type:'hidden',name:id}),id);t.windowManager=new tinymce.WindowManager(t);if(s.encoding=='xml'){t.onGetContent.add(function(ed,o){if(o.get)o.content=DOM.encode(o.content);});}if(s.add_form_submit_trigger){t.onSubmit.addToTop(function(){if(t.initialized){t.save();t.isNotDirty=1;}});}if(s.add_unload_trigger){t._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(t.initialized&&!t.destroyed)t.save({format:'raw',no_events:true});});}tinymce.addUnload(t.destroy,t);if(s.submit_patch){t.onBeforeRenderUI.add(function(){var n=t.getElement().form;if(!n)return;if(n._mceOldSubmit)return;if(!n.submit.nodeType&&!n.submit.length){t.formElement=n;n._mceOldSubmit=n.submit;n.submit=function(){EditorManager.triggerSave();t.isNotDirty=1;return this._mceOldSubmit(this);};}n=null;});}function loadScripts(){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');each(explode(s.plugins),function(p){if(p&&p.charAt(0)!='-'&&!PluginManager.urls[p]){if(!isWebKit&&p=='safari')return;PluginManager.load(p,'plugins/'+p+'/editor_plugin'+tinymce.suffix+'.js');}});sl.loadQueue(function(){if(s.ask){function ask(){t.windowManager.confirm(t.getLang('edit_confirm'),function(s){if(s)t.init();else Event.remove(t.id,'focus',ask);});};Event.add(t.id,'focus',ask);return;}if(!t.removed)t.init();});};if(s.plugins.indexOf('compat2x')!=-1){PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');sl.loadQueue(loadScripts);}else loadScripts();},init:function(){var n,t=this,s=t.settings,w,h,e=t.getElement(),o,ti,u,bi,bc,re;EditorManager.add(t);s.theme=s.theme.replace(/-/,'');o=ThemeManager.get(s.theme);t.theme=new o();if(t.theme.init&&s.init_theme)t.theme.init(t,ThemeManager.urls[s.theme]||tinymce.documentBaseURL.replace(/\/$/,''));each(explode(s.plugins.replace(/\-/g,'')),function(p){var c=PluginManager.get(p),u=PluginManager.urls[p]||tinymce.documentBaseURL.replace(/\/$/,''),po;if(c){po=new c(t,u);t.plugins[p]=po;if(po.init)po.init(t,u);}});if(s.popup_css)s.popup_css=t.documentBaseURI.toAbsolute(s.popup_css);else s.popup_css=t.baseURI.toAbsolute("themes/"+s.theme+"/skins/"+s.skin+"/dialog.css");if(s.popup_css_add)s.popup_css+=','+t.documentBaseURI.toAbsolute(s.popup_css_add);t.controlManager=new tinymce.ControlManager(t);t.undoManager=new tinymce.UndoManager(t);t.undoManager.onAdd.add(function(um,l){return t.onChange.dispatch(t,l,um);});t.undoManager.onUndo.add(function(um,l){return t.onUndo.dispatch(t,l,um);});t.undoManager.onRedo.add(function(um,l){return t.onRedo.dispatch(t,l,um);});if(s.custom_undo_redo){t.onExecCommand.add(function(ed,cmd,ui,val,a){if(cmd!='Undo'&&cmd!='Redo'&&cmd!='mceRepaint'&&(!a||!a.skip_undo))t.undoManager.add();});}t.onExecCommand.add(function(ed,c){if(!/^(FontName|FontSize)$/.test(c))t.nodeChanged();});if(isGecko){function repaint(a,o){if(!o||!o.initial)t.execCommand('mceRepaint');};t.onUndo.add(repaint);t.onRedo.add(repaint);t.onSetContent.add(repaint);}t.onBeforeRenderUI.dispatch(t,t.controlManager);if(s.render_ui){w=s.width||e.style.width||e.clientWidth;h=s.height||e.style.height||e.clientHeight;t.orgDisplay=e.style.display;re=/^[0-9\.]+(|px)$/i;if(re.test(''+w))w=Math.max(parseInt(w)+(o.deltaWidth||0),100);if(re.test(''+h))h=Math.max(parseInt(h)+(o.deltaHeight||0),100);o=t.theme.renderUI({targetNode:e,width:w,height:h,deltaWidth:s.delta_width,deltaHeight:s.delta_height});t.editorContainer=o.editorContainer;}DOM.setStyles(o.sizeContainer||o.editorContainer,{width:w,height:h});h=(o.iframeHeight||h)+((h+'').indexOf('%')==-1?(o.deltaHeight||0):'');if(h<100)h=100;t.iframeHTML=s.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="'+t.documentBaseURI.getURI()+'"></base>';t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';if(tinymce.relaxedDomain)t.iframeHTML+='<script type="text/javascript">document.domain = "'+tinymce.relaxedDomain+'";</script>';bi=s.body_id||'tinymce';if(bi.indexOf('=')!=-1){bi=t.getParam('body_id','','hash');bi=bi[t.id]||bi;}bc=s.body_class||'';if(bc.indexOf('=')!=-1){bc=t.getParam('body_class','','hash');bc=bc[t.id]||'';}t.iframeHTML+='</head><body id="'+bi+'" class="mceContentBody '+bc+'"></body></html>';if(tinymce.relaxedDomain){if(isIE)u='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';else if(tinymce.isOpera)u='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()';}n=DOM.add(o.iframeContainer,'iframe',{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:'0',style:{width:'100%',height:h}});t.contentAreaContainer=o.iframeContainer;DOM.get(o.editorContainer).style.display=t.orgDisplay;DOM.get(t.id).style.display='none';if(tinymce.isOldWebKit){Event.add(n,'load',t.setupIframe,t);n.src=tinymce.baseURL+'/plugins/safari/blank.htm';}else{if(!isIE||!tinymce.relaxedDomain)t.setupIframe();e=n=o=null;}},setupIframe:function(){var t=this,s=t.settings,e=DOM.get(t.id),d=t.getDoc(),h,b;if(!isIE||!tinymce.relaxedDomain){d.open();d.write(t.iframeHTML);d.close();}if(!isIE){try{d.designMode='On';}catch(ex){}}if(isIE){b=t.getBody();DOM.hide(b);b.contentEditable=true;DOM.show(b);}t.dom=new tinymce.DOM.DOMUtils(t.getDoc(),{keep_values:true,url_converter:t.convertURL,url_converter_scope:t,hex_colors:s.force_hex_style_colors,class_filter:s.class_filter,update_styles:1,fix_ie_paragraphs:1});t.serializer=new tinymce.dom.Serializer({entity_encoding:s.entity_encoding,entities:s.entities,valid_elements:s.verify_html===false?'*[*]':s.valid_elements,extended_valid_elements:s.extended_valid_elements,valid_child_elements:s.valid_child_elements,invalid_elements:s.invalid_elements,fix_table_elements:s.fix_table_elements,fix_list_elements:s.fix_list_elements,fix_content_duplication:s.fix_content_duplication,convert_fonts_to_spans:s.convert_fonts_to_spans,font_size_classes:s.font_size_classes,font_size_style_values:s.font_size_style_values,apply_source_formatting:s.apply_source_formatting,remove_linebreaks:s.remove_linebreaks,dom:t.dom});t.selection=new tinymce.dom.Selection(t.dom,t.getWin(),t.serializer);t.forceBlocks=new tinymce.ForceBlocks(t,{forced_root_block:s.forced_root_block});t.editorCommands=new tinymce.EditorCommands(t);t.serializer.onPreProcess.add(function(se,o){return t.onPreProcess.dispatch(t,o,se);});t.serializer.onPostProcess.add(function(se,o){return t.onPostProcess.dispatch(t,o,se);});t.onPreInit.dispatch(t);if(!s.gecko_spellcheck)t.getBody().spellcheck=0;t._addEvents();t.controlManager.onPostRender.dispatch(t,t.controlManager);t.onPostRender.dispatch(t);if(s.directionality)t.getBody().dir=s.directionality;if(s.nowrap)t.getBody().style.whiteSpace="nowrap";if(s.auto_resize)t.onNodeChange.add(t.resizeToContent,t);if(s.custom_elements){function handleCustom(ed,o){each(explode(s.custom_elements),function(v){var n;if(v.indexOf('~')===0){v=v.substring(1);n='span';}else n='div';o.content=o.content.replace(new RegExp('<('+v+')([^>]*)>','g'),'<'+n+' mce_name="$1"$2>');o.content=o.content.replace(new RegExp('</('+v+')>','g'),'</'+n+'>');});};t.onBeforeSetContent.add(handleCustom);t.onPostProcess.add(function(ed,o){if(o.set)handleCustom(ed,o)});}if(s.handle_node_change_callback){t.onNodeChange.add(function(ed,cm,n){t.execCallback('handle_node_change_callback',t.id,n,-1,-1,true,t.selection.isCollapsed());});}if(s.save_callback){t.onSaveContent.add(function(ed,o){var h=t.execCallback('save_callback',t.id,o.content,t.getBody());if(h)o.content=h;});}if(s.onchange_callback){t.onChange.add(function(ed,l){t.execCallback('onchange_callback',t,l);});}if(s.convert_newlines_to_brs){t.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/\r?\n/g,'<br />');});}if(s.fix_nesting&&isIE){t.onBeforeSetContent.add(function(ed,o){o.content=t._fixNesting(o.content);});}if(s.preformatted){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^\s*<pre.*?>/,'');o.content=o.content.replace(/<\/pre>\s*$/,'');if(o.set)o.content='<pre class="mceItemHidden">'+o.content+'</pre>';});}if(s.verify_css_classes){t.serializer.attribValueFilter=function(n,v){var s,cl;if(n=='class'){if(!t.classesRE){cl=t.dom.getClasses();if(cl.length>0){s='';each(cl,function(o){s+=(s?'|':'')+o['class'];});t.classesRE=new RegExp('('+s+')','gi');}}return!t.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v)||t.classesRE.test(v)?v:'';}return v;};}if(s.convert_fonts_to_spans)t._convertFonts();if(s.inline_styles)t._convertInlineElements();if(s.cleanup_callback){t.onBeforeSetContent.add(function(ed,o){o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);});t.onPreProcess.add(function(ed,o){if(o.set)t.execCallback('cleanup_callback','insert_to_editor_dom',o.node,o);if(o.get)t.execCallback('cleanup_callback','get_from_editor_dom',o.node,o);});t.onPostProcess.add(function(ed,o){if(o.set)o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);if(o.get)o.content=t.execCallback('cleanup_callback','get_from_editor',o.content,o);});}if(s.save_callback){t.onGetContent.add(function(ed,o){if(o.save)o.content=t.execCallback('save_callback',t.id,o.content,t.getBody());});}if(s.handle_event_callback){t.onEvent.add(function(ed,e,o){if(t.execCallback('handle_event_callback',e,ed,o)===false)Event.cancel(e);});}t.onSetContent.add(function(){t.addVisual(t.getBody());});if(s.padd_empty_editor){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^<p>( |#160;|\s|\u00a0)<\/p>$/,'');});}if(isGecko){try{d.designMode='Off';d.designMode='On';}catch(ex){}}setTimeout(function(){if(t.removed)return;t.load({initial:true,format:(s.cleanup_on_startup?'html':'raw')});t.startContent=t.getContent({format:'raw'});t.undoManager.add({initial:true});t.initialized=true;t.onInit.dispatch(t);t.execCallback('setupcontent_callback',t.id,t.getBody(),t.getDoc());t.execCallback('init_instance_callback',t);t.focus(true);t.nodeChanged({initial:1});if(s.content_css){tinymce.each(explode(s.content_css),function(u){t.dom.loadCSS(t.documentBaseURI.toAbsolute(u));});}if(s.auto_focus){setTimeout(function(){var ed=EditorManager.get(s.auto_focus);ed.selection.select(ed.getBody(),1);ed.selection.collapse(1);ed.getWin().focus();},100);}},1);e=null;},focus:function(sf){var oed,t=this;if(!sf){t.getWin().focus();}if(EditorManager.activeEditor!=t){if((oed=EditorManager.activeEditor)!=null)oed.onDeactivate.dispatch(oed,t);t.onActivate.dispatch(t,oed);}EditorManager._setActive(t);},execCallback:function(n){var t=this,f=t.settings[n],s;if(!f)return;if(t.callbackLookup&&(s=t.callbackLookup[n])){f=s.func;s=s.scope;}if(is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);t.callbackLookup=t.callbackLookup||{};t.callbackLookup[n]={func:f,scope:s};}return f.apply(s||t,Array.prototype.slice.call(arguments,1));},translate:function(s){var c=this.settings.language,i18n=EditorManager.i18n;if(!s)return'';return i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return i18n[c+'.'+b]||'{#'+b+'}';});},getLang:function(n,dv){return EditorManager.i18n[this.settings.language+'.'+n]||(is(dv)?dv:'{#'+n+'}');},getParam:function(n,dv,ty){var tr=tinymce.trim,v=is(this.settings[n])?this.settings[n]:dv,o;if(ty==='hash'){o={};if(is(v,'string')){each(v.indexOf('=')>0?v.split(/[;,](?![^=;,]*(?:[;,]|$))/):v.split(','),function(v){v=v.split('=');if(v.length>1)o[tr(v[0])]=tr(v[1]);else o[tr(v[0])]=tr(v);});}else o=v;return o;}return v;},nodeChanged:function(o){var t=this,s=t.selection,n=s.getNode()||t.getBody();if(t.initialized){t.onNodeChange.dispatch(t,o?o.controlManager||t.controlManager:t.controlManager,isIE&&n.ownerDocument!=t.getDoc()?t.getBody():n,s.isCollapsed(),o);}},addButton:function(n,s){var t=this;t.buttons=t.buttons||{};t.buttons[n]=s;},addCommand:function(n,f,s){this.execCommands[n]={func:f,scope:s||this};},addQueryStateHandler:function(n,f,s){this.queryStateCommands[n]={func:f,scope:s||this};},addQueryValueHandler:function(n,f,s){this.queryValueCommands[n]={func:f,scope:s||this};},addShortcut:function(pa,desc,cmd_func,sc){var t=this,c;if(!t.settings.custom_shortcuts)return false;t.shortcuts=t.shortcuts||{};if(is(cmd_func,'string')){c=cmd_func;cmd_func=function(){t.execCommand(c,false,null);};}if(is(cmd_func,'object')){c=cmd_func;cmd_func=function(){t.execCommand(c[0],c[1],c[2]);};}each(explode(pa),function(pa){var o={func:cmd_func,scope:sc||this,desc:desc,alt:false,ctrl:false,shift:false};each(explode(pa,'+'),function(v){switch(v){case'alt':case'ctrl':case'shift':o[v]=true;break;default:o.charCode=v.charCodeAt(0);o.keyCode=v.toUpperCase().charCodeAt(0);}});t.shortcuts[(o.ctrl?'ctrl':'')+','+(o.alt?'alt':'')+','+(o.shift?'shift':'')+','+o.keyCode]=o;});return true;},execCommand:function(cmd,ui,val,a){var t=this,s=0,o;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd)&&(!a||!a.skip_focus))t.focus();o={};t.onBeforeExecCommand.dispatch(t,cmd,ui,val,o);if(o.terminate)return false;if(t.execCallback('execcommand_callback',t.id,t.selection.getNode(),cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(o=t.execCommands[cmd]){s=o.func.call(o.scope,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);return s;}each(t.plugins,function(p){if(p.execCommand&&p.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);s=1;return false;}});if(s)return true;if(t.theme.execCommand&&t.theme.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(t.editorCommands.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}t.getDoc().execCommand(cmd,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);},queryCommandState:function(c){var t=this,o;if(t._isHidden())return;if(o=t.queryStateCommands[c])return o.func.call(o.scope);o=t.editorCommands.queryCommandState(c);if(o!==-1)return o;try{return this.getDoc().queryCommandState(c);}catch(ex){}},queryCommandValue:function(c){var t=this,o;if(t._isHidden())return;if(o=t.queryValueCommands[c])return o.func.call(o.scope);o=t.editorCommands.queryCommandValue(c);if(is(o))return o;try{return this.getDoc().queryCommandValue(c);}catch(ex){}},show:function(){var t=this;DOM.show(t.getContainer());DOM.hide(t.id);t.load();},hide:function(){var t=this,d=t.getDoc();if(isIE&&d)d.execCommand('SelectAll');t.save();DOM.hide(t.getContainer());DOM.setStyle(t.id,'display',t.orgDisplay);},isHidden:function(){return!DOM.isHidden(this.id);},setProgressState:function(b,ti,o){this.onSetProgressState.dispatch(this,b,ti,o);return b;},resizeToContent:function(){var t=this;DOM.setStyle(t.id+"_ifr",'height',t.getBody().scrollHeight);},load:function(o){var t=this,e=t.getElement(),h;o=o||{};o.load=true;h=t.setContent(is(e.value)?e.value:e.innerHTML,o);o.element=e;if(!o.no_events)t.onLoadContent.dispatch(t,o);o.element=e=null;return h;},save:function(o){var t=this,e=t.getElement(),h,f;if(!t.initialized)return;o=o||{};o.save=true;o.element=e;h=o.content=t.getContent(o);if(!o.no_events)t.onSaveContent.dispatch(t,o);h=o.content;if(!/TEXTAREA|INPUT/i.test(e.nodeName)){e.innerHTML=h;if(f=DOM.getParent(t.id,'form')){each(f.elements,function(e){if(e.name==t.id){e.value=h;return false;}});}}else e.value=h;o.element=e=null;return h;},setContent:function(h,o){var t=this;o=o||{};o.format=o.format||'html';o.set=true;o.content=h;if(!o.no_events)t.onBeforeSetContent.dispatch(t,o);if(!tinymce.isIE&&(h.length===0||/^\s+$/.test(h))){o.content=t.dom.setHTML(t.getBody(),'<br mce_bogus="1" />',1);o.format='raw';}o.content=t.dom.setHTML(t.getBody(),tinymce.trim(o.content));if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;o.content=t.dom.setHTML(t.getBody(),t.serializer.serialize(t.getBody(),o));}if(!o.no_events)t.onSetContent.dispatch(t,o);return o.content;},getContent:function(o){var t=this,h;o=o||{};o.format=o.format||'html';o.get=true;if(!o.no_events)t.onBeforeGetContent.dispatch(t,o);if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;h=t.serializer.serialize(t.getBody(),o);}else h=t.getBody().innerHTML;h=h.replace(/^\s*|\s*$/g,'');o={content:h};t.onGetContent.dispatch(t,o);return o.content;},isDirty:function(){var t=this;return tinymce.trim(t.startContent)!=tinymce.trim(t.getContent({format:'raw',no_events:1}))&&!t.isNotDirty;},getContainer:function(){var t=this;if(!t.container)t.container=DOM.get(t.editorContainer||t.id+'_parent');return t.container;},getContentAreaContainer:function(){return this.contentAreaContainer;},getElement:function(){return DOM.get(this.settings.content_element||this.id);},getWin:function(){var t=this,e;if(!t.contentWindow){e=DOM.get(t.id+"_ifr");if(e)t.contentWindow=e.contentWindow;}return t.contentWindow;},getDoc:function(){var t=this,w;if(!t.contentDocument){w=t.getWin();if(w)t.contentDocument=w.document;}return t.contentDocument;},getBody:function(){return this.bodyElement||this.getDoc().body;},convertURL:function(u,n,e){var t=this,s=t.settings;if(s.urlconverter_callback)return t.execCallback('urlconverter_callback',u,e,true,n);if(!s.convert_urls||(e&&e.nodeName=='LINK')||u.indexOf('file:')===0)return u;if(s.relative_urls)return t.documentBaseURI.toRelative(u);u=t.documentBaseURI.toAbsolute(u,s.remove_script_host);return u;},addVisual:function(e){var t=this,s=t.settings;e=e||t.getBody();if(!is(t.hasVisual))t.hasVisual=s.visual;each(t.dom.select('table,a',e),function(e){var v;switch(e.nodeName){case'TABLE':v=t.dom.getAttrib(e,'border');if(!v||v=='0'){if(t.hasVisual)t.dom.addClass(e,s.visual_table_class);else t.dom.removeClass(e,s.visual_table_class);}return;case'A':v=t.dom.getAttrib(e,'name');if(v){if(t.hasVisual)t.dom.addClass(e,'mceItemAnchor');else t.dom.removeClass(e,'mceItemAnchor');}return;}});t.onVisualAid.dispatch(t,e,t.hasVisual);},remove:function(){var t=this,e=t.getContainer();t.removed=1;t.hide();t.execCallback('remove_instance_callback',t);t.onRemove.dispatch(t);t.onExecCommand.listeners=[];EditorManager.remove(t);DOM.remove(e);},destroy:function(s){var t=this;if(t.destroyed)return;if(!s){tinymce.removeUnload(t.destroy);tinyMCE.onBeforeUnload.remove(t._beforeUnload);if(t.theme.destroy)t.theme.destroy();t.controlManager.destroy();t.selection.destroy();t.dom.destroy();Event.clear(t.getWin());Event.clear(t.getDoc());Event.clear(t.getBody());Event.clear(t.formElement);}if(t.formElement){t.formElement.submit=t.formElement._mceOldSubmit;t.formElement._mceOldSubmit=null;}t.contentAreaContainer=t.formElement=t.container=t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null;if(t.selection)t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null;t.destroyed=1;},_addEvents:function(){var t=this,i,s=t.settings,lo={mouseup:'onMouseUp',mousedown:'onMouseDown',click:'onClick',keyup:'onKeyUp',keydown:'onKeyDown',keypress:'onKeyPress',submit:'onSubmit',reset:'onReset',contextmenu:'onContextMenu',dblclick:'onDblClick',paste:'onPaste'};function eventHandler(e,o){var ty=e.type;if(t.removed)return;if(t.onEvent.dispatch(t,e,o)!==false){t[lo[e.fakeType||e.type]].dispatch(t,e,o);}};each(lo,function(v,k){switch(k){case'contextmenu':if(tinymce.isOpera){Event.add(t.getDoc(),'mousedown',function(e){if(e.ctrlKey){e.fakeType='contextmenu';eventHandler(e);}});}else Event.add(t.getDoc(),k,eventHandler);break;case'paste':Event.add(t.getBody(),k,function(e){var tx,h,el,r;if(e.clipboardData)tx=e.clipboardData.getData('text/plain');else if(tinymce.isIE)tx=t.getWin().clipboardData.getData('Text');eventHandler(e,{text:tx,html:h});});break;case'submit':case'reset':Event.add(t.getElement().form||DOM.getParent(t.id,'form'),k,eventHandler);break;default:Event.add(s.content_editable?t.getBody():t.getDoc(),k,eventHandler);}});Event.add(s.content_editable?t.getBody():(isGecko?t.getDoc():t.getWin()),'focus',function(e){t.focus(true);});if(tinymce.isGecko){Event.add(t.getDoc(),'DOMNodeInserted',function(e){var v;e=e.target;if(e.nodeType===1&&e.nodeName==='IMG'&&(v=e.getAttribute('mce_src')))e.src=t.documentBaseURI.toAbsolute(v);});}if(isGecko){function setOpts(){var t=this,d=t.getDoc(),s=t.settings;if(isGecko){if(t._isHidden()){try{if(!s.content_editable)d.designMode='On';}catch(ex){}}try{d.execCommand("styleWithCSS",0,false);}catch(ex){if(!t._isHidden())d.execCommand("useCSS",0,true);}if(!s.table_inline_editing)try{d.execCommand('enableInlineTableEditing',false,false);}catch(ex){}if(!s.object_resizing)try{d.execCommand('enableObjectResizing',false,false);}catch(ex){}}};t.onBeforeExecCommand.add(setOpts);t.onMouseDown.add(setOpts);}t.onMouseUp.add(t.nodeChanged);t.onClick.add(t.nodeChanged);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.keyCode==46||e.keyCode==8||e.ctrlKey)t.nodeChanged();});t.onReset.add(function(){t.setContent(t.startContent,{format:'raw'});});if(t.getParam('tab_focus')){function tabCancel(ed,e){if(e.keyCode===9)return Event.cancel(e);};function tabHandler(ed,e){var x,i,f,el,v;function find(d){f=DOM.getParent(ed.id,'form');el=f.elements;if(f){each(el,function(e,i){if(e.id==ed.id){x=i;return false;}});if(d>0){for(i=x+1;i<el.length;i++){if(el[i].type!='hidden')return el[i];}}else{for(i=x-1;i>=0;i--){if(el[i].type!='hidden')return el[i];}}}return null;};if(e.keyCode===9){v=explode(ed.getParam('tab_focus'));if(v.length==1){v[1]=v[0];v[0]=':prev';}if(e.shiftKey){if(v[0]==':prev')el=find(-1);else el=DOM.get(v[0]);}else{if(v[1]==':next')el=find(1);else el=DOM.get(v[1]);}if(el){if(ed=EditorManager.get(el.id||el.name))ed.focus();else window.setTimeout(function(){window.focus();el.focus();},10);return Event.cancel(e);}}};t.onKeyUp.add(tabCancel);if(isGecko){t.onKeyPress.add(tabHandler);t.onKeyDown.add(tabCancel);}else t.onKeyDown.add(tabHandler);}if(s.custom_shortcuts){if(s.custom_undo_redo_keyboard_shortcuts){t.addShortcut('ctrl+z',t.getLang('undo_desc'),'Undo');t.addShortcut('ctrl+y',t.getLang('redo_desc'),'Redo');}if(isGecko){t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold');t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic');t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline');}for(i=1;i<=6;i++)t.addShortcut('ctrl+'+i,'',['FormatBlock',false,'<h'+i+'>']);t.addShortcut('ctrl+7','',['FormatBlock',false,'<p>']);t.addShortcut('ctrl+8','',['FormatBlock',false,'<div>']);t.addShortcut('ctrl+9','',['FormatBlock',false,'<address>']);function find(e){var v=null;if(!e.altKey&&!e.ctrlKey&&!e.metaKey)return v;each(t.shortcuts,function(o){if(o.ctrl!=e.ctrlKey&&(!tinymce.isMac||o.ctrl==e.metaKey))return;if(o.alt!=e.altKey)return;if(o.shift!=e.shiftKey)return;if(e.keyCode==o.keyCode||(e.charCode&&e.charCode==o.charCode)){v=o;return false;}});return v;};t.onKeyUp.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyPress.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyDown.add(function(ed,e){var o=find(e);if(o){o.func.call(o.scope);return Event.cancel(e);}});}if(tinymce.isIE){Event.add(t.getDoc(),'controlselect',function(e){var re=t.resizeInfo,cb;e=e.target;e.removeAttribute('mce_style');if(e.nodeName!=='IMG')return;if(re)Event.remove(re.node,re.ev,re.cb);if(!t.dom.hasClass(e,'mceItemNoResize')){ev='resizeend';cb=Event.add(e,ev,function(e){var v;e=e.target;if(v=t.dom.getStyle(e,'width')){t.dom.setAttrib(e,'width',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'width','');}if(v=t.dom.getStyle(e,'height')){t.dom.setAttrib(e,'height',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'height','');}});}else{ev='resizestart';cb=Event.add(e,'resizestart',Event.cancel,Event);}re=t.resizeInfo={node:e,ev:ev,cb:cb};});t.onKeyDown.add(function(ed,e){switch(e.keyCode){case 8:if(t.selection.getRng().item){t.selection.getRng().item(0).removeNode();return Event.cancel(e);}}});}if(tinymce.isOpera){t.onClick.add(function(ed,e){Event.prevent(e);});}if(s.custom_undo_redo){function addUndo(){t.undoManager.typing=0;t.undoManager.add();};if(tinymce.isIE){Event.add(t.getWin(),'blur',function(e){var n;if(t.selection){n=t.selection.getNode();if(!t.removed&&n.ownerDocument&&n.ownerDocument!=t.getDoc())addUndo();}});}else{Event.add(t.getDoc(),'blur',function(){if(t.selection&&!t.removed)addUndo();});}t.onMouseDown.add(addUndo);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.ctrlKey){t.undoManager.typing=0;t.undoManager.add();}});t.onKeyDown.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45){if(t.undoManager.typing){t.undoManager.add();t.undoManager.typing=0;}return;}if(!t.undoManager.typing){t.undoManager.add();t.undoManager.typing=1;}});}},_convertInlineElements:function(){var t=this,s=t.settings,dom=t.dom,v,e,na,st,sp;function convert(ed,o){if(!s.inline_styles)return;if(o.get){each(t.dom.select('table,u,strike',o.node),function(n){switch(n.nodeName){case'TABLE':if(v=dom.getAttrib(n,'height')){dom.setStyle(n,'height',v);dom.setAttrib(n,'height','');}break;case'U':case'STRIKE':sp=dom.create('span',{style:dom.getAttrib(n,'style')});sp.style.textDecoration=n.nodeName=='U'?'underline':'line-through';dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);break;}});}else if(o.set){each(t.dom.select('table,span',o.node),function(n){if(n.nodeName=='TABLE'){if(v=dom.getStyle(n,'height'))dom.setAttrib(n,'height',v.replace(/[^0-9%]+/g,''));}else{if(n.style.textDecoration=='underline')na='u';else if(n.style.textDecoration=='line-through')na='strike';else na='';if(na){n.style.textDecoration='';dom.setAttrib(n,'mce_style','');e=dom.create(na,{style:dom.getAttrib(n,'style')});dom.replace(e,n,1);}}});}};t.onPreProcess.add(convert);if(!s.cleanup_on_startup){t.onInit.add(function(){convert(t,{node:t.getBody(),set:1});});}},_convertFonts:function(){var t=this,s=t.settings,dom=t.dom,fz,fzn,sl,cl;if(!s.inline_styles)return;fz=[8,10,12,14,18,24,36];fzn=['xx-small','x-small','small','medium','large','x-large','xx-large'];if(sl=s.font_size_style_values)sl=explode(sl);if(cl=s.font_size_classes)cl=explode(cl);function convertToFonts(no){var n,f,nl,x,i,v,st;if(tinymce.isWebKit||!s.inline_styles)return;nl=t.dom.select('span',no);for(x=nl.length-1;x>=0;x--){n=nl[x];f=dom.create('font',{color:dom.toHex(dom.getStyle(n,'color')),face:dom.getStyle(n,'fontFamily'),style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});st=f.style;if(st.color||st.fontFamily){st.color=st.fontFamily='';dom.setAttrib(f,'mce_style','');}if(sl){i=inArray(sl,dom.getStyle(n,'fontSize'));if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));f.style.fontSize='';}}else if(cl){i=inArray(cl,dom.getAttrib(n,'class'));v=dom.getStyle(n,'fontSize');if(i==-1&&v.indexOf('pt')>0)i=inArray(fz,parseInt(v));if(i==-1)i=inArray(fzn,v);if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));f.style.fontSize='';}}if(f.color||f.face||f.size){f.style.fontFamily='';dom.setAttrib(f,'mce_style','');dom.replace(f,n,1);}f=n=null;}};t.onSetContent.add(function(ed,o){convertToFonts(ed.getBody());});t.onPreProcess.add(function(ed,o){var n,sp,nl,x;if(!s.inline_styles)return;if(o.get){nl=t.dom.select('font',o.node);for(x=nl.length-1;x>=0;x--){n=nl[x];sp=dom.create('span',{style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});dom.setStyles(sp,{fontFamily:dom.getAttrib(n,'face'),color:dom.getAttrib(n,'color'),backgroundColor:n.style.backgroundColor});if(n.size){if(sl)dom.setStyle(sp,'fontSize',sl[parseInt(n.size)-1]);else dom.setAttrib(sp,'class',cl[parseInt(n.size)-1]);}dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);}}});},_isHidden:function(){var s;if(!isGecko)return 0;s=this.selection.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},_fixNesting:function(s){var d=[],i;s=s.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(a,b,c){var e;if(b==='/'){if(!d.length)return'';if(c!==d[d.length-1].tag){for(i=d.length-1;i>=0;i--){if(d[i].tag===c){d[i].close=1;break;}}return'';}else{d.pop();if(d.length&&d[d.length-1].close){a=a+'</'+d[d.length-1].tag+'>';d.pop();}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(c))return a;if(/\/>$/.test(a))return a;d.push({tag:c});}return a;});for(i=d.length-1;i>=0;i--)s+='</'+d[i].tag+'>';return s;}});})();(function(){var each=tinymce.each,isIE=tinymce.isIE,isGecko=tinymce.isGecko,isOpera=tinymce.isOpera,isWebKit=tinymce.isWebKit;tinymce.create('tinymce.EditorCommands',{EditorCommands:function(ed){this.editor=ed;},execCommand:function(cmd,ui,val){var t=this,ed=t.editor,f;switch(cmd){case'Cut':case'Copy':case'Paste':try{ed.getDoc().execCommand(cmd,ui,val);}catch(ex){if(isGecko){ed.windowManager.confirm(ed.getLang('clipboard_msg'),function(s){if(s)window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');});}else ed.windowManager.alert(ed.getLang('clipboard_no_support'));}return true;case'mceResetDesignMode':case'mceBeginUndoLevel':return true;case'unlink':t.UnLink();return true;case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':t.mceJustify(cmd,cmd.substring(7).toLowerCase());return true;case'mceEndUndoLevel':case'mceAddUndoLevel':ed.undoManager.add();return true;default:f=this[cmd];if(f){f.call(this,ui,val);return true;}}return false;},Indent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){d.setStyle(e,'paddingLeft',(parseInt(e.style.paddingLeft||0)+iv)+iu);});return;}ed.getDoc().execCommand('Indent',false,null);if(isIE){d.getParent(s.getNode(),function(n){if(n.nodeName=='BLOCKQUOTE'){n.dir=n.style.cssText='';}});}},Outdent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,v,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){v=Math.max(0,parseInt(e.style.paddingLeft||0)-iv);d.setStyle(e,'paddingLeft',v?v+iu:'');});return;}ed.getDoc().execCommand('Outdent',false,null);},mceSetAttribute:function(u,v){var ed=this.editor,d=ed.dom,e;if(e=d.getParent(ed.selection.getNode(),d.isBlock))d.setAttrib(e,v.name,v.value);},mceSetContent:function(u,v){this.editor.setContent(v);},mceToggleVisualAid:function(){var ed=this.editor;ed.hasVisual=!ed.hasVisual;ed.addVisual();},mceReplaceContent:function(u,v){var s=this.editor.selection;s.setContent(v.replace(/\{\$selection\}/g,s.getContent({format:'text'})));},mceInsertLink:function(u,v){var ed=this.editor,e=ed.dom.getParent(ed.selection.getNode(),'A');if(tinymce.is(v,'string'))v={href:v};function set(e){each(v,function(v,k){ed.dom.setAttrib(e,k,v);});};if(!e){ed.execCommand('CreateLink',false,'javascript:mctmp(0);');each(ed.dom.select('a'),function(e){if(e.href=='javascript:mctmp(0);')set(e);});}else{if(v.href)set(e);else ed.dom.remove(e,1);}},UnLink:function(){var ed=this.editor,s=ed.selection;if(s.isCollapsed())s.select(s.getNode());ed.getDoc().execCommand('unlink',false,null);s.collapse(0);},FontName:function(u,v){var t=this,ed=t.editor,s=ed.selection,e;if(!v){if(s.isCollapsed())s.select(s.getNode());t.RemoveFormat();}else ed.getDoc().execCommand('FontName',false,v);},queryCommandValue:function(c){var f=this['queryValue'+c];if(f)return f.call(this,c);return false;},queryCommandState:function(cmd){var f;switch(cmd){case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':return this.queryStateJustify(cmd,cmd.substring(7).toLowerCase());default:if(f=this['queryState'+cmd])return f.call(this,cmd);}return-1;},_queryState:function(c){try{return this.editor.getDoc().queryCommandState(c);}catch(ex){}},_queryVal:function(c){try{return this.editor.getDoc().queryCommandValue(c);}catch(ex){}},queryValueFontSize:function(){var ed=this.editor,v=0,p;if(isOpera||isWebKit){if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.size;return v;}return this._queryVal('FontSize');},queryValueFontName:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.face;if(!v)v=this._queryVal('FontName');return v;},mceJustify:function(c,v){var ed=this.editor,se=ed.selection,n=se.getNode(),nn=n.nodeName,bl,nb,dom=ed.dom,rm;if(ed.settings.inline_styles&&this.queryStateJustify(c,v))rm=1;bl=dom.getParent(n,ed.dom.isBlock);if(nn=='IMG'){if(v=='full')return;if(rm){if(v=='center')dom.setStyle(n.parentNode,'textAlign','');dom.setStyle(n,'float','');this.mceRepaint();return;}if(v=='center'){if(/^(TD|TH)$/.test(bl.nodeName))bl=0;if(!bl||bl.childNodes.length>1){nb=dom.create('p');nb.appendChild(n.cloneNode(false));if(bl)dom.insertAfter(nb,bl);else dom.insertAfter(nb,n);dom.remove(n);n=nb.firstChild;bl=nb;}dom.setStyle(bl,'textAlign',v);dom.setStyle(n,'float','');}else{dom.setStyle(n,'float',v);dom.setStyle(n.parentNode,'textAlign','');}this.mceRepaint();return;}if(ed.settings.inline_styles&&ed.settings.forced_root_block){if(rm)v='';each(this._getSelectedBlocks(dom.getParent(se.getStart(),dom.isBlock),dom.getParent(se.getEnd(),dom.isBlock)),function(e){dom.setAttrib(e,'align','');dom.setStyle(e,'textAlign',v=='full'?'justify':v);});return;}else if(!rm)ed.getDoc().execCommand(c,false,null);if(ed.settings.inline_styles){if(rm){dom.getParent(ed.selection.getNode(),function(n){if(n.style&&n.style.textAlign)dom.setStyle(n,'textAlign','');});return;}each(dom.select('*'),function(n){var v=n.align;if(v){if(v=='full')v='justify';dom.setStyle(n,'textAlign',v);dom.setAttrib(n,'align','');}});}},mceSetCSSClass:function(u,v){this.mceSetStyleInfo(0,{command:'setattrib',name:'class',value:v});},getSelectedElement:function(){var t=this,ed=t.editor,dom=ed.dom,se=ed.selection,r=se.getRng(),r1,r2,sc,ec,so,eo,e,sp,ep,re;if(se.isCollapsed()||r.item)return se.getNode();re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(isIE){r1=r.duplicate();r1.collapse(true);sc=r1.parentElement();r2=r.duplicate();r2.collapse(false);ec=r2.parentElement();if(sc!=ec){r1.move('character',1);sc=r1.parentElement();}if(sc==ec){r1=r.duplicate();r1.moveToElementText(sc);if(r1.compareEndPoints('StartToStart',r)==0&&r1.compareEndPoints('EndToEnd',r)==0)return re&&re.test(sc.nodeName)?null:sc;}}else{function getParent(n){return dom.getParent(n,function(n){return n.nodeType==1;});};sc=r.startContainer;ec=r.endContainer;so=r.startOffset;eo=r.endOffset;if(!r.collapsed){if(sc==ec){if(so-eo<2){if(sc.hasChildNodes()){sp=sc.childNodes[so];return re&&re.test(sp.nodeName)?null:sp;}}}}if(sc.nodeType!=3||ec.nodeType!=3)return null;if(so==0){sp=getParent(sc);if(sp&&sp.firstChild!=sc)sp=null;}if(so==sc.nodeValue.length){e=sc.nextSibling;if(e&&e.nodeType==1)sp=sc.nextSibling;}if(eo==0){e=ec.previousSibling;if(e&&e.nodeType==1)ep=e;}if(eo==ec.nodeValue.length){ep=getParent(ec);if(ep&&ep.lastChild!=ec)ep=null;}if(sp==ep)return re&&sp&&re.test(sp.nodeName)?null:sp;}return null;},InsertHorizontalRule:function(){if(isGecko||isIE)this.editor.selection.setContent('<hr />');else this.editor.getDoc().execCommand('InsertHorizontalRule',false,'');},RemoveFormat:function(){var t=this,ed=t.editor,s=ed.selection,b;if(isWebKit)s.setContent(s.getContent({format:'raw'}).replace(/(<(span|b|i|strong|em|strike) [^>]+>|<(span|b|i|strong|em|strike)>|<\/(span|b|i|strong|em|strike)>|)/g,''),{format:'raw'});else ed.getDoc().execCommand('RemoveFormat',false,null);t.mceSetStyleInfo(0,{command:'removeformat'});ed.addVisual();},mceSetStyleInfo:function(u,v){var t=this,ed=t.editor,d=ed.getDoc(),dom=ed.dom,e,b,s=ed.selection,nn=v.wrapper||'span',b=s.getBookmark(),re;function set(n,e){if(n.nodeType==1){switch(v.command){case'setattrib':return dom.setAttrib(n,v.name,v.value);case'setstyle':return dom.setStyle(n,v.name,v.value);case'removeformat':return dom.setAttrib(n,'class','');}}};re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(e=t.getSelectedElement())set(e,1);else{d.execCommand('FontName',false,'__');each(isWebKit?dom.select('span'):dom.select('font'),function(n){var sp,e;if(dom.getAttrib(n,'face')=='__'||n.style.fontFamily==='__'){sp=dom.create(nn,{mce_new:'1'});set(sp);each(n.childNodes,function(n){sp.appendChild(n.cloneNode(true));});dom.replace(sp,n);}});}each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!dom.getAttrib(n,'mce_new')){p=dom.getParent(n,function(n){return n.nodeType==1&&dom.getAttrib(n,'mce_new');});if(p)dom.remove(n,1);}});each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!p||!dom.getAttrib(n,'mce_new'))return;if(p.nodeName==nn.toUpperCase()&&p.childNodes.length==1)return dom.remove(p,1);if(n.nodeType==1&&(!re||!re.test(p.nodeName))&&p.childNodes.length==1){set(p);dom.setAttrib(n,'class','');}});each(dom.select(nn).reverse(),function(n){if(dom.getAttrib(n,'mce_new')||(dom.getAttribs(n).length<=1&&n.className==='')){if(!dom.getAttrib(n,'class')&&!dom.getAttrib(n,'style'))return dom.remove(n,1);dom.setAttrib(n,'mce_new','');}});s.moveToBookmark(b);},queryStateJustify:function(c,v){var ed=this.editor,n=ed.selection.getNode(),dom=ed.dom;if(n&&n.nodeName=='IMG'){if(dom.getStyle(n,'float')==v)return 1;return n.parentNode.style.textAlign==v;}n=dom.getParent(ed.selection.getStart(),function(n){return n.nodeType==1&&n.style.textAlign;});if(v=='full')v='justify';if(ed.settings.inline_styles)return(n&&n.style.textAlign==v);return this._queryState(c);},HiliteColor:function(ui,val){var t=this,ed=t.editor,d=ed.getDoc();function set(s){if(!isGecko)return;try{d.execCommand("styleWithCSS",0,s);}catch(ex){d.execCommand("useCSS",0,!s);}};if(isGecko||isOpera){set(true);d.execCommand('hilitecolor',false,val);set(false);}else d.execCommand('BackColor',false,val);},Undo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.undo();ed.nodeChanged();}else ed.getDoc().execCommand('Undo',false,null);},Redo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.redo();ed.nodeChanged();}else ed.getDoc().execCommand('Redo',false,null);},FormatBlock:function(ui,val){var t=this,ed=t.editor;val=ed.settings.forced_root_block?(val||'<p>'):val;if(/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(ed.selection.getNode().nodeName))t.mceRemoveNode();if(val.indexOf('<')==-1)val='<'+val+'>';if(tinymce.isGecko)val=val.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi,'$1');ed.getDoc().execCommand('FormatBlock',false,val);},mceCleanup:function(){var ed=this.editor,s=ed.selection,b=s.getBookmark();ed.setContent(ed.getContent());s.moveToBookmark(b);},mceRemoveNode:function(ui,val){var ed=this.editor,s=ed.selection,b,n=val||s.getNode();if(n==ed.getBody())return;b=s.getBookmark();ed.dom.remove(n,1);s.moveToBookmark(b);ed.nodeChanged();},mceSelectNodeDepth:function(ui,val){var ed=this.editor,s=ed.selection,c=0;ed.dom.getParent(s.getNode(),function(n){if(n.nodeType==1&&c++==val){s.select(n);ed.nodeChanged();return false;}},ed.getBody());},mceSelectNode:function(u,v){this.editor.selection.select(v);},mceInsertContent:function(ui,val){this.editor.selection.setContent(val);},mceInsertRawHTML:function(ui,val){var ed=this.editor;ed.selection.setContent('tiny_mce_marker');ed.setContent(ed.getContent().replace(/tiny_mce_marker/g,val));},mceRepaint:function(){var s,b,e=this.editor;if(tinymce.isGecko){try{s=e.selection;b=s.getBookmark(true);if(s.getSel())s.getSel().selectAllChildren(e.getBody());s.collapse(true);s.moveToBookmark(b);}catch(ex){}}},queryStateUnderline:function(){var ed=this.editor,n;if(n&&n.nodeName=='A')return false;return this._queryState('Underline');},queryStateOutdent:function(){var ed=this.editor,n;if(ed.settings.inline_styles){if((n=ed.dom.getParent(ed.selection.getStart(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;if((n=ed.dom.getParent(ed.selection.getEnd(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;}else return!!ed.dom.getParent(ed.selection.getNode(),'BLOCKQUOTE');return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList();},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'UL');},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'OL');},queryStatemceBlockQuote:function(){return!!this.editor.dom.getParent(this.editor.selection.getStart(),function(n){return n.nodeName==='BLOCKQUOTE';});},mceBlockQuote:function(){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,sb,eb,n,bm,bq,r,bq2,i,nl;function getBQ(e){return dom.getParent(e,function(n){return n.nodeName==='BLOCKQUOTE';});};sb=dom.getParent(s.getStart(),dom.isBlock);eb=dom.getParent(s.getEnd(),dom.isBlock);if(bq=getBQ(sb)){if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();if(getBQ(eb)){bq2=bq.cloneNode(false);while(n=eb.nextSibling)bq2.appendChild(n.parentNode.removeChild(n));}if(bq2)dom.insertAfter(bq2,bq);nl=t._getSelectedBlocks(sb,eb);for(i=nl.length-1;i>=0;i--){dom.insertAfter(nl[i],bq);}if(/^\s*$/.test(bq.innerHTML))dom.remove(bq,1);if(bq2&&/^\s*$/.test(bq2.innerHTML))dom.remove(bq2,1);if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(0);if(dom.getParent(s.getStart(),dom.isBlock)!=sb){r=s.getRng();r.move('character',-1);r.select();}}}else t.editor.selection.moveToBookmark(bm);return;}if(isIE&&!sb&&!eb){t.editor.getDoc().execCommand('Indent');n=getBQ(s.getNode());n.style.margin=n.dir='';return;}if(!sb||!eb)return;if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();each(t._getSelectedBlocks(getBQ(s.getStart()),getBQ(s.getEnd())),function(e){if(e.nodeName=='BLOCKQUOTE'&&!bq){bq=e;return;}if(!bq){bq=dom.create('blockquote');e.parentNode.insertBefore(bq,e);}if(e.nodeName=='BLOCKQUOTE'&&bq){n=e.firstChild;while(n){bq.appendChild(n.cloneNode(true));n=n.nextSibling;}dom.remove(e);return;}bq.appendChild(dom.remove(e));});if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(1);}}else s.moveToBookmark(bm);},_getSelectedBlocks:function(st,en){var ed=this.editor,dom=ed.dom,s=ed.selection,sb,eb,n,bl=[];sb=dom.getParent(st||s.getStart(),dom.isBlock);eb=dom.getParent(en||s.getEnd(),dom.isBlock);if(sb)bl.push(sb);if(sb&&eb&&sb!=eb){n=sb;while((n=n.nextSibling)&&n!=eb){if(dom.isBlock(n))bl.push(n);}}if(eb&&sb!=eb)bl.push(eb);return bl;}});})();tinymce.create('tinymce.UndoManager',{index:0,data:null,typing:0,UndoManager:function(ed){var t=this,Dispatcher=tinymce.util.Dispatcher;t.editor=ed;t.data=[];t.onAdd=new Dispatcher(this);t.onUndo=new Dispatcher(this);t.onRedo=new Dispatcher(this);},add:function(l){var t=this,i,ed=t.editor,b,s=ed.settings,la;l=l||{};l.content=l.content||ed.getContent({format:'raw',no_events:1});l.content=l.content.replace(/^\s*|\s*$/g,'');la=t.data[t.index>0?t.index-1:0];if(!l.initial&&la&&l.content==la.content)return null;if(s.custom_undo_redo_levels){if(t.data.length>s.custom_undo_redo_levels){for(i=0;i<t.data.length-1;i++)t.data[i]=t.data[i+1];t.data.length--;t.index=t.data.length;}}if(s.custom_undo_redo_restore_selection&&!l.initial)l.bookmark=b=l.bookmark||ed.selection.getBookmark();if(t.index<t.data.length&&t.data[t.index].initial)t.index++;t.data.length=t.index+1;t.data[t.index++]=l;if(l.initial)t.index=0;if(t.data.length==2&&t.data[0].initial)t.data[0].bookmark=b;t.onAdd.dispatch(t,l);ed.isNotDirty=0;return l;},undo:function(){var t=this,ed=t.editor,l=l,i;if(t.typing){t.add();t.typing=0;}if(t.index>0){if(t.index==t.data.length&&t.index>1){i=t.index;t.typing=0;if(!t.add())t.index=i;--t.index;}l=t.data[--t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onUndo.dispatch(t,l);}return l;},redo:function(){var t=this,ed=t.editor,l=null;if(t.index<t.data.length-1){l=t.data[++t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onRedo.dispatch(t,l);}return l;},clear:function(){var t=this;t.data=[];t.index=0;t.typing=0;t.add({initial:true});},hasUndo:function(){return this.index!=0||this.typing;},hasRedo:function(){return this.index<this.data.length-1;}});(function(){var Event,isIE,isGecko,isOpera,each,extend;Event=tinymce.dom.Event;isIE=tinymce.isIE;isGecko=tinymce.isGecko;isOpera=tinymce.isOpera;each=tinymce.each;extend=tinymce.extend;tinymce.create('tinymce.ForceBlocks',{ForceBlocks:function(ed){var t=this,s=ed.settings,elm;t.editor=ed;t.dom=ed.dom;elm=(s.forced_root_block||'p').toLowerCase();s.element=elm.toUpperCase();ed.onPreInit.add(t.setup,t);t.reOpera=new RegExp('(\\u00a0| | )<\/'+elm+'>','gi');t.rePadd=new RegExp('<p( )([^>]+)><\\\/p>|<p( )([^>]+)\\\/>|<p( )([^>]+)>\\s+<\\\/p>|<p><\\\/p>|<p\\\/>|<p>\\s+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR1=new RegExp('<p( )([^>]+)>[\\s\\u00a0]+<\\\/p>|<p>[\\s\\u00a0]+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR2=new RegExp('<p( )([^>]+)>( | )<\\\/p>|<p>( | )<\\\/p>'.replace(/p/g,elm),'gi');t.reBR2Nbsp=new RegExp('<p( )([^>]+)>\\s*<br \\\/>\\s*<\\\/p>|<p>\\s*<br \\\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');t.reTrailBr=new RegExp('\\s*<br \\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');function padd(ed,o){if(isOpera)o.content=o.content.replace(t.reOpera,'</'+elm+'>');o.content=o.content.replace(t.rePadd,'<'+elm+'$1$2$3$4$5$6>\u00a0</'+elm+'>');if(!isIE&&!isOpera&&o.set){o.content=o.content.replace(t.reNbsp2BR1,'<'+elm+'$1$2><br /></'+elm+'>');o.content=o.content.replace(t.reNbsp2BR2,'<'+elm+'$1$2><br /></'+elm+'>');}else{o.content=o.content.replace(t.reBR2Nbsp,'<'+elm+'$1$2>\u00a0</'+elm+'>');o.content=o.content.replace(t.reTrailBr,'</'+elm+'>');}};ed.onBeforeSetContent.add(padd);ed.onPostProcess.add(padd);if(s.forced_root_block){ed.onInit.add(t.forceRoots,t);ed.onSetContent.add(t.forceRoots,t);ed.onBeforeGetContent.add(t.forceRoots,t);}},setup:function(){var t=this,ed=t.editor,s=ed.settings;if(s.forced_root_block){ed.onKeyUp.add(t.forceRoots,t);ed.onPreProcess.add(t.forceRoots,t);}if(s.force_br_newlines){if(isIE){ed.onKeyPress.add(function(ed,e){var n,s=ed.selection;if(e.keyCode==13&&s.getNode().nodeName!='LI'){s.setContent('<br id="__" /> ',{format:'raw'});n=ed.dom.get('__');n.removeAttribute('id');s.select(n);s.collapse();return Event.cancel(e);}});}return;}if(!isIE&&s.force_p_newlines){ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&!e.shiftKey){if(!t.insertPara(e))Event.cancel(e);}});if(isGecko){ed.onKeyDown.add(function(ed,e){if((e.keyCode==8||e.keyCode==46)&&!e.shiftKey)t.backspaceDelete(e,e.keyCode==8);});}}function ren(rn,na){var ne=ed.dom.create(na);each(rn.attributes,function(a){if(a.specified&&a.nodeValue)ne.setAttribute(a.nodeName.toLowerCase(),a.nodeValue);});each(rn.childNodes,function(n){ne.appendChild(n.cloneNode(true));});rn.parentNode.replaceChild(ne,rn);return ne;};if(isIE&&s.element!='P'){ed.onKeyPress.add(function(ed,e){t.lastElm=ed.selection.getNode().nodeName;});ed.onKeyUp.add(function(ed,e){var bl,sel=ed.selection,n=sel.getNode(),b=ed.getBody();if(b.childNodes.length===1&&n.nodeName=='P'){n=ren(n,s.element);sel.select(n);sel.collapse();ed.nodeChanged();}else if(e.keyCode==13&&!e.shiftKey&&t.lastElm!='P'){bl=ed.dom.getParent(n,'P');if(bl){ren(bl,s.element);ed.nodeChanged();}}});}},find:function(n,t,s){var ed=this.editor,w=ed.getDoc().createTreeWalker(n,4,null,false),c=-1;while(n=w.nextNode()){c++;if(t==0&&n==s)return c;if(t==1&&c==s)return n;}return-1;},forceRoots:function(ed,e){var t=this,ed=t.editor,b=ed.getBody(),d=ed.getDoc(),se=ed.selection,s=se.getSel(),r=se.getRng(),si=-2,ei,so,eo,tr,c=-0xFFFFFF;var nx,bl,bp,sp,le,nl=b.childNodes,i;if(e&&e.keyCode==13)return true;for(i=nl.length-1;i>=0;i--){nx=nl[i];if(nx.nodeType==3||(!t.dom.isBlock(nx)&&nx.nodeType!=8)){if(!bl){if(nx.nodeType!=3||/[^\s]/g.test(nx.nodeValue)){if(si==-2&&r){if(!isIE){so=r.startOffset;eo=r.endOffset;si=t.find(b,0,r.startContainer);ei=t.find(b,0,r.endContainer);}else{tr=d.body.createTextRange();tr.moveToElementText(b);tr.collapse(1);bp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(1);sp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(0);le=(tr.move('character',c)*-1)-sp;si=sp-bp;ei=le;}}bl=ed.dom.create(ed.settings.forced_root_block);bl.appendChild(nx.cloneNode(1));nx.parentNode.replaceChild(bl,nx);}}else{if(bl.hasChildNodes())bl.insertBefore(nx,bl.firstChild);else bl.appendChild(nx);}}else bl=null;}if(si!=-2){if(!isIE){bl=d.getElementsByTagName(ed.settings.element)[0];r=d.createRange();if(si!=-1)r.setStart(t.find(b,1,si),so);else r.setStart(bl,0);if(ei!=-1)r.setEnd(t.find(b,1,ei),eo);else r.setEnd(bl,0);if(s){s.removeAllRanges();s.addRange(r);}}else{try{r=s.createRange();r.moveToElementText(b);r.collapse(1);r.moveStart('character',si);r.moveEnd('character',ei);r.select();}catch(ex){}}}},getParentBlock:function(n){var d=this.dom;return d.getParent(n,d.isBlock);},insertPara:function(e){var t=this,ed=t.editor,d=ed.getDoc(),se=ed.settings,s=ed.selection.getSel(),r=s.getRangeAt(0),b=d.body;var rb,ra,dir,sn,so,en,eo,sb,eb,bn,bef,aft,sc,ec,n,vp=ed.dom.getViewPort(ed.getWin()),y,ch;function isEmpty(n){n=n.innerHTML;n=n.replace(/<(img|hr|table)/gi,'-');n=n.replace(/<[^>]+>/g,'');return n.replace(/[ \t\r\n]+/g,'')=='';};rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(true);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(true);dir=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;sn=dir?s.anchorNode:s.focusNode;so=dir?s.anchorOffset:s.focusOffset;en=dir?s.focusNode:s.anchorNode;eo=dir?s.focusOffset:s.anchorOffset;if(sn==b&&en==b&&b.firstChild&&ed.dom.isBlock(b.firstChild)){sn=en=sn.firstChild;so=eo=0;rb=d.createRange();rb.setStart(sn,0);ra=d.createRange();ra.setStart(en,0);}sn=sn.nodeName=="HTML"?d.body:sn;sn=sn.nodeName=="BODY"?sn.firstChild:sn;en=en.nodeName=="HTML"?d.body:en;en=en.nodeName=="BODY"?en.firstChild:en;sb=t.getParentBlock(sn);eb=t.getParentBlock(en);bn=sb?sb.nodeName:se.element;if(t.dom.getParent(sb,function(n){return/OL|UL|PRE/.test(n.nodeName);}))return true;if(sb&&(sb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(sb.style.position))){bn=se.element;sb=null;}if(eb&&(eb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(eb.style.position))){bn=se.element;eb=null;}if(/(TD|TABLE|TH|CAPTION)/.test(bn)||(sb&&bn=="DIV"&&/left|right/gi.test(sb.style.cssFloat))){bn=se.element;sb=eb=null;}bef=(sb&&sb.nodeName==bn)?sb.cloneNode(0):ed.dom.create(bn);aft=(eb&&eb.nodeName==bn)?eb.cloneNode(0):ed.dom.create(bn);aft.removeAttribute('id');if(/^(H[1-6])$/.test(bn)&&sn.nodeValue&&so==sn.nodeValue.length)aft=ed.dom.create(se.element);n=sc=sn;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;sc=n;}while((n=n.previousSibling?n.previousSibling:n.parentNode));n=ec=en;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;ec=n;}while((n=n.nextSibling?n.nextSibling:n.parentNode));if(sc.nodeName==bn)rb.setStart(sc,0);else rb.setStartBefore(sc);rb.setEnd(sn,so);bef.appendChild(rb.cloneContents()||d.createTextNode(''));try{ra.setEndAfter(ec);}catch(ex){}ra.setStart(en,eo);aft.appendChild(ra.cloneContents()||d.createTextNode(''));r=d.createRange();if(!sc.previousSibling&&sc.parentNode.nodeName==bn){r.setStartBefore(sc.parentNode);}else{if(rb.startContainer.nodeName==bn&&rb.startOffset==0)r.setStartBefore(rb.startContainer);else r.setStart(rb.startContainer,rb.startOffset);}if(!ec.nextSibling&&ec.parentNode.nodeName==bn)r.setEndAfter(ec.parentNode);else r.setEnd(ra.endContainer,ra.endOffset);r.deleteContents();if(isOpera)ed.getWin().scrollTo(0,vp.y);if(bef.firstChild&&bef.firstChild.nodeName==bn)bef.innerHTML=bef.firstChild.innerHTML;if(aft.firstChild&&aft.firstChild.nodeName==bn)aft.innerHTML=aft.firstChild.innerHTML;if(isEmpty(bef))bef.innerHTML='<br />';if(isEmpty(aft))aft.innerHTML=isOpera?' ':'<br />';if(isOpera){r.insertNode(bef);r.insertNode(aft);}else{r.insertNode(aft);r.insertNode(bef);}aft.normalize();bef.normalize();r=d.createRange();r.selectNodeContents(aft);r.collapse(1);s.removeAllRanges();s.addRange(r);y=ed.dom.getPos(aft).y;ch=aft.clientHeight;if(y<vp.y||y+ch>vp.y+vp.h){ed.getWin().scrollTo(0,y<vp.y?y:y-vp.h+ch);}return false;},backspaceDelete:function(e,bs){var t=this,ed=t.editor,b=ed.getBody(),n,se=ed.selection,r=se.getRng(),sc=r.startContainer,n,w,tn;if(sc&&ed.dom.isBlock(sc)&&!/^(TD|TH)$/.test(sc.nodeName)&&bs){if(sc.childNodes.length==0||(sc.childNodes.length==1&&sc.firstChild.nodeName=='BR')){n=sc;while((n=n.previousSibling)&&!ed.dom.isBlock(n));if(n){if(sc!=b.firstChild){w=ed.dom.doc.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(tn=w.nextNode())n=tn;r=ed.getDoc().createRange();r.setStart(n,n.nodeValue?n.nodeValue.length:0);r.setEnd(n,n.nodeValue?n.nodeValue.length:0);se.setRng(r);ed.dom.remove(sc);}return Event.cancel(e);}}}function handler(e){e=e.target;if(e&&e.parentNode&&e.nodeName=='BR'&&(n=t.getParentBlock(e))){Event.remove(b,'DOMNodeInserted',handler);if(e.previousSibling||e.nextSibling)ed.dom.remove(e);}};Event._add(b,'DOMNodeInserted',handler);window.setTimeout(function(){Event._remove(b,'DOMNodeInserted',handler);},1);}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,extend=tinymce.extend;tinymce.create('tinymce.ControlManager',{ControlManager:function(ed,s){var t=this,i;s=s||{};t.editor=ed;t.controls={};t.onAdd=new tinymce.util.Dispatcher(t);t.onPostRender=new tinymce.util.Dispatcher(t);t.prefix=s.prefix||ed.id+'_';t._cls={};t.onPostRender.add(function(){each(t.controls,function(c){c.postRender();});});},get:function(id){return this.controls[this.prefix+id]||this.controls[id];},setActive:function(id,s){var c=null;if(c=this.get(id))c.setActive(s);return c;},setDisabled:function(id,s){var c=null;if(c=this.get(id))c.setDisabled(s);return c;},add:function(c){var t=this;if(c){t.controls[c.id]=c;t.onAdd.dispatch(c,t);}return c;},createControl:function(n){var c,t=this,ed=t.editor;each(ed.plugins,function(p){if(p.createControl){c=p.createControl(n,t);if(c)return false;}});switch(n){case"|":case"separator":return t.createSeparator();}if(!c&&ed.buttons&&(c=ed.buttons[n]))return t.createButton(n,c);return t.add(c);},createDropMenu:function(id,s,cc){var t=this,ed=t.editor,c,bm,v,cls;s=extend({'class':'mceDropDown',constrain:ed.settings.constrain_menus},s);s['class']=s['class']+' '+ed.getParam('skin')+'Skin';if(v=ed.getParam('skin_variant'))s['class']+=' '+ed.getParam('skin')+'Skin'+v.substring(0,1).toUpperCase()+v.substring(1);id=t.prefix+id;cls=cc||t._cls.dropmenu||tinymce.ui.DropMenu;c=t.controls[id]=new cls(id,s);c.onAddItem.add(function(c,o){var s=o.settings;s.title=ed.getLang(s.title,s.title);if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,s.value);};}});ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){var s=ed.selection,n=s.getNode();if(n.nodeName=='IMG')bm=s.getBookmark();else bm=0;});c.onHideMenu.add(function(){if(bm)ed.selection.moveToBookmark(bm);});}return t.add(c);},createListBox:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;if(ed.settings.use_native_selects)c=new tinymce.ui.NativeListBox(id,s);else{cls=cc||t._cls.listbox||tinymce.ui.ListBox;c=new cls(id,s);}t.controls[id]=c;if(tinymce.isWebKit){c.onPostRender.add(function(c,n){Event.add(n,'mousedown',function(){ed.bookmark=ed.selection.getBookmark('simple');});Event.add(n,'focus',function(){ed.selection.moveToBookmark(ed.bookmark);ed.bookmark=null;});});}if(c.hideMenu)ed.onMouseDown.add(c.hideMenu,c);return t.add(c);},createButton:function(id,s,cc){var t=this,ed=t.editor,o,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick&&!s.menu_button){s.onclick=function(){ed.execCommand(s.cmd,s.ui||false,s.value);};}s=extend({title:s.title,'class':'mce_'+id,unavailable_prefix:ed.getLang('unavailable',''),scope:s.scope,control_manager:t},s);id=t.prefix+id;if(s.menu_button){cls=cc||t._cls.menubutton||tinymce.ui.MenuButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);}else{cls=t._cls.button||tinymce.ui.Button;c=new cls(id,s);}return t.add(c);},createMenuButton:function(id,s){s=s||{};s.menu_button=1;return this.createButton(id,s);},createSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;cls=cc||t._cls.splitbutton||tinymce.ui.SplitButton;c=t.add(new cls(id,s));ed.onMouseDown.add(c.hideMenu,c);return c;},createColorSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,'menu_class':ed.getParam('skin')+'Skin',scope:s.scope,more_colors_title:ed.getLang('more_colors')},s);id=t.prefix+id;cls=cc||t._cls.colorsplitbutton||tinymce.ui.ColorSplitButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);ed.onRemove.add(function(){c.destroy();});return t.add(c);},createToolbar:function(id,s,cc){var c,t=this,cls;id=t.prefix+id;cls=cc||t._cls.toolbar||tinymce.ui.Toolbar;c=new cls(id,s);if(t.get(id))return null;return t.add(c);},createSeparator:function(cc){var cls=cc||this._cls.separator||tinymce.ui.Separator;return new cls();},setControlType:function(n,c){return this._cls[n.toLowerCase()]=c;},destroy:function(){each(this.controls,function(c){c.destroy();});this.controls=null;}});})();(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each,isIE=tinymce.isIE,isOpera=tinymce.isOpera;tinymce.create('tinymce.WindowManager',{WindowManager:function(ed){var t=this;t.editor=ed;t.onOpen=new Dispatcher(t);t.onClose=new Dispatcher(t);t.params={};t.features={};},open:function(s,p){var t=this,f='',x,y,mo=t.editor.settings.dialog_type=='modal',w,sw,sh,vp=tinymce.DOM.getViewPort(),u;s=s||{};p=p||{};sw=isOpera?vp.w:screen.width;sh=isOpera?vp.h:screen.height;s.name=s.name||'mc_'+new Date().getTime();s.width=parseInt(s.width||320);s.height=parseInt(s.height||240);s.resizable=true;s.left=s.left||parseInt(sw/ 2.0) - (s.width /2.0);s.top=s.top||parseInt(sh/ 2.0) - (s.height /2.0);p.inline=false;p.mce_width=s.width;p.mce_height=s.height;p.mce_auto_focus=s.auto_focus;if(mo){if(isIE){s.center=true;s.help=false;s.dialogWidth=s.width+'px';s.dialogHeight=s.height+'px';s.scroll=s.scrollbars||false;}else s.modal=s.alwaysRaised=s.dialog=s.centerscreen=s.dependent=true;}each(s,function(v,k){if(tinymce.is(v,'boolean'))v=v?'yes':'no';if(!/^(name|url)$/.test(k)){if(isIE&&mo)f+=(f?';':'')+k+':'+v;else f+=(f?',':'')+k+'='+v;}});t.features=s;t.params=p;t.onOpen.dispatch(t,s,p);u=s.url||s.file;if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&')+'mce_rdomain='+tinymce.relaxedDomain;try{if(isIE&&mo){w=1;window.showModalDialog(s.url||s.file,window,f);}else w=window.open(u,s.name,f);}catch(ex){}if(!w)alert(t.editor.getLang('popup_blocked'));},close:function(w){w.close();this.onClose.dispatch(this);},createInstance:function(cl,a,b,c,d,e){var f=tinymce.resolve(cl);return new f(a,b,c,d,e);},confirm:function(t,cb,s){cb.call(s||this,confirm(this._decode(this.editor.getLang(t,t))));},alert:function(tx,cb,s){var t=this;alert(t._decode(t.editor.getLang(tx,tx)));if(cb)cb.call(s||t);},_decode:function(s){return tinymce.DOM.decode(s).replace(/\\n/g,'\n');}});}());
\ No newline at end of file
+var tinymce={majorVersion:'3',minorVersion:'1.0.1',releaseDate:'2008-06-18',_init:function(){var t=this,d=document,w=window,na=navigator,ua=na.userAgent,i,nl,n,base,p,v;t.isOpera=w.opera&&opera.buildNumber;t.isWebKit=/WebKit/.test(ua);t.isOldWebKit=t.isWebKit&&!w.getSelection().getRangeAt;t.isIE=!t.isWebKit&&!t.isOpera&&(/MSIE/gi).test(ua)&&(/Explorer/gi).test(na.appName);t.isIE6=t.isIE&&/MSIE [56]/.test(ua);t.isGecko=!t.isWebKit&&/Gecko/.test(ua);t.isMac=ua.indexOf('Mac')!=-1;if(w.tinyMCEPreInit){t.suffix=tinyMCEPreInit.suffix;t.baseURL=tinyMCEPreInit.base;t.query=tinyMCEPreInit.query;return;}t.suffix='';nl=d.getElementsByTagName('base');for(i=0;i<nl.length;i++){if(v=nl[i].href){if(/^https?:\/\/[^\/]+$/.test(v))v+='/';base=v?v.match(/.*\//)[0]:'';}}function getBase(n){if(n.src&&/tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)){if(/_(src|dev)\.js/g.test(n.src))t.suffix='_src';if((p=n.src.indexOf('?'))!=-1)t.query=n.src.substring(p+1);t.baseURL=n.src.substring(0,n.src.lastIndexOf('/'));if(base&&t.baseURL.indexOf('://')==-1)t.baseURL=base+t.baseURL;return t.baseURL;}return null;};nl=d.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}n=d.getElementsByTagName('head')[0];if(n){nl=n.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}}return;},is:function(o,t){var n=typeof(o);if(!t)return n!='undefined';if(t=='array'&&(o instanceof Array))return true;return n==t;},each:function(o,cb,s){var n,l;if(!o)return 0;s=s||o;if(typeof(o.length)!='undefined'){for(n=0,l=o.length;n<l;n++){if(cb.call(s,o[n],n,o)===false)return 0;}}else{for(n in o){if(o.hasOwnProperty(n)){if(cb.call(s,o[n],n,o)===false)return 0;}}}return 1;},map:function(a,f){var o=[];tinymce.each(a,function(v){o.push(f(v));});return o;},grep:function(a,f){var o=[];tinymce.each(a,function(v){if(!f||f(v))o.push(v);});return o;},inArray:function(a,v){var i,l;if(a){for(i=0,l=a.length;i<l;i++){if(a[i]===v)return i;}}return-1;},extend:function(o,e){var i,a=arguments;for(i=1;i<a.length;i++){e=a[i];tinymce.each(e,function(v,n){if(typeof(v)!=='undefined')o[n]=v;});}return o;},trim:function(s){return(s?''+s:'').replace(/^\s*|\s*$/g,'');},create:function(s,p){var t=this,sp,ns,cn,scn,c,de=0;s=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);cn=s[3].match(/(^|\.)(\w+)$/i)[2];ns=t.createNS(s[3].replace(/\.\w+$/,''));if(ns[cn])return;if(s[2]=='static'){ns[cn]=p;if(this.onCreate)this.onCreate(s[2],s[3],ns[cn]);return;}if(!p[cn]){p[cn]=function(){};de=1;}ns[cn]=p[cn];t.extend(ns[cn].prototype,p);if(s[5]){sp=t.resolve(s[5]).prototype;scn=s[5].match(/\.(\w+)$/i)[1];c=ns[cn];if(de){ns[cn]=function(){return sp[scn].apply(this,arguments);};}else{ns[cn]=function(){this.parent=sp[scn];return c.apply(this,arguments);};}ns[cn].prototype[cn]=ns[cn];t.each(sp,function(f,n){ns[cn].prototype[n]=sp[n];});t.each(p,function(f,n){if(sp[n]){ns[cn].prototype[n]=function(){this.parent=sp[n];return f.apply(this,arguments);};}else{if(n!=cn)ns[cn].prototype[n]=f;}});}t.each(p['static'],function(f,n){ns[cn][n]=f;});if(this.onCreate)this.onCreate(s[2],s[3],ns[cn].prototype);},walk:function(o,f,n,s){s=s||this;if(o){if(n)o=o[n];tinymce.each(o,function(o,i){if(f.call(s,o,i,n)===false)return false;tinymce.walk(o,f,n,s);});}},createNS:function(n,o){var i,v;o=o||window;n=n.split('.');for(i=0;i<n.length;i++){v=n[i];if(!o[v])o[v]={};o=o[v];}return o;},resolve:function(n,o){var i,l;o=o||window;n=n.split('.');for(i=0,l=n.length;i<l;i++){o=o[n[i]];if(!o)break;}return o;},addUnload:function(f,s){var t=this,w=window;f={func:f,scope:s||this};if(!t.unloads){function unload(){var li=t.unloads,o,n;if(li){for(n in li){o=li[n];if(o&&o.func)o.func.call(o.scope,1);}if(w.detachEvent){w.detachEvent('onbeforeunload',fakeUnload);w.detachEvent('onunload',unload);}else if(w.removeEventListener)w.removeEventListener('unload',unload,false);t.unloads=o=li=w=unload=null;if(window.CollectGarbage)window.CollectGarbage();}};function fakeUnload(){var d=document;if(d.readyState=='interactive'){function stop(){d.detachEvent('onstop',stop);unload();d=null;};d.attachEvent('onstop',stop);window.setTimeout(function(){d.detachEvent('onstop',stop);},0);}};if(w.attachEvent){w.attachEvent('onunload',unload);w.attachEvent('onbeforeunload',fakeUnload);}else if(w.addEventListener)w.addEventListener('unload',unload,false);t.unloads=[f];}else t.unloads.push(f);return f;},removeUnload:function(f){var u=this.unloads,r=null;tinymce.each(u,function(o,i){if(o&&o.func==f){u.splice(i,1);r=f;return false;}});return r;},explode:function(s,d){return s?tinymce.map(s.split(d||','),tinymce.trim):s;},_addVer:function(u){var v;if(!this.query)return u;v=(u.indexOf('?')==-1?'?':'&')+this.query;if(u.indexOf('#')==-1)return u+v;return u.replace('#',v+'#');}};window.tinymce=tinymce;tinymce._init();tinymce.create('tinymce.util.Dispatcher',{scope:null,listeners:null,Dispatcher:function(s){this.scope=s||this;this.listeners=[];},add:function(cb,s){this.listeners.push({cb:cb,scope:s||this.scope});return cb;},addToTop:function(cb,s){this.listeners.unshift({cb:cb,scope:s||this.scope});return cb;},remove:function(cb){var l=this.listeners,o=null;tinymce.each(l,function(c,i){if(cb==c.cb){o=cb;l.splice(i,1);return false;}});return o;},dispatch:function(){var s,a=arguments,i,li=this.listeners,c;for(i=0;i<li.length;i++){c=li[i];s=c.cb.apply(c.scope,a);if(s===false)break;}return s;}});(function(){var each=tinymce.each;tinymce.create('tinymce.util.URI',{URI:function(u,s){var t=this,o,a,b;s=t.settings=s||{};if(/^(mailto|news|javascript|about):/i.test(u)||/^\s*#/.test(u)){t.source=u;return;}if(u.indexOf('/')===0&&u.indexOf('//')!==0)u=(s.base_uri?s.base_uri.protocol||'http':'http')+'://mce_host'+u;if(u.indexOf('://')===-1&&u.indexOf('//')!==0)u=(s.base_uri.protocol||'http')+'://mce_host'+t.toAbsPath(s.base_uri.path,u);u=u.replace(/@@/g,'(mce_at)');u=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(u);each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(v,i){var s=u[i];if(s)s=s.replace(/\(mce_at\)/g,'@@');t[v]=s;});if(b=s.base_uri){if(!t.protocol)t.protocol=b.protocol;if(!t.userInfo)t.userInfo=b.userInfo;if(!t.port&&t.host=='mce_host')t.port=b.port;if(!t.host||t.host=='mce_host')t.host=b.host;t.source='';}},setPath:function(p){var t=this;p=/^(.*?)\/?(\w+)?$/.exec(p);t.path=p[0];t.directory=p[1];t.file=p[2];t.source='';t.getURI();},toRelative:function(u){var t=this,o;u=new tinymce.util.URI(u,{base_uri:t});if((u.host!='mce_host'&&t.host!=u.host&&u.host)||t.port!=u.port||t.protocol!=u.protocol)return u.getURI();o=t.toRelPath(t.path,u.path);if(u.query)o+='?'+u.query;if(u.anchor)o+='#'+u.anchor;return o;},toAbsolute:function(u,nh){var u=new tinymce.util.URI(u,{base_uri:this});return u.getURI(this.host==u.host?nh:0);},toRelPath:function(base,path){var items,bp=0,out='',i;base=base.substring(0,base.lastIndexOf('/'));base=base.split('/');items=path.split('/');if(base.length>=items.length){for(i=0;i<base.length;i++){if(i>=items.length||base[i]!=items[i]){bp=i+1;break;}}}if(base.length<items.length){for(i=0;i<items.length;i++){if(i>=base.length||base[i]!=items[i]){bp=i+1;break;}}}if(bp==1)return path;for(i=0;i<base.length-(bp-1);i++)out+="../";for(i=bp-1;i<items.length;i++){if(i!=bp-1)out+="/"+items[i];else out+=items[i];}return out;},toAbsPath:function(base,path){var i,nb=0,o=[];base=base.split('/');path=path.split('/');each(base,function(k){if(k)o.push(k);});base=o;for(i=path.length-1,o=[];i>=0;i--){if(path[i].length==0||path[i]==".")continue;if(path[i]=='..'){nb++;continue;}if(nb>0){nb--;continue;}o.push(path[i]);}i=base.length-nb;if(i<=0)return'/'+o.reverse().join('/');return'/'+base.slice(0,i).join('/')+'/'+o.reverse().join('/');},getURI:function(nh){var s,t=this;if(!t.source||nh){s='';if(!nh){if(t.protocol)s+=t.protocol+'://';if(t.userInfo)s+=t.userInfo+'@';if(t.host)s+=t.host;if(t.port)s+=':'+t.port;}if(t.path)s+=t.path;if(t.query)s+='?'+t.query;if(t.anchor)s+='#'+t.anchor;t.source=s;}return t.source;}});})();(function(){var each=tinymce.each;tinymce.create('static tinymce.util.Cookie',{getHash:function(n){var v=this.get(n),h;if(v){each(v.split('&'),function(v){v=v.split('=');h=h||{};h[unescape(v[0])]=unescape(v[1]);});}return h;},setHash:function(n,v,e,p,d,s){var o='';each(v,function(v,k){o+=(!o?'':'&')+escape(k)+'='+escape(v);});this.set(n,o,e,p,d,s);},get:function(n){var c=document.cookie,e,p=n+"=",b;if(!c)return;b=c.indexOf("; "+p);if(b==-1){b=c.indexOf(p);if(b!=0)return null;}else b+=2;e=c.indexOf(";",b);if(e==-1)e=c.length;return unescape(c.substring(b+p.length,e));},set:function(n,v,e,p,d,s){document.cookie=n+"="+escape(v)+((e)?"; expires="+e.toGMTString():"")+((p)?"; path="+escape(p):"")+((d)?"; domain="+d:"")+((s)?"; secure":"");},remove:function(n,p){var d=new Date();d.setTime(d.getTime()-1000);this.set(n,'',d,p,d);}});})();tinymce.create('static tinymce.util.JSON',{serialize:function(o){var i,v,s=tinymce.util.JSON.serialize,t;if(o==null)return'null';t=typeof o;if(t=='string'){v='\bb\tt\nn\ff\rr\""\'\'\\\\';return'"'+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'])/g,function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a;})+'"';}if(t=='object'){if(o instanceof Array){for(i=0,v='[';i<o.length;i++)v+=(i>0?',':'')+s(o[i]);return v+']';}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}';}return''+o;},parse:function(s){try{return eval('('+s+')');}catch(ex){}}});tinymce.create('static tinymce.util.XHR',{send:function(o){var x,t,w=window,c=0;o.scope=o.scope||this;o.success_scope=o.success_scope||o.scope;o.error_scope=o.error_scope||o.scope;o.async=o.async===false?false:true;o.data=o.data||'';function get(s){x=0;try{x=new ActiveXObject(s);}catch(ex){}return x;};x=w.XMLHttpRequest?new XMLHttpRequest():get('Microsoft.XMLHTTP')||get('Msxml2.XMLHTTP');if(x){if(x.overrideMimeType)x.overrideMimeType(o.content_type);x.open(o.type||(o.data?'POST':'GET'),o.url,o.async);if(o.content_type)x.setRequestHeader('Content-Type',o.content_type);x.send(o.data);function ready(){if(!o.async||x.readyState==4||c++>10000){if(o.success&&c<10000&&x.status==200)o.success.call(o.success_scope,''+x.responseText,x,o);else if(o.error)o.error.call(o.error_scope,c>10000?'TIMED_OUT':'GENERAL',x,o);x=null;}else w.setTimeout(ready,10);};if(!o.async)return ready();t=w.setTimeout(ready,10);}}});(function(){var extend=tinymce.extend,JSON=tinymce.util.JSON,XHR=tinymce.util.XHR;tinymce.create('tinymce.util.JSONRequest',{JSONRequest:function(s){this.settings=extend({},s);this.count=0;},send:function(o){var ecb=o.error,scb=o.success;o=extend(this.settings,o);o.success=function(c,x){c=JSON.parse(c);if(typeof(c)=='undefined'){c={error:'JSON Parse error.'};}if(c.error)ecb.call(o.error_scope||o.scope,c.error,x);else scb.call(o.success_scope||o.scope,c.result);};o.error=function(ty,x){ecb.call(o.error_scope||o.scope,ty,x);};o.data=JSON.serialize({id:o.id||'c'+(this.count++),method:o.method,params:o.params});o.content_type='application/json';XHR.send(o);},'static':{sendRPC:function(o){return new tinymce.util.JSONRequest().send(o);}}});}());(function(){var each=tinymce.each,is=tinymce.is;var isWebKit=tinymce.isWebKit,isIE=tinymce.isIE;tinymce.create('tinymce.dom.DOMUtils',{doc:null,root:null,files:null,listeners:{},pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,cache:{},idPattern:/^#[\w]+$/,elmPattern:/^[\w_*]+$/,elmClassPattern:/^([\w_]*)\.([\w_]+)$/,DOMUtils:function(d,s){var t=this;t.doc=d;t.win=window;t.files={};t.cssFlicker=false;t.counter=0;t.boxModel=!tinymce.isIE||d.compatMode=="CSS1Compat";t.stdMode=d.documentMode===8;this.settings=s=tinymce.extend({keep_values:false,hex_colors:1,process_html:1},s);if(tinymce.isIE6){try{d.execCommand('BackgroundImageCache',false,true);}catch(e){t.cssFlicker=true;}}tinymce.addUnload(t.destroy,t);},getRoot:function(){var t=this,s=t.settings;return(s&&t.get(s.root_element))||t.doc.body;},getViewPort:function(w){var d,b;w=!w?this.win:w;d=w.document;b=this.boxModel?d.documentElement:d.body;return{x:w.pageXOffset||b.scrollLeft,y:w.pageYOffset||b.scrollTop,w:w.innerWidth||b.clientWidth,h:w.innerHeight||b.clientHeight};},getRect:function(e){var p,t=this,w,h;e=t.get(e);p=t.getPos(e);w=t.getStyle(e,'width');h=t.getStyle(e,'height');if(w.indexOf('px')===-1)w=0;if(h.indexOf('px')===-1)h=0;return{x:p.x,y:p.y,w:parseInt(w)||e.offsetWidth||e.clientWidth,h:parseInt(h)||e.offsetHeight||e.clientHeight};},getParent:function(n,f,r){var na,se=this.settings;n=this.get(n);if(se.strict_root)r=r||this.getRoot();if(is(f,'string')){na=f.toUpperCase();f=function(n){var s=false;if(n.nodeType==1&&na==='*'){s=true;return false;}each(na.split(','),function(v){if(n.nodeType==1&&((se.strict&&n.nodeName.toUpperCase()==v)||n.nodeName.toUpperCase()==v)){s=true;return false;}});return s;};}while(n){if(n==r)return null;if(f(n))return n;n=n.parentNode;}return null;},get:function(e){var n;if(e&&this.doc&&typeof(e)=='string'){n=e;e=this.doc.getElementById(e);if(e&&e.id!==n)return this.doc.getElementsByName(n)[1];}return e;},select:function(pa,s){var t=this,cs,c,pl,o=[],x,i,l,n;s=t.get(s)||t.doc;if(s.querySelectorAll){if(s!=t.doc){i=s.id;s.id='_mc_tmp';pa='#_mc_tmp '+pa;}l=tinymce.grep(s.querySelectorAll(pa));s.id=i;return l;}if(t.settings.strict){function get(s,n){return s.getElementsByTagName(n.toLowerCase());};}else{function get(s,n){return s.getElementsByTagName(n);};}if(t.elmPattern.test(pa)){x=get(s,pa);for(i=0,l=x.length;i<l;i++)o.push(x[i]);return o;}if(t.elmClassPattern.test(pa)){pl=t.elmClassPattern.exec(pa);x=get(s,pl[1]||'*');c=' '+pl[2]+' ';for(i=0,l=x.length;i<l;i++){n=x[i];if(n.className&&(' '+n.className+' ').indexOf(c)!==-1)o.push(n);}return o;}function collect(n){if(!n.mce_save){n.mce_save=1;o.push(n);}};function collectIE(n){if(!n.getAttribute('mce_save')){n.setAttribute('mce_save','1');o.push(n);}};function find(n,f,r){var i,l,nl=get(r,n);for(i=0,l=nl.length;i<l;i++)f(nl[i]);};each(pa.split(','),function(v,i){v=tinymce.trim(v);if(t.elmPattern.test(v)){each(get(s,v),function(n){collect(n);});return;}if(t.elmClassPattern.test(v)){x=t.elmClassPattern.exec(v);each(get(s,x[1]),function(n){if(t.hasClass(n,x[2]))collect(n);});return;}if(!(cs=t.cache[pa])){cs='x=(function(cf, s) {';pl=v.split(' ');each(pl,function(v){var p=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i.exec(v);p[1]=p[1]||'*';cs+='find("'+p[1]+'", function(n) {';if(p[2])cs+='if (n.id !== "'+p[2]+'") return;';if(p[3]){cs+='var c = " " + n.className + " ";';cs+='if (';c='';each(p[3].split('.'),function(v){if(v)c+=(c?'||':'')+'c.indexOf(" '+v+' ") === -1';});cs+=c+') return;';}});cs+='cf(n);';for(i=pl.length-1;i>=0;i--)cs+='}, '+(i?'n':'s')+');';cs+='})';t.cache[pa]=cs=eval(cs);}cs(isIE?collectIE:collect,s);});each(o,function(n){if(isIE)n.removeAttribute('mce_save');else delete n.mce_save;});return o;},add:function(p,n,a,h,c){var t=this;return this.run(p,function(p){var e,k;e=is(n,'string')?t.doc.createElement(n):n;if(a){for(k in a){if(a.hasOwnProperty(k)&&!is(a[k],'object'))t.setAttrib(e,k,''+a[k]);}if(a.style&&!is(a.style,'string')){each(a.style,function(v,n){t.setStyle(e,n,v);});}}if(h){if(h.nodeType)e.appendChild(h);else t.setHTML(e,h);}return!c?p.appendChild(e):e;});},create:function(n,a,h){return this.add(this.doc.createElement(n),n,a,h,1);},createHTML:function(n,a,h){var o='',t=this,k;o+='<'+n;for(k in a){if(a.hasOwnProperty(k))o+=' '+k+'="'+t.encode(a[k])+'"';}if(tinymce.is(h))return o+'>'+h+'</'+n+'>';return o+' />';},remove:function(n,k){return this.run(n,function(n){var p,g;p=n.parentNode;if(!p)return null;if(k){each(n.childNodes,function(c){p.insertBefore(c.cloneNode(true),n);});}return p.removeChild(n);});},setStyle:function(n,na,v){var t=this;return t.run(n,function(e){var s,i;s=e.style;na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(t.pixelStyles.test(na)&&(tinymce.is(v,'number')||/^[\-0-9\.]+$/.test(v)))v+='px';switch(na){case'opacity':if(isIE){s.filter=v===''?'':"alpha(opacity="+(v*100)+")";if(!n.currentStyle||!n.currentStyle.hasLayout)s.display='inline-block';}s[na]=s['-moz-opacity']=s['-khtml-opacity']=v||'';break;case'float':isIE?s.styleFloat=v:s.cssFloat=v;break;default:s[na]=v||'';}if(t.settings.update_styles)t.setAttrib(e,'mce_style');});},getStyle:function(n,na,c){n=this.get(n);if(!n)return false;if(this.doc.defaultView&&c){na=na.replace(/[A-Z]/g,function(a){return'-'+a;});try{return this.doc.defaultView.getComputedStyle(n,null).getPropertyValue(na);}catch(ex){return null;}}na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(na=='float')na=isIE?'styleFloat':'cssFloat';if(n.currentStyle&&c)return n.currentStyle[na];return n.style[na];},setStyles:function(e,o){var t=this,s=t.settings,ol;ol=s.update_styles;s.update_styles=0;each(o,function(v,n){t.setStyle(e,n,v);});s.update_styles=ol;if(s.update_styles)t.setAttrib(e,s.cssText);},setAttrib:function(e,n,v){var t=this;if(t.settings.strict)n=n.toLowerCase();return this.run(e,function(e){var s=t.settings;switch(n){case"style":if(s.keep_values){if(v&&!t._isRes(v))e.setAttribute('mce_style',v,2);else e.removeAttribute('mce_style',2);}e.style.cssText=v;break;case"class":e.className=v||'';break;case"src":case"href":if(s.keep_values){if(s.url_converter)v=s.url_converter.call(s.url_converter_scope||t,v,n,e);t.setAttrib(e,'mce_'+n,v,2);}break;case"shape":e.setAttribute('mce_style',v);break;}if(is(v)&&v!==null&&v.length!==0)e.setAttribute(n,''+v,2);else e.removeAttribute(n,2);});},setAttribs:function(e,o){var t=this;return this.run(e,function(e){each(o,function(v,n){t.setAttrib(e,n,v);});});},getAttrib:function(e,n,dv){var v,t=this;e=t.get(e);if(!e||e.nodeType!==1)return false;if(!is(dv))dv="";if(/^(src|href|style|coords|shape)$/.test(n)){v=e.getAttribute("mce_"+n);if(v)return v;}v=e.getAttribute(n,2);if(!v){switch(n){case'class':v=e.className;break;default:if(isIE&&n==='name'&&e.nodeName==='A'){v=e.name;break;}v=e.attributes[n];v=v&&is(v.nodeValue)?v.nodeValue:v;}}switch(n){case'style':v=v||e.style.cssText;if(v){v=t.serializeStyle(t.parseStyle(v));if(t.settings.keep_values&&!t._isRes(v))e.setAttribute('mce_style',v);}break;}if(isWebKit&&n==="class"&&v)v=v.replace(/(apple|webkit)\-[a-z\-]+/gi,'');if(isIE){switch(n){case'rowspan':case'colspan':if(v===1)v='';break;case'size':if(v==='+0')v='';break;case'hspace':if(v===-1)v='';break;case'tabindex':if(v===32768)v='';break;case'maxlength':if(v===2147483647)v='';break;case'shape':v=v.toLowerCase();break;default:if(n.indexOf('on')===0&&v)v=(''+v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1');}}return(v&&v!='')?''+v:dv;},getPos:function(n){var t=this,x=0,y=0,e,d=t.doc,r;n=t.get(n);if(n&&isIE){n=n.getBoundingClientRect();e=t.boxModel?d.documentElement:d.body;x=t.getStyle(t.select('html')[0],'borderWidth');x=(x=='medium'||t.boxModel&&!t.isIE6)&&2||x;n.top+=t.win.self!=t.win.top?2:0;return{x:n.left+e.scrollLeft-x,y:n.top+e.scrollTop-x};}r=n;while(r){x+=r.offsetLeft||0;y+=r.offsetTop||0;r=r.offsetParent;}r=n;while(r){if(!/^table-row|inline.*/i.test(t.getStyle(r,"display",1))){x-=r.scrollLeft||0;y-=r.scrollTop||0;}r=r.parentNode;if(r==d.body)break;}return{x:x,y:y};},parseStyle:function(st){var t=this,s=t.settings,o={};if(!st)return o;function compress(p,s,ot){var t,r,b,l;t=o[p+'-top'+s];if(!t)return;r=o[p+'-right'+s];if(t!=r)return;b=o[p+'-bottom'+s];if(r!=b)return;l=o[p+'-left'+s];if(b!=l)return;o[ot]=l;delete o[p+'-top'+s];delete o[p+'-right'+s];delete o[p+'-bottom'+s];delete o[p+'-left'+s];};function compress2(ta,a,b,c){var t;t=o[a];if(!t)return;t=o[b];if(!t)return;t=o[c];if(!t)return;o[ta]=o[a]+' '+o[b]+' '+o[c];delete o[a];delete o[b];delete o[c];};st=st.replace(/&(#?[a-z0-9]+);/g,'&$1_MCE_SEMI_');each(st.split(';'),function(v){var sv,ur=[];if(v){v=v.replace(/_MCE_SEMI_/g,';');v=v.replace(/url\([^\)]+\)/g,function(v){ur.push(v);return'url('+ur.length+')';});v=v.split(':');sv=tinymce.trim(v[1]);sv=sv.replace(/url\(([^\)]+)\)/g,function(a,b){return ur[parseInt(b)-1];});sv=sv.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});if(s.url_converter){sv=sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(x,c){return'url('+s.url_converter.call(s.url_converter_scope||t,t.decode(c),'style',null)+')';});}o[tinymce.trim(v[0]).toLowerCase()]=sv;}});compress("border","","border");compress("border","-width","border-width");compress("border","-color","border-color");compress("border","-style","border-style");compress("padding","","padding");compress("margin","","margin");compress2('border','border-width','border-style','border-color');if(isIE){if(o.border=='medium none')o.border='';}return o;},serializeStyle:function(o){var s='';each(o,function(v,k){if(k&&v){if(tinymce.isGecko&&k.indexOf('-moz-')===0)return;switch(k){case'color':case'background-color':v=v.toLowerCase();break;}s+=(s?' ':'')+k+': '+v+';';}});return s;},loadCSS:function(u){var t=this,d=t.doc;if(!u)u='';each(u.split(','),function(u){if(t.files[u])return;t.files[u]=true;t.add(t.select('head')[0],'link',{rel:'stylesheet',href:tinymce._addVer(u)});});},addClass:function(e,c){return this.run(e,function(e){var o;if(!c)return 0;if(this.hasClass(e,c))return e.className;o=this.removeClass(e,c);return e.className=(o!=''?(o+' '):'')+c;});},removeClass:function(e,c){var t=this,re;return t.run(e,function(e){var v;if(t.hasClass(e,c)){if(!re)re=new RegExp("(^|\\s+)"+c+"(\\s+|$)","g");v=e.className.replace(re,' ');return e.className=tinymce.trim(v!=' '?v:'');}return e.className;});},hasClass:function(n,c){n=this.get(n);if(!n||!c)return false;return(' '+n.className+' ').indexOf(' '+c+' ')!==-1;},show:function(e){return this.setStyle(e,'display','block');},hide:function(e){return this.setStyle(e,'display','none');},isHidden:function(e){e=this.get(e);return e.style.display=='none'||this.getStyle(e,'display')=='none';},uniqueId:function(p){return(!p?'mce_':p)+(this.counter++);},setHTML:function(e,h){var t=this;return this.run(e,function(e){var x,i,nl,n,p,x;h=t.processHTML(h);if(isIE){function set(){try{e.innerHTML='<br />'+h;e.removeChild(e.firstChild);}catch(ex){while(e.firstChild)e.firstChild.removeNode();x=t.create('div');x.innerHTML='<br />'+h;each(x.childNodes,function(n,i){if(i)e.appendChild(n);});}};if(t.settings.fix_ie_paragraphs)h=h.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi,'<p$1 mce_keep="true"> </p>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("p");for(i=nl.length-1,x=0;i>=0;i--){n=nl[i];if(!n.hasChildNodes()){if(!n.mce_keep){x=1;break;}n.removeAttribute('mce_keep');}}}if(x){h=h.replace(/<p([^>]+)>|<p>/g,'<div$1 mce_tmp="1">');h=h.replace(/<\/p>/g,'</div>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("DIV");for(i=nl.length-1;i>=0;i--){n=nl[i];if(n.mce_tmp){p=t.doc.createElement('p');n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(a,b){var v;if(b!=='mce_tmp'){v=n.getAttribute(b);if(!v&&b==='class')v=n.className;p.setAttribute(b,v);}});for(x=0;x<n.childNodes.length;x++)p.appendChild(n.childNodes[x].cloneNode(true));n.swapNode(p);}}}}}else e.innerHTML=h;return h;});},processHTML:function(h){var t=this,s=t.settings;if(!s.process_html)return h;if(tinymce.isGecko){h=h.replace(/<(\/?)strong>|<strong( [^>]+)>/gi,'<$1b$2>');h=h.replace(/<(\/?)em>|<em( [^>]+)>/gi,'<$1i$2>');}else if(isIE)h=h.replace(/'/g,''');h=h.replace(/<a( )([^>]+)\/>|<a\/>/gi,'<a$1$2></a>');if(s.keep_values){if(/<script|style/.test(h)){function trim(s){s=s.replace(/^[\r\n]*|[\r\n]*$/g,'');s=s.replace(/^\s*(\/\/\s*<!--|\/\/\s*<\[CDATA\[|<!--|<\[CDATA\[)[\r\n]*/g,'');s=s.replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->)\s*$/g,'');return s;};h=h.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/g,function(v,a,b){b=trim(b);if(!a)a=' type="text/javascript"';if(b)b='<!--\n'+b+'\n// -->';return'<mce:script'+a+'>'+b+'</mce:script>';});h=h.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/g,function(v,a,b){b=trim(b);return'<mce:style'+a+'><!--\n'+b+'\n--></mce:style><style'+a+' mce_bogus="1">'+b+'</style>';});}h=h.replace(/<([\w:]+) [^>]*(src|href|style|shape|coords)[^>]*>/gi,function(a,n){function handle(m,b,c){var u=c;if(a.indexOf('mce_'+b)!=-1)return m;if(b=='style'){if(t._isRes(c))return m;if(s.hex_colors){u=u.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});}if(s.url_converter){u=u.replace(/url\([\'\"]?([^\)\'\"]+)\)/g,function(x,c){return'url('+t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n))+')';});}}else if(b!='coords'&&b!='shape'){if(s.url_converter)u=t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n));}return' '+b+'="'+c+'" mce_'+b+'="'+u+'"';};a=a.replace(/ (src|href|style|coords|shape)=[\"]([^\"]+)[\"]/gi,handle);a=a.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi,handle);return a.replace(/ (src|href|style|coords|shape)=([^\s\"\'>]+)/gi,handle);});}return h;},getOuterHTML:function(e){var d;e=this.get(e);if(!e)return null;if(isIE)return e.outerHTML;d=(e.ownerDocument||this.doc).createElement("body");d.appendChild(e.cloneNode(true));return d.innerHTML;},setOuterHTML:function(e,h,d){var t=this;return this.run(e,function(e){var n,tp;e=t.get(e);d=d||e.ownerDocument||t.doc;if(isIE&&e.nodeType==1)e.outerHTML=h;else{tp=d.createElement("body");tp.innerHTML=h;n=tp.lastChild;while(n){t.insertAfter(n.cloneNode(true),e);n=n.previousSibling;}t.remove(e);}});},decode:function(s){var e;if(/&[^;]+;/.test(s)){e=this.doc.createElement("div");e.innerHTML=s;return!e.firstChild?s:e.firstChild.nodeValue;}return s;},encode:function(s){return s?(''+s).replace(/[<>&\"]/g,function(c,b){switch(c){case'&':return'&';case'"':return'"';case'<':return'<';case'>':return'>';}return c;}):s;},insertAfter:function(n,r){var t=this;r=t.get(r);return this.run(n,function(n){var p,ns;p=r.parentNode;ns=r.nextSibling;if(ns)p.insertBefore(n,ns);else p.appendChild(n);return n;});},isBlock:function(n){if(n.nodeType&&n.nodeType!==1)return false;n=n.nodeName||n;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);},replace:function(n,o,k){if(is(o,'array'))n=n.cloneNode(true);return this.run(o,function(o){if(k){each(o.childNodes,function(c){n.appendChild(c.cloneNode(true));});}return o.parentNode.replaceChild(n,o);});},toHex:function(s){var c=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);function hex(s){s=parseInt(s).toString(16);return s.length>1?s:'0'+s;};if(c){s='#'+hex(c[1])+hex(c[2])+hex(c[3]);return s;}return s;},getClasses:function(){var t=this,cl=[],i,lo={},f=t.settings.class_filter,ov;if(t.classes)return t.classes;function addClasses(s){each(s.imports,function(r){addClasses(r);});each(s.cssRules||s.rules,function(r){switch(r.type||1){case 1:if(r.selectorText){each(r.selectorText.split(','),function(v){v=v.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(v)||!/\.[\w\-]+$/.test(v))return;ov=v;v=v.replace(/.*\.([a-z0-9_\-]+).*/i,'$1');if(f&&!(v=f(v,ov)))return;if(!lo[v]){cl.push({'class':v});lo[v]=1;}});}break;case 3:addClasses(r.styleSheet);break;}});};try{each(t.doc.styleSheets,addClasses);}catch(ex){}if(cl.length>0)t.classes=cl;return cl;},run:function(e,f,s){var t=this,o;if(t.doc&&typeof(e)==='string')e=t.doc.getElementById(e);if(!e)return false;s=s||this;if(!e.nodeType&&(e.length||e.length===0)){o=[];each(e,function(e,i){if(e){if(typeof(e)=='string')e=t.doc.getElementById(e);o.push(f.call(s,e,i));}});return o;}return f.call(s,e);},getAttribs:function(n){var o;n=this.get(n);if(!n)return[];if(isIE){o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;}return n.attributes;},destroy:function(s){var t=this;t.win=t.doc=t.root=null;if(!s)tinymce.removeUnload(t.destroy);},_isRes:function(c){return/^(top|left|bottom|right|width|height)/i.test(c)||/;\s*(top|left|bottom|right|width|height)/i.test(c);}});tinymce.DOM=new tinymce.dom.DOMUtils(document,{process_html:0});})();(function(){var each=tinymce.each,DOM=tinymce.DOM,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit,Event;tinymce.create('static tinymce.dom.Event',{inits:[],events:[],add:function(o,n,f,s){var cb,t=this,el=t.events,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.add(o,n,f,s));});return r;}o=DOM.get(o);if(!o)return;cb=function(e){e=e||window.event;if(e&&!e.target&&isIE)e.target=e.srcElement;if(!s)return f(e);return f.call(s,e);};if(n=='unload'){tinymce.unloads.unshift({func:cb});return cb;}if(n=='init'){if(t.domLoaded)cb();else t.inits.push(cb);return cb;}el.push({obj:o,name:n,func:f,cfunc:cb,scope:s});t._add(o,n,cb);return f;},remove:function(o,n,f){var t=this,a=t.events,s=false,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.remove(o,n,f));});return r;}o=DOM.get(o);each(a,function(e,i){if(e.obj==o&&e.name==n&&(!f||(e.func==f||e.cfunc==f))){a.splice(i,1);t._remove(o,n,e.cfunc);s=true;return false;}});return s;},clear:function(o){var t=this,a=t.events,i,e;if(o){o=DOM.get(o);for(i=a.length-1;i>=0;i--){e=a[i];if(e.obj===o){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;a.splice(i,1);}}}},cancel:function(e){if(!e)return false;this.stop(e);return this.prevent(e);},stop:function(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false;},prevent:function(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false;},_unload:function(){var t=Event;each(t.events,function(e,i){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;});t.events=[];t=null;},_add:function(o,n,f){if(o.attachEvent)o.attachEvent('on'+n,f);else if(o.addEventListener)o.addEventListener(n,f,false);else o['on'+n]=f;},_remove:function(o,n,f){if(o){try{if(o.detachEvent)o.detachEvent('on'+n,f);else if(o.removeEventListener)o.removeEventListener(n,f,false);else o['on'+n]=null;}catch(ex){}}},_pageInit:function(){var e=Event;e._remove(window,'DOMContentLoaded',e._pageInit);e.domLoaded=true;each(e.inits,function(c){c();});e.inits=[];},_wait:function(){var t;if(window.tinyMCE_GZ&&tinyMCE_GZ.loaded){Event.domLoaded=1;return;}if(isIE&&document.location.protocol!='https:'){document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');DOM.get("__ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){Event._pageInit();DOM.get("__ie_onload").onreadystatechange=null;}};}else{Event._add(window,'DOMContentLoaded',Event._pageInit,Event);if(isIE||isWebKit){t=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(t);Event._pageInit();}},10);}}}});Event=tinymce.dom.Event;Event._wait();tinymce.addUnload(Event._unload);})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.Element',{Element:function(id,s){var t=this,dom,el;s=s||{};t.id=id;t.dom=dom=s.dom||tinymce.DOM;t.settings=s;if(!tinymce.isIE)el=t.dom.get(t.id);each(['getPos','getRect','getParent','add','setStyle','getStyle','setStyles','setAttrib','setAttribs','getAttrib','addClass','removeClass','hasClass','getOuterHTML','setOuterHTML','remove','show','hide','isHidden','setHTML','get'],function(k){t[k]=function(){var a=arguments,o;if(tinymce.isOpera){a=[id];each(arguments,function(v){a.push(v);});}else Array.prototype.unshift.call(a,el||id);o=dom[k].apply(dom,a);t.update(k);return o;};});},on:function(n,f,s){return tinymce.dom.Event.add(this.id,n,f,s);},getXY:function(){return{x:parseInt(this.getStyle('left')),y:parseInt(this.getStyle('top'))};},getSize:function(){var n=this.dom.get(this.id);return{w:parseInt(this.getStyle('width')||n.clientWidth),h:parseInt(this.getStyle('height')||n.clientHeight)};},moveTo:function(x,y){this.setStyles({left:x,top:y});},moveBy:function(x,y){var p=this.getXY();this.moveTo(p.x+x,p.y+y);},resizeTo:function(w,h){this.setStyles({width:w,height:h});},resizeBy:function(w,h){var s=this.getSize();this.resizeTo(s.w+w,s.h+h);},update:function(k){var t=this,b,dom=t.dom;if(tinymce.isIE6&&t.settings.blocker){k=k||'';if(k.indexOf('get')===0||k.indexOf('has')===0||k.indexOf('is')===0)return;if(k=='remove'){dom.remove(t.blocker);return;}if(!t.blocker){t.blocker=dom.uniqueId();b=dom.add(t.settings.container||dom.getRoot(),'iframe',{id:t.blocker,style:'position:absolute;',frameBorder:0,src:'javascript:""'});dom.setStyle(b,'opacity',0);}else b=dom.get(t.blocker);dom.setStyle(b,'left',t.getStyle('left',1));dom.setStyle(b,'top',t.getStyle('top',1));dom.setStyle(b,'width',t.getStyle('width',1));dom.setStyle(b,'height',t.getStyle('height',1));dom.setStyle(b,'display',t.getStyle('display',1));dom.setStyle(b,'zIndex',parseInt(t.getStyle('zIndex',1)||0)-1);}}});})();(function(){function trimNl(s){return s.replace(/[\n\r]+/g,'');};var is=tinymce.is,isIE=tinymce.isIE,each=tinymce.each;tinymce.create('tinymce.dom.Selection',{Selection:function(dom,win,serializer){var t=this;t.dom=dom;t.win=win;t.serializer=serializer;tinymce.addUnload(t.destroy,t);},getContent:function(s){var t=this,r=t.getRng(),e=t.dom.create("body"),se=t.getSel(),wb,wa,n;s=s||{};wb=wa='';s.get=true;s.format=s.format||'html';if(s.format=='text')return t.isCollapsed()?'':(r.text||(se.toString?se.toString():''));if(r.cloneContents){n=r.cloneContents();if(n)e.appendChild(n);}else if(is(r.item)||is(r.htmlText))e.innerHTML=r.item?r.item(0).outerHTML:r.htmlText;else e.innerHTML=r.toString();if(/^\s/.test(e.innerHTML))wb=' ';if(/\s+$/.test(e.innerHTML))wa=' ';s.getInner=true;return t.isCollapsed()?'':wb+t.serializer.serialize(e,s)+wa;},setContent:function(h,s){var t=this,r=t.getRng(),d=t.win.document;s=s||{format:'html'};s.set=true;h=t.dom.processHTML(h);if(r.insertNode){if(tinymce.isGecko&&h.indexOf('<')==-1){r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h+'<span id="__caret">_</span>'));t.select(t.dom.get('__caret'));t.getRng().deleteContents();return;}try{if(d.queryCommandEnabled('InsertHTML'))return d.execCommand('InsertHTML',false,h);}catch(ex){r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h));}}else{if(r.item){d.execCommand('Delete',false,null);r=t.getRng();}r.pasteHTML(h);}},getStart:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(1);e=r.parentElement();if(e&&e.nodeName=='BODY')return e.firstChild;return e;}else{e=r.startContainer;if(e.nodeName=='BODY')return e.firstChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getEnd:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(0);e=r.parentElement();if(e&&e.nodeName=='BODY')return e.lastChild;return e;}else{e=r.endContainer;if(e.nodeName=='BODY')return e.lastChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getBookmark:function(si){var t=this,r=t.getRng(),tr,sx,sy,vp=t.dom.getViewPort(t.win),e,sp,bp,le,c=-0xFFFFFF,s,ro=t.dom.getRoot(),wb=0,wa=0,nv;sx=vp.x;sy=vp.y;if(si=='simple')return{rng:r,scrollX:sx,scrollY:sy};if(isIE){if(r.item){e=r.item(0);each(t.dom.select(e.nodeName),function(n,i){if(e==n){sp=i;return false;}});return{tag:e.nodeName,index:sp,scrollX:sx,scrollY:sy};}tr=t.dom.doc.body.createTextRange();tr.moveToElementText(ro);tr.collapse(true);bp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(true);sp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(false);le=Math.abs(tr.move('character',c))-sp;return{start:sp-bp,length:le,scrollX:sx,scrollY:sy};}e=t.getNode();s=t.getSel();if(!s)return null;if(e&&e.nodeName=='IMG'){return{scrollX:sx,scrollY:sy};}function getPos(r,sn,en){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){if(n==sn)d.start=p;if(n==en){d.end=p;return d;}p+=trimNl(n.nodeValue||'').length;}return null;};if(s.anchorNode==s.focusNode&&s.anchorOffset==s.focusOffset){e=getPos(ro,s.anchorNode,s.focusNode);if(!e)return{scrollX:sx,scrollY:sy};trimNl(s.anchorNode.nodeValue||'').replace(/^\s+/,function(a){wb=a.length;});return{start:Math.max(e.start+s.anchorOffset-wb,0),end:Math.max(e.end+s.focusOffset-wb,0),scrollX:sx,scrollY:sy,beg:s.anchorOffset-wb==0};}else{e=getPos(ro,r.startContainer,r.endContainer);if(!e)return{scrollX:sx,scrollY:sy};return{start:Math.max(e.start+r.startOffset-wb,0),end:Math.max(e.end+r.endOffset-wa,0),scrollX:sx,scrollY:sy,beg:r.startOffset-wb==0};}},moveToBookmark:function(b){var t=this,r=t.getRng(),s=t.getSel(),ro=t.dom.getRoot(),sd,nvl,nv;function getPos(r,sp,ep){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={},o,v,wa,wb;while((n=w.nextNode())!=null){wa=wb=0;nv=n.nodeValue||'';nvl=trimNl(nv).length;p+=nvl;if(p>=sp&&!d.startNode){o=sp-(p-nvl);if(b.beg&&o>=nvl)continue;d.startNode=n;d.startOffset=o+wb;}if(p>=ep){d.endNode=n;d.endOffset=ep-(p-nvl)+wb;return d;}}return null;};if(!b)return false;t.win.scrollTo(b.scrollX,b.scrollY);if(isIE){if(r=b.rng){try{r.select();}catch(ex){}return true;}t.win.focus();if(b.tag){r=ro.createControlRange();each(t.dom.select(b.tag),function(n,i){if(i==b.index)r.addElement(n);});}else{try{if(b.start<0)return true;r=s.createRange();r.moveToElementText(ro);r.collapse(true);r.moveStart('character',b.start);r.moveEnd('character',b.length);}catch(ex2){return true;}}try{r.select();}catch(ex){}return true;}if(!s)return false;if(b.rng){s.removeAllRanges();s.addRange(b.rng);}else{if(is(b.start)&&is(b.end)){try{sd=getPos(ro,b.start,b.end);if(sd){r=t.dom.doc.createRange();r.setStart(sd.startNode,sd.startOffset);r.setEnd(sd.endNode,sd.endOffset);s.removeAllRanges();s.addRange(r);}if(!tinymce.isOpera)t.win.focus();}catch(ex){}}}},select:function(n,c){var t=this,r=t.getRng(),s=t.getSel(),b,fn,ln,d=t.win.document;function first(n){return n?d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode():null;};function last(n){var c,o,w;if(!n)return null;w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(c=w.nextNode())o=c;return o;};if(isIE){try{b=d.body;if(/^(IMG|TABLE)$/.test(n.nodeName)){r=b.createControlRange();r.addElement(n);}else{r=b.createTextRange();r.moveToElementText(n);}r.select();}catch(ex){}}else{if(c){fn=first(n);ln=last(n);if(fn&&ln){r=d.createRange();r.setStart(fn,0);r.setEnd(ln,ln.nodeValue.length);}else r.selectNode(n);}else r.selectNode(n);t.setRng(r);}return n;},isCollapsed:function(){var t=this,r=t.getRng(),s=t.getSel();if(!r||r.item)return false;return!s||r.boundingWidth==0||s.isCollapsed;},collapse:function(b){var t=this,r=t.getRng(),n;if(r.item){n=r.item(0);r=this.win.document.body.createTextRange();r.moveToElementText(n);}r.collapse(!!b);t.setRng(r);},getSel:function(){var t=this,w=this.win;return w.getSelection?w.getSelection():w.document.selection;},getRng:function(){var t=this,s=t.getSel(),r;try{if(s)r=s.rangeCount>0?s.getRangeAt(0):(s.createRange?s.createRange():t.win.document.createRange());}catch(ex){}if(!r)r=isIE?t.win.document.body.createTextRange():t.win.document.createRange();return r;},setRng:function(r){var s;if(!isIE){s=this.getSel();if(s){s.removeAllRanges();s.addRange(r);}}else{try{r.select();}catch(ex){}}},setNode:function(n){var t=this;t.setContent(t.dom.getOuterHTML(n));return n;},getNode:function(){var t=this,r=t.getRng(),s=t.getSel(),e;if(!isIE){if(!r)return t.dom.getRoot();e=r.commonAncestorContainer;if(!r.collapsed){if(r.startContainer==r.endContainer||(tinymce.isWebKit&&r.startContainer==r.endContainer.parentNode)){if(r.startOffset-r.endOffset<2||tinymce.isWebKit){if(r.startContainer.hasChildNodes())e=r.startContainer.childNodes[r.startOffset];}}}return t.dom.getParent(e,function(n){return n.nodeType==1;});}return r.item?r.item(0):r.parentElement();},destroy:function(s){var t=this;t.win=null;if(!s)tinymce.removeUnload(t.destroy);}});})();(function(){tinymce.create('tinymce.dom.XMLWriter',{node:null,XMLWriter:function(s){function getXML(){var i=document.implementation;if(!i||!i.createDocument){try{return new ActiveXObject('MSXML2.DOMDocument');}catch(ex){}try{return new ActiveXObject('Microsoft.XmlDom');}catch(ex){}}else return i.createDocument('','',null);};this.doc=getXML();this.valid=tinymce.isOpera||tinymce.isWebKit;this.reset();},reset:function(){var t=this,d=t.doc;if(d.firstChild)d.removeChild(d.firstChild);t.node=d.appendChild(d.createElement("html"));},writeStartElement:function(n){var t=this;t.node=t.node.appendChild(t.doc.createElement(n));},writeAttribute:function(n,v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.setAttribute(n,v);},writeEndElement:function(){this.node=this.node.parentNode;},writeFullEndElement:function(){var t=this,n=t.node;n.appendChild(t.doc.createTextNode(""));t.node=n.parentNode;},writeText:function(v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.appendChild(this.doc.createTextNode(v));},writeCDATA:function(v){this.node.appendChild(this.doc.createCDATA(v));},writeComment:function(v){this.node.appendChild(this.doc.createComment(v.replace(/\-\-/g,' ')));},getContent:function(){var h;h=this.doc.xml||new XMLSerializer().serializeToString(this.doc);h=h.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g,'');h=h.replace(/ ?\/>/g,' />');if(this.valid)h=h.replace(/\%MCGT%/g,'>');return h;}});})();(function(){tinymce.create('tinymce.dom.StringWriter',{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(s){this.settings=tinymce.extend({indent_char:' ',indentation:1},s);this.reset();},reset:function(){this.indent='';this.str="";this.tags=[];this.count=0;},writeStartElement:function(n){this._writeAttributesEnd();this.writeRaw('<'+n);this.tags.push(n);this.inAttr=true;this.count++;this.elementCount=this.count;},writeAttribute:function(n,v){var t=this;t.writeRaw(" "+t.encode(n)+'="'+t.encode(v)+'"');},writeEndElement:function(){var n;if(this.tags.length>0){n=this.tags.pop();if(this._writeAttributesEnd(1))this.writeRaw('</'+n+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeFullEndElement:function(){if(this.tags.length>0){this._writeAttributesEnd();this.writeRaw('</'+this.tags.pop()+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeText:function(v){this._writeAttributesEnd();this.writeRaw(this.encode(v));this.count++;},writeCDATA:function(v){this._writeAttributesEnd();this.writeRaw('<![CDATA['+v+']]>');this.count++;},writeComment:function(v){this._writeAttributesEnd();this.writeRaw('<!-- '+v+'-->');this.count++;},writeRaw:function(v){this.str+=v;},encode:function(s){return s.replace(/[<>&"]/g,function(v){switch(v){case'<':return'<';case'>':return'>';case'&':return'&';case'"':return'"';}return v;});},getContent:function(){return this.str;},_writeAttributesEnd:function(s){if(!this.inAttr)return;this.inAttr=false;if(s&&this.elementCount==this.count){this.writeRaw(' />');return false;}this.writeRaw('>');return true;}});})();(function(){var extend=tinymce.extend,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher,isIE=tinymce.isIE,isGecko=tinymce.isGecko;function getIEAtts(n){var o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;};function wildcardToRE(s){return s.replace(/([?+*])/g,'.$1');};tinymce.create('tinymce.dom.Serializer',{Serializer:function(s){var t=this;t.key=0;t.onPreProcess=new Dispatcher(t);t.onPostProcess=new Dispatcher(t);if(tinymce.relaxedDomain&&tinymce.isGecko){t.writer=new tinymce.dom.StringWriter();}else{try{t.writer=new tinymce.dom.XMLWriter();}catch(ex){t.writer=new tinymce.dom.StringWriter();}}t.settings=s=extend({dom:tinymce.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_)/,closed:/(br|hr|input|meta|img|link|param)/,entity_encoding:'named',entities:'160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro',valid_elements:'*[*]',extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:0,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,font_size_style_values:0,apply_source_formatting:0,indent_mode:'simple',indent_char:'\t',indent_levels:1,remove_linebreaks:1},s);t.dom=s.dom;if(s.fix_list_elements){t.onPreProcess.add(function(se,o){var nl,x,a=['ol','ul'],i,n,p,r=/^(OL|UL)$/,np;function prevNode(e,n){var a=n.split(','),i;while((e=e.previousSibling)!=null){for(i=0;i<a.length;i++){if(e.nodeName==a[i])return e;}}return null;};for(x=0;x<a.length;x++){nl=t.dom.select(a[x],o.node);for(i=0;i<nl.length;i++){n=nl[i];p=n.parentNode;if(r.test(p.nodeName)){np=prevNode(n,'LI');if(!np){np=t.dom.create('li');np.innerHTML=' ';np.appendChild(n);p.insertBefore(np,p.firstChild);}else np.appendChild(n);}}}});}if(s.fix_table_elements){t.onPreProcess.add(function(se,o){each(t.dom.select('table',o.node),function(e){var pa=t.dom.getParent(e,'H1,H2,H3,H4,H5,H6,P'),pa2,n,tm,pl=[],i,ns;if(pa){pa2=pa.cloneNode(false);pl.push(e);for(n=e;n=n.parentNode;){pl.push(n);if(n==pa)break;}tm=pa2;for(i=pl.length-1;i>=0;i--){if(i==pl.length-1){while(ns=pl[i-1].nextSibling)tm.appendChild(ns.parentNode.removeChild(ns));}else{n=pl[i].cloneNode(false);if(i!=0){while(ns=pl[i-1].nextSibling)n.appendChild(ns.parentNode.removeChild(ns));}tm=tm.appendChild(n);}}e=t.dom.insertAfter(e.parentNode.removeChild(e),pa);t.dom.insertAfter(e,pa);t.dom.insertAfter(pa2,e);}});});}},setEntities:function(s){var t=this,a,i,l={},re='',v;if(t.entityLookup)return;a=s.split(',');for(i=0;i<a.length;i+=2){v=a[i];if(v==34||v==38||v==60||v==62)continue;l[String.fromCharCode(a[i])]=a[i+1];v=parseInt(a[i]).toString(16);re+='\\u'+'0000'.substring(v.length)+v;}if(!re){t.settings.entity_encoding='raw';return;}t.entitiesRE=new RegExp('['+re+']','g');t.entityLookup=l;},setValidChildRules:function(s){this.childRules=null;this.addValidChildRules(s);},addValidChildRules:function(s){var t=this,inst,intr,bloc;if(!s)return;inst='A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';intr='A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';bloc='H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';each(s.split(','),function(s){var p=s.split(/\[|\]/),re;s='';each(p[1].split('|'),function(v){if(s)s+='|';switch(v){case'%itrans':v=intr;break;case'%itrans_na':v=intr.substring(2);break;case'%istrict':v=inst;break;case'%istrict_na':v=inst.substring(2);break;case'%btrans':v=bloc;break;case'%bstrict':v=bloc;break;}s+=v;});re=new RegExp('^('+s.toLowerCase()+')$','i');each(p[0].split('/'),function(s){t.childRules=t.childRules||{};t.childRules[s]=re;});});s='';each(t.childRules,function(v,k){if(s)s+='|';s+=k;});t.parentElementsRE=new RegExp('^('+s.toLowerCase()+')$','i');},setRules:function(s){var t=this;t._setup();t.rules={};t.wildRules=[];t.validElements={};return t.addRules(s);},addRules:function(s){var t=this,dr;if(!s)return;t._setup();each(s.split(','),function(s){var p=s.split(/\[|\]/),tn=p[0].split('/'),ra,at,wat,va=[];if(dr)at=tinymce.extend([],dr.attribs);if(p.length>1){each(p[1].split('|'),function(s){var ar={},i;at=at||[];s=s.replace(/::/g,'~');s=/^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(s);s[2]=s[2].replace(/~/g,':');if(s[1]=='!'){ra=ra||[];ra.push(s[2]);}if(s[1]=='-'){for(i=0;i<at.length;i++){if(at[i].name==s[2]){at.splice(i,1);return;}}}switch(s[3]){case'=':ar.defaultVal=s[4]||'';break;case':':ar.forcedVal=s[4];break;case'<':ar.validVals=s[4].split('?');break;}if(/[*.?]/.test(s[2])){wat=wat||[];ar.nameRE=new RegExp('^'+wildcardToRE(s[2])+'$');wat.push(ar);}else{ar.name=s[2];at.push(ar);}va.push(s[2]);});}each(tn,function(s,i){var pr=s.charAt(0),x=1,ru={};if(dr){if(dr.noEmpty)ru.noEmpty=dr.noEmpty;if(dr.fullEnd)ru.fullEnd=dr.fullEnd;if(dr.padd)ru.padd=dr.padd;}switch(pr){case'-':ru.noEmpty=true;break;case'+':ru.fullEnd=true;break;case'#':ru.padd=true;break;default:x=0;}tn[i]=s=s.substring(x);t.validElements[s]=1;if(/[*.?]/.test(tn[0])){ru.nameRE=new RegExp('^'+wildcardToRE(tn[0])+'$');t.wildRules=t.wildRules||{};t.wildRules.push(ru);}else{ru.name=tn[0];if(tn[0]=='@')dr=ru;t.rules[s]=ru;}ru.attribs=at;if(ra)ru.requiredAttribs=ra;if(wat){s='';each(va,function(v){if(s)s+='|';s+='('+wildcardToRE(v)+')';});ru.validAttribsRE=new RegExp('^'+s.toLowerCase()+'$');ru.wildAttribs=wat;}});});s='';each(t.validElements,function(v,k){if(s)s+='|';if(k!='@')s+=k;});t.validElementsRE=new RegExp('^('+wildcardToRE(s.toLowerCase())+')$');},findRule:function(n){var t=this,rl=t.rules,i,r;t._setup();r=rl[n];if(r)return r;rl=t.wildRules;for(i=0;i<rl.length;i++){if(rl[i].nameRE.test(n))return rl[i];}return null;},findAttribRule:function(ru,n){var i,wa=ru.wildAttribs;for(i=0;i<wa.length;i++){if(wa[i].nameRE.test(n))return wa[i];}return null;},serialize:function(n,o){var h,t=this;t._setup();o=o||{};o.format=o.format||'html';t.processObj=o;n=n.cloneNode(true);t.key=''+(parseInt(t.key)+1);if(!o.no_events){o.node=n;t.onPreProcess.dispatch(t,o);}t.writer.reset();t._serializeNode(n,o.getInner);o.content=t.writer.getContent();if(!o.no_events)t.onPostProcess.dispatch(t,o);t._postProcess(o);o.node=null;return tinymce.trim(o.content);},_postProcess:function(o){var t=this,s=t.settings,h=o.content,sc=[],p;if(o.format=='html'){p=t._protect({content:h,patterns:[{pattern:/(<script[^>]*>)(.*?)(<\/script>)/g},{pattern:/(<style[^>]*>)(.*?)(<\/style>)/g},{pattern:/(<pre[^>]*>)(.*?)(<\/pre>)/g,encode:1}]});h=p.content;if(s.entity_encoding!=='raw')h=t._encode(h);if(!o.set){h=h.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g,s.entity_encoding=='numeric'?'<p$1> </p>':'<p$1> </p>');if(s.remove_linebreaks){h=h.replace(/\r?\n|\r/g,' ');h=h.replace(/(<[^>]+>)\s+/g,'$1 ');h=h.replace(/\s+(<\/[^>]+>)/g,' $1');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g,'<$1 $2>');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g,'<$1>');h=h.replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g,'</$1>');}if(s.apply_source_formatting&&s.indent_mode=='simple'){h=h.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g,'\n<$1$2$3>\n');h=h.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g,'\n<$1$2>');h=h.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g,'</$1>\n');h=h.replace(/\n\n/g,'\n');}}h=t._unprotect(h,p);if(s.entity_encoding=='raw')h=h.replace(/<p> <\/p>|<p([^>]+)> <\/p>/g,'<p$1>\u00a0</p>');}o.content=h;},_serializeNode:function(n,inn){var t=this,s=t.settings,w=t.writer,hc,el,cn,i,l,a,at,no,v,nn,ru,ar,iv;if(!s.node_filter||s.node_filter(n)){switch(n.nodeType){case 1:if(n.hasAttribute?n.hasAttribute('mce_bogus'):n.getAttribute('mce_bogus'))return;iv=false;hc=n.hasChildNodes();nn=n.getAttribute('mce_name')||n.nodeName.toLowerCase();if(isIE){if(n.scopeName!=='HTML'&&n.scopeName!=='html')nn=n.scopeName+':'+nn;}if(nn.indexOf('mce:')===0)nn=nn.substring(4);if(!t.validElementsRE.test(nn)||(t.invalidElementsRE&&t.invalidElementsRE.test(nn))||inn){iv=true;break;}if(isIE){if(s.fix_content_duplication){if(n.mce_serialized==t.key)return;n.mce_serialized=t.key;}if(nn.charAt(0)=='/')nn=nn.substring(1);}else if(isGecko){if(n.nodeName==='BR'&&n.getAttribute('type')=='_moz')return;}if(t.childRules){if(t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(nn)){iv=true;break;}}t.elementName=nn;}ru=t.findRule(nn);nn=ru.name||nn;if((!hc&&ru.noEmpty)||(isIE&&!nn)){iv=true;break;}if(ru.requiredAttribs){a=ru.requiredAttribs;for(i=a.length-1;i>=0;i--){if(this.dom.getAttrib(n,a[i])!=='')break;}if(i==-1){iv=true;break;}}w.writeStartElement(nn);if(ru.attribs){for(i=0,at=ru.attribs,l=at.length;i<l;i++){a=at[i];v=t._getAttrib(n,a);if(v!==null)w.writeAttribute(a.name,v);}}if(ru.validAttribsRE){at=isIE?getIEAtts(n):n.attributes;for(i=at.length-1;i>-1;i--){no=at[i];if(no.specified){a=no.nodeName.toLowerCase();if(s.invalid_attrs.test(a)||!ru.validAttribsRE.test(a))continue;ar=t.findAttribRule(ru,a);v=t._getAttrib(n,ar,a);if(v!==null)w.writeAttribute(a,v);}}}if(!hc&&ru.padd)w.writeText('\u00a0');break;case 3:if(t.childRules&&t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(n.nodeName))return;}return w.writeText(n.nodeValue);case 4:return w.writeCDATA(n.nodeValue);case 8:return w.writeComment(n.nodeValue);}}else if(n.nodeType==1)hc=n.hasChildNodes();if(hc){cn=n.firstChild;while(cn){t._serializeNode(cn);t.elementName=nn;cn=cn.nextSibling;}}if(!iv){if(hc||!s.closed.test(nn))w.writeFullEndElement();else w.writeEndElement();}},_protect:function(o){var t=this;o.items=o.items||[];function enc(s){return s.replace(/[\r\n\\]/g,function(c){if(c==='\n')return'\\n';else if(c==='\\')return'\\\\';return'\\r';});};function dec(s){return s.replace(/\\[\\rn]/g,function(c){if(c==='\\n')return'\n';else if(c==='\\\\')return'\\';return'\r';});};each(o.patterns,function(p){o.content=dec(enc(o.content).replace(p.pattern,function(x,a,b,c){b=dec(b);if(p.encode)b=t._encode(b);o.items.push(b);return a+'<!--mce:'+(o.items.length-1)+'-->'+c;}));});return o;},_unprotect:function(h,o){h=h.replace(/\<!--mce:([0-9]+)--\>/g,function(a,b){return o.items[parseInt(b)];});o.items=[];return h;},_encode:function(h){var t=this,s=t.settings,l;if(s.entity_encoding!=='raw'){if(s.entity_encoding.indexOf('named')!=-1){t.setEntities(s.entities);l=t.entityLookup;h=h.replace(t.entitiesRE,function(a){var v;if(v=l[a])a='&'+v+';';return a;});}if(s.entity_encoding.indexOf('numeric')!=-1){h=h.replace(/[\u007E-\uFFFF]/g,function(a){return'&#'+a.charCodeAt(0)+';';});}}return h;},_setup:function(){var t=this,s=this.settings;if(t.done)return;t.done=1;t.setRules(s.valid_elements);t.addRules(s.extended_valid_elements);t.addValidChildRules(s.valid_child_elements);if(s.invalid_elements)t.invalidElementsRE=new RegExp('^('+wildcardToRE(s.invalid_elements.replace(/,/g,'|').toLowerCase())+')$');if(s.attrib_value_filter)t.attribValueFilter=s.attribValueFilter;},_getAttrib:function(n,a,na){var i,v;na=na||a.name;if(a.forcedVal&&(v=a.forcedVal)){if(v==='{$uid}')return this.dom.uniqueId();return v;}v=this.dom.getAttrib(n,na);switch(na){case'rowspan':case'colspan':if(v=='1')v='';break;}if(this.attribValueFilter)v=this.attribValueFilter(na,v,n);if(a.validVals){for(i=a.validVals.length-1;i>=0;i--){if(v==a.validVals[i])break;}if(i==-1)return null;}if(v===''&&typeof(a.defaultVal)!='undefined'){v=a.defaultVal;if(v==='{$uid}')return this.dom.uniqueId();return v;}else{if(na=='class'&&this.processObj.get)v=v.replace(/\s?mceItem\w+\s?/g,'');}if(v==='')return null;return v;}});})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.ScriptLoader',{ScriptLoader:function(s){this.settings=s||{};this.queue=[];this.lookup={};},isDone:function(u){return this.lookup[u]?this.lookup[u].state==2:0;},markDone:function(u){this.lookup[u]={state:2,url:u};},add:function(u,cb,s,pr){var t=this,lo=t.lookup,o;if(o=lo[u]){if(cb&&o.state==2)cb.call(s||this);return o;}o={state:0,url:u,func:cb,scope:s||this};if(pr)t.queue.unshift(o);else t.queue.push(o);lo[u]=o;return o;},load:function(u,cb,s){var t=this,o;if(o=t.lookup[u]){if(cb&&o.state==2)cb.call(s||t);return o;}function loadScript(u){if(tinymce.dom.Event.domLoaded||t.settings.strict_mode){tinymce.util.XHR.send({url:tinymce._addVer(u),error:t.settings.error,async:false,success:function(co){t.eval(co);}});}else document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"></script>');};if(!tinymce.is(u,'string')){each(u,function(u){loadScript(u);});if(cb)cb.call(s||t);}else{loadScript(u);if(cb)cb.call(s||t);}},loadQueue:function(cb,s){var t=this;if(!t.queueLoading){t.queueLoading=1;t.queueCallbacks=[];t.loadScripts(t.queue,function(){t.queueLoading=0;if(cb)cb.call(s||t);each(t.queueCallbacks,function(o){o.func.call(o.scope);});});}else if(cb)t.queueCallbacks.push({func:cb,scope:s||t});},eval:function(co){var w=window;if(!w.execScript){try{eval.call(w,co);}catch(ex){eval(co,w);}}else w.execScript(co);},loadScripts:function(sc,cb,s){var t=this,lo=t.lookup;function done(o){o.state=2;if(o.func)o.func.call(o.scope||t);};function allDone(){var l;l=sc.length;each(sc,function(o){o=lo[o.url];if(o.state===2){done(o);l--;}else load(o);});if(l===0&&cb){cb.call(s||t);cb=0;}};function load(o){if(o.state>0)return;o.state=1;tinymce.util.XHR.send({url:o.url,error:t.settings.error,success:function(co){t.eval(co);done(o);allDone();}});};each(sc,function(o){var u=o.url;if(!lo[u]){lo[u]=o;t.queue.push(o);}else o=lo[u];if(o.state>0)return;if(!tinymce.dom.Event.domLoaded&&!t.settings.strict_mode){var ix,ol='';if(cb||o.func){o.state=1;ix=tinymce.dom.ScriptLoader._addOnLoad(function(){done(o);allDone();});if(tinymce.isIE)ol=' onreadystatechange="';else ol=' onload="';ol+='tinymce.dom.ScriptLoader._onLoad(this,\''+u+'\','+ix+');"';}document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"'+ol+'></script>');if(!o.func)done(o);}else load(o);});allDone();},'static':{_addOnLoad:function(f){var t=this;t._funcs=t._funcs||[];t._funcs.push(f);return t._funcs.length-1;},_onLoad:function(e,u,ix){if(!tinymce.isIE||e.readyState=='complete')this._funcs[ix].call(this);}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader();})();(function(){var DOM=tinymce.DOM,is=tinymce.is;tinymce.create('tinymce.ui.Control',{Control:function(id,s){this.id=id;this.settings=s=s||{};this.rendered=false;this.onRender=new tinymce.util.Dispatcher(this);this.classPrefix='';this.scope=s.scope||this;this.disabled=0;this.active=0;},setDisabled:function(s){var e;if(s!=this.disabled){e=DOM.get(this.id);if(e&&this.settings.unavailable_prefix){if(s){this.prevTitle=e.title;e.title=this.settings.unavailable_prefix+": "+e.title;}else e.title=this.prevTitle;}this.setState('Disabled',s);this.setState('Enabled',!s);this.disabled=s;}},isDisabled:function(){return this.disabled;},setActive:function(s){if(s!=this.active){this.setState('Active',s);this.active=s;}},isActive:function(){return this.active;},setState:function(c,s){var n=DOM.get(this.id);c=this.classPrefix+c;if(s)DOM.addClass(n,c);else DOM.removeClass(n,c);},isRendered:function(){return this.rendered;},renderHTML:function(){},renderTo:function(n){DOM.setHTML(n,this.renderHTML());},postRender:function(){var t=this,b;if(is(t.disabled)){b=t.disabled;t.disabled=-1;t.setDisabled(b);}if(is(t.active)){b=t.active;t.active=-1;t.setActive(b);}},remove:function(){DOM.remove(this.id);this.destroy();},destroy:function(){tinymce.dom.Event.clear(this.id);}});})();tinymce.create('tinymce.ui.Container:tinymce.ui.Control',{Container:function(id,s){this.parent(id,s);this.controls=[];this.lookup={};},add:function(c){this.lookup[c.id]=c;this.controls.push(c);return c;},get:function(n){return this.lookup[n];}});tinymce.create('tinymce.ui.Separator:tinymce.ui.Control',{Separator:function(id,s){this.parent(id,s);this.classPrefix='mceSeparator';},renderHTML:function(){return tinymce.DOM.createHTML('span',{'class':this.classPrefix});}});(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control',{MenuItem:function(id,s){this.parent(id,s);this.classPrefix='mceMenuItem';},setSelected:function(s){this.setState('Selected',s);this.selected=s;},isSelected:function(){return this.selected;},postRender:function(){var t=this;t.parent();if(is(t.selected))t.setSelected(t.selected);}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem',{Menu:function(id,s){var t=this;t.parent(id,s);t.items={};t.collapsed=false;t.menuCount=0;t.onAddItem=new tinymce.util.Dispatcher(this);},expand:function(d){var t=this;if(d){walk(t,function(o){if(o.expand)o.expand();},'items',t);}t.collapsed=false;},collapse:function(d){var t=this;if(d){walk(t,function(o){if(o.collapse)o.collapse();},'items',t);}t.collapsed=true;},isCollapsed:function(){return this.collapsed;},add:function(o){if(!o.settings)o=new tinymce.ui.MenuItem(o.id||DOM.uniqueId(),o);this.onAddItem.dispatch(this,o);return this.items[o.id]=o;},addSeparator:function(){return this.add({separator:true});},addMenu:function(o){if(!o.collapse)o=this.createMenu(o);this.menuCount++;return this.add(o);},hasMenus:function(){return this.menuCount!==0;},remove:function(o){delete this.items[o.id];},removeAll:function(){var t=this;walk(t,function(o){if(o.removeAll)o.removeAll();else o.remove();o.destroy();},'items',t);t.items={};},createMenu:function(o){var m=new tinymce.ui.Menu(o.id||DOM.uniqueId(),o);m.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return m;}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,Event=tinymce.dom.Event,Element=tinymce.dom.Element;tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu',{DropMenu:function(id,s){s=s||{};s.container=s.container||DOM.doc.body;s.offset_x=s.offset_x||0;s.offset_y=s.offset_y||0;s.vp_offset_x=s.vp_offset_x||0;s.vp_offset_y=s.vp_offset_y||0;if(is(s.icons)&&!s.icons)s['class']+=' mceNoIcons';this.parent(id,s);this.onShowMenu=new tinymce.util.Dispatcher(this);this.onHideMenu=new tinymce.util.Dispatcher(this);this.classPrefix='mceMenu';},createMenu:function(s){var t=this,cs=t.settings,m;s.container=s.container||cs.container;s.parent=t;s.constrain=s.constrain||cs.constrain;s['class']=s['class']||cs['class'];s.vp_offset_x=s.vp_offset_x||cs.vp_offset_x;s.vp_offset_y=s.vp_offset_y||cs.vp_offset_y;m=new tinymce.ui.DropMenu(s.id||DOM.uniqueId(),s);m.onAddItem.add(t.onAddItem.dispatch,t.onAddItem);return m;},update:function(){var t=this,s=t.settings,tb=DOM.get('menu_'+t.id+'_tbl'),co=DOM.get('menu_'+t.id+'_co'),tw,th;tw=s.max_width?Math.min(tb.clientWidth,s.max_width):tb.clientWidth;th=s.max_height?Math.min(tb.clientHeight,s.max_height):tb.clientHeight;if(!DOM.boxModel)t.element.setStyles({width:tw+2,height:th+2});else t.element.setStyles({width:tw,height:th});if(s.max_width)DOM.setStyle(co,'width',tw);if(s.max_height){DOM.setStyle(co,'height',th);if(tb.clientHeight<s.max_height)DOM.setStyle(co,'overflow','hidden');}},showMenu:function(x,y,px){var t=this,s=t.settings,co,vp=DOM.getViewPort(),w,h,mx,my,ot=2,dm,tb,cp=t.classPrefix;t.collapse(1);if(t.isMenuVisible)return;if(!t.rendered){co=DOM.add(t.settings.container,t.renderNode());each(t.items,function(o){o.postRender();});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});}else co=DOM.get('menu_'+t.id);if(!tinymce.isOpera)DOM.setStyles(co,{left:-0xFFFF,top:-0xFFFF});DOM.show(co);t.update();x+=s.offset_x||0;y+=s.offset_y||0;vp.w-=4;vp.h-=4;if(s.constrain){w=co.clientWidth-ot;h=co.clientHeight-ot;mx=vp.x+vp.w;my=vp.y+vp.h;if((x+s.vp_offset_x+w)>mx)x=px?px-w:Math.max(0,(mx-s.vp_offset_x)-w);if((y+s.vp_offset_y+h)>my)y=Math.max(0,(my-s.vp_offset_y)-h);}DOM.setStyles(co,{left:x,top:y});t.element.update();t.isMenuVisible=1;t.mouseClickFunc=Event.add(co,'click',function(e){var m;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))&&!DOM.hasClass(e,cp+'ItemSub')){m=t.items[e.id];if(m.isDisabled())return;dm=t;while(dm){if(dm.hideMenu)dm.hideMenu();dm=dm.settings.parent;}if(m.settings.onclick)m.settings.onclick(e);return Event.cancel(e);}});if(t.hasMenus()){t.mouseOverFunc=Event.add(co,'mouseover',function(e){var m,r,mi;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))){m=t.items[e.id];if(t.lastMenu)t.lastMenu.collapse(1);if(m.isDisabled())return;if(e&&DOM.hasClass(e,cp+'ItemSub')){r=DOM.getRect(e);m.showMenu((r.x+r.w-ot),r.y-ot,r.x);t.lastMenu=m;DOM.addClass(DOM.get(m.id).firstChild,cp+'ItemActive');}}});}t.onShowMenu.dispatch(t);if(s.keyboard_focus){Event.add(co,'keydown',t._keyHandler,t);DOM.select('a','menu_'+t.id)[0].focus();t._focusIdx=0;}},hideMenu:function(c){var t=this,co=DOM.get('menu_'+t.id),e;if(!t.isMenuVisible)return;Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);Event.remove(co,'keydown',t._keyHandler);DOM.hide(co);t.isMenuVisible=0;if(!c)t.collapse(1);if(t.element)t.element.hide();if(e=DOM.get(t.id))DOM.removeClass(e.firstChild,t.classPrefix+'ItemActive');t.onHideMenu.dispatch(t);},add:function(o){var t=this,co;o=t.parent(o);if(t.isRendered&&(co=DOM.get('menu_'+t.id)))t._add(DOM.select('tbody',co)[0],o);return o;},collapse:function(d){this.parent(d);this.hideMenu(1);},remove:function(o){DOM.remove(o.id);this.destroy();return this.parent(o);},destroy:function(){var t=this,co=DOM.get('menu_'+t.id);Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);if(t.element)t.element.remove();DOM.remove(co);},renderNode:function(){var t=this,s=t.settings,n,tb,co,w;w=DOM.create('div',{id:'menu_'+t.id,'class':s['class'],'style':'position:absolute;left:0;top:0;z-index:200000'});co=DOM.add(w,'div',{id:'menu_'+t.id+'_co','class':t.classPrefix+(s['class']?' '+s['class']:'')});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});if(s.menu_line)DOM.add(co,'span',{'class':t.classPrefix+'Line'});n=DOM.add(co,'table',{id:'menu_'+t.id+'_tbl',border:0,cellPadding:0,cellSpacing:0});tb=DOM.add(n,'tbody');each(t.items,function(o){t._add(tb,o);});t.rendered=true;return w;},_keyHandler:function(e){var t=this,kc=e.keyCode;function focus(d){var i=t._focusIdx+d,e=DOM.select('a','menu_'+t.id)[i];if(e){t._focusIdx=i;e.focus();}};switch(kc){case 38:focus(-1);return;case 40:focus(1);return;case 13:return;case 27:return this.hideMenu();}},_add:function(tb,o){var n,s=o.settings,a,ro,it,cp=this.classPrefix;if(s.separator){ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'ItemSeparator'});DOM.add(ro,'td',{'class':cp+'ItemSeparator'});if(n=ro.previousSibling)DOM.addClass(n,'mceLast');return;}n=ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'Item '+cp+'ItemEnabled'});n=it=DOM.add(n,'td');n=a=DOM.add(n,'a',{href:'javascript:;',onclick:"return false;",onmousedown:'return false;'});DOM.addClass(it,s['class']);DOM.add(n,'span',{'class':'mceIcon'+(s.icon?' mce_'+s.icon:'')});n=DOM.add(n,s.element||'span',{'class':'mceText',title:o.settings.title},o.settings.title);if(o.settings.style)DOM.setAttrib(n,'style',o.settings.style);if(tb.childNodes.length==1)DOM.addClass(ro,'mceFirst');if((n=ro.previousSibling)&&DOM.hasClass(n,cp+'ItemSeparator'))DOM.addClass(ro,'mceFirst');if(o.collapse)DOM.addClass(ro,cp+'ItemSub');if(n=ro.previousSibling)DOM.removeClass(n,'mceLast');DOM.addClass(ro,'mceLast');}});})();(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.ui.Button:tinymce.ui.Control',{Button:function(id,s){this.parent(id,s);this.classPrefix='mceButton';},renderHTML:function(){var cp=this.classPrefix,s=this.settings,h,l;l=DOM.encode(s.label||'');h='<a id="'+this.id+'" href="javascript:;" class="'+cp+' '+cp+'Enabled '+s['class']+(l?' '+cp+'Labeled':'')+'" onmousedown="return false;" onclick="return false;" title="'+DOM.encode(s.title)+'">';if(s.image)h+='<img class="mceIcon" src="'+s.image+'" />'+l+'</a>';else h+='<span class="mceIcon '+s['class']+'"></span>'+(l?'<span class="'+cp+'Label">'+l+'</span>':'')+'</a>';return h;},postRender:function(){var t=this,s=t.settings;tinymce.dom.Event.add(t.id,'click',function(e){if(!t.isDisabled())return s.onclick.call(s.scope,e);});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control',{ListBox:function(id,s){var t=this;t.parent(id,s);t.items=[];t.onChange=new Dispatcher(t);t.onPostRender=new Dispatcher(t);t.onAdd=new Dispatcher(t);t.onRenderMenu=new tinymce.util.Dispatcher(this);t.classPrefix='mceListBox';},select:function(v){var t=this,e,fv;if(v!=t.selectedValue){e=DOM.get(t.id+'_text');t.selectedValue=v;each(t.items,function(o){if(o.value==v){DOM.setHTML(e,DOM.encode(o.title));fv=1;return false;}});if(!fv){DOM.setHTML(e,DOM.encode(t.settings.title));DOM.addClass(e,'mceTitle');e=0;return;}else DOM.removeClass(e,'mceTitle');}e=0;},add:function(n,v,o){var t=this;o=o||{};o=tinymce.extend(o,{title:n,value:v});t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return this.items.length;},renderHTML:function(){var h='',t=this,s=t.settings,cp=t.classPrefix;h='<table id="'+t.id+'" cellpadding="0" cellspacing="0" class="'+cp+' '+cp+'Enabled'+(s['class']?(' '+s['class']):'')+'"><tbody><tr>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_text',href:'javascript:;','class':'mceText',onclick:"return false;",onmousedown:'return false;'},DOM.encode(t.settings.title))+'</td>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',tabindex:-1,href:'javascript:;','class':'mceOpen',onclick:"return false;",onmousedown:'return false;'},'<span></span>')+'</td>';h+='</tr></tbody></table>';return h;},showMenu:function(){var t=this,p1,p2,e=DOM.get(this.id),m;if(t.isDisabled()||t.items.length==0)return;if(t.menu&&t.menu.isMenuVisible)return t.hideMenu();if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}p1=DOM.getPos(this.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.keyboard_focus=!tinymce.isOpera;if(t.oldID)m.items[t.oldID].setSelected(0);each(t.items,function(o){if(o.value===t.selectedValue){m.items[o.id].setSelected(1);t.oldID=o.id;}});m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);DOM.addClass(t.id,t.classPrefix+'Selected');},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&(e.target.id==t.id+'_text'||e.target.id==t.id+'_open'))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){DOM.removeClass(t.id,t.classPrefix+'Selected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':t.classPrefix+'Menu mceNoIcons',max_width:150,max_height:150});m.onHideMenu.add(t.hideMenu,t);m.add({title:t.settings.title,'class':'mceMenuItemTitle',onclick:function(){if(t.settings.onselect('')!==false)t.select('');}});each(t.items,function(o){o.id=DOM.uniqueId();o.onclick=function(){if(t.settings.onselect(o.value)!==false)t.select(o.value);};m.add(o);});t.onRenderMenu.dispatch(t,m);t.menu=m;},postRender:function(){var t=this,cp=t.classPrefix;Event.add(t.id,'click',t.showMenu,t);Event.add(t.id+'_text','focus',function(e){if(!t._focused){t.keyDownHandler=Event.add(t.id+'_text','keydown',function(e){var idx=-1,v,kc=e.keyCode;each(t.items,function(v,i){if(t.selectedValue==v.value)idx=i;});if(kc==38)v=t.items[idx-1];else if(kc==40)v=t.items[idx+1];else if(kc==13){v=t.selectedValue;t.selectedValue=null;t.settings.onselect(v);return Event.cancel(e);}if(v){t.hideMenu();t.select(v.value);}});}t._focused=1;});Event.add(t.id+'_text','blur',function(){Event.remove(t.id+'_text','keydown',t.keyDownHandler);t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.addClass(t.id,cp+'Hover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.removeClass(t.id,cp+'Hover');});}t.onPostRender.dispatch(t,DOM.get(t.id));},destroy:function(){this.parent();Event.clear(this.id+'_text');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox',{NativeListBox:function(id,s){this.parent(id,s);this.classPrefix='mceNativeListBox';},setDisabled:function(s){DOM.get(this.id).disabled=s;},isDisabled:function(){return DOM.get(this.id).disabled;},select:function(v){var e=DOM.get(this.id),ol=e.options;v=''+(v||'');e.selectedIndex=0;each(ol,function(o,i){if(o.value==v){e.selectedIndex=i;return false;}});},add:function(n,v,a){var o,t=this;a=a||{};a.value=v;if(t.isRendered())DOM.add(DOM.get(this.id),'option',a,n);o={title:n,value:v,attribs:a};t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return DOM.get(this.id).options.length-1;},renderHTML:function(){var h,t=this;h=DOM.createHTML('option',{value:''},'-- '+t.settings.title+' --');each(t.items,function(it){h+=DOM.createHTML('option',{value:it.value},it.title);});h=DOM.createHTML('select',{id:t.id,'class':'mceNativeListBox'},h);return h;},postRender:function(){var t=this,ch;t.rendered=true;function onChange(e){var v=e.target.options[e.target.selectedIndex].value;t.onChange.dispatch(t,v);if(t.settings.onselect)t.settings.onselect(v);};Event.add(t.id,'change',onChange);Event.add(t.id,'keydown',function(e){var bf;Event.remove(t.id,'change',ch);bf=Event.add(t.id,'blur',function(){Event.add(t.id,'change',onChange);Event.remove(t.id,'blur',bf);});if(e.keyCode==13||e.keyCode==32){onChange(e);return Event.cancel(e);}});t.onPostRender.dispatch(t,DOM.get(t.id));}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button',{MenuButton:function(id,s){this.parent(id,s);this.onRenderMenu=new tinymce.util.Dispatcher(this);s.menu_container=s.menu_container||DOM.doc.body;},showMenu:function(){var t=this,p1,p2,e=DOM.get(t.id),m;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();p1=DOM.getPos(t.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.vp_offset_x=p2.x;m.settings.vp_offset_y=p2.y;m.settings.keyboard_focus=t._focused;m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);t.setState('Selected',1);t.isMenuVisible=1;},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':this.classPrefix+'Menu',icons:t.settings.icons});m.onHideMenu.add(t.hideMenu,t);t.onRenderMenu.dispatch(t,m);t.menu=m;},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&DOM.getParent(e.target,function(e){return e.id===t.id||e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){t.setState('Selected',0);Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}t.isMenuVisible=0;},postRender:function(){var t=this,s=t.settings;Event.add(t.id,'click',function(){if(!t.isDisabled()){if(s.onclick)s.onclick(t.value);t.showMenu();}});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton',{SplitButton:function(id,s){this.parent(id,s);this.classPrefix='mceSplitButton';},renderHTML:function(){var h,t=this,s=t.settings,h1;h='<tbody><tr>';if(s.image)h1=DOM.createHTML('img ',{src:s.image,'class':'mceAction '+s['class']});else h1=DOM.createHTML('span',{'class':'mceAction '+s['class']},'');h+='<td>'+DOM.createHTML('a',{id:t.id+'_action',href:'javascript:;','class':'mceAction '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h1=DOM.createHTML('span',{'class':'mceOpen '+s['class']});h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',href:'javascript:;','class':'mceOpen '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h+='</tr></tbody>';return DOM.createHTML('table',{id:t.id,'class':'mceSplitButton mceSplitButtonEnabled '+s['class'],cellpadding:'0',cellspacing:'0',onmousedown:'return false;',title:s.title},h);},postRender:function(){var t=this,s=t.settings;if(s.onclick){Event.add(t.id+'_action','click',function(){if(!t.isDisabled())s.onclick(t.value);});}Event.add(t.id+'_open','click',t.showMenu,t);Event.add(t.id+'_open','focus',function(){t._focused=1;});Event.add(t.id+'_open','blur',function(){t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.addClass(t.id,'mceSplitButtonHover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.removeClass(t.id,'mceSplitButtonHover');});}},destroy:function(){this.parent();Event.clear(this.id+'_action');Event.clear(this.id+'_open');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,is=tinymce.is,each=tinymce.each;tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton',{ColorSplitButton:function(id,s){var t=this;t.parent(id,s);t.settings=s=tinymce.extend({colors:'000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF',grid_width:8,default_color:'#888888'},t.settings);t.onShowMenu=new tinymce.util.Dispatcher(t);t.onHideMenu=new tinymce.util.Dispatcher(t);t.value=s.default_color;},showMenu:function(){var t=this,r,p,e,p2;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();e=DOM.get(t.id);DOM.show(t.id+'_menu');DOM.addClass(e,'mceSplitButtonSelected');p2=DOM.getPos(e);DOM.setStyles(t.id+'_menu',{left:p2.x,top:p2.y+e.clientHeight,zIndex:200000});e=0;Event.add(DOM.doc,'mousedown',t.hideMenu,t);if(t._focused){t._keyHandler=Event.add(t.id+'_menu','keydown',function(e){if(e.keyCode==27)t.hideMenu();});DOM.select('a',t.id+'_menu')[0].focus();}t.onShowMenu.dispatch(t);t.isMenuVisible=1;},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&DOM.getParent(e.target,function(e){return e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceSplitButtonMenu');})){DOM.removeClass(t.id,'mceSplitButtonSelected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);Event.remove(t.id+'_menu','keydown',t._keyHandler);DOM.hide(t.id+'_menu');}t.onHideMenu.dispatch(t);t.isMenuVisible=0;},renderMenu:function(){var t=this,m,i=0,s=t.settings,n,tb,tr,w;w=DOM.add(s.menu_container,'div',{id:t.id+'_menu','class':s['menu_class']+' '+s['class'],style:'position:absolute;left:0;top:-1000px;'});m=DOM.add(w,'div',{'class':s['class']+' mceSplitButtonMenu'});DOM.add(m,'span',{'class':'mceMenuLine'});n=DOM.add(m,'table',{'class':'mceColorSplitMenu'});tb=DOM.add(n,'tbody');i=0;each(is(s.colors,'array')?s.colors:s.colors.split(','),function(c){c=c.replace(/^#/,'');if(!i--){tr=DOM.add(tb,'tr');i=s.grid_width-1;}n=DOM.add(tr,'td');n=DOM.add(n,'a',{href:'javascript:;',style:{backgroundColor:'#'+c},mce_color:'#'+c});});if(s.more_colors_func){n=DOM.add(tb,'tr');n=DOM.add(n,'td',{colspan:s.grid_width,'class':'mceMoreColors'});n=DOM.add(n,'a',{id:t.id+'_more',href:'javascript:;',onclick:'return false;','class':'mceMoreColors'},s.more_colors_title);Event.add(n,'click',function(e){s.more_colors_func.call(s.more_colors_scope||this);return Event.cancel(e);});}DOM.addClass(m,'mceColorSplitMenu');Event.add(t.id+'_menu','click',function(e){var c;e=e.target;if(e.nodeName=='A'&&(c=e.getAttribute('mce_color')))t.setColor(c);return Event.cancel(e);});return w;},setColor:function(c){var t=this;DOM.setStyle(t.id+'_preview','backgroundColor',c);t.value=c;t.hideMenu();t.settings.onselect(c);},postRender:function(){var t=this,id=t.id;t.parent();DOM.add(id+'_action','div',{id:id+'_preview','class':'mceColorPreview'});},destroy:function(){this.parent();Event.clear(this.id+'_menu');Event.clear(this.id+'_more');DOM.remove(this.id+'_menu');}});})();tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container',{renderHTML:function(){var t=this,h='',c,co,dom=tinymce.DOM,s=t.settings,i,pr,nx,cl;cl=t.controls;for(i=0;i<cl.length;i++){co=cl[i];pr=cl[i-1];nx=cl[i+1];if(i===0){c='mceToolbarStart';if(co.Button)c+=' mceToolbarStartButton';else if(co.SplitButton)c+=' mceToolbarStartSplitButton';else if(co.ListBox)c+=' mceToolbarStartListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));}if(pr&&co.ListBox){if(pr.Button||pr.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarEnd'},dom.createHTML('span',null,'<!-- IE -->'));}if(dom.stdMode)h+='<td style="position: relative">'+co.renderHTML()+'</td>';else h+='<td>'+co.renderHTML()+'</td>';if(nx&&co.ListBox){if(nx.Button||nx.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarStart'},dom.createHTML('span',null,'<!-- IE -->'));}}c='mceToolbarEnd';if(co.Button)c+=' mceToolbarEndButton';else if(co.SplitButton)c+=' mceToolbarEndSplitButton';else if(co.ListBox)c+=' mceToolbarEndListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));return dom.createHTML('table',{id:t.id,'class':'mceToolbar'+(s['class']?' '+s['class']:''),cellpadding:'0',cellspacing:'0',align:t.settings.align||''},'<tbody><tr>'+h+'</tr></tbody>');}});(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each;tinymce.create('tinymce.AddOnManager',{items:[],urls:{},lookup:{},onAdd:new Dispatcher(this),get:function(n){return this.lookup[n];},requireLangPack:function(n){var u,s;if(tinymce.EditorManager.settings){u=this.urls[n]+'/langs/'+tinymce.EditorManager.settings.language+'.js';s=tinymce.EditorManager.settings;if(s){if(!tinymce.dom.Event.domLoaded&&!s.strict_mode)tinymce.ScriptLoader.load(u);else tinymce.ScriptLoader.add(u);}}},add:function(id,o){this.items.push(o);this.lookup[id]=o;this.onAdd.dispatch(this,id,o);return o;},load:function(n,u,cb,s){var t=this;if(t.urls[n])return;if(u.indexOf('/')!=0&&u.indexOf('://')==-1)u=tinymce.baseURL+'/'+u;t.urls[n]=u.substring(0,u.lastIndexOf('/'));tinymce.ScriptLoader.add(u,cb,s);}});tinymce.PluginManager=new tinymce.AddOnManager();tinymce.ThemeManager=new tinymce.AddOnManager();}());(function(){var each=tinymce.each,extend=tinymce.extend,DOM=tinymce.DOM,Event=tinymce.dom.Event,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,explode=tinymce.explode;tinymce.create('static tinymce.EditorManager',{editors:{},i18n:{},activeEditor:null,preInit:function(){var t=this,lo=window.location;tinymce.documentBaseURL=lo.href.replace(/[\?#].*$/,'').replace(/[\/\\][^\/]+$/,'');if(!/[\/\\]$/.test(tinymce.documentBaseURL))tinymce.documentBaseURL+='/';tinymce.baseURL=new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);tinymce.EditorManager.baseURI=new tinymce.util.URI(tinymce.baseURL);if(tinymce.EditorManager.baseURI.host!=lo.hostname&&lo.hostname)document.domain=tinymce.relaxedDomain=lo.hostname.replace(/.*\.(.+\..+)$/,'$1');t.onBeforeUnload=new tinymce.util.Dispatcher(t);Event.add(window,'beforeunload',function(e){t.onBeforeUnload.dispatch(t,e);});},init:function(s){var t=this,pl,sl=tinymce.ScriptLoader,c,e;function execCallback(se,n,s){var f=se[n];if(!f)return;if(tinymce.is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);}return f.apply(s||this,Array.prototype.slice.call(arguments,2));};s=extend({theme:"simple",language:"en",strict_loading_mode:document.contentType=='application/xhtml+xml'},s);t.settings=s;if(!Event.domLoaded&&!s.strict_loading_mode){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme&&s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');if(s.plugins){pl=explode(s.plugins);if(tinymce.inArray(pl,'compat2x')!=-1)PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');each(pl,function(v){if(v&&v.charAt(0)!='-'&&!PluginManager.urls[v]){if(!tinymce.isWebKit&&v=='safari')return;PluginManager.load(v,'plugins/'+v+'/editor_plugin'+tinymce.suffix+'.js');}});}sl.loadQueue();}Event.add(document,'init',function(){var l,co;execCallback(s,'onpageload');if(s.browsers){l=false;each(explode(s.browsers),function(v){switch(v){case'ie':case'msie':if(tinymce.isIE)l=true;break;case'gecko':if(tinymce.isGecko)l=true;break;case'safari':case'webkit':if(tinymce.isWebKit)l=true;break;case'opera':if(tinymce.isOpera)l=true;break;}});if(!l)return;}switch(s.mode){case"exact":l=s.elements||'';if(l.length>0){each(explode(l),function(v){if(DOM.get(v))new tinymce.Editor(v,s).render(1);else{c=0;each(document.forms,function(f){each(f.elements,function(e){if(e.name===v){v='mce_editor_'+c;DOM.setAttrib(e,'id',v);new tinymce.Editor(v,s).render(1);}});});}});}break;case"textareas":case"specific_textareas":function hasClass(n,c){return c.constructor===RegExp?c.test(n.className):DOM.hasClass(n,c);};each(DOM.select('textarea'),function(v){if(s.editor_deselector&&hasClass(v,s.editor_deselector))return;if(!s.editor_selector||hasClass(v,s.editor_selector)){e=DOM.get(v.name);if(!v.id&&!e)v.id=v.name;if(!v.id||t.get(v.id))v.id=DOM.uniqueId();new tinymce.Editor(v.id,s).render(1);}});break;}if(s.oninit){l=co=0;each(t.editors,function(ed){co++;if(!ed.initialized){ed.onInit.add(function(){l++;if(l==co)execCallback(s,'oninit');});}else l++;if(l==co)execCallback(s,'oninit');});}});},get:function(id){return this.editors[id];},getInstanceById:function(id){return this.get(id);},add:function(e){this.editors[e.id]=e;this._setActive(e);return e;},remove:function(e){var t=this;if(!t.editors[e.id])return null;delete t.editors[e.id];if(t.activeEditor==e){each(t.editors,function(e){t._setActive(e);return false;});}e.destroy();return e;},execCommand:function(c,u,v){var t=this,ed=t.get(v),w;switch(c){case"mceFocus":ed.focus();return true;case"mceAddEditor":case"mceAddControl":if(!t.get(v))new tinymce.Editor(v,t.settings).render();return true;case"mceAddFrameControl":w=v.window;w.tinyMCE=tinyMCE;w.tinymce=tinymce;tinymce.DOM.doc=w.document;tinymce.DOM.win=w;ed=new tinymce.Editor(v.element_id,v);ed.render();if(tinymce.isIE){function clr(){ed.destroy();w.detachEvent('onunload',clr);w=w.tinyMCE=w.tinymce=null;};w.attachEvent('onunload',clr);}v.page_window=null;return true;case"mceRemoveEditor":case"mceRemoveControl":ed.remove();return true;case'mceToggleEditor':if(!ed){t.execCommand('mceAddControl',0,v);return true;}if(ed.isHidden())ed.show();else ed.hide();return true;}if(t.activeEditor)return t.activeEditor.execCommand(c,u,v);return false;},execInstanceCommand:function(id,c,u,v){var ed=this.get(id);if(ed)return ed.execCommand(c,u,v);return false;},triggerSave:function(){each(this.editors,function(e){e.save();});},addI18n:function(p,o){var lo,i18n=this.i18n;if(!tinymce.is(p,'string')){each(p,function(o,lc){each(o,function(o,g){each(o,function(o,k){if(g==='common')i18n[lc+'.'+k]=o;else i18n[lc+'.'+g+'.'+k]=o;});});});}else{each(o,function(o,k){i18n[p+'.'+k]=o;});}},_setActive:function(e){this.selectedInstance=this.activeEditor=e;}});tinymce.EditorManager.preInit();})();var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,Dispatcher=tinymce.util.Dispatcher;var each=tinymce.each,isGecko=tinymce.isGecko,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit;var is=tinymce.is,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,EditorManager=tinymce.EditorManager;var inArray=tinymce.inArray,grep=tinymce.grep,explode=tinymce.explode;tinymce.create('tinymce.Editor',{Editor:function(id,s){var t=this;t.id=t.editorId=id;t.execCommands={};t.queryStateCommands={};t.queryValueCommands={};t.plugins={};each(['onPreInit','onBeforeRenderUI','onPostRender','onInit','onRemove','onActivate','onDeactivate','onClick','onEvent','onMouseUp','onMouseDown','onDblClick','onKeyDown','onKeyUp','onKeyPress','onContextMenu','onSubmit','onReset','onPaste','onPreProcess','onPostProcess','onBeforeSetContent','onBeforeGetContent','onSetContent','onGetContent','onLoadContent','onSaveContent','onNodeChange','onChange','onBeforeExecCommand','onExecCommand','onUndo','onRedo','onVisualAid','onSetProgressState'],function(e){t[e]=new Dispatcher(t);});t.settings=s=extend({id:id,language:'en',docs_language:'en',theme:'simple',skin:'default',delta_width:0,delta_height:0,popup_css:'',plugins:'',document_base_url:tinymce.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',visual_table_class:'mceItemTable',visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:'xx-small,x-small,small,medium,large,x-large,xx-large',apply_source_formatting:1,directionality:'ltr',forced_root_block:'p',valid_elements:'@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:'30px'},s);t.documentBaseURI=new tinymce.util.URI(s.document_base_url||tinymce.documentBaseURL,{base_uri:tinyMCE.baseURI});t.baseURI=EditorManager.baseURI;t.execCallback('setup',t);},render:function(nst){var t=this,s=t.settings,id=t.id,sl=tinymce.ScriptLoader;if(!Event.domLoaded){Event.add(document,'init',function(){t.render();});return;}if(!nst){s.strict_loading_mode=1;tinyMCE.settings=s;}if(!t.getElement())return;if(s.strict_loading_mode){sl.settings.strict_mode=s.strict_loading_mode;tinymce.DOM.settings.strict=1;}if(!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&s.hidden_input&&DOM.getParent(id,'form'))DOM.insertAfter(DOM.create('input',{type:'hidden',name:id}),id);t.windowManager=new tinymce.WindowManager(t);if(s.encoding=='xml'){t.onGetContent.add(function(ed,o){if(o.save)o.content=DOM.encode(o.content);});}if(s.add_form_submit_trigger){t.onSubmit.addToTop(function(){if(t.initialized){t.save();t.isNotDirty=1;}});}if(s.add_unload_trigger&&!s.ask){t._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(t.initialized&&!t.destroyed&&!t.isHidden())t.save({format:'raw',no_events:true});});}tinymce.addUnload(t.destroy,t);if(s.submit_patch){t.onBeforeRenderUI.add(function(){var n=t.getElement().form;if(!n)return;if(n._mceOldSubmit)return;if(!n.submit.nodeType&&!n.submit.length){t.formElement=n;n._mceOldSubmit=n.submit;n.submit=function(){EditorManager.triggerSave();t.isNotDirty=1;return this._mceOldSubmit(this);};}n=null;});}function loadScripts(){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');each(explode(s.plugins),function(p){if(p&&p.charAt(0)!='-'&&!PluginManager.urls[p]){if(!isWebKit&&p=='safari')return;PluginManager.load(p,'plugins/'+p+'/editor_plugin'+tinymce.suffix+'.js');}});sl.loadQueue(function(){if(s.ask){function ask(){window.setTimeout(function(){Event.remove(t.id,'focus',ask);t.windowManager.confirm(t.getLang('edit_confirm'),function(s){if(s)t.init();});},0);};Event.add(t.id,'focus',ask);return;}if(!t.removed)t.init();});};if(s.plugins.indexOf('compat2x')!=-1){PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');sl.loadQueue(loadScripts);}else loadScripts();},init:function(){var n,t=this,s=t.settings,w,h,e=t.getElement(),o,ti,u,bi,bc,re;EditorManager.add(t);s.theme=s.theme.replace(/-/,'');o=ThemeManager.get(s.theme);t.theme=new o();if(t.theme.init&&s.init_theme)t.theme.init(t,ThemeManager.urls[s.theme]||tinymce.documentBaseURL.replace(/\/$/,''));each(explode(s.plugins.replace(/\-/g,'')),function(p){var c=PluginManager.get(p),u=PluginManager.urls[p]||tinymce.documentBaseURL.replace(/\/$/,''),po;if(c){po=new c(t,u);t.plugins[p]=po;if(po.init)po.init(t,u);}});if(s.popup_css)s.popup_css=t.documentBaseURI.toAbsolute(s.popup_css);else s.popup_css=t.baseURI.toAbsolute("themes/"+s.theme+"/skins/"+s.skin+"/dialog.css");if(s.popup_css_add)s.popup_css+=','+t.documentBaseURI.toAbsolute(s.popup_css_add);t.controlManager=new tinymce.ControlManager(t);t.undoManager=new tinymce.UndoManager(t);t.undoManager.onAdd.add(function(um,l){if(!l.initial)return t.onChange.dispatch(t,l,um);});t.undoManager.onUndo.add(function(um,l){return t.onUndo.dispatch(t,l,um);});t.undoManager.onRedo.add(function(um,l){return t.onRedo.dispatch(t,l,um);});if(s.custom_undo_redo){t.onExecCommand.add(function(ed,cmd,ui,val,a){if(cmd!='Undo'&&cmd!='Redo'&&cmd!='mceRepaint'&&(!a||!a.skip_undo))t.undoManager.add();});}t.onExecCommand.add(function(ed,c){if(!/^(FontName|FontSize)$/.test(c))t.nodeChanged();});if(isGecko){function repaint(a,o){if(!o||!o.initial)t.execCommand('mceRepaint');};t.onUndo.add(repaint);t.onRedo.add(repaint);t.onSetContent.add(repaint);}t.onBeforeRenderUI.dispatch(t,t.controlManager);if(s.render_ui){w=s.width||e.style.width||e.offsetWidth;h=s.height||e.style.height||e.offsetHeight;t.orgDisplay=e.style.display;re=/^[0-9\.]+(|px)$/i;if(re.test(''+w))w=Math.max(parseInt(w)+(o.deltaWidth||0),100);if(re.test(''+h))h=Math.max(parseInt(h)+(o.deltaHeight||0),100);o=t.theme.renderUI({targetNode:e,width:w,height:h,deltaWidth:s.delta_width,deltaHeight:s.delta_height});t.editorContainer=o.editorContainer;}DOM.setStyles(o.sizeContainer||o.editorContainer,{width:w,height:h});h=(o.iframeHeight||h)+((h+'').indexOf('%')==-1?(o.deltaHeight||0):'');if(h<100)h=100;t.iframeHTML=s.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="'+t.documentBaseURI.getURI()+'" />';t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';if(tinymce.relaxedDomain)t.iframeHTML+='<script type="text/javascript">document.domain = "'+tinymce.relaxedDomain+'";</script>';bi=s.body_id||'tinymce';if(bi.indexOf('=')!=-1){bi=t.getParam('body_id','','hash');bi=bi[t.id]||bi;}bc=s.body_class||'';if(bc.indexOf('=')!=-1){bc=t.getParam('body_class','','hash');bc=bc[t.id]||'';}t.iframeHTML+='</head><body id="'+bi+'" class="mceContentBody '+bc+'"></body></html>';if(tinymce.relaxedDomain){if(isIE)u='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';else if(tinymce.isOpera)u='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()';}n=DOM.add(o.iframeContainer,'iframe',{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:'0',style:{width:'100%',height:h}});t.contentAreaContainer=o.iframeContainer;DOM.get(o.editorContainer).style.display=t.orgDisplay;DOM.get(t.id).style.display='none';if(tinymce.isOldWebKit){Event.add(n,'load',t.setupIframe,t);n.src=tinymce.baseURL+'/plugins/safari/blank.htm';}else{if(!isIE||!tinymce.relaxedDomain)t.setupIframe();e=n=o=null;}},setupIframe:function(){var t=this,s=t.settings,e=DOM.get(t.id),d=t.getDoc(),h,b;if(!isIE||!tinymce.relaxedDomain){d.open();d.write(t.iframeHTML);d.close();}if(!isIE){try{d.designMode='On';}catch(ex){}}if(isIE){b=t.getBody();DOM.hide(b);b.contentEditable=true;DOM.show(b);}t.dom=new tinymce.DOM.DOMUtils(t.getDoc(),{keep_values:true,url_converter:t.convertURL,url_converter_scope:t,hex_colors:s.force_hex_style_colors,class_filter:s.class_filter,update_styles:1,fix_ie_paragraphs:1});t.serializer=new tinymce.dom.Serializer({entity_encoding:s.entity_encoding,entities:s.entities,valid_elements:s.verify_html===false?'*[*]':s.valid_elements,extended_valid_elements:s.extended_valid_elements,valid_child_elements:s.valid_child_elements,invalid_elements:s.invalid_elements,fix_table_elements:s.fix_table_elements,fix_list_elements:s.fix_list_elements,fix_content_duplication:s.fix_content_duplication,convert_fonts_to_spans:s.convert_fonts_to_spans,font_size_classes:s.font_size_classes,font_size_style_values:s.font_size_style_values,apply_source_formatting:s.apply_source_formatting,remove_linebreaks:s.remove_linebreaks,dom:t.dom});t.selection=new tinymce.dom.Selection(t.dom,t.getWin(),t.serializer);t.forceBlocks=new tinymce.ForceBlocks(t,{forced_root_block:s.forced_root_block});t.editorCommands=new tinymce.EditorCommands(t);t.serializer.onPreProcess.add(function(se,o){return t.onPreProcess.dispatch(t,o,se);});t.serializer.onPostProcess.add(function(se,o){return t.onPostProcess.dispatch(t,o,se);});t.onPreInit.dispatch(t);if(!s.gecko_spellcheck)t.getBody().spellcheck=0;t._addEvents();t.controlManager.onPostRender.dispatch(t,t.controlManager);t.onPostRender.dispatch(t);if(s.directionality)t.getBody().dir=s.directionality;if(s.nowrap)t.getBody().style.whiteSpace="nowrap";if(s.auto_resize)t.onNodeChange.add(t.resizeToContent,t);if(s.custom_elements){function handleCustom(ed,o){each(explode(s.custom_elements),function(v){var n;if(v.indexOf('~')===0){v=v.substring(1);n='span';}else n='div';o.content=o.content.replace(new RegExp('<('+v+')([^>]*)>','g'),'<'+n+' mce_name="$1"$2>');o.content=o.content.replace(new RegExp('</('+v+')>','g'),'</'+n+'>');});};t.onBeforeSetContent.add(handleCustom);t.onPostProcess.add(function(ed,o){if(o.set)handleCustom(ed,o)});}if(s.handle_node_change_callback){t.onNodeChange.add(function(ed,cm,n){t.execCallback('handle_node_change_callback',t.id,n,-1,-1,true,t.selection.isCollapsed());});}if(s.save_callback){t.onSaveContent.add(function(ed,o){var h=t.execCallback('save_callback',t.id,o.content,t.getBody());if(h)o.content=h;});}if(s.onchange_callback){t.onChange.add(function(ed,l){t.execCallback('onchange_callback',t,l);});}if(s.convert_newlines_to_brs){t.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/\r?\n/g,'<br />');});}if(s.fix_nesting&&isIE){t.onBeforeSetContent.add(function(ed,o){o.content=t._fixNesting(o.content);});}if(s.preformatted){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^\s*<pre.*?>/,'');o.content=o.content.replace(/<\/pre>\s*$/,'');if(o.set)o.content='<pre class="mceItemHidden">'+o.content+'</pre>';});}if(s.verify_css_classes){t.serializer.attribValueFilter=function(n,v){var s,cl;if(n=='class'){if(!t.classesRE){cl=t.dom.getClasses();if(cl.length>0){s='';each(cl,function(o){s+=(s?'|':'')+o['class'];});t.classesRE=new RegExp('('+s+')','gi');}}return!t.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v)||t.classesRE.test(v)?v:'';}return v;};}if(s.convert_fonts_to_spans)t._convertFonts();if(s.inline_styles)t._convertInlineElements();if(s.cleanup_callback){t.onBeforeSetContent.add(function(ed,o){o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);});t.onPreProcess.add(function(ed,o){if(o.set)t.execCallback('cleanup_callback','insert_to_editor_dom',o.node,o);if(o.get)t.execCallback('cleanup_callback','get_from_editor_dom',o.node,o);});t.onPostProcess.add(function(ed,o){if(o.set)o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);if(o.get)o.content=t.execCallback('cleanup_callback','get_from_editor',o.content,o);});}if(s.save_callback){t.onGetContent.add(function(ed,o){if(o.save)o.content=t.execCallback('save_callback',t.id,o.content,t.getBody());});}if(s.handle_event_callback){t.onEvent.add(function(ed,e,o){if(t.execCallback('handle_event_callback',e,ed,o)===false)Event.cancel(e);});}t.onSetContent.add(function(){t.addVisual(t.getBody());});if(s.padd_empty_editor){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^(<p>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,'');});}if(isGecko){try{d.designMode='Off';d.designMode='On';}catch(ex){}}setTimeout(function(){if(t.removed)return;t.load({initial:true,format:(s.cleanup_on_startup?'html':'raw')});t.startContent=t.getContent({format:'raw'});t.undoManager.add({initial:true});t.initialized=true;t.onInit.dispatch(t);t.execCallback('setupcontent_callback',t.id,t.getBody(),t.getDoc());t.execCallback('init_instance_callback',t);t.focus(true);t.nodeChanged({initial:1});if(s.content_css){tinymce.each(explode(s.content_css),function(u){t.dom.loadCSS(t.documentBaseURI.toAbsolute(u));});}if(s.auto_focus){setTimeout(function(){var ed=EditorManager.get(s.auto_focus);ed.selection.select(ed.getBody(),1);ed.selection.collapse(1);ed.getWin().focus();},100);}},1);e=null;},focus:function(sf){var oed,t=this,ce=t.settings.content_editable;if(!sf){if(!ce&&(!isIE||t.selection.getNode().ownerDocument!=t.getDoc()))t.getWin().focus();}if(EditorManager.activeEditor!=t){if((oed=EditorManager.activeEditor)!=null)oed.onDeactivate.dispatch(oed,t);t.onActivate.dispatch(t,oed);}EditorManager._setActive(t);},execCallback:function(n){var t=this,f=t.settings[n],s;if(!f)return;if(t.callbackLookup&&(s=t.callbackLookup[n])){f=s.func;s=s.scope;}if(is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);t.callbackLookup=t.callbackLookup||{};t.callbackLookup[n]={func:f,scope:s};}return f.apply(s||t,Array.prototype.slice.call(arguments,1));},translate:function(s){var c=this.settings.language,i18n=EditorManager.i18n;if(!s)return'';return i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return i18n[c+'.'+b]||'{#'+b+'}';});},getLang:function(n,dv){return EditorManager.i18n[this.settings.language+'.'+n]||(is(dv)?dv:'{#'+n+'}');},getParam:function(n,dv,ty){var tr=tinymce.trim,v=is(this.settings[n])?this.settings[n]:dv,o;if(ty==='hash'){o={};if(is(v,'string')){each(v.indexOf('=')>0?v.split(/[;,](?![^=;,]*(?:[;,]|$))/):v.split(','),function(v){v=v.split('=');if(v.length>1)o[tr(v[0])]=tr(v[1]);else o[tr(v[0])]=tr(v);});}else o=v;return o;}return v;},nodeChanged:function(o){var t=this,s=t.selection,n=s.getNode()||t.getBody();if(t.initialized){t.onNodeChange.dispatch(t,o?o.controlManager||t.controlManager:t.controlManager,isIE&&n.ownerDocument!=t.getDoc()?t.getBody():n,s.isCollapsed(),o);}},addButton:function(n,s){var t=this;t.buttons=t.buttons||{};t.buttons[n]=s;},addCommand:function(n,f,s){this.execCommands[n]={func:f,scope:s||this};},addQueryStateHandler:function(n,f,s){this.queryStateCommands[n]={func:f,scope:s||this};},addQueryValueHandler:function(n,f,s){this.queryValueCommands[n]={func:f,scope:s||this};},addShortcut:function(pa,desc,cmd_func,sc){var t=this,c;if(!t.settings.custom_shortcuts)return false;t.shortcuts=t.shortcuts||{};if(is(cmd_func,'string')){c=cmd_func;cmd_func=function(){t.execCommand(c,false,null);};}if(is(cmd_func,'object')){c=cmd_func;cmd_func=function(){t.execCommand(c[0],c[1],c[2]);};}each(explode(pa),function(pa){var o={func:cmd_func,scope:sc||this,desc:desc,alt:false,ctrl:false,shift:false};each(explode(pa,'+'),function(v){switch(v){case'alt':case'ctrl':case'shift':o[v]=true;break;default:o.charCode=v.charCodeAt(0);o.keyCode=v.toUpperCase().charCodeAt(0);}});t.shortcuts[(o.ctrl?'ctrl':'')+','+(o.alt?'alt':'')+','+(o.shift?'shift':'')+','+o.keyCode]=o;});return true;},execCommand:function(cmd,ui,val,a){var t=this,s=0,o,st;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd)&&(!a||!a.skip_focus))t.focus();o={};t.onBeforeExecCommand.dispatch(t,cmd,ui,val,o);if(o.terminate)return false;if(t.execCallback('execcommand_callback',t.id,t.selection.getNode(),cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(o=t.execCommands[cmd]){st=o.func.call(o.scope,ui,val);if(st!==true){t.onExecCommand.dispatch(t,cmd,ui,val,a);return st;}}each(t.plugins,function(p){if(p.execCommand&&p.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);s=1;return false;}});if(s)return true;if(t.theme.execCommand&&t.theme.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(t.editorCommands.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}t.getDoc().execCommand(cmd,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);},queryCommandState:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryStateCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandState(c);if(o!==-1)return o;try{return this.getDoc().queryCommandState(c);}catch(ex){}},queryCommandValue:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryValueCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandValue(c);if(is(o))return o;try{return this.getDoc().queryCommandValue(c);}catch(ex){}},show:function(){var t=this;DOM.show(t.getContainer());DOM.hide(t.id);t.load();},hide:function(){var t=this,d=t.getDoc();if(isIE&&d)d.execCommand('SelectAll');t.save();DOM.hide(t.getContainer());DOM.setStyle(t.id,'display',t.orgDisplay);},isHidden:function(){return!DOM.isHidden(this.id);},setProgressState:function(b,ti,o){this.onSetProgressState.dispatch(this,b,ti,o);return b;},resizeToContent:function(){var t=this;DOM.setStyle(t.id+"_ifr",'height',t.getBody().scrollHeight);},load:function(o){var t=this,e=t.getElement(),h;o=o||{};o.load=true;h=t.setContent(is(e.value)?e.value:e.innerHTML,o);o.element=e;if(!o.no_events)t.onLoadContent.dispatch(t,o);o.element=e=null;return h;},save:function(o){var t=this,e=t.getElement(),h,f;if(!t.initialized)return;o=o||{};o.save=true;if(!o.no_events){t.undoManager.typing=0;t.undoManager.add();}o.element=e;h=o.content=t.getContent(o);if(!o.no_events)t.onSaveContent.dispatch(t,o);h=o.content;if(!/TEXTAREA|INPUT/i.test(e.nodeName)){e.innerHTML=h;if(f=DOM.getParent(t.id,'form')){each(f.elements,function(e){if(e.name==t.id){e.value=h;return false;}});}}else e.value=h;o.element=e=null;return h;},setContent:function(h,o){var t=this;o=o||{};o.format=o.format||'html';o.set=true;o.content=h;if(!o.no_events)t.onBeforeSetContent.dispatch(t,o);if(!tinymce.isIE&&(h.length===0||/^\s+$/.test(h))){o.content=t.dom.setHTML(t.getBody(),'<br mce_bogus="1" />');o.format='raw';}o.content=t.dom.setHTML(t.getBody(),tinymce.trim(o.content));if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;o.content=t.dom.setHTML(t.getBody(),t.serializer.serialize(t.getBody(),o));}if(!o.no_events)t.onSetContent.dispatch(t,o);return o.content;},getContent:function(o){var t=this,h;o=o||{};o.format=o.format||'html';o.get=true;if(!o.no_events)t.onBeforeGetContent.dispatch(t,o);if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;h=t.serializer.serialize(t.getBody(),o);}else h=t.getBody().innerHTML;h=h.replace(/^\s*|\s*$/g,'');o.content=h;if(!o.no_events)t.onGetContent.dispatch(t,o);return o.content;},isDirty:function(){var t=this;return tinymce.trim(t.startContent)!=tinymce.trim(t.getContent({format:'raw',no_events:1}))&&!t.isNotDirty;},getContainer:function(){var t=this;if(!t.container)t.container=DOM.get(t.editorContainer||t.id+'_parent');return t.container;},getContentAreaContainer:function(){return this.contentAreaContainer;},getElement:function(){return DOM.get(this.settings.content_element||this.id);},getWin:function(){var t=this,e;if(!t.contentWindow){e=DOM.get(t.id+"_ifr");if(e)t.contentWindow=e.contentWindow;}return t.contentWindow;},getDoc:function(){var t=this,w;if(!t.contentDocument){w=t.getWin();if(w)t.contentDocument=w.document;}return t.contentDocument;},getBody:function(){return this.bodyElement||this.getDoc().body;},convertURL:function(u,n,e){var t=this,s=t.settings;if(s.urlconverter_callback)return t.execCallback('urlconverter_callback',u,e,true,n);if(!s.convert_urls||(e&&e.nodeName=='LINK')||u.indexOf('file:')===0)return u;if(s.relative_urls)return t.documentBaseURI.toRelative(u);u=t.documentBaseURI.toAbsolute(u,s.remove_script_host);return u;},addVisual:function(e){var t=this,s=t.settings;e=e||t.getBody();if(!is(t.hasVisual))t.hasVisual=s.visual;each(t.dom.select('table,a',e),function(e){var v;switch(e.nodeName){case'TABLE':v=t.dom.getAttrib(e,'border');if(!v||v=='0'){if(t.hasVisual)t.dom.addClass(e,s.visual_table_class);else t.dom.removeClass(e,s.visual_table_class);}return;case'A':v=t.dom.getAttrib(e,'name');if(v){if(t.hasVisual)t.dom.addClass(e,'mceItemAnchor');else t.dom.removeClass(e,'mceItemAnchor');}return;}});t.onVisualAid.dispatch(t,e,t.hasVisual);},remove:function(){var t=this,e=t.getContainer();t.removed=1;t.hide();t.execCallback('remove_instance_callback',t);t.onRemove.dispatch(t);t.onExecCommand.listeners=[];EditorManager.remove(t);DOM.remove(e);},destroy:function(s){var t=this;if(t.destroyed)return;if(!s){tinymce.removeUnload(t.destroy);tinyMCE.onBeforeUnload.remove(t._beforeUnload);if(t.theme.destroy)t.theme.destroy();t.controlManager.destroy();t.selection.destroy();t.dom.destroy();if(!t.settings.content_editable){Event.clear(t.getWin());Event.clear(t.getDoc());}Event.clear(t.getBody());Event.clear(t.formElement);}if(t.formElement){t.formElement.submit=t.formElement._mceOldSubmit;t.formElement._mceOldSubmit=null;}t.contentAreaContainer=t.formElement=t.container=t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null;if(t.selection)t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null;t.destroyed=1;},_addEvents:function(){var t=this,i,s=t.settings,lo={mouseup:'onMouseUp',mousedown:'onMouseDown',click:'onClick',keyup:'onKeyUp',keydown:'onKeyDown',keypress:'onKeyPress',submit:'onSubmit',reset:'onReset',contextmenu:'onContextMenu',dblclick:'onDblClick',paste:'onPaste'};function eventHandler(e,o){var ty=e.type;if(t.removed)return;if(t.onEvent.dispatch(t,e,o)!==false){t[lo[e.fakeType||e.type]].dispatch(t,e,o);}};each(lo,function(v,k){switch(k){case'contextmenu':if(tinymce.isOpera){Event.add(t.getBody(),'mousedown',function(e){if(e.ctrlKey){e.fakeType='contextmenu';eventHandler(e);}});}else Event.add(t.getBody(),k,eventHandler);break;case'paste':Event.add(t.getBody(),k,function(e){var tx,h,el,r;if(e.clipboardData)tx=e.clipboardData.getData('text/plain');else if(tinymce.isIE)tx=t.getWin().clipboardData.getData('Text');eventHandler(e,{text:tx,html:h});});break;case'submit':case'reset':Event.add(t.getElement().form||DOM.getParent(t.id,'form'),k,eventHandler);break;default:Event.add(s.content_editable?t.getBody():t.getDoc(),k,eventHandler);}});Event.add(s.content_editable?t.getBody():(isGecko?t.getDoc():t.getWin()),'focus',function(e){t.focus(true);});if(tinymce.isGecko){Event.add(t.getDoc(),'DOMNodeInserted',function(e){var v;e=e.target;if(e.nodeType===1&&e.nodeName==='IMG'&&(v=e.getAttribute('mce_src')))e.src=t.documentBaseURI.toAbsolute(v);});}if(isGecko){function setOpts(){var t=this,d=t.getDoc(),s=t.settings;if(isGecko){if(t._isHidden()){try{if(!s.content_editable)d.designMode='On';}catch(ex){}}try{d.execCommand("styleWithCSS",0,false);}catch(ex){if(!t._isHidden())try{d.execCommand("useCSS",0,true);}catch(ex){}}if(!s.table_inline_editing)try{d.execCommand('enableInlineTableEditing',false,false);}catch(ex){}if(!s.object_resizing)try{d.execCommand('enableObjectResizing',false,false);}catch(ex){}}};t.onBeforeExecCommand.add(setOpts);t.onMouseDown.add(setOpts);}t.onMouseUp.add(t.nodeChanged);t.onClick.add(t.nodeChanged);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.keyCode==46||e.keyCode==8||e.ctrlKey)t.nodeChanged();});t.onReset.add(function(){t.setContent(t.startContent,{format:'raw'});});if(t.getParam('tab_focus')){function tabCancel(ed,e){if(e.keyCode===9)return Event.cancel(e);};function tabHandler(ed,e){var x,i,f,el,v;function find(d){f=DOM.getParent(ed.id,'form');el=f.elements;if(f){each(el,function(e,i){if(e.id==ed.id){x=i;return false;}});if(d>0){for(i=x+1;i<el.length;i++){if(el[i].type!='hidden')return el[i];}}else{for(i=x-1;i>=0;i--){if(el[i].type!='hidden')return el[i];}}}return null;};if(e.keyCode===9){v=explode(ed.getParam('tab_focus'));if(v.length==1){v[1]=v[0];v[0]=':prev';}if(e.shiftKey){if(v[0]==':prev')el=find(-1);else el=DOM.get(v[0]);}else{if(v[1]==':next')el=find(1);else el=DOM.get(v[1]);}if(el){if(ed=EditorManager.get(el.id||el.name))ed.focus();else window.setTimeout(function(){window.focus();el.focus();},10);return Event.cancel(e);}}};t.onKeyUp.add(tabCancel);if(isGecko){t.onKeyPress.add(tabHandler);t.onKeyDown.add(tabCancel);}else t.onKeyDown.add(tabHandler);}if(s.custom_shortcuts){if(s.custom_undo_redo_keyboard_shortcuts){t.addShortcut('ctrl+z',t.getLang('undo_desc'),'Undo');t.addShortcut('ctrl+y',t.getLang('redo_desc'),'Redo');}if(isGecko){t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold');t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic');t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline');}for(i=1;i<=6;i++)t.addShortcut('ctrl+'+i,'',['FormatBlock',false,'<h'+i+'>']);t.addShortcut('ctrl+7','',['FormatBlock',false,'<p>']);t.addShortcut('ctrl+8','',['FormatBlock',false,'<div>']);t.addShortcut('ctrl+9','',['FormatBlock',false,'<address>']);function find(e){var v=null;if(!e.altKey&&!e.ctrlKey&&!e.metaKey)return v;each(t.shortcuts,function(o){if(o.ctrl!=e.ctrlKey&&(!tinymce.isMac||o.ctrl==e.metaKey))return;if(o.alt!=e.altKey)return;if(o.shift!=e.shiftKey)return;if(e.keyCode==o.keyCode||(e.charCode&&e.charCode==o.charCode)){v=o;return false;}});return v;};t.onKeyUp.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyPress.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyDown.add(function(ed,e){var o=find(e);if(o){o.func.call(o.scope);return Event.cancel(e);}});}if(tinymce.isIE){Event.add(t.getDoc(),'controlselect',function(e){var re=t.resizeInfo,cb;e=e.target;if(e.nodeName!=='IMG')return;if(re)Event.remove(re.node,re.ev,re.cb);if(!t.dom.hasClass(e,'mceItemNoResize')){ev='resizeend';cb=Event.add(e,ev,function(e){var v;e=e.target;if(v=t.dom.getStyle(e,'width')){t.dom.setAttrib(e,'width',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'width','');}if(v=t.dom.getStyle(e,'height')){t.dom.setAttrib(e,'height',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'height','');}});}else{ev='resizestart';cb=Event.add(e,'resizestart',Event.cancel,Event);}re=t.resizeInfo={node:e,ev:ev,cb:cb};});t.onKeyDown.add(function(ed,e){switch(e.keyCode){case 8:if(t.selection.getRng().item){t.selection.getRng().item(0).removeNode();return Event.cancel(e);}}});}if(tinymce.isOpera){t.onClick.add(function(ed,e){Event.prevent(e);});}if(s.custom_undo_redo){function addUndo(){t.undoManager.typing=0;t.undoManager.add();};if(tinymce.isIE){Event.add(t.getWin(),'blur',function(e){var n;if(t.selection){n=t.selection.getNode();if(!t.removed&&n.ownerDocument&&n.ownerDocument!=t.getDoc())addUndo();}});}else{Event.add(t.getDoc(),'blur',function(){if(t.selection&&!t.removed)addUndo();});}t.onMouseDown.add(addUndo);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.ctrlKey){t.undoManager.typing=0;t.undoManager.add();}});t.onKeyDown.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45){if(t.undoManager.typing){t.undoManager.add();t.undoManager.typing=0;}return;}if(!t.undoManager.typing){t.undoManager.add();t.undoManager.typing=1;}});}},_convertInlineElements:function(){var t=this,s=t.settings,dom=t.dom,v,e,na,st,sp;function convert(ed,o){if(!s.inline_styles)return;if(o.get){each(t.dom.select('table,u,strike',o.node),function(n){switch(n.nodeName){case'TABLE':if(v=dom.getAttrib(n,'height')){dom.setStyle(n,'height',v);dom.setAttrib(n,'height','');}break;case'U':case'STRIKE':n.style.textDecoration=n.nodeName=='U'?'underline':'line-through';dom.setAttrib(n,'mce_style','');dom.setAttrib(n,'mce_name','span');break;}});}else if(o.set){each(t.dom.select('table,span',o.node).reverse(),function(n){if(n.nodeName=='TABLE'){if(v=dom.getStyle(n,'height'))dom.setAttrib(n,'height',v.replace(/[^0-9%]+/g,''));}else{if(n.style.textDecoration=='underline')na='u';else if(n.style.textDecoration=='line-through')na='strike';else na='';if(na){n.style.textDecoration='';dom.setAttrib(n,'mce_style','');e=dom.create(na,{style:dom.getAttrib(n,'style')});dom.replace(e,n,1);}}});}};t.onPreProcess.add(convert);if(!s.cleanup_on_startup){t.onSetContent.add(function(ed,o){if(o.initial)convert(t,{node:t.getBody(),set:1});});}},_convertFonts:function(){var t=this,s=t.settings,dom=t.dom,fz,fzn,sl,cl;if(!s.inline_styles)return;fz=[8,10,12,14,18,24,36];fzn=['xx-small','x-small','small','medium','large','x-large','xx-large'];if(sl=s.font_size_style_values)sl=explode(sl);if(cl=s.font_size_classes)cl=explode(cl);function convertToFonts(no){var n,f,nl,x,i,v,st;if(tinymce.isWebKit||!s.inline_styles)return;nl=t.dom.select('span',no);for(x=nl.length-1;x>=0;x--){n=nl[x];f=dom.create('font',{color:dom.toHex(dom.getStyle(n,'color')),face:dom.getStyle(n,'fontFamily'),style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});st=f.style;if(st.color||st.fontFamily){st.color=st.fontFamily='';dom.setAttrib(f,'mce_style','');}if(sl){i=inArray(sl,dom.getStyle(n,'fontSize'));if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));}}else if(cl){i=inArray(cl,dom.getAttrib(n,'class'));v=dom.getStyle(n,'fontSize');if(i==-1&&v.indexOf('pt')>0)i=inArray(fz,parseInt(v));if(i==-1)i=inArray(fzn,v);if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));f.style.fontSize='';}}if(f.color||f.face||f.size){f.style.fontFamily='';dom.setAttrib(f,'mce_style','');dom.replace(f,n,1);}f=n=null;}};t.onSetContent.add(function(ed,o){convertToFonts(ed.getBody());});t.onPreProcess.add(function(ed,o){var n,sp,nl,x;if(!s.inline_styles)return;if(o.get){nl=t.dom.select('font',o.node);for(x=nl.length-1;x>=0;x--){n=nl[x];sp=dom.create('span',{style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});dom.setStyles(sp,{fontFamily:dom.getAttrib(n,'face'),color:dom.getAttrib(n,'color'),backgroundColor:n.style.backgroundColor});if(n.size){if(sl)dom.setStyle(sp,'fontSize',sl[parseInt(n.size)-1]);else dom.setAttrib(sp,'class',cl[parseInt(n.size)-1]);}dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);}}});},_isHidden:function(){var s;if(!isGecko)return 0;s=this.selection.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},_fixNesting:function(s){var d=[],i;s=s.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(a,b,c){var e;if(b==='/'){if(!d.length)return'';if(c!==d[d.length-1].tag){for(i=d.length-1;i>=0;i--){if(d[i].tag===c){d[i].close=1;break;}}return'';}else{d.pop();if(d.length&&d[d.length-1].close){a=a+'</'+d[d.length-1].tag+'>';d.pop();}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(c))return a;if(/\/>$/.test(a))return a;d.push({tag:c});}return a;});for(i=d.length-1;i>=0;i--)s+='</'+d[i].tag+'>';return s;}});})();(function(){var each=tinymce.each,isIE=tinymce.isIE,isGecko=tinymce.isGecko,isOpera=tinymce.isOpera,isWebKit=tinymce.isWebKit;tinymce.create('tinymce.EditorCommands',{EditorCommands:function(ed){this.editor=ed;},execCommand:function(cmd,ui,val){var t=this,ed=t.editor,f;switch(cmd){case'Cut':case'Copy':case'Paste':try{ed.getDoc().execCommand(cmd,ui,val);}catch(ex){if(isGecko){ed.windowManager.confirm(ed.getLang('clipboard_msg'),function(s){if(s)window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');});}else ed.windowManager.alert(ed.getLang('clipboard_no_support'));}return true;case'mceResetDesignMode':case'mceBeginUndoLevel':return true;case'unlink':t.UnLink();return true;case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':t.mceJustify(cmd,cmd.substring(7).toLowerCase());return true;case'mceEndUndoLevel':case'mceAddUndoLevel':ed.undoManager.add();return true;default:f=this[cmd];if(f){f.call(this,ui,val);return true;}}return false;},Indent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){d.setStyle(e,'paddingLeft',(parseInt(e.style.paddingLeft||0)+iv)+iu);});return;}ed.getDoc().execCommand('Indent',false,null);if(isIE){d.getParent(s.getNode(),function(n){if(n.nodeName=='BLOCKQUOTE'){n.dir=n.style.cssText='';}});}},Outdent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,v,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){v=Math.max(0,parseInt(e.style.paddingLeft||0)-iv);d.setStyle(e,'paddingLeft',v?v+iu:'');});return;}ed.getDoc().execCommand('Outdent',false,null);},mceSetAttribute:function(u,v){var ed=this.editor,d=ed.dom,e;if(e=d.getParent(ed.selection.getNode(),d.isBlock))d.setAttrib(e,v.name,v.value);},mceSetContent:function(u,v){this.editor.setContent(v);},mceToggleVisualAid:function(){var ed=this.editor;ed.hasVisual=!ed.hasVisual;ed.addVisual();},mceReplaceContent:function(u,v){var s=this.editor.selection;s.setContent(v.replace(/\{\$selection\}/g,s.getContent({format:'text'})));},mceInsertLink:function(u,v){var ed=this.editor,s=ed.selection,e=ed.dom.getParent(s.getNode(),'A');if(tinymce.is(v,'string'))v={href:v};function set(e){each(v,function(v,k){ed.dom.setAttrib(e,k,v);});};if(!e){ed.execCommand('CreateLink',false,'javascript:mctmp(0);');each(ed.dom.select('a'),function(e){if(e.href=='javascript:mctmp(0);')set(e);});}else{if(v.href)set(e);else ed.dom.remove(e,1);}},UnLink:function(){var ed=this.editor,s=ed.selection;if(s.isCollapsed())s.select(s.getNode());ed.getDoc().execCommand('unlink',false,null);s.collapse(0);},FontName:function(u,v){var t=this,ed=t.editor,s=ed.selection,e;if(!v){if(s.isCollapsed())s.select(s.getNode());t.RemoveFormat();}else ed.getDoc().execCommand('FontName',false,v);},FontSize:function(u,v){var ed=this.editor,s=ed.settings,fz=tinymce.explode(s.font_size_style_values),fzc=tinymce.explode(s.font_size_classes),h,bm;each(ed.dom.select('font'),function(e){e.style.fontSize='';});ed.getDoc().execCommand('FontSize',false,v);if(s.inline_styles){each(ed.dom.select('font'),function(e){if(e.parentNode.nodeName=='FONT'&&e.size==e.parentNode.size){if(!bm)bm=ed.selection.getBookmark();ed.dom.remove(e,1);return;}if(v=e.size){if(fzc&&fzc.length>0)ed.dom.setAttrib(e,'class',fzc[parseInt(v)-1]);else ed.dom.setStyle(e,'fontSize',fz[parseInt(v)-1]);}});}ed.selection.moveToBookmark(bm);},queryCommandValue:function(c){var f=this['queryValue'+c];if(f)return f.call(this,c);return false;},queryCommandState:function(cmd){var f;switch(cmd){case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':return this.queryStateJustify(cmd,cmd.substring(7).toLowerCase());default:if(f=this['queryState'+cmd])return f.call(this,cmd);}return-1;},_queryState:function(c){try{return this.editor.getDoc().queryCommandState(c);}catch(ex){}},_queryVal:function(c){try{return this.editor.getDoc().queryCommandValue(c);}catch(ex){}},queryValueFontSize:function(){var ed=this.editor,v=0,p;if(isOpera||isWebKit){if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.size;return v;}return this._queryVal('FontSize');},queryValueFontName:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.face;if(!v)v=this._queryVal('FontName');return v;},mceJustify:function(c,v){var ed=this.editor,se=ed.selection,n=se.getNode(),nn=n.nodeName,bl,nb,dom=ed.dom,rm;if(ed.settings.inline_styles&&this.queryStateJustify(c,v))rm=1;bl=dom.getParent(n,ed.dom.isBlock);if(nn=='IMG'){if(v=='full')return;if(rm){if(v=='center')dom.setStyle(n.parentNode,'textAlign','');dom.setStyle(n,'float','');this.mceRepaint();return;}if(v=='center'){if(/^(TD|TH)$/.test(bl.nodeName))bl=0;if(!bl||bl.childNodes.length>1){nb=dom.create('p');nb.appendChild(n.cloneNode(false));if(bl)dom.insertAfter(nb,bl);else dom.insertAfter(nb,n);dom.remove(n);n=nb.firstChild;bl=nb;}dom.setStyle(bl,'textAlign',v);dom.setStyle(n,'float','');}else{dom.setStyle(n,'float',v);dom.setStyle(n.parentNode,'textAlign','');}this.mceRepaint();return;}if(ed.settings.inline_styles&&ed.settings.forced_root_block){if(rm)v='';each(this._getSelectedBlocks(dom.getParent(se.getStart(),dom.isBlock),dom.getParent(se.getEnd(),dom.isBlock)),function(e){dom.setAttrib(e,'align','');dom.setStyle(e,'textAlign',v=='full'?'justify':v);});return;}else if(!rm)ed.getDoc().execCommand(c,false,null);if(ed.settings.inline_styles){if(rm){dom.getParent(ed.selection.getNode(),function(n){if(n.style&&n.style.textAlign)dom.setStyle(n,'textAlign','');});return;}each(dom.select('*'),function(n){var v=n.align;if(v){if(v=='full')v='justify';dom.setStyle(n,'textAlign',v);dom.setAttrib(n,'align','');}});}},mceSetCSSClass:function(u,v){this.mceSetStyleInfo(0,{command:'setattrib',name:'class',value:v});},getSelectedElement:function(){var t=this,ed=t.editor,dom=ed.dom,se=ed.selection,r=se.getRng(),r1,r2,sc,ec,so,eo,e,sp,ep,re;if(se.isCollapsed()||r.item)return se.getNode();re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(isIE){r1=r.duplicate();r1.collapse(true);sc=r1.parentElement();r2=r.duplicate();r2.collapse(false);ec=r2.parentElement();if(sc!=ec){r1.move('character',1);sc=r1.parentElement();}if(sc==ec){r1=r.duplicate();r1.moveToElementText(sc);if(r1.compareEndPoints('StartToStart',r)==0&&r1.compareEndPoints('EndToEnd',r)==0)return re&&re.test(sc.nodeName)?null:sc;}}else{function getParent(n){return dom.getParent(n,function(n){return n.nodeType==1;});};sc=r.startContainer;ec=r.endContainer;so=r.startOffset;eo=r.endOffset;if(!r.collapsed){if(sc==ec){if(so-eo<2){if(sc.hasChildNodes()){sp=sc.childNodes[so];return re&&re.test(sp.nodeName)?null:sp;}}}}if(sc.nodeType!=3||ec.nodeType!=3)return null;if(so==0){sp=getParent(sc);if(sp&&sp.firstChild!=sc)sp=null;}if(so==sc.nodeValue.length){e=sc.nextSibling;if(e&&e.nodeType==1)sp=sc.nextSibling;}if(eo==0){e=ec.previousSibling;if(e&&e.nodeType==1)ep=e;}if(eo==ec.nodeValue.length){ep=getParent(ec);if(ep&&ep.lastChild!=ec)ep=null;}if(sp==ep)return re&&sp&&re.test(sp.nodeName)?null:sp;}return null;},InsertHorizontalRule:function(){if(isGecko||isIE)this.editor.selection.setContent('<hr />');else this.editor.getDoc().execCommand('InsertHorizontalRule',false,'');},RemoveFormat:function(){var t=this,ed=t.editor,s=ed.selection,b;if(isWebKit)s.setContent(s.getContent({format:'raw'}).replace(/(<(span|b|i|strong|em|strike) [^>]+>|<(span|b|i|strong|em|strike)>|<\/(span|b|i|strong|em|strike)>|)/g,''),{format:'raw'});else ed.getDoc().execCommand('RemoveFormat',false,null);t.mceSetStyleInfo(0,{command:'removeformat'});ed.addVisual();},mceSetStyleInfo:function(u,v){var t=this,ed=t.editor,d=ed.getDoc(),dom=ed.dom,e,b,s=ed.selection,nn=v.wrapper||'span',b=s.getBookmark(),re;function set(n,e){if(n.nodeType==1){switch(v.command){case'setattrib':return dom.setAttrib(n,v.name,v.value);case'setstyle':return dom.setStyle(n,v.name,v.value);case'removeformat':return dom.setAttrib(n,'class','');}}};re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(e=t.getSelectedElement())set(e,1);else{d.execCommand('FontName',false,'__');each(isWebKit?dom.select('span'):dom.select('font'),function(n){var sp,e;if(dom.getAttrib(n,'face')=='__'||n.style.fontFamily==='__'){sp=dom.create(nn,{mce_new:'1'});set(sp);each(n.childNodes,function(n){sp.appendChild(n.cloneNode(true));});dom.replace(sp,n);}});}each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!dom.getAttrib(n,'mce_new')){p=dom.getParent(n,function(n){return n.nodeType==1&&dom.getAttrib(n,'mce_new');});if(p)dom.remove(n,1);}});each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!p||!dom.getAttrib(n,'mce_new'))return;if(p.nodeName==nn.toUpperCase()&&p.childNodes.length==1)return dom.remove(p,1);if(n.nodeType==1&&(!re||!re.test(p.nodeName))&&p.childNodes.length==1){set(p);dom.setAttrib(n,'class','');}});each(dom.select(nn).reverse(),function(n){if(dom.getAttrib(n,'mce_new')||(dom.getAttribs(n).length<=1&&n.className==='')){if(!dom.getAttrib(n,'class')&&!dom.getAttrib(n,'style'))return dom.remove(n,1);dom.setAttrib(n,'mce_new','');}});s.moveToBookmark(b);},queryStateJustify:function(c,v){var ed=this.editor,n=ed.selection.getNode(),dom=ed.dom;if(n&&n.nodeName=='IMG'){if(dom.getStyle(n,'float')==v)return 1;return n.parentNode.style.textAlign==v;}n=dom.getParent(ed.selection.getStart(),function(n){return n.nodeType==1&&n.style.textAlign;});if(v=='full')v='justify';if(ed.settings.inline_styles)return(n&&n.style.textAlign==v);return this._queryState(c);},HiliteColor:function(ui,val){var t=this,ed=t.editor,d=ed.getDoc();function set(s){if(!isGecko)return;try{d.execCommand("styleWithCSS",0,s);}catch(ex){d.execCommand("useCSS",0,!s);}};if(isGecko||isOpera){set(true);d.execCommand('hilitecolor',false,val);set(false);}else d.execCommand('BackColor',false,val);},Undo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.undo();ed.nodeChanged();}else ed.getDoc().execCommand('Undo',false,null);},Redo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.redo();ed.nodeChanged();}else ed.getDoc().execCommand('Redo',false,null);},FormatBlock:function(ui,val){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,bl,nb,b;function isBlock(n){return/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(n.nodeName);};bl=dom.getParent(s.getNode(),function(n){return isBlock(n);});if(bl){if((isIE&&isBlock(bl.parentNode))||bl.nodeName=='DIV'){nb=ed.dom.create(val);each(dom.getAttribs(bl),function(v){dom.setAttrib(nb,v.nodeName,dom.getAttrib(bl,v.nodeName));});b=s.getBookmark();dom.replace(nb,bl,1);s.moveToBookmark(b);ed.nodeChanged();return;}}val=ed.settings.forced_root_block?(val||'<p>'):val;if(val.indexOf('<')==-1)val='<'+val+'>';if(tinymce.isGecko)val=val.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi,'$1');ed.getDoc().execCommand('FormatBlock',false,val);},mceCleanup:function(){var ed=this.editor,s=ed.selection,b=s.getBookmark();ed.setContent(ed.getContent());s.moveToBookmark(b);},mceRemoveNode:function(ui,val){var ed=this.editor,s=ed.selection,b,n=val||s.getNode();if(n==ed.getBody())return;b=s.getBookmark();ed.dom.remove(n,1);s.moveToBookmark(b);ed.nodeChanged();},mceSelectNodeDepth:function(ui,val){var ed=this.editor,s=ed.selection,c=0;ed.dom.getParent(s.getNode(),function(n){if(n.nodeType==1&&c++==val){s.select(n);ed.nodeChanged();return false;}},ed.getBody());},mceSelectNode:function(u,v){this.editor.selection.select(v);},mceInsertContent:function(ui,val){this.editor.selection.setContent(val);},mceInsertRawHTML:function(ui,val){var ed=this.editor;ed.selection.setContent('tiny_mce_marker');ed.setContent(ed.getContent().replace(/tiny_mce_marker/g,val));},mceRepaint:function(){var s,b,e=this.editor;if(tinymce.isGecko){try{s=e.selection;b=s.getBookmark(true);if(s.getSel())s.getSel().selectAllChildren(e.getBody());s.collapse(true);s.moveToBookmark(b);}catch(ex){}}},queryStateUnderline:function(){var ed=this.editor,n=ed.selection.getNode();if(n&&n.nodeName=='A')return false;return this._queryState('Underline');},queryStateOutdent:function(){var ed=this.editor,n;if(ed.settings.inline_styles){if((n=ed.dom.getParent(ed.selection.getStart(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;if((n=ed.dom.getParent(ed.selection.getEnd(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;}else return!!ed.dom.getParent(ed.selection.getNode(),'BLOCKQUOTE');return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList();},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'UL');},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'OL');},queryStatemceBlockQuote:function(){return!!this.editor.dom.getParent(this.editor.selection.getStart(),function(n){return n.nodeName==='BLOCKQUOTE';});},mceBlockQuote:function(){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,sb,eb,n,bm,bq,r,bq2,i,nl;function getBQ(e){return dom.getParent(e,function(n){return n.nodeName==='BLOCKQUOTE';});};sb=dom.getParent(s.getStart(),dom.isBlock);eb=dom.getParent(s.getEnd(),dom.isBlock);if(bq=getBQ(sb)){if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();if(getBQ(eb)){bq2=bq.cloneNode(false);while(n=eb.nextSibling)bq2.appendChild(n.parentNode.removeChild(n));}if(bq2)dom.insertAfter(bq2,bq);nl=t._getSelectedBlocks(sb,eb);for(i=nl.length-1;i>=0;i--){dom.insertAfter(nl[i],bq);}if(/^\s*$/.test(bq.innerHTML))dom.remove(bq,1);if(bq2&&/^\s*$/.test(bq2.innerHTML))dom.remove(bq2,1);if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(0);if(dom.getParent(s.getStart(),dom.isBlock)!=sb){r=s.getRng();r.move('character',-1);r.select();}}}else t.editor.selection.moveToBookmark(bm);return;}if(isIE&&!sb&&!eb){t.editor.getDoc().execCommand('Indent');n=getBQ(s.getNode());n.style.margin=n.dir='';return;}if(!sb||!eb)return;if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();each(t._getSelectedBlocks(getBQ(s.getStart()),getBQ(s.getEnd())),function(e){if(e.nodeName=='BLOCKQUOTE'&&!bq){bq=e;return;}if(!bq){bq=dom.create('blockquote');e.parentNode.insertBefore(bq,e);}if(e.nodeName=='BLOCKQUOTE'&&bq){n=e.firstChild;while(n){bq.appendChild(n.cloneNode(true));n=n.nextSibling;}dom.remove(e);return;}bq.appendChild(dom.remove(e));});if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(1);}}else s.moveToBookmark(bm);},_getSelectedBlocks:function(st,en){var ed=this.editor,dom=ed.dom,s=ed.selection,sb,eb,n,bl=[];sb=dom.getParent(st||s.getStart(),dom.isBlock);eb=dom.getParent(en||s.getEnd(),dom.isBlock);if(sb)bl.push(sb);if(sb&&eb&&sb!=eb){n=sb;while((n=n.nextSibling)&&n!=eb){if(dom.isBlock(n))bl.push(n);}}if(eb&&sb!=eb)bl.push(eb);return bl;}});})();tinymce.create('tinymce.UndoManager',{index:0,data:null,typing:0,UndoManager:function(ed){var t=this,Dispatcher=tinymce.util.Dispatcher;t.editor=ed;t.data=[];t.onAdd=new Dispatcher(this);t.onUndo=new Dispatcher(this);t.onRedo=new Dispatcher(this);},add:function(l){var t=this,i,ed=t.editor,b,s=ed.settings,la;l=l||{};l.content=l.content||ed.getContent({format:'raw',no_events:1});l.content=l.content.replace(/^\s*|\s*$/g,'');la=t.data[t.index>0&&(t.index==0||t.index==t.data.length)?t.index-1:t.index];if(!l.initial&&la&&l.content==la.content)return null;if(s.custom_undo_redo_levels){if(t.data.length>s.custom_undo_redo_levels){for(i=0;i<t.data.length-1;i++)t.data[i]=t.data[i+1];t.data.length--;t.index=t.data.length;}}if(s.custom_undo_redo_restore_selection&&!l.initial)l.bookmark=b=l.bookmark||ed.selection.getBookmark();if(t.index<t.data.length)t.index++;if(t.data.length===0&&!l.initial)return null;t.data.length=t.index+1;t.data[t.index++]=l;if(l.initial)t.index=0;if(t.data.length==2&&t.data[0].initial)t.data[0].bookmark=b;t.onAdd.dispatch(t,l);ed.isNotDirty=0;return l;},undo:function(){var t=this,ed=t.editor,l=l,i;if(t.typing){t.add();t.typing=0;}if(t.index>0){if(t.index==t.data.length&&t.index>1){i=t.index;t.typing=0;if(!t.add())t.index=i;--t.index;}l=t.data[--t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onUndo.dispatch(t,l);}return l;},redo:function(){var t=this,ed=t.editor,l=null;if(t.index<t.data.length-1){l=t.data[++t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onRedo.dispatch(t,l);}return l;},clear:function(){var t=this;t.data=[];t.index=0;t.typing=0;t.add({initial:true});},hasUndo:function(){return this.index!=0||this.typing;},hasRedo:function(){return this.index<this.data.length-1;}});(function(){var Event,isIE,isGecko,isOpera,each,extend;Event=tinymce.dom.Event;isIE=tinymce.isIE;isGecko=tinymce.isGecko;isOpera=tinymce.isOpera;each=tinymce.each;extend=tinymce.extend;tinymce.create('tinymce.ForceBlocks',{ForceBlocks:function(ed){var t=this,s=ed.settings,elm;t.editor=ed;t.dom=ed.dom;elm=(s.forced_root_block||'p').toLowerCase();s.element=elm.toUpperCase();ed.onPreInit.add(t.setup,t);t.reOpera=new RegExp('(\\u00a0| | )<\/'+elm+'>','gi');t.rePadd=new RegExp('<p( )([^>]+)><\\\/p>|<p( )([^>]+)\\\/>|<p( )([^>]+)>\\s+<\\\/p>|<p><\\\/p>|<p\\\/>|<p>\\s+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR1=new RegExp('<p( )([^>]+)>[\\s\\u00a0]+<\\\/p>|<p>[\\s\\u00a0]+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR2=new RegExp('<p( )([^>]+)>( | )<\\\/p>|<p>( | )<\\\/p>'.replace(/p/g,elm),'gi');t.reBR2Nbsp=new RegExp('<p( )([^>]+)>\\s*<br \\\/>\\s*<\\\/p>|<p>\\s*<br \\\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');t.reTrailBr=new RegExp('\\s*<br \\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');function padd(ed,o){if(isOpera)o.content=o.content.replace(t.reOpera,'</'+elm+'>');o.content=o.content.replace(t.rePadd,'<'+elm+'$1$2$3$4$5$6>\u00a0</'+elm+'>');if(!isIE&&!isOpera&&o.set){o.content=o.content.replace(t.reNbsp2BR1,'<'+elm+'$1$2><br /></'+elm+'>');o.content=o.content.replace(t.reNbsp2BR2,'<'+elm+'$1$2><br /></'+elm+'>');}else{o.content=o.content.replace(t.reBR2Nbsp,'<'+elm+'$1$2>\u00a0</'+elm+'>');o.content=o.content.replace(t.reTrailBr,'</'+elm+'>');}};ed.onBeforeSetContent.add(padd);ed.onPostProcess.add(padd);if(s.forced_root_block){ed.onInit.add(t.forceRoots,t);ed.onSetContent.add(t.forceRoots,t);ed.onBeforeGetContent.add(t.forceRoots,t);}},setup:function(){var t=this,ed=t.editor,s=ed.settings;if(s.forced_root_block){ed.onKeyUp.add(t.forceRoots,t);ed.onPreProcess.add(t.forceRoots,t);}if(s.force_br_newlines){if(isIE){ed.onKeyPress.add(function(ed,e){var n,s=ed.selection;if(e.keyCode==13&&s.getNode().nodeName!='LI'){s.setContent('<br id="__" /> ',{format:'raw'});n=ed.dom.get('__');n.removeAttribute('id');s.select(n);s.collapse();return Event.cancel(e);}});}return;}if(!isIE&&s.force_p_newlines){ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&!e.shiftKey){if(!t.insertPara(e))Event.cancel(e);}});if(isGecko){ed.onKeyDown.add(function(ed,e){if((e.keyCode==8||e.keyCode==46)&&!e.shiftKey)t.backspaceDelete(e,e.keyCode==8);});}}function ren(rn,na){var ne=ed.dom.create(na);each(rn.attributes,function(a){if(a.specified&&a.nodeValue)ne.setAttribute(a.nodeName.toLowerCase(),a.nodeValue);});each(rn.childNodes,function(n){ne.appendChild(n.cloneNode(true));});rn.parentNode.replaceChild(ne,rn);return ne;};if(isIE&&s.element!='P'){ed.onKeyPress.add(function(ed,e){t.lastElm=ed.selection.getNode().nodeName;});ed.onKeyUp.add(function(ed,e){var bl,sel=ed.selection,n=sel.getNode(),b=ed.getBody();if(b.childNodes.length===1&&n.nodeName=='P'){n=ren(n,s.element);sel.select(n);sel.collapse();ed.nodeChanged();}else if(e.keyCode==13&&!e.shiftKey&&t.lastElm!='P'){bl=ed.dom.getParent(n,'P');if(bl){ren(bl,s.element);ed.nodeChanged();}}});}},find:function(n,t,s){var ed=this.editor,w=ed.getDoc().createTreeWalker(n,4,null,false),c=-1;while(n=w.nextNode()){c++;if(t==0&&n==s)return c;if(t==1&&c==s)return n;}return-1;},forceRoots:function(ed,e){var t=this,ed=t.editor,b=ed.getBody(),d=ed.getDoc(),se=ed.selection,s=se.getSel(),r=se.getRng(),si=-2,ei,so,eo,tr,c=-0xFFFFFF;var nx,bl,bp,sp,le,nl=b.childNodes,i;if(e&&e.keyCode==13)return true;for(i=nl.length-1;i>=0;i--){nx=nl[i];if(nx.nodeType==3||(!t.dom.isBlock(nx)&&nx.nodeType!=8)){if(!bl){if(nx.nodeType!=3||/[^\s]/g.test(nx.nodeValue)){if(si==-2&&r){if(!isIE){if(ed.dom.getParent(r.startContainer,function(e){return e===b;})){so=r.startOffset;eo=r.endOffset;si=t.find(b,0,r.startContainer);ei=t.find(b,0,r.endContainer);}}else{tr=d.body.createTextRange();tr.moveToElementText(b);tr.collapse(1);bp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(1);sp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(0);le=(tr.move('character',c)*-1)-sp;si=sp-bp;ei=le;}}bl=ed.dom.create(ed.settings.forced_root_block);bl.appendChild(nx.cloneNode(1));nx.parentNode.replaceChild(bl,nx);}}else{if(bl.hasChildNodes())bl.insertBefore(nx,bl.firstChild);else bl.appendChild(nx);}}else bl=null;}if(si!=-2){if(!isIE){bl=b.getElementsByTagName(ed.settings.element)[0];r=d.createRange();if(si!=-1)r.setStart(t.find(b,1,si),so);else r.setStart(bl,0);if(ei!=-1)r.setEnd(t.find(b,1,ei),eo);else r.setEnd(bl,0);if(s){s.removeAllRanges();s.addRange(r);}}else{try{r=s.createRange();r.moveToElementText(b);r.collapse(1);r.moveStart('character',si);r.moveEnd('character',ei);r.select();}catch(ex){}}}},getParentBlock:function(n){var d=this.dom;return d.getParent(n,d.isBlock);},insertPara:function(e){var t=this,ed=t.editor,dom=ed.dom,d=ed.getDoc(),se=ed.settings,s=ed.selection.getSel(),r=s.getRangeAt(0),b=d.body;var rb,ra,dir,sn,so,en,eo,sb,eb,bn,bef,aft,sc,ec,n,vp=dom.getViewPort(ed.getWin()),y,ch;function isEmpty(n){n=n.innerHTML;n=n.replace(/<(img|hr|table)/gi,'-');n=n.replace(/<[^>]+>/g,'');return n.replace(/[ \t\r\n]+/g,'')=='';};rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(true);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(true);dir=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;sn=dir?s.anchorNode:s.focusNode;so=dir?s.anchorOffset:s.focusOffset;en=dir?s.focusNode:s.anchorNode;eo=dir?s.focusOffset:s.anchorOffset;if(sn===en&&/^(TD|TH)$/.test(sn.nodeName)){dom.remove(sn.firstChild);ed.dom.add(sn,se.element,null,'<br />');aft=ed.dom.add(sn,se.element,null,'<br />');r=d.createRange();r.selectNodeContents(aft);r.collapse(1);ed.selection.setRng(r);return false;}if(sn==b&&en==b&&b.firstChild&&ed.dom.isBlock(b.firstChild)){sn=en=sn.firstChild;so=eo=0;rb=d.createRange();rb.setStart(sn,0);ra=d.createRange();ra.setStart(en,0);}sn=sn.nodeName=="HTML"?d.body:sn;sn=sn.nodeName=="BODY"?sn.firstChild:sn;en=en.nodeName=="HTML"?d.body:en;en=en.nodeName=="BODY"?en.firstChild:en;sb=t.getParentBlock(sn);eb=t.getParentBlock(en);bn=sb?sb.nodeName:se.element;if(t.dom.getParent(sb,function(n){return/OL|UL|PRE/.test(n.nodeName);}))return true;if(sb&&(sb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(sb.style.position))){bn=se.element;sb=null;}if(eb&&(eb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(eb.style.position))){bn=se.element;eb=null;}if(/(TD|TABLE|TH|CAPTION)/.test(bn)||(sb&&bn=="DIV"&&/left|right/gi.test(sb.style.cssFloat))){bn=se.element;sb=eb=null;}bef=(sb&&sb.nodeName==bn)?sb.cloneNode(0):ed.dom.create(bn);aft=(eb&&eb.nodeName==bn)?eb.cloneNode(0):ed.dom.create(bn);aft.removeAttribute('id');if(/^(H[1-6])$/.test(bn)&&sn.nodeValue&&so==sn.nodeValue.length)aft=ed.dom.create(se.element);n=sc=sn;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;sc=n;}while((n=n.previousSibling?n.previousSibling:n.parentNode));n=ec=en;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;ec=n;}while((n=n.nextSibling?n.nextSibling:n.parentNode));if(sc.nodeName==bn)rb.setStart(sc,0);else rb.setStartBefore(sc);rb.setEnd(sn,so);bef.appendChild(rb.cloneContents()||d.createTextNode(''));try{ra.setEndAfter(ec);}catch(ex){}ra.setStart(en,eo);aft.appendChild(ra.cloneContents()||d.createTextNode(''));r=d.createRange();if(!sc.previousSibling&&sc.parentNode.nodeName==bn){r.setStartBefore(sc.parentNode);}else{if(rb.startContainer.nodeName==bn&&rb.startOffset==0)r.setStartBefore(rb.startContainer);else r.setStart(rb.startContainer,rb.startOffset);}if(!ec.nextSibling&&ec.parentNode.nodeName==bn)r.setEndAfter(ec.parentNode);else r.setEnd(ra.endContainer,ra.endOffset);r.deleteContents();if(isOpera)ed.getWin().scrollTo(0,vp.y);if(bef.firstChild&&bef.firstChild.nodeName==bn)bef.innerHTML=bef.firstChild.innerHTML;if(aft.firstChild&&aft.firstChild.nodeName==bn)aft.innerHTML=aft.firstChild.innerHTML;if(isEmpty(bef))bef.innerHTML='<br />';if(isEmpty(aft))aft.innerHTML=isOpera?' ':'<br />';if(isOpera&&parseFloat(opera.version())<9.5){r.insertNode(bef);r.insertNode(aft);}else{r.insertNode(aft);r.insertNode(bef);}aft.normalize();bef.normalize();function first(n){return d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode()||n;};r=d.createRange();r.selectNodeContents(isGecko?first(aft):aft);r.collapse(1);s.removeAllRanges();s.addRange(r);y=ed.dom.getPos(aft).y;ch=aft.clientHeight;if(y<vp.y||y+ch>vp.y+vp.h){ed.getWin().scrollTo(0,y<vp.y?y:y-vp.h+ch);}return false;},backspaceDelete:function(e,bs){var t=this,ed=t.editor,b=ed.getBody(),n,se=ed.selection,r=se.getRng(),sc=r.startContainer,n,w,tn;if(sc&&ed.dom.isBlock(sc)&&!/^(TD|TH)$/.test(sc.nodeName)&&bs){if(sc.childNodes.length==0||(sc.childNodes.length==1&&sc.firstChild.nodeName=='BR')){n=sc;while((n=n.previousSibling)&&!ed.dom.isBlock(n));if(n){if(sc!=b.firstChild){w=ed.dom.doc.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(tn=w.nextNode())n=tn;r=ed.getDoc().createRange();r.setStart(n,n.nodeValue?n.nodeValue.length:0);r.setEnd(n,n.nodeValue?n.nodeValue.length:0);se.setRng(r);ed.dom.remove(sc);}return Event.cancel(e);}}}function handler(e){e=e.target;if(e&&e.parentNode&&e.nodeName=='BR'&&(n=t.getParentBlock(e))){Event.remove(b,'DOMNodeInserted',handler);if(e.previousSibling||e.nextSibling)ed.dom.remove(e);}};Event._add(b,'DOMNodeInserted',handler);window.setTimeout(function(){Event._remove(b,'DOMNodeInserted',handler);},1);}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,extend=tinymce.extend;tinymce.create('tinymce.ControlManager',{ControlManager:function(ed,s){var t=this,i;s=s||{};t.editor=ed;t.controls={};t.onAdd=new tinymce.util.Dispatcher(t);t.onPostRender=new tinymce.util.Dispatcher(t);t.prefix=s.prefix||ed.id+'_';t._cls={};t.onPostRender.add(function(){each(t.controls,function(c){c.postRender();});});},get:function(id){return this.controls[this.prefix+id]||this.controls[id];},setActive:function(id,s){var c=null;if(c=this.get(id))c.setActive(s);return c;},setDisabled:function(id,s){var c=null;if(c=this.get(id))c.setDisabled(s);return c;},add:function(c){var t=this;if(c){t.controls[c.id]=c;t.onAdd.dispatch(c,t);}return c;},createControl:function(n){var c,t=this,ed=t.editor;each(ed.plugins,function(p){if(p.createControl){c=p.createControl(n,t);if(c)return false;}});switch(n){case"|":case"separator":return t.createSeparator();}if(!c&&ed.buttons&&(c=ed.buttons[n]))return t.createButton(n,c);return t.add(c);},createDropMenu:function(id,s,cc){var t=this,ed=t.editor,c,bm,v,cls;s=extend({'class':'mceDropDown',constrain:ed.settings.constrain_menus},s);s['class']=s['class']+' '+ed.getParam('skin')+'Skin';if(v=ed.getParam('skin_variant'))s['class']+=' '+ed.getParam('skin')+'Skin'+v.substring(0,1).toUpperCase()+v.substring(1);id=t.prefix+id;cls=cc||t._cls.dropmenu||tinymce.ui.DropMenu;c=t.controls[id]=new cls(id,s);c.onAddItem.add(function(c,o){var s=o.settings;s.title=ed.getLang(s.title,s.title);if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,s.value);};}});ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm)ed.selection.moveToBookmark(bm);});}return t.add(c);},createListBox:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;if(ed.settings.use_native_selects)c=new tinymce.ui.NativeListBox(id,s);else{cls=cc||t._cls.listbox||tinymce.ui.ListBox;c=new cls(id,s);}t.controls[id]=c;if(tinymce.isWebKit){c.onPostRender.add(function(c,n){Event.add(n,'mousedown',function(){ed.bookmark=ed.selection.getBookmark('simple');});Event.add(n,'focus',function(){ed.selection.moveToBookmark(ed.bookmark);ed.bookmark=null;});});}if(c.hideMenu)ed.onMouseDown.add(c.hideMenu,c);return t.add(c);},createButton:function(id,s,cc){var t=this,ed=t.editor,o,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.label=ed.translate(s.label);s.scope=s.scope||ed;if(!s.onclick&&!s.menu_button){s.onclick=function(){ed.execCommand(s.cmd,s.ui||false,s.value);};}s=extend({title:s.title,'class':'mce_'+id,unavailable_prefix:ed.getLang('unavailable',''),scope:s.scope,control_manager:t},s);id=t.prefix+id;if(s.menu_button){cls=cc||t._cls.menubutton||tinymce.ui.MenuButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);}else{cls=t._cls.button||tinymce.ui.Button;c=new cls(id,s);}return t.add(c);},createMenuButton:function(id,s){s=s||{};s.menu_button=1;return this.createButton(id,s);},createSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;cls=cc||t._cls.splitbutton||tinymce.ui.SplitButton;c=t.add(new cls(id,s));ed.onMouseDown.add(c.hideMenu,c);return c;},createColorSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls,bm;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,'menu_class':ed.getParam('skin')+'Skin',scope:s.scope,more_colors_title:ed.getLang('more_colors')},s);id=t.prefix+id;cls=cc||t._cls.colorsplitbutton||tinymce.ui.ColorSplitButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm){ed.selection.moveToBookmark(bm);bm=0;}});}return t.add(c);},createToolbar:function(id,s,cc){var c,t=this,cls;id=t.prefix+id;cls=cc||t._cls.toolbar||tinymce.ui.Toolbar;c=new cls(id,s);if(t.get(id))return null;return t.add(c);},createSeparator:function(cc){var cls=cc||this._cls.separator||tinymce.ui.Separator;return new cls();},setControlType:function(n,c){return this._cls[n.toLowerCase()]=c;},destroy:function(){each(this.controls,function(c){c.destroy();});this.controls=null;}});})();(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each,isIE=tinymce.isIE,isOpera=tinymce.isOpera;tinymce.create('tinymce.WindowManager',{WindowManager:function(ed){var t=this;t.editor=ed;t.onOpen=new Dispatcher(t);t.onClose=new Dispatcher(t);t.params={};t.features={};},open:function(s,p){var t=this,f='',x,y,mo=t.editor.settings.dialog_type=='modal',w,sw,sh,vp=tinymce.DOM.getViewPort(),u;s=s||{};p=p||{};sw=isOpera?vp.w:screen.width;sh=isOpera?vp.h:screen.height;s.name=s.name||'mc_'+new Date().getTime();s.width=parseInt(s.width||320);s.height=parseInt(s.height||240);s.resizable=true;s.left=s.left||parseInt(sw/ 2.0) - (s.width /2.0);s.top=s.top||parseInt(sh/ 2.0) - (s.height /2.0);p.inline=false;p.mce_width=s.width;p.mce_height=s.height;p.mce_auto_focus=s.auto_focus;if(mo){if(isIE){s.center=true;s.help=false;s.dialogWidth=s.width+'px';s.dialogHeight=s.height+'px';s.scroll=s.scrollbars||false;}}each(s,function(v,k){if(tinymce.is(v,'boolean'))v=v?'yes':'no';if(!/^(name|url)$/.test(k)){if(isIE&&mo)f+=(f?';':'')+k+':'+v;else f+=(f?',':'')+k+'='+v;}});t.features=s;t.params=p;t.onOpen.dispatch(t,s,p);u=s.url||s.file;if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&')+'mce_rdomain='+tinymce.relaxedDomain;u=tinymce._addVer(u);try{if(isIE&&mo){w=1;window.showModalDialog(u,window,f);}else w=window.open(u,s.name,f);}catch(ex){}if(!w)alert(t.editor.getLang('popup_blocked'));},close:function(w){w.close();this.onClose.dispatch(this);},createInstance:function(cl,a,b,c,d,e){var f=tinymce.resolve(cl);return new f(a,b,c,d,e);},confirm:function(t,cb,s){cb.call(s||this,confirm(this._decode(this.editor.getLang(t,t))));},alert:function(tx,cb,s){var t=this;alert(t._decode(t.editor.getLang(tx,tx)));if(cb)cb.call(s||t);},_decode:function(s){return tinymce.DOM.decode(s).replace(/\\n/g,'\n');}});}());
\ No newline at end of file
u += '/langs/' + this.editor.settings.language + '_dlg.js';\r
\r
if (!tinymce.ScriptLoader.isDone(u)) {\r
- document.write('<script type="text/javascript" src="' + u + '"></script>');\r
+ document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"></script>');\r
tinymce.ScriptLoader.markDone(u);\r
}\r
}\r
\r
// To avoid domain relaxing issue in Opera\r
function close() {\r
- t.editor.windowManager.close(window, t.id);\r
+ t.editor.windowManager.close(window);\r
tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup\r
};\r
\r
\r
// Set inline title\r
if (!t.isWindow)\r
- t.editor.windowManager.setTitle(ti, t.id);\r
+ t.editor.windowManager.setTitle(window, ti);\r
else\r
window.focus();\r
\r
\r
var tinymce = {\r
majorVersion : '3',\r
- minorVersion : '0.6.2',\r
- releaseDate : '2008-04-07',\r
+ minorVersion : '1.0.1',\r
+ releaseDate : '2008-06-18',\r
\r
_init : function() {\r
- var t = this, ua = navigator.userAgent, i, nl, n, base;\r
+ var t = this, d = document, w = window, na = navigator, ua = na.userAgent, i, nl, n, base, p, v;\r
\r
// Browser checks\r
- t.isOpera = window.opera && opera.buildNumber;\r
+ t.isOpera = w.opera && opera.buildNumber;\r
t.isWebKit = /WebKit/.test(ua);\r
- t.isOldWebKit = t.isWebKit && !window.getSelection().getRangeAt;\r
- t.isIE = !t.isWebKit && !t.isOpera && (/MSIE/gi).test(ua) && (/Explorer/gi).test(navigator.appName);\r
+ t.isOldWebKit = t.isWebKit && !w.getSelection().getRangeAt;\r
+ t.isIE = !t.isWebKit && !t.isOpera && (/MSIE/gi).test(ua) && (/Explorer/gi).test(na.appName);\r
t.isIE6 = t.isIE && /MSIE [56]/.test(ua);\r
t.isGecko = !t.isWebKit && /Gecko/.test(ua);\r
t.isMac = ua.indexOf('Mac') != -1;\r
\r
// TinyMCE .NET webcontrol might be setting the values for TinyMCE\r
- if (window.tinyMCEPreInit) {\r
+ if (w.tinyMCEPreInit) {\r
t.suffix = tinyMCEPreInit.suffix;\r
t.baseURL = tinyMCEPreInit.base;\r
+ t.query = tinyMCEPreInit.query;\r
return;\r
}\r
\r
t.suffix = '';\r
\r
// If base element found, add that infront of baseURL\r
- nl = document.getElementsByTagName('base');\r
+ nl = d.getElementsByTagName('base');\r
for (i=0; i<nl.length; i++) {\r
- if (nl[i].href)\r
- base = nl[i].href;\r
+ if (v = nl[i].href) {\r
+ // Host only value like http://site.com or http://site.com:8008\r
+ if (/^https?:\/\/[^\/]+$/.test(v))\r
+ v += '/';\r
+\r
+ base = v ? v.match(/.*\//)[0] : ''; // Get only directory\r
+ }\r
}\r
\r
function getBase(n) {\r
if (/_(src|dev)\.js/g.test(n.src))\r
t.suffix = '_src';\r
\r
+ if ((p = n.src.indexOf('?')) != -1)\r
+ t.query = n.src.substring(p + 1);\r
+\r
t.baseURL = n.src.substring(0, n.src.lastIndexOf('/'));\r
\r
// If path to script is relative and a base href was found add that one infront\r
};\r
\r
// Check document\r
- nl = document.getElementsByTagName('script');\r
+ nl = d.getElementsByTagName('script');\r
for (i=0; i<nl.length; i++) {\r
if (getBase(nl[i]))\r
return;\r
}\r
\r
// Check head\r
- n = document.getElementsByTagName('head')[0];\r
+ n = d.getElementsByTagName('head')[0];\r
if (n) {\r
nl = n.getElementsByTagName('script');\r
for (i=0; i<nl.length; i++) {\r
},\r
\r
addUnload : function(f, s) {\r
- var t = this, w = window, unload;\r
+ var t = this, w = window;\r
\r
f = {func : f, scope : s || this};\r
\r
if (!t.unloads) {\r
- unload = function() {\r
+ function unload() {\r
var li = t.unloads, o, n;\r
\r
- // Call unload handlers\r
- for (n in li) {\r
- o = li[n];\r
+ if (li) {\r
+ // Call unload handlers\r
+ for (n in li) {\r
+ o = li[n];\r
+\r
+ if (o && o.func)\r
+ o.func.call(o.scope, 1); // Send in one arg to distinct unload and user destroy\r
+ }\r
+\r
+ // Detach unload function\r
+ if (w.detachEvent) {\r
+ w.detachEvent('onbeforeunload', fakeUnload);\r
+ w.detachEvent('onunload', unload);\r
+ } else if (w.removeEventListener)\r
+ w.removeEventListener('unload', unload, false);\r
\r
- if (o && o.func)\r
- o.func.call(o.scope, 1); // Send in one arg to distinct unload and user destroy\r
+ // Destroy references\r
+ t.unloads = o = li = w = unload = null;\r
+\r
+ // Run garbarge collector on IE\r
+ if (window.CollectGarbage)\r
+ window.CollectGarbage();\r
}\r
+ };\r
\r
- // Detach unload function\r
- if (w.detachEvent)\r
- w.detachEvent('onunload', unload);\r
- else if (w.removeEventListener)\r
- w.removeEventListener('unload', unload, false);\r
+ function fakeUnload() {\r
+ var d = document;\r
\r
- // Destroy references\r
- o = li = w = unload = null;\r
+ // Is there things still loading, then do some magic\r
+ if (d.readyState == 'interactive') {\r
+ function stop() {\r
+ // Prevent memory leak\r
+ d.detachEvent('onstop', stop);\r
\r
- // Run garbarge collector on IE\r
- if (window.CollectGarbage)\r
- window.CollectGarbage();\r
+ // Call unload handler\r
+ unload();\r
+\r
+ d = null;\r
+ };\r
+\r
+ // Fire unload when the currently loading page is stopped\r
+ d.attachEvent('onstop', stop);\r
+\r
+ // Remove onstop listener after a while to prevent the unload function\r
+ // to execute if the user presses cancel in an onbeforeunload\r
+ // confirm dialog and then presses the browser stop button\r
+ window.setTimeout(function() {\r
+ d.detachEvent('onstop', stop);\r
+ }, 0);\r
+ }\r
};\r
\r
// Attach unload handler\r
- if (w.attachEvent)\r
+ if (w.attachEvent) {\r
w.attachEvent('onunload', unload);\r
- else if (w.addEventListener)\r
+ w.attachEvent('onbeforeunload', fakeUnload);\r
+ } else if (w.addEventListener)\r
w.addEventListener('unload', unload, false);\r
\r
// Setup initial unload handler array\r
},\r
\r
explode : function(s, d) {\r
- return tinymce.map(s.split(d || ','), tinymce.trim);\r
+ return s ? tinymce.map(s.split(d || ','), tinymce.trim) : s;\r
+ },\r
+\r
+ _addVer : function(u) {\r
+ var v;\r
+\r
+ if (!this.query)\r
+ return u;\r
+\r
+ v = (u.indexOf('?') == -1 ? '?' : '&') + this.query;\r
+\r
+ if (u.indexOf('#') == -1)\r
+ return u + v;\r
+\r
+ return u.replace('#', v + '#');\r
}\r
\r
};\r
\r
x.send(o.data);\r
\r
- // Wait for response, onReadyStateChange can not be used since it leaks memory in IE\r
- t = w.setInterval(function() {\r
- if (x.readyState == 4 || c++ > 10000) {\r
- w.clearInterval(t);\r
-\r
+ function ready() {\r
+ if (!o.async || x.readyState == 4 || c++ > 10000) {\r
if (o.success && c < 10000 && x.status == 200)\r
o.success.call(o.success_scope, '' + x.responseText, x, o);\r
else if (o.error)\r
o.error.call(o.error_scope, c > 10000 ? 'TIMED_OUT' : 'GENERAL', x, o);\r
\r
x = null;\r
- }\r
- }, 10);\r
+ } else\r
+ w.setTimeout(ready, 10);\r
+ };\r
+\r
+ // Syncronous request\r
+ if (!o.async)\r
+ return ready();\r
+\r
+ // Wait for response, onReadyStateChange can not be used since it leaks memory in IE\r
+ t = w.setTimeout(ready, 10);\r
}\r
\r
}\r
}\r
\r
each(na.split(','), function(v) {\r
- if (n.nodeType == 1 && ((se.strict && n.nodeName.toUpperCase() == v) || n.nodeName == v)) {\r
+ if (n.nodeType == 1 && ((se.strict && n.nodeName.toUpperCase() == v) || n.nodeName.toUpperCase() == v)) {\r
s = true;\r
return false; // Break loop\r
}\r
get : function(e) {\r
var n;\r
\r
- if (this.doc && typeof(e) == 'string') {\r
+ if (e && this.doc && typeof(e) == 'string') {\r
n = e;\r
e = this.doc.getElementById(e);\r
\r
\r
switch (n) {\r
case "style":\r
+ // No mce_style for elements with these since they might get resized by the user\r
if (s.keep_values) {\r
- if (v)\r
+ if (v && !t._isRes(v))\r
e.setAttribute('mce_style', v, 2);\r
else\r
e.removeAttribute('mce_style', 2);\r
}\r
\r
break;\r
+ \r
+ case "shape":\r
+ e.setAttribute('mce_style', v);\r
+ break;\r
}\r
\r
if (is(v) && v !== null && v.length !== 0)\r
\r
e = t.get(e);\r
\r
- if (!e)\r
+ if (!e || e.nodeType !== 1)\r
return false;\r
\r
if (!is(dv))\r
dv = "";\r
\r
// Try the mce variant for these\r
- if (/^(src|href|style|coords)$/.test(n)) {\r
+ if (/^(src|href|style|coords|shape)$/.test(n)) {\r
v = e.getAttribute("mce_" + n);\r
\r
if (v)\r
if (v) {\r
v = t.serializeStyle(t.parseStyle(v));\r
\r
- if (t.settings.keep_values)\r
+ if (t.settings.keep_values && !t._isRes(v))\r
e.setAttribute('mce_style', v);\r
}\r
\r
break;\r
\r
case 'tabindex':\r
- // IE returns 32768 as default value\r
+ // IE returns default value\r
if (v === 32768)\r
v = '';\r
\r
break;\r
\r
+ case 'maxlength':\r
+ // IE returns default value\r
+ if (v === 2147483647)\r
+ v = '';\r
+\r
+ break;\r
+\r
case 'shape':\r
v = v.toLowerCase();\r
break;\r
delete o[c];\r
};\r
\r
+ st = st.replace(/&(#?[a-z0-9]+);/g, '&$1_MCE_SEMI_'); // Protect entities\r
+\r
each(st.split(';'), function(v) {\r
var sv, ur = [];\r
\r
if (v) {\r
+ v = v.replace(/_MCE_SEMI_/g, ';'); // Restore entities\r
v = v.replace(/url\([^\)]+\)/g, function(v) {ur.push(v);return 'url(' + ur.length + ')';});\r
v = v.split(':');\r
sv = tinymce.trim(v[1]);\r
\r
if (s.url_converter) {\r
sv = sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g, function(x, c) {\r
- return 'url(' + t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(c), 'style', null)) + ')';\r
+ return 'url(' + s.url_converter.call(s.url_converter_scope || t, t.decode(c), 'style', null) + ')';\r
});\r
}\r
\r
\r
each(o, function(v, k) {\r
if (k && v) {\r
+ if (tinymce.isGecko && k.indexOf('-moz-') === 0)\r
+ return;\r
+\r
switch (k) {\r
case 'color':\r
case 'background-color':\r
return;\r
\r
t.files[u] = true;\r
- t.add(t.select('head')[0], 'link', {rel : 'stylesheet', href : u});\r
+ t.add(t.select('head')[0], 'link', {rel : 'stylesheet', href : tinymce._addVer(u)});\r
});\r
},\r
\r
if (tinymce.isGecko) {\r
h = h.replace(/<(\/?)strong>|<strong( [^>]+)>/gi, '<$1b$2>');\r
h = h.replace(/<(\/?)em>|<em( [^>]+)>/gi, '<$1i$2>');\r
- }\r
+ } else if (isIE)\r
+ h = h.replace(/'/g, '''); // IE can't handle apos\r
\r
// Fix some issues\r
h = h.replace(/<a( )([^>]+)\/>|<a\/>/gi, '<a$1$2></a>'); // Force open\r
\r
// Store away src and href in mce_src and mce_href since browsers mess them up\r
if (s.keep_values) {\r
- // Wrap scripts in comments for serialization purposes\r
- if (h.indexOf('<script') !== -1) {\r
- h = h.replace(/<script>/g, '<script type="text/javascript">');\r
- h = h.replace(/<script(|[^>]+)>(\s*<!--|\/\/\s*<\[CDATA\[)?[\r\n]*/g, '<mce:script$1><!--\n');\r
- h = h.replace(/\s*(\/\/\s*-->|\/\/\s*]]>)?<\/script>/g, '\n// --></mce:script>');\r
- h = h.replace(/<mce:script(|[^>]+)><!--\n\/\/ --><\/mce:script>/g, '<mce:script$1></mce:script>');\r
+ // Wrap scripts and styles in comments for serialization purposes\r
+ if (/<script|style/.test(h)) {\r
+ function trim(s) {\r
+ // Remove prefix and suffix code for element\r
+ s = s.replace(/^[\r\n]*|[\r\n]*$/g, '');\r
+ s = s.replace(/^\s*(\/\/\s*<!--|\/\/\s*<\[CDATA\[|<!--|<\[CDATA\[)[\r\n]*/g, '');\r
+ s = s.replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->)\s*$/g, '');\r
+\r
+ return s;\r
+ };\r
+\r
+ // Preserve script elements\r
+ h = h.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/g, function(v, a, b) {\r
+ // Remove prefix and suffix code for script element\r
+ b = trim(b);\r
+\r
+ // Force type attribute\r
+ if (!a)\r
+ a = ' type="text/javascript"';\r
+\r
+ // Wrap contents in a comment\r
+ if (b)\r
+ b = '<!--\n' + b + '\n// -->';\r
+\r
+ // Output fake element\r
+ return '<mce:script' + a + '>' + b + '</mce:script>';\r
+ });\r
+\r
+ // Preserve style elements\r
+ h = h.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/g, function(v, a, b) {\r
+ b = trim(b);\r
+ return '<mce:style' + a + '><!--\n' + b + '\n--></mce:style><style' + a + ' mce_bogus="1">' + b + '</style>';\r
+ });\r
}\r
\r
// Process all tags with src, href or style\r
- h = h.replace(/<([\w:]+) [^>]*(src|href|style|coords)[^>]*>/gi, function(a, n) {\r
+ h = h.replace(/<([\w:]+) [^>]*(src|href|style|shape|coords)[^>]*>/gi, function(a, n) {\r
function handle(m, b, c) {\r
var u = c;\r
\r
//if (isIE)\r
// u = t.serializeStyle(t.parseStyle(u));\r
\r
+ // No mce_style for elements with these since they might get resized by the user\r
+ if (t._isRes(c))\r
+ return m;\r
+\r
if (s.hex_colors) {\r
u = u.replace(/rgb\([^\)]+\)/g, function(v) {\r
return t.toHex(v);\r
return 'url(' + t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(c), b, n)) + ')';\r
});\r
}\r
- } else if (b != 'coords') {\r
+ } else if (b != 'coords' && b != 'shape') {\r
if (s.url_converter)\r
u = t.encode(s.url_converter.call(s.url_converter_scope || t, t.decode(c), b, n));\r
}\r
return ' ' + b + '="' + c + '" mce_' + b + '="' + u + '"';\r
};\r
\r
- a = a.replace(/ (src|href|style|coords)=[\"]([^\"]+)[\"]/gi, handle); // W3C\r
- a = a.replace(/ (src|href|style|coords)=[\']([^\']+)[\']/gi, handle); // W3C\r
+ a = a.replace(/ (src|href|style|coords|shape)=[\"]([^\"]+)[\"]/gi, handle); // W3C\r
+ a = a.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi, handle); // W3C\r
\r
- return a.replace(/ (src|href|style|coords)=([^\s\"\'>]+)/gi, handle); // IE\r
+ return a.replace(/ (src|href|style|coords|shape)=([^\s\"\'>]+)/gi, handle); // IE\r
});\r
}\r
\r
\r
n = n.nodeName || n;\r
\r
- return /^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);\r
+ return /^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);\r
},\r
\r
// #if !jquery\r
}\r
\r
// Fix IE psuedo leak for elements since replacing elements if fairly common\r
- if (isIE && o.nodeType === 1) {\r
+ // Will break parentNode for some unknown reason\r
+ /* if (isIE && o.nodeType === 1) {\r
o.parentNode.insertBefore(n, o);\r
o.outerHTML = '';\r
return n;\r
- }\r
+ }*/\r
\r
return o.parentNode.replaceChild(n, o);\r
});\r
// Manual destroy then remove unload handler\r
if (!s)\r
tinymce.removeUnload(t.destroy);\r
+ },\r
+\r
+ _isRes : function(c) {\r
+ // Is live resizble element\r
+ return /^(top|left|bottom|right|width|height)/i.test(c) || /;\s*(top|left|bottom|right|width|height)/i.test(c);\r
}\r
\r
/*\r
var t;\r
\r
// No need since the document is already loaded\r
- if (window.tinyMCE_GZ && tinyMCE_GZ.loaded)\r
+ if (window.tinyMCE_GZ && tinyMCE_GZ.loaded) {\r
+ Event.domLoaded = 1;\r
return;\r
+ }\r
\r
if (isIE && document.location.protocol != 'https:') {\r
// Fake DOMContentLoaded on IE\r
/* file:jscripts/tiny_mce/classes/dom/Selection.js */\r
\r
(function() {\r
+ function trimNl(s) {\r
+ return s.replace(/[\n\r]+/g, '');\r
+ };\r
+\r
// Shorten names\r
var is = tinymce.is, isIE = tinymce.isIE, each = tinymce.each;\r
\r
},\r
\r
setContent : function(h, s) {\r
- var t = this, r = t.getRng(), d;\r
+ var t = this, r = t.getRng(), d = t.win.document;\r
\r
s = s || {format : 'html'};\r
s.set = true;\r
h = t.dom.processHTML(h);\r
\r
if (r.insertNode) {\r
- d = t.win.document;\r
-\r
// Gecko has a bug where if you insert using InsertHTML it will insert a space instead\r
// So we simply check if the input is HTML or text and then insert text using the insertNode method\r
if (tinymce.isGecko && h.indexOf('<') == -1) {\r
r.insertNode(t.getRng().createContextualFragment(h));\r
}\r
} else {\r
- if (r.item)\r
- r.item(0).outerHTML = h;\r
- else\r
- r.pasteHTML(h);\r
+ if (r.item) {\r
+ // Delete content and get caret text selection\r
+ d.execCommand('Delete', false, null);\r
+ r = t.getRng();\r
+ }\r
+\r
+ r.pasteHTML(h);\r
}\r
},\r
\r
r.collapse(1);\r
e = r.parentElement();\r
\r
- if (e.nodeName == 'BODY')\r
+ if (e && e.nodeName == 'BODY')\r
return e.firstChild;\r
\r
return e;\r
r.collapse(0);\r
e = r.parentElement();\r
\r
- if (e.nodeName == 'BODY')\r
+ if (e && e.nodeName == 'BODY')\r
return e.lastChild;\r
\r
return e;\r
return d;\r
}\r
\r
- p += tinymce.trim(n.nodeValue || '').length;\r
+ p += trimNl(n.nodeValue || '').length;\r
}\r
\r
return null;\r
return {scrollX : sx, scrollY : sy};\r
\r
// Count whitespace before\r
- (s.anchorNode.nodeValue || '').replace(/^\s+/, function(a) {wb = a.length;});\r
+ trimNl(s.anchorNode.nodeValue || '').replace(/^\s+/, function(a) {wb = a.length;});\r
\r
return {\r
start : Math.max(e.start + s.anchorOffset - wb, 0),\r
e = getPos(ro, r.startContainer, r.endContainer);\r
\r
// Count whitespace before start and end container\r
- (r.startContainer.nodeValue || '').replace(/^\s+/, function(a) {wb = a.length;});\r
- (r.endContainer.nodeValue || '').replace(/^\s+/, function(a) {wa = a.length;});\r
+ //(r.startContainer.nodeValue || '').replace(/^\s+/, function(a) {wb = a.length;});\r
+ //(r.endContainer.nodeValue || '').replace(/^\s+/, function(a) {wa = a.length;});\r
\r
if (!e)\r
return {scrollX : sx, scrollY : sy};\r
wa = wb = 0;\r
\r
nv = n.nodeValue || '';\r
- nv.replace(/^\s+[^\s]/, function(a) {wb = a.length - 1;});\r
- nv.replace(/[^\s]\s+$/, function(a) {wa = a.length - 1;});\r
+ //nv.replace(/^\s+[^\s]/, function(a) {wb = a.length - 1;});\r
+ //nv.replace(/[^\s]\s+$/, function(a) {wa = a.length - 1;});\r
\r
- nvl = tinymce.trim(nv).length;\r
+ nvl = trimNl(nv).length;\r
p += nvl;\r
\r
if (p >= sp && !d.startNode) {\r
},\r
\r
writeComment : function(v) {\r
- this.node.appendChild(this.doc.createComment(v));\r
+ this.node.appendChild(this.doc.createComment(v.replace(/\-\-/g, ' ')));\r
},\r
\r
getContent : function() {\r
// Internal functions\r
\r
_postProcess : function(o) {\r
- var t = this, s = t.settings, h = o.content, sc = [], p, l;\r
+ var t = this, s = t.settings, h = o.content, sc = [], p;\r
\r
if (o.format == 'html') {\r
// Protect some elements\r
p = t._protect({\r
content : h,\r
patterns : [\r
- /(<script[^>]*>)(.*?)(<\/script>)/g,\r
- /(<style[^>]*>)(.*?)(<\/style>)/g,\r
- /(<pre[^>]*>)(.*?)(<\/pre>)/g\r
+ {pattern : /(<script[^>]*>)(.*?)(<\/script>)/g},\r
+ {pattern : /(<style[^>]*>)(.*?)(<\/style>)/g},\r
+ {pattern : /(<pre[^>]*>)(.*?)(<\/pre>)/g, encode : 1}\r
]\r
});\r
\r
h = p.content;\r
\r
// Entity encode\r
- if (s.entity_encoding !== 'raw') {\r
- if (s.entity_encoding.indexOf('named') != -1) {\r
- t.setEntities(s.entities);\r
- l = t.entityLookup;\r
-\r
- h = h.replace(t.entitiesRE, function(a) {\r
- var v;\r
-\r
- if (v = l[a])\r
- a = '&' + v + ';';\r
-\r
- return a;\r
- });\r
- }\r
-\r
- if (s.entity_encoding.indexOf('numeric') != -1) {\r
- h = h.replace(/[\u007E-\uFFFF]/g, function(a) {\r
- return '&#' + a.charCodeAt(0) + ';';\r
- });\r
- }\r
- }\r
+ if (s.entity_encoding !== 'raw')\r
+ h = t._encode(h);\r
\r
// Use BR instead of padded P elements inside editor and use <p> </p> outside editor\r
/* if (o.set)\r
},\r
\r
_protect : function(o) {\r
+ var t = this;\r
+\r
o.items = o.items || [];\r
\r
function enc(s) {\r
};\r
\r
each(o.patterns, function(p) {\r
- o.content = dec(enc(o.content).replace(p, function(x, a, b, c) {\r
- o.items.push(dec(b));\r
+ o.content = dec(enc(o.content).replace(p.pattern, function(x, a, b, c) {\r
+ b = dec(b);\r
+\r
+ if (p.encode)\r
+ b = t._encode(b);\r
+\r
+ o.items.push(b);\r
return a + '<!--mce:' + (o.items.length - 1) + '-->' + c;\r
}));\r
});\r
return h;\r
},\r
\r
+ _encode : function(h) {\r
+ var t = this, s = t.settings, l;\r
+\r
+ // Entity encode\r
+ if (s.entity_encoding !== 'raw') {\r
+ if (s.entity_encoding.indexOf('named') != -1) {\r
+ t.setEntities(s.entities);\r
+ l = t.entityLookup;\r
+\r
+ h = h.replace(t.entitiesRE, function(a) {\r
+ var v;\r
+\r
+ if (v = l[a])\r
+ a = '&' + v + ';';\r
+\r
+ return a;\r
+ });\r
+ }\r
+\r
+ if (s.entity_encoding.indexOf('numeric') != -1) {\r
+ h = h.replace(/[\u007E-\uFFFF]/g, function(a) {\r
+ return '&#' + a.charCodeAt(0) + ';';\r
+ });\r
+ }\r
+ }\r
+\r
+ return h;\r
+ },\r
+\r
_setup : function() {\r
var t = this, s = this.settings;\r
\r
t.addValidChildRules(s.valid_child_elements);\r
\r
if (s.invalid_elements)\r
- t.invalidElementsRE = new RegExp('^(' + wildcardToRE(s.invalid_elements.replace(',', '|').toLowerCase()) + ')$');\r
+ t.invalidElementsRE = new RegExp('^(' + wildcardToRE(s.invalid_elements.replace(/,/g, '|').toLowerCase()) + ')$');\r
\r
if (s.attrib_value_filter)\r
t.attribValueFilter = s.attribValueFilter;\r
function loadScript(u) {\r
if (tinymce.dom.Event.domLoaded || t.settings.strict_mode) {\r
tinymce.util.XHR.send({\r
- url : u,\r
+ url : tinymce._addVer(u),\r
error : t.settings.error,\r
async : false,\r
success : function(co) {\r
}\r
});\r
} else\r
- document.write('<script type="text/javascript" src="' + u + '"></script>');\r
+ document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"></script>');\r
};\r
\r
if (!tinymce.is(u, 'string')) {\r
ol += 'tinymce.dom.ScriptLoader._onLoad(this,\'' + u + '\',' + ix + ');"';\r
}\r
\r
- document.write('<script type="text/javascript" src="' + u + '"' + ol + '></script>');\r
+ document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"' + ol + '></script>');\r
\r
if (!o.func)\r
done(o);\r
this.onShowMenu = new tinymce.util.Dispatcher(this);\r
this.onHideMenu = new tinymce.util.Dispatcher(this);\r
this.classPrefix = 'mceMenu';\r
-\r
- // Fix for odd IE bug: #1903622\r
- this.fixIE = tinymce.isIE && DOM.win.top != DOM.win;\r
},\r
\r
createMenu : function(s) {\r
t.element.update();\r
\r
t.isMenuVisible = 1;\r
- t.mouseClickFunc = Event.add(co, t.fixIE ? 'mousedown' : 'click', function(e) {\r
+ t.mouseClickFunc = Event.add(co, 'click', function(e) {\r
var m;\r
\r
e = e.target;\r
if (s.keyboard_focus) {\r
Event.add(co, 'keydown', t._keyHandler, t);\r
DOM.select('a', 'menu_' + t.id)[0].focus(); // Select first link\r
+ t._focusIdx = 0;\r
}\r
},\r
\r
return;\r
\r
Event.remove(co, 'mouseover', t.mouseOverFunc);\r
- Event.remove(co, t.fixIE ? 'mousedown' : 'click', t.mouseClickFunc);\r
+ Event.remove(co, 'click', t.mouseClickFunc);\r
Event.remove(co, 'keydown', t._keyHandler);\r
DOM.hide(co);\r
t.isMenuVisible = 0;\r
// Internal functions\r
\r
_keyHandler : function(e) {\r
- // Accessibility feature\r
- if (e.keyCode == 27)\r
- this.hideMenu();\r
+ var t = this, kc = e.keyCode;\r
+\r
+ function focus(d) {\r
+ var i = t._focusIdx + d, e = DOM.select('a', 'menu_' + t.id)[i];\r
+\r
+ if (e) {\r
+ t._focusIdx = i;\r
+ e.focus();\r
+ }\r
+ };\r
+\r
+ switch (kc) {\r
+ case 38:\r
+ focus(-1); // Select first link\r
+ return;\r
+\r
+ case 40:\r
+ focus(1);\r
+ return;\r
+\r
+ case 13:\r
+ return;\r
+\r
+ case 27:\r
+ return this.hideMenu();\r
+ }\r
},\r
\r
_add : function(tb, o) {\r
},\r
\r
renderHTML : function() {\r
- var cp = this.classPrefix, s = this.settings, h = '<a id="' + this.id + '" href="javascript:;" class="' + cp + ' ' + cp + 'Enabled ' + s['class'] + '" onmousedown="return false;" onclick="return false;" title="' + DOM.encode(s.title) + '">';\r
+ var cp = this.classPrefix, s = this.settings, h, l;\r
+\r
+ l = DOM.encode(s.label || '');\r
+ h = '<a id="' + this.id + '" href="javascript:;" class="' + cp + ' ' + cp + 'Enabled ' + s['class'] + (l ? ' ' + cp + 'Labeled' : '') +'" onmousedown="return false;" onclick="return false;" title="' + DOM.encode(s.title) + '">';\r
\r
if (s.image)\r
- h += '<img class="mceIcon" src="' + s.image + '" /></a>';\r
+ h += '<img class="mceIcon" src="' + s.image + '" />' + l + '</a>';\r
else\r
- h += '<span class="mceIcon ' + s['class'] + '"></span></a>';\r
+ h += '<span class="mceIcon ' + s['class'] + '"></span>' + (l ? '<span class="' + cp + 'Label">' + l + '</span>' : '') + '</a>';\r
\r
return h;\r
},\r
if (t.isDisabled() || t.items.length == 0)\r
return;\r
\r
+ if (t.menu && t.menu.isMenuVisible)\r
+ return t.hideMenu();\r
+\r
if (!t.isMenuRendered) {\r
t.renderMenu();\r
t.isMenuRendered = true;\r
m = t.menu;\r
m.settings.offset_x = p2.x;\r
m.settings.offset_y = p2.y;\r
- m.settings.keyboard_focus = t._focused;\r
+ m.settings.keyboard_focus = !tinymce.isOpera; // Opera is buggy when it comes to auto focus\r
\r
// Select in menu\r
if (t.oldID)\r
\r
Event.add(DOM.doc, 'mousedown', t.hideMenu, t);\r
DOM.addClass(t.id, t.classPrefix + 'Selected');\r
+\r
+ //DOM.get(t.id + '_text').focus();\r
},\r
\r
hideMenu : function(e) {\r
var t = this;\r
\r
+ // Prevent double toogles by canceling the mouse click event to the button\r
+ if (e && e.type == "mousedown" && (e.target.id == t.id + '_text' || e.target.id == t.id + '_open'))\r
+ return;\r
+\r
if (!e || !DOM.getParent(e.target, function(n) {return DOM.hasClass(n, 'mceMenu');})) {\r
DOM.removeClass(t.id, t.classPrefix + 'Selected');\r
Event.remove(DOM.doc, 'mousedown', t.hideMenu, t);\r
\r
m.add({\r
title : t.settings.title,\r
- 'class' : 'mceMenuItemTitle'\r
- }).setDisabled(1);\r
+ 'class' : 'mceMenuItemTitle',\r
+ onclick : function() {\r
+ if (t.settings.onselect('') !== false)\r
+ t.select(''); // Must be runned after\r
+ }\r
+ });\r
\r
each(t.items, function(o) {\r
o.id = DOM.uniqueId();\r
var t = this, cp = t.classPrefix;\r
\r
Event.add(t.id, 'click', t.showMenu, t);\r
- Event.add(t.id + '_text', 'focus', function() {t._focused = 1;});\r
- Event.add(t.id + '_text', 'blur', function() {t._focused = 0;});\r
+ Event.add(t.id + '_text', 'focus', function(e) {\r
+ if (!t._focused) {\r
+ t.keyDownHandler = Event.add(t.id + '_text', 'keydown', function(e) {\r
+ var idx = -1, v, kc = e.keyCode;\r
+\r
+ // Find current index\r
+ each(t.items, function(v, i) {\r
+ if (t.selectedValue == v.value)\r
+ idx = i;\r
+ });\r
+\r
+ // Move up/down\r
+ if (kc == 38)\r
+ v = t.items[idx - 1];\r
+ else if (kc == 40)\r
+ v = t.items[idx + 1];\r
+ else if (kc == 13) {\r
+ // Fake select on enter\r
+ v = t.selectedValue;\r
+ t.selectedValue = null; // Needs to be null to fake change\r
+ t.settings.onselect(v);\r
+ return Event.cancel(e);\r
+ }\r
+\r
+ if (v) {\r
+ t.hideMenu();\r
+ t.select(v.value);\r
+ }\r
+ });\r
+ }\r
+\r
+ t._focused = 1;\r
+ });\r
+ Event.add(t.id + '_text', 'blur', function() {Event.remove(t.id + '_text', 'keydown', t.keyDownHandler); t._focused = 0;});\r
\r
// Old IE doesn't have hover on all elements\r
if (tinymce.isIE6 || !DOM.boxModel) {\r
t.isMenuRendered = true;\r
}\r
\r
+ if (t.isMenuVisible)\r
+ return t.hideMenu();\r
+\r
p1 = DOM.getPos(t.settings.menu_container);\r
p2 = DOM.getPos(e);\r
\r
\r
Event.add(DOM.doc, 'mousedown', t.hideMenu, t);\r
t.setState('Selected', 1);\r
+\r
+ t.isMenuVisible = 1;\r
},\r
\r
renderMenu : function() {\r
hideMenu : function(e) {\r
var t = this;\r
\r
+ // Prevent double toogles by canceling the mouse click event to the button\r
+ if (e && e.type == "mousedown" && DOM.getParent(e.target, function(e) {return e.id === t.id || e.id === t.id + '_open';}))\r
+ return;\r
+\r
if (!e || !DOM.getParent(e.target, function(n) {return DOM.hasClass(n, 'mceMenu');})) {\r
t.setState('Selected', 0);\r
Event.remove(DOM.doc, 'mousedown', t.hideMenu, t);\r
if (t.menu)\r
t.menu.hideMenu();\r
}\r
+\r
+ t.isMenuVisible = 0;\r
},\r
\r
postRender : function() {\r
default_color : '#888888'\r
}, t.settings);\r
\r
+ t.onShowMenu = new tinymce.util.Dispatcher(t);\r
+ t.onHideMenu = new tinymce.util.Dispatcher(t);\r
+\r
t.value = s.default_color;\r
},\r
\r
t.isMenuRendered = true;\r
}\r
\r
+ if (t.isMenuVisible)\r
+ return t.hideMenu();\r
+\r
e = DOM.get(t.id);\r
DOM.show(t.id + '_menu');\r
DOM.addClass(e, 'mceSplitButtonSelected');\r
\r
DOM.select('a', t.id + '_menu')[0].focus(); // Select first link\r
}\r
+\r
+ t.onShowMenu.dispatch(t);\r
+\r
+ t.isMenuVisible = 1;\r
},\r
\r
hideMenu : function(e) {\r
var t = this;\r
\r
+ // Prevent double toogles by canceling the mouse click event to the button\r
+ if (e && e.type == "mousedown" && DOM.getParent(e.target, function(e) {return e.id === t.id + '_open';}))\r
+ return;\r
+\r
if (!e || !DOM.getParent(e.target, function(n) {return DOM.hasClass(n, 'mceSplitButtonMenu');})) {\r
DOM.removeClass(t.id, 'mceSplitButtonSelected');\r
Event.remove(DOM.doc, 'mousedown', t.hideMenu, t);\r
Event.remove(t.id + '_menu', 'keydown', t._keyHandler);\r
DOM.hide(t.id + '_menu');\r
}\r
+\r
+ t.onHideMenu.dispatch(t);\r
+\r
+ t.isMenuVisible = 0;\r
},\r
\r
renderMenu : function() {\r
\r
if (e.nodeName == 'A' && (c = e.getAttribute('mce_color')))\r
t.setColor(c);\r
+\r
+ return Event.cancel(e); // Prevent IE auto save warning\r
});\r
\r
return w;\r
},\r
\r
init : function(s) {\r
- var t = this, pl, sl = tinymce.ScriptLoader, c;\r
+ var t = this, pl, sl = tinymce.ScriptLoader, c, e;\r
\r
function execCallback(se, n, s) {\r
var f = se[n];\r
case "textareas":\r
case "specific_textareas":\r
function hasClass(n, c) {\r
- return new RegExp('\\b' + c + '\\b', 'g').test(n.className);\r
+ return c.constructor === RegExp ? c.test(n.className) : DOM.hasClass(n, c);\r
};\r
\r
each(DOM.select('textarea'), function(v) {\r
return;\r
\r
if (!s.editor_selector || hasClass(v, s.editor_selector)) {\r
- v.id = v.id || v.name;\r
+ // Can we use the name\r
+ e = DOM.get(v.name);\r
+ if (!v.id && !e)\r
+ v.id = v.name;\r
\r
// Generate unique name if missing or already exists\r
if (!v.id || t.get(v.id))\r
\r
case "mceAddEditor":\r
case "mceAddControl":\r
- new tinymce.Editor(v, t.settings).render();\r
+ if (!t.get(v))\r
+ new tinymce.Editor(v, t.settings).render();\r
+\r
return true;\r
\r
case "mceAddFrameControl":\r
apply_source_formatting : 1,\r
directionality : 'ltr',\r
forced_root_block : 'p',\r
- valid_elements : '@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote,-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value|_value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',\r
+ valid_elements : '@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',\r
hidden_input : 1,\r
padd_empty_editor : 1,\r
render_ui : 1,\r
\r
if (s.encoding == 'xml') {\r
t.onGetContent.add(function(ed, o) {\r
- if (o.get)\r
+ if (o.save)\r
o.content = DOM.encode(o.content);\r
});\r
}\r
});\r
}\r
\r
- if (s.add_unload_trigger) {\r
+ if (s.add_unload_trigger && !s.ask) {\r
t._beforeUnload = tinyMCE.onBeforeUnload.add(function() {\r
- if (t.initialized && !t.destroyed)\r
+ if (t.initialized && !t.destroyed && !t.isHidden())\r
t.save({format : 'raw', no_events : true});\r
});\r
}\r
sl.loadQueue(function() {\r
if (s.ask) {\r
function ask() {\r
- t.windowManager.confirm(t.getLang('edit_confirm'), function(s) {\r
- if (s)\r
- t.init();\r
- else\r
- Event.remove(t.id, 'focus', ask);\r
- });\r
+ // Yield for awhile to avoid focus bug on FF 3 when cancel is pressed\r
+ window.setTimeout(function() {\r
+ Event.remove(t.id, 'focus', ask);\r
+\r
+ t.windowManager.confirm(t.getLang('edit_confirm'), function(s) {\r
+ if (s)\r
+ t.init();\r
+ });\r
+ }, 0);\r
};\r
\r
Event.add(t.id, 'focus', ask);\r
\r
// Pass through\r
t.undoManager.onAdd.add(function(um, l) {\r
- return t.onChange.dispatch(t, l, um);\r
+ if (!l.initial)\r
+ return t.onChange.dispatch(t, l, um);\r
});\r
\r
t.undoManager.onUndo.add(function(um, l) {\r
\r
// Measure box\r
if (s.render_ui) {\r
- w = s.width || e.style.width || e.clientWidth;\r
- h = s.height || e.style.height || e.clientHeight;\r
+ w = s.width || e.style.width || e.offsetWidth;\r
+ h = s.height || e.style.height || e.offsetHeight;\r
t.orgDisplay = e.style.display;\r
re = /^[0-9\.]+(|px)$/i;\r
\r
if (h < 100)\r
h = 100;\r
\r
- t.iframeHTML = s.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="' + t.documentBaseURI.getURI() + '"></base>';\r
+ t.iframeHTML = s.doctype + '<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="' + t.documentBaseURI.getURI() + '" />';\r
t.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';\r
\r
if (tinymce.relaxedDomain)\r
// Remove empty contents\r
if (s.padd_empty_editor) {\r
t.onPostProcess.add(function(ed, o) {\r
- o.content = o.content.replace(/^<p>( |#160;|\s|\u00a0)<\/p>$/, '');\r
+ o.content = o.content.replace(/^(<p>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/, '');\r
});\r
}\r
\r
\r
\r
focus : function(sf) {\r
- var oed, t = this;\r
+ var oed, t = this, ce = t.settings.content_editable;\r
\r
if (!sf) {\r
- t.getWin().focus();\r
+ // Is not content editable or the selection is outside the area in IE\r
+ // the IE statement is needed to avoid bluring if element selections inside layers since\r
+ // the layer is like it's own document in IE\r
+ if (!ce && (!isIE || t.selection.getNode().ownerDocument != t.getDoc()))\r
+ t.getWin().focus();\r
\r
}\r
\r
},\r
\r
execCommand : function(cmd, ui, val, a) {\r
- var t = this, s = 0, o;\r
+ var t = this, s = 0, o, st;\r
\r
if (!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd) && (!a || !a.skip_focus))\r
t.focus();\r
if (o.terminate)\r
return false;\r
\r
- // Comamnd callback\r
+ // Command callback\r
if (t.execCallback('execcommand_callback', t.id, t.selection.getNode(), cmd, ui, val)) {\r
t.onExecCommand.dispatch(t, cmd, ui, val, a);\r
return true;\r
\r
// Registred commands\r
if (o = t.execCommands[cmd]) {\r
- s = o.func.call(o.scope, ui, val);\r
- t.onExecCommand.dispatch(t, cmd, ui, val, a);\r
- return s;\r
+ st = o.func.call(o.scope, ui, val);\r
+\r
+ // Fall through on true\r
+ if (st !== true) {\r
+ t.onExecCommand.dispatch(t, cmd, ui, val, a);\r
+ return st;\r
+ }\r
}\r
\r
// Plugin commands\r
},\r
\r
queryCommandState : function(c) {\r
- var t = this, o;\r
+ var t = this, o, s;\r
\r
// Is hidden then return undefined\r
if (t._isHidden())\r
return;\r
\r
// Registred commands\r
- if (o = t.queryStateCommands[c])\r
- return o.func.call(o.scope);\r
+ if (o = t.queryStateCommands[c]) {\r
+ s = o.func.call(o.scope);\r
+\r
+ // Fall though on true\r
+ if (s !== true)\r
+ return s;\r
+ }\r
\r
// Registred commands\r
o = t.editorCommands.queryCommandState(c);\r
},\r
\r
queryCommandValue : function(c) {\r
- var t = this, o;\r
+ var t = this, o, s;\r
\r
// Is hidden then return undefined\r
if (t._isHidden())\r
return;\r
\r
// Registred commands\r
- if (o = t.queryValueCommands[c])\r
- return o.func.call(o.scope);\r
+ if (o = t.queryValueCommands[c]) {\r
+ s = o.func.call(o.scope);\r
+\r
+ // Fall though on true\r
+ if (s !== true)\r
+ return s;\r
+ }\r
\r
// Registred commands\r
o = t.editorCommands.queryCommandValue(c);\r
o = o || {};\r
o.save = true;\r
\r
+ // Add undo level will trigger onchange event\r
+ if (!o.no_events) {\r
+ t.undoManager.typing = 0;\r
+ t.undoManager.add();\r
+ }\r
+\r
o.element = e;\r
h = o.content = t.getContent(o);\r
\r
// Padd empty content in Gecko and Safari. Commands will otherwise fail on the content\r
// It will also be impossible to place the caret in the editor unless there is a BR element present\r
if (!tinymce.isIE && (h.length === 0 || /^\s+$/.test(h))) {\r
- o.content = t.dom.setHTML(t.getBody(), '<br mce_bogus="1" />', 1);\r
+ o.content = t.dom.setHTML(t.getBody(), '<br mce_bogus="1" />');\r
o.format = 'raw';\r
}\r
\r
h = t.getBody().innerHTML;\r
\r
h = h.replace(/^\s*|\s*$/g, '');\r
- o = {content : h};\r
- t.onGetContent.dispatch(t, o);\r
+ o.content = h;\r
+\r
+ if (!o.no_events)\r
+ t.onGetContent.dispatch(t, o);\r
\r
return o.content;\r
},\r
t.dom.destroy();\r
\r
// Remove all events\r
- Event.clear(t.getWin());\r
- Event.clear(t.getDoc());\r
+\r
+ // Don't clear the window or document if content editable\r
+ // is enabled since other instances might still be present\r
+ if (!t.settings.content_editable) {\r
+ Event.clear(t.getWin());\r
+ Event.clear(t.getDoc());\r
+ }\r
+\r
Event.clear(t.getBody());\r
Event.clear(t.formElement);\r
}\r
case 'contextmenu':\r
if (tinymce.isOpera) {\r
// Fake contextmenu on Opera\r
- Event.add(t.getDoc(), 'mousedown', function(e) {\r
+ Event.add(t.getBody(), 'mousedown', function(e) {\r
if (e.ctrlKey) {\r
e.fakeType = 'contextmenu';\r
eventHandler(e);\r
}\r
});\r
} else\r
- Event.add(t.getDoc(), k, eventHandler);\r
+ Event.add(t.getBody(), k, eventHandler);\r
break;\r
\r
case 'paste':\r
} catch (ex) {\r
// Use old method\r
if (!t._isHidden())\r
- d.execCommand("useCSS", 0, true);\r
+ try {d.execCommand("useCSS", 0, true);} catch (ex) {}\r
}\r
\r
if (!s.table_inline_editing)\r
var re = t.resizeInfo, cb;\r
\r
e = e.target;\r
- e.removeAttribute('mce_style'); // Remove this one since it might change\r
\r
// Don't do this action for non image elements\r
if (e.nodeName !== 'IMG')\r
\r
case 'U':\r
case 'STRIKE':\r
- sp = dom.create('span', {style : dom.getAttrib(n, 'style')});\r
- sp.style.textDecoration = n.nodeName == 'U' ? 'underline' : 'line-through';\r
- dom.setAttrib(sp, 'mce_style', '');\r
- dom.replace(sp, n, 1);\r
+ //sp = dom.create('span', {style : dom.getAttrib(n, 'style')});\r
+ n.style.textDecoration = n.nodeName == 'U' ? 'underline' : 'line-through';\r
+ dom.setAttrib(n, 'mce_style', '');\r
+ dom.setAttrib(n, 'mce_name', 'span');\r
break;\r
}\r
});\r
} else if (o.set) {\r
- each(t.dom.select('table,span', o.node), function(n) {\r
+ each(t.dom.select('table,span', o.node).reverse(), function(n) {\r
if (n.nodeName == 'TABLE') {\r
if (v = dom.getStyle(n, 'height'))\r
dom.setAttrib(n, 'height', v.replace(/[^0-9%]+/g, ''));\r
t.onPreProcess.add(convert);\r
\r
if (!s.cleanup_on_startup) {\r
- t.onInit.add(function() {\r
- convert(t, {node : t.getBody(), set : 1});\r
+ t.onSetContent.add(function(ed, o) {\r
+ if (o.initial)\r
+ convert(t, {node : t.getBody(), set : 1});\r
});\r
}\r
},\r
\r
if (i != -1) {\r
dom.setAttrib(f, 'size', '' + (i + 1 || 1));\r
- f.style.fontSize = '';\r
+ //f.style.fontSize = '';\r
}\r
} else if (cl) {\r
i = inArray(cl, dom.getAttrib(n, 'class'));\r
},\r
\r
mceInsertLink : function(u, v) {\r
- var ed = this.editor, e = ed.dom.getParent(ed.selection.getNode(), 'A');\r
+ var ed = this.editor, s = ed.selection, e = ed.dom.getParent(s.getNode(), 'A');\r
\r
if (tinymce.is(v, 'string'))\r
v = {href : v};\r
ed.getDoc().execCommand('FontName', false, v);\r
},\r
\r
+ FontSize : function(u, v) {\r
+ var ed = this.editor, s = ed.settings, fz = tinymce.explode(s.font_size_style_values), fzc = tinymce.explode(s.font_size_classes), h, bm;\r
+\r
+ // Remove style sizes\r
+ each(ed.dom.select('font'), function(e) {\r
+ e.style.fontSize = '';\r
+ });\r
+\r
+ // Let the browser add new size it will remove unneded ones in some browsers\r
+ ed.getDoc().execCommand('FontSize', false, v);\r
+\r
+ // Add style values\r
+ if (s.inline_styles) {\r
+ each(ed.dom.select('font'), function(e) {\r
+ // Try remove redundant font elements\r
+ if (e.parentNode.nodeName == 'FONT' && e.size == e.parentNode.size) {\r
+ if (!bm)\r
+ bm = ed.selection.getBookmark();\r
+\r
+ ed.dom.remove(e, 1);\r
+ return;\r
+ }\r
+\r
+ // Setup font size based on font size value\r
+ if (v = e.size) {\r
+ if (fzc && fzc.length > 0)\r
+ ed.dom.setAttrib(e, 'class', fzc[parseInt(v) - 1]);\r
+ else\r
+ ed.dom.setStyle(e, 'fontSize', fz[parseInt(v) - 1]);\r
+ }\r
+ });\r
+ }\r
+\r
+ ed.selection.moveToBookmark(bm);\r
+ },\r
+\r
queryCommandValue : function(c) {\r
var f = this['queryValue' + c];\r
\r
},\r
\r
FormatBlock : function(ui, val) {\r
- var t = this, ed = t.editor;\r
+ var t = this, ed = t.editor, s = ed.selection, dom = ed.dom, bl, nb, b;\r
\r
- val = ed.settings.forced_root_block ? (val || '<p>') : val;\r
+ function isBlock(n) {\r
+ return /^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(n.nodeName);\r
+ };\r
\r
- if (/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(ed.selection.getNode().nodeName))\r
- t.mceRemoveNode();\r
+ bl = dom.getParent(s.getNode(), function(n) {\r
+ return isBlock(n);\r
+ });\r
+\r
+ // IE has an issue where it removes the parent div if you change format on the paragrah in <div><p>Content</p></div>\r
+ // FF and Opera doesn't change parent DIV elements if you switch format\r
+ if (bl) {\r
+ if ((isIE && isBlock(bl.parentNode)) || bl.nodeName == 'DIV') {\r
+ // Rename block element\r
+ nb = ed.dom.create(val);\r
+\r
+ each(dom.getAttribs(bl), function(v) {\r
+ dom.setAttrib(nb, v.nodeName, dom.getAttrib(bl, v.nodeName));\r
+ });\r
+\r
+ b = s.getBookmark();\r
+ dom.replace(nb, bl, 1);\r
+ s.moveToBookmark(b);\r
+ ed.nodeChanged();\r
+ return;\r
+ }\r
+ }\r
+\r
+ val = ed.settings.forced_root_block ? (val || '<p>') : val;\r
\r
if (val.indexOf('<') == -1)\r
val = '<' + val + '>';\r
},\r
\r
queryStateUnderline : function() {\r
- var ed = this.editor, n;\r
+ var ed = this.editor, n = ed.selection.getNode();\r
\r
if (n && n.nodeName == 'A')\r
return false;\r
\r
// Add undo level if needed\r
l.content = l.content.replace(/^\s*|\s*$/g, '');\r
- la = t.data[t.index > 0 ? t.index - 1 : 0];\r
+ la = t.data[t.index > 0 && (t.index == 0 || t.index == t.data.length) ? t.index - 1 : t.index];\r
if (!l.initial && la && l.content == la.content)\r
return null;\r
\r
if (s.custom_undo_redo_restore_selection && !l.initial)\r
l.bookmark = b = l.bookmark || ed.selection.getBookmark();\r
\r
- if (t.index < t.data.length && t.data[t.index].initial)\r
+ if (t.index < t.data.length)\r
t.index++;\r
\r
+ // Only initial marked undo levels should be allowed as first item\r
+ // This to workaround a bug with Firefox and the blur event\r
+ if (t.data.length === 0 && !l.initial)\r
+ return null;\r
+\r
// Add level\r
t.data.length = t.index + 1;\r
t.data[t.index++] = l;\r
// Store selection\r
if (si == -2 && r) {\r
if (!isIE) {\r
- so = r.startOffset;\r
- eo = r.endOffset;\r
- si = t.find(b, 0, r.startContainer);\r
- ei = t.find(b, 0, r.endContainer);\r
+ // If element is inside body, might not be the case in contentEdiable mode\r
+ if (ed.dom.getParent(r.startContainer, function(e) {return e === b;})) {\r
+ so = r.startOffset;\r
+ eo = r.endOffset;\r
+ si = t.find(b, 0, r.startContainer);\r
+ ei = t.find(b, 0, r.endContainer);\r
+ }\r
} else {\r
tr = d.body.createTextRange();\r
tr.moveToElementText(b);\r
// Restore selection\r
if (si != -2) {\r
if (!isIE) {\r
- bl = d.getElementsByTagName(ed.settings.element)[0];\r
+ bl = b.getElementsByTagName(ed.settings.element)[0];\r
r = d.createRange();\r
\r
// Select last location or generated block\r
},\r
\r
insertPara : function(e) {\r
- var t = this, ed = t.editor, d = ed.getDoc(), se = ed.settings, s = ed.selection.getSel(), r = s.getRangeAt(0), b = d.body;\r
- var rb, ra, dir, sn, so, en, eo, sb, eb, bn, bef, aft, sc, ec, n, vp = ed.dom.getViewPort(ed.getWin()), y, ch;\r
+ var t = this, ed = t.editor, dom = ed.dom, d = ed.getDoc(), se = ed.settings, s = ed.selection.getSel(), r = s.getRangeAt(0), b = d.body;\r
+ var rb, ra, dir, sn, so, en, eo, sb, eb, bn, bef, aft, sc, ec, n, vp = dom.getViewPort(ed.getWin()), y, ch;\r
\r
function isEmpty(n) {\r
n = n.innerHTML;\r
en = dir ? s.focusNode : s.anchorNode;\r
eo = dir ? s.focusOffset : s.anchorOffset;\r
\r
+ // If selection is in empty table cell\r
+ if (sn === en && /^(TD|TH)$/.test(sn.nodeName)) {\r
+ dom.remove(sn.firstChild); // Remove BR\r
+\r
+ // Create two new block elements\r
+ ed.dom.add(sn, se.element, null, '<br />');\r
+ aft = ed.dom.add(sn, se.element, null, '<br />');\r
+\r
+ // Move caret into the last one\r
+ r = d.createRange();\r
+ r.selectNodeContents(aft);\r
+ r.collapse(1);\r
+ ed.selection.setRng(r);\r
+\r
+ return false;\r
+ }\r
+\r
// If the caret is in an invalid location in FF we need to move it into the first block\r
if (sn == b && en == b && b.firstChild && ed.dom.isBlock(b.firstChild)) {\r
sn = en = sn.firstChild;\r
if (isEmpty(aft))\r
aft.innerHTML = isOpera ? ' ' : '<br />'; // Extra space for Opera so that the caret can move there\r
\r
- // Opera needs this one backwards\r
- if (isOpera) {\r
+ // Opera needs this one backwards for older versions\r
+ if (isOpera && parseFloat(opera.version()) < 9.5) {\r
r.insertNode(bef);\r
r.insertNode(aft);\r
} else {\r
aft.normalize();\r
bef.normalize();\r
\r
+ function first(n) {\r
+ return d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false).nextNode() || n;\r
+ };\r
+\r
// Move cursor and scroll into view\r
r = d.createRange();\r
- r.selectNodeContents(aft);\r
+ r.selectNodeContents(isGecko ? first(aft) : aft);\r
r.collapse(1);\r
s.removeAllRanges();\r
s.addRange(r);\r
// Fix for bug #1897785, #1898007\r
if (tinymce.isIE) {\r
c.onShowMenu.add(function() {\r
- var s = ed.selection, n = s.getNode();\r
-\r
- if (n.nodeName == 'IMG')\r
- bm = s.getBookmark();\r
- else\r
- bm = 0;\r
+ bm = ed.selection.getBookmark(1);\r
});\r
\r
c.onHideMenu.add(function() {\r
return null;\r
\r
s.title = ed.translate(s.title);\r
+ s.label = ed.translate(s.label);\r
s.scope = s.scope || ed;\r
\r
if (!s.onclick && !s.menu_button) {\r
},\r
\r
createColorSplitButton : function(id, s, cc) {\r
- var t = this, ed = t.editor, cmd, c, cls;\r
+ var t = this, ed = t.editor, cmd, c, cls, bm;\r
\r
if (t.get(id))\r
return null;\r
c.destroy();\r
});\r
\r
+ // Fix for bug #1897785, #1898007\r
+ if (tinymce.isIE) {\r
+ c.onShowMenu.add(function() {\r
+ bm = ed.selection.getBookmark(1);\r
+ });\r
+\r
+ c.onHideMenu.add(function() {\r
+ if (bm) {\r
+ ed.selection.moveToBookmark(bm);\r
+ bm = 0;\r
+ }\r
+ });\r
+ }\r
+\r
return t.add(c);\r
},\r
\r
s.dialogWidth = s.width + 'px';\r
s.dialogHeight = s.height + 'px';\r
s.scroll = s.scrollbars || false;\r
- } else\r
- s.modal = s.alwaysRaised = s.dialog = s.centerscreen = s.dependent = true;\r
+ }\r
}\r
\r
// Build features string\r
if (tinymce.relaxedDomain)\r
u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain;\r
\r
+ u = tinymce._addVer(u);\r
+\r
try {\r
if (isIE && mo) {\r
w = 1;\r
- window.showModalDialog(s.url || s.file, window, f);\r
+ window.showModalDialog(u, window, f);\r
} else\r
w = window.open(u, s.name, f);\r
} catch (ex) {\r
/**\r
- * $Id: editable_selects.js 520 2008-01-07 16:30:32Z spocke $\r
+ * $Id: editable_selects.js 867 2008-06-09 20:33:40Z spocke $\r
*\r
* Makes select boxes editable.\r
*\r
se.style.display = 'none';\r
ne.focus();\r
ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;\r
+ ne.onkeydown = TinyMCE_EditableSelects.onKeyDown;\r
TinyMCE_EditableSelects.editSelectElm = se;\r
}\r
},\r
se.parentNode.removeChild(se.previousSibling);\r
TinyMCE_EditableSelects.editSelectElm = null;\r
}\r
+ },\r
+\r
+ onKeyDown : function(e) {\r
+ e = e || window.event;\r
+\r
+ if (e.keyCode == 13)\r
+ TinyMCE_EditableSelects.onBlurEditableSelectInput();\r
}\r
};\r
<?php
/*************************************************************************
-* *
-* class.html2text.inc *
-* *
-*************************************************************************
-* *
-* Converts HTML to formatted plain text *
-* *
-* Copyright (c) 2005 Jon Abernathy <jon@chuggnutt.com> *
-* All rights reserved. *
-* *
-* This script is free software; you can redistribute it and/or modify *
-* it under the terms of the GNU General Public License as published by *
-* the Free Software Foundation; either version 2 of the License, or *
-* (at your option) any later version. *
-* *
-* The GNU General Public License can be found at *
-* http://www.gnu.org/copyleft/gpl.html. *
-* *
-* This script is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU General Public License for more details. *
-* *
-* Author(s): Jon Abernathy <jon@chuggnutt.com> *
-* *
-* Last modified: 04/06/05 *
-* Modified: 2004/05/19 (tbr) *
-* *
-*************************************************************************/
+ * *
+ * class.html2text.inc *
+ * *
+ *************************************************************************
+ * *
+ * Converts HTML to formatted plain text *
+ * *
+ * Copyright (c) 2005-2007 Jon Abernathy <jon@chuggnutt.com> *
+ * All rights reserved. *
+ * *
+ * This script is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * The GNU General Public License can be found at *
+ * http://www.gnu.org/copyleft/gpl.html. *
+ * *
+ * This script is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * Author(s): Jon Abernathy <jon@chuggnutt.com> *
+ * *
+ * Last modified: 08/08/07 *
+ * *
+ *************************************************************************/
/**
-* Takes HTML and converts it to formatted, plain text.
-*
-* Thanks to Alexander Krug (http://www.krugar.de/) to pointing out and
-* correcting an error in the regexp search array. Fixed 7/30/03.
-*
-* Updated set_html() function's file reading mechanism, 9/25/03.
-*
-* Thanks to Joss Sanglier (http://www.dancingbear.co.uk/) for adding
-* several more HTML entity codes to the $search and $replace arrays.
-* Updated 11/7/03.
-*
-* Thanks to Darius Kasperavicius (http://www.dar.dar.lt/) for
-* suggesting the addition of $allowed_tags and its supporting function
-* (which I slightly modified). Updated 3/12/04.
-*
-* Thanks to Justin Dearing for pointing out that a replacement for the
-* <TH> tag was missing, and suggesting an appropriate fix.
-* Updated 8/25/04.
-*
-* Thanks to Mathieu Collas (http://www.myefarm.com/) for finding a
-* display/formatting bug in the _build_link_list() function: email
-* readers would show the left bracket and number ("[1") as part of the
-* rendered email address.
-* Updated 12/16/04.
-*
-* Thanks to Wojciech Bajon (http://histeria.pl/) for submitting code
-* to handle relative links, which I hadn't considered. I modified his
-* code a bit to handle normal HTTP links and MAILTO links. Also for
-* suggesting three additional HTML entity codes to search for.
-* Updated 03/02/05.
-*
-* Thanks to Jacob Chandler for pointing out another link condition
-* for the _build_link_list() function: "https".
-* Updated 04/06/05.
-*
-* @author Jon Abernathy <jon@chuggnutt.com>
-* @version 0.6.1
-* @since PHP 4.0.2
-*/
+ * Takes HTML and converts it to formatted, plain text.
+ *
+ * Thanks to Alexander Krug (http://www.krugar.de/) to pointing out and
+ * correcting an error in the regexp search array. Fixed 7/30/03.
+ *
+ * Updated set_html() function's file reading mechanism, 9/25/03.
+ *
+ * Thanks to Joss Sanglier (http://www.dancingbear.co.uk/) for adding
+ * several more HTML entity codes to the $search and $replace arrays.
+ * Updated 11/7/03.
+ *
+ * Thanks to Darius Kasperavicius (http://www.dar.dar.lt/) for
+ * suggesting the addition of $allowed_tags and its supporting function
+ * (which I slightly modified). Updated 3/12/04.
+ *
+ * Thanks to Justin Dearing for pointing out that a replacement for the
+ * <TH> tag was missing, and suggesting an appropriate fix.
+ * Updated 8/25/04.
+ *
+ * Thanks to Mathieu Collas (http://www.myefarm.com/) for finding a
+ * display/formatting bug in the _build_link_list() function: email
+ * readers would show the left bracket and number ("[1") as part of the
+ * rendered email address.
+ * Updated 12/16/04.
+ *
+ * Thanks to Wojciech Bajon (http://histeria.pl/) for submitting code
+ * to handle relative links, which I hadn't considered. I modified his
+ * code a bit to handle normal HTTP links and MAILTO links. Also for
+ * suggesting three additional HTML entity codes to search for.
+ * Updated 03/02/05.
+ *
+ * Thanks to Jacob Chandler for pointing out another link condition
+ * for the _build_link_list() function: "https".
+ * Updated 04/06/05.
+ *
+ * Thanks to Marc Bertrand (http://www.dresdensky.com/) for
+ * suggesting a revision to the word wrapping functionality; if you
+ * specify a $width of 0 or less, word wrapping will be ignored.
+ * Updated 11/02/06.
+ *
+ * *** Big housecleaning updates below:
+ *
+ * Thanks to Colin Brown (http://www.sparkdriver.co.uk/) for
+ * suggesting the fix to handle </li> and blank lines (whitespace).
+ * Christian Basedau (http://www.movetheweb.de/) also suggested the
+ * blank lines fix.
+ *
+ * Special thanks to Marcus Bointon (http://www.synchromedia.co.uk/),
+ * Christian Basedau, Norbert Laposa (http://ln5.co.uk/),
+ * Bas van de Weijer, and Marijn van Butselaar
+ * for pointing out my glaring error in the <th> handling. Marcus also
+ * supplied a host of fixes.
+ *
+ * Thanks to Jeffrey Silverman (http://www.newtnotes.com/) for pointing
+ * out that extra spaces should be compressed--a problem addressed with
+ * Marcus Bointon's fixes but that I had not yet incorporated.
+ *
+ * Thanks to Daniel Schledermann (http://www.typoconsult.dk/) for
+ * suggesting a valuable fix with <a> tag handling.
+ *
+ * Thanks to Wojciech Bajon (again!) for suggesting fixes and additions,
+ * including the <a> tag handling that Daniel Schledermann pointed
+ * out but that I had not yet incorporated. I haven't (yet)
+ * incorporated all of Wojciech's changes, though I may at some
+ * future time.
+ *
+ * *** End of the housecleaning updates. Updated 08/08/07.
+ *
+ * @author Jon Abernathy <jon@chuggnutt.com>
+ * @version 1.0.0
+ * @since PHP 4.0.2
+ */
class html2text
{
/**
* Maximum width of the formatted text, in columns.
*
+ * Set this value to 0 (or less) to ignore word wrapping
+ * and not constrain text to a fixed-width column.
+ *
* @var integer $width
* @access public
*/
var $search = array(
"/\r/", // Non-legal carriage return
"/[\n\t]+/", // Newlines and tabs
+ '/[ ]{2,}/', // Runs of spaces, pre-handling
'/<script[^>]*>.*?<\/script>/i', // <script>s -- which strip_tags supposedly has problems with
+ '/<style[^>]*>.*?<\/style>/i', // <style>s -- which strip_tags supposedly has problems with
//'/<!-- .* -->/', // Comments -- which strip_tags might have problem a with
- '/<a [^>]*href=("|\')([^"\']+)\1[^>]*>(.+?)<\/a>/ie', // <a href="">
- '/<h[123][^>]*>(.+?)<\/h[123]>/ie', // H1 - H3
- '/<h[456][^>]*>(.+?)<\/h[456]>/ie', // H4 - H6
'/<p[^>]*>/i', // <P>
'/<br[^>]*>/i', // <br>
- '/<b[^>]*>(.+?)<\/b>/ie', // <b>
- '/<i[^>]*>(.+?)<\/i>/i', // <i>
+ '/<i[^>]*>(.*?)<\/i>/i', // <i>
+ '/<em[^>]*>(.*?)<\/em>/i', // <em>
'/(<ul[^>]*>|<\/ul>)/i', // <ul> and </ul>
'/(<ol[^>]*>|<\/ol>)/i', // <ol> and </ol>
+ '/<li[^>]*>(.*?)<\/li>/i', // <li> and </li>
'/<li[^>]*>/i', // <li>
'/<hr[^>]*>/i', // <hr>
'/(<table[^>]*>|<\/table>)/i', // <table> and </table>
'/(<tr[^>]*>|<\/tr>)/i', // <tr> and </tr>
- '/<td[^>]*>(.+?)<\/td>/i', // <td> and </td>
- '/<th[^>]*>(.+?)<\/th>/ie', // <th> and </th>
- '/ /i',
- '/"/i',
- '/>/i',
- '/</i',
- '/&(amp|#38);/i',
- '/©/i',
- '/™/i',
- '/“/',
- '/”/',
- '/–/',
- '/&#(8217|39);/',
- '/©/',
- '/™/',
- '/—/',
- '/“/',
- '/”/',
- '/•/',
- '/®/i',
- '/•/i',
- '/&[&;]+;/i'
+ '/<td[^>]*>(.*?)<\/td>/i', // <td> and </td>
+ '/&(nbsp|#160);/i', // Non-breaking space
+ '/&(quot|rdquo|ldquo|#8220|#8221|#147|#148);/i',
+ // Double quotes
+ '/&(apos|rsquo|lsquo|#8216|#8217);/i', // Single quotes
+ '/>/i', // Greater-than
+ '/</i', // Less-than
+ '/&(amp|#38);/i', // Ampersand
+ '/&(copy|#169);/i', // Copyright
+ '/&(trade|#8482|#153);/i', // Trademark
+ '/&(reg|#174);/i', // Registered
+ '/&(mdash|#151|#8212);/i', // mdash
+ '/&(ndash|minus|#8211|#8722);/i', // ndash
+ '/&(bull|#149|#8226);/i', // Bullet
+ '/&(pound|#163);/i', // Pound sign
+ '/&(euro|#8364);/i', // Euro sign
+ '/&[^&;]+;/i', // Unknown/unhandled entities
+ '/[ ]{2,}/' // Runs of spaces, post-handling
);
/**
var $replace = array(
'', // Non-legal carriage return
' ', // Newlines and tabs
+ ' ', // Runs of spaces, pre-handling
'', // <script>s -- which strip_tags supposedly has problems with
- //'', // Comments -- which strip_tags might have problem a with
- '$this->_build_link_list("\\2", "\\3")', // <a href="">
- "strtoupper(\"\n\n\\1\n\n\")", // H1 - H3
- "ucwords(\"\n\n\\1\n\")", // H4 - H6
- "\n\n", // <P>
+ '', // <style>s -- which strip_tags supposedly has problems with
+ //'', // Comments -- which strip_tags might have problem a with
+ "\n\n", // <P>
"\n", // <br>
- 'strtoupper("\\1")', // <b>
'_\\1_', // <i>
+ '_\\1_', // <em>
"\n\n", // <ul> and </ul>
"\n\n", // <ol> and </ol>
- "\t*", // <li>
- "\n-------------------------\n", // <hr>
- "\n\n", // <table> and </table>
+ "\t* \\1\n", // <li> and </li>
+ "\n\t* ", // <li>
+ "\n-------------------------\n", // <hr>
+ "\n\n", // <table> and </table>
"\n", // <tr> and </tr>
"\t\t\\1\n", // <td> and </td>
- "strtoupper(\"\t\t\\1\n\")", // <th> and </th>
- ' ',
- '"',
+ ' ', // Non-breaking space
+ '"', // Double quotes
+ "'", // Single quotes
'>',
'<',
'&',
'(c)',
'(tm)',
- '"',
- '"',
- '-',
- "'",
- '(c)',
- '(tm)',
- '--',
- '"',
- '"',
- '*',
'(R)',
+ '--',
+ '-',
'*',
- ''
+ '£',
+ 'EUR', // Euro sign. \80 ?
+ '', // Unknown/unhandled entities
+ ' ' // Runs of spaces, post-handling
+ );
+
+ /**
+ * List of preg* regular expression patterns to search for
+ * and replace using callback function.
+ *
+ * @var array $callback_search
+ * @access public
+ */
+ var $callback_search = array(
+ '/<(h)[123456][^>]*>(.*?)<\/h[123456]>/i', // H1 - H3
+ '/<(b)[^>]*>(.*?)<\/b>/i', // <b>
+ '/<(strong)[^>]*>(.*?)<\/strong>/i', // <strong>
+ '/<(a) [^>]*href=("|\')([^"\']+)\2[^>]*>(.*?)<\/a>/i',
+ // <a href="">
+ '/<(th)[^>]*>(.*?)<\/th>/i', // <th> and </th>
+ );
+
+ /**
+ * List of preg* regular expression patterns to search for in PRE body,
+ * used in conjunction with $pre_replace.
+ *
+ * @var array $pre_search
+ * @access public
+ * @see $pre_replace
+ */
+ var $pre_search = array(
+ "/\n/",
+ "/\t/",
+ '/ /',
+ '/<pre[^>]*>/',
+ '/<\/pre>/'
+ );
+
+ /**
+ * List of pattern replacements corresponding to patterns searched for PRE body.
+ *
+ * @var array $pre_replace
+ * @access public
+ * @see $pre_search
+ */
+ var $pre_replace = array(
+ '<br>',
+ ' ',
+ ' ',
+ '',
+ ''
);
/**
/**
* Indicates whether content in the $html variable has been converted yet.
*
- * @var boolean $converted
+ * @var boolean $_converted
* @access private
* @see $html, $text
*/
/**
* Contains URL addresses from links to be rendered in plain text.
*
- * @var string $link_list
+ * @var string $_link_list
* @access private
* @see _build_link_list()
*/
- var $_link_list = array();
+ var $_link_list = '';
/**
- * Boolean flag, true if a table of link URLs should be listed after the text.
- *
- * @var boolean $_do_links
- * @access private
- * @see html2text()
+ * Number of valid links detected in the text, used for plain text
+ * display (rendered similar to footnotes).
+ *
+ * @var integer $_link_count
+ * @access private
+ * @see _build_link_list()
+ */
+ var $_link_count = 0;
+
+ /**
+ * Boolean flag, true if a table of link URLs should be listed after the text.
+ *
+ * @var boolean $_do_links
+ * @access private
+ * @see html2text()
*/
var $_do_links = true;
-
+
/**
* Constructor.
*
*
* @param string $source HTML content
* @param boolean $from_file Indicates $source is a file to pull content from
- * @param boolean $do_link_table indicate whether a table of link URLs is desired
+ * @param boolean $do_links Indicate whether a table of link URLs is desired
+ * @param integer $width Maximum width of the formatted text, 0 for no limit
* @access public
* @return void
*/
- function html2text( $source = '', $from_file = false, $produce_link_table = true )
+ function html2text( $source = '', $from_file = false, $do_links = true, $width = 75 )
{
if ( !empty($source) ) {
$this->set_html($source, $from_file);
}
+
$this->set_base_url();
- $this->_do_links = $produce_link_table;
+ $this->_do_links = $do_links;
+ $this->width = $width;
}
/**
*/
function set_html( $source, $from_file = false )
{
- $this->html = $source;
-
if ( $from_file && file_exists($source) ) {
- $fp = fopen($source, 'r');
- $this->html = fread($fp, filesize($source));
- fclose($fp);
+ $this->html = file_get_contents($source);
}
+ else
+ $this->html = $source;
$this->_converted = false;
}
function set_base_url( $url = '' )
{
if ( empty($url) ) {
- $this->url = 'http://' . $_SERVER['HTTP_HOST'];
+ if ( !empty($_SERVER['HTTP_HOST']) ) {
+ $this->url = 'http://' . $_SERVER['HTTP_HOST'];
+ } else {
+ $this->url = '';
+ }
} else {
// Strip any trailing slashes for consistency (relative
// URLs may already start with a slash like "/file.html")
function _convert()
{
// Variables used for building the link list
- //$link_count = 1;
- //$this->_link_list = '';
+ $this->_link_count = 0;
+ $this->_link_list = '';
$text = trim(stripslashes($this->html));
+ // Convert <PRE>
+ $this->_convert_pre($text);
+
// Run our defined search-and-replace
$text = preg_replace($this->search, $this->replace, $text);
+ $text = preg_replace_callback($this->callback_search, array('html2text', '_preg_callback'), $text);
+
+ // Replace known html entities
+ $text = html_entity_decode($text, ENT_COMPAT, 'UTF-8');
// Strip any other HTML tags
$text = strip_tags($text, $this->allowed_tags);
// Bring down number of empty lines to 2 max
- $text = preg_replace("/\n\s+\n/", "\n", $text);
+ $text = preg_replace("/\n\s+\n/", "\n\n", $text);
$text = preg_replace("/[\n]{3,}/", "\n\n", $text);
// Add link list
- if ( sizeof($this->_link_list) ) {
- $text .= "\n\nLinks:\n------\n";
- foreach ($this->_link_list as $id => $link) {
- $text .= '[' . ($id+1) . '] ' . $link . "\n";
- }
+ if ( !empty($this->_link_list) ) {
+ $text .= "\n\nLinks:\n------\n" . $this->_link_list;
}
// Wrap the text to a readable format
// for PHP versions >= 4.0.2. Default width is 75
- $text = wordwrap($text, $this->width);
+ // If width is 0 or less, don't wrap the text.
+ if ( $this->width > 0 ) {
+ $text = wordwrap($text, $this->width);
+ }
$this->text = $text;
* appeared. Also makes an effort at identifying and handling absolute
* and relative links.
*
- * @param integer $link_count Counter tracking current link number
* @param string $link URL of the link
* @param string $display Part of the text to associate number with
* @access private
* @return string
- */
- function _build_link_list($link, $display)
- {
- if (! $this->_do_links) return $display;
-
- $link_lc = strtolower($link);
-
- if (substr($link_lc, 0, 7) == 'http://' || substr($link_lc, 0, 8) == 'https://' || substr($link_lc, 0, 7) == 'mailto:')
- {
- $url = $link;
- }
- else
- {
- $url = $this->url;
- if ($link{0} != '/') {
- $url .= '/';
+ */
+ function _build_link_list( $link, $display )
+ {
+ if ( !$this->_do_links ) return $display;
+
+ if ( substr($link, 0, 7) == 'http://' || substr($link, 0, 8) == 'https://' ||
+ substr($link, 0, 7) == 'mailto:' ) {
+ $this->_link_count++;
+ $this->_link_list .= "[" . $this->_link_count . "] $link\n";
+ $additional = ' [' . $this->_link_count . ']';
+ } elseif ( substr($link, 0, 11) == 'javascript:' ) {
+ // Don't count the link; ignore it
+ $additional = '';
+ // what about href="#anchor" ?
+ } else {
+ $this->_link_count++;
+ $this->_link_list .= "[" . $this->_link_count . "] " . $this->url;
+ if ( substr($link, 0, 1) != '/' ) {
+ $this->_link_list .= '/';
}
- $url .= $link;
+ $this->_link_list .= "$link\n";
+ $additional = ' [' . $this->_link_count . ']';
}
- $index = array_search($url, $this->_link_list);
- if ($index===FALSE)
- {
- $index = sizeof($this->_link_list);
- $this->_link_list[$index] = $url;
- }
-
- return $display . ' [' . ($index+1) . ']';
- }
+ return $display . $additional;
+ }
+
+ /**
+ * Helper function for PRE body conversion.
+ *
+ * @param string HTML content
+ * @access private
+ */
+ function _convert_pre(&$text)
+ {
+ while(preg_match('/<pre[^>]*>(.*)<\/pre>/ismU', $text, $matches))
+ {
+ $result = preg_replace($this->pre_search, $this->pre_replace, $matches[1]);
+ $text = preg_replace('/<pre[^>]*>.*<\/pre>/ismU', '<div><br>' . $result . '<br></div>', $text, 1);
+ }
+ }
+
+ /**
+ * Callback function for preg_replace_callback use.
+ *
+ * @param array PREG matches
+ * @return string
+ * @access private
+ */
+ function _preg_callback($matches)
+ {
+ switch($matches[1])
+ {
+ case 'b':
+ case 'strong':
+ return $this->_strtoupper($matches[2]);
+ case 'hr':
+ return $this->_strtoupper("\t\t". $matches[2] ."\n");
+ case 'h':
+ return $this->_strtoupper("\n\n". $matches[2] ."\n\n");
+ case 'a':
+ return $this->_build_link_list($matches[3], $matches[4]);
+ }
+ }
+
+ /**
+ * Strtoupper multibyte wrapper function
+ *
+ * @param string
+ * @return string
+ * @access private
+ */
+ function _strtoupper($str)
+ {
+ if (function_exists('mb_strtoupper'))
+ return mb_strtoupper($str);
+ else
+ return strtoupper($str);
+ }
}
-?>
\ No newline at end of file
+?>
- $ICL_SSL is not boolean anymore but contains the connection schema (ssl or tls)
- Removed some debuggers (echo ...)
File altered by Aleksander Machniak <alec@alec.pl>
- - RFC3501 [7.1] don't call CAPABILITY if was returned in server
- optional resposne in iil_Connect()
- trim(chop()) replaced by trim()
- added iil_Escape() with support for " and \ in folder names
- support \ character in username in iil_C_Login()
- removed hardcoded data size in iil_ReadLine()
- added iil_PutLine() wrapper for fputs()
- code cleanup and identation fixes
+ - removed flush() calls in iil_C_HandlePartBody() to prevent from memory leak (#1485187)
+ - don't return "??" from iil_C_GetQuota()
+ - RFC3501 [7.1] don't call CAPABILITY if was returned in server
+ optional resposne in iil_Connect(), added iil_C_GetCapability()
+ - remove 'undisclosed-recipients' string from 'To' header
+ - iil_C_HandlePartBody(): added 6th argument and fixed endless loop
+ - added iil_PutLineC()
+ - fixed iil_C_Sort() to support very long and/or divided responses
+ - added BYE response simple support for endless loop prevention
+ - added 3rd argument in iil_StartsWith* functions
+ - fix iil_C_FetchPartHeader() in some cases by use of iil_C_HandlePartBody()
+ - allow iil_C_HandlePartBody() to fetch whole message
+ - optimize iil_C_FetchHeaders() to use only one FETCH command
+ - added 4th argument to iil_Connect()
+ - allow setting rootdir and delimiter before connect
+ - support multiquota result
********************************************************/
$GLOBALS['IMAP_SERVER_TZ'] = date('Z');
+$GLOBALS['IMAP_FLAGS'] = array(
+ 'SEEN' => '\\Seen',
+ 'DELETED' => '\\Deleted',
+ 'RECENT' => '\\Recent',
+ 'ANSWERED' => '\\Answered',
+ 'DRAFT' => '\\Draft',
+ 'FLAGGED' => '\\Flagged',
+ 'FORWARDED' => '$Forwarded',
+ 'MDNSENT' => '$MDNSent');
+
$iil_error;
$iil_errornum;
$iil_selected;
var $rootdir;
var $delimiter;
var $capability = array();
+ var $permanentflags = array();
+ var $capability_readed = false;
}
/**
var $priority;
var $mdn_to;
var $mdn_sent = false;
- var $is_reply = false;
+ var $is_draft = false;
var $seen = false;
var $deleted = false;
var $recent = false;
var $answered = false;
+ var $forwarded = false;
var $junk = false;
+ var $flagged = false;
}
/**
}
function iil_PutLine($fp, $string, $endln=true) {
-// console('C: '. $string);
- return fputs($fp, $string . ($endln ? "\r\n" : ''));
+// console('C: '. rtrim($string));
+ return fputs($fp, $string . ($endln ? "\r\n" : ''));
+}
+
+// iil_PutLine replacement with Command Continuation Requests (RFC3501 7.5) support
+function iil_PutLineC($fp, $string, $endln=true) {
+ if ($endln)
+ $string .= "\r\n";
+
+ $res = 0;
+ if ($parts = preg_split('/(\{[0-9]+\}\r\n)/m', $string, -1, PREG_SPLIT_DELIM_CAPTURE)) {
+ for($i=0, $cnt=count($parts); $i<$cnt; $i++) {
+ if(preg_match('/^\{[0-9]+\}\r\n$/', $parts[$i+1])) {
+ $res += iil_PutLine($fp, $parts[$i].$parts[$i+1], false);
+ $line = iil_ReadLine($fp, 1000);
+ $i++;
+ }
+ else
+ $res += iil_PutLine($fp, $parts[$i], false);
+ }
+ }
+ return $res;
}
function iil_ReadLine($fp, $size) {
return -1;
} else if (strcasecmp($a[1], 'BAD') == 0) {
return -2;
+ } else if (strcasecmp($a[1], 'BYE') == 0) {
+ return -3;
}
}
- return -3;
+ return -4;
}
// check if $string starts with $match
-function iil_StartsWith($string, $match) {
+function iil_StartsWith($string, $match, $bye=false) {
$len = strlen($match);
if ($len == 0) {
return false;
if (strncmp($string, $match, $len) == 0) {
return true;
}
+ if ($bye && strncmp($string, '* BYE ', 6) == 0) {
+ return true;
+ }
return false;
}
-function iil_StartsWithI($string, $match) {
+function iil_StartsWithI($string, $match, $bye=false) {
$len = strlen($match);
if ($len == 0) {
return false;
if (strncasecmp($string, $match, $len) == 0) {
return true;
}
+ if ($bye && strncmp($string, '* BYE ', 6) == 0) {
+ return true;
+ }
return false;
}
return strtr($string, array('"'=>'\\"', '\\' => '\\\\'));
}
+function iil_C_GetCapability(&$conn, $name)
+{
+ if (in_array($name, $conn->capability)) {
+ return true;
+ }
+ else if ($conn->capability_readed) {
+ return false;
+ }
+
+ // get capabilities (only once) because initial
+ // optional CAPABILITY response may differ
+ $conn->capability = array();
+
+ iil_PutLine($conn->fp, "cp01 CAPABILITY");
+ do {
+ $line = trim(iil_ReadLine($conn->fp, 1024));
+ $a = explode(' ', $line);
+ if ($line[0] == '*') {
+ while (list($k, $w) = each($a)) {
+ if ($w != '*' && $w != 'CAPABILITY')
+ $conn->capability[] = strtoupper($w);
+ }
+ }
+ } while ($a[0] != 'cp01');
+
+ $conn->capability_readed = true;
+
+ if (in_array($name, $conn->capability)) {
+ return true;
+ }
+
+ return false;
+}
+
function iil_C_Authenticate(&$conn, $user, $pass, $encChallenge) {
$ipad = '';
}
// generate hash
- $hash = iil_xor($pass,$opad);
- $hash .= pack("H*", md5(iil_xor($pass, $ipad) . base64_decode($encChallenge)));
- $hash = md5($hash);
+ $hash = md5(iil_xor($pass,$opad) . pack("H*", md5(iil_xor($pass, $ipad) . base64_decode($encChallenge))));
// generate reply
- $reply = base64_encode('"' . $user . '" "' . $hash . '"');
+ $reply = base64_encode($user . ' ' . $hash);
// send result, get reply
iil_PutLine($conn->fp, $reply);
$line = iil_ReadLine($conn->fp, 1024);
// process result
- if (iil_ParseResult($line) == 0) {
+ $result = iil_ParseResult($line);
+ if ($result == 0) {
$conn->error .= '';
$conn->errorNum = 0;
return $conn->fp;
}
+
+ if ($result == -3) fclose($conn->fp); // BYE response
+
$conn->error .= 'Authentication for ' . $user . ' failed (AUTH): "';
$conn->error .= htmlspecialchars($line) . '"';
- $conn->errorNum = -2;
- return false;
+ $conn->errorNum = $result;
+
+ return $result;
}
function iil_C_Login(&$conn, $user, $password) {
if ($line === false) {
break;
}
- } while (!iil_StartsWith($line, "a001 "));
- $a = explode(' ', $line);
- if (strcmp($a[1], 'OK') == 0) {
- $result = $conn->fp;
+ } while (!iil_StartsWith($line, 'a001 ', true));
+
+ // process result
+ $result = iil_ParseResult($line);
+
+ if ($result == 0) {
$conn->error .= '';
$conn->errorNum = 0;
- return $result;
+ return $conn->fp;
}
- $result = false;
+
fclose($conn->fp);
$conn->error .= 'Authentication for ' . $user . ' failed (LOGIN): "';
$conn->error .= htmlspecialchars($line)."\"";
- $conn->errorNum = -2;
+ $conn->errorNum = $result;
return $result;
}
function iil_C_NameSpace(&$conn) {
global $my_prefs;
+
+ if (isset($my_prefs['rootdir']) && is_string($my_prefs['rootdir'])) {
+ $conn->rootdir = $my_prefs['rootdir'];
+ return true;
+ }
- if (!in_array('NAMESPACE', $conn->capability)) {
+ if (!iil_C_GetCapability($conn, 'NAMESPACE')) {
return false;
}
- if ($my_prefs["rootdir"]) {
- return true;
- }
-
iil_PutLine($conn->fp, "ns1 NAMESPACE");
do {
$line = iil_ReadLine($conn->fp, 1024);
$i = 0;
$data = iil_ParseNamespace2(substr($line,11), $i, 0, 0);
}
- } while (!iil_StartsWith($line, "ns1"));
+ } while (!iil_StartsWith($line, 'ns1', true));
if (!is_array($data)) {
return false;
$conn->rootdir = $first_userspace[0];
$conn->delimiter = $first_userspace[1];
- $my_prefs["rootdir"] = substr($conn->rootdir, 0, -1);
+ $my_prefs['rootdir'] = substr($conn->rootdir, 0, -1);
+ $my_prefs['delimiter'] = $conn->delimiter;
return true;
}
-function iil_Connect($host, $user, $password) {
+function iil_Connect($host, $user, $password, $options=null) {
global $iil_error, $iil_errornum;
global $ICL_SSL, $ICL_PORT;
global $IMAP_NO_CACHE;
$iil_error = '';
$iil_errornum = 0;
-
- //strip slashes
- // $user = stripslashes($user);
- // $password = stripslashes($password);
-
- //set auth method
- $auth_method = 'plain';
- if (func_num_args() >= 4) {
- $auth_array = func_get_arg(3);
- if (is_array($auth_array)) {
- $auth_method = $auth_array['imap'];
- }
- if (empty($auth_method)) {
- $auth_method = "plain";
- }
+
+ // set some imap options
+ if (is_array($options)) {
+ foreach($options as $optkey => $optval) {
+ if ($optkey == 'imap') {
+ $auth_method = $optval;
+ } else if ($optkey == 'rootdir') {
+ $my_prefs['rootdir'] = $optval;
+ } else if ($optkey == 'delimiter') {
+ $my_prefs['delimiter'] = $optval;
+ }
+ }
}
+
+ if (empty($auth_method))
+ $auth_method = 'plain';
+
$message = "INITIAL: $auth_method\n";
$result = false;
//check input
if (empty($host)) {
- $iil_error .= "Invalid host\n";
+ $iil_error = "Empty host";
+ $iil_errornum = -1;
+ return false;
}
if (empty($user)) {
- $iil_error .= "Invalid user\n";
+ $iil_error = "Empty user";
+ $iil_errornum = -1;
+ return false;
}
if (empty($password)) {
- $iil_error .= "Invalid password\n";
- }
- if (!empty($iil_error)) {
+ $iil_error = "Empty password";
+ $iil_errornum = -1;
return false;
}
if (!$ICL_PORT) {
$conn->fp = fsockopen($host, $ICL_PORT, $errno, $errstr, 10);
if (!$conn->fp) {
$iil_error = "Could not connect to $host at port $ICL_PORT: $errstr";
- $iil_errornum = -1;
+ $iil_errornum = -2;
return false;
}
$iil_error .= "Socket connection established\r\n";
- $line = iil_ReadLine($conn->fp, 1024);
+ $line = iil_ReadLine($conn->fp, 4096);
// RFC3501 [7.1] optional CAPABILITY response
- // commented out, because it's not working always as should
-// if (preg_match('/\[CAPABILITY ([^]]+)\]/i', $line, $matches)) {
-// $conn->capability = explode(' ', $matches[1]);
-// } else {
- iil_PutLine($conn->fp, "cp01 CAPABILITY");
- do {
- $line = trim(iil_ReadLine($conn->fp, 1024));
-
- $conn->message .= "$line\n";
+ if (preg_match('/\[CAPABILITY ([^]]+)\]/i', $line, $matches)) {
+ $conn->capability = explode(' ', strtoupper($matches[1]));
+ }
- $a = explode(' ', $line);
- if ($line[0] == '*') {
- while (list($k, $w) = each($a)) {
- if ($w != '*' && $w != 'CAPABILITY')
- $conn->capability[] = $w;
- }
- }
- } while ($a[0] != 'cp01');
-// }
+ $conn->message .= $line;
if (strcasecmp($auth_method, "check") == 0) {
//check for supported auth methods
-
- //default to plain text auth
- $auth_method = 'plain';
-
- //check for CRAM-MD5
- foreach ($conn->capability as $c)
- if (strcasecmp($c, 'AUTH=CRAM_MD5') == 0 ||
- strcasecmp($c, 'AUTH=CRAM-MD5') == 0) {
- $auth_method = 'auth';
- break;
- }
+ if (iil_C_GetCapability($conn, 'AUTH=CRAM-MD5') || iil_C_GetCapability($conn, 'AUTH=CRAM_MD5')) {
+ $auth_method = 'auth';
+ }
+ else {
+ //default to plain text auth
+ $auth_method = 'plain';
+ }
}
if (strcasecmp($auth_method, 'auth') == 0) {
//do CRAM-MD5 authentication
iil_PutLine($conn->fp, "a000 AUTHENTICATE CRAM-MD5");
$line = trim(iil_ReadLine($conn->fp, 1024));
-
+
$conn->message .= "$line\n";
-
+
if ($line[0] == '+') {
$conn->message .= 'Got challenge: ' . htmlspecialchars($line) . "\n";
//got a challenge string, try CRAM-5
$result = iil_C_Authenticate($conn, $user, $password, substr($line,2));
-
+
+ // stop if server sent BYE response
+ if($result == -3) {
+ $iil_error = $conn->error;
+ $iil_errornum = $conn->errorNum;
+ return false;
+ }
$conn->message .= "Tried CRAM-MD5: $result \n";
} else {
$conn->message .='No challenge ('.htmlspecialchars($line)."), try plain\n";
- $auth = 'plain';
+ $auth = 'plain';
}
}
if ((!$result)||(strcasecmp($auth, "plain") == 0)) {
//do plain text auth
$result = iil_C_Login($conn, $user, $password);
- $conn->message.="Tried PLAIN: $result \n";
+ $conn->message .= "Tried PLAIN: $result \n";
}
$conn->message .= $auth;
- if ($result) {
+ if (!is_int($result)) {
iil_C_Namespace($conn);
return $conn;
} else {
}
function iil_ExplodeQuotedString($delimiter, $string) {
- $quotes=explode('"', $string);
+ $quotes = explode('"', $string);
while ( list($key, $val) = each($quotes)) {
if (($key % 2) == 1) {
$quotes[$key] = str_replace($delimiter, "_!@!_", $quotes[$key]);
}
}
- $string=implode('"', $quotes);
+ $string = implode('"', $quotes);
- $result=explode($delimiter, $string);
+ $result = explode($delimiter, $string);
while ( list($key, $val) = each($result) ) {
$result[$key] = str_replace('_!@!_', $delimiter, $result[$key]);
}
$a=explode(' ', $line);
if (($a[0] == '*') && (strcasecmp($a[2], 'RECENT') == 0)) {
$result = (int) $a[1];
- }
- } while (!iil_StartsWith($a[0], 'a002'));
+ }
+ } while (!iil_StartsWith($a[0], 'a002', true));
iil_PutLine($fp, "a003 LOGOUT");
fclose($fp);
return false;
}
if (strcmp($conn->selected, $mailbox) == 0) {
- return true;
+ return true;
}
iil_C_LoadCache($conn, $mailbox);
if (strcasecmp($a[2], 'EXISTS') == 0) {
$conn->exists = (int) $a[1];
}
- if (strcasecmp($a[2], 'RECENT') == 0) {
- $conn->recent = (int) $a[1];
- }
+ if (strcasecmp($a[2], 'RECENT') == 0) {
+ $conn->recent = (int) $a[1];
+ }
+ }
+ else if (preg_match('/\[?PERMANENTFLAGS\s+\(([^\)]+)\)\]/U', $line, $match)) {
+ $conn->permanentflags = explode(' ', $match[1]);
}
- } while (!iil_StartsWith($line, 'sel1'));
+ } while (!iil_StartsWith($line, 'sel1', true));
$a = explode(' ', $line);
function iil_C_CountMessages(&$conn, $mailbox, $refresh = false) {
if ($refresh) {
- $conn->selected= '';
+ $conn->selected = '';
}
iil_C_Select($conn, $mailbox);
function iil_StrToTime($str) {
$IMAP_MONTHS = $GLOBALS['IMAP_MONTHS'];
- $IMAP_SERVER_TZ = $GLOBALS['IMAP_SERVER_TR'];
+ $IMAP_SERVER_TZ = $GLOBALS['IMAP_SERVER_TZ'];
if ($str) {
$time1 = strtotime($str);
function iil_C_Sort(&$conn, $mailbox, $field, $add='', $is_uid=FALSE,
$encoding = 'US-ASCII') {
- /* Do "SELECT" command */
- if (!iil_C_Select($conn, $mailbox)) {
- return false;
- }
+
$field = strtoupper($field);
if ($field == 'INTERNALDATE') {
$field = 'ARRIVAL';
if (!$fields[$field]) {
return false;
}
+
+ /* Do "SELECT" command */
+ if (!iil_C_Select($conn, $mailbox)) {
+ return false;
+ }
$is_uid = $is_uid ? 'UID ' : '';
$add = " $add";
}
- $fp = $conn->fp;
$command = 's ' . $is_uid . 'SORT (' . $field . ') ';
$command .= $encoding . ' ALL' . $add;
$line = $data = '';
- if (!iil_PutLine($fp, $command)) {
+ if (!iil_PutLineC($conn->fp, $command)) {
return false;
}
do {
- $line = chop(iil_ReadLine($fp, 1024));
+ $line = chop(iil_ReadLine($conn->fp, 1024));
if (iil_StartsWith($line, '* SORT')) {
- $data .= ($data?' ':'') . substr($line, 7);
- }
- } while ($line[0]!='s');
+ $data .= ($data ? ' ' : '') . substr($line, 7);
+ } else if (preg_match('/^[0-9 ]+$/', $line)) {
+ $data .= $line;
+ }
+ } while (!iil_StartsWith($line, 's ', true));
- if (empty($data)) {
- $conn->error = $line;
- return false;
+ $result_code = iil_ParseResult($line);
+
+ if ($result_code != 0) {
+ $conn->error = 'iil_C_Sort: ' . $line . "\n";
+ return false;
}
$out = explode(' ',$data);
//one line response, not expected so ignore
}
*/
- } while (!iil_StartsWith($line, $key));
+ } while (!iil_StartsWith($line, $key, true));
}else if ($mode == 6) {
} else {
$a = explode(' ', $line);
}
- } while (!iil_StartsWith($a[0], $key));
+ } while (!iil_StartsWith($a[0], $key, true));
} else {
if ($mode >= 3) {
$field_name = 'FLAGS';
$result[$id] = (strpos($haystack, $index_field) > 0 ? "F" : "N");
}
}
- } while (!iil_StartsWith($line, $key));
+ } while (!iil_StartsWith($line, $key, true));
}
//check number of elements...
{
global $IMAP_USE_INTERNAL_DATE;
- $c = 0;
$result = array();
$fp = $conn->fp;
}
}
- /* FETCH date,from,subject headers */
- $key = 'fh' . ($c++);
- $prefix = $uidfetch?' UID':'';
- $request = $key . $prefix;
- $request .= " FETCH $message_set (BODY.PEEK[HEADER.FIELDS ";
+ /* FETCH uid, size, flags and headers */
+ $key = 'FH12';
+ $request = $key . ($uidfetch ? ' UID' : '') . " FETCH $message_set ";
+ $request .= "(UID RFC822.SIZE FLAGS INTERNALDATE BODY.PEEK[HEADER.FIELDS ";
$request .= "(DATE FROM TO SUBJECT REPLY-TO IN-REPLY-TO CC BCC ";
$request .= "CONTENT-TRANSFER-ENCODING CONTENT-TYPE MESSAGE-ID ";
$request .= "REFERENCES DISPOSITION-NOTIFICATION-TO X-PRIORITY)])";
return false;
}
do {
- $line = chop(iil_ReadLine($fp, 200));
+ $line = chop(iil_ReadLine($fp, 1024));
$a = explode(' ', $line);
if (($line[0] == '*') && ($a[2] == 'FETCH')) {
$id = $a[1];
$result[$id]->subject = '';
$result[$id]->messageID = 'mid:' . $id;
+ /*
+ Sample reply line:
+ * 321 FETCH (UID 2417 RFC822.SIZE 2730 FLAGS (\Seen)
+ INTERNALDATE "16-Nov-2008 21:08:46 +0100" BODY[HEADER.FIELDS ...
+ */
+
+ if (preg_match('/^\* [0-9]+ FETCH \((.*) BODY\[HEADER/', $line, $matches)) {
+ $str = $matches[1];
+
+ //swap parents with quotes, then explode
+ $str = eregi_replace("[()]", "\"", $str);
+ $a = iil_ExplodeQuotedString(' ', $str);
+
+ //did we get the right number of replies?
+ $parts_count = count($a);
+ if ($parts_count>=8) {
+ for ($i=0; $i<$parts_count; $i=$i+2) {
+ if (strcasecmp($a[$i],'UID') == 0)
+ $result[$id]->uid = $a[$i+1];
+ else if (strcasecmp($a[$i],'RFC822.SIZE') == 0)
+ $result[$id]->size = $a[$i+1];
+ else if (strcasecmp($a[$i],'INTERNALDATE') == 0)
+ $time_str = $a[$i+1];
+ else if (strcasecmp($a[$i],'FLAGS') == 0)
+ $flags_str = $a[$i+1];
+ }
+
+ // process flags
+ $flags_str = eregi_replace('[\\\"]', '', $flags_str);
+ $flags_a = explode(' ', $flags_str);
+
+ if (is_array($flags_a)) {
+ reset($flags_a);
+ while (list(,$val)=each($flags_a)) {
+ if (strcasecmp($val,'Seen') == 0) {
+ $result[$id]->seen = true;
+ } else if (strcasecmp($val, 'Deleted') == 0) {
+ $result[$id]->deleted=true;
+ } else if (strcasecmp($val, 'Recent') == 0) {
+ $result[$id]->recent = true;
+ } else if (strcasecmp($val, 'Answered') == 0) {
+ $result[$id]->answered = true;
+ } else if (strcasecmp($val, '$Forwarded') == 0) {
+ $result[$id]->forwarded = true;
+ } else if (strcasecmp($val, 'Draft') == 0) {
+ $result[$id]->is_draft = true;
+ } else if (strcasecmp($val, '$MDNSent') == 0) {
+ $result[$id]->mdn_sent = true;
+ } else if (strcasecmp($val, 'Flagged') == 0) {
+ $result[$id]->flagged = true;
+ }
+ }
+ $result[$id]->flags = $flags_a;
+ }
+
+ $time_str = str_replace('"', '', $time_str);
+
+ // if time is gmt...
+ $time_str = str_replace('GMT','+0000',$time_str);
+
+ //get timezone
+ $time_str = substr($time_str, 0, -1);
+ $time_zone_str = substr($time_str, -5); // extract timezone
+ $time_str = substr($time_str, 0, -5); // remove timezone
+ $time_zone = (float)substr($time_zone_str, 1, 2); // get first two digits
+
+ if ($time_zone_str[3] != '0') {
+ $time_zone += 0.5; //handle half hour offset
+ }
+ if ($time_zone_str[0] == '-') {
+ $time_zone = $time_zone * -1.0; //minus?
+ }
+
+ //calculate timestamp
+ $timestamp = strtotime($time_str); //return's server's time
+ $timestamp -= $time_zone * 3600; //compensate for tz, get GMT
+
+ $result[$id]->internaldate = $time_str;
+ $result[$id]->timestamp = $timestamp;
+ $result[$id]->date = $time_str;
+ }
+ }
+
/*
Start parsing headers. The problem is, some header "lines" take up multiple lines.
So, we'll read ahead, and if the one we're reading now is a valid header, we'll
process the previous line. Otherwise, we'll keep adding the strings until we come
to the next valid header line.
*/
+
$i = 0;
$lines = array();
do {
$line = chop(iil_ReadLine($fp, 300), "\r\n");
+
if (ord($line[0])<=32) {
$lines[$i] .= (empty($lines[$i])?'':"\n").trim($line);
} else {
}
/*
The preg_match below works around communigate imap, which outputs " UID <number>)".
- Without this, the while statement continues on and gets the "fh0 OK completed" message.
+ Without this, the while statement continues on and gets the "FH0 OK completed" message.
If this loop gets the ending message, then the outer loop does not receive it from radline on line 1249.
This in causes the if statement on line 1278 to never be true, which causes the headers to end up missing
If the if statement was changed to pick up the fh0 from this loop, then it causes the outer loop to spin
}
// patch from "Maksim Rubis" <siburny@hotmail.com>
} while (trim($line[0]) != ')' && strncmp($line, $key, strlen($key)));
-
+
if (strncmp($line, $key, strlen($key))) {
//process header, fill iilBasicHeader obj.
// initialize
switch ($field) {
case 'date';
- $result[$id]->date = $string;
- $result[$id]->timestamp = iil_StrToTime($string);
+ if (!$IMAP_USE_INTERNAL_DATE) {
+ $result[$id]->date = $string;
+ $result[$id]->timestamp = iil_StrToTime($string);
+ }
break;
case 'from':
$result[$id]->from = $string;
break;
case 'to':
- $result[$id]->to = $string;
+ $result[$id]->to = preg_replace('/undisclosed-recipients:[;,]*/', '', $string);
break;
case 'subject':
$result[$id]->subject = $string;
break;
} // end switch ()
} // end while ()
+
+ if ($conn->do_cache) {
+ $uid = $result[$id]->uid;
+ $conn->cache[$mailbox][$uid] = $result[$id];
+ $conn->cache_dirty[$mailbox] = true;
+ }
} else {
$a = explode(' ', $line);
}
}
} while (strcmp($a[0], $key) != 0);
- /*
- FETCH uid, size, flags
- Sample reply line: "* 3 FETCH (UID 2417 RFC822.SIZE 2730 FLAGS (\Seen \Deleted))"
- */
- $command_key = 'fh' . ($c++);
- $request = $command_key . $prefix;
- $request .= " FETCH $message_set (UID RFC822.SIZE FLAGS INTERNALDATE)";
-
- if (!iil_PutLine($fp, $request)) {
- return false;
- }
- do {
- $line = chop(iil_ReadLine($fp, 200));
- //$a = explode(' ', $line);
- //if (($line[0]=="*") && ($a[2]=="FETCH")) {
- if ($line[0] == '*') {
- //echo "<!-- $line //-->\n";
- //get outter most parens
- $open_pos = strpos($line, "(") + 1;
- $close_pos = strrpos($line, ")");
- if ($open_pos && $close_pos) {
- //extract ID from pre-paren
- $pre_str = substr($line, 0, $open_pos);
- $pre_a = explode(' ', $line);
- $id = $pre_a[1];
-
- //get data
- $len = $close_pos - $open_pos;
- $str = substr($line, $open_pos, $len);
-
- //swap parents with quotes, then explode
- $str = eregi_replace("[()]", "\"", $str);
- $a = iil_ExplodeQuotedString(' ', $str);
-
- //did we get the right number of replies?
- $parts_count = count($a);
- if ($parts_count>=8) {
- for ($i=0;$i<$parts_count;$i=$i+2) {
- if (strcasecmp($a[$i],"UID") == 0) $result[$id]->uid=$a[$i+1];
- else if (strcasecmp($a[$i],"RFC822.SIZE") == 0) $result[$id]->size=$a[$i+1];
- else if (strcasecmp($a[$i],"INTERNALDATE") == 0) $time_str = $a[$i+1];
- else if (strcasecmp($a[$i],"FLAGS") == 0) $flags_str = $a[$i+1];
- }
-
- // process flags
- $flags_str = eregi_replace('[\\\"]', '', $flags_str);
- $flags_a = explode(' ', $flags_str);
-
- /*
- trigger_error("<!-- ID: $id FLAGS: ".implode(",", $flags_a)." //-->\n",
- E_USER_WARNING);
- */
-
- if (is_array($flags_a)) {
- reset($flags_a);
- while (list($key,$val)=each($flags_a)) {
- if (strcasecmp($val,'Seen') == 0) {
- $result[$id]->seen = true;
- } else if (strcasecmp($val, 'Deleted') == 0) {
- $result[$id]->deleted=true;
- } else if (strcasecmp($val, 'Recent') == 0) {
- $result[$id]->recent = true;
- } else if (strcasecmp($val, 'Answered') == 0) {
- $result[$id]->answered = true;
- } else if (strcasecmp($val, "\$MDNSent") == 0) {
- $result[$id]->mdn_sent = true;
- }
- }
- $result[$id]->flags = $flags_a;
- }
-
- // if time is gmt...
- $time_str = str_replace('GMT','+0000',$time_str);
-
- //get timezone
- $time_str = substr($time_str, 0, -1);
- $time_zone_str = substr($time_str, -5); //extract timezone
- $time_str = substr($time_str, 1, -6); //remove quotes
- $time_zone = (float)substr($time_zone_str, 1, 2); //get first two digits
- if ($time_zone_str[3] != '0') {
- $time_zone += 0.5; //handle half hour offset
- }
- if ($time_zone_str[0] == '-') {
- $time_zone = $time_zone * -1.0; //minus?
- }
- $result[$id]->internaldate = $time_str;
-
- if ($IMAP_USE_INTERNAL_DATE || empty($result[$id]->date)) {
- //calculate timestamp
- $timestamp = strtotime($time_str); //return's server's time
- $na_timestamp = $timestamp;
- $timestamp -= $time_zone * 3600; //compensate for tz, get GMT
-
- $result[$id]->timestamp = $timestamp;
- $result[$id]->date = $time_str;
- }
-
- if ($conn->do_cache) {
- $uid = $result[$id]->uid;
- $conn->cache[$mailbox][$uid] = $result[$id];
- $conn->cache_dirty[$mailbox] = true;
- }
- //echo "<!-- ID: $id : $time_str -- local: $na_timestamp (".date("F j, Y, g:i a", $na_timestamp).") tz: $time_zone -- GMT: ".$timestamp." (".date("F j, Y, g:i a", $timestamp).") //-->\n";
- } else {
- //echo "<!-- ERROR: $id : $str //-->\n";
- }
- }
- }
- } while (strpos($line, $command_key) === false);
-
return $result;
}
function iil_C_FetchHeader(&$conn, $mailbox, $id, $uidfetch=false) {
- $fp = $conn->fp;
+
$a = iil_C_FetchHeaders($conn, $mailbox, $id, $uidfetch);
if (is_array($a)) {
return array_shift($a);
if ($line[0] == '*') {
$c++;
}
- } while (!iil_StartsWith($line, 'exp1'));
+ } while (!iil_StartsWith($line, 'exp1', true));
if (iil_ParseResult($line) == 0) {
$conn->selected = ''; //state has changed, need to reselect
}
$fp = $conn->fp;
- $flags = array(
- 'SEEN' => '\\Seen',
- 'DELETED' => '\\Deleted',
- 'RECENT' => '\\Recent',
- 'ANSWERED' => '\\Answered',
- 'DRAFT' => '\\Draft',
- 'FLAGGED' => '\\Flagged',
- 'MDNSENT' => "\$MDNSent");
+ $flags = $GLOBALS['IMAP_FLAGS'];
$flag = strtoupper($flag);
$flag = $flags[$flag];
if ($line[0] == '*') {
$c++;
}
- } while (!iil_StartsWith($line, 'flg'));
+ } while (!iil_StartsWith($line, 'flg', true));
if (iil_ParseResult($line) == 0) {
iil_C_ExpireCachedItems($conn, $mailbox, $messages);
function iil_C_CountUnseen(&$conn, $folder) {
$index = iil_C_Search($conn, $folder, 'ALL UNSEEN');
if (is_array($index)) {
- $str = implode(',', $index);
- if (empty($str)) {
- return false;
- }
- return count($index);
+ if (($cnt = count($index)) && $index[0] != '') {
+ return $cnt;
+ }
}
return false;
}
function iil_C_UID2ID(&$conn, $folder, $uid) {
if ($uid > 0) {
$id_a = iil_C_Search($conn, $folder, "UID $uid");
- if (is_array($id_a)) {
- $count = count($id_a);
- if ($count > 1) {
- return false;
- }
+ if (is_array($id_a) && count($id_a) == 1) {
return $id_a[0];
}
}
$c = 0;
$query = 'srch1 SEARCH ' . chop($criteria);
- iil_PutLine($fp, $query);
+ iil_PutLineC($fp, $query);
do {
$line=trim(iil_ReadLine($fp, 10000));
if (eregi("^\* SEARCH", $line)) {
$str = trim(substr($line, 8));
$messages = explode(' ', $str);
}
- } while (!iil_StartsWith($line, 'srch1'));
-
+ } while (!iil_StartsWith($line, 'srch1', true));
+
$result_code = iil_ParseResult($line);
if ($result_code == 0) {
return $messages;
* @see iil_Connect()
*/
function iil_C_GetHierarchyDelimiter(&$conn) {
+
+ global $my_prefs;
+
if ($conn->delimiter) {
- return $conn->delimiter;
+ return $conn->delimiter;
+ }
+ if (!empty($my_prefs['delimiter'])) {
+ return ($conn->delimiter = $my_prefs['delimiter']);
}
$fp = $conn->fp;
$delimiter = str_replace('"', '', $a[count($a)-2]);
}
}
- } while (!iil_StartsWith($line, 'ghd'));
+ } while (!iil_StartsWith($line, 'ghd', true));
if (strlen($delimiter)>0) {
return $delimiter;
$i = 0;
$data = iil_ParseNamespace2(substr($line,11), $i, 0, 0);
}
- } while (!iil_StartsWith($line, 'ns1'));
+ } while (!iil_StartsWith($line, 'ns1', true));
if (!is_array($data)) {
return false;
// is it a container?
$i++;
}
- } while (!iil_StartsWith($line, 'lmb'));
+ } while (!iil_StartsWith($line, 'lmb', true));
if (is_array($folders)) {
if (!empty($ref)) {
// is it a container?
$i++;
}
- } while (!iil_StartsWith($line, 'lsb'));
+ } while (!iil_StartsWith($line, 'lsb', true));
if (is_array($folders)) {
if (!empty($ref)) {
}
function iil_C_FetchPartHeader(&$conn, $mailbox, $id, $part) {
- $fp = $conn->fp;
- $result = false;
- if (($part == 0) || (empty($part))) {
- $part = 'HEADER';
- } else {
- $part .= '.MIME';
- }
-
- if (iil_C_Select($conn, $mailbox)) {
- $key = 'fh' . ($c++);
- $request = $key . " FETCH $id (BODY.PEEK[$part])";
- if (!iil_PutLine($fp, $request)) return false;
- do {
- $line = chop(iil_ReadLine($fp, 200));
- $a = explode(' ', $line);
- if (($line[0] == '*') && ($a[2] == 'FETCH')
- && ($line[strlen($line)-1] != ')')) {
- $line=iil_ReadLine($fp, 300);
- while (trim($line) != ')') {
- $result .= $line;
- $line=iil_ReadLine($fp, 300);
- }
- }
- } while (strcmp($a[0], $key) != 0);
- }
-
- return $result;
+
+ $part = empty($part) ? 'HEADER' : $part.'.MIME';
+
+ return iil_C_HandlePartBody($conn, $mailbox, $id, $part, 1);
}
-function iil_C_HandlePartBody(&$conn, $mailbox, $id, $part, $mode) {
+function iil_C_HandlePartBody(&$conn, $mailbox, $id, $part='', $mode=1, $file=NULL) {
/* modes:
- 1: return string
+ 1: return string (or write to $file pointer)
2: print
- 3: base64 and print
+ 3: base64 and print (or write to $file pointer)
*/
$fp = $conn->fp;
$result = false;
- if (($part == 0) || empty($part)) {
- $part = 'TEXT';
- }
-
+
if (iil_C_Select($conn, $mailbox)) {
$reply_key = '* ' . $id;
$a = explode(' ', $line);
} while ($a[2] != 'FETCH');
$len = strlen($line);
-
- if ($line[$len-1] == ')') {
+
+ // handle empty "* X FETCH ()" response
+ if ($line[$len-1] == ')' && $line[$len-2] != '(') {
// one line response, get everything between first and last quotes
if (substr($line, -4, 3) == 'NIL') {
// NIL response
if ($mode == 2) {
echo $result;
} else if ($mode == 3) {
- echo base64_decode($result);
- }
+ if ($file)
+ fwrite($file, base64_decode($result));
+ else
+ echo base64_decode($result);
+ }
} else if ($line[$len-1] == '}') {
//multi-line request, find sizes of content and receive that many bytes
$from = strpos($line, '{') + 1;
$len = $to - $from;
$sizeStr = substr($line, $from, $len);
$bytes = (int)$sizeStr;
- $received = 0;
- while ($received < $bytes) {
- $remaining = $bytes - $received;
- $line = iil_ReadLine($fp, 1024);
+ while ($bytes > 0) {
+ $line = iil_ReadLine($fp, 1024);
$len = strlen($line);
- if ($len > $remaining) {
- $line = substr($line, 0, $remaining);
+ if ($len > $bytes) {
+ $line = substr($line, 0, $bytes);
}
- $received += strlen($line);
+ $bytes -= strlen($line);
+
if ($mode == 1) {
- $result .= rtrim($line, "\t\r\n\0\x0B") . "\n";
+ if ($file)
+ fwrite($file, rtrim($line, "\t\r\n\0\x0B") . "\n");
+ else
+ $result .= rtrim($line, "\t\r\n\0\x0B") . "\n";
} else if ($mode == 2) {
- echo rtrim($line, "\t\r\n\0\x0B") . "\n"; flush();
+ echo rtrim($line, "\t\r\n\0\x0B") . "\n";
} else if ($mode == 3) {
- echo base64_decode($line); flush();
- }
+ if ($file)
+ fwrite($file, base64_decode($line));
+ else
+ echo base64_decode($line);
+ }
}
}
- // read in anything up until 'til last line
+ // read in anything up until last line
do {
$line = iil_ReadLine($fp, 1024);
- } while (!iil_StartsWith($line, $key));
+ } while (!iil_StartsWith($line, $key, true));
+ if ($mode == 3 && $file) {
+ return true;
+ }
+
if ($result) {
$result = rtrim($result, "\t\r\n\0\x0B");
- return $result; // substr($result, 0, strlen($result)-1);
+ if ($file) {
+ fwrite($file, $result);
+ return true;
+ }
+ return $result; // substr($result, 0, strlen($result)-1);
}
return false;
}
if ($mode==1) {
+ if ($file) {
+ fwrite($file, $result);
+ return true;
+ }
return $result;
}
- return $received;
+
+ return false;
}
-function iil_C_FetchPartBody(&$conn, $mailbox, $id, $part) {
- return iil_C_HandlePartBody($conn, $mailbox, $id, $part, 1);
+function iil_C_FetchPartBody(&$conn, $mailbox, $id, $part, $file=NULL) {
+ return iil_C_HandlePartBody($conn, $mailbox, $id, $part, 1, $file);
}
function iil_C_PrintPartBody(&$conn, $mailbox, $id, $part) {
if (iil_C_Select($conn, $folder)) {
$key = 'F1247';
-
+
if (iil_PutLine($fp, "$key FETCH $id (BODYSTRUCTURE)")) {
do {
$line = iil_ReadLine($fp, 5000);
$line = iil_MultLine($fp, $line);
- $result .= $line;
+ list(, $index, $cmd, $rest) = explode(' ', $line);
+ if ($cmd != 'FETCH' || $index == $id || preg_match("/^$key/", $line))
+ $result .= $line;
} while (!preg_match("/^$key/", $line));
$result = trim(substr($result, strpos($result, 'BODYSTRUCTURE')+13, -(strlen($result)-strrpos($result, $key)+1)));
* GETQUOTAROOT "INBOX"
* QUOTAROOT INBOX user/rchijiiwa1
* QUOTA user/rchijiiwa1 (STORAGE 654 9765)
- b OK Completed
+ * OK Completed
*/
$fp = $conn->fp;
$result = false;
- $quota_line = '';
+ $quota_lines = array();
- //get line containing quota info
+ // get line(s) containing quota info
if (iil_PutLine($fp, 'QUOT1 GETQUOTAROOT "INBOX"')) {
do {
$line=chop(iil_ReadLine($fp, 5000));
if (iil_StartsWith($line, '* QUOTA ')) {
- $quota_line = $line;
+ $quota_lines[] = $line;
}
- } while (!iil_StartsWith($line, 'QUOT1'));
+ } while (!iil_StartsWith($line, 'QUOT1', true));
}
- //return false if not found, parse if found
- if (!empty($quota_line)) {
+ // return false if not found, parse if found
+ $min_free = PHP_INT_MAX;
+ foreach ($quota_lines as $key => $quota_line) {
$quota_line = eregi_replace('[()]', '', $quota_line);
$parts = explode(' ', $quota_line);
$storage_part = array_search('STORAGE', $parts);
- if ($storage_part > 0) {
- $result = array();
- $used = $parts[$storage_part+1];
- $total = $parts[$storage_part+2];
-
+
+ if (!$storage_part) continue;
+
+ $used = intval($parts[$storage_part+1]);
+ $total = intval($parts[$storage_part+2]);
+ $free = $total - $used;
+
+ // return lowest available space from all quotas
+ if ($free < $min_free) {
+ $min_free = $free;
$result['used'] = $used;
- $result['total'] = (empty($total)?"??":$total);
- $result['percent'] = (empty($total)?"??":round(($used/$total)*100));
+ $result['total'] = $total;
+ $result['percent'] = min(100, round(($used/max(1,$total))*100));
$result['free'] = 100 - $result['percent'];
}
}
$MIME_VIDEO = 6;
$MIME_OTHER = 7;
-function iml_ClosingParenPos($str, $start){
+function iml_ClosingParenPos($str, $start) {
$level=0;
$len = strlen($str);
$in_quote = 0;
- for ($i=$start;$i<$len;$i++){
- if ($str[$i]=="\"") $in_quote = ($in_quote + 1) % 2;
- if (!$in_quote){
+
+ for ($i=$start; $i<$len; $i++) {
+ if ($str[$i] == '"' && $str[$i-1] != "\\")
+ $in_quote = ($in_quote + 1) % 2;
+ if (!$in_quote) {
if ($str[$i]=="(") $level++;
else if (($level > 0) && ($str[$i]==")")) $level--;
else if (($level == 0) && ($str[$i]==")")) return $i;
$id = 0;
$a = array();
$len = strlen($str);
-
$in_quote = 0;
- for ($i=0; $i<$len; $i++){
- if ($str[$i] == "\"") $in_quote = ($in_quote + 1) % 2;
- else if (!$in_quote){
- if ($str[$i] == " "){ //space means new element
+
+ for ($i=0; $i<$len; $i++) {
+ if ($str[$i] == '"') {
+ $in_quote = ($in_quote + 1) % 2;
+ } else if (!$in_quote) {
+ if ($str[$i] == " ") { //space means new element
$id++;
while ($str[$i+1] == " ") $i++; // skip additional spaces
- } else if ($str[$i]=="("){ //new part
+ } else if ($str[$i]=="(") { //new part
$i++;
$endPos = iml_ClosingParenPos($str, $i);
$partLen = $endPos - $i;
+ if ($partLen < 0) break;
$part = substr($str, $i, $partLen);
$a[$id] = iml_ParseBSString($part); //send part string
- if ($verbose){
- echo "{>".$endPos."}";
- flush();
- }
$i = $endPos;
- }else $a[$id].=$str[$i]; //add to current element in array
- }else if ($in_quote){
- if ($str[$i]=="\\") $i++; //escape backslashes
- else $a[$id].=$str[$i]; //add to current element in array
+ } else
+ $a[$id].=$str[$i]; //add to current element in array
+ } else if ($in_quote) {
+ if ($str[$i]=="\\") {
+ $i++; //escape backslashes
+ if ($str[$i] == '"' || $str[$i] == "\\")
+ $a[$id] .= $str[$i];
+ } else
+ $a[$id] .= $str[$i]; //add to current element in array
}
}
function iml_GetRawStructureArray($str){
$line=substr($str, 1, strlen($str) - 2);
$line = str_replace(")(", ") (", $line);
-
+
$struct = iml_ParseBSString($line);
if ((strcasecmp($struct[0], "message")==0) && (strcasecmp($struct[1], "rfc822")==0)){
$struct = array($struct);
);
$u7len = strlen($str);
+ $str = strval($str);
$p = $err = '';
for ($i=0; $u7len > 0; $i++, $u7len--)
{
- $u7 = $str{$i};
+ $u7 = $str[$i];
if ($u7 == '&')
{
$i++;
$u7len--;
- $u7 = $str{$i};
+ $u7 = $str[$i];
if ($u7len && $u7 == '-')
{
$k = 10;
for (; $u7len > 0; $i++, $u7len--)
{
- $u7 = $str{$i};
+ $u7 = $str[$i];
if ((ord($u7) & 0x80) || ($b = $Index_64[ord($u7)]) == -1)
break;
return $err;
/* Adjacent BASE64 sections */
- if ($u7len > 2 && $str{$i+1} == '&' && $str{$i+2} != '-')
+ if ($u7len > 2 && $str[$i+1] == '&' && $str[$i+2] != '-')
return $err;
}
/* Not printable US-ASCII */
while ($u8len)
{
- $u8 = $str{$i};
+ $u8 = $str[$i];
$c = ord($u8);
if ($c < 0x80)
for ($j=0; $j < $n; $j++)
{
- $o = ord($str{$i+$j});
+ $o = ord($str[$i+$j]);
if (($o & 0xc0) != 0x80)
return $err;
$ch = ($ch << 6) | ($o & 0x3f);
*
* SYNOPSIS:
*
- * washtml::wash($html, $config, $full);
+ * $washer = new washtml($config);
+ * $washer->wash($html);
* It return a sanityzed string of the $html parameter without html and head tags.
* $html is a string containing the html code to wash.
* $config is an array containing options:
* $config['show_washed'] is a boolean to include washed out attributes as x-washed
* $config['cid_map'] is an array where cid urls index urls to replace them.
* $config['charset'] is a string containing the charset of the HTML document if it is not defined in it.
- * $full is a reference to a boolean that is set to true if no remote images are removed. (FE: show remote images link)
+ * $washer->extlinks is a reference to a boolean that is set to true if remote images were removed. (FE: show remote images link)
*
* INTERNALS:
*
- * Only tags and attributes in the globals $html_elements and $html_attributes
+ * Only tags and attributes in the static lists $html_elements and $html_attributes
* are kept, inline styles are also filtered: all style identifiers matching
* /[a-z\-]/i are allowed. Values matching colors, sizes, /[a-z\-]/i and safe
* urls if allowed and cid urls if mapped are kept.
class washtml
{
+ /* Allowed HTML elements (default) */
+ static $html_elements = array('a', 'abbr', 'acronym', 'address', 'area', 'b', 'basefont', 'bdo', 'big', 'blockquote', 'br', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', 'font', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'ins', 'label', 'legend', 'li', 'map', 'menu', 'nobr', 'ol', 'p', 'pre', 'q', 's', 'samp', 'small', 'span', 'strike', 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'tt', 'u', 'ul', 'var', 'img');
+
+ /* Ignore these HTML tags but process their content */
+ static $ignore_elements = array('html', 'head', 'body');
+
+ /* Allowed HTML attributes */
+ static $html_attribs = array('name', 'class', 'title', 'alt', 'width', 'height', 'align', 'nowrap', 'col', 'row', 'id', 'rowspan', 'colspan', 'cellspacing', 'cellpadding', 'valign', 'bgcolor', 'color', 'border', 'bordercolorlight', 'bordercolordark', 'face', 'marginwidth', 'marginheight', 'axis', 'border', 'abbr', 'char', 'charoff', 'clear', 'compact', 'coords', 'vspace', 'hspace', 'cellborder', 'size', 'lang', 'dir', 'background');
+
+ /* State for linked objects in HTML */
+ public $extlinks = false;
+
+ /* Current settings */
+ private $config = array();
+ /* Registered callback functions for tags */
+ private $handlers = array();
+
/* Allowed HTML elements */
- static $html_elements = array('a', 'abbr', 'acronym', 'address', 'area', 'b', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', 'font', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'ins', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'p', 'pre', 'q', 's', 'samp', 'small', 'span', 'strike', 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'title', 'tr', 'tt', 'u', 'ul', 'var', 'img');
+ private $_html_elements = array();
- /* Allowed HTML attributes */
- static $html_attribs = array('name', 'class', 'title', 'alt', 'width', 'height', 'align', 'nowrap', 'col', 'row', 'id', 'rowspan', 'colspan', 'cellspacing', 'cellpadding', 'valign', 'bgcolor', 'color', 'border', 'bordercolorlight', 'bordercolordark', 'face', 'marginwidth', 'marginheight', 'axis', 'border', 'abbr', 'char', 'charoff', 'clear', 'compact', 'coords', 'vspace', 'hspace', 'cellborder', 'size', 'lang', 'dir');
+ /* Ignore these HTML tags but process their content */
+ private $_ignore_elements = array();
+ /* Allowed HTML attributes */
+ private $_html_attribs = array();
+
+
+ /* Constructor */
+ public function __construct($p = array()) {
+ $this->_html_elements = array_flip((array)$p['html_elements']) + array_flip(self::$html_elements) ;
+ $this->_html_attribs = array_flip((array)$p['html_attribs']) + array_flip(self::$html_attribs);
+ $this->_ignore_elements = array_flip((array)$p['ignore_elements']) + array_flip(self::$ignore_elements);
+ unset($p['html_elements'], $p['html_attribs'], $p['ignore_elements']);
+ $this->config = $p + array('show_washed'=>true, 'allow_remote'=>false, 'cid_map'=>array());
+ }
+
+ /* Register a callback function for a certain tag */
+ public function add_callback($tagName, $callback)
+ {
+ $this->handlers[$tagName] = $callback;
+ }
+
/* Check CSS style */
- static function wash_style($style, $config, &$full) {
+ private function wash_style($style) {
$s = '';
foreach(explode(';', $style) as $declaration) {
'|#[0-9a-f]{3,6}|[a-z0-9\-]+'.
')\s*/i', $str, $match)) {
if($match[2]) {
- if(preg_match('/^(http|https|ftp):.*$/i', $match[2], $url)) {
- if($config['allow_remote'])
+ if($src = $this->config['cid_map'][$match[2]])
+ $value .= ' url(\''.htmlspecialchars($src, ENT_QUOTES) . '\')';
+ else if(preg_match('/^(http|https|ftp):.*$/i', $match[2], $url)) {
+ if($this->config['allow_remote'])
$value .= ' url(\''.htmlspecialchars($url[0], ENT_QUOTES).'\')';
else
- $full = false;
- } else if(preg_match('/^cid:(.*)$/i', $match[2], $cid))
- $value .= ' url(\''.htmlspecialchars($config['cid_map']['cid:'.$cid[1]], ENT_QUOTES) . '\')';
+ $this->extlinks = true;
+ }
} else if($match[0] != 'url' && $match[0] != 'rbg')//whitelist ?
$value .= ' ' . $match[0];
$str = substr($str, strlen($match[0]));
}
/* Take a node and return allowed attributes and check values */
- static function wash_attribs($node, $config, &$full) {
+ private function wash_attribs($node) {
$t = '';
$washed;
foreach($node->attributes as $key => $plop) {
$key = strtolower($key);
$value = $node->getAttribute($key);
- if((in_array($key, self::$html_attribs)) ||
+ if(isset($this->_html_attribs[$key]) ||
($key == 'href' && preg_match('/^(http|https|ftp|mailto):.*/i', $value)))
$t .= ' ' . $key . '="' . htmlspecialchars($value, ENT_QUOTES) . '"';
- else if($key == 'style' && ($style = self::wash_style($value, $config, $full)))
+ else if($key == 'style' && ($style = $this->wash_style($value)))
$t .= ' style="' . $style . '"';
else if($key == 'src' && strtolower($node->tagName) == 'img') { //check tagName anyway
- if(preg_match('/^(http|https|ftp):.*/i', $value)) {
- if($config['allow_remote'])
+ if($src = $this->config['cid_map'][$value]) {
+ $t .= ' ' . $key . '="' . htmlspecialchars($src, ENT_QUOTES) . '"';
+ }
+ else if(preg_match('/^(http|https|ftp):.*/i', $value)) {
+ if($this->config['allow_remote'])
$t .= ' ' . $key . '="' . htmlspecialchars($value, ENT_QUOTES) . '"';
else {
- $full = false;
- if ($config['blocked_src'])
- $t .= ' src="' . htmlspecialchars($config['blocked_src'], ENT_QUOTES) . '"';
+ $this->extlinks = true;
+ if ($this->config['blocked_src'])
+ $t .= ' src="' . htmlspecialchars($this->config['blocked_src'], ENT_QUOTES) . '"';
}
- } else if(preg_match('/^cid:(.*)$/i', $value, $cid))
- $t .= ' ' . $key . '="' . htmlspecialchars($config['cid_map']['cid:'.$cid[1]], ENT_QUOTES) . '"';
+ }
} else
$washed .= ($washed?' ':'') . $key;
}
- return $t . ($washed && $config['show_washed']?' x-washed="'.$washed.'"':'');
+ return $t . ($washed && $this->config['show_washed']?' x-washed="'.$washed.'"':'');
}
/* The main loop that recurse on a node tree.
* It output only allowed tags with allowed attributes
* and allowed inline styles */
- static function dumpHtml($node, $config, &$full) {
+ private function dumpHtml($node) {
if(!$node->hasChildNodes())
return '';
switch($node->nodeType) {
case XML_ELEMENT_NODE: //Check element
$tagName = strtolower($node->tagName);
- if(in_array($tagName, self::$html_elements)) {
- $content = self::dumpHtml($node, $config, $full);
- $dump .= '<' . $tagName . self::wash_attribs($node, $config, $full) .
+ if($callback = $this->handlers[$tagName]) {
+ $dump .= call_user_func($callback, $tagName, $this->wash_attribs($node), $this->dumpHtml($node));
+ } else if(isset($this->_html_elements[$tagName])) {
+ $content = $this->dumpHtml($node);
+ $dump .= '<' . $tagName . $this->wash_attribs($node) .
($content?">$content</$tagName>":' />');
- } else if($tagName == 'html' || $tagName == 'body') {
- $dump .= self::dumpHtml($node, $config, $full); //Just ignored
+ } else if(isset($this->_ignore_elements[$tagName])) {
+ $dump .= '<!-- ' . htmlspecialchars($tagName, ENT_QUOTES) . ' ignored -->';
+ $dump .= $this->dumpHtml($node); //Just ignored
} else
$dump .= '<!-- ' . htmlspecialchars($tagName, ENT_QUOTES) . ' not allowed -->';
break;
+ case XML_CDATA_SECTION_NODE:
+ $dump .= $node->nodeValue;
+ break;
case XML_TEXT_NODE:
$dump .= htmlspecialchars($node->nodeValue);
break;
case XML_HTML_DOCUMENT_NODE:
- $dump .= self::dumpHtml($node, $config, $full);
+ $dump .= $this->dumpHtml($node);
+ break;
+ case XML_DOCUMENT_TYPE_NODE:
break;
- case XML_DOCUMENT_TYPE_NODE: break;
default:
+ $dump . '<!-- node type ' . $node->nodeType . ' -->';
}
} while($node = $node->nextSibling);
/* Main function, give it untrusted HTML, tell it if you allow loading
* remote images and give it a map to convert "cid:" urls. */
- static function wash($html, $config=array(), &$full=true) {
- $config += array('show_washed'=>true, 'allow_remote'=>false, 'cid_map'=>array());
+ public function wash($html) {
//Charset seems to be ignored (probably if defined in the HTML document)
- $node = new DOMDocument('1.0', $config['charset']);
- $full = true;
+ $node = new DOMDocument('1.0', $this->config['charset']);
+ $this->extlinks = false;
@$node->loadHTML($html);
- return self::dumpHtml($node, $config, $full);
+ return $this->dumpHtml($node);
}
}
/*
+-----------------------------------------------------------------------+
-| language/ar/labels.inc |
+| language/ar_SA/labels.inc |
| |
| Language file of the RoundCube Webmail client |
| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| Author: Ossama Khayat <okhayat@yahoo.com> |
+-----------------------------------------------------------------------+
-@version $Id: labels.inc 1474 2008-06-05 06:55:51Z yllar $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['markmessages'] = 'وسم الرسالة';
$labels['markread'] = 'كمقروءة';
$labels['markunread'] = 'كغير مقروءة';
+$labels['markflagged'] = 'كموْسومة';
+$labels['markunflagged'] = 'كغير موْسومة';
$labels['select'] = 'تحديد';
$labels['all'] = 'الكل';
$labels['none'] = 'لا شيء';
$labels['unlimited'] = 'غير محدود';
$labels['quicksearch'] = 'البحث السريع';
$labels['resetsearch'] = 'استعادة البحث للافتراضي';
+$labels['openinextwin'] = 'افتح في نافذة جديدة';
$labels['compose'] = 'إنشاء رسالة';
$labels['savemessage'] = 'حفظ هذه المسودة';
$labels['sendmessage'] = 'إرسال الرسالة الآن';
$labels['highest'] = 'الأعلى';
$labels['nosubject'] = '(دون موضوع)';
$labels['showimages'] = 'إظهار الصور';
+$labels['alwaysshow'] = 'دائماً أظهر الصّور القادمة من $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'نص مجرد';
+$labels['savesentmessagein'] = 'احفظ الرسالة المُرسلة في';
+$labels['dontsave'] = 'لا تحفظها';
+$labels['maxuploadsize'] = 'أقصى حجم للملف هو $size';
$labels['addcc'] = 'أضف CC';
$labels['addbcc'] = 'أضف BCC';
$labels['addreplyto'] = 'أضيف Reply-To';
$labels['contactsfromto'] = 'المراسلون $from إلى $to من $count';
$labels['print'] = 'طباعة';
$labels['export'] = 'تصدير';
+$labels['exportvcards'] = 'صدّر المراسلين بنسق vCard';
$labels['previouspage'] = 'عرض المجموعة السابقة';
$labels['firstpage'] = 'عرض المجموعة الأولى';
$labels['nextpage'] = 'عرض المجموعة التالية';
$labels['lastpage'] = 'عرض المجموعة الأخيرة';
$labels['groups'] = 'المجموعات';
$labels['personaladrbook'] = 'العناوين الشخصية';
+$labels['import'] = 'استورد';
+$labels['importcontacts'] = 'استورد المراسلين';
+$labels['importfromfile'] = 'استورد من ملف:';
+$labels['importreplace'] = 'استبدل دفتر العناوين بأكمله';
+$labels['importtext'] = 'يمكنك رفع قائمة المراسلين من دفتر عناوين موجود.<br/>ندعم حالياً استيراد العناوين من نسق بيانات <a href="http://en.wikipedia.org/wiki/VCard">vCard</a>.';
+$labels['done'] = 'تم';
$labels['settingsfor'] = 'إعدادات';
$labels['preferences'] = 'التفضيلات';
$labels['userpreferences'] = 'تفضيلات المستخدم';
$labels['newitem'] = 'عنصر جديد';
$labels['edititem'] = 'تحرير عنصر';
$labels['setdefault'] = 'تعيين كإفتراضي';
+$labels['autodetect'] = 'آلي';
$labels['language'] = 'اللغة';
$labels['timezone'] = 'المنطقة الزمنية';
$labels['pagesize'] = 'أسطر في الصفحة';
$labels['htmleditor'] = 'إنشاء رسائل بنسق HTML';
$labels['htmlsignature'] = 'توقيع HTML';
$labels['previewpane'] = 'إظهار قسم المعاينة';
+$labels['skin'] = 'شكل الواجهة';
$labels['logoutclear'] = 'أفرغ المحذوفات عند الخروج';
$labels['logoutcompact'] = 'اضغط الوارد عن الخروج';
$labels['uisettings'] = 'واجهة المستخدم';
$labels['ignore'] = 'تجاهلها';
$labels['readwhendeleted'] = 'حدد الرسالة كمقروءة عند حذفها';
$labels['flagfordeletion'] = 'ضع علامة على الرسالة لحذفها بدلاً من حذفها';
+$labels['skipdeleted'] = 'لا تظهر الرسائل المحذوفة';
+$labels['showinlineimages'] = 'أظهر الصّور المرفقة أسفل الرسالة';
$labels['autosavedraft'] = 'حفظ المسودة تلقائياً';
$labels['everynminutes'] = 'كل $n دقيقة';
+$labels['keepaliveevery'] = 'كل $n دقيقة';
+$labels['keepalive'] = 'تحقق من وجود رسائل جديدة عند';
$labels['never'] = 'أبداً';
+$labels['messagesdisplaying'] = 'إظهار الرسائل';
+$labels['messagescomposition'] = 'إنشاء الرسائل';
+$labels['mimeparamfolding'] = 'أسماء الملفات المرفقة';
+$labels['2231folding'] = 'RFC 2231 بأكملها (ثندربيرد)';
+$labels['miscfolding'] = 'RFC 2047/2231 (ميكروسوفت آوتلوك)';
+$labels['2047folding'] = 'RFC 2047 بأكملها (غيرها)';
+$labels['advancedoptions'] = 'خيارات متقدّمة';
+$labels['focusonnewmessage'] = 'وجّه نافذة المتصفح عند وجود رسالة جديدة';
$labels['folder'] = 'مجلد';
$labels['folders'] = 'مجلدات';
$labels['foldername'] = 'اسم المجلد';
$labels['subscribed'] = 'مشترك';
$labels['messagecount'] = 'الرسائل';
-$labels['create'] = 'Ø¥Ù\86شاء';
-$labels['createfolder'] = 'Ø¥Ù\86شاء مجلد جديد';
+$labels['create'] = 'Ø£Ù\86شئ';
+$labels['createfolder'] = 'Ø£Ù\86شئ مجلد جديد';
$labels['rename'] = 'إعادة التسمية';
$labels['renamefolder'] = 'إعادة تسمية المجلد';
-$labels['deletefolder'] = 'حذف المجلد';
+$labels['deletefolder'] = 'اØØ°Ù\81 اÙ\84Ù\85جÙ\84د';
$labels['managefolders'] = 'إدارة المجلدات';
+$labels['specialfolders'] = 'المجلّدات المُميّزة';
$labels['sortby'] = 'ترتيب بحسب';
$labels['sortasc'] = 'ترتيب تصاعدي';
$labels['sortdesc'] = 'ترتيب تنازلي';
+$labels['B'] = 'ب';
+$labels['KB'] = 'ك.ب';
+$labels['MB'] = 'م.ب';
+$labels['GB'] = 'ج.ب';
?>
/*
+-----------------------------------------------------------------------+
-| language/ar/messages.inc |
+| language/ar_SA/messages.inc |
| |
| Language file of the RoundCube Webmail client |
| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| Author: Ossama Khayat <okhayat@yahoo.com> |
+-----------------------------------------------------------------------+
-@version $Id: messages.inc 1474 2008-06-05 06:55:51Z yllar $
+@version $Id: messages.inc 2102 2008-12-01 10:46:11Z yllar $
*/
$messages['nocontactsfound'] = 'لم يعثر على أي مراسل';
$messages['contactnotfound'] = 'تعذر العثور على المراسل المطلوب';
$messages['sendingfailed'] = 'فشل إرسال الرسالة';
+$messages['senttooquickly'] = 'رجاء انتظر $sec ثوان قبل إرسال هذه الرسالة';
+$messages['errorsavingsent'] = 'حدث خطأ أثناء حفظ الرسالة المُرسلة';
$messages['errorsaving'] = 'حدث خطأ أثناء الحفظ';
$messages['errormoving'] = 'تعذر نقل هذه الرسالة';
$messages['errordeleting'] = 'تعذر حذف هذه الرسالة';
$messages['deletemessagesconfirm'] = 'هل تريد حذف الرسائل المحددة؟';
$messages['deletefolderconfirm'] = 'هل تريد حقاً حذف هذا المجلد؟';
$messages['purgefolderconfirm'] = 'هل تريد حقاً حذف جميع الرسائل في هذا المجلد؟';
+$messages['foldercreating'] = 'جاري إنشاء المجلد...';
+$messages['folderdeleting'] = 'جاري حذف المجلد...';
+$messages['folderrenaming'] = 'جاري إعادة تسمية المجلد...';
+$messages['foldermoving'] = 'جاري نقل المجلد...';
$messages['formincomplete'] = 'لم يتم تعبئة بيانات الاستمارة بالكامل';
$messages['noemailwarning'] = 'الرجاء إدخال عنوان بريد إلكتروني صالح';
$messages['nonamewarning'] = 'الرجاء إدخال اسم';
$messages['nopagesizewarning'] = 'الرجاء إدخال حجم الصفحة';
+$messages['nosenderwarning'] = 'رجاء اكتب عنوان البريد الالكتروني للمُرسل';
$messages['norecipientwarning'] = 'الرجاء إدخال اسم مستقبل واحد على الأقل';
-$messages['nosubjectwarning'] = 'حقل \"الموضوع\" فارغ. هل تريد كتابة موضوع للرسالة؟';
+$messages['nosubjectwarning'] = 'حقل \\\"الموضوع\\\" فارغ. هل تريد كتابة موضوع للرسالة؟';
$messages['nobodywarning'] = 'إرسال هذه الرسالة دون نص؟';
$messages['notsentwarning'] = 'لم يتم إرسال الرسالة. هل تريد تجاهل الرسالة؟';
$messages['noldapserver'] = 'الرجاء اختيار خادم ldap للبحث فيه';
$messages['nodeletelastidentity'] = 'لا يمكن حذف هذا السجل حيث أنه الوحيد المتبقي.';
$messages['addsubfolderhint'] = 'سيتم إنشاء هذا المجلد كمجلد فرعي للمحدد.';
$messages['forbiddencharacter'] = 'اسم المجلّد يحتوي حروفاً ممنوعة';
+$messages['selectimportfile'] = 'رجاء اختر ملفاً لرفعه';
+$messages['addresswriterror'] = 'دفتر العناوين المحدد غير قابل للكتابة';
+$messages['importwait'] = 'جاري الاستيراد، رجاء انتظر...';
+$messages['importerror'] = 'فشل الاستيراد! الملف المرفوع ليس ملف vCard صالح.';
+$messages['importconfirm'] = '<b>تم استيراد $inserted مراسلين بنجاح، وتجاهل $skipped موجودين مسبقاً</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'العملية ممنوعة!';
+$messages['nofromaddress'] = 'عنوان البريد الالكتروني غير محدد في الهويّة المنتقاة';
+$messages['editorwarning'] = 'يتسبب الانتقال إلى محرر النص البسيط بضياع جميع التنسيق. هل تريد الاستمرار؟';
?>
--- /dev/null
+<?php
+
+/*
+
++-----------------------------------------------------------------------+
+| language/az_AZ/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Orkhan Guliyev, OUR Technology, LLC.<office@ourtechnology.net>|
++-----------------------------------------------------------------------+
+
+*/
+
+$labels = array();
+$labels['welcome'] = '$product \-a xoş gəldiniz';
+$labels['username'] = 'İstifadəçi Adı';
+$labels['password'] = 'Şifrə';
+$labels['server'] = 'Server';
+$labels['login'] = 'Daxil ol';
+$labels['logout'] = 'Çıxış';
+$labels['mail'] = 'E-Poçt';
+$labels['settings'] = 'Şəxsi Nizamlamalar';
+$labels['addressbook'] = 'Ünvan Kitabçası';
+$labels['inbox'] = 'Gələnlər';
+$labels['drafts'] = 'Qaralamalar';
+$labels['sent'] = 'Göndərilənlər';
+$labels['trash'] = 'Zibil qutusu';
+$labels['junk'] = 'Lazımsızlar(spam)';
+$labels['subject'] = 'Mövzu';
+$labels['from'] = 'Göndərən';
+$labels['to'] = 'Kimə';
+$labels['cc'] = 'Surət';
+$labels['bcc'] = 'BCC';
+$labels['replyto'] = 'Cavabların Göndəriləcəyi Ünvan';
+$labels['date'] = 'Tarix';
+$labels['size'] = 'Ölçü';
+$labels['priority'] = 'Vacib';
+$labels['organization'] = 'Quruluş';
+$labels['reply-to'] = 'Cavabların Göndəriləcəyi Ünvan';
+$labels['mailboxlist'] = 'Qovluqlar';
+$labels['messagesfromto'] = '$count Mesajın $from - $to Arasındakı Mesajlar';
+$labels['messagenrof'] = '$count Mesajın $nr .';
+$labels['moveto'] = 'buraya daşı...';
+$labels['download'] = 'Endir';
+$labels['filename'] = 'Fayl Adı';
+$labels['filesize'] = 'Fayl Ölçüsü';
+$labels['preferhtml'] = 'HTML göstərməyi dəstəklə';
+$labels['htmlmessage'] = 'HTML Mesaj';
+$labels['prettydate'] = 'Tarixi qısaltaraq göstər';
+$labels['addtoaddressbook'] = 'Ünvan Kitabçasına Əlavə Et';
+$labels['sun'] = 'B';
+$labels['mon'] = 'Be';
+$labels['tue'] = 'Ç';
+$labels['wed'] = 'Ça';
+$labels['thu'] = 'C';
+$labels['fri'] = 'Ca';
+$labels['sat'] = 'Ş';
+$labels['sunday'] = 'Bazar';
+$labels['monday'] = 'Bazar ertəsi';
+$labels['tuesday'] = 'Çərçənbə';
+$labels['wednesday'] = 'Çərşənbə axşam';
+$labels['thursday'] = 'Cümə';
+$labels['friday'] = 'Cümə axşam';
+$labels['saturday'] = 'Şənbə';
+$labels['jan'] = 'yan';
+$labels['feb'] = 'fev';
+$labels['mar'] = 'mar';
+$labels['apr'] = 'apr';
+$labels['may'] = 'may';
+$labels['jun'] = 'iyn';
+$labels['jul'] = 'iyl';
+$labels['aug'] = 'avq';
+$labels['sep'] = 'sen';
+$labels['oct'] = 'okt';
+$labels['nov'] = 'noy';
+$labels['dec'] = 'dek';
+$labels['longjan'] = 'yanvar';
+$labels['longfeb'] = 'fevral';
+$labels['longmar'] = 'mart';
+$labels['longapr'] = 'aprel';
+$labels['longmay'] = 'may';
+$labels['longjun'] = 'iyun';
+$labels['longjul'] = 'iyul';
+$labels['longaug'] = 'avqust';
+$labels['longsep'] = 'sentyabr';
+$labels['longoct'] = 'oktyabr';
+$labels['longnov'] = 'noyabr';
+$labels['longdec'] = 'dekabr';
+$labels['today'] = 'Bu gün';
+$labels['checkmail'] = 'Yeni məktub olub-olmadığını yoxla';
+$labels['writenewmessage'] = 'Məktub yaz';
+$labels['replytomessage'] = 'Məktuba cavab yaz';
+$labels['replytoallmessage'] = 'Bu məktubun göndərildiyi hər kəsə cavab yaz';
+$labels['forwardmessage'] = 'Məktubu başqa ünvana göndər';
+$labels['deletemessage'] = 'Məktubu sil';
+$labels['movemessagetotrash'] = 'Zibil Qutusuna At';
+$labels['printmessage'] = 'Çap et';
+$labels['previousmessage'] = 'Əvvəlki məktubu göstər';
+$labels['previousmessages'] = 'Əvvəlki məktubları göstər';
+$labels['firstmessage'] = 'İlk məktubu göstər';
+$labels['firstmessages'] = 'İlk məktubları göstər';
+$labels['nextmessage'] = 'Sonrakı məktubu göstər';
+$labels['nextmessages'] = 'Sonrakı məktubları göstər';
+$labels['lastmessage'] = 'Son məktubu göstər';
+$labels['lastmessages'] = 'Son məktubları göstər';
+$labels['backtolist'] = 'Poçt qutusuna qayıt';
+$labels['viewsource'] = 'Qaynağı göstər';
+$labels['markmessages'] = 'Məktubları qeyd et';
+$labels['markread'] = 'Oxunmuş kimi';
+$labels['markunread'] = 'Oxunmamış kimi';
+$labels['markflagged'] = 'Qeydə alındı';
+$labels['markunflagged'] = 'Qeyddən çıxdı';
+$labels['select'] = 'Seç';
+$labels['all'] = 'Hamısı';
+$labels['none'] = 'Heç biri';
+$labels['unread'] = 'Oxunmamış';
+$labels['flagged'] = 'İşarəli';
+$labels['unanswered'] = 'Cavabsız';
+$labels['filter'] = 'Süzgəc';
+$labels['compact'] = 'Yığcam';
+$labels['empty'] = 'Boşalt';
+$labels['purge'] = 'Sil';
+$labels['quota'] = 'Disk istifadəsi';
+$labels['unknown'] = 'bilinməyən';
+$labels['unlimited'] = 'limitsiz';
+$labels['quicksearch'] = 'Sürətli axtarış';
+$labels['resetsearch'] = 'Axtarışı yenilə';
+$labels['openinextwin'] = 'Yeni pəncərədə aç';
+$labels['compose'] = 'Yeni məktub yaz';
+$labels['savemessage'] = 'Qaralama olaraq məktubu saxla';
+$labels['sendmessage'] = 'Məktubu göndər';
+$labels['addattachment'] = 'Fayl əlavə et';
+$labels['charset'] = 'Xarakter seti';
+$labels['editortype'] = 'Düzənləyici tipi';
+$labels['returnreceipt'] = 'Return receipt';
+$labels['checkspelling'] = 'Qrammatika alətini aktiv et';
+$labels['resumeediting'] = 'Redaktə etməyə davam et';
+$labels['revertto'] = 'Revert to';
+$labels['attachments'] = 'Əlavələr';
+$labels['upload'] = 'Yüklə';
+$labels['close'] = 'Bağla';
+$labels['low'] = 'Alçaq';
+$labels['lowest'] = 'Çox alçaq';
+$labels['normal'] = 'Normal';
+$labels['high'] = 'Yüksək';
+$labels['highest'] = 'Çox yüksək';
+$labels['nosubject'] = '(Mövzu Yoxdur)';
+$labels['showimages'] = 'Qrafikləri göstər';
+$labels['alwaysshow'] = 'Həmişə göstər';
+$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Düz metn';
+$labels['savesentmessagein'] = 'Göndərilmiş məktubu saxla...';
+$labels['dontsave'] = 'Saxlama';
+$labels['maxuploadsize'] = 'Maksimal hədd $size qədərdir';
+$labels['addcc'] = 'CC əlavə et';
+$labels['addbcc'] = 'BCC əlavə et';
+$labels['addreplyto'] = 'Reply-To əlavə et';
+$labels['mdnrequest'] = 'Məktubu göndərən məktubu oxuduğunuzu bilmək istəyir. Bu barədə ona məlumat verilsin?';
+$labels['receiptread'] = 'Return Receipt';
+$labels['yourmessage'] = 'Bu sizin məktubunuz üçün Return Receipt-dir';
+$labels['receiptnote'] = 'Bu receipt yalnız təsdiq edir ki, məlumat alanın kompüterində göstərildi. Heç bir zəmanət yoxdur - hansı ki, alan oxumuşdur və ya məlumatın içindəkilərini başa düşmüşdür.';
+$labels['name'] = 'Adı göstər';
+$labels['firstname'] = 'Ad';
+$labels['surname'] = 'Soyad';
+$labels['email'] = 'E-Poçt';
+$labels['addcontact'] = 'Seçiləni ünvan kitabçasına əlavə et';
+$labels['editcontact'] = 'Əlaqəni redaktə et';
+$labels['edit'] = 'Redaktə et';
+$labels['cancel'] = 'Ləğv et';
+$labels['save'] = 'Saxla';
+$labels['delete'] = 'Sil';
+$labels['newcontact'] = 'Yeni əlaqə Kartı Əlavə et';
+$labels['deletecontact'] = 'Seçilən əlaqələri sil';
+$labels['composeto'] = 'Seçilən əlaqəyə məktub göndər';
+$labels['contactsfromto'] = '$count Əlaqənin $from - $to arası ';
+$labels['print'] = 'Çap et';
+$labels['export'] = 'İxrac et';
+$labels['exportvcards'] = 'Əlaqələri vCards formatına ixrac et';
+$labels['previouspage'] = 'Əvvəlki səhifə';
+$labels['firstpage'] = 'İlk səhifə';
+$labels['nextpage'] = 'Sonrakı səhifə';
+$labels['lastpage'] = 'Son səhifə';
+$labels['groups'] = 'Qruplar';
+$labels['personaladrbook'] = 'Ünvanlar';
+$labels['import'] = 'İdxal';
+$labels['importcontacts'] = 'Əlaqələrin idxalı';
+$labels['importfromfile'] = 'Fayldan idxal:';
+$labels['importreplace'] = 'Daxil edilən ünvan kitabçasını dəyiş';
+$labels['importtext'] = 'Əlaqələri mövcud ünvan kitabçasından yüklə. Biz hal-hazırda vCard data formatından ünvanların idxalını dəstəkləyirik.';
+$labels['done'] = 'Bitdi';
+$labels['settingsfor'] = 'Nizamlamalar';
+$labels['preferences'] = 'Seçimlər';
+$labels['userpreferences'] = 'İstifadəçi seçimləri';
+$labels['editpreferences'] = 'İstifadəçi seçimlərini redaktə et';
+$labels['identities'] = 'Kimliklər';
+$labels['manageidentities'] = 'Bu hesab üçün kimlikləri redaktə et';
+$labels['newidentity'] = 'Yeni kimlik';
+$labels['newitem'] = 'Yeni etiket';
+$labels['edititem'] = 'Etiket redaktə et';
+$labels['setdefault'] = 'Fərz edilən olaraq nizamla';
+$labels['autodetect'] = 'Avto';
+$labels['language'] = 'Dil';
+$labels['timezone'] = 'Saat qurşağı';
+$labels['pagesize'] = 'Bir səhifədə neçə məktub göstərilsin';
+$labels['signature'] = 'İmza';
+$labels['dstactive'] = 'Yay vaxt;';
+$labels['htmleditor'] = 'HTML redaktorda mesaj redaktə et';
+$labels['htmlsignature'] = 'HTML imza';
+$labels['previewpane'] = 'İlk paneli göstər';
+$labels['skin'] = 'İnterfeys stili';
+$labels['logoutclear'] = 'Poçtdan çıxış vaxtı zibil qutusu təmizlənsin';
+$labels['logoutcompact'] = 'Poçtdan çıxış vaxtı gələnlər yığcam olunsun';
+$labels['uisettings'] = 'İstifadəçi İnterfeysi';
+$labels['serversettings'] = 'Server Nizamlamalrı';
+$labels['mailboxview'] = 'Poçt qutusunu göstər';
+$labels['mdnrequests'] = 'Göndərən bildirişləri';
+$labels['askuser'] = 'istifadəçini soruş';
+$labels['autosend'] = 'avtomatik göndər';
+$labels['ignore'] = 'iqnor';
+$labels['readwhendeleted'] = 'Məktubu siləndə oxunmuş kimi qeyd et';
+$labels['flagfordeletion'] = 'Silinmə üçün bayraq';
+$labels['skipdeleted'] = 'Silinmiş məktubları göstərmə';
+$labels['showremoteimages'] = 'Uzaq fəaliyyətdəki şəkilləri göstər';
+$labels['fromknownsenders'] = 'bilinən göndərilənlərdən';
+$labels['always'] = 'hər zaman';
+$labels['showinlineimages'] = 'Əlavə olunmuş qrafikləri məktubun aşağısında göstər';
+$labels['autosavedraft'] = 'Qaralamanı avtomatik olaraq yaddaşda saxla';
+$labels['everynminutes'] = 'hər $n dəqiqədə bir';
+$labels['keepaliveevery'] = 'hər $n dəqiqə(lər)';
+$labels['keepalive'] = 'Yeni məktubları burada yoxlayın:';
+$labels['never'] = 'heç bir zaman';
+$labels['messagesdisplaying'] = 'Məktubların göstərilməsi';
+$labels['messagescomposition'] = 'Məktubların yazılması';
+$labels['mimeparamfolding'] = 'Bərkidilən adlan';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['advancedoptions'] = 'Geniş xüsusiyyətlər';
+$labels['focusonnewmessage'] = 'Yeni məktubda mərkəzi səyyah pəncərəsi';
+$labels['checkallfolders'] = 'Qovluqları yeni məktublar üçün yoxlayın';
+$labels['folder'] = 'Qovluq';
+$labels['folders'] = 'Qovluqlar';
+$labels['foldername'] = 'Qovluq adı';
+$labels['subscribed'] = 'Görüləbilinən';
+$labels['messagecount'] = 'Məktublar';
+$labels['create'] = 'Yani Yarat';
+$labels['createfolder'] = 'Yeni qovluq yarat';
+$labels['rename'] = 'Yenidən adlandır';
+$labels['renamefolder'] = 'Qovluğu yenidən adlandır';
+$labels['deletefolder'] = 'Qovluğu sil';
+$labels['managefolders'] = 'Qovluqlarla iş';
+$labels['specialfolders'] = 'Xüsusi qovluqlar';
+$labels['sortby'] = 'Sırala';
+$labels['sortasc'] = 'Azdan çoxa';
+$labels['sortdesc'] = 'Çoxdan aza';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+?>
--- /dev/null
+<?php
+
+/*
+
++-----------------------------------------------------------------------+
+| language/az_AZ/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Orkhan Guliyev, OUR Technology, LLC.<office@ourtechnology.net>|
++-----------------------------------------------------------------------+
+
+*/
+
+$messages = array();
+$messages['loginfailed'] = 'Giriş uğursuz oldu';
+$messages['cookiesdisabled'] = 'Darayıcınız cookiləri kəbul etmir';
+$messages['sessionerror'] = 'Sessiyanız sona çatmışdır və ya xətalıdır';
+$messages['imaperror'] = 'IMAP Serverləə əlaqə yaratmaq mümkün olmadı';
+$messages['nomessagesfound'] = 'Poçt qutusunda məktub tapılmadı';
+$messages['loggedout'] = 'Çıxış uğurlu oldu. Gülə-gülə!';
+$messages['mailboxempty'] = 'Poçt qutusu boşdur';
+$messages['loading'] = 'Yüklənir...';
+$messages['loadingdata'] = 'Verilənlər yüklənir...';
+$messages['checkingmail'] = 'Yeni məktub olub-olmadığı yoxlanılır...';
+$messages['sendingmessage'] = 'Məktub göndərilir...';
+$messages['messagesent'] = 'Məktub göndərildi';
+$messages['savingmessage'] = 'Poçt yaddaşa salınır...';
+$messages['messagesaved'] = 'Məktub yaddaşa salındı';
+$messages['successfullysaved'] = 'Yaddaşda saxlanıldı';
+$messages['addedsuccessfully'] = 'Əlaqə ünvan kitabçasına əlavə olundu';
+$messages['contactexists'] = 'Ünvan kitabçasında bu e-poçt ünvanı mövcuddur';
+$messages['blockedimages'] = 'Gizliliyinizi qorumaq məqsədilə məktubdakı qrafiklər blok edildi.';
+$messages['encryptedmessage'] = 'Bu şifrələnmiş bir məktubdur və bu səbəbə görə göstərilməsi mümkün deyil. Üzr istəyirik!';
+$messages['nocontactsfound'] = 'Əlaqə tapılmadı';
+$messages['contactnotfound'] = 'İstənən bağlantı tapılmadı';
+$messages['sendingfailed'] = 'Məktub göndəriləmədi';
+$messages['senttooquickly'] = 'Zəhmət olmasa, bu məktubu göndərməzdən əvvəl $sec gözləyin';
+$messages['errorsavingsent'] = 'Məktub saxlanılan zaman xəta baş verdi';
+$messages['errorsaving'] = 'Yaddaşda saxlanılarkən bir problem baş verdi';
+$messages['errormoving'] = 'Məktubun yerini dəyişmək mümkün olmadı';
+$messages['errordeleting'] = 'Məktubu silmək mümkün olmadı';
+$messages['deletecontactconfirm'] = 'Seçilən əlaqələri silməyə əminsinizmi?';
+$messages['deletemessagesconfirm'] = 'Seçilən mesajları silmək istəyirsiz?';
+$messages['deletefolderconfirm'] = 'Bu qovluğu silməyə əminmisiniz?';
+$messages['purgefolderconfirm'] = 'Bu qovluqdakı bütün məktubları silməyə əminmisiniz?';
+$messages['foldercreating'] = 'Qovluğun yaradılması...';
+$messages['folderdeleting'] = 'Qovluğun silinməsi...';
+$messages['folderrenaming'] = 'Qovluğun adının dəyişdirilməsi...';
+$messages['foldermoving'] = 'Qovluq köçürülür...';
+$messages['formincomplete'] = 'Form tam olaraq doldurulmadı';
+$messages['noemailwarning'] = 'Xahiş olunur düzgün e-poçt ünvanı daxil edin';
+$messages['nonamewarning'] = 'Xahiş olunur bir ad daxil edin';
+$messages['nopagesizewarning'] = 'Xahiş olunur bir səhifə ölçüsü daxil edin';
+$messages['nosenderwarning'] = 'Zəhmət olmasa, göndərənin e-poçt ünvanını daxil edin';
+$messages['norecipientwarning'] = 'Xahiş olunur ən az bir qəbul edən göstərin';
+$messages['nosubjectwarning'] = '"Mövzu" daxil edilməmişdir. İndi bir mövzu daxil etmək istəyirsinizmi?';
+$messages['nobodywarning'] = 'Məktubu boş olaraq göndər?';
+$messages['notsentwarning'] = 'Məktub göndərilmədi. Məktubunuzu ləğv etmək istəyirsinizmi?';
+$messages['noldapserver'] = 'Xahiş olunur axtarmaq üçün bir Ldap server seçin';
+$messages['nocontactsreturned'] = 'Əlaqə tapılmadı';
+$messages['nosearchname'] = 'Xahiş olunur bir ad və ya e-poçt ünvanı daxil edin';
+$messages['searchsuccessful'] = '$nr məktub tapıldı';
+$messages['searchnomatch'] = 'Axtardığınıza uyğun heç bir nəticə tapılmadı';
+$messages['searching'] = 'Axtarılır...';
+$messages['checking'] = 'Yoxlanılır...';
+$messages['nospellerrors'] = 'Qrammatik səhv tapılmadı';
+$messages['folderdeleted'] = 'Qovluq uğurlu olaraq silindi';
+$messages['deletedsuccessfully'] = 'Silindi';
+$messages['converting'] = 'Mesajın formalandırılması prosesi gedir..';
+$messages['messageopenerror'] = 'Mesajın serverdən yüklənilməsi mümkün olmadı';
+$messages['fileuploaderror'] = 'Fayl yüklənməsi uğursuz oldu';
+$messages['filesizeerror'] = 'Yüklənilən faylın ölçüsü $size çoxdur';
+$messages['copysuccess'] = '$nr ünvan nüsxələndi';
+$messages['copyerror'] = 'Heç bir ünvanı nüsxələmək mümkün olmadı';
+$messages['sourceisreadonly'] = 'Ünvan qaynağı tam oxunar vəziyyətdə';
+$messages['errorsavingcontact'] = 'Əlaqə ünvanını yaddaşa salmaq mümkün olmadı';
+$messages['movingmessage'] = 'Məktubun yeri dəyişdirilir';
+$messages['receiptsent'] = 'Oxuma receipt-i uğurlu olaraq göndərildi';
+$messages['errorsendingreceipt'] = 'Receipt göndərmək mümkün olmadı';
+$messages['nodeletelastidentity'] = 'Siz bu eyniliyi silə bilməzsiniz.';
+$messages['addsubfolderhint'] = 'Bu qovluq seçilmiş qovluqda alt qovluq olaraq yaradıldı';
+$messages['forbiddencharacter'] = 'Qovluq adında qadağan olunmuş xarakter(lər) var';
+$messages['selectimportfile'] = 'Zəhmət olmasa, yüklənilən faylı seç';
+$messages['addresswriterror'] = 'Seçilmiş ünvan kitabçası yazılmayandır';
+$messages['importwait'] = 'İdxal, gözləyin...';
+$messages['importerror'] = 'İdxal alınmadı! Yüklənilən fayl vCard fayla uyğun deyil.';
+$messages['importconfirm'] = '<b>$inserted ünvanlar müvəffəqiyyətlə idxal edildi, mövcud daxil edilən $skipped atla</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Əməliyyata icazə verilmir!';
+$messages['nofromaddress'] = 'Seçilmiş eynilikdə e-poçt ünvanı axtarılır';
+$messages['editorwarning'] = 'Adi mətn redaktoruna keçid, bütün mətn formatlarının itkisinə gətirəcək. Davam edim?';
+
+?>
/*
- +-----------------------------------------------------------------------+
- | language/bg/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Todor Dragnev <todor.dragnev@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/bg/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Todor Dragnev <todor.dragnev@gmail.com> |
+| Nickolay Bunev <just4nick@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id$
+@version $Id$
*/
$labels['logout'] = 'Изход';
$labels['mail'] = 'Кутия';
$labels['settings'] = 'Настройки';
-$labels['addressbook'] = 'Ð\90дреси';
+$labels['addressbook'] = 'Ð\9aнига Ñ\81 адреси';
$labels['inbox'] = 'Входящи';
$labels['drafts'] = 'Чернови';
$labels['sent'] = 'Изпратени';
$labels['to'] = 'Получател';
$labels['cc'] = 'Копие до';
$labels['bcc'] = 'Скрито копие до';
-$labels['replyto'] = 'Ð\9eÑ\82говоÑ\80 на';
+$labels['replyto'] = 'Ð\9eÑ\82говоÑ\80 до';
$labels['date'] = 'Дата';
$labels['size'] = 'Размер';
$labels['priority'] = 'Приоритет';
$labels['organization'] = 'Организация';
-$labels['reply-to'] = 'Ð\9eÑ\82говоÑ\80 на';
+$labels['reply-to'] = 'Ð\9eÑ\82говоÑ\80 до';
$labels['mailboxlist'] = 'Папки';
$labels['messagesfromto'] = 'Съобщения $from до $to от $count';
$labels['messagenrof'] = 'Съобщение $nr от $count';
-$labels['moveto'] = 'премести в...';
-$labels['download'] = 'изтегли';
+$labels['moveto'] = 'Ð\9fремести в...';
+$labels['download'] = 'Ð\98зтегли';
$labels['filename'] = 'Име на файла';
$labels['filesize'] = 'Размер на файла';
$labels['preferhtml'] = 'Показвай първо HTML версия';
$labels['thursday'] = 'Четвъртък';
$labels['friday'] = 'Петък';
$labels['saturday'] = 'Събота';
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'May';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+$labels['longjan'] = 'Януари';
+$labels['longfeb'] = 'Февруари';
+$labels['longmar'] = 'Март';
+$labels['longapr'] = 'Април';
+$labels['longmay'] = 'Май';
+$labels['longjun'] = 'Юни';
+$labels['longjul'] = 'Юли';
+$labels['longaug'] = 'Август';
+$labels['longsep'] = 'Септември';
+$labels['longoct'] = 'Октомври';
+$labels['longnov'] = 'Ноември';
+$labels['longdec'] = 'Декември';
$labels['today'] = 'Днес';
$labels['checkmail'] = 'Провери за нови писма';
$labels['writenewmessage'] = 'Създай ново писмо';
$labels['replytomessage'] = 'Отговори на писмото';
-$labels['replytoallmessage'] = 'Отговори до всички получатели';
+$labels['replytoallmessage'] = 'Ð\9eÑ\82говоÑ\80и до изпÑ\80аÑ\89аÑ\87а и вÑ\81иÑ\87ки полÑ\83Ñ\87аÑ\82ели';
$labels['forwardmessage'] = 'Препрати писмото';
$labels['deletemessage'] = 'Изтрий писмото';
$labels['movemessagetotrash'] = 'Премести писмото в кошчето';
$labels['printmessage'] = 'Разпечатай писмото';
-$labels['previousmessage'] = 'Предно писмо';
-$labels['previousmessages'] = 'Предна страница';
+$labels['previousmessage'] = 'Ð\9fÑ\80едиÑ\88но пиÑ\81мо';
+$labels['previousmessages'] = 'Ð\9fÑ\80едиÑ\88на Ñ\81Ñ\82Ñ\80аниÑ\86а';
$labels['firstmessage'] = 'Първо писмо';
$labels['firstmessages'] = 'Първа страница';
$labels['nextmessage'] = 'Следващо писмо';
$labels['markmessages'] = 'Маркирай писмата';
$labels['markread'] = 'Като прочетени';
$labels['markunread'] = 'Като нови';
+$labels['markflagged'] = 'Като отбелязани';
+$labels['markunflagged'] = 'Като неотбелязани';
$labels['select'] = 'Избери';
$labels['all'] = 'Всички';
$labels['none'] = 'Нищо';
$labels['unlimited'] = 'няма ограничение';
$labels['quicksearch'] = 'Бързо търсене';
$labels['resetsearch'] = 'Изчисти търсенето и покажи всички писма';
+$labels['openinextwin'] = 'Отвори в нов прозорец';
$labels['compose'] = 'Ново писмо';
$labels['savemessage'] = 'Запиши в Чернови';
$labels['sendmessage'] = 'Изпрати писмото';
$labels['attachments'] = 'Прикачени файлове';
$labels['upload'] = 'Качи';
$labels['close'] = 'Затвори';
-$labels['low'] = '**';
+$labels['low'] = 'Нисък';
$labels['lowest'] = '*';
-$labels['normal'] = '***';
-$labels['high'] = '****';
+$labels['normal'] = 'Нормален';
+$labels['high'] = 'Висок';
$labels['highest'] = '*****';
$labels['nosubject'] = '(няма заглавие)';
-$labels['showimages'] = 'Виж изображенията';
+$labels['showimages'] = 'Показвай изображения';
+$labels['alwaysshow'] = 'Винаги показвай изображения от $ ';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'текстов';
+$labels['savesentmessagein'] = 'Запази съобщението в';
+$labels['dontsave'] = 'Не съхранявай';
+$labels['maxuploadsize'] = 'Максимално позволенa големина в $size';
$labels['addcc'] = 'Копие до';
$labels['addbcc'] = 'Скрито копие до';
$labels['addreplyto'] = 'Отговор на';
$labels['composeto'] = 'Напиши писмо до';
$labels['contactsfromto'] = 'Контакти $from до $to от $count';
$labels['print'] = 'Разпечатай';
-$labels['export'] = 'Експортиране';
+$labels['export'] = 'Изнасяне';
+$labels['exportvcards'] = 'Изнасяне във vCard формат';
$labels['previouspage'] = 'Предна страница';
$labels['firstpage'] = 'Първа страница';
$labels['nextpage'] = 'Следваща страница';
$labels['lastpage'] = 'Последна страница';
$labels['groups'] = 'Групи';
$labels['personaladrbook'] = 'Лични адреси';
+$labels['import'] = 'Внасяне';
+$labels['importcontacts'] = 'Внасяне';
+$labels['importfromfile'] = 'Внасяне от файл';
+$labels['importreplace'] = 'Замени цялата книга с адреси';
+$labels['importtext'] = 'Можете да внесете контакти от съществуваща книга с адреси. В момента поддържане внасянето на адреси от vCard формат за данни.';
+$labels['done'] = 'Извършено';
$labels['settingsfor'] = 'Настройки за';
$labels['preferences'] = 'Настройки';
$labels['userpreferences'] = 'Потребителски настройки';
$labels['newitem'] = 'Нова самоличност';
$labels['edititem'] = 'Редактиране на самоличност';
$labels['setdefault'] = 'По подразбиране';
+$labels['autodetect'] = 'Автоматично';
$labels['language'] = 'Език';
$labels['timezone'] = 'Часова зона';
$labels['pagesize'] = 'Редове на страница';
$labels['signature'] = 'Подпис';
$labels['dstactive'] = 'Маркирай при лятно време';
-$labels['htmleditor'] = 'Писане на HTML съобщения';
+$labels['htmleditor'] = 'Писане на съобщениe като HTML';
$labels['htmlsignature'] = 'HTML подпис';
$labels['previewpane'] = 'Панел за преглед';
+$labels['skin'] = 'Смяна изгледа на интерфейса';
+$labels['logoutclear'] = 'Изчисти кошчето при изход';
+$labels['logoutcompact'] = 'Упллътни Входящи при изход';
+$labels['uisettings'] = 'Потребителски интерфейс';
+$labels['serversettings'] = 'Настройки на сървъра';
+$labels['mailboxview'] = 'Преглед на Кутия';
+$labels['mdnrequests'] = 'Уведомление на изпращача';
+$labels['askuser'] = 'Питай';
+$labels['autosend'] = 'Изпрати автоматично';
+$labels['ignore'] = 'Отхвърли';
+$labels['readwhendeleted'] = 'Отбележи като прочетено при изтриване';
+$labels['flagfordeletion'] = 'Отбележи съобщението за изтриване';
+$labels['skipdeleted'] = 'Не показвай изтритите съобщения';
+$labels['showinlineimages'] = 'Покажи прикачените изображения след съобщението';
$labels['autosavedraft'] = 'Автоматично записвай чернова';
$labels['everynminutes'] = 'всеки $n минути';
+$labels['keepaliveevery'] = 'всеки $n минути';
+$labels['keepalive'] = 'Проверявай за нови съобщения при';
$labels['never'] = 'никога';
+$labels['messagesdisplaying'] = 'Показване на събщенията';
+$labels['messagescomposition'] = 'Писане на съобщения';
+$labels['mimeparamfolding'] = 'Добавяне име на прикрепените файлове';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (други)';
+$labels['advancedoptions'] = 'Настройки за напреднали';
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Име на папката';
$labels['renamefolder'] = 'Преименувай папката';
$labels['deletefolder'] = 'Изтрий';
$labels['managefolders'] = 'Настройки на папките';
+$labels['specialfolders'] = 'Служебни папки';
$labels['sortby'] = 'Сортирай по';
$labels['sortasc'] = 'Сортирай възходящо';
$labels['sortdesc'] = 'Сортирай низходящо';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/bg/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Todor Dragnev <todor.dragnev@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/bg/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Todor Dragnev <todor.dragnev@gmail.com> |
+| Nickolay Bunev <just4nick@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id$
+@version $Id$
*/
$messages['imaperror'] = 'Неуспешно свързване към IMAP сървъра';
$messages['nomessagesfound'] = 'Няма съобщения';
$messages['loggedout'] = 'Довиждане!';
-$messages['mailboxempty'] = 'Ð\9fапката е празна';
+$messages['mailboxempty'] = 'Ð\9aÑ\83Ñ\82иÑ\8fта е празна';
$messages['loading'] = 'Зареждане...';
$messages['loadingdata'] = 'Зареждане на данни...';
$messages['checkingmail'] = 'Проверка за нови писма...';
$messages['nocontactsfound'] = 'Няма контакти';
$messages['contactnotfound'] = 'Исканият контакт не е намерен';
$messages['sendingfailed'] = 'Изпращането неуспешно';
+$messages['senttooquickly'] = 'Моля, изчакайте $sec секунда(и) преди да изпратите съобщението';
+$messages['errorsavingsent'] = 'Възникна грешка при записването на съобщението';
$messages['errorsaving'] = 'Възникна грешка при записването';
$messages['errormoving'] = 'Писмото не може да бъде преместено';
$messages['errordeleting'] = 'Писмото не може да бъде изтрито';
$messages['deletemessagesconfirm'] = 'Искате ли да изтриете маркираните съобщения?';
$messages['deletefolderconfirm'] = 'Искате ли да изтриете тази папка?';
$messages['purgefolderconfirm'] = 'Искате ли да изтриете всички писма в тази папка?';
+$messages['foldercreating'] = 'Създаване на папка...';
+$messages['folderdeleting'] = 'Изтриване на папка...';
+$messages['folderrenaming'] = 'Преименуване на папка...';
+$messages['foldermoving'] = 'Преместване на папка...';
$messages['formincomplete'] = 'Не сте попълнили всички полета';
$messages['noemailwarning'] = 'Моля, въведете валиден e-mail адрес';
$messages['nonamewarning'] = 'Моля, въведете име';
$messages['nopagesizewarning'] = 'Въведете брой редове на страница';
+$messages['nosenderwarning'] = 'Моля въведете валиден e-mail адрес на изпращача';
$messages['norecipientwarning'] = 'Въведете поне един получател';
$messages['nosubjectwarning'] = 'Полето "Заглавие" е празно. Искате ли да въведете заглавие?';
$messages['nobodywarning'] = 'Изпрати това писмо без текст?';
$messages['errorsendingreceipt'] = 'Грешка при изпращането на обратна разписка.';
$messages['nodeletelastidentity'] = 'Не можете да изтриете тази самоличност, трябва да имате поне една.';
$messages['addsubfolderhint'] = 'Тази папка ще бъде създадена като подпапка на текущо избраната';
+$messages['forbiddencharacter'] = 'Името на папката съдържа непозволени символи';
+$messages['selectimportfile'] = 'Моля изберете файл за качване';
+$messages['addresswriterror'] = 'Избраната адресна книга не може да бъде записвана';
+$messages['importwait'] = 'Внасяне, моля изчакайте...';
+$messages['importerror'] = 'Внасянето неуспешно! Каченият файл не е във валиден vCard формат.';
+$messages['importconfirm'] = '<b>Успешно са внесени следните контакти $inserted contacts, вече съществуващите $skipped контакти са пропуснати</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Операцията не е позволена!';
+$messages['nofromaddress'] = 'Липсва e-mail адрес за избраната самоличност';
+$messages['editorwarning'] = 'Превключването на редактора в текстов режим ще доведе до загуба на форматирането на текса. Сигурни ли сте, че искате да продължите?';
-?>
\ No newline at end of file
+?>
| Simo <sim6@graciasensefils.net> |
+-----------------------------------------------------------------------+
-@version $Id: labels.inc 1486 2008-06-07 11:47:46Z thomasb $
+@version $Id: labels.inc 2142 2008-12-10 19:22:22Z yllar $
*/
$labels['moveto'] = 'moure a...';
$labels['download'] = 'descarregar';
$labels['filename'] = 'Nom del fitxer';
-$labels['filesize'] = 'Grandaria de fitxer';
+$labels['filesize'] = 'Grandària de fitxer';
$labels['preferhtml'] = 'Preferisc HTML';
$labels['htmlmessage'] = 'Missatge HTML';
$labels['prettydate'] = 'Dates curtes';
$labels['addtoaddressbook'] = 'Afegir a contactes';
-$labels['sun'] = 'DM';
+$labels['sun'] = 'DG';
$labels['mon'] = 'DL';
$labels['tue'] = 'DM';
$labels['wed'] = 'DC';
$labels['markmessages'] = 'Marca missatges';
$labels['markread'] = 'Com a llegits';
$labels['markunread'] = 'Com a no llegits';
+$labels['markflagged'] = 'Com marcat';
+$labels['markunflagged'] = 'Com no marcat';
$labels['select'] = 'Seleccionar';
$labels['all'] = 'Tots';
$labels['none'] = 'Cap';
$labels['unread'] = 'No llegits';
+$labels['flagged'] = 'Marcat';
+$labels['unanswered'] = 'No respost';
+$labels['filter'] = 'Filtre';
$labels['compact'] = 'Compacta';
$labels['empty'] = 'Buida';
$labels['purge'] = 'Purga';
$labels['unlimited'] = 'il·limitat';
$labels['quicksearch'] = 'Cerca ràpida';
$labels['resetsearch'] = 'Neteja cerca';
+$labels['openinextwin'] = 'Obrir a una nova finestra';
$labels['compose'] = 'Escriure un missatge';
$labels['savemessage'] = 'Desa aquest esborrany';
$labels['sendmessage'] = 'Enviar ara el missatge';
$labels['highest'] = 'Molt alta';
$labels['nosubject'] = '(sense assumpte)';
$labels['showimages'] = 'Mostra imatges';
+$labels['alwaysshow'] = 'Sempre mostrar imatges de $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Text pla';
+$labels['savesentmessagein'] = 'Desar el missatge enviat a';
+$labels['dontsave'] = 'no deseu';
+$labels['maxuploadsize'] = 'El tamany màxim de fitxer és $size';
$labels['addcc'] = 'Afegir Cc';
$labels['addbcc'] = 'Afegir Bcc';
$labels['addreplyto'] = 'Afegir Reply-To';
$labels['mdnrequest'] = 'El remitent d\'aquest missatge ha demanat ser notificat quan llegeixis aquest missatge. Vols notificar al remitent?';
$labels['receiptread'] = 'Confirmació de recepció';
$labels['yourmessage'] = 'Aquesta és una confirmació de recepció per al teu missatge';
-$labels['receiptnote'] = 'Nota: Aquesta confirmació solament indica que el missatge ha estat mostrat en l\'ordinador del destinatari. No hi ha garantia que el destinatari hagi llegit o entès el contingut del missatge.';
+$labels['receiptnote'] = 'Nota: Aquesta confirmació solament indica que el missatge ha estat mostrat a l\'ordinador del destinatari. No hi ha garantia que el destinatari hagi llegit o entès el contingut del missatge.';
$labels['name'] = 'Nom a mostrar';
$labels['firstname'] = 'Nom';
$labels['surname'] = 'Cognom';
$labels['contactsfromto'] = 'Contactes $from a $to de $count';
$labels['print'] = 'Imprimeix';
$labels['export'] = 'Exportar';
+$labels['exportvcards'] = 'Exportar contactes en format vCard';
$labels['previouspage'] = 'Mostrar anteriors';
$labels['firstpage'] = 'Mostrar primers';
$labels['nextpage'] = 'Mostrar següents';
$labels['lastpage'] = 'Mostrar últims';
$labels['groups'] = 'Grups';
$labels['personaladrbook'] = 'Llibreta d\'adreces';
+$labels['import'] = 'Importar';
+$labels['importcontacts'] = 'Importar contactes';
+$labels['importfromfile'] = 'Importar des d\'un fitxer:';
+$labels['importreplace'] = 'Reemplaçar la llibreta d\'adreçes sencera';
+$labels['importtext'] = 'Podeu importar contactes des d\'una llibreta d\'adreces existent.<br/>Actualment suportem l\'importació d\'adreces amb el format <a href="http://en.wikipedia.org/wiki/VCard">vCard</a>.';
+$labels['done'] = 'Fet';
$labels['settingsfor'] = 'Configuració per a';
$labels['preferences'] = 'Preferències';
$labels['userpreferences'] = 'Preferències d\'usuari';
$labels['newitem'] = 'Nou';
$labels['edititem'] = 'Editar';
$labels['setdefault'] = 'Seleccionar opció per defecte';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Idioma';
$labels['timezone'] = 'Zona horària';
$labels['pagesize'] = 'Files per pàgina';
$labels['htmleditor'] = 'Escriure missatges HTML';
$labels['htmlsignature'] = 'Signatura HTML';
$labels['previewpane'] = 'Mostrar el panell de previsualització';
+$labels['skin'] = 'Aparença d\'interfície';
$labels['logoutclear'] = 'Esborrar la paperera al tancar sessió';
$labels['logoutcompact'] = 'Compactar la safata d\'entrada al tancar sessió';
$labels['uisettings'] = 'Interfície d\'usuari';
$labels['ignore'] = 'Ignora-les';
$labels['readwhendeleted'] = 'Marca el missatge com a llegit quan s\'esborri';
$labels['flagfordeletion'] = 'Afegeix marca d\'esborrat en comptes d\'esborrar-lo';
+$labels['skipdeleted'] = 'No mostrar els missatges esborrats';
+$labels['showremoteimages'] = 'Mostrar imatges remotes sota el missatge';
+$labels['fromknownsenders'] = 'de remitent conegut';
+$labels['always'] = 'sempre';
+$labels['showinlineimages'] = 'Mostra les imatges adjuntes sota el missatge';
$labels['autosavedraft'] = 'Desar esborrany automàticament';
$labels['everynminutes'] = 'cada $n minuts';
+$labels['keepaliveevery'] = 'cada $n minut(s)';
+$labels['keepalive'] = 'Comprovar nous missatges a';
$labels['never'] = 'mai';
+$labels['messagesdisplaying'] = 'Vista de missatges';
+$labels['messagescomposition'] = 'Composició de missatges';
+$labels['mimeparamfolding'] = 'Noms dels adjunts';
+$labels['2231folding'] = 'Complet RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Complet RFC 2047 (un altre)';
+$labels['advancedoptions'] = 'Opcions avançades';
+$labels['focusonnewmessage'] = 'Enviar el focus al navegador quan hi hagi un nou missatge';
+$labels['checkallfolders'] = 'Comprovar totes les carpetes per missatges nous';
$labels['folder'] = 'Carpeta';
$labels['folders'] = 'Carpetes';
$labels['foldername'] = 'Nom de carpeta';
$labels['renamefolder'] = 'Canvia el nom de la carpeta';
$labels['deletefolder'] = 'Suprimir carpeta';
$labels['managefolders'] = 'Gestionar carpetes';
+$labels['specialfolders'] = 'Carpetes Especials';
$labels['sortby'] = 'Ordena per';
$labels['sortasc'] = 'Ordena ascendentment';
$labels['sortdesc'] = 'Ordena descendentment';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
?>
\ No newline at end of file
| Simo <sim6@graciasensefils.net> |
+-----------------------------------------------------------------------+
-@version $Id: messages.inc 1486 2008-06-07 11:47:46Z thomasb $
+@version $Id: messages.inc 2142 2008-12-10 19:22:22Z yllar $
*/
$messages['blockedimages'] = 'Per a protegir la seva privacitat, les imatges remotes han sigut bloquejades en aquest missatge';
$messages['encryptedmessage'] = 'Aquest és un missatge xifrat i no pot ser mostrat. Ho sento!';
$messages['nocontactsfound'] = 'No hi ha contactes';
-$messages['contactnotfound'] = 'No s\'ha trobat el contacte solicitat';
+$messages['contactnotfound'] = 'No s\'ha trobat el contacte sol·licitat';
$messages['sendingfailed'] = 'Error enviant missatge';
-$messages['errorsaving'] = 'Va ocórrer un error mentres es desava';
+$messages['senttooquickly'] = 'Si us plau, espereu $sec segon(s) abans d\'enviar aquest missatge';
+$messages['errorsavingsent'] = 'Va ocòrrer un error mentre es desava el missatge enviat';
+$messages['errorsaving'] = 'Va ocòrrer un error mentre es desava';
$messages['errormoving'] = 'No s\'ha pogut moure el missatge';
$messages['errordeleting'] = 'No s\'ha pogut eliminar el missatge';
$messages['deletecontactconfirm'] = 'Realment vol suprimir el(s) contacte(s) selecionat(s)?';
$messages['deletemessagesconfirm'] = 'Realment vol suprimir el(s) missatge(s) selecionat(s)?';
$messages['deletefolderconfirm'] = 'Realment vol suprimir aquesta carpeta?';
$messages['purgefolderconfirm'] = 'Realment vol suprimir tots els missatges d\'aquesta carpeta?';
+$messages['foldercreating'] = 'Creant la carpeta...';
+$messages['folderdeleting'] = 'Eliminant la carpeta...';
+$messages['folderrenaming'] = 'Reanomenant la carpeta...';
+$messages['foldermoving'] = 'Movent la carpeta...';
$messages['formincomplete'] = 'El formulari no ha sigut emplenat totalment';
-$messages['noemailwarning'] = 'Introdueixi una direcció email vàlida';
+$messages['noemailwarning'] = 'Introdueixi una adreça d\'e-mail vàlida';
$messages['nonamewarning'] = 'Introdueixi un nom';
$messages['nopagesizewarning'] = 'Introdueixi un tamany de pàgina';
+$messages['nosenderwarning'] = 'Si us plau, entreu l\'adreça d\'e-mail del remitent';
$messages['norecipientwarning'] = 'Introdueixi al menys un destinatari';
-$messages['nosubjectwarning'] = 'El camp "Assumpte" eatà buit. Vol introduir un ara?';
+$messages['nosubjectwarning'] = 'El camp \"Assumpte\" està buit. Vol introduir-ne un ara?';
$messages['nobodywarning'] = 'Vol enviar aquest missatge sense text?';
$messages['notsentwarning'] = 'El missatge no s\'ha enviat. Vol descartar el seu missatge?';
-$messages['noldapserver'] = 'Seleccioni un servidor ldap per a cercar';
+$messages['noldapserver'] = 'Seleccioni un servidor LDAP per a cercar';
$messages['nocontactsreturned'] = 'No s\'han trobat contactes';
-$messages['nosearchname'] = 'Introdueixi un nom de contacte o una direcció email';
+$messages['nosearchname'] = 'Introdueixi un nom de contacte o una adreça e-mail';
$messages['searchsuccessful'] = '$nr missatges trobats';
$messages['searchnomatch'] = 'No s\'ha trobat cap coincidència';
$messages['searching'] = 'Cercant...';
$messages['nospellerrors'] = 'No s\'han trobat errors d\'ortografia';
$messages['folderdeleted'] = 'Carpeta eliminada correctament';
$messages['deletedsuccessfully'] = 'Eliminat correctament';
-$messages['converting'] = 'Treient format del missatge...';
+$messages['converting'] = 'Traient format del missatge...';
$messages['messageopenerror'] = 'No s\'ha pogut carregar el missatge del servidor';
$messages['fileuploaderror'] = 'Pujada de fitxer fallida';
$messages['filesizeerror'] = 'El fitxer pujat excedeix la grandària màxima de $size';
-$messages['copysuccess'] = 'S\'ha copiat $nr adreces correctament';
+$messages['copysuccess'] = 'S\'han copiat $nr adreces correctament';
$messages['copyerror'] = 'No s\'ha pogut copiar cap adreça';
-$messages['sourceisreadonly'] = 'Aquesta adreça és només de lectura.';
+$messages['sourceisreadonly'] = 'Aquesta adreça és només de lectura';
$messages['errorsavingcontact'] = 'No s\'ha pogut guardar l\'adreça de contacte';
$messages['movingmessage'] = 'Movent el missatge...';
$messages['receiptsent'] = 'Confirmació de lectura enviada satisfactòriament';
$messages['nodeletelastidentity'] = 'No pots eliminar aquesta identitat, és l\'última.';
$messages['addsubfolderhint'] = 'Aquesta carpeta serà creada com a subcarpeta de la seleccionada actualment';
$messages['forbiddencharacter'] = 'El nom de carpeta conté un caràcter prohibit';
+$messages['selectimportfile'] = 'Si us plau, seleccioneu un fitxer per pujar';
+$messages['addresswriterror'] = 'La llibreta d\'adreces seleccionada no és modificable';
+$messages['importwait'] = 'Important, espereu si us plau...';
+$messages['importerror'] = 'Importació fallida! El fitxer pujat no és un fitxer vCard vàlid';
+$messages['importconfirm'] = '<b>S\'han importat $inserted contactes satisfactòriament, s\'han descartat $skipped entrades ja existents</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operació no permesa!';
+$messages['nofromaddress'] = 'Falta l\'adreça d\'e-mail a la identitat seleccionada';
+$messages['editorwarning'] = 'Si canvieu a l\'editor de text pla perdreu tot el format del text. Voleu continuar?';
?>
\ No newline at end of file
/*
- +-----------------------------------------------------------------------+
- | language/cz/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Martin Mrajca <martin@moonlake.cz> |
- | joe <joe@humlak.cz> |
- | Jiri Kaderavek <jiri.kaderavek@webstep.net> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/cs_CZ/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Martin Mrajca <martin@moonlake.cz> |
+| joe <joe@humlak.cz> |
+| Jiri Kaderavek <jiri.kaderavek@webstep.net> |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 1068 2008-02-13 19:24:23Z yllar $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['thursday'] = 'Čtvrtek';
$labels['friday'] = 'Pátek';
$labels['saturday'] = 'Sobota';
+$labels['jan'] = 'Led';
+$labels['feb'] = 'Úno';
+$labels['mar'] = 'Bře';
+$labels['apr'] = 'Dub';
+$labels['may'] = 'Kvě';
+$labels['jun'] = 'Čer';
+$labels['jul'] = 'Čec';
+$labels['aug'] = 'Srp';
+$labels['sep'] = 'Zář';
+$labels['oct'] = 'Říj';
+$labels['nov'] = 'Lis';
+$labels['dec'] = 'Pro';
+$labels['longjan'] = 'Leden';
+$labels['longfeb'] = 'Únor';
+$labels['longmar'] = 'Březen';
+$labels['longapr'] = 'Duben';
+$labels['longmay'] = 'Květen';
+$labels['longjun'] = 'Červen';
+$labels['longjul'] = 'Červenec';
+$labels['longaug'] = 'Srpen';
+$labels['longsep'] = 'Září';
+$labels['longoct'] = 'Říjen';
+$labels['longnov'] = 'Listopad';
+$labels['longdec'] = 'Prosinec';
$labels['today'] = 'Dnes';
$labels['checkmail'] = 'Zkontrolovat nové zprávy';
$labels['writenewmessage'] = 'Vytvořit novou zprávu';
$labels['markmessages'] = 'Označ zprávy';
$labels['markread'] = 'Jako přečtené';
$labels['markunread'] = 'Jako nepřečtené';
+$labels['markflagged'] = 'Jako označené';
+$labels['markunflagged'] = 'Jako neoznačené';
$labels['select'] = 'Vybrat';
$labels['all'] = 'Vše';
$labels['none'] = 'Nic';
$labels['unread'] = 'Nepřečtené';
-$labels['compact'] = 'Kompaktní';
-$labels['empty'] = 'Prázdný';
+$labels['compact'] = 'Zmenšit';
+$labels['empty'] = 'Vymazat';
$labels['purge'] = 'Vyprázdnit';
$labels['quota'] = 'Využití schránky';
$labels['unknown'] = 'neznámý';
$labels['unlimited'] = 'neomezený';
$labels['quicksearch'] = 'Rychlé vyhledávání';
$labels['resetsearch'] = 'Zrušit vyhledávání';
+$labels['openinextwin'] = 'Otevřít v novém okně';
$labels['compose'] = 'Napsat zprávu';
$labels['savemessage'] = 'Uložit do rozepsaných';
$labels['sendmessage'] = 'Odeslat zprávu nyní';
$labels['highest'] = 'Nejvyšší';
$labels['nosubject'] = '(bez predmetu)';
$labels['showimages'] = 'Zobrazit obrázky';
+$labels['alwaysshow'] = 'Vždy ukazovat obrázky od $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Prostý text';
-$labels['addcc'] = 'Přidat pole "Kopie"';
-$labels['addbcc'] = 'Přidat pole "Skrytá Kopie"';
-$labels['addreplyto'] = 'Přidat pole "Odpověď"';
+$labels['savesentmessagein'] = 'Ukládat odeslané zprávy v';
+$labels['dontsave'] = 'neukládat';
+$labels['maxuploadsize'] = 'Maximální povolená velikost souboru je $size';
+$labels['addcc'] = 'Přidat pole \"Kopie\"';
+$labels['addbcc'] = 'Přidat pole \"Skrytá Kopie\"';
+$labels['addreplyto'] = 'Přidat pole \"Odpověď\"';
$labels['mdnrequest'] = 'Odesílatel této zprávy si přeje být upozorněn na to, že jste zprávu obdrželi. Chcete přijetí zprávy potvrdit?';
$labels['receiptread'] = 'Potvrzení o přijetí zprávy';
$labels['yourmessage'] = 'Toto je potvrzení o přijetí Vaší zprávy';
$labels['contactsfromto'] = 'Kontakty $from až $to z celkem $count';
$labels['print'] = 'Tisk';
$labels['export'] = 'Export';
+$labels['exportvcards'] = 'Exportovat kontakty ve formátu vCard';
$labels['previouspage'] = 'Předchozí';
$labels['firstpage'] = 'Zobrazit první zprávy';
$labels['nextpage'] = 'Další';
$labels['lastpage'] = 'Zobrazit poslední zprávy';
$labels['groups'] = 'Skupiny';
$labels['personaladrbook'] = 'Osobní kontakty';
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Importovat kontakty';
+$labels['importfromfile'] = 'Importovat ze souboru';
+$labels['importreplace'] = 'Nahradit celý seznam kontaktů';
+$labels['importtext'] = 'Můžete nahrát kontakty z existujícího seznamu kontaktů.Podporujeme formát vCard';
+$labels['done'] = 'Hotovo';
$labels['settingsfor'] = 'Nastavení pro';
$labels['preferences'] = 'Vlastnosti';
$labels['userpreferences'] = 'Vlastnosti uživatele';
$labels['newitem'] = 'Nová položka';
$labels['edititem'] = 'Upravit položku';
$labels['setdefault'] = 'Nastavit výchozí';
+$labels['autodetect'] = 'Automaticky';
$labels['language'] = 'Jazyk';
$labels['timezone'] = 'Časová zóna';
$labels['pagesize'] = 'Řádků na stránku';
$labels['htmleditor'] = 'Vytvářet HTML zprávy';
$labels['htmlsignature'] = 'HTML podpis';
$labels['previewpane'] = 'Zobrazit panel náhledu';
+$labels['skin'] = 'Vzhled';
+$labels['logoutclear'] = 'Vyprázdnit koš při odhlášení';
+$labels['logoutcompact'] = 'Provést údržbu schránky při odhlášení';
+$labels['uisettings'] = 'Uživatelské rozhraní';
+$labels['serversettings'] = 'Nastavení serveru';
+$labels['mailboxview'] = 'Zobrazení schránky';
+$labels['mdnrequests'] = 'Oznámení o doručení';
+$labels['askuser'] = 'zeptat se';
+$labels['autosend'] = 'poslat automaticky';
+$labels['ignore'] = 'ignorovat';
+$labels['readwhendeleted'] = 'Při odstranění označit zprávu jako přečtenou';
+$labels['flagfordeletion'] = 'Zprávu nemazat, pouze označit pro odstranění';
+$labels['showinlineimages'] = 'Zobrazovat připojené obrázky pod textem';
$labels['autosavedraft'] = 'Automaticky uložit rozepsané zprávy';
$labels['everynminutes'] = 'každých $n minut';
$labels['never'] = 'nikdy';
+$labels['messagesdisplaying'] = 'Zobrazování zpráv';
+$labels['messagescomposition'] = 'Psaní zpráv';
$labels['folder'] = 'Složka';
$labels['folders'] = 'Složky';
$labels['foldername'] = 'Jméno složky';
$labels['renamefolder'] = 'Přejmenovat složku';
$labels['deletefolder'] = 'Smazat složku';
$labels['managefolders'] = 'Spravovat složky';
+$labels['specialfolders'] = 'Speciální složky';
$labels['sortby'] = 'Seřadit podle';
$labels['sortasc'] = 'Seřadit vzestupně';
$labels['sortdesc'] = 'Seřadit sestupně';
/*
- +-----------------------------------------------------------------------+
- | language/cz/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Martin Mrajca <martin@moonlake.cz> |
- | joe <joe@humlak.cz> |
- | Jiri Kaderavek <jiri.kaderavek@webstep.net> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/cs_CZ/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Martin Mrajca <martin@moonlake.cz> |
+| joe <joe@humlak.cz> |
+| Jiri Kaderavek <jiri.kaderavek@webstep.net> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1068 2008-02-13 19:24:23Z yllar $
+@version $Id: messages.inc 2045 2008-11-11 15:09:24Z yllar $
*/
$messages['nocontactsfound'] = 'Nemáte žádné kontakty';
$messages['contactnotfound'] = 'Požadovaný kontakt nebyl nalezen.';
$messages['sendingfailed'] = 'Odesílání zprávy selhalo';
+$messages['senttooquickly'] = 'Prosím počkejte $sec sekund před odesláním zprávy';
+$messages['errorsavingsent'] = 'Nastala chyba při ukládání odeslané zprávy';
$messages['errorsaving'] = 'Vyskytla se chyba při ukládání';
$messages['errormoving'] = 'Nemohu přesunout zprávu';
$messages['errordeleting'] = 'Nemohu smazat zprávu';
$messages['deletemessagesconfirm'] = 'Opravdu chcete smazat označené zprávy?';
$messages['deletefolderconfirm'] = 'Chcete opravdu smazat tento adresář?';
$messages['purgefolderconfirm'] = 'Opravdu chcete smazat všechny zprávy v této složce?';
+$messages['foldercreating'] = 'Vytvářím složku...';
+$messages['folderdeleting'] = 'Mažu složku...';
+$messages['folderrenaming'] = 'Přejmenovávám složku...';
$messages['formincomplete'] = 'Formulář nebyl korektně vyplněn';
$messages['noemailwarning'] = 'Zadejte, prosím, platnou adresu';
$messages['nonamewarning'] = 'Zadejte, prosím, jméno';
$messages['errorsendingreceipt'] = 'Potvrzení o přijetí zprávy nebylo možné odeslat';
$messages['nodeletelastidentity'] = 'Alespoň jedna identita musí být ponechána. Identitu nelze odstranit.';
$messages['addsubfolderhint'] = 'Tato složka bude vytvořena jako podsložka aktuálně zvolené složky';
+$messages['forbiddencharacter'] = 'Název složky obsahuje zakázaný znak';
+$messages['selectimportfile'] = 'Prosím vyberte soubor k nahrání';
+$messages['addresswriterror'] = 'Vybraný seznam kontaktů není zapisovatelný';
+$messages['importwait'] = 'Importuji, prosím čekejte...';
+$messages['importerror'] = 'Během importu nastala chyba! Nahraný soubor není ve formátu vCard.';
+$messages['importconfirm'] = '<b>Úspěšně naimportováno $inserted kontaktů, $skipped existujících záznamů přeskočeno</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operace není povolena!';
-?>
\ No newline at end of file
+?>
--- /dev/null
+<?php
+
+/*
++-----------------------------------------------------------------------+
+| language/cy_GB/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2008, RoundQube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Dafydd Tomos <l10n@da.fydd.org> |
++-----------------------------------------------------------------------+
+
+*/
+
+$labels = array();
+$labels['welcome'] = 'Croeso i $product';
+$labels['username'] = 'Enw defnyddiwr';
+$labels['password'] = 'Cyfrinair';
+$labels['server'] = 'Gweinydd';
+$labels['login'] = 'Mewngofnodi';
+$labels['logout'] = 'Allgofnodi';
+$labels['mail'] = 'E-bost';
+$labels['settings'] = 'Gosodiadau Personol';
+$labels['addressbook'] = 'Llyfr Cyfeiriadau';
+$labels['inbox'] = 'Mewnflwch';
+$labels['drafts'] = 'Drafftiau';
+$labels['sent'] = 'Danfonwyd';
+$labels['trash'] = 'Sbwriel';
+$labels['junk'] = 'Sothach';
+$labels['subject'] = 'Pwnc';
+$labels['from'] = 'Anfonwr';
+$labels['to'] = 'Derbyniwr';
+$labels['cc'] = 'Copi';
+$labels['bcc'] = 'Bcc';
+$labels['replyto'] = 'Ateb-I';
+$labels['date'] = 'Dyddiad';
+$labels['size'] = 'Maint';
+$labels['priority'] = 'Blaenoriaeth';
+$labels['organization'] = 'Enw\'r Sefydliad';
+$labels['reply-to'] = 'Ateb-I';
+$labels['mailboxlist'] = 'Ffolderi';
+$labels['messagesfromto'] = 'Negeseuon $from i $to o $count';
+$labels['messagenrof'] = 'Neges $nr o $count';
+$labels['moveto'] = 'Symud i...';
+$labels['download'] = 'Llwytho lawr';
+$labels['filename'] = 'Enw ffeil';
+$labels['filesize'] = 'Maint ffeil';
+$labels['preferhtml'] = 'Dangos HTML';
+$labels['htmlmessage'] = 'Neges HTML';
+$labels['prettydate'] = 'Dyddiadau pert';
+$labels['addtoaddressbook'] = 'Ychwanegu i\'r llyfr cyfeiriadau';
+$labels['sun'] = 'Sul';
+$labels['mon'] = 'Llun';
+$labels['tue'] = 'Maw';
+$labels['wed'] = 'Mer';
+$labels['thu'] = 'Iau';
+$labels['fri'] = 'Gwe';
+$labels['sat'] = 'Sad';
+$labels['sunday'] = 'Dydd Sul';
+$labels['monday'] = 'Dydd Llun';
+$labels['tuesday'] = 'Dydd Mawrth';
+$labels['wednesday'] = 'Dydd Mercher';
+$labels['thursday'] = 'Dydd Iau';
+$labels['friday'] = 'Dydd Gwener';
+$labels['saturday'] = 'Dydd Sadwrn';
+$labels['jan'] = 'Ion';
+$labels['feb'] = 'Chwe';
+$labels['mar'] = 'Maw';
+$labels['apr'] = 'Ebr';
+$labels['may'] = 'Mai';
+$labels['jun'] = 'Meh';
+$labels['jul'] = 'Gor';
+$labels['aug'] = 'Aws';
+$labels['sep'] = 'Med';
+$labels['oct'] = 'Hyd';
+$labels['nov'] = 'Tach';
+$labels['dec'] = 'Rhag';
+$labels['longjan'] = 'Ionawr';
+$labels['longfeb'] = 'Chwefror';
+$labels['longmar'] = 'Mawrth';
+$labels['longapr'] = 'Ebrill';
+$labels['longmay'] = 'Mai';
+$labels['longjun'] = 'Mehefin';
+$labels['longjul'] = 'Gorffennaf';
+$labels['longaug'] = 'Awst';
+$labels['longsep'] = 'Medi';
+$labels['longoct'] = 'Hydref';
+$labels['longnov'] = 'Tachwedd';
+$labels['longdec'] = 'Rhagfyr';
+$labels['today'] = 'Heddiw';
+$labels['checkmail'] = 'Edrych am negeseuon newydd';
+$labels['writenewmessage'] = 'Creu neges newydd';
+$labels['replytomessage'] = 'Ymateb i\'r anfonwr';
+$labels['replytoallmessage'] = 'Ymateb i\'r anfonwr a phob derbyniwr';
+$labels['forwardmessage'] = 'Danfon y neges ymlaen';
+$labels['deletemessage'] = 'Dileu\'r neges';
+$labels['movemessagetotrash'] = 'Symud y neges i\'r sbwriel';
+$labels['printmessage'] = 'Argraffu\'r neges';
+$labels['previousmessage'] = 'Dangos y neges flaenorol';
+$labels['previousmessages'] = 'Dangos y set o negeseuon blaenorol';
+$labels['firstmessage'] = 'Dangos y neges gyntaf';
+$labels['firstmessages'] = 'Dangos y set gyntaf o negeseuon';
+$labels['nextmessage'] = 'Dangos y neges nesaf';
+$labels['nextmessages'] = 'Dangos y set nesaf o negesuoon';
+$labels['lastmessage'] = 'Dangos y neges olaf';
+$labels['lastmessages'] = 'Dangos y set olaf o negeseuon';
+$labels['backtolist'] = 'Nôl i\'r rhestr o negeseuon';
+$labels['viewsource'] = 'Edrych ar y ffynhonnell';
+$labels['markmessages'] = 'Nodi\'r negeseuon';
+$labels['markread'] = 'Wedi eu darllen';
+$labels['markunread'] = 'Heb eu darllen';
+$labels['markflagged'] = 'Wedi eu fflagio';
+$labels['markunflagged'] = 'Heb eu fflagio';
+$labels['select'] = 'Dewis';
+$labels['all'] = 'Popeth';
+$labels['none'] = 'Dim byd';
+$labels['unread'] = 'Heb eu darllen';
+$labels['flagged'] = 'Nodwyd';
+$labels['unanswered'] = 'Heb ei ateb';
+$labels['filter'] = 'Hidlo';
+$labels['compact'] = 'Crynhoi';
+$labels['empty'] = 'Gwagio';
+$labels['purge'] = 'Glanhau';
+$labels['quota'] = 'Defnydd ';
+$labels['unknown'] = 'anhysbys';
+$labels['unlimited'] = 'diderfyn';
+$labels['quicksearch'] = 'Chwiliad cyflym';
+$labels['resetsearch'] = 'Ail-osod chwiliad';
+$labels['openinextwin'] = 'Agor mewn ffenest newydd';
+$labels['compose'] = 'Ysgrifennu neges';
+$labels['savemessage'] = 'Cadw\'r drafft hwn';
+$labels['sendmessage'] = 'Danfon nawr';
+$labels['addattachment'] = 'Atodi ffeil';
+$labels['charset'] = 'Set nodiau';
+$labels['editortype'] = 'Math golygydd';
+$labels['returnreceipt'] = 'Cadarnhau derbyn';
+$labels['checkspelling'] = 'Gwirio sillafu';
+$labels['resumeediting'] = 'Ail-ddechrau golygu';
+$labels['revertto'] = 'Dychwelyd i';
+$labels['attachments'] = 'Atodiadau';
+$labels['upload'] = 'Llwytho fyny';
+$labels['close'] = 'Cau';
+$labels['low'] = 'Isel';
+$labels['lowest'] = 'Isaf';
+$labels['normal'] = 'Cyffredin';
+$labels['high'] = 'Uchel';
+$labels['highest'] = 'Uchaf';
+$labels['nosubject'] = '(dim pwnc)';
+$labels['showimages'] = 'Dangos lluniau';
+$labels['alwaysshow'] = 'Dangos lluniau bob amser o $sender';
+$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Testun plaen';
+$labels['savesentmessagein'] = 'Cadw negeseuon a ddanfonir yn';
+$labels['dontsave'] = 'peidio cadw';
+$labels['maxuploadsize'] = 'Y maint ffeil uchaf a ganiateir yw $size';
+$labels['addcc'] = 'Ychwanegu Cc';
+$labels['addbcc'] = 'Ychwanegu Bcc';
+$labels['addreplyto'] = 'Ychwanegu Ateb-I';
+$labels['mdnrequest'] = 'Mae anfonwr y neges hwn wedi gofyn am hysbysiad eich bod wedi darllen y neges. Hoffech chi hysbysu\'r anfonwr?';
+$labels['receiptread'] = 'Cadarnhad Derbyn (darllenwyd)';
+$labels['yourmessage'] = 'Mae hwn yn gadarnhad o dderbyn eich neges';
+$labels['receiptnote'] = 'Nodyn: Mae\'r cadarnhad hwn yn cydnabod fod y neges wedi ei ddangos ar gyfrifiadur y derbynnydd. \'Does dim sicrwydd fod y derbynydd wedi darllen neu ddeall cynnwys y neges.';
+$labels['name'] = 'Enw ddangosir';
+$labels['firstname'] = 'Enw cyntaf';
+$labels['surname'] = 'Enw olaf';
+$labels['email'] = 'E-bost';
+$labels['addcontact'] = 'Ychwanegu cyswllt newydd';
+$labels['editcontact'] = 'Golygu cyswllt';
+$labels['edit'] = 'Golygu';
+$labels['cancel'] = 'Canslo';
+$labels['save'] = 'Cadw';
+$labels['delete'] = 'Dileu';
+$labels['newcontact'] = 'Creu cerdyn cyswllt newydd';
+$labels['deletecontact'] = 'Dileu y cysylltiadau a ddewiswyd';
+$labels['composeto'] = 'Ysgrifennu neges at';
+$labels['contactsfromto'] = 'Cysylltiadau $from i $to o $count';
+$labels['print'] = 'Argraffu';
+$labels['export'] = 'Allforio';
+$labels['exportvcards'] = 'Allforio cysylltiadau mewn fformat vCard';
+$labels['previouspage'] = 'Dangos y set flaenorol';
+$labels['firstpage'] = 'Dangos y set gyntaf';
+$labels['nextpage'] = 'Dangos y set nesaf';
+$labels['lastpage'] = 'Dangos y set olaf';
+$labels['groups'] = 'Grwpiau';
+$labels['personaladrbook'] = 'Cyfeiriadau Personol';
+$labels['import'] = 'Mewnforio';
+$labels['importcontacts'] = 'Mewnforio cysylltiadau';
+$labels['importfromfile'] = 'Mewnforio o ffeil:';
+$labels['importreplace'] = 'Dileu y llyfr cyfeiriadau cyfan wrth lwytho';
+$labels['importtext'] = 'Fe allwch chi lwytho fyny cysylltiadau o lyfr cyfeiriadau sy\'n bodoli yn barod. Ar hyn o bryd rydyn\' ni\'n cefnogi mewnforio cyfeiriadau yn y fformat <a href="http://en.wikipedia.org/wiki/VCard">vCard</a>.';
+$labels['done'] = 'Wedi gorffen';
+$labels['settingsfor'] = 'Gosodiadau ar gyfer';
+$labels['preferences'] = 'Dewisiadau';
+$labels['userpreferences'] = 'Dewisiadau\'r defnyddiwr';
+$labels['editpreferences'] = 'Golygu dewisiadau\'r defnyddiwr';
+$labels['identities'] = 'Personoliaethau';
+$labels['manageidentities'] = 'Rheoli personoliaethau ar gyfer y cyfri hwn';
+$labels['newidentity'] = 'Personoliaeth newydd';
+$labels['newitem'] = 'Eitem newydd';
+$labels['edititem'] = 'Golygu eitem';
+$labels['setdefault'] = 'Rhagosod';
+$labels['autodetect'] = 'Awto';
+$labels['language'] = 'Iaith';
+$labels['timezone'] = 'Parth amser';
+$labels['pagesize'] = 'Rhesi ar bob tudalen';
+$labels['signature'] = 'Llofnod';
+$labels['dstactive'] = 'Amser arbed golau ddydd';
+$labels['htmleditor'] = 'Ysgrifennu negeseuon HTML';
+$labels['htmlsignature'] = 'Llofnod HTML';
+$labels['previewpane'] = 'Dangos ffenest rhagolwg';
+$labels['skin'] = 'Croen rhyngwyneb';
+$labels['logoutclear'] = 'Clirio\'r Sbwriel wrth allgofnodi';
+$labels['logoutcompact'] = 'Crynhoi\'r Mewnflwch wrth allgofnodi';
+$labels['uisettings'] = 'Rhyngwyneb Defnyddiwr';
+$labels['serversettings'] = 'Gosodiadau Gweinydd';
+$labels['mailboxview'] = 'Ymddangosiad y Blychau';
+$labels['mdnrequests'] = 'Hysbysiadau anfonwr';
+$labels['askuser'] = 'gofyn i\'r defnyddiwr';
+$labels['autosend'] = 'danfon yn awtomatig';
+$labels['ignore'] = 'anwybyddu';
+$labels['readwhendeleted'] = 'Nodi\'r neges fel darllenwyd wrth ddileu';
+$labels['flagfordeletion'] = 'Fflagio\'r neges i\'w ddileu yn hytrach na dileu yn syth';
+$labels['skipdeleted'] = 'Peidio dangos negesuon wedi ei dileu';
+$labels['showremoteimages'] = 'Dangos lluniau o wefannau allanol';
+$labels['fromknownsenders'] = 'o ddanfonwyr hysbys';
+$labels['always'] = 'bob amser';
+$labels['showinlineimages'] = 'Dangos lluniau atodol islaw\'r neges';
+$labels['autosavedraft'] = 'Cadw drafft yn awtomatig';
+$labels['everynminutes'] = 'bob $n munud';
+$labels['keepaliveevery'] = 'bob $n munud';
+$labels['keepalive'] = 'Gofyn am negeseuon newydd ymlaen';
+$labels['never'] = 'byth';
+$labels['messagesdisplaying'] = 'Dangos Negeseuon';
+$labels['messagescomposition'] = 'Ysgrifennu Negeseuon';
+$labels['mimeparamfolding'] = 'Enw atodiadau';
+$labels['2231folding'] = 'RFC 2231 llawn (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'RFC 2047 llawn (arall)';
+$labels['advancedoptions'] = 'Dewisiadau uwch';
+$labels['focusonnewmessage'] = 'Ffocysu\'r porwr ar y neges newydd';
+$labels['checkallfolders'] = 'Chwilio pob ffolder am negeseuon newydd';
+$labels['folder'] = 'Ffolder';
+$labels['folders'] = 'Ffolderi';
+$labels['foldername'] = 'Enw ffolder';
+$labels['subscribed'] = 'Tanysgrifwyd';
+$labels['messagecount'] = 'Negeseuon';
+$labels['create'] = 'Creu';
+$labels['createfolder'] = 'Creu ffolder newydd';
+$labels['rename'] = 'Ailenwi';
+$labels['renamefolder'] = 'Ailenwi ffolder';
+$labels['deletefolder'] = 'Dileu ffolder';
+$labels['managefolders'] = 'Rheoli ffolderi';
+$labels['specialfolders'] = 'Ffolderi arbennig';
+$labels['sortby'] = 'Trefnu yn ôl';
+$labels['sortasc'] = 'Trefn esgynnol';
+$labels['sortdesc'] = 'Trefn ddisgynnol';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+?>
--- /dev/null
+<?php
+
+/*
++-----------------------------------------------------------------------+
+| language/cy_GB/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2008, RoundQube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Dafydd Tomos <l10n@da.fydd.org> |
++-----------------------------------------------------------------------+
+
+*/
+
+$messages = array();
+$messages['loginfailed'] = 'Methwyd a\'ch mewngofnodi';
+$messages['cookiesdisabled'] = 'Nid yw eich porwr yn derbyn cwcis';
+$messages['sessionerror'] = 'Mae\'r sesiwn yn anghywir neu wedi dod i ben';
+$messages['imaperror'] = 'Methwyd cysylltu a\'r gweinydd IMAP';
+$messages['nomessagesfound'] = 'Dim negeseuon wedi eu canfod yn y blwch hwn';
+$messages['loggedout'] = 'Rydych wedi gorffen y sesiwn yn llwyddianus. Hwyl fawr!';
+$messages['mailboxempty'] = 'Blwch yn wag';
+$messages['loading'] = 'Yn llwytho...';
+$messages['loadingdata'] = 'Yn llwytho data...';
+$messages['checkingmail'] = 'Yn edrych am negeseuon newydd...';
+$messages['sendingmessage'] = 'Yn danfon neges...';
+$messages['messagesent'] = 'Danfonwyd y neges yn llwyddiannus';
+$messages['savingmessage'] = 'Yn cadw neges...';
+$messages['messagesaved'] = 'Cadwyd neges i\'r Drafftiau';
+$messages['successfullysaved'] = 'Cadwyd yn llwyddiannus';
+$messages['addedsuccessfully'] = 'Cyswllt wedi ei ychwanegu i\'r llyfr cyfeiriadau yn llwyddiannus';
+$messages['contactexists'] = 'Mae cyswllt gyda\'r cyfeiriad e-bost yma yn bodoli\'n barod';
+$messages['blockedimages'] = 'I amddiffyn eich preifatrwydd, fe ataliwyd lluniau allanol yn y neges yma.';
+$messages['encryptedmessage'] = 'Mae hon yn neges amgryptedig a felly ni ellir ei ddangos. Flin iawn!';
+$messages['nocontactsfound'] = 'Ni gafwyd hyd i unrhyw gysylltiadau';
+$messages['contactnotfound'] = 'Ni gafwyd hyd i\'r cysylltiad gofynnwyd amdano';
+$messages['sendingfailed'] = 'Methwyd danfon y neges';
+$messages['senttooquickly'] = 'Arhoswch $sec eiliad cyn danfon y neges';
+$messages['errorsavingsent'] = 'Fe gafwyd gwall wrth cadw\'r neges ddanfonwyd';
+$messages['errorsaving'] = 'Fe gafwyd gwall wrth gadw';
+$messages['errormoving'] = 'Methwyd symud y neges';
+$messages['errordeleting'] = 'Methwyd dileu y neges';
+$messages['deletecontactconfirm'] = 'Ydych chi wir am ddileu y cysylltiadau ddewiswyd?';
+$messages['deletemessagesconfirm'] = 'Ydych chi wir am ddileu y neges(euon) ddewiswyd?';
+$messages['deletefolderconfirm'] = 'Ydych chi wir am ddileu y ffolder yma?';
+$messages['purgefolderconfirm'] = 'Ydych chi wir am ddileu yr holl negeseuon yn y ffolder yma?';
+$messages['foldercreating'] = 'Yn creu ffolder...';
+$messages['folderdeleting'] = 'Yn dileu ffolder...';
+$messages['folderrenaming'] = 'Yn ailenwi ffolder...';
+$messages['foldermoving'] = 'Yn symud ffolder...';
+$messages['formincomplete'] = 'Nid oedd y ffurflen wedi ei gwblhau yn llawn';
+$messages['noemailwarning'] = 'Rhowch gyfeiriad e-bost dilys';
+$messages['nonamewarning'] = 'Rhowch enw';
+$messages['nopagesizewarning'] = 'Rhowch maint tudalen';
+$messages['nosenderwarning'] = 'Rhowch gyfeiriad e-bost y danfonwr';
+$messages['norecipientwarning'] = 'Rhowch o leiaf un derbynnydd';
+$messages['nosubjectwarning'] = 'Mae\'r pennawd \"Pwnc\" yn wag. Hoffech chi roi un fewn nawr?';
+$messages['nobodywarning'] = 'Danfon y neges hwn heb destun?';
+$messages['notsentwarning'] = 'Ni ddanfonwyd y neges. Hoffech chi gael gwared a\'r neges?';
+$messages['noldapserver'] = 'Dewiswch weinydd ldap i chwilio';
+$messages['nocontactsreturned'] = 'Ni gafwyd hyd i unrhyw gysylltiadau';
+$messages['nosearchname'] = 'Rhowch enw cyswllt neu gyfeiriad e-bost';
+$messages['searchsuccessful'] = 'Cafwyd hyd i $nr neges';
+$messages['searchnomatch'] = 'Ni gafwyd hyd i unrhyw ganlyniadau chwilio';
+$messages['searching'] = 'Yn chwilio...';
+$messages['checking'] = 'Yn gofyn...';
+$messages['nospellerrors'] = 'Ni gafwyd hyd i unrhyw wallau gwirio';
+$messages['folderdeleted'] = 'Dilëwyd y ffolder yn llwyddiannus';
+$messages['deletedsuccessfully'] = 'Dilëwyd yn llwyddiannus';
+$messages['converting'] = 'Yn cael gwared a\'r fformatio...';
+$messages['messageopenerror'] = 'Methwyd llwytho\'r neges o\'r gweinydd';
+$messages['fileuploaderror'] = 'Methwyd llwytho\'r ffeil i fyny';
+$messages['filesizeerror'] = 'Mae\'r ffeil a lwythyd fyny yn fwy na\'r maint uchaf ganiateir o $size';
+$messages['copysuccess'] = 'Copïwyd $nr cyfeiriad yn llwyddiannus';
+$messages['copyerror'] = 'Methwyd copïo unrhyw gyfeiriad';
+$messages['sourceisreadonly'] = 'Mae ffynhonnell y cyfeiriadau i\'w ddarllen yn unig';
+$messages['errorsavingcontact'] = 'Methwyd cadw cyfeiriad y cyswllt';
+$messages['movingmessage'] = 'Yn symud neges...';
+$messages['receiptsent'] = 'Danfonwyd cadarnhad derbyn yn llwyddiannus';
+$messages['errorsendingreceipt'] = 'Methwyd danfon cadarnhad derbyn';
+$messages['nodeletelastidentity'] = 'Allwch chi ddim dileu\'r personoliaeth yma, hwn yw\'r un olaf.';
+$messages['addsubfolderhint'] = 'Mi fydd y ffolder yma\'n cael ei greu fel is-ffolder o\'r un sydd wedi ei ddewis ar hyn o bryd';
+$messages['forbiddencharacter'] = 'Mae enw\'r ffolder yn cynnwys llythyren annerbynniol';
+$messages['selectimportfile'] = 'Dewiswch ffeil i\'w lwytho fyny';
+$messages['addresswriterror'] = 'Nid yw\'n bosib ysgrifennu i\'r llyfr cyfeiriadau ';
+$messages['importwait'] = 'Yn mewnforio, arhoswch os gwelwch yn dda...';
+$messages['importerror'] = 'Methwyd a mewnforio! Nid yw\'r ffeil a lwythwyd fyny yn ffeil vCard dilys.';
+$messages['importconfirm'] = '<b>Fe mewnforiwyd $inserted cyswllt yn llwyddiannus, anwybyddwyd $skipped cofnod presennol</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Ni chaniateir y weithred!';
+$messages['nofromaddress'] = 'Cyfeiriad e-bost ar goll yn y personoliaeth a ddewiswyd';
+$messages['editorwarning'] = 'Mi fydd newid i\'r golygydd testun plaen yn golygu byddwch chi\'n colli unrhyw arddulliau yn eich testun. Hoffech chi barhau?';
+
+?>
/*
- +-----------------------------------------------------------------------+
- | language/da/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Martin Moeller <martin@liga.dk> |
- | Jesper R. Meyer <jrm@upthere.dk> |
- | Søren Aggeboe <soren@aggeboe.dk> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/da/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Martin Moeller <martin@liga.dk> |
+| Jesper R. Meyer <jrm@upthere.dk> |
+| Søren Aggeboe <soren@aggeboe.dk> |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 1160 2008-03-01 15:32:44Z yllar $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['thursday'] = 'Torsdag';
$labels['friday'] = 'Fredag';
$labels['saturday'] = 'Lørdag';
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'Maj';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Okt';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+$labels['longjan'] = 'Januar';
+$labels['longfeb'] = 'Februar';
+$labels['longmar'] = 'Marts';
+$labels['longapr'] = 'April';
+$labels['longmay'] = 'Maj';
+$labels['longjun'] = 'Juni';
+$labels['longjul'] = 'Juli';
+$labels['longaug'] = 'August';
+$labels['longsep'] = 'September';
+$labels['longoct'] = 'Oktober';
+$labels['longnov'] = 'November';
+$labels['longdec'] = 'December';
$labels['today'] = 'I dag';
$labels['checkmail'] = 'Se efter nye beskeder';
$labels['writenewmessage'] = 'Skriv en ny besked';
$labels['markmessages'] = 'Markér beskeder';
$labels['markread'] = 'Som læst';
$labels['markunread'] = 'Som ulæst';
+$labels['markflagged'] = 'Som markeret';
+$labels['markunflagged'] = 'Som umarkeret';
$labels['select'] = 'Vælg';
$labels['all'] = 'Alle';
$labels['none'] = 'Ingen';
$labels['unlimited'] = 'ubegrænset';
$labels['quicksearch'] = 'Hurtigsøgning';
$labels['resetsearch'] = 'Nulstil søgning';
+$labels['openinextwin'] = 'Åbn i nyt vindue';
$labels['compose'] = 'Forfat en besked';
$labels['savemessage'] = 'Gem denne kladde';
$labels['sendmessage'] = 'Send beskeden nu';
$labels['highest'] = 'Højest';
$labels['nosubject'] = '(intet emne)';
$labels['showimages'] = 'Vis billeder';
+$labels['alwaysshow'] = 'Vis altid billeder fra $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Almindelig tekst';
+$labels['savesentmessagein'] = 'Gem afsendt besked i';
+$labels['dontsave'] = 'gem ikke';
+$labels['maxuploadsize'] = 'Maksimale tilladte filstørrelse er $size';
$labels['addcc'] = 'Tilføj Cc';
$labels['addbcc'] = 'Tilføj Bcc';
$labels['addreplyto'] = 'Tilføj Svar-Til adresse';
$labels['contactsfromto'] = 'Kontakter $from til $to af $count';
$labels['print'] = 'Print';
$labels['export'] = 'Eksport';
+$labels['exportvcards'] = 'Eksportér kontakter i vCard format';
$labels['previouspage'] = 'Vis forrige sæt';
$labels['firstpage'] = 'Vis første sæt';
$labels['nextpage'] = 'Vis næste sæt';
$labels['lastpage'] = 'Vis sidste sæt';
$labels['groups'] = 'Grupper';
$labels['personaladrbook'] = 'Personlige Adresser';
+$labels['import'] = 'Importér';
+$labels['importcontacts'] = 'Importér kontakter';
+$labels['importfromfile'] = 'Importér fra fil:';
+$labels['importreplace'] = 'Overskriv hele adressebogen';
+$labels['importtext'] = 'Du kan uploade kontakter fra en eksisterende adressebog.Vi understøtter i øjeblikket import af adresser i vCard formatet.';
+$labels['done'] = 'Færdig';
$labels['settingsfor'] = 'Indstillinger for';
$labels['preferences'] = 'Præferencer';
$labels['userpreferences'] = 'Brugerpræferencer';
$labels['newitem'] = 'Nyt punkt';
$labels['edititem'] = 'Redigér punkt';
$labels['setdefault'] = 'Sæt standard';
+$labels['autodetect'] = 'Automatisk';
$labels['language'] = 'Sprog';
$labels['timezone'] = 'Tidszone';
$labels['pagesize'] = 'Rækker per side';
$labels['htmleditor'] = 'Skriv HTML-besked';
$labels['htmlsignature'] = 'HTML-signatur';
$labels['previewpane'] = 'Forhåndsvisning';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Tøm Skrald når jeg logger af';
+$labels['logoutcompact'] = 'Komprimér Indbakke når jeg logger af';
+$labels['uisettings'] = 'Brugerinterface';
+$labels['serversettings'] = 'Serverindstillinger';
+$labels['askuser'] = 'spørg brugeren';
+$labels['autosend'] = 'send automatisk';
+$labels['ignore'] = 'ignorér';
+$labels['readwhendeleted'] = 'Markér beskeden som læst ved sletning';
+$labels['skipdeleted'] = 'Skjul slettede beskeder';
+$labels['showinlineimages'] = 'Vis vedhæftede billeder under beskeden';
$labels['autosavedraft'] = 'Gem kladde automatisk';
$labels['everynminutes'] = 'hver $n. minut';
$labels['never'] = 'aldrig';
+$labels['messagesdisplaying'] = 'Viser beskeder';
+$labels['messagescomposition'] = 'Skriver nye beskeder';
+$labels['mimeparamfolding'] = 'Navne på vedhæftninger';
+$labels['2231folding'] = 'Fuld RFC 2231 understøttelse (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 understøttelse (MS Outlook)';
+$labels['2047folding'] = 'Fuld RFC 2047 understøttelse (andre)';
+$labels['advancedoptions'] = 'Advancerede muligheder';
$labels['folder'] = 'Mappe';
$labels['folders'] = 'Mapper';
$labels['foldername'] = 'Mappenavn';
$labels['renamefolder'] = 'Omdøb mappe';
$labels['deletefolder'] = 'Slet mappe';
$labels['managefolders'] = 'Administrér mapper';
+$labels['specialfolders'] = 'Specielle mapper';
$labels['sortby'] = 'Sortér efter';
$labels['sortasc'] = 'Ældste først';
$labels['sortdesc'] = 'Nyeste først';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
?>
/*
- +-----------------------------------------------------------------------+
- | language/de_CH/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com> |
- | Corrections: Alexander Stiebing <ja.stiebing[NOSPAM]@web.de> |
- +-----------------------------------------------------------------------+
-
- @version $Id: labels.inc 1446 2008-05-28 21:36:42Z thomasb $
++-----------------------------------------------------------------------+
+| language/de_CH/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Thomas Bruederli <roundcube@gmail.com> |
+| Corrections: Alexander Stiebing <ja.stiebing[NOSPAM]@web.de> |
++-----------------------------------------------------------------------+
+
+@version $Id: labels.inc 2124 2008-12-06 17:59:26Z thomasb $
*/
$labels = array();
-
-// login page // Login-Seite
-$labels['welcome'] = 'Willkommen bei $product';
-$labels['username'] = 'Benutzername';
-$labels['password'] = 'Passwort';
-$labels['server'] = 'Server';
-$labels['login'] = 'Login';
-
-// taskbar // Aktionsleiste
-$labels['logout'] = 'Logout';
-$labels['mail'] = 'E-Mail';
+$labels['welcome'] = 'Willkommen bei $product';
+$labels['username'] = 'Benutzername';
+$labels['password'] = 'Passwort';
+$labels['server'] = 'Server';
+$labels['login'] = 'Login';
+$labels['logout'] = 'Logout';
+$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Einstellungen';
$labels['addressbook'] = 'Adressbuch';
-
-// mailbox names // E-Mail-Ordnernamen
-$labels['inbox'] = 'Posteingang';
+$labels['inbox'] = 'Posteingang';
$labels['drafts'] = 'Entwürfe';
-$labels['sent'] = 'Gesendet';
-$labels['trash'] = 'Gelöscht';
-$labels['junk'] = 'Junk';
-
-// message listing // Nachrichtenliste
+$labels['sent'] = 'Gesendet';
+$labels['trash'] = 'Gelöscht';
+$labels['junk'] = 'Junk';
$labels['subject'] = 'Betreff';
-$labels['from'] = 'Absender';
-$labels['to'] = 'Empfänger';
-$labels['cc'] = 'Kopie (CC)';
-$labels['bcc'] = 'Blind-Kopie';
+$labels['from'] = 'Absender';
+$labels['to'] = 'Empfänger';
+$labels['cc'] = 'Kopie (CC)';
+$labels['bcc'] = 'Blind-Kopie';
$labels['replyto'] = 'Antwort an';
-$labels['date'] = 'Datum';
-$labels['size'] = 'Grösse';
+$labels['date'] = 'Datum';
+$labels['size'] = 'Grösse';
$labels['priority'] = 'Priorität';
$labels['organization'] = 'Organisation';
-
-// aliases // [Platzhalter]
-$labels['reply-to'] = $labels['replyto'];
-
+$labels['reply-to'] = 'Antwort an';
$labels['mailboxlist'] = 'Ordner';
$labels['messagesfromto'] = 'Nachrichten $from bis $to von $count';
$labels['messagenrof'] = 'Nachricht $nr von $count';
-
-$labels['moveto'] = 'Verschieben nach...';
+$labels['moveto'] = 'Verschieben nach...';
$labels['download'] = 'Download';
-
$labels['filename'] = 'Dateiname';
$labels['filesize'] = 'Dateigrösse';
-
$labels['preferhtml'] = 'HTML bevorzugen';
$labels['htmlmessage'] = 'HTML Nachricht';
$labels['prettydate'] = 'Kurze Datumsanzeige';
-
$labels['addtoaddressbook'] = 'Ins Adressbuch übernehmen';
-
-// weekdays short // Wochentage (Abkürzungen)
$labels['sun'] = 'So';
$labels['mon'] = 'Mo';
$labels['tue'] = 'Di';
$labels['thu'] = 'Do';
$labels['fri'] = 'Fr';
$labels['sat'] = 'Sa';
-
-// weekdays long // Wochentage (normal)
-$labels['sunday'] = 'Sonntag';
-$labels['monday'] = 'Montag';
-$labels['tuesday'] = 'Dienstag';
+$labels['sunday'] = 'Sonntag';
+$labels['monday'] = 'Montag';
+$labels['tuesday'] = 'Dienstag';
$labels['wednesday'] = 'Mittwoch';
-$labels['thursday'] = 'Donnerstag';
-$labels['friday'] = 'Freitag';
-$labels['saturday'] = 'Samstag';
-
-// months short
+$labels['thursday'] = 'Donnerstag';
+$labels['friday'] = 'Freitag';
+$labels['saturday'] = 'Samstag';
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mär';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dez';
-
-// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'März';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Dezember';
-
$labels['today'] = 'Heute';
-
-// toolbar buttons // Symbolleisten-Tipps
-$labels['checkmail'] = 'Überprüfung auf neue Anzeigen';
-$labels['writenewmessage'] = 'Neue Nachricht schreiben';
-$labels['replytomessage'] = 'Antwort verfassen';
+$labels['checkmail'] = 'Überprüfung auf neue Anzeigen';
+$labels['writenewmessage'] = 'Neue Nachricht schreiben';
+$labels['replytomessage'] = 'Antwort verfassen';
$labels['replytoallmessage'] = 'Antwort an Absender und alle Empfänger verfassen';
-$labels['forwardmessage'] = 'Nachricht weiterleiten';
-$labels['deletemessage'] = 'Nachricht löschen';
+$labels['forwardmessage'] = 'Nachricht weiterleiten';
+$labels['deletemessage'] = 'Nachricht löschen';
$labels['movemessagetotrash'] = 'Nachricht in den Papierkorb verschieben';
-$labels['printmessage'] = 'Diese Nachricht drucken';
-$labels['previousmessage'] = 'Vorherige Nachricht anzeigen';
+$labels['printmessage'] = 'Diese Nachricht drucken';
+$labels['previousmessage'] = 'Vorherige Nachricht anzeigen';
$labels['previousmessages'] = 'Vorherige Nachrichten anzeigen';
-$labels['firstmessage'] = 'Die erste Nachricht anzeigen';
-$labels['firstmessages'] = 'Die ersten Nachrichten anzeigen';
-$labels['nextmessage'] = 'Nächste Nachricht anzeigen';
-$labels['nextmessages'] = 'Weitere Nachrichten anzeigen';
-$labels['lastmessage'] = 'Die letzte Nachricht anzeigen';
-$labels['lastmessages'] = 'Die letzten Nachrichten anzeigen';
-$labels['backtolist'] = 'Zurück zur Liste';
-$labels['viewsource'] = 'Quelltext anzeigen';
-$labels['markmessages'] = 'Nachrichten markieren';
-$labels['markread'] = 'Als gelesen';
-$labels['markunread'] = 'Als ungelesen';
-
+$labels['firstmessage'] = 'Die erste Nachricht anzeigen';
+$labels['firstmessages'] = 'Die ersten Nachrichten anzeigen';
+$labels['nextmessage'] = 'Nächste Nachricht anzeigen';
+$labels['nextmessages'] = 'Weitere Nachrichten anzeigen';
+$labels['lastmessage'] = 'Die letzte Nachricht anzeigen';
+$labels['lastmessages'] = 'Die letzten Nachrichten anzeigen';
+$labels['backtolist'] = 'Zurück zur Liste';
+$labels['viewsource'] = 'Quelltext anzeigen';
+$labels['markmessages'] = 'Nachrichten markieren';
+$labels['markread'] = 'Als gelesen';
+$labels['markunread'] = 'Als ungelesen';
+$labels['markflagged'] = 'Stern hinzufügen';
+$labels['markunflagged'] = 'Stern entfernen';
$labels['select'] = 'Auswählen';
-$labels['all'] = 'Alle';
-$labels['none'] = 'Keine';
+$labels['all'] = 'Alle';
+$labels['none'] = 'Keine';
$labels['unread'] = 'Ungelesene';
-
+$labels['flagged'] = 'Markierte';
+$labels['unanswered'] = 'Unbeantwortete';
+$labels['filter'] = 'Filter';
$labels['compact'] = 'Packen';
$labels['empty'] = 'Leeren';
$labels['purge'] = 'Aufräumen';
-
$labels['quota'] = 'Verwendeter Speicherplatz';
-$labels['unknown'] = 'unbekannt';
-$labels['unlimited'] = 'unlimitiert';
-
-$labels['quicksearch'] = 'Schnellsuche';
-$labels['resetsearch'] = 'Löschen';
-
-
-// message compose // Nachrichten erstellen
-$labels['compose'] = 'Neue Nachricht verfassen';
-$labels['savemessage'] = 'Nachricht speichern';
-$labels['sendmessage'] = 'Nachricht jetzt senden';
-$labels['addattachment'] = 'Datei anfügen';
-$labels['charset'] = 'Zeichensatz';
+$labels['unknown'] = 'unbekannt';
+$labels['unlimited'] = 'unlimitiert';
+$labels['quicksearch'] = 'Schnellsuche';
+$labels['resetsearch'] = 'Löschen';
+$labels['openinextwin'] = 'In neuem Fenster öffnen';
+$labels['compose'] = 'Neue Nachricht verfassen';
+$labels['savemessage'] = 'Nachricht speichern';
+$labels['sendmessage'] = 'Nachricht jetzt senden';
+$labels['addattachment'] = 'Datei anfügen';
+$labels['charset'] = 'Zeichensatz';
$labels['editortype'] = 'Editor-Typ';
$labels['returnreceipt'] = 'Empfangsbestätigung';
-
$labels['checkspelling'] = 'Rechtschreibung prüfen';
-$labels['resumeediting'] = 'Bearbeitung fortzetzen';
+$labels['resumeediting'] = 'Bearbeitung fortsetzen';
$labels['revertto'] = 'Zurück zu';
-
$labels['attachments'] = 'Anhänge';
$labels['upload'] = 'Hochladen';
-$labels['close'] = 'Schliessen';
-
-$labels['low'] = 'Niedrig';
-$labels['lowest'] = 'Niedrigste';
-$labels['normal'] = 'Normal';
-$labels['high'] = 'Hoch';
+$labels['close'] = 'Schliessen';
+$labels['low'] = 'Niedrig';
+$labels['lowest'] = 'Niedrigste';
+$labels['normal'] = 'Normal';
+$labels['high'] = 'Hoch';
$labels['highest'] = 'Höchste';
-
-$labels['nosubject'] = '(kein Betreff)';
+$labels['nosubject'] = '(kein Betreff)';
$labels['showimages'] = 'Bilder anzeigen';
-
+$labels['alwaysshow'] = 'Bilder von $sender immer zeigen';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Klartext';
-
+$labels['savesentmessagein'] = 'Nachricht speichern in';
+$labels['dontsave'] = 'nicht speichern';
+$labels['maxuploadsize'] = 'Maximal erlaubte Dateigrösse ist $size';
$labels['addcc'] = 'Cc hinzufügen';
$labels['addbcc'] = 'Bcc hinzufügen';
$labels['addreplyto'] = 'Antwortadresse hinzufügen';
-
-// mdn
$labels['mdnrequest'] = 'Der Sender dieser Nachricht hat eine Empfangsbestätigung angefordert. Möchten Sie diese jetzt senden?';
$labels['receiptread'] = 'Empfangsbestätigung (gelesen)';
$labels['yourmessage'] = 'Dieses ist eine Empfangsbestätigung für Ihre Nachricht';
$labels['receiptnote'] = 'Hinweis: Der Empfänger hat den Empfang der Nachricht bestätigt. Dieses ist keine Garantie, dass die Nachricht gelesen und verstanden wurde.';
-
-// address book // Adressbuch
-$labels['name'] = 'Anzeigename';
+$labels['name'] = 'Anzeigename';
$labels['firstname'] = 'Vorname';
-$labels['surname'] = 'Nachname';
-$labels['email'] = 'E-Mail';
-
+$labels['surname'] = 'Nachname';
+$labels['email'] = 'E-Mail';
$labels['addcontact'] = 'Kontakt hinzufügen';
$labels['editcontact'] = 'Kontakt bearbeiten';
-
-$labels['edit'] = 'Bearbeiten';
+$labels['edit'] = 'Bearbeiten';
$labels['cancel'] = 'Abbrechen';
-$labels['save'] = 'Speichern';
+$labels['save'] = 'Speichern';
$labels['delete'] = 'Löschen';
-
-$labels['newcontact'] = 'Neuen Kontakt erfassen';
-$labels['deletecontact'] = 'Gewählte Kontakte löschen';
-$labels['composeto'] = 'Nachricht verfassen';
+$labels['newcontact'] = 'Neuen Kontakt erfassen';
+$labels['deletecontact'] = 'Gewählte Kontakte löschen';
+$labels['composeto'] = 'Nachricht verfassen';
$labels['contactsfromto'] = 'Kontakte $from bis $to von $count';
-$labels['print'] = 'Drucken';
-$labels['export'] = 'Exportieren';
-
-$labels['previouspage'] = 'Eine Seite zurück';
-$labels['firstpage'] = 'Erste Seite';
-$labels['nextpage'] = 'Nächste Seite';
-$labels['lastpage'] = 'Letzte Seite';
-
+$labels['print'] = 'Drucken';
+$labels['export'] = 'Exportieren';
+$labels['exportvcards'] = 'Kontakte im vCard-Format exportieren';
+$labels['previouspage'] = 'Eine Seite zurück';
+$labels['firstpage'] = 'Erste Seite';
+$labels['nextpage'] = 'Nächste Seite';
+$labels['lastpage'] = 'Letzte Seite';
$labels['groups'] = 'Gruppen';
$labels['personaladrbook'] = 'Persönliches Adressbuch';
-
-
-// settings // Einstellungen
-$labels['settingsfor'] = 'Einstellungen für';
-
-$labels['preferences'] = 'Einstellungen';
-$labels['userpreferences'] = 'Benutzereinstellungen';
-$labels['editpreferences'] = 'Einstellungen bearbeiten';
-
-$labels['identities'] = 'Absender';
-$labels['manageidentities'] = 'Absender für dieses Konto verwalten';
-$labels['newidentity'] = 'Neuer Absender';
-
-$labels['newitem'] = 'Neuer Eintrag';
-$labels['edititem'] = 'Eintrag bearbeiten';
-
-$labels['setdefault'] = 'Als Standard';
-$labels['language'] = 'Sprache';
-$labels['timezone'] = 'Zeitzone';
-$labels['pagesize'] = 'Einträge pro Seite';
+$labels['import'] = 'Importieren';
+$labels['importcontacts'] = 'Adressen importieren';
+$labels['importfromfile'] = 'Import aus Datei:';
+$labels['importreplace'] = 'Bestehendes Adressbuch komplett ersetzen';
+$labels['importtext'] = 'Sie können Kontakte aus einem bestehenden Adressbuch hochladen.<br/>Es können Adressbücher im <a href="http://de.wikipedia.org/wiki/VCard">vCard-Format</a> importiert werden.';
+$labels['done'] = 'Fertig';
+$labels['settingsfor'] = 'Einstellungen für';
+$labels['preferences'] = 'Einstellungen';
+$labels['userpreferences'] = 'Benutzereinstellungen';
+$labels['editpreferences'] = 'Einstellungen bearbeiten';
+$labels['identities'] = 'Absender';
+$labels['manageidentities'] = 'Absender für dieses Konto verwalten';
+$labels['newidentity'] = 'Neuer Absender';
+$labels['newitem'] = 'Neuer Eintrag';
+$labels['edititem'] = 'Eintrag bearbeiten';
+$labels['setdefault'] = 'Als Standard';
+$labels['autodetect'] = 'Automatisch';
+$labels['language'] = 'Sprache';
+$labels['timezone'] = 'Zeitzone';
+$labels['pagesize'] = 'Einträge pro Seite';
$labels['signature'] = 'Signatur';
-$labels['dstactive'] = 'Sommerzeit';
+$labels['dstactive'] = 'Sommerzeit';
$labels['htmleditor'] = 'HTML-Nachrichten verfassen';
$labels['htmlsignature'] = 'HTML-Signatur';
$labels['previewpane'] = 'Nachrichtenvorschau anzeigen';
-
+$labels['skin'] = 'Oberflächendesign';
$labels['logoutclear'] = 'Papierkorb beim Abmelden leeren';
$labels['logoutcompact'] = 'Posteingang beim Abmleden packen';
$labels['uisettings'] = 'Benutzeroberfläche';
$labels['autosend'] = 'automatisch senden';
$labels['ignore'] = 'ignorieren';
$labels['readwhendeleted'] = 'Beim Löschen als gelesen markieren';
-$labels['flagfordeletion'] = 'Als gelöscht markieren wenn kein Papierkorb';
-
-$labels['autosavedraft'] = 'Entwurf autom. speichern';
-$labels['everynminutes'] = 'alle $n Minuten';
-$labels['never'] = 'nie';
-
-$labels['folder'] = 'Ordner';
-$labels['folders'] = 'Ordner';
-$labels['foldername'] = 'Ordnername';
-$labels['subscribed'] = 'Abonniert';
+$labels['flagfordeletion'] = 'Als gelöscht markieren anstatt in den Papierkorb verschieben';
+$labels['skipdeleted'] = 'Zeige keine gelöschten Nachrichten an';
+$labels['showremoteimages'] = 'Zeige entfernte eingebettete Bilder an';
+$labels['fromknownsenders'] = 'bei bekannten Absendern';
+$labels['always'] = 'immer';
+$labels['showinlineimages'] = 'Stelle angehängte Bilder unter der Nachricht dar';
+$labels['autosavedraft'] = 'Entwurf autom. speichern';
+$labels['everynminutes'] = 'alle $n Minuten';
+$labels['keepaliveevery'] = '$n Minute(n)';
+$labels['keepalive'] = 'Auf neue Nachrichten prüfen nach';
+$labels['never'] = 'nie';
+$labels['messagesdisplaying'] = 'Nachrichtendarstellung';
+$labels['messagescomposition'] = 'Nachrichtenerstellung';
+$labels['mimeparamfolding'] = 'Namen der Dateianhänge';
+$labels['2231folding'] = 'Vollständig RFC 2231 kompatibel (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 kompatibel (Microsoft Outlook)';
+$labels['2047folding'] = 'Vollständig RFC 2047 kompatibel (andere)';
+$labels['advancedoptions'] = 'Erweiterte Einstellungen';
+$labels['focusonnewmessage'] = 'Fokussiere Browserfenster bei neuen Nachrichten';
+$labels['checkallfolders'] = 'Alle Ordner auf neue Nachrichten prüfen';
+$labels['folder'] = 'Ordner';
+$labels['folders'] = 'Ordner';
+$labels['foldername'] = 'Ordnername';
+$labels['subscribed'] = 'Abonniert';
$labels['messagecount'] = 'Nachrichten';
-$labels['create'] = 'Erstellen';
-$labels['createfolder'] = 'Neuen Ordner erstellen';
+$labels['create'] = 'Erstellen';
+$labels['createfolder'] = 'Neuen Ordner erstellen';
$labels['rename'] = 'Umbenennen';
$labels['renamefolder'] = 'Ordner umbenennen';
-$labels['deletefolder'] = 'Ordner löschen';
-$labels['managefolders'] = 'Ordner verwalten';
-
+$labels['deletefolder'] = 'Ordner löschen';
+$labels['managefolders'] = 'Ordner verwalten';
+$labels['specialfolders'] = 'Spezialordner';
$labels['sortby'] = 'Sortieren nach';
-$labels['sortasc'] = 'aufsteigend sortieren';
+$labels['sortasc'] = 'aufsteigend sortieren';
$labels['sortdesc'] = 'absteigend sortieren';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/de_CH/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/de_CH/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Thomas Bruederli <roundcube@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1456 2008-05-30 13:27:13Z thomasb $
+@version $Id: messages.inc 2063 2008-11-17 18:52:43Z alec $
*/
$messages = array();
-$messages['loginfailed'] = 'Login fehlgeschlagen';
+$messages['loginfailed'] = 'Login fehlgeschlagen';
$messages['cookiesdisabled'] = 'Ihr Browser akzeptiert keine Cookies';
$messages['sessionerror'] = 'Ihre Session ist ungültig oder abgelaufen';
$messages['imaperror'] = 'Keine Verbindung zum IMAP Server';
$messages['nomessagesfound'] = 'Keine Nachrichten in diesem Ordner';
$messages['loggedout'] = 'Sie haben Ihre Session erfolgreich beendet. Auf Wiedersehen!';
$messages['mailboxempty'] = 'Ordner ist leer';
-$messages['loading'] = $messages['loadingdata'] = 'Daten werden geladen...';
+$messages['loading'] = 'Daten werden geladen...';
+$messages['loadingdata'] = 'Daten werden geladen...';
$messages['checkingmail'] = 'Überprüfung auf neue Nachrichten...';
$messages['sendingmessage'] = 'Nachricht wird gesendet...';
$messages['messagesent'] = 'Nachricht erfolgreich gesendet';
$messages['encryptedmessage'] = 'Dies ist eine verschlüsselte Nachricht und kann leider nicht angezeigt werden.';
$messages['nocontactsfound'] = 'Keine Kontakte gefunden';
$messages['contactnotfound'] = 'Die gewählte Adresse wurde nicht gefunden';
-
$messages['sendingfailed'] = 'Versand der Nachricht fehlgeschlagen';
+$messages['senttooquickly'] = 'Bitte warten Sie $sec Sekunde(n) vor dem Senden dieser Nachricht';
+$messages['errorsavingsent'] = 'Ein Fehler ist beim Speichern der gesendeten Nachricht aufgetreten';
$messages['errorsaving'] = 'Beim Speichern ist ein Fehler aufgetreten';
$messages['errormoving'] = 'Nachricht konnte nicht verschoben werden';
$messages['errordeleting'] = 'Nachricht konnte nicht gelöscht werden';
-$messages['deletecontactconfirm'] = 'Wollen Sie die ausgewählten Kontakte wirklich löschen';
+$messages['deletecontactconfirm'] = 'Wollen Sie die ausgewählten Kontakte wirklich löschen';
$messages['deletemessagesconfirm'] = 'Wollen Sie die ausgewählten Nachrichten wirklich löschen?';
-$messages['deletefolderconfirm'] = 'Wollen Sie diesen Ordner wirklich löschen?';
-$messages['purgefolderconfirm'] = 'Wollen Sie diesen Ordner wirklich leeren?';
-$messages['formincomplete'] = 'Das Formular wurde nicht vollständig ausgefüllt';
-$messages['noemailwarning'] = 'Bitte geben Sie eine gültige E-Mail-Adresse ein';
-$messages['nonamewarning'] = 'Bitte geben Sie einen Namen ein';
+$messages['deletefolderconfirm'] = 'Wollen Sie diesen Ordner wirklich löschen?';
+$messages['purgefolderconfirm'] = 'Wollen Sie diesen Ordner wirklich leeren?';
+$messages['foldercreating'] = 'Erstelle Ordner...';
+$messages['folderdeleting'] = 'Lösche Ordner...';
+$messages['folderrenaming'] = 'Nenne Ordner um...';
+$messages['foldermoving'] = 'Verschiebe Ordner...';
+$messages['formincomplete'] = 'Das Formular wurde nicht vollständig ausgefüllt';
+$messages['noemailwarning'] = 'Bitte geben Sie eine gültige E-Mail-Adresse ein';
+$messages['nonamewarning'] = 'Bitte geben Sie einen Namen ein';
$messages['nopagesizewarning'] = 'Bitte geben Sie eine Einträge pro Seite ein';
+$messages['nosenderwarning'] = 'Bitte geben Sie die E-Mail-Adresse des Senders an';
$messages['norecipientwarning'] = 'Bitte geben Sie mindestens einen Empfänger an';
-$messages['nosubjectwarning'] = 'Die Betreffzeile ist leer. Möchten Sie jetzt einen Betreff eingeben?';
+$messages['nosubjectwarning'] = 'Die Betreffzeile ist leer. Möchten Sie jetzt einen Betreff eingeben?';
$messages['nobodywarning'] = 'Diese Nachricht ohne Inhalt senden?';
$messages['notsentwarning'] = 'Ihre Nachricht wurde nicht gesendet. Wollen Sie die Nachricht verwerfen?';
$messages['noldapserver'] = 'Bitte wählen Sie einen LDAP-Server aus';
$messages['checking'] = 'Prüfe...';
$messages['nospellerrors'] = 'Keine Rechtschreibfehler gefunden';
$messages['folderdeleted'] = 'Ordner erfolgreich gelöscht';
-$messages['deletedsuccessfully'] = "Erfolgreich gelöscht";
+$messages['deletedsuccessfully'] = 'Erfolgreich gelöscht';
$messages['converting'] = 'Entferne Formatierungen...';
$messages['messageopenerror'] = 'Die Nachricht konnte nicht vom Server geladen werden';
$messages['fileuploaderror'] = 'Der Dateiupload ist fehlgeschlagen';
$messages['filesizeerror'] = 'Die Datei überschreitet die maximale Grösse von $size';
-
$messages['copysuccess'] = '$nr Adressen erfolgreich kopiert';
$messages['copyerror'] = 'Die Adressen konnten nicht kopiert werden';
$messages['sourceisreadonly'] = 'Das Adressverzeichnis kann nicht verändert werden';
$messages['errorsavingcontact'] = 'Die Änderungen konnten nicht gespeichert werden';
-
$messages['movingmessage'] = 'Die E-Mail wird verschoben...';
$messages['receiptsent'] = 'Bestätigung erfolgreich gesendet';
$messages['errorsendingreceipt'] = 'Bestätigung konnte nicht gesendet werden';
-
$messages['nodeletelastidentity'] = 'Sie können diesen Absender nicht löschen';
$messages['addsubfolderhint'] = 'Wird als Unterdornder des aktuell selektieren Ordners erstellt';
$messages['forbiddencharacter'] = 'Der Ordnername enthält ein ungültiges Zeichen';
+$messages['selectimportfile'] = 'Bitte wählen Sie eine Datei zum Importieren aus';
+$messages['addresswriterror'] = 'Das gewählte Adressbuch kann nicht verändert werden';
+$messages['importwait'] = 'Daten werden importiert, bitte warten...';
+$messages['importerror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist nicht im vCard-Format.';
+$messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert und $skipped bestehende Einträge übersprungen</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operation nicht erlaubt!';
+$messages['nofromaddress'] = 'Fehlende E-Mail-Adresse in ausgewählter Identität';
+$messages['editorwarning'] = 'Beim Wechseln in den Texteditor gehen alle Textformatierungen verloren. Möchten Sie fortfahren?';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/de_DE/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Marcel Schlesinger <info@marcel-schlesinger.de> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/de_DE/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Marcel Schlesinger <info@marcel-schlesinger.de> |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 1446 2008-05-28 21:36:42Z thomasb $
+@version $Id: labels.inc 2124 2008-12-06 17:59:26Z thomasb $
*/
$labels['markmessages'] = 'Nachrichten markieren';
$labels['markread'] = 'Als gelesen';
$labels['markunread'] = 'Als ungelesen';
+$labels['markflagged'] = 'Stern hinzufügen';
+$labels['markunflagged'] = 'Stern entfernen';
$labels['select'] = 'Auswählen';
$labels['all'] = 'Alle';
$labels['none'] = 'Keine';
$labels['unread'] = 'Ungelesene';
+$labels['flagged'] = 'Markierte';
+$labels['unanswered'] = 'Unbeantwortete';
+$labels['filter'] = 'Filter';
$labels['compact'] = 'Packen';
$labels['empty'] = 'Leeren';
$labels['purge'] = 'Bereinigen';
$labels['unlimited'] = 'unbegrenzt';
$labels['quicksearch'] = 'Schnellsuche';
$labels['resetsearch'] = 'Suche zurücksetzen';
+$labels['openinextwin'] = 'In neuem Fenster öffnen';
$labels['compose'] = 'Neue Nachricht verfassen';
$labels['savemessage'] = 'Nachricht speichern';
$labels['sendmessage'] = 'Nachricht jetzt senden';
$labels['editortype'] = 'Editor Typ';
$labels['returnreceipt'] = 'Empfangsbestätigung';
$labels['checkspelling'] = 'Rechtschreibung prüfen';
-$labels['resumeediting'] = 'Bearbeitung fortzetzen';
+$labels['resumeediting'] = 'Bearbeitung fortsetzen';
$labels['revertto'] = 'Zurück zu';
$labels['attachments'] = 'Anhänge';
$labels['upload'] = 'Hochladen';
$labels['highest'] = 'Höchste';
$labels['nosubject'] = '(kein Betreff)';
$labels['showimages'] = 'Bilder anzeigen';
+$labels['alwaysshow'] = 'Bilder von $sender immer zeigen';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Nur-Text';
+$labels['savesentmessagein'] = 'Nachricht speichern in';
+$labels['dontsave'] = 'nicht speichern';
+$labels['maxuploadsize'] = 'Maximal erlaubte Dateigrösse ist $size';
$labels['addcc'] = 'Cc hinzufügen';
$labels['addbcc'] = 'Bcc hinzufügen';
$labels['addreplyto'] = 'Antwortadresse hinzufügen';
$labels['contactsfromto'] = 'Kontakte $from bis $to von $count';
$labels['print'] = 'Drucken';
$labels['export'] = 'Exportieren';
+$labels['exportvcards'] = 'Kontakte im vCard-Format exportieren';
$labels['previouspage'] = 'Seite zurück';
$labels['firstpage'] = 'Erste Seite';
$labels['nextpage'] = 'Nächste Seite';
$labels['lastpage'] = 'Letzte Seite';
$labels['groups'] = 'Gruppen';
$labels['personaladrbook'] = 'Persönliches Adressbuch';
+$labels['import'] = 'Importieren';
+$labels['importcontacts'] = 'Kontakte importieren';
+$labels['importfromfile'] = 'Import aus Datei:';
+$labels['importreplace'] = 'Bestehendes Adressbuch komplett ersetzen';
+$labels['importtext'] = 'Sie können Kontakte aus einem bestehenden Adressbuch hochladen. Zur Zeit können Adressbücher im vCard-Format importiert werden.';
+$labels['done'] = 'Fertig';
$labels['settingsfor'] = 'Einstellungen für';
$labels['preferences'] = 'Einstellungen';
$labels['userpreferences'] = 'Benutzereinstellungen';
$labels['newitem'] = 'Neuer Eintrag';
$labels['edititem'] = 'Eintrag bearbeiten';
$labels['setdefault'] = 'Als Standard';
+$labels['autodetect'] = 'Automatisch';
$labels['language'] = 'Sprache';
$labels['timezone'] = 'Zeitzone';
$labels['pagesize'] = 'Einträge pro Seite';
$labels['htmleditor'] = 'HTML-Nachrichten erstellen';
$labels['htmlsignature'] = 'HTML-Signatur';
$labels['previewpane'] = 'Vorschaufenster anzeigen';
+$labels['skin'] = 'Oberflächendesign';
$labels['logoutclear'] = 'Papierkorb beim Abmelden leeren';
-$labels['logoutcompact'] = 'Posteingang beim Abmleden packen';
+$labels['logoutcompact'] = 'Posteingang beim Abmelden packen';
$labels['uisettings'] = 'Benutzeroberfläche';
$labels['serversettings'] = 'Server-Einstellungen';
$labels['mailboxview'] = 'Mailbox-Ansicht';
$labels['autosend'] = 'automatisch senden';
$labels['ignore'] = 'ignorieren';
$labels['readwhendeleted'] = 'Beim Löschen als gelesen markieren';
-$labels['flagfordeletion'] = 'Als gelöscht markieren wenn kein Papierkorb';
+$labels['flagfordeletion'] = 'Als gelöscht markieren anstatt in den Papierkorb verschieben';
+$labels['skipdeleted'] = 'Zeige keine gelöschten Nachrichten an';
+$labels['showremoteimages'] = 'Zeige entfernte eingebettete Bilder an';
+$labels['fromknownsenders'] = 'bei bekannten Absendern';
+$labels['always'] = 'immer';
+$labels['showinlineimages'] = 'Stelle angehängte Bilder unter der Nachricht dar';
$labels['autosavedraft'] = 'Entwurf automatisch speichern';
$labels['everynminutes'] = 'alle $n Minuten';
+$labels['keepaliveevery'] = '$n Minute(n)';
+$labels['keepalive'] = 'Auf neue Nachrichten prüfen nach';
$labels['never'] = 'nie';
+$labels['messagesdisplaying'] = 'Nachrichtendarstellung';
+$labels['messagescomposition'] = 'Nachrichtenerstellung';
+$labels['mimeparamfolding'] = 'Namen der Dateianhänge';
+$labels['2231folding'] = 'Vollständig RFC 2231 kompatibel (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 kompatibel (Microsoft Outlook)';
+$labels['2047folding'] = 'Vollständig RFC 2047 kompatibel (andere)';
+$labels['advancedoptions'] = 'Erweiterte Einstellungen';
+$labels['focusonnewmessage'] = 'Fokussiere Browserfenster bei neuen Nachrichten';
+$labels['checkallfolders'] = 'Alle Ordner auf neue Nachrichten prüfen';
$labels['folder'] = 'Ordner';
$labels['folders'] = 'Ordner';
$labels['foldername'] = 'Ordnername';
$labels['renamefolder'] = 'Ordner umbenennen';
$labels['deletefolder'] = 'Ordner löschen';
$labels['managefolders'] = 'Ordner verwalten';
+$labels['specialfolders'] = 'Spezialordner';
$labels['sortby'] = 'Sortieren nach';
$labels['sortasc'] = 'Aufsteigend sortieren';
$labels['sortdesc'] = 'Absteigend sortieren';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/de_DE/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Marcel Schlesinger <info@marcel-schlesinger.de> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/de_DE/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Marcel Schlesinger <info@marcel-schlesinger.de> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1456 2008-05-30 13:27:13Z thomasb $
+@version $Id: messages.inc 2063 2008-11-17 18:52:43Z alec $
*/
$messages['nocontactsfound'] = 'Keine Kontakte gefunden';
$messages['contactnotfound'] = 'Der angeforderte Kontakt wurde nicht gefunden';
$messages['sendingfailed'] = 'Versenden der Nachricht fehlgeschlagen';
+$messages['senttooquickly'] = 'Bitte warten Sie $sec Sekunde(n) vor dem Senden dieser Nachricht';
+$messages['errorsavingsent'] = 'Ein Fehler ist beim Speichern der gesendeten Nachricht aufgetreten';
$messages['errorsaving'] = 'Beim Speichern ist ein Fehler aufgetreten';
$messages['errormoving'] = 'Nachricht konnte nicht verschoben werden';
$messages['errordeleting'] = 'Nachricht konnte nicht gelöscht werden';
$messages['deletemessagesconfirm'] = 'Wollen Sie die ausgewählten Nachrichten wirklich löschen?';
$messages['deletefolderconfirm'] = 'Wollen Sie diesen Ordner wirklich löschen?';
$messages['purgefolderconfirm'] = 'Wollen Sie diesen Ordner wirklich leeren?';
+$messages['foldercreating'] = 'Erstelle Ordner...';
+$messages['folderdeleting'] = 'Lösche Ordner...';
+$messages['folderrenaming'] = 'Nenne Ordner um...';
+$messages['foldermoving'] = 'Verschiebe Ordner...';
$messages['formincomplete'] = 'Das Formular wurde nicht vollständig ausgefüllt';
$messages['noemailwarning'] = 'Bitte geben Sie eine gültige E-Mail-Adresse ein';
$messages['nonamewarning'] = 'Bitte geben Sie einen Namen ein';
$messages['nopagesizewarning'] = 'Bitte geben Sie die Einträge pro Seite an';
+$messages['nosenderwarning'] = 'Bitte geben Sie die E-Mail-Adresse des Senders an';
$messages['norecipientwarning'] = 'Bitte geben Sie mindestens einen Empfänger an';
$messages['nosubjectwarning'] = 'Die Betreffzeile ist leer. Möchten Sie jetzt einen Betreff eingeben?';
$messages['nobodywarning'] = 'Diese Nachricht ohne Inhalt senden?';
$messages['nodeletelastidentity'] = 'Diese Identität kann nicht gelöscht werden, da dies die letzte ist.';
$messages['addsubfolderhint'] = 'Wird als Unterordner des aktuell selektieren Ordners erstellt';
$messages['forbiddencharacter'] = 'Der Ordnername enthält ein ungültiges Zeichen';
+$messages['selectimportfile'] = 'Bitte wählen Sie eine Datei zum Importieren aus';
+$messages['addresswriterror'] = 'Das ausgewählte Adressbuch kann nicht verändert werden';
+$messages['importwait'] = 'Daten werden importiert, bitte warten...';
+$messages['importerror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist nicht im vCard-Format.';
+$messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert und $skipped bestehende Einträge übersprungen</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operation nicht erlaubt!';
+$messages['nofromaddress'] = 'Fehlende E-Mail-Adresse in ausgewählter Identität';
+$messages['editorwarning'] = 'Beim Wechseln in den Texteditor gehen alle Textformatierungen verloren. Möchten Sie fortfahren?';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/en_GB/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Weiran Zhang (weiran@weiran.co.uk) |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/en_GB/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Weiran Zhang (weiran@weiran.co.uk) |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 1373 2008-05-10 14:48:18Z alec $
+@version $Id: labels.inc 2136 2008-12-08 20:44:46Z yllar $
*/
$labels['mailboxlist'] = 'Folders';
$labels['messagesfromto'] = 'Messages $from to $to of $count';
$labels['messagenrof'] = 'Message $nr of $count';
-$labels['moveto'] = 'move to...';
-$labels['download'] = 'download';
+$labels['moveto'] = 'Move to...';
+$labels['download'] = 'Download';
$labels['filename'] = 'File name';
$labels['filesize'] = 'File size';
$labels['preferhtml'] = 'Display HTML';
$labels['markmessages'] = 'Mark messages';
$labels['markread'] = 'As read';
$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
$labels['select'] = 'Select';
$labels['all'] = 'All';
$labels['none'] = 'None';
$labels['unread'] = 'Unread';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['filter'] = 'Filter';
$labels['compact'] = 'Compact';
$labels['empty'] = 'Empty';
$labels['purge'] = 'Purge';
$labels['unlimited'] = 'unlimited';
$labels['quicksearch'] = 'Quick search';
$labels['resetsearch'] = 'Reset search';
+$labels['openinextwin'] = 'Open in new window';
$labels['compose'] = 'Compose a message';
$labels['savemessage'] = 'Save this draft';
-$labels['sendmessage'] = 'Send the message now';
+$labels['sendmessage'] = 'Send now';
$labels['addattachment'] = 'Attach a file';
$labels['charset'] = 'Charset';
$labels['editortype'] = 'Editor type';
$labels['highest'] = 'Highest';
$labels['nosubject'] = '(no subject)';
$labels['showimages'] = 'Display images';
+$labels['alwaysshow'] = 'Always show images from $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Plain text';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
$labels['addcc'] = 'Add Cc';
$labels['addbcc'] = 'Add Bcc';
$labels['addreplyto'] = 'Add Reply-To';
$labels['contactsfromto'] = 'Contacts $from to $to of $count';
$labels['print'] = 'Print';
$labels['export'] = 'Export';
+$labels['exportvcards'] = 'Export contacts in vCard format';
$labels['previouspage'] = 'Show previous set';
$labels['firstpage'] = 'Show first set';
$labels['nextpage'] = 'Show next set';
$labels['lastpage'] = 'Show last set';
$labels['groups'] = 'Groups';
$labels['personaladrbook'] = 'Personal Addresses';
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importtext'] = 'You can upload contacts from an existing address book. We currently support importing addresses from the vCard data format.';
+$labels['done'] = 'Done';
$labels['settingsfor'] = 'Settings for';
$labels['preferences'] = 'Preferences';
$labels['userpreferences'] = 'User preferences';
$labels['newitem'] = 'New item';
$labels['edititem'] = 'Edit item';
$labels['setdefault'] = 'Set default';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Language';
$labels['timezone'] = 'Time zone';
$labels['pagesize'] = 'Rows per page';
$labels['htmleditor'] = 'Compose HTML messages';
$labels['htmlsignature'] = 'HTML signature';
$labels['previewpane'] = 'Show preview pane';
+$labels['skin'] = 'Interface skin';
$labels['logoutclear'] = 'Clear Trash on logout';
$labels['logoutcompact'] = 'Compact Inbox on logout';
$labels['uisettings'] = 'User Interface';
$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'Sender notifications';
+$labels['askuser'] = 'ask the user';
+$labels['autosend'] = 'send automatically';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'Automatically save draft';
$labels['everynminutes'] = 'every $n minutes';
+$labels['keepaliveevery'] = 'every $n minute(s)';
+$labels['keepalive'] = 'Check for new messages on';
$labels['never'] = 'never';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
$labels['folder'] = 'Folder';
$labels['folders'] = 'Folders';
$labels['foldername'] = 'Folder name';
$labels['renamefolder'] = 'Rename folder';
$labels['deletefolder'] = 'Delete folder';
$labels['managefolders'] = 'Manage folders';
+$labels['specialfolders'] = 'Special Folders';
$labels['sortby'] = 'Sort by';
$labels['sortasc'] = 'Sort ascending';
$labels['sortdesc'] = 'Sort descending';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
?>
| Author: Weiran Zhang (weiran@weiran.co.uk) |
+-----------------------------------------------------------------------+
- @version $Id: messages.inc 1091 2008-02-15 15:13:38Z tomekp $
+ @version $Id: messages.inc 2045 2008-11-11 15:09:24Z yllar $
*/
$messages['nocontactsfound'] = 'No contacts found';
$messages['contactnotfound'] = 'The requested contact was not found';
$messages['sendingfailed'] = 'Failed to send message';
-$messages['errorsaving'] = 'An error occured while saving';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message';
+$messages['errorsavingsent'] = 'An error occurred while saving sent message';
+$messages['errorsaving'] = 'An error occurred while saving';
$messages['errormoving'] = 'Could not move the message';
$messages['errordeleting'] = 'Could not delete the message';
$messages['deletecontactconfirm'] = 'Do you really want to delete the selected contact(s)?';
$messages['deletemessagesconfirm'] = 'Do you really want to delete the selected message(s)?';
$messages['deletefolderconfirm'] = 'Do you really want to delete this folder?';
$messages['purgefolderconfirm'] = 'Do you really want to delete all messages in this folder?';
+$messages['foldercreating'] = 'Creating folder...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['folderrenaming'] = 'Renaming folder...';
+$messages['foldermoving'] = 'Moving folder...';
$messages['formincomplete'] = 'The form was not completely filled out';
$messages['noemailwarning'] = 'Please enter a valid email address';
$messages['nonamewarning'] = 'Please enter a name';
$messages['nopagesizewarning'] = 'Please enter a page size';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address';
$messages['norecipientwarning'] = 'Please enter at least one recipient';
$messages['nosubjectwarning'] = 'The "Subject" field is empty. Would you like to enter one now?';
$messages['nobodywarning'] = 'Send this message without any text?';
$messages['nospellerrors'] = 'No spelling errors found';
$messages['folderdeleted'] = 'Folder successfully deleted';
$messages['deletedsuccessfully'] = 'Successfully deleted';
-$messages['converting'] = 'Removing formatting from message...';
+$messages['converting'] = 'Removing formatting...';
$messages['messageopenerror'] = 'Could not load message from server';
$messages['fileuploaderror'] = 'File upload failed';
$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size';
$messages['errorsendingreceipt'] = 'Could not send the receipt';
$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
$messages['addsubfolderhint'] = 'This folder will be created as subfolder of the currently selected one';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character';
+$messages['selectimportfile'] = 'Please select a file to upload';
+$messages['addresswriterror'] = 'The selected address book is not writeable';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importerror'] = 'Import failed! The uploaded file is not a valid vCard file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts, $skipped existing entries skipped</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
-?>
\ No newline at end of file
+?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- @version $Id: labels.inc 1403 2008-05-19 08:09:38Z alec $
+ @version $Id: labels.inc 2124 2008-12-06 17:59:26Z thomasb $
*/
$labels['messagesfromto'] = 'Messages $from to $to of $count';
$labels['messagenrof'] = 'Message $nr of $count';
-$labels['moveto'] = 'move to...';
-$labels['download'] = 'download';
+$labels['moveto'] = 'Move to...';
+$labels['download'] = 'Download';
$labels['filename'] = 'File name';
$labels['filesize'] = 'File size';
$labels['markmessages'] = 'Mark messages';
$labels['markread'] = 'As read';
$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
$labels['select'] = 'Select';
$labels['all'] = 'All';
$labels['none'] = 'None';
$labels['unread'] = 'Unread';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['filter'] = 'Filter';
$labels['compact'] = 'Compact';
$labels['empty'] = 'Empty';
$labels['quicksearch'] = 'Quick search';
$labels['resetsearch'] = 'Reset search';
+$labels['openinextwin'] = 'Open in new window';
// message compose
$labels['compose'] = 'Compose a message';
$labels['savemessage'] = 'Save this draft';
-$labels['sendmessage'] = 'Send the message now';
+$labels['sendmessage'] = 'Send now';
$labels['addattachment'] = 'Attach a file';
$labels['charset'] = 'Charset';
$labels['editortype'] = 'Editor type';
$labels['nosubject'] = '(no subject)';
$labels['showimages'] = 'Display images';
+$labels['alwaysshow'] = 'Always show images from $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Plain text';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
$labels['addcc'] = 'Add Cc';
$labels['addbcc'] = 'Add Bcc';
$labels['contactsfromto'] = 'Contacts $from to $to of $count';
$labels['print'] = 'Print';
$labels['export'] = 'Export';
+$labels['exportvcards'] = 'Export contacts in vCard format';
$labels['previouspage'] = 'Show previous set';
$labels['firstpage'] = 'Show first set';
$labels['groups'] = 'Groups';
$labels['personaladrbook'] = 'Personal Addresses';
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importtext'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> data format.';
+$labels['done'] = 'Done';
// settings
$labels['settingsfor'] = 'Settings for';
$labels['edititem'] = 'Edit item';
$labels['setdefault'] = 'Set default';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Language';
$labels['timezone'] = 'Time zone';
$labels['pagesize'] = 'Rows per page';
$labels['htmleditor'] = 'Compose HTML messages';
$labels['htmlsignature'] = 'HTML signature';
$labels['previewpane'] = 'Show preview pane';
+$labels['skin'] = 'Interface skin';
$labels['logoutclear'] = 'Clear Trash on logout';
$labels['logoutcompact'] = 'Compact Inbox on logout';
$labels['uisettings'] = 'User Interface';
$labels['ignore'] = 'ignore';
$labels['readwhendeleted'] = 'Mark the message as read on delete';
$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
-
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'Automatically save draft';
$labels['everynminutes'] = 'every $n minutes';
+$labels['keepaliveevery'] = 'every $n minute(s)';
+$labels['keepalive'] = 'Check for new messages on';
$labels['never'] = 'never';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
$labels['folder'] = 'Folder';
$labels['folders'] = 'Folders';
$labels['renamefolder'] = 'Rename folder';
$labels['deletefolder'] = 'Delete folder';
$labels['managefolders'] = 'Manage folders';
+$labels['specialfolders'] = 'Special Folders';
$labels['sortby'] = 'Sort by';
$labels['sortasc'] = 'Sort ascending';
$labels['sortdesc'] = 'Sort descending';
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- @version $Id: messages.inc 1456 2008-05-30 13:27:13Z thomasb $
+ @version $Id: messages.inc 2036 2008-11-03 18:09:35Z alec $
*/
$messages['nocontactsfound'] = 'No contacts found';
$messages['contactnotfound'] = 'The requested contact was not found';
$messages['sendingfailed'] = 'Failed to send message';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message';
+$messages['errorsavingsent'] = 'An error occured while saving sent message';
$messages['errorsaving'] = 'An error occured while saving';
$messages['errormoving'] = 'Could not move the message';
$messages['errordeleting'] = 'Could not delete the message';
$messages['deletemessagesconfirm'] = 'Do you really want to delete the selected message(s)?';
$messages['deletefolderconfirm'] = 'Do you really want to delete this folder?';
$messages['purgefolderconfirm'] = 'Do you really want to delete all messages in this folder?';
+$messages['foldercreating'] = 'Creating folder...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['folderrenaming'] = 'Renaming folder...';
+$messages['foldermoving'] = 'Moving folder...';
$messages['formincomplete'] = 'The form was not completely filled out';
$messages['noemailwarning'] = 'Please enter a valid email address';
$messages['nonamewarning'] = 'Please enter a name';
$messages['nopagesizewarning'] = 'Please enter a page size';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address';
$messages['norecipientwarning'] = 'Please enter at least one recipient';
$messages['nosubjectwarning'] = 'The "Subject" field is empty. Would you like to enter one now?';
$messages['nobodywarning'] = 'Send this message without text?';
$messages['nospellerrors'] = 'No spelling errors found';
$messages['folderdeleted'] = 'Folder successfully deleted';
$messages['deletedsuccessfully'] = "Successfully deleted";
-$messages['converting'] = 'Removing formatting from message...';
+$messages['converting'] = 'Removing formatting...';
$messages['messageopenerror'] = 'Could not load message from server';
$messages['fileuploaderror'] = 'File upload failed';
$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size';
$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
$messages['addsubfolderhint'] = 'This folder will be created as subfolder of the currently selected one';
$messages['forbiddencharacter'] = 'Folder name contains a forbidden character';
+$messages['selectimportfile'] = 'Please select a file to upload';
+$messages['addresswriterror'] = 'The selected address book is not writeable';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importerror'] = 'Import failed! The uploaded file is not a valid vCard file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts, $skipped existing entries skipped</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/eo/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Andreas van Cranenburgh <andreas@unstable.nl> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/eo/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Andreas van Cranenburgh <andreas@unstable.nl> |
++-----------------------------------------------------------------------+
*/
$labels['thursday'] = 'Ĵaŭdo';
$labels['friday'] = 'Vendredo';
$labels['saturday'] = 'Sabato';
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'Maj';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Aŭg';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Okt';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+$labels['longjan'] = 'Januaro';
+$labels['longfeb'] = 'Februaro';
+$labels['longmar'] = 'Marĉo';
+$labels['longapr'] = 'Aprilo';
+$labels['longmay'] = 'Majo';
+$labels['longjun'] = 'Junio';
+$labels['longjul'] = 'Julio';
+$labels['longaug'] = 'Aŭgusto';
+$labels['longsep'] = 'Septembro';
+$labels['longoct'] = 'Oktobro';
+$labels['longnov'] = 'Novembro';
+$labels['longdec'] = 'Decembro';
$labels['today'] = 'Hodiaŭ';
$labels['checkmail'] = 'Kontrolu, ĉu novaj mesaĝoj';
$labels['writenewmessage'] = 'Verku novan mesaĝon';
$labels['markmessages'] = 'Marku mesaĝojn';
$labels['markread'] = 'Kiel legita';
$labels['markunread'] = 'Kiel nelegita';
+$labels['markflagged'] = 'kiel markita';
+$labels['markunflagged'] = 'kiel nemarkita';
$labels['select'] = 'Elektu';
$labels['all'] = 'Ĉion';
$labels['none'] = 'Nenion';
$labels['highest'] = 'Plej alta';
$labels['nosubject'] = '(sen temo)';
$labels['showimages'] = 'Montru bildojn';
+$labels['alwaysshow'] = 'Ĉiam montru bildojn de $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Plata teksto';
$labels['addcc'] = 'Aldonu kopi-ricevanton';
$labels['htmleditor'] = 'Uzado de HTML-redaktilo';
$labels['htmlsignature'] = 'HTML subskribo';
$labels['previewpane'] = 'Montru antaŭrigardejon';
+$labels['skin'] = 'Interfaco-etoso';
+$labels['logoutclear'] = 'Malplenigu rubujon je eliro';
+$labels['logoutcompact'] = 'Kompaktigu ricevitujon je eliro';
+$labels['uisettings'] = 'Uzanto-interfaco';
+$labels['serversettings'] = 'Servilo-agordo';
+$labels['mailboxview'] = 'Ricevitujo vido';
+$labels['mdnrequests'] = 'Sendanto-sciigoj';
+$labels['askuser'] = 'demandu';
+$labels['autosend'] = 'sendu aŭtomate';
+$labels['ignore'] = 'malatentu';
+$labels['readwhendeleted'] = 'Marku mesaĝon kiel legita kiam forigata';
+$labels['flagfordeletion'] = 'Marku mesaĝon kiel forigita anstataŭ forigi';
+$labels['showinlineimages'] = 'Montru alfiksitajn bildojn sub la mesaĝo';
$labels['autosavedraft'] = 'Aŭtomate savu malneton';
$labels['everynminutes'] = 'ĉiujn $n minutojn';
$labels['never'] = 'neniam';
+$labels['messagesdisplaying'] = 'Mesaĝoj vidigante';
+$labels['messagescomposition'] = 'Mesaĝo-verkado';
$labels['folder'] = 'Dosierujo';
$labels['folders'] = 'Dosierujoj';
$labels['foldername'] = 'Dosierujo-nomo';
/*
- +-----------------------------------------------------------------------+
- | language/eo/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Andreas van Cranenburgh <andreas@unstable.nl |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/eo/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Andreas van Cranenburgh <andreas@unstable.nl |
++-----------------------------------------------------------------------+
*/
$messages['errorsendingreceipt'] = 'Ne povis sendi konfirmon';
$messages['nodeletelastidentity'] = 'Vi ne povas forigi ĉi tiun identon, ĉar ĝi estas la lasta';
$messages['addsubfolderhint'] = 'Ĉi tiu dosierujo estos farita kiel subdosierujo de la nune elektita dosierujo';
+$messages['forbiddencharacter'] = 'Dosierujo-nomo enhavas malpermesitan karaktron';
?>
/*
+-----------------------------------------------------------------------+
-| language/es/labels.inc |
+| language/es_ES/labels.inc |
| |
| Language file of the RoundCube Webmail client |
| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| http://david.grajal.net |
+-----------------------------------------------------------------------+
-@version $Id: labels.inc 1417 2008-05-22 06:54:28Z alec $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['markmessages'] = 'Marcar mensajes';
$labels['markread'] = 'Como leído';
$labels['markunread'] = 'Como no leído';
+$labels['markflagged'] = 'Como marcado';
+$labels['markunflagged'] = 'Como no marcado';
$labels['select'] = 'Elija';
$labels['all'] = 'Todos';
$labels['none'] = 'Ninguno';
$labels['highest'] = 'Altísimo';
$labels['nosubject'] = '(sin asunto)';
$labels['showimages'] = 'Mostrar imágenes';
+$labels['alwaysshow'] = 'Muestra siempre imágenes de $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texto';
$labels['addcc'] = 'Añadir Cc';
$labels['htmleditor'] = 'Componer mensaje en HTML';
$labels['htmlsignature'] = 'Firma HTML';
$labels['previewpane'] = 'Mostrar vista preliminar';
+$labels['skin'] = 'Apariencia de la interfaz';
$labels['logoutclear'] = 'Vaciar papelera al cerrar sesión';
$labels['logoutcompact'] = 'Compactar la bandeja de entrada al cerrar sesión';
$labels['uisettings'] = 'Interfaz de usuario';
$labels['ignore'] = 'ignorar';
$labels['readwhendeleted'] = 'Marcar el mensage como leido al borrarlo';
$labels['flagfordeletion'] = 'Marcar el mensage para borrarse en vez de borrarlo';
+$labels['showinlineimages'] = 'Mostrar imágenes adjuntas debajo del mensaje';
$labels['autosavedraft'] = 'Guardar borrador automáticamente';
$labels['everynminutes'] = 'cada $n minutos';
$labels['never'] = 'nunca';
+$labels['messagesdisplaying'] = 'Vista de mensajes';
+$labels['messagescomposition'] = 'Composición de mensajes';
$labels['folder'] = 'Bandeja';
$labels['folders'] = 'Bandejas';
$labels['foldername'] = 'Nombre de bandeja';
$labels['sortdesc'] = 'Orden descendente';
?>
-
/*
- +-----------------------------------------------------------------------+
- | language/es/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Javier Smaldone <javier@smaldone.com.ar> |
- | David Grajal Blanco <dgrabla@gmail.com> |
- | Lito Jornero <jornero@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/es_ES/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Javier Smaldone <javier@smaldone.com.ar> |
+| David Grajal Blanco <dgrabla@gmail.com> |
+| Lito Jornero <jornero@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1079 2008-02-14 07:47:11Z tomekp $
+@version $Id: messages.inc 1600 2008-07-21 08:52:30Z yllar $
*/
$messages['errorsendingreceipt'] = 'No se ha podido enviar la notificación de lectura.';
$messages['nodeletelastidentity'] = 'No se puede borrar esta identidad puesto que es la última.';
$messages['addsubfolderhint'] = 'Esta carpeta se creará como una subcarpeta dentro de la carpeta seleccionada';
+$messages['forbiddencharacter'] = 'El nombre de la carpeta contiene un caracter prohibido';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/et_EE/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Üllar Pajus <yllar.pajus@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/et_EE/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Üllar Pajus <yllar.pajus@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id$
+@version $Id$
*/
$labels['markmessages'] = 'Märgi kirjad';
$labels['markread'] = 'Loetuks';
$labels['markunread'] = 'Mitte loetuks';
+$labels['markflagged'] = 'Lisa lipik';
+$labels['markunflagged'] = 'Eemalda lipik';
$labels['select'] = 'Vali';
$labels['all'] = 'kõik';
$labels['none'] = 'mitte midagi';
$labels['unread'] = 'mitte loetud';
+$labels['flagged'] = 'Märgistatud';
+$labels['unanswered'] = 'Vastamata';
+$labels['filter'] = 'Filtreeri';
$labels['compact'] = 'Tihenda';
$labels['empty'] = 'Tühjenda';
$labels['purge'] = 'Puhasta';
$labels['unlimited'] = 'piiramatu';
$labels['quicksearch'] = 'Kiirotsing';
$labels['resetsearch'] = 'Lähtesta otsing';
+$labels['openinextwin'] = 'Ava uues aknas';
$labels['compose'] = 'Koosta kiri';
$labels['savemessage'] = 'Salvesta see mustand';
$labels['sendmessage'] = 'Saada kiri kohe';
$labels['highest'] = 'Kõrgeim';
$labels['nosubject'] = '(teema puudub)';
$labels['showimages'] = 'Näita pilte';
+$labels['alwaysshow'] = 'Alati näita $sender saadetud pilte';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Lihttekst';
+$labels['savesentmessagein'] = 'Salvesta saadetud kirjad kausta';
+$labels['dontsave'] = 'ära salvesta';
+$labels['maxuploadsize'] = 'Faili maksimaalne lubatud suurus on $size';
$labels['addcc'] = 'Lisa koopia';
$labels['addbcc'] = 'Lisa pimekoopia';
$labels['addreplyto'] = 'Lisa vastus aadressile';
$labels['contactsfromto'] = 'Kirjed $from kuni $to, kokku $count';
$labels['print'] = 'Trüki';
$labels['export'] = 'Ekspordi';
+$labels['exportvcards'] = 'Ekspordi kontaktid vCardi formaadis';
$labels['previouspage'] = 'Näita eelmist lehte';
$labels['firstpage'] = 'Näita esimest komplekti';
$labels['nextpage'] = 'Näita järgmist lehte';
$labels['lastpage'] = 'Näita viimast komplekti';
$labels['groups'] = 'Grupid';
$labels['personaladrbook'] = 'Isiklikud aadressid';
+$labels['import'] = 'Impordi';
+$labels['importcontacts'] = 'Impordi kontakte';
+$labels['importfromfile'] = 'Impordi failist:';
+$labels['importreplace'] = 'Asenda kogu aadressiraamat';
+$labels['importtext'] = 'Sa saad sisestada kontakte olemasolevast aadressiraamatust. Praegu on toetatud <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> formaat.';
+$labels['done'] = 'Valmis';
$labels['settingsfor'] = 'Kasutajaeelistused kontole';
$labels['preferences'] = 'Eelistused';
$labels['userpreferences'] = 'Kasutaja eelistused';
$labels['newitem'] = 'Uus sissekanne';
$labels['edititem'] = 'Muuda sissekannet';
$labels['setdefault'] = 'Muuda vaikeseadeks';
+$labels['autodetect'] = 'Automaatne';
$labels['language'] = 'Keel';
$labels['timezone'] = 'Ajatsoon';
$labels['pagesize'] = 'Ridu lehe kohta';
$labels['htmleditor'] = 'Kasuta HTML redaktorit';
$labels['htmlsignature'] = 'HTML allkiri';
$labels['previewpane'] = 'Näita eelvaate akent';
+$labels['skin'] = 'Kliendi välimus';
$labels['logoutclear'] = 'Tühjenda väljumisel prügikast';
$labels['logoutcompact'] = 'Tihenda väljumisel sissetulevate kaust';
$labels['uisettings'] = 'Kasutajaliides';
$labels['ignore'] = 'ignoreeri';
$labels['readwhendeleted'] = 'Märgi kiri kustutamisel loetuks';
$labels['flagfordeletion'] = 'Kustutamise asemel märgi kiri kustutatavaks';
+$labels['skipdeleted'] = 'Ära näita kustutatud kirju';
+$labels['showremoteimages'] = 'Näita kirjas kaugelt kaasatud pilte';
+$labels['fromknownsenders'] = 'tuntud saatjatelt';
+$labels['always'] = 'alati';
+$labels['showinlineimages'] = 'Näita manustatud pilte kirja all';
$labels['autosavedraft'] = 'Salvesta mustandid automaatselt';
$labels['everynminutes'] = 'iga $n minuti tagant';
+$labels['keepaliveevery'] = 'iga $n minuti tagant';
+$labels['keepalive'] = 'Kontrolli uusi kirju';
$labels['never'] = 'mitte kunagi';
+$labels['messagesdisplaying'] = 'Kirjade näitamine';
+$labels['messagescomposition'] = 'Kirja koostamine ';
+$labels['mimeparamfolding'] = 'Manuste nimed';
+$labels['2231folding'] = 'Täielik RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Täielik RFC 2047 (muu)';
+$labels['advancedoptions'] = 'Lisaseadistused';
+$labels['focusonnewmessage'] = 'Fokusseeri brauseri aken uue kirja korral';
+$labels['checkallfolders'] = 'Kontrolli uusi kirju kõigist kaustadest';
$labels['folder'] = 'Kaust';
$labels['folders'] = 'Kaustad';
$labels['foldername'] = 'Kausta nimi';
$labels['renamefolder'] = 'Nimeta olemasolev kaust ümber';
$labels['deletefolder'] = 'Kustuta kaust';
$labels['managefolders'] = 'Halda kaustu';
+$labels['specialfolders'] = 'Erilised kaustad';
$labels['sortby'] = 'Järjesta';
$labels['sortasc'] = 'Järjesta kasvavalt';
$labels['sortdesc'] = 'Järjesta kahanevalt';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
?>
/*
- +-----------------------------------------------------------------------+
- | language/et_EE/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Üllar Pajus <yllar.pajus@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/et_EE/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Üllar Pajus <yllar.pajus@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id$
+@version $Id$
*/
$messages['nocontactsfound'] = 'Ei leitud ühtegi kontakti';
$messages['contactnotfound'] = 'Otsitud kontakti ei leitud';
$messages['sendingfailed'] = 'Kirja saatmine ebaõnnestus';
+$messages['senttooquickly'] = 'Palun oota enne selle kirja saatmist $sec sekundit.';
+$messages['errorsavingsent'] = 'Saadetud kirja salvestamisel ilmnes tõrge';
$messages['errorsaving'] = 'Salvestamise ajal ilmnes viga';
$messages['errormoving'] = 'Ei suutnud seda kirja liigutada';
$messages['errordeleting'] = 'Ei suutnud seda kirja kustutada';
$messages['deletemessagesconfirm'] = 'Soovid valitud kirja(d) kustutada ?';
$messages['deletefolderconfirm'] = 'Soovid selle kataloogi kindlasti kustutada ?';
$messages['purgefolderconfirm'] = 'Soovid sellest kaustast kõik kirjad kustutada ?';
+$messages['foldercreating'] = 'Kausta loomine...';
+$messages['folderdeleting'] = 'Kausta kustutamine...';
+$messages['folderrenaming'] = 'Kausta ümber nimetamine...';
+$messages['foldermoving'] = 'Kausta liigutamine...';
$messages['formincomplete'] = 'Vormi kõik väljad ei ole täidetud';
$messages['noemailwarning'] = 'Palun sisesta toimiv e-maili aadress';
$messages['nonamewarning'] = 'Palun sisesta nimi';
$messages['nopagesizewarning'] = 'Palun sisesta lehekülje suurus';
+$messages['nosenderwarning'] = 'Palun sisesta saatja e-posti aadress';
$messages['norecipientwarning'] = 'Palun sisesta vähemalt üks kirjasaaja';
$messages['nosubjectwarning'] = 'Väli "Pealkiri" on tühi. Soovid selle ära täita ?';
$messages['nobodywarning'] = 'Saadan selle kirja ilma tekstita ?';
$messages['nodeletelastidentity'] = 'See identiteet on viimane ja seda ei saa kustutada.';
$messages['addsubfolderhint'] = 'See kataloog luuakse valitud kausta alamkataloogina.';
$messages['forbiddencharacter'] = 'Kausta nimi sisaldab keelatud sümbolit';
+$messages['selectimportfile'] = 'Palun vali üleslaadimiseks fail';
+$messages['addresswriterror'] = 'Valitud aadressiraamat pole kirjutatav';
+$messages['importwait'] = 'Importimine, palun oota...';
+$messages['importerror'] = 'Import nurjus! Üleslaaditud fail ei ole vCard formaadis.';
+$messages['importconfirm'] = '<b>Edukalt imporditud $inserted kontakti, $skipped olemasolevat sissekannet vahele jäetud</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Tegevus pole lubatud!';
+$messages['nofromaddress'] = 'Valitud identiteedil puudub e-posti aadress';
+$messages['editorwarning'] = 'Klaarteksti redaktorile lülitamine kaotab kogu teksti vorminduse. Soovid jätkata?';
+
?>
<?php
/*
- +-----------------------------------------------------------------------+
- | language/eu/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Bicyus <bicyus@tenkanet.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/eu_ES/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Bicyus <bicyus@tenkanet.com> |
+| Bihar <gaurdabihar@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 950 2008-01-04 08:04:53Z tomekp $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['to'] = 'Nori';
$labels['cc'] = 'Kopia';
$labels['bcc'] = 'Bcc';
-$labels['replyto'] = 'Erantzun-Hona';
+$labels['replyto'] = 'Erantzun-Honi';
$labels['date'] = 'Data';
$labels['size'] = 'Tamaina';
$labels['priority'] = 'Lehentasuna';
$labels['organization'] = 'Erakundea';
-$labels['reply-to'] = 'Erantzun-Hona';
+$labels['reply-to'] = 'Erantzun-Honi';
$labels['mailboxlist'] = 'Karpetak';
$labels['messagesfromto'] = '$from -tik $to -ra $count mezuetatik';
$labels['messagenrof'] = '$nr mezua $count -tik';
$labels['thursday'] = 'Osteguna';
$labels['friday'] = 'Ostirala';
$labels['saturday'] = 'Larunbata';
+$labels['jan'] = 'Urt';
+$labels['feb'] = 'Ots';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Api';
+$labels['may'] = 'Mai';
+$labels['jun'] = 'Eka';
+$labels['jul'] = 'Uzt';
+$labels['aug'] = 'Abu';
+$labels['sep'] = 'Ira';
+$labels['oct'] = 'Urr';
+$labels['nov'] = 'Aza';
+$labels['dec'] = 'Abe';
+$labels['longjan'] = 'Urtarrila';
+$labels['longfeb'] = 'Otsaila';
+$labels['longmar'] = 'Martxoa';
+$labels['longapr'] = 'Apirila';
+$labels['longmay'] = 'Maiatza';
+$labels['longjun'] = 'Ekaina';
+$labels['longjul'] = 'Uztaila';
+$labels['longaug'] = 'Abuztua';
+$labels['longsep'] = 'Iraila';
+$labels['longoct'] = 'Urria';
+$labels['longnov'] = 'Azaroa';
+$labels['longdec'] = 'Abendua';
$labels['today'] = 'Gaur';
$labels['checkmail'] = 'Mezu berrien bila arakatu';
$labels['writenewmessage'] = 'Mezu berri bat sortu';
$labels['replytomessage'] = 'Mezuari erantzun';
$labels['replytoallmessage'] = 'Bidaltzaile eta hartzaile guztiei erantzun';
$labels['forwardmessage'] = 'Mezua Birbidali';
-$labels['deletemessage'] = 'Mezua zakarrontzira mugitu';
+$labels['deletemessage'] = 'Mezua ezabatu';
+$labels['movemessagetotrash'] = 'Mezua zakarrontzira mugitu';
$labels['printmessage'] = 'Mezu hau inprimatu';
$labels['previousmessage'] = 'Aurreko mezua ikusi';
$labels['previousmessages'] = 'Aurreko mezuak ikusi';
$labels['lastmessages'] = 'Azken mezu sorta ikusi';
$labels['backtolist'] = 'Mezu zerrendara itzuli';
$labels['viewsource'] = 'Jatorria bistarazi';
+$labels['markmessages'] = 'Markatu mezuak';
+$labels['markread'] = 'Irakurria bezala';
+$labels['markunread'] = 'Ez-irakurria bezala';
+$labels['markflagged'] = 'Markatua bezala';
+$labels['markunflagged'] = 'Ez-markatua bezala';
$labels['select'] = 'Hautatu';
$labels['all'] = 'Denak';
$labels['none'] = 'Batez';
$labels['quicksearch'] = 'Bilaketa azkarra';
$labels['resetsearch'] = 'Bilaketa berrabiarazi';
$labels['compose'] = 'Mezu bat sortu';
-$labels['sendmessage'] = 'Mezua orain bidali';
$labels['savemessage'] = 'Zirriborro hau gorde';
+$labels['sendmessage'] = 'Mezua orain bidali';
$labels['addattachment'] = 'Fitxategia erantsi';
$labels['charset'] = 'Karaktere jokoa';
$labels['editortype'] = 'Editore mota';
$labels['highest'] = 'Altuena';
$labels['nosubject'] = '(gairik gabea)';
$labels['showimages'] = 'Irudiak bistarazi';
+$labels['alwaysshow'] = 'Beti ikusi $sender -en irudiak';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Testu laua';
+$labels['savesentmessagein'] = 'Gorde mezua hemen';
+$labels['dontsave'] = 'ez gorde';
+$labels['addcc'] = 'Gehitu Cc (kopia)';
+$labels['addbcc'] = 'Gehitu Bcc (kopia ezkutua)';
+$labels['addreplyto'] = 'Gehitu erantzun-honi';
+$labels['mdnrequest'] = 'Mezu honen bidaltzaileak mezua irakurtzen duzunean jakinaraztea eskatu du. Bidaltzailea ohartu nahi duzu?';
+$labels['receiptread'] = 'Itzulketa agiria (irakurria)';
+$labels['yourmessage'] = 'Hau zure mezuaren Itzulketa Agiria da';
+$labels['receiptnote'] = 'Oharra: Agiri honek hartzailearen ordenagailuan mezua ikusi dala adierazten du besterik gabe. Honek ez du esan nahi hartzaileak mezua irakurri edo/eta ulertu duenik:';
$labels['name'] = 'Izena bistarazi';
$labels['firstname'] = 'Izena';
$labels['surname'] = 'Abizena';
$labels['htmleditor'] = 'HTML mezuak sortu';
$labels['htmlsignature'] = 'HTML sinadura';
$labels['previewpane'] = 'Aurrebista panela ikusi';
+$labels['skin'] = 'Azal-interfazea';
+$labels['logoutclear'] = 'Garbitu Zakarronzia irtetean';
+$labels['logoutcompact'] = 'Trinkotu Sarrera irtetean';
+$labels['uisettings'] = 'Erabiltzaile-interfazea';
+$labels['serversettings'] = 'Zerbitzariaren ezarpenak';
+$labels['mailboxview'] = 'Postakutxatilaren ikuspegia';
+$labels['mdnrequests'] = 'Bidaltzailearen jakinarazpena';
+$labels['askuser'] = 'galdetu erabiltzaileari';
+$labels['autosend'] = 'bidali automatikoki';
+$labels['ignore'] = 'ezikusi';
+$labels['readwhendeleted'] = 'Markatu mezua irakurrita bezala ezabatzerakoan';
+$labels['flagfordeletion'] = 'Markatu mezua ezabatzeko ezabatu beharrean';
+$labels['showinlineimages'] = 'Erakutsi erantzitako irudiak mezuaren azpian';
$labels['autosavedraft'] = 'Zirriborroa automatikoki gorde';
$labels['everynminutes'] = '$n minuturo';
-$labels['never'] = 'inoiz';
+$labels['never'] = 'inoiz ez';
+$labels['messagesdisplaying'] = 'Mezuak ikusi';
+$labels['messagescomposition'] = 'Mezuak sortu';
$labels['folder'] = 'Karpeta';
$labels['folders'] = 'Karpetak';
$labels['foldername'] = 'Karpeta izena';
$labels['subscribed'] = 'Harpideturik';
+$labels['messagecount'] = 'Mezuak';
$labels['create'] = 'Sortu';
$labels['createfolder'] = 'Karpeta berria sortu';
$labels['rename'] = 'Berrizendatu';
$labels['renamefolder'] = 'Karpeta berrizendatu';
$labels['deletefolder'] = 'Karpeta ezabatu';
$labels['managefolders'] = 'Karpeta kudeaketa';
+$labels['specialfolders'] = 'Karpeta bereziak';
$labels['sortby'] = 'Honela ordenatu';
$labels['sortasc'] = 'Goraka ordenatu';
$labels['sortdesc'] = 'Beheraka ordenatu';
-?>
\ No newline at end of file
+?>
<?php
/*
- +-----------------------------------------------------------------------+
- | language/eu/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: pi <pi@beobide.net> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/eu_ES/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: pi <pi@beobide.net> |
+| Bihar <gaurdabihar@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 950 2008-01-04 08:04:53Z tomekp $
+@version $Id: messages.inc 1663 2008-08-21 06:19:10Z yllar $
*/
$messages['loginfailed'] = 'Saio sarrerak huts egin du';
$messages['cookiesdisabled'] = 'Zure nabigatzaileak ez ditu cookie-ak onartzen';
$messages['sessionerror'] = 'Zure saioa baliogabea da edo iraungita dago';
-$messages['imaperror'] = 'Huts IMAP zerbitzarira konektatzerakoan';
+$messages['imaperror'] = 'Huts IMAP zerbitzarira konektatzean';
$messages['nomessagesfound'] = 'Ez da mezurik aurkitu posta kutxa honetan';
$messages['loggedout'] = 'Saioa behar bezala amaitu duzu. Agur!';
$messages['mailboxempty'] = 'Posta kutxa hutsik dago';
$messages['blockedimages'] = 'Zure pribazitatea mantentzeko urruneko irudiak blokeatu egin dira.';
$messages['encryptedmessage'] = 'Hau enkriptaturiko mezu bat da eta ezin da bistarazi. Barkatu!';
$messages['nocontactsfound'] = 'Ez da txartelik aurkitu';
+$messages['contactnotfound'] = 'Eskatutako txartela ez da aurkitu';
$messages['sendingfailed'] = 'Huts mezua bidaltzerakoan';
-$messages['errorsaving'] = 'Errore bat gertatu da gordetzerakoan';
+$messages['errorsavingsent'] = 'Errorea gertatu da bidalitako mezua gordetzean';
+$messages['errorsaving'] = 'Errore bat gertatu da gordetzean';
$messages['errormoving'] = 'Ezin da mezua mugitu';
$messages['errordeleting'] = 'Ezin da mezua ezabatu';
$messages['deletecontactconfirm'] = 'Benetan hautaturiko kontaktuak ezabatu nahi dituzula?';
$messages['nonamewarning'] = 'Mesedez izen bat idatzi';
$messages['nopagesizewarning'] = 'Mesedez paper tamaina idatzi';
$messages['norecipientwarning'] = 'Mesedez behintzat hartzaile bat idatzi';
-$messages['nosubjectwarning'] = '"Gaia" eremua hutsik dago. Bat idatzi nahi al duzu?';
+$messages['nosubjectwarning'] = '\"Gaia\" eremua hutsik dago. Bat idatzi nahi al duzu?';
$messages['nobodywarning'] = 'Testu gabeko mezu hau bidali?';
$messages['notsentwarning'] = 'Mezua ez da bidali. Mezua ezeztatu nahi al duzu?';
$messages['noldapserver'] = 'Mesedez hautatu bilaketa egiteko LDAP zerbitzari bat';
$messages['messageopenerror'] = 'Ezin da zerbitzaritik mezua kargatu';
$messages['fileuploaderror'] = 'Huts fitxategia eransterakoan';
$messages['filesizeerror'] = 'Erantsi nahi duzun fitxategian $size tamaina muga gainditzen du';
+$messages['copysuccess'] = 'Ondo kopiatu dira $nr helbideak';
+$messages['copyerror'] = 'Ezin da helbiderik kopiatu';
+$messages['sourceisreadonly'] = 'Helbide iturburua irakurtzeko soilik da';
+$messages['errorsavingcontact'] = 'Ezin da kontaktuaren helbidea gorde';
+$messages['movingmessage'] = 'Mezua mugitzen...';
+$messages['receiptsent'] = 'Ondo bidalia irakurritako agiria';
+$messages['errorsendingreceipt'] = 'Ezin da agiria bidali';
+$messages['nodeletelastidentity'] = 'Ezin da izaera hau ezabatu, zure bakarra da';
+$messages['addsubfolderhint'] = 'Aukeratutakoaren azpikarpeta bezala sortuko da karpeta hau';
+$messages['forbiddencharacter'] = 'Karpeta izenak debekatutako karaktereak ditu';
-?>
\ No newline at end of file
+?>
<?php
/*
- +-----------------------------------------------------------------------+
- | language/fa/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Mohammad Ebrahim Mohammadi Panah <mebrahim@gmail.com> |
- | Anoosh <anoosher2003@yahoo.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/fa/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Mohammad Ebrahim Mohammadi Panah <mebrahim@gmail.com> |
+| Anoosh <anoosher2003@yahoo.com> |
++-----------------------------------------------------------------------+
- @version $Id$
+@version $Id$
*/
$labels = array();
-$labels['welcome'] = 'بÙ\87 $product Ø®Ù\88Ø´ Ø¢Ù\85دÛ\8cد';
+$labels['welcome'] = 'Ø®Ù\88Ø´ Ø¢Ù\85دÛ\8cد $product بÙ\87';
$labels['username'] = 'نام کاربری';
$labels['password'] = 'گذرواژه';
-$labels['server'] = 'خادÙ\85';
+$labels['server'] = 'سرÙ\88ر';
$labels['login'] = 'ورود';
$labels['logout'] = 'خروج';
-$labels['mail'] = 'راÛ\8cاÙ\86اÙ\85Ù\87';
+$labels['mail'] = 'اÛ\8cÙ\85Û\8cÙ\84';
$labels['settings'] = 'تنظیمات شخصی';
$labels['addressbook'] = 'دفتر نشانیها';
$labels['inbox'] = 'صندوق';
$labels['organization'] = 'سازماندهی';
$labels['reply-to'] = 'پاسخ-به';
$labels['mailboxlist'] = 'پوشهها';
-$labels['messagesfromto'] = 'پیغامهای $from تا $to از $count تا';
-$labels['messagenrof'] = 'پیغام $nr از $count تا';
+$labels['messagesfromto'] = 'تا $count از $to تا $from پیغامهای';
+$labels['messagenrof'] = 'تا $count پیغام از $nr';
$labels['moveto'] = '...انتقال به';
-$labels['download'] = 'پایینگذاری';
+$labels['download'] = 'دانلود';
$labels['filename'] = 'نام پرونده';
$labels['filesize'] = 'اندازهی پرونده';
-$labels['preferhtml'] = 'نمایش HTML';
-$labels['htmlmessage'] = 'پیغام HTML';
+$labels['preferhtml'] = 'HTML نمایش';
+$labels['htmlmessage'] = 'HTML پیغام';
$labels['prettydate'] = 'تاریخهای زیبا';
$labels['addtoaddressbook'] = 'افزودن به دفتر نشانیها';
-$labels['sun'] = 'یکشنبه';
+$labels['sun'] = 'یکشنبه';
$labels['mon'] = 'دوشنبه';
$labels['tue'] = 'سهشنبه';
$labels['wed'] = 'چهارشنبه';
$labels['thu'] = 'پنجشنبه';
$labels['fri'] = 'جمعه';
$labels['sat'] = 'شنبه';
-$labels['sunday'] = 'یکشنبه';
+$labels['sunday'] = 'یکشنبه';
$labels['monday'] = 'دوشنبه';
$labels['tuesday'] = 'سهشنبه';
$labels['wednesday'] = 'چهارشنبه';
$labels['thursday'] = 'پنجشنبه';
$labels['friday'] = 'جمعه';
$labels['saturday'] = 'شنبه';
+$labels['jan'] = 'ژانویه';
+$labels['feb'] = 'فوریه';
+$labels['mar'] = 'مارس';
+$labels['apr'] = 'آوریل';
+$labels['may'] = 'می';
+$labels['jun'] = 'ژوئن';
+$labels['jul'] = 'جولی';
+$labels['aug'] = 'آگوست';
+$labels['sep'] = 'سپتامبر';
+$labels['oct'] = 'اکتبر';
+$labels['nov'] = 'نوامبر';
+$labels['dec'] = 'دسامبر';
+$labels['longjan'] = 'ژانویه';
+$labels['longfeb'] = 'فوریه';
+$labels['longmar'] = 'مارس';
+$labels['longapr'] = 'آوریل';
+$labels['longmay'] = 'می';
+$labels['longjun'] = 'ژوئن';
+$labels['longjul'] = 'جولی';
+$labels['longaug'] = 'آگوست';
+$labels['longsep'] = 'سپتامبر';
+$labels['longoct'] = 'اکتبر';
+$labels['longnov'] = 'نوامبر';
+$labels['longdec'] = 'دسامبر';
$labels['today'] = 'امروز';
$labels['checkmail'] = 'بررسی برای پیغامهای جدید';
$labels['writenewmessage'] = 'ایجاد پیغام جدید';
$labels['highest'] = 'بیشترین';
$labels['nosubject'] = '(بدون موضوع)';
$labels['showimages'] = 'نمایش عکسها';
+$labels['alwaysshow'] = 'را نمایش بده $sender همیشه عکسهای دریافتی از ';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'متن ساده';
$labels['addcc'] = 'افزودن رونوشت';
$labels['addbcc'] = 'افزودن رونوشت مخفی';
$labels['addreplyto'] = 'افزودن پاسخ-به';
$labels['mdnrequest'] = 'فرستندهٔ این پیغام خواسته است که وقتی شما این پیغام را میخوانید، آگاه شود. آیا مایلید فرستنده را آگاه کنید؟';
-$labels['receiptread'] = 'رسید دریافت (خواندن)';
+$labels['receiptread'] = '(رسید دریافت (خواندن';
$labels['yourmessage'] = 'این یک رسید دریافت برای پیغام شماست';
$labels['receiptnote'] = 'تذکر: این رسید فقط تصدیق میکند که پیغام، روی رایانهٔ گیرنده نمایش داده شده است. هیچ تضمینی نیست که گیرنده، محتوای پیغام را خوانده یا فهمیده باشد.';
$labels['name'] = 'نمایش نام';
$labels['firstname'] = 'نام';
$labels['surname'] = 'نام خانوادگی';
-$labels['email'] = 'راÛ\8cاÙ\86اÙ\85Ù\87';
+$labels['email'] = 'اÛ\8cÙ\85Û\8cÙ\84';
$labels['addcontact'] = 'افزودن تماس جدید';
$labels['editcontact'] = 'ویرایش تماس';
$labels['edit'] = 'ویرایش';
$labels['newcontact'] = 'ایجاد کارت تماس جدید';
$labels['deletecontact'] = 'حذف تماسهای انتخاب شده';
$labels['composeto'] = 'نوشتن نامه به';
-$labels['contactsfromto'] = 'تماسهای $from تا $to از $count تا';
+$labels['contactsfromto'] = ' تا $count از $to تا $from تماسهای';
$labels['print'] = 'چاپ';
$labels['export'] = 'صدور';
$labels['previouspage'] = 'نمایش دستهی قبلی';
$labels['htmleditor'] = 'HTML نوشتن پیغامهای';
$labels['htmlsignature'] = 'HTML امضای';
$labels['previewpane'] = 'نمایش قاب پیشنمایش';
+$labels['logoutclear'] = 'تمیز کردن زباله دان در هنگام خروچ';
+$labels['logoutcompact'] = 'فشرده سازی صندوق در هنگام خروچ';
+$labels['uisettings'] = 'محیط کاربری';
+$labels['serversettings'] = 'تنظیمات سرور';
+$labels['mailboxview'] = 'نمایش صندوق';
+$labels['mdnrequests'] = 'تاییدهای فرستنده';
+$labels['askuser'] = 'پرسش از کاربر';
+$labels['autosend'] = 'ارسال خود به خود';
+$labels['ignore'] = 'نادیده گیری';
+$labels['readwhendeleted'] = 'در هنگام پاک کردن، پیغام را به عنوان خوانده شده علامت بزن';
+$labels['flagfordeletion'] = 'پیغام را بجای پاک کردن، برای پاک شدن آماده کن ';
+$labels['showinlineimages'] = 'نمایش عکس های الصاق شده در پایین پیغام';
$labels['autosavedraft'] = 'ذخیرهی خودکار پیشنویس';
-$labels['everynminutes'] = 'هر $n دقیقه';
+$labels['everynminutes'] = 'دقیقه $n هر';
$labels['never'] = 'هرگز';
+$labels['messagesdisplaying'] = 'نمایش داده شدن پیغام ها';
+$labels['messagescomposition'] = 'نوشته شدن پیغام ها';
$labels['folder'] = 'پوشه';
$labels['folders'] = 'پوشهها';
$labels['foldername'] = 'نام پوشه';
$labels['sortasc'] = 'مرتبسازی صعودی';
$labels['sortdesc'] = 'مرتبسازی نزولی';
-?>
\ No newline at end of file
+?>
<?php
/*
- +-----------------------------------------------------------------------+
- | language/fa/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Mohammad Ebrahim Mohammadi Panah <mebrahim@gmail.com> |
- | Anoosh <anoosher2003@yahoo.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/fa/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Mohammad Ebrahim Mohammadi Panah <mebrahim@gmail.com> |
+| Anoosh <anoosher2003@yahoo.com> |
++-----------------------------------------------------------------------+
- @version $Id$
+@version $Id$
*/
$messages = array();
$messages['loginfailed'] = 'ورود ناموفق بود';
-$messages['cookiesdisabled'] = 'Ù\85رÙ\88رگر Ø´Ù\85ا Ú©Ù\84Ù\88Ú\86Ù\87 قبول نمی کند';
-$messages['sessionerror'] = 'نشست شما یا معتبر نیست، یا منقضی شده است';
-$messages['imaperror'] = 'اتصال به خادم IMAP ناموفق بود';
+$messages['cookiesdisabled'] = 'Ù\85رÙ\88رگر Ø´Ù\85ا Ú©Ù\88Ú©Û\8c قبول نمی کند';
+$messages['sessionerror'] = 'نشست شما معتبر نیست، یا منقضی شده است';
+$messages['imaperror'] = 'ناموفق بود IMAPاتصال به سرور';
$messages['nomessagesfound'] = 'هیچ پیغامی در صندوق نامه پیدا نشد';
-$messages['loggedout'] = 'شما با موفقیت نشست را پایان دادید. خدا نکهدار!';
+$messages['loggedout'] = '!شما با موفقیت نشست را پایان دادید. خدا نگهدار';
$messages['mailboxempty'] = 'صندوق نامه خالی است';
-$messages['loading'] = 'در حال بارگذاری ...';
-$messages['loadingdata'] = 'در حال بارگذاری دادهها ...';
-$messages['checkingmail'] = 'بررسی برای پیغام جدید ...';
-$messages['sendingmessage'] = 'در حال ارسال پیغام ...';
+$messages['loading'] = '...در حال بارگذاری';
+$messages['loadingdata'] = '...در حال بارگذاری دادهها';
+$messages['checkingmail'] = '...بررسی برای پیغام جدید';
+$messages['sendingmessage'] = '...در حال ارسال پیغام';
$messages['messagesent'] = 'پیغام با موفقیت فرستاده شد';
-$messages['savingmessage'] = 'درحال ذخیرهی پیغام ...';
+$messages['savingmessage'] = '...درحال ذخیرهی پیغام';
$messages['messagesaved'] = 'پیغام در پیشنویسها ذخیره شد';
$messages['successfullysaved'] = 'با موفقیت ذخیره شد';
$messages['addedsuccessfully'] = 'تماس با موفقیت به دفتر نشانیها اضافه شد';
-$messages['contactexists'] = 'Û\8cÚ© تÙ\85اس با اÛ\8cÙ\86 Ù\86شاÙ\86Û\8c راÛ\8cاÙ\86اÙ\85Ù\87 از قبل وجود دارد';
-$messages['blockedimages'] = 'برای حفاظت از حریم شخصی شما ، عکسهای دوردست از پیغام حذف شد';
-$messages['encryptedmessage'] = 'این یک پیغام رمزنگاری شده است و قابل نمایش نیست. ببخشید!';
+$messages['contactexists'] = 'Û\8cÚ© تÙ\85اس با اÛ\8cÙ\86 Ù\86شاÙ\86Û\8c اÛ\8cÙ\85Û\8cÙ\84 از قبل وجود دارد';
+$messages['blockedimages'] = 'برای حفاظت از حریم شخصی شما، عکسهای دوردست از پیغام حذف شد';
+$messages['encryptedmessage'] = '!این یک پیغام رمزنگاری شده است و قابل نمایش نیست. ببخشید';
$messages['nocontactsfound'] = 'هیج تماسی پیدا نشد';
$messages['contactnotfound'] = 'تماس درخواست شده پیدا نشد';
$messages['sendingfailed'] = 'ناموفق در فرستادن پیغام';
$messages['errorsaving'] = 'هنگام ذخیرهسازی، اشکالی پیش آمد';
-$messages['errormoving'] = 'Ù\86اتÙ\88اÙ\86 از انتقال پیغام';
-$messages['errordeleting'] = 'Ù\86اتÙ\88اÙ\86 از حذف پیغام';
+$messages['errormoving'] = 'Ù\86اتÙ\88اÙ\86 در انتقال پیغام';
+$messages['errordeleting'] = 'Ù\86اتÙ\88اÙ\86 در حذف پیغام';
$messages['deletecontactconfirm'] = 'آیا واقعاً میخواهید تماس (های) انتخاب شده را حذف کنید؟';
$messages['deletemessagesconfirm'] = 'آیا واقعاً میخواهید پیغام (های) انتخاب شده را حذف کنید؟';
$messages['deletefolderconfirm'] = 'آیا واقعاً میخواهید این پوشه را حذف کنید؟';
$messages['purgefolderconfirm'] = 'آیا واقعاً میخواهید همهی پیغامهای داخل این پوشه را حذف کنید؟';
$messages['formincomplete'] = 'فرم کاملاً پر نشده بود';
-$messages['noemailwarning'] = 'Ù\84Ø·Ù\81اÙ\8b Û\8cÚ© Ù\86شاÙ\86Û\8c راÛ\8cاÙ\86اÙ\85Ù\87â\80\8cÛ\8c معتبر وارد کنید';
+$messages['noemailwarning'] = 'Ù\84Ø·Ù\81اÙ\8b Û\8cÚ© Ù\86شاÙ\86Û\8c اÛ\8cÙ\85Û\8cÙ\84 معتبر وارد کنید';
$messages['nonamewarning'] = 'لطفاً یک نام وارد کنید';
$messages['nopagesizewarning'] = 'لطفاً یک اندازه برای صفحه وارد کنید';
$messages['norecipientwarning'] = 'لطفاً حداقل یک گیرنده وارد کنید';
-$messages['nosubjectwarning'] = 'قسمت "موضوع" خالی است. آیا میخواهید اکنون وارد کنید؟';
+$messages['nosubjectwarning'] = 'قسمت \"موضوع\" خالی است. آیا میخواهید اکنون وارد کنید؟';
$messages['nobodywarning'] = 'این پیغام بدون متن ارسال شود؟';
$messages['notsentwarning'] = 'پیغام ارسال نشده است. آیا میخواهید پیغام را از بین ببرید؟';
-$messages['noldapserver'] = 'لطفاً یک خادم LDAP برای جست و جو انتخاب کنید';
+$messages['noldapserver'] = 'برای جست و جو انتخاب کنید LDAP لطفاً یک سرور';
$messages['nocontactsreturned'] = 'هیچ تماسی پیدا نشد';
-$messages['nosearchname'] = 'Ù\84Ø·Ù\81ا Ù\86اÙ\85 Û\8cÚ© تÙ\85اس Ù\88 Û\8cا Û\8cÚ© Ù\86شاÙ\86Û\8c راÛ\8cاÙ\86اÙ\85Ù\87 وارد کنید';
-$messages['searchsuccessful'] = '$nr پیغام پیدا شد';
+$messages['nosearchname'] = 'Ù\84Ø·Ù\81ا Ù\86اÙ\85 Û\8cÚ© تÙ\85اس Ù\88 Û\8cا Û\8cÚ© Ù\86شاÙ\86Û\8c اÛ\8cÙ\85Û\8cÙ\84 وارد کنید';
+$messages['searchsuccessful'] = 'پیغام پیدا شد $nr';
$messages['searchnomatch'] = 'جست و جو هیچ نتیجهای نداشت';
-$messages['searching'] = 'در حال جست و جو ...';
-$messages['checking'] = 'در حال بررسی ...';
+$messages['searching'] = '...در حال جست و جو';
+$messages['checking'] = '...در حال بررسی';
$messages['nospellerrors'] = 'هیچ اشکال املایی پیدا نشد';
$messages['folderdeleted'] = 'پوشه با موفقیت حذف شد';
$messages['deletedsuccessfully'] = 'حذف انجام شد';
-$messages['converting'] = 'در حال حذف قالببندیها از پیغام ...';
-$messages['messageopenerror'] = 'Ù\86اتÙ\88اÙ\86 از بارگذارÛ\8c Ù¾Û\8cغاÙ\85 از رÙ\88Û\8c خادÙ\85';
+$messages['converting'] = '...در حال حذف قالببندیها از پیغام';
+$messages['messageopenerror'] = 'Ù\86اتÙ\88اÙ\86 در بارگذارÛ\8c Ù¾Û\8cغاÙ\85 از رÙ\88Û\8c سرÙ\88ر';
$messages['fileuploaderror'] = 'بالاگذاری پرونده ناموفق بود';
-$messages['filesizeerror'] = 'اÙ\86دازÙ\87â\80\8cÛ\8c پرÙ\88Ù\86دÙ\87â\80\8cÛ\8c باÙ\84اگذارÛ\8c شدÙ\87 از بÛ\8cØ´Û\8cÙ\86Ù\87 اÙ\86دازÙ\87â\80\8cÛ\8c $size تجاÙ\88ز Ù\85Û\8câ\80\8cÚ©Ù\86د';
-$messages['copysuccess'] = '$nr نشانی با موفقیت رونوشتبرداری شدند';
+$messages['filesizeerror'] = 'بÛ\8cشتر است $size اÙ\86دازÙ\87â\80\8cÛ\8c پرÙ\88Ù\86دÙ\87â\80\8cÛ\8c باÙ\84اگذارÛ\8c شدÙ\87 از بÛ\8cØ´Û\8cÙ\86Ù\87 اÙ\86دازÙ\87â\80\8cÛ\8c';
+$messages['copysuccess'] = 'نشانی با موفقیت رونوشتبرداری شدند $nr';
$messages['copyerror'] = 'رونوشتبرداری از نشانیها ناموفق بود';
$messages['sourceisreadonly'] = 'این منبع نشانی فقطخواندنی است';
$messages['errorsavingcontact'] = 'ذخیرهی نشانی تماس ناموفق بود';
-$messages['movingmessage'] = 'در حال انتقال پیغام ...';
+$messages['movingmessage'] = '...در حال انتقال پیغام';
$messages['receiptsent'] = 'رسید خواندن با موفقیت ارسال شد';
-$messages['errorsendingreceipt'] = 'Ù\86اتÙ\88اÙ\86 از ارسال رسید';
-$messages['nodeletelastidentity'] = 'نمیتوانید این هویت را حذف کنید، زیرا آخرین هویت شماست.';
+$messages['errorsendingreceipt'] = 'Ù\86اتÙ\88اÙ\86 در ارسال رسید';
+$messages['nodeletelastidentity'] = '.نمیتوانید این هویت را حذف کنید، زیرا آخرین هویت شماست';
$messages['addsubfolderhint'] = 'پوشه به عنوان زیرپوشه ای ساخته خواهد شد که هم اکنون انتخاب شده است';
+$messages['forbiddencharacter'] = 'نام پوشه شامل یک حرف غیر مجاز است';
-?>
\ No newline at end of file
+?>
| Veljo Velling <veve@utu.fi> |
+-----------------------------------------------------------------------+
-@version $Id: labels.inc 1462 2008-06-01 15:40:16Z yllar $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['markmessages'] = 'Merkitse viestit';
$labels['markread'] = 'luetuiksi';
$labels['markunread'] = 'ei-luetuiksi';
+$labels['markflagged'] = 'korostetuiksi';
+$labels['markunflagged'] = 'ei-korostetuiksi';
$labels['select'] = 'Valitse';
$labels['all'] = 'Kaikki';
$labels['none'] = 'Ei mitään';
$labels['unlimited'] = 'rajoittamaton';
$labels['quicksearch'] = 'Pikahaku';
$labels['resetsearch'] = 'Nollaa haku';
+$labels['openinextwin'] = 'Avaa uudessa ikkunassa';
$labels['compose'] = 'Viestin kirjoitus';
$labels['savemessage'] = 'Tallenna tämä luonnos';
$labels['sendmessage'] = 'Lähetä viesti';
$labels['highest'] = 'Korkein';
$labels['nosubject'] = '(ei otsikkoa)';
$labels['showimages'] = 'Näytä kuvat';
+$labels['alwaysshow'] = 'Näytä aina lähettäjältä $sender saapuneet kuvat';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Tavallinen teksti';
+$labels['savesentmessagein'] = 'Tallenna lähetetty viesti kansioon';
+$labels['dontsave'] = 'Älä tallenna';
+$labels['maxuploadsize'] = 'Suurin sallittu tiedostokoko on $size';
$labels['addcc'] = 'Lisää kopio';
$labels['addbcc'] = 'Lisää piilokopio';
$labels['addreplyto'] = 'Lisää vastausosoite';
$labels['contactsfromto'] = 'Kontaktit $from-$to/$count';
$labels['print'] = 'Tulosta';
$labels['export'] = 'Vie (export)';
+$labels['exportvcards'] = 'Vie kontaktit vCard-muodossa';
$labels['previouspage'] = 'Näytä edellinen luettelo';
$labels['firstpage'] = 'Näytä ensimmäinen luettelo';
$labels['nextpage'] = 'Näytä seuraava luettelo';
$labels['lastpage'] = 'Näytä viimeinen luettelo';
$labels['groups'] = 'Ryhmät';
-$labels['personaladrbook'] = 'Hensilökohtaiset osoitteet';
+$labels['personaladrbook'] = 'Henkilökohtaiset osoitteet';
+$labels['import'] = 'Tuo';
+$labels['importcontacts'] = 'Tuo yhteystiedot';
+$labels['importfromfile'] = 'Tuo tiedostosta:';
+$labels['importreplace'] = 'Korvaa koko osoitekirja';
+$labels['importtext'] = 'Voit lähettää yhteystietoja muista osoitekirjoistna.Kontaktien tuomine on hetkellä mahdollista vCard-muodossa.';
+$labels['done'] = 'Valmis';
$labels['settingsfor'] = 'Asetukset';
$labels['preferences'] = 'Asetukset';
$labels['userpreferences'] = 'Käyttäjän asetukset';
$labels['newitem'] = 'Uusi';
$labels['edititem'] = 'Muokkaa';
$labels['setdefault'] = 'Aseta vakioksi';
+$labels['autodetect'] = 'Automaattinen';
$labels['language'] = 'Kieli';
$labels['timezone'] = 'Aikavyöhyke';
$labels['pagesize'] = 'Rivejä sivulla';
$labels['htmleditor'] = 'Kirjoita HTML-muodossa';
$labels['htmlsignature'] = 'HTML-allekirjoitus';
$labels['previewpane'] = 'Näytä esikatselulehti';
+$labels['skin'] = 'Käyttöliittymän teema';
$labels['logoutclear'] = 'Tyhjennä roskakori ulos kirjautuessa';
$labels['logoutcompact'] = 'Tiivistä kansiot ulos kirjautuessa';
$labels['uisettings'] = 'Käyttöliittymä';
$labels['ignore'] = 'jätä huomiotta';
$labels['readwhendeleted'] = 'Merkitse poistettavat viestit luetuiksi';
$labels['flagfordeletion'] = 'Poistamisen sijaan, merkitse viestit poistettavaksi';
+$labels['skipdeleted'] = 'Älä näytä poistettuja viestejä';
+$labels['showinlineimages'] = 'Näytä liitekuvat viestin jälkeen';
$labels['autosavedraft'] = 'Tallenna luonnos automaattisesti';
$labels['everynminutes'] = '$n minuutin välein';
$labels['never'] = 'ei koskaan';
+$labels['messagesdisplaying'] = 'Viestien näyttäminen';
+$labels['messagescomposition'] = 'Viestien kirjoittaminen';
+$labels['mimeparamfolding'] = 'Liitetiedostojen nimet';
+$labels['2231folding'] = 'Täysin RFC 2231 mukainen (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 mukainen (MS Outlook)';
+$labels['2047folding'] = 'Täysin RFC 2047 mukainen (muut)';
+$labels['advancedoptions'] = 'Lisäasetukset';
$labels['folder'] = 'Kansio';
$labels['folders'] = 'Kansiot';
$labels['foldername'] = 'Kansion nimi';
$labels['rename'] = 'Nimeä uudelleen';
$labels['renamefolder'] = 'Nimeä kansio uudelleen';
$labels['deletefolder'] = 'Poista kansio';
-$labels['managefolders'] = 'Kansioiden ylläpito';
+$labels['managefolders'] = 'Kansioiden hallinta';
+$labels['specialfolders'] = 'Erikoiskansiot';
$labels['sortby'] = 'Järjestä';
$labels['sortasc'] = 'Järjestä nousevasti (a-ö)';
$labels['sortdesc'] = 'Järjestä laskevasti (ö-a)';
+$labels['B'] = 't';
+$labels['KB'] = 'Kt';
+$labels['MB'] = 'Mt';
+$labels['GB'] = 'Gt';
?>
| Veljo Velling <veve@utu.fi> |
+-----------------------------------------------------------------------+
-@version $Id: messages.inc 1462 2008-06-01 15:40:16Z yllar $
+@version $Id: messages.inc 2045 2008-11-11 15:09:24Z yllar $
*/
$messages['nocontactsfound'] = 'Ei kontakteja';
$messages['contactnotfound'] = 'Pyydettyä yhteystietoa ei löytynyt';
$messages['sendingfailed'] = 'Viestin lähetys epäonnistui';
+$messages['senttooquickly'] = 'Odota $sec sekunti(a) ennen viestin lähettämistä';
+$messages['errorsavingsent'] = 'Lähetetyn viestin tallennuksessa tapahtui virhe';
$messages['errorsaving'] = 'Tallennuksessa tapahtui virhe';
$messages['errormoving'] = 'Viestiä ei voitu siirtää';
$messages['errordeleting'] = 'Viestiä ei voitu poistaa';
$messages['deletemessagesconfirm'] = 'Haluatko varmasti poistaa valitut viestit?';
$messages['deletefolderconfirm'] = 'Haluatko varmasti poistaa kansion?';
$messages['purgefolderconfirm'] = 'Haluatko varmasti poistaa kaikki viestit kansiosta?';
+$messages['foldercreating'] = 'Luodaan kansiota...';
+$messages['folderdeleting'] = 'Poistetaan kansiota...';
+$messages['folderrenaming'] = 'Nimetään kansiota...';
+$messages['foldermoving'] = 'Siirretään kansiota...';
$messages['formincomplete'] = 'Lomakkeen tiedot olivat puutteelliset';
$messages['noemailwarning'] = 'Anna sähköpostiosoite';
$messages['nonamewarning'] = 'Anna nimi';
$messages['nopagesizewarning'] = 'Anna sivukoko';
+$messages['nosenderwarning'] = 'Anna lähettäjän sähköpostiosoite';
$messages['norecipientwarning'] = 'Anna ainakin yksi vastaanottaja';
$messages['nosubjectwarning'] = '"Otsikko" -kenttä on tyhjä. Haluaisitko kirjoittaa viestillesi otsikon?';
$messages['nobodywarning'] = 'Lähetetäänkö viesti ilman tekstiä?';
-$messages['notsentwarning'] = 'Viestiä ei lähethttp://translator.roundcube.net/index.phpetty. Haluatko poistaa viestin?';
+$messages['notsentwarning'] = 'Viestiä ei lähetetty. Haluatko poistaa viestin?';
$messages['noldapserver'] = 'Valitse LDAP -palvelin';
$messages['nocontactsreturned'] = 'Yhtään kontaktia ei löytynyt';
$messages['nosearchname'] = 'Anna kontaktin nimi tai sähköpostiosoite';
$messages['nodeletelastidentity'] = 'Et voi poistaa tätä identiteettiä, koska se on ainoa jäljelläoleva';
$messages['addsubfolderhint'] = 'Uusi kansio luodaan valitun kansion alikansiona';
$messages['forbiddencharacter'] = 'Kansion nimessä on kiellettyjä merkkejä';
+$messages['selectimportfile'] = 'Valitse lähetettävä tiedosto';
+$messages['addresswriterror'] = 'Valittuun osoitekirjaan ei voi kirjoittaa';
+$messages['importwait'] = 'Tuodaan, odota...';
+$messages['importerror'] = 'Tuonti epäonnistui! Lähetetty tiedosto ei ole vCard -muodossa.';
+$messages['importconfirm'] = '<b>$inserted kontaktia tuotu onnistuneesti $inserted kontaktioa, $skipped olemassaolevaa kontaktia hypättiin yli</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Toiminto ei ole sallittu!';
+$messages['nofromaddress'] = 'Valittu identiteetti ei sisällä sähköpostiosoitetta';
?>
/*
- +-----------------------------------------------------------------------+
- | language/fr/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Joel S. <joel.s@spijoprod.net> |
- | Jerome Lipowicz <jerome@yayel.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/fr_FR/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Joel S. <joel.s@spijoprod.net> |
+| Jerome Lipowicz <jerome@yayel.com> |
+| Maximilien Cuony <theglu@theglu.org> |
++-----------------------------------------------------------------------+
- @version $Id$
+@version $Id$
*/
$labels['thursday'] = 'Jeudi';
$labels['friday'] = 'Vendredi';
$labels['saturday'] = 'Samedi';
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Fév';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Avr';
+$labels['may'] = 'Mai';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Aoû';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Déc';
+$labels['longjan'] = 'Janvier';
+$labels['longfeb'] = 'Février';
+$labels['longmar'] = 'Mars';
+$labels['longapr'] = 'Avril';
+$labels['longmay'] = 'Mai';
+$labels['longjun'] = 'Juin';
+$labels['longjul'] = 'Juillet';
+$labels['longaug'] = 'Août';
+$labels['longsep'] = 'Septembre';
+$labels['longoct'] = 'Octobre';
+$labels['longnov'] = 'Novembre';
+$labels['longdec'] = 'Décembre';
$labels['today'] = 'Aujourd\'hui';
$labels['checkmail'] = 'Vérification des nouveaux messages';
$labels['writenewmessage'] = 'Écrire un nouveau message';
$labels['markmessages'] = 'Marquer les messages';
$labels['markread'] = 'Comme lus';
$labels['markunread'] = 'Comme non lus';
+$labels['markflagged'] = 'Comme suivi';
+$labels['markunflagged'] = 'Comme non-suivi';
$labels['select'] = 'Sélectionner';
$labels['all'] = 'Tous';
$labels['none'] = 'Aucun';
$labels['unread'] = 'Non lus';
+$labels['flagged'] = 'Marqué';
+$labels['unanswered'] = 'Non répondu';
+$labels['filter'] = 'Filtre';
$labels['compact'] = 'Compacter';
$labels['empty'] = 'Vider';
$labels['purge'] = 'Purger';
-$labels['quota'] = 'Utilisation disque';
+$labels['quota'] = 'Occupation disque';
$labels['unknown'] = 'inconnue';
$labels['unlimited'] = 'illimitée';
$labels['quicksearch'] = 'Recherche rapide';
$labels['resetsearch'] = 'Réinitialiser la recherche';
+$labels['openinextwin'] = 'Ouvrir dans une nouvelle fenêtre';
$labels['compose'] = 'Composer un nouveau message';
$labels['savemessage'] = 'Sauvegarder ce brouillon';
$labels['sendmessage'] = 'Envoyer le message maintenant';
$labels['highest'] = 'La plus élevée';
$labels['nosubject'] = '(pas de sujet)';
$labels['showimages'] = 'Afficher les images';
+$labels['alwaysshow'] = 'Toujours afficher les images de $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'texte brut';
+$labels['savesentmessagein'] = 'Sauver le message envoyé dans';
+$labels['dontsave'] = 'ne pas sauver';
+$labels['maxuploadsize'] = 'La taille maximum autorisée pour un fichier est $size';
$labels['addcc'] = 'Ajouter Cc';
$labels['addbcc'] = 'Ajouter Cci';
$labels['addreplyto'] = 'Ajouter Répondre à';
$labels['mdnrequest'] = 'L\'expéditeur de ce message a demandé d\'être prévenu quand vous lirez ce message. Souhaitez-vous prévenir l\'expéditeur ?';
-$labels['receiptread'] = 'Accusé de réception (lire)';
+$labels['receiptread'] = 'Accusé de réception (lu)';
$labels['yourmessage'] = 'Ceci est un accusé de réception pour votre message';
$labels['receiptnote'] = 'Note : Cet accusé de réception indique seulement que le message a été affiché sur l\'ordinateur du destinataire. Il n\'y a aucune garantie que le destinataire a lu ou compris le contenu du message.';
$labels['name'] = 'Nom à afficher';
$labels['contactsfromto'] = 'Contacts de $from à $to sur $count';
$labels['print'] = 'Imprimer';
$labels['export'] = 'Exporter';
+$labels['exportvcards'] = 'Exporter les contacts au format vCard';
$labels['previouspage'] = 'Montrer page précédente';
$labels['firstpage'] = 'Voir la première page';
$labels['nextpage'] = 'Montrer page suivante';
$labels['lastpage'] = 'Voir la dernière page';
$labels['groups'] = 'Groupes';
$labels['personaladrbook'] = 'Adresses personnelles';
+$labels['import'] = 'Importer';
+$labels['importcontacts'] = 'Importer les contacts';
+$labels['importfromfile'] = 'Importer depuis un fichier:';
+$labels['importreplace'] = 'Remplacer le carnet d\'adresse entier';
+$labels['importtext'] = 'Vous pouvez envoyer des contacts depuis un carnet d\'adresse existant. Nous supportons actuellement l\'importation d\'adresses au format vCard.';
+$labels['done'] = 'Terminé';
$labels['settingsfor'] = 'Paramètres pour';
$labels['preferences'] = 'Préférences';
$labels['userpreferences'] = 'Préférences utilisateur';
$labels['newitem'] = 'Nouvel élément';
$labels['edititem'] = 'Modifier l\'élément';
$labels['setdefault'] = 'Paramètres par défaut';
+$labels['autodetect'] = 'Automatique';
$labels['language'] = 'Langue';
$labels['timezone'] = 'Fuseau horaire';
$labels['pagesize'] = 'Nombre de lignes par page';
$labels['htmleditor'] = 'Composer un message au format HTML';
$labels['htmlsignature'] = 'Signature HTML';
$labels['previewpane'] = 'Afficher le panneau d\'aperçu';
+$labels['skin'] = 'Thème de l\'interface';
+$labels['logoutclear'] = 'Vider la corbeille à la déconnexion';
+$labels['logoutcompact'] = 'Compacter la boite de réception à la déconnexion';
+$labels['uisettings'] = 'Interface utilisateur';
+$labels['serversettings'] = 'Préférences du serveur';
+$labels['mailboxview'] = 'Vue du courrier';
+$labels['mdnrequests'] = 'Notifications à l\'expéditeur';
+$labels['askuser'] = 'demander à l\'utilisateur';
+$labels['autosend'] = 'envoyer automatiquement';
+$labels['ignore'] = 'ignorer';
+$labels['readwhendeleted'] = 'Marquer le message comme lu à la suppression';
+$labels['flagfordeletion'] = 'Mettre le drapeau de suppression au lieu de supprimer';
+$labels['skipdeleted'] = 'Ne pas montrer les messages supprimés';
+$labels['showremoteimages'] = 'Afficher les images distantes';
+$labels['fromknownsenders'] = 'venant d\'expéditeurs connus';
+$labels['always'] = 'toujours';
+$labels['showinlineimages'] = 'Afficher les images attachées après le message';
$labels['autosavedraft'] = 'Sauvegarde automatique des brouillons';
$labels['everynminutes'] = 'toutes les $n minutes';
+$labels['keepaliveevery'] = 'toutes les $n minute(s)';
+$labels['keepalive'] = 'Chercher les nouveaux messages';
$labels['never'] = 'jamais';
+$labels['messagesdisplaying'] = 'Affichage des messages';
+$labels['messagescomposition'] = 'Ecriture des messages';
+$labels['mimeparamfolding'] = 'Nom du fichier attaché';
+$labels['2231folding'] = 'RFC 2231 complète (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'RFC 2047 complète (autre)';
+$labels['advancedoptions'] = 'Options avancées';
+$labels['focusonnewmessage'] = 'Placer le focus sur la fenêtre quand un nouveau message arrive';
+$labels['checkallfolders'] = 'Vérifier tous les dossiers pour les nouveaux messages';
$labels['folder'] = 'Dossier';
$labels['folders'] = 'Dossiers';
$labels['foldername'] = 'Nom du dossier';
$labels['renamefolder'] = 'Renommer le dossier';
$labels['deletefolder'] = 'Supprimer le dossier';
$labels['managefolders'] = 'Organiser les dossiers';
+$labels['specialfolders'] = 'Dossiers spéciaux';
$labels['sortby'] = 'Trier par';
$labels['sortasc'] = 'Tri ascendant';
$labels['sortdesc'] = 'Tri descendant';
+$labels['B'] = 'o';
+$labels['KB'] = 'Ko';
+$labels['MB'] = 'Mo';
+$labels['GB'] = 'Go';
?>
/*
- +-----------------------------------------------------------------------+
- | language/fr/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Joel S. <joel.s@spijoprod.net> |
- | Jerome Lipowicz <jerome@yayel.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/fr_FR/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Joel S. <joel.s@spijoprod.net> |
+| Jerome Lipowicz <jerome@yayel.com> |
+| Maximilien Cuony <theglu@theglu.org> |
++-----------------------------------------------------------------------+
- @version $Id$
+@version $Id$
*/
$messages['nocontactsfound'] = 'Aucun contact n\'a pu être trouvé';
$messages['contactnotfound'] = 'Le contact demandé n\'a pas été trouvé';
$messages['sendingfailed'] = 'L\'envoie du message a échoué';
+$messages['senttooquickly'] = 'Vous devez attendre $sec sec. pour envoyer le message';
+$messages['errorsavingsent'] = 'Une erreur est survenue pendant la sauvegarde du message envoyé';
$messages['errorsaving'] = 'Une erreur a empêché la sauvegarde';
$messages['errormoving'] = 'Impossible de déplacer le message';
$messages['errordeleting'] = 'Impossible d\'effacer le message';
$messages['deletemessagesconfirm'] = 'Voulez-vous vraiment supprimer le(s) message(s) séléctionné(s) ?';
$messages['deletefolderconfirm'] = 'Voulez-vous vraiment effacer ce dossier ?';
$messages['purgefolderconfirm'] = 'Voulez-vous vraiment effacer tous les messages de ce dossier ?';
+$messages['foldercreating'] = 'Création du dossier...';
+$messages['folderdeleting'] = 'Suppression du dossier...';
+$messages['folderrenaming'] = 'Renommage du dossier...';
+$messages['foldermoving'] = 'Déplacement du dossier...';
$messages['formincomplete'] = 'Le formulaire n\'a pas été entièrement rempli';
$messages['noemailwarning'] = 'Veuillez spécifier un courriel valide';
$messages['nonamewarning'] = 'Veuillez fournir un nom';
$messages['nopagesizewarning'] = 'Veuillez indiquer une taille de page';
+$messages['nosenderwarning'] = 'Veuillez renseigner l\'adresse d\'expéditeur';
$messages['norecipientwarning'] = 'Veuillez ajouter au moins un destinataire';
$messages['nosubjectwarning'] = 'Le champ « Objet » est vide. Souhaitez-vous le renseigner maintenant ?';
$messages['nobodywarning'] = 'Envoyer ce message sans texte ?';
$messages['errorsendingreceipt'] = 'L\'accusé de réception n\'a pas pu être envoyé';
$messages['nodeletelastidentity'] = 'Vous ne pouvez pas effacer votre seule identité.';
$messages['addsubfolderhint'] = 'Ce dossier sera créé comme sous-dossier de celui sélectionné.';
+$messages['forbiddencharacter'] = 'Le nom du dossier contient un caractère interdit';
+$messages['selectimportfile'] = 'Veuillez sélectionner un fichier à envoyer';
+$messages['addresswriterror'] = 'Impossible d\'écrire dans le carnet d\'adresse sélectionné';
+$messages['importwait'] = 'Importation, veuillez patienter...';
+$messages['importerror'] = 'Importation échouée ! Le fichier envoyé n\'est pas un fichier vCard valide.';
+$messages['importconfirm'] = '<b>$inserted contacts importés avec succès, $skipped entrées existantes ignorées</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Cette opération n\'est pas permise !';
+$messages['nofromaddress'] = 'Il manque une adresse e-mail dans l\'identitée sélectionnée';
+$messages['editorwarning'] = 'Passer à l\'éditeur texte seul causera la perte du formatage du texte. Voulez-vous continuer ?';
-?>
\ No newline at end of file
+?>
<?php
/*
- +-----------------------------------------------------------------------+
- | language/gl/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: David Garabana Barro <david garabana com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/gl_ES/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: David Garabana Barro <david garabana com> |
++-----------------------------------------------------------------------+
*/
$labels['messagesfromto'] = 'Mensaxes do $from ao $to de $count';
$labels['messagenrof'] = 'Mensaxe $nr de $count';
$labels['moveto'] = 'Mover a...';
-$labels['download'] = 'Baixar';
+$labels['download'] = 'Descargar';
$labels['filename'] = 'Nome de ficheiro';
$labels['filesize'] = 'Tamaño de ficheiro';
$labels['preferhtml'] = 'Prefiro HTML';
$labels['thursday'] = 'Xoves';
$labels['friday'] = 'Venres';
$labels['saturday'] = 'Sábado';
+$labels['jan'] = 'Xan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Abr';
+$labels['may'] = 'Mai';
+$labels['jun'] = 'Xuñ';
+$labels['jul'] = 'Xul';
+$labels['aug'] = 'Ago';
+$labels['sep'] = 'Set';
+$labels['oct'] = 'Out';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+$labels['longjan'] = 'Xaneiro';
+$labels['longfeb'] = 'Febreiro';
+$labels['longmar'] = 'Marzo';
+$labels['longapr'] = 'Abril';
+$labels['longmay'] = 'Maio';
+$labels['longjun'] = 'Xuño';
+$labels['longjul'] = 'Xullo';
+$labels['longaug'] = 'Agosto';
+$labels['longsep'] = 'Setembro';
+$labels['longoct'] = 'Outobro';
+$labels['longnov'] = 'Novembro';
+$labels['longdec'] = 'Decembro';
$labels['today'] = 'Hoxe';
-$labels['checkmail'] = 'Buscar novas mensaxes';
+$labels['checkmail'] = 'Procurar novas mensaxes';
$labels['writenewmessage'] = 'Crear unha nova mensaxe';
$labels['replytomessage'] = 'Respostar á mensaxe';
$labels['replytoallmessage'] = 'Respostar a todos';
$labels['forwardmessage'] = 'Reenviar a mensaxe';
-$labels['deletemessage'] = 'Borrar a mensaxe';
+$labels['deletemessage'] = 'Eliminar a mensaxe';
$labels['movemessagetotrash'] = 'Mover a mensaxe ó cubo do lixo';
$labels['printmessage'] = 'Imprimir esta mensaxe';
$labels['previousmessage'] = 'Amosar a mensaxe anterior';
$labels['markmessages'] = 'Marcar mensaxes';
$labels['markread'] = 'Coma lidos';
$labels['markunread'] = 'Coma non lidos';
+$labels['markflagged'] = 'Coma marcados';
+$labels['markunflagged'] = 'Coma non marcados';
$labels['select'] = 'Seleccionar';
$labels['all'] = 'Todas';
$labels['none'] = 'Ningunha';
$labels['quota'] = 'Uso de disco';
$labels['unknown'] = 'desconocido';
$labels['unlimited'] = 'ilimitado';
-$labels['quicksearch'] = 'Busca rápida';
+$labels['quick'] = 'Busca rápida';
$labels['resetsearch'] = 'Restablecer a busca';
+$labels['openinextwin'] = 'Abrir nunha nova fiestra';
$labels['compose'] = 'Redactar unha mensaxe';
$labels['savemessage'] = 'Gardar a mensaxe coma borrador';
$labels['sendmessage'] = 'Enviar a mensaxe agora';
$labels['highest'] = 'A máis alta';
$labels['nosubject'] = '(Sen asunto)';
$labels['showimages'] = 'Mostrar imaxes';
+$labels['alwaysshow'] = 'Mostrar sempre as imaxes nas mensaxes remitidas por $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texto claro';
+$labels['savesentmessagein'] = 'Gardar a mensaxe enviada en';
+$labels['dontsave'] = 'non gardar';
+$labels['maxuploadsize'] = 'O tamaño máximo permitido de ficheiro é de $size';
$labels['addcc'] = 'Engadir Copia (CC)';
$labels['addbcc'] = 'Engadir Copia Oculta (BCC)';
$labels['addreplyto'] = 'Engadir Respostar a (Reply-To)';
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Cancelar';
$labels['save'] = 'Gardar';
-$labels['delete'] = 'Borrar';
+$labels['delete'] = 'Eliminar';
$labels['newcontact'] = 'Crear novo contacto';
-$labels['deletecontact'] = 'Borrar os contactos seleccionados';
+$labels['deletecontact'] = 'Eliminar os contactos seleccionados';
$labels['composeto'] = 'Redactar mensaxe a';
$labels['contactsfromto'] = 'Contactos do $from ao $to de $count';
$labels['print'] = 'Imprimir';
$labels['export'] = 'Exportar';
+$labels['exportvcards'] = 'Exportar os contactos en formato vCard';
$labels['previouspage'] = 'Amosar o grupo anterior';
$labels['firstpage'] = 'Amosar o primeiro grupo';
$labels['nextpage'] = 'Amosar o seguinte grupo';
$labels['lastpage'] = 'Amosar o último grupo';
$labels['groups'] = 'Grupos';
$labels['personaladrbook'] = 'Enderezos persoais';
+$labels['import'] = 'Importar';
+$labels['importcontacts'] = 'Importar contactos';
+$labels['importfromfile'] = 'Importar desde ficheiro:';
+$labels['importreplace'] = 'Substituír completamente o caderno de enderezos';
+$labels['importtext'] = 'Pode cargar contactos desde un caderno de enderezos xa existente.<br/>Polo de agora pódense importar enderezos usando o formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ';
+$labels['done'] = 'Rematado';
$labels['settingsfor'] = 'Axustes de';
$labels['preferences'] = 'Preferencias';
$labels['userpreferences'] = 'Preferencias de usuario';
$labels['editpreferences'] = 'Editar preferencias de usuario';
$labels['identities'] = 'Identidades';
-$labels['manageidentities'] = 'Administrar identidades de esta conta';
+$labels['manageidentities'] = 'Administrar as identidades desta conta';
$labels['newidentity'] = 'Nova identidade';
$labels['newitem'] = 'Novo';
$labels['edititem'] = 'Editar';
-$labels['setdefault'] = 'Opción por defecto';
+$labels['setdefault'] = 'Usar coma predeterminada';
+$labels['autodetect'] = 'Detectar automáticamente';
$labels['language'] = 'Linguaxe';
$labels['timezone'] = 'Zona horaria';
-$labels['pagesize'] = 'Filas por páxina';
+$labels['pagesize'] = 'Liñas por páxina';
$labels['signature'] = 'Sinatura';
$labels['dstactive'] = 'Cambio de hora';
$labels['htmleditor'] = 'Redactar mensaxes HTML';
$labels['htmlsignature'] = 'Sinatura HTML';
$labels['previewpane'] = 'Amosar panel de previsualización';
+$labels['skin'] = 'Aspecto da interface';
+$labels['logoutclear'] = 'Baleirar o cubo do lixo ao saír';
+$labels['logoutcompact'] = 'Compactar a caixa de entrada ao saír.';
+$labels['uisettings'] = 'Interface de usuario';
+$labels['serversettings'] = 'Axustes do servidor';
+$labels['mailboxview'] = 'Vista das caixas de correo';
+$labels['mdnrequests'] = 'Notificacións de envío';
+$labels['askuser'] = 'preguntar ao usuario';
+$labels['autosend'] = 'enviar automáticamente';
+$labels['ignore'] = 'ignorar';
+$labels['readwhendeleted'] = 'Marcar a mensaxe coma lida ao eliminar';
+$labels['flagfordeletion'] = 'Marcar a mensaxe para eliminar no canto de eliminar';
+$labels['skipdeleted'] = 'Non mostrar as mensaxes eliminadas';
+$labels['showinlineimages'] = 'Mostrar as imaxes anexas baixo a mensaxe';
$labels['autosavedraft'] = 'Gardar borrador automáticamente';
$labels['everynminutes'] = 'cada $n minutos';
$labels['never'] = 'nunca';
+$labels['messagesdisplaying'] = 'Visualización das mensaxes';
+$labels['messagescomposition'] = 'Composición das mensaxes';
+$labels['mimeparamfolding'] = 'Nomes dos ficheiros anexos';
+$labels['2231folding'] = 'Conforme ao RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Conforme ao RFC 2047 (other)';
+$labels['advancedoptions'] = 'Opcións avanzadas';
$labels['folder'] = 'Cartafol';
$labels['folders'] = 'Cartafoles';
$labels['foldername'] = 'Nome do cartafol';
$labels['createfolder'] = 'Crear novo cartafol';
$labels['rename'] = 'Renomear';
$labels['renamefolder'] = 'Renomear cartafol';
-$labels['deletefolder'] = 'Borrar cartafol';
+$labels['deletefolder'] = 'Eliminar cartafol';
$labels['managefolders'] = 'Xestionar cartafoles';
+$labels['specialfolders'] = 'Cartafoles especiais';
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Orde ascendente';
$labels['sortdesc'] = 'Orde descendente';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
?>
<?php
/*
- +-----------------------------------------------------------------------+
- | language/gl/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: David Garabana Barro <david garabana com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/gl_ES/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: David Garabana Barro <david garabana com> |
++-----------------------------------------------------------------------+
*/
$messages['mailboxempty'] = 'A caixa de correo está vacía';
$messages['loading'] = 'Cargando...';
$messages['loadingdata'] = 'Cargando datos...';
-$messages['checkingmail'] = 'Buscando novas mensaxes...';
+$messages['checkingmail'] = 'Á procura de novas mensaxes...';
$messages['sendingmessage'] = 'Enviando mensaxe...';
$messages['messagesent'] = 'A mensaxe enviouse correctamente';
$messages['savingmessage'] = 'Gardando mensaxe...';
$messages['nocontactsfound'] = 'Non se atoparon contactos';
$messages['contactnotfound'] = 'Non se atopou o contacto solicitado';
$messages['sendingfailed'] = 'Fallou o envío da mensaxe';
+$messages['senttooquickly'] = 'Por favor, espere $sec segundos antes de enviar esta mensaxe';
+$messages['errorsavingsent'] = 'Ocurriu un erro mentres se gardaba a mensaxe enviada';
$messages['errorsaving'] = 'Ocurriu un erro mentres se gardaba';
$messages['errormoving'] = 'Non puiden mover a mensaxe';
-$messages['errordeleting'] = 'Non puiden borrar a mensaxe';
-$messages['deletecontactconfirm'] = 'Quere borrar o(s) contacto(s) seleccionados?';
-$messages['deletemessagesconfirm'] = 'Quere borrar a(s) mensaxe(s) seleccionadas?';
-$messages['deletefolderconfirm'] = 'Quere borrar este cartafol?';
-$messages['purgefolderconfirm'] = 'Quere borrar tódalas mensaxes neste cartafol?';
+$messages['errordeleting'] = 'Non puiden eliminar a mensaxe';
+$messages['deletecontactconfirm'] = 'Quere eliminar o(s) contacto(s) seleccionados?';
+$messages['deletemessagesconfirm'] = 'Quere eliminar a(s) mensaxe(s) seleccionadas?';
+$messages['deletefolderconfirm'] = 'Quere eliminar este cartafol?';
+$messages['purgefolderconfirm'] = 'Quere eliminar tódalas mensaxes neste cartafol?';
+$messages['foldercreating'] = 'Creando o cartafol...';
+$messages['folderdeleting'] = 'Eliminando o cartafol...';
+$messages['folderrenaming'] = 'Renomeando o cartafol...';
+$messages['foldermoving'] = 'Movendo o cartafol...';
$messages['formincomplete'] = 'Non se cumprimentou completamente o formulario';
-$messages['noemailwarning'] = 'Por favor, introduza un enderezo de correo electrónico válida';
+$messages['noemailwarning'] = 'Por favor, introduza un enderezo de correo electrónico válido';
$messages['nonamewarning'] = 'Por favor, introduza un nome';
$messages['nopagesizewarning'] = 'Por favor, introduza un tamaño de páxina';
+$messages['nosenderwarning'] = 'Por favor, introduza o enderezo de correo electrónico do remitente';
$messages['norecipientwarning'] = 'Por favor, introduza polo menos un destinatario';
-$messages['nosubjectwarning'] = 'O campo "tema" está baleiro. Quere introducir un?';
+$messages['nosubjectwarning'] = 'O campo "Asunto" está baleiro. Quere introducir un?';
$messages['nobodywarning'] = 'Quere enviar esta mensaxe sen texto?';
$messages['notsentwarning'] = 'A mensaxe non se enviou. Quere descartala?';
$messages['noldapserver'] = 'Por favor, elixa un servidor LDAP para buscar';
$messages['searching'] = 'Buscando...';
$messages['checking'] = 'Comprobando...';
$messages['nospellerrors'] = 'Non hai erros ortográficos';
-$messages['folderdeleted'] = 'Borrouse o cartafol con éxito';
-$messages['deletedsuccessfully'] = 'Borrouse con éxito';
+$messages['folderdeleted'] = 'Eliminouse correctamente o cartafol';
+$messages['deletedsuccessfully'] = 'Eliminouse correctamente';
$messages['converting'] = 'Eliminando o formato da mensaxe...';
$messages['messageopenerror'] = 'Non puiden cargar a mensaxe desde o servidor';
$messages['fileuploaderror'] = 'Fallou a carga do ficheiro';
$messages['errorsavingcontact'] = 'Non puiden gardar o contacto';
$messages['movingmessage'] = 'Movendo mensaxe...';
$messages['receiptsent'] = 'A notificación de disposición enviouse correctamente';
-$messages['errorsendingreceipt'] = 'Non se puido enviar a notificación';
-$messages['nodeletelastidentity'] = 'Non pode borrar esta identidade, é a última';
+$messages['errorsendingreceipt'] = 'Non se puido enviar a notificación de disposición';
+$messages['nodeletelastidentity'] = 'Non pode eliminar esta identidade, é a última';
$messages['addsubfolderhint'] = 'Este cartafol vaise crear coma un subcartafol do seleccionado';
+$messages['forbiddencharacter'] = 'O nome do cartafol contén un carácter non válido';
+$messages['selectimportfile'] = 'Por favor, escolla un ficheiro para cargar';
+$messages['addresswriterror'] = 'Non se pode escribir no caderno de enderezos que escolleu';
+$messages['importwait'] = 'Estou a importar. Por favor, agarde...';
+$messages['importerror'] = 'Fallou a importación! O ficheiro que cargou non é un vCard correcto.';
+$messages['importconfirm'] = '<b>Importáronse correctamente $inserted contactos. Ignoráronse $skipped contactos que xa existían</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operación non permitida';
+$messages['nofromaddress'] = 'Falta o enderezo de correo electrónico na identidade que escolleu';
?>
/*
+-----------------------------------------------------------------------+
-| language/he/labels.inc |
+| language/he_IL/labels.inc |
| |
| Language file of the RoundCube Webmail client |
| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+-----------------------------------------------------------------------+
| Author: Moshe Leibovitch <moish@mln.co.il> |
| Updates: Noor Dawod <noor@comrax.com> |
+| Updates: Moshe Leibovitch <moish@mln.co.il> 06122008 |
+-----------------------------------------------------------------------+
*/
$labels['server'] = 'שרת';
$labels['login'] = 'כניסה';
$labels['logout'] = 'יציאה';
-$labels['mail'] = 'ת×\99×\91ת ×\93×\95×\90ר';
+$labels['mail'] = 'רש×\99×\9eת ×\94×\95×\93×¢×\95ת';
$labels['settings'] = 'הגדרות אישיות';
$labels['addressbook'] = 'פנקס כתובות';
$labels['inbox'] = 'נכנס';
$labels['trash'] = 'אשפה';
$labels['junk'] = 'זבל';
$labels['subject'] = 'נושא';
-$labels['from'] = '×\9e×\90ת';
-$labels['to'] = '×\90×\9c';
+$labels['from'] = '×\94ש×\95×\9c×\97';
+$labels['to'] = '×\94× ×\9e×¢×\9f';
$labels['cc'] = 'לידיעה';
$labels['bcc'] = 'מכותב מוסתר';
-$labels['replyto'] = '×\9e×¢× ×\94 ×\9cש×\95×\9c×\97';
+$labels['replyto'] = '×\9bת×\95×\91ת ×\9c×\9e×¢× ×\94';
$labels['date'] = 'תאריך';
$labels['size'] = 'גודל';
$labels['priority'] = 'עדיפות';
$labels['organization'] = 'ארגון';
-$labels['reply-to'] = '×\9e×¢× ×\94 ×\9cש×\95×\9c×\97';
+$labels['reply-to'] = '×\9bת×\95×\91ת ×\9c×\9e×¢× ×\94';
$labels['mailboxlist'] = 'תיקים';
-$labels['messagesfromto'] = '×\9e×\9bת×\91×\99×\9d $from עד $to מתוך $count';
-$labels['messagenrof'] = '×\9e×\9bת×\91 $nr מתוך $count';
+$labels['messagesfromto'] = '×\94×\95×\93×¢×\95ת $from עד $to מתוך $count';
+$labels['messagenrof'] = '×\94×\95×\93×¢×\94 $nr מתוך $count';
$labels['moveto'] = 'תיוק ב...';
$labels['download'] = 'הורדה';
$labels['filename'] = 'שם קובץ';
$labels['longnov'] = 'נובמבר';
$labels['longdec'] = 'דצמבר';
$labels['today'] = 'היום';
-$labels['checkmail'] = '×\91×\93×\99קת ×\9e×\9bת×\91×\99×\9d ×\97×\93ש×\99×\9d';
-$labels['writenewmessage'] = '×\9e×\9bת×\91 ×\97×\93ש';
-$labels['replytomessage'] = '×\9e×¢× ×\94 ×\9c×\9e×\9bת×\91';
+$labels['checkmail'] = '×\9eש×\99×\9bת ×\94×\95×\93×¢×\95ת ×\97×\93ש×\95ת';
+$labels['writenewmessage'] = '×\99צ×\99רת ×\94×\95×\93×¢×\94 ×\97×\93ש×\94';
+$labels['replytomessage'] = '×\9e×¢× ×\94 ×\9cש×\95×\9c×\97';
$labels['replytoallmessage'] = 'מענה לשולח ולכל הנמענים';
-$labels['forwardmessage'] = '×\94×¢×\91ר ×\9e×\9bת×\91';
+$labels['forwardmessage'] = '×\94×¢×\91ר ×\94×\95×\93×¢×\94';
$labels['deletemessage'] = 'מחיקה';
$labels['movemessagetotrash'] = 'השלכה לאשפה';
$labels['printmessage'] = 'הדפסה';
-$labels['previousmessage'] = 'הצג מכתב קודם';
-$labels['previousmessages'] = '×\94צ×\92ת רש×\99×\9e×\94 ק×\95×\93×\9eת';
-$labels['firstmessage'] = 'הצג מכתב ראשון';
-$labels['firstmessages'] = '×\94צ×\92×\94 ש×\9c ק×\91×\95צת ×\94×\9e×\9bת×\91×\99×\9d ×\94ר×\90ש×\95× ×\94';
-$labels['nextmessage'] = 'הצג מכתב הבא';
-$labels['nextmessages'] = '×\94צ×\92×\94 ש×\9c ק×\91×\95צת ×\94×\9e×\9bת×\91×\99×\9d ×\94×\91×\90×\94';
-$labels['lastmessage'] = 'הצג מכתב אחרון';
-$labels['lastmessages'] = '×\94צ×\92×\94 ש×\9c ק×\91×\95צת ×\94×\9e×\9bת×\91×\99×\9d ×\94×\90×\97ר×\95× ×\94';
-$labels['backtolist'] = '×\97×\96ר×\94 ×\90×\9c רש×\99×\9eת ×\94×\9e×\9bת×\91×\99×\9d';
+$labels['previousmessage'] = 'הצגת הודעה קודמת';
+$labels['previousmessages'] = '×\94צ×\92ת ק×\91×\95צ×\94 ק×\95×\93×\9eת ש×\9c ×\94×\95×\93×¢×\95ת';
+$labels['firstmessage'] = 'הצגת ההודעה הראשונה';
+$labels['firstmessages'] = '×\94צ×\92ת ×\94ק×\91×\95צ×\94 ×\94ר×\90ש×\95× ×\94 ש×\9c ×\94×\94×\95×\93×¢×\95ת';
+$labels['nextmessage'] = 'הצגת ההודעה הבאה';
+$labels['nextmessages'] = '×\94צ×\92ת ק×\91×\95צ×\94 × ×\95ספת ש×\9c ×\94×\95×\93×¢×\95ת';
+$labels['lastmessage'] = 'הצגת ההודעה האחרונה';
+$labels['lastmessages'] = '×\94צ×\92ת ×\94ק×\91×\95צ×\94 ×\94×\90×\97ר×\95× ×\94 ש×\9c ×\94×\94×\95×\93×¢×\95ת';
+$labels['backtolist'] = '×\97×\96ר×\94 ×\90×\9c רש×\99×\9eת ×\94×\94×\95×\93×¢×\95ת';
$labels['viewsource'] = 'הצגת קוד מקור';
-$labels['markmessages'] = 'ס×\99×\9e×\95×\9f ×\9e×\9bת×\91×\99×\9d';
+$labels['markmessages'] = 'ס×\99×\9e×\95×\9f ×\94×\95×\93×¢×\95ת';
$labels['markread'] = 'כנקראו';
$labels['markunread'] = 'כלא נקראו';
+$labels['markflagged'] = 'כמסומן';
+$labels['markunflagged'] = 'כלא מסומן';
$labels['select'] = 'בחירה';
$labels['all'] = 'הכל';
$labels['none'] = 'כלום';
$labels['unread'] = 'לא נקראו';
+$labels['flagged'] = 'מסומן';
+$labels['unanswered'] = 'לא נענה';
+$labels['filter'] = 'סינון';
$labels['compact'] = 'פינוי שטח לא מנוצל';
$labels['empty'] = 'ריקון';
$labels['purge'] = 'מחיקה';
$labels['unlimited'] = 'ללא הגבלה';
$labels['quicksearch'] = 'חיפוש מהיר';
$labels['resetsearch'] = 'ניקוי תיבת החיפוש';
-$labels['compose'] = 'מכתב חדש';
+$labels['openinextwin'] = 'פתיחה בחלון חדש';
+$labels['compose'] = 'כתיבת הודעה';
$labels['savemessage'] = 'שמירת טיוטה';
$labels['sendmessage'] = 'משלוח מיידי';
$labels['addattachment'] = 'צירוף קובץ';
$labels['highest'] = 'גבוה ביותר';
$labels['nosubject'] = '(ללא נושא)';
$labels['showimages'] = 'הצגת תמונות';
+$labels['alwaysshow'] = '$sender תמיד להציג תמונות מאת ';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ללא עיצוב';
+$labels['savesentmessagein'] = 'היכן לשמור ההודעה?';
+$labels['dontsave'] = 'ללא שמירה';
+$labels['maxuploadsize'] = 'גודל מקסימלי לקובץ הוא $size';
$labels['addcc'] = 'הוספת מכותב לידיעה';
$labels['addbcc'] = 'הוספת מכותב נסתר';
$labels['addreplyto'] = 'הוספת כתובת למענה';
-$labels['mdnrequest'] = '×\94ש×\95×\9c×\97 ×\91×\99קש ×\9c×\93עת ×\90×\9d ×\94×\9e×\9bת×\91 × ×§×¨×\90. האם להודיע לשולח?';
-$labels['receiptread'] = '(אישור קבלה (נקרא';
-$labels['yourmessage'] = '×\90×\99ש×\95ר ק×\91×\9c×\94 ×\9c×\9e×\9bת×\91ך';
-$labels['receiptnote'] = '×\94ער×\94: ×\94×\90×\99ש×\95ר ×\90×\99× ×\95 ×\9e×\91×\98×\99×\97 ש×\94× ×\9e×¢×\9f קר×\90 ×\90×\95 ×\94×\91×\99×\9f ×\90ת ת×\95×\9b×\9f ×\9e×\9bת×\91×\9a.';
+$labels['mdnrequest'] = '×\94ש×\95×\9c×\97 ×\91×\99קש ×\9c×\93עת ×\90×\9d ×\94×\94×\95×\93×¢×\94 × ×§×¨×\90×\94. האם להודיע לשולח?';
+$labels['receiptread'] = 'אישור קבלה (נקרא)';
+$labels['yourmessage'] = '×\90×\99ש×\95ר ק×\91×\9c×\94 ×\9c×\94×\95×\93עתך';
+$labels['receiptnote'] = '×\94ער×\94: ×\94×\90×\99ש×\95ר ×\90×\99× ×\95 ×\9e×\91×\98×\99×\97 ש×\94× ×\9e×¢×\9f קר×\90 ×\90×\95 ×\94×\91×\99×\9f ×\90ת ת×\95×\9b×\9f ×\94×\94×\95×\93×¢×\94.';
$labels['name'] = 'שם להצגה';
$labels['firstname'] = 'שם פרטי';
$labels['surname'] = 'שם משפחה';
-$labels['email'] = 'כתובת דוא\"ל';
+$labels['email'] = 'כתובת דוא"ל';
$labels['addcontact'] = 'הוספת איש קשר';
$labels['editcontact'] = 'עריכת איש קשר';
$labels['edit'] = 'עריכה';
$labels['delete'] = 'מחיקה';
$labels['newcontact'] = 'איש קשר חדש';
$labels['deletecontact'] = 'מחיקת אנשי קשר מסומנים';
-$labels['composeto'] = '×\9eש×\9c×\95×\97 ×\9e×\9bת×\91 אל';
+$labels['composeto'] = '×\99צ×\99רת ×\94×\95×\93×¢×\94 אל';
$labels['contactsfromto'] = 'אנשי קשר $from עד $to מתוך $count';
$labels['print'] = 'הדפסה';
$labels['export'] = 'ייצוא';
+$labels['exportvcards'] = 'ייצוא אנשי קשר בפורמט vCard ';
$labels['previouspage'] = 'הצגת הקבוצה הקודמת';
$labels['firstpage'] = 'הצגת הקבוצה הראשונה';
$labels['nextpage'] = 'הצגת הקבוצה הבאה';
$labels['lastpage'] = 'הצגת הקבוצה האחרונה';
$labels['groups'] = 'קבוצות';
$labels['personaladrbook'] = 'כתובות פרטיות';
+$labels['import'] = 'ייבוא';
+$labels['importcontacts'] = 'ייבוא אנשי קשר';
+$labels['importfromfile'] = 'ייבוא מקובץ';
+$labels['importreplace'] = 'החלפת כל פנקס הכתובות';
+$labels['importtext'] = '<a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ניתן לייבא אנשי קשר מפנקס כתובות קיים. אנו תומכים בפורמט';
+$labels['done'] = 'בוצע';
$labels['settingsfor'] = 'הגדרות עבור';
$labels['preferences'] = 'העדפות';
$labels['userpreferences'] = 'העדפות משתמש';
$labels['identities'] = 'זהויות';
$labels['manageidentities'] = 'ניהול זהויות לחשבון זה';
$labels['newidentity'] = 'זהות חדשה';
-$labels['newitem'] = 'פריט חדש';
-$labels['edititem'] = 'עריכת פריט';
-$labels['setdefault'] = 'קביעת ברירת מחדל';
+$labels['newitem'] = 'רשומה חדשה';
+$labels['edititem'] = 'עריכת רשומה';
+$labels['setdefault'] = 'קביעה כברירת מחדל';
+$labels['autodetect'] = 'אוטומטי';
$labels['language'] = 'שפה';
$labels['timezone'] = 'איזור זמן';
$labels['pagesize'] = 'מספר שורות בדף';
$labels['signature'] = 'חתימה';
$labels['dstactive'] = 'שעון קיץ';
-$labels['htmleditor'] = 'צ×\95ר ×\9e×\9bת×\91 ×\9e×¢×\95צ×\91';
+$labels['htmleditor'] = '×\99צ×\99רת ×\94×\95×\93×¢×\94 ×\9e×¢×\95צ×\91ת';
$labels['htmlsignature'] = 'חתימה מעוצבת';
-$labels['previewpane'] = 'הצג הצצה מוקדמת';
+$labels['previewpane'] = 'תצוגה מוקדמת';
+$labels['skin'] = 'ערכת מראה';
$labels['logoutclear'] = 'ריקון סל אשפה ביציאה';
$labels['logoutcompact'] = 'פינוי שטח לא מנוצל ביציאה';
$labels['uisettings'] = 'ממשק משתמש';
$labels['serversettings'] = 'הגדרות שרת';
-$labels['mailboxview'] = '×\94צצ×\94 ×\9cת×\99×\91ת ×\94×\93×\95×\90\"×\9c';
-$labels['mdnrequests'] = '×\94×\95×\93×¢×\95ת ×\94שרת';
+$labels['mailboxview'] = '×\94צ×\92ת ת×\99×\91ת ×\94×\94×\95×\93×¢×\95ת';
+$labels['mdnrequests'] = '×\9eש×\9c×\95×\97 ×\90×\99ש×\95ר ×\9eס×\99ר×\94';
$labels['askuser'] = 'שאל את המשתמש';
$labels['autosend'] = 'שליחה אוטומטית';
$labels['ignore'] = 'התעלם';
$labels['readwhendeleted'] = 'סימון הודעה כנקראה לאחר מחיקה';
-$labels['flagfordeletion'] = 'איתות על מחיקת הודעה';
+$labels['flagfordeletion'] = 'סימון הודעה כמחוקה במקום מחיקה';
+$labels['skipdeleted'] = 'הסתרת הודעות שנמחקו';
+$labels['showremoteimages'] = 'הצגת תמונות משרת מרוחק בגוף ההודעה';
+$labels['fromknownsenders'] = 'משולחים מוכרים';
+$labels['always'] = 'תמיד';
+$labels['showinlineimages'] = 'הצגת תמונות מצורפות בתחתית ההודעה';
$labels['autosavedraft'] = 'שמירה אוטומטית של טיוטה';
$labels['everynminutes'] = 'כל $n דקות';
+$labels['keepaliveevery'] = 'כל $n דקות';
+$labels['keepalive'] = 'בדיקת הגעה של הודעות חדשות';
$labels['never'] = 'אף פעם';
+$labels['messagesdisplaying'] = 'הצגת הודעות';
+$labels['messagescomposition'] = 'כתיבת הודעות';
+$labels['mimeparamfolding'] = 'שמות קבצים מצורפים';
+$labels['2231folding'] = 'תאימות מלאה 2231 תאנדרבירד';
+$labels['miscfolding'] = 'תאימות 2047/2231 אאוטלוק';
+$labels['2047folding'] = 'תאימות מלאה 2047 אחרים';
+$labels['advancedoptions'] = 'הגדרות נוספות';
+$labels['focusonnewmessage'] = 'מיקוד הסמן על החלון עם ההודעה החדשה';
+$labels['checkallfolders'] = 'בדיקת הודעות חדשות בכל התיקים';
$labels['folder'] = 'תיק';
$labels['folders'] = 'תיקים';
$labels['foldername'] = 'שם תיק';
$labels['subscribed'] = 'מנוי';
-$labels['messagecount'] = '×\9e×\9bת×\91×\99×\9d';
+$labels['messagecount'] = '×\94×\95×\93×¢×\95ת';
$labels['create'] = 'יצירה';
$labels['createfolder'] = 'יצירת תיק חדש';
$labels['rename'] = 'שינוי שם';
$labels['renamefolder'] = 'שינוי שם תיק';
$labels['deletefolder'] = 'מחיקת תיק';
$labels['managefolders'] = 'ניהול תיקים';
+$labels['specialfolders'] = 'תיקים מיוחדים';
$labels['sortby'] = 'מיון לפי';
$labels['sortasc'] = 'מיון בסדר עולה';
$labels['sortdesc'] = 'מיון בסדר יורד';
+$labels['B'] = 'בייט';
+$labels['KB'] = 'ק"ב';
+$labels['MB'] = 'מ"ב';
+$labels['GB'] = 'ג"ב';
-?>
\ No newline at end of file
+?>
/*
+-----------------------------------------------------------------------+
-| language/he/messages.inc |
+| language/he_IL/messages.inc |
| |
| Language file of the RoundCube Webmail client |
| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+-----------------------------------------------------------------------+
| Author: Moshe Leibovitch <moish@mln.co.il> |
| Updates: Noor Dawod <noor@comrax.com> |
+| Updates: Moshe Leibovitch <moish@mln.co.il> 06122008 |
+-----------------------------------------------------------------------+
*/
$messages['loginfailed'] = 'הכניסה נכשלה';
$messages['cookiesdisabled'] = 'הדפדפן אינו מקבל עוגיות';
$messages['sessionerror'] = 'כניסתך למערכת אינה חוקית או שפג תוקפה';
-$messages['imaperror'] = 'הקשר לשרת הדוא\"ל נכשל';
-$messages['nomessagesfound'] = '×\9c×\90 × ×\9eצ×\90×\95 ×\9e×\9bת×\91×\99×\9d בתיבה זו';
+$messages['imaperror'] = 'הקשר לשרת הדואר נכשל';
+$messages['nomessagesfound'] = '×\9c×\90 × ×\9eצ×\90×\95 ×\94×\95×\93×¢×\95ת בתיבה זו';
$messages['loggedout'] = 'הקשר הסתיים. להתראות!';
-$messages['mailboxempty'] = '×\94ת×\99×\91×\94 ריקה';
+$messages['mailboxempty'] = 'רש×\99×\9eת ×\94×\94×\95×\93×¢×\95ת ריקה';
$messages['loading'] = 'טעינה...';
$messages['loadingdata'] = 'טעינת מידע...';
-$messages['checkingmail'] = '×\91×\93×\99קת ק×\99×\95×\9d ×\9e×\9bת×\91×\99×\9d ×\97×\93ש×\99×\9d...';
-$messages['sendingmessage'] = '×\9eש×\9c×\95×\97 ×\9e×\9bת×\91×\99×\9d';
-$messages['messagesent'] = '×\94×\9e×\9bת×\91 × ×©×\9c×\97 בהצלחה';
-$messages['savingmessage'] = 'ש×\9e×\99רת ×\9e×\9bת×\91...';
-$messages['messagesaved'] = '×\94×\9e×\9bת×\91 × ×©×\9eר כטיוטה';
-$messages['successfullysaved'] = 'נשמר בהצלחה';
+$messages['checkingmail'] = '×\91×\93×\99קת ק×\99×\95×\9d ×\94×\95×\93×¢×\95ת ×\97×\93ש×\95ת...';
+$messages['sendingmessage'] = '×\94×\94×\95×\93×¢×\94 × ×\9eסרת...';
+$messages['messagesent'] = '×\94×\94×\95×\93×¢×\94 × ×\9eסר×\94 בהצלחה';
+$messages['savingmessage'] = 'ש×\9e×\99רת ×\94×\95×\93×¢×\94...';
+$messages['messagesaved'] = '×\94×\94×\95×\93×¢×\94 × ×©×\9eר×\94 כטיוטה';
+$messages['successfullysaved'] = 'נשמרה בהצלחה';
$messages['addedsuccessfully'] = 'איש הקשר נוסף לפנקס בהצלחה';
$messages['contactexists'] = 'קיים כבר איש קשר עם כתובת דוא\"ל זו';
$messages['blockedimages'] = 'תמונות משרת אחר נחסמו כדי לשמור על הפרטיות';
$messages['encryptedmessage'] = 'זו הודעת מוצפנת ולא ניתן להציגה';
$messages['nocontactsfound'] = 'לא נמצאו אנשי קשר';
$messages['contactnotfound'] = 'איש הקשר המבוקש לא נמצא';
-$messages['sendingfailed'] = 'שליחת המכתב נכשלה';
+$messages['sendingfailed'] = 'שליחת ההודעה נכשלה';
+$messages['senttooquickly'] = 'נא להמתין $sec שניות לפני מסירת הודעה זו';
+$messages['errorsavingsent'] = 'נגרמה שגיאה במהלך שמירת ההודעה בתיק הודעות יוצאות';
$messages['errorsaving'] = 'נגרמה שגיאה במהלך השמירה';
-$messages['errormoving'] = '×\9c×\90 × ×\99ת×\9f ×\9cת×\99×\99ק ×\90ת ×\94×\9e×\9bת×\91';
-$messages['errordeleting'] = '×\9c×\90 × ×\99ת×\9f ×\9c×\9e×\97×\95ק ×\90ת ×\94×\9e×\9bת×\91';
+$messages['errormoving'] = '×\9c×\90 × ×\99ת×\9f ×\9cת×\99×\99ק ×\90ת ×\94×\94×\95×\93×¢×\94';
+$messages['errordeleting'] = '×\9c×\90 × ×\99ת×\9f ×\9c×\9e×\97×\95ק ×\90ת ×\94×\94×\95×\93×¢×\94';
$messages['deletecontactconfirm'] = 'האם למחוק את איש הקשר?';
-$messages['deletemessagesconfirm'] = '×\94×\90×\9d ×\9c×\9e×\97×\95ק ×\90ת ×\94×\9e×\9bת×\91×\99×\9d ×\94×\9eס×\95×\9e× ×\99×\9d?';
+$messages['deletemessagesconfirm'] = '×\94×\90×\9d ×\9c×\9e×\97×\95ק ×\90ת ×\94×\94×\95×\93×¢×\95ת ×\94×\9eס×\95×\9e× ×\95ת?';
$messages['deletefolderconfirm'] = 'האם למחוק תיק זה?';
$messages['purgefolderconfirm'] = 'האם למחוק את כל ההודעות בתיק זה?';
+$messages['foldercreating'] = 'התיקיה נוצרת...';
+$messages['folderdeleting'] = 'התיקיה נמחקת...';
+$messages['folderrenaming'] = 'שינוי שם תיקיה...';
+$messages['foldermoving'] = 'העברת תיקיה...';
$messages['formincomplete'] = 'לא הוזנו כל השדות בטופס זה';
$messages['noemailwarning'] = 'נא להוסיף כתובת דוא\"ל חוקית';
$messages['nonamewarning'] = 'נא להוסיף שם';
$messages['nopagesizewarning'] = 'נא להוסיף גודל דף';
+$messages['nosenderwarning'] = 'נא להוסיף כתובת השולח';
$messages['norecipientwarning'] = 'נא להוסיף לפחות נמען אחד';
$messages['nosubjectwarning'] = 'שורת הנושא ריקה. האם ברצונך להוסיף נושא כעת?';
-$messages['nobodywarning'] = '×\94×\90×\9d ×\9cש×\9c×\95×\97 ×\9e×\9bת×\91 ללא תוכן?';
-$messages['notsentwarning'] = '×\94×\9e×\9bת×\91 ×\9c×\90 × ×©×\9c×\97. האם לבטל?';
+$messages['nobodywarning'] = '×\94×\90×\9d ×\9cש×\9c×\95×\97 ×\94×\95×\93×¢×\94 ללא תוכן?';
+$messages['notsentwarning'] = '×\94×\94×\95×\93×¢×\94 ×\9c×\90 × ×©×\9c×\97×\94. האם לבטל?';
$messages['noldapserver'] = 'נא לבחור שרת כתובות לחיפוש';
$messages['nocontactsreturned'] = 'לא נמצאו אנשי קשר';
$messages['nosearchname'] = 'נא להוסיף איש קשר או כתובת דוא\"ל';
-$messages['searchsuccessful'] = '× ×\9eצ×\90×\95 $nr ×\9e×\9bת×\91×\99×\9d';
+$messages['searchsuccessful'] = '× ×\9eצ×\90×\95 $nr ×\94×\95×\93×¢×\95ת';
$messages['searchnomatch'] = 'תוצאת החיפוש ריקה';
$messages['searching'] = 'חיפוש...';
$messages['checking'] = 'בדיקה...';
$messages['nospellerrors'] = 'לא נמצאו שגיאות כתיב';
$messages['folderdeleted'] = 'התיק נמחק בהצלחה';
$messages['deletedsuccessfully'] = 'המחיקה הסתיימה בהצלחה';
-$messages['converting'] = '×\94סרת ×\94×¢×\99צ×\95×\91 ×\9e×\94×\9e×\9bת×\91';
-$messages['messageopenerror'] = '×\9c×\90 × ×\99ת×\9f ×\9c×\98×¢×\95×\9f ×\94×\9e×\9bת×\91 מהשרת';
+$messages['converting'] = '×\94סרת ×\94×¢×\99צ×\95×\91 ×\9e×\94×\94×\95×\93×¢×\94';
+$messages['messageopenerror'] = '×\9c×\90 × ×\99ת×\9f ×\9c×\98×¢×\95×\9f ×\94×\94×\95×\93×¢×\94 מהשרת';
$messages['fileuploaderror'] = 'העלאת הקובץ נכשלה';
$messages['filesizeerror'] = 'הקובץ לטעינה גדול מהגודל המקסימלי שהוא $size';
$messages['copysuccess'] = '$nr כתובות הועתקו בהצלחה';
$messages['copyerror'] = 'לא ניתן להעתיק אף כתובת';
$messages['sourceisreadonly'] = 'המקור לכתובת הוא לקריאה בלבד';
$messages['errorsavingcontact'] = 'לא ניתן לשמור את כתובת איש הקשר';
-$messages['movingmessage'] = 'ת×\99×\95ק ×\94×\9e×\9bת×\91...';
+$messages['movingmessage'] = 'ת×\99×\95ק ×\94×\94×\95×\93×¢×\94...';
$messages['receiptsent'] = 'אישור הקבלה נשלח בהצלחה';
$messages['errorsendingreceipt'] = 'לא ניתן לשלוח אישור קבלה';
$messages['nodeletelastidentity'] = 'זו הזהות האחרונה ולכן לא ניתן לבטלה';
$messages['addsubfolderhint'] = 'תיקיה זו תוקם תחת התיקיה שנבחרה';
+$messages['forbiddencharacter'] = 'שם התיקיה מכיל תוים אסורים';
+$messages['selectimportfile'] = 'נא לבחור קובץ לייבוא';
+$messages['addresswriterror'] = 'פנקס הכתובות שנבחר אינו ניתן לכתיבה';
+$messages['importwait'] = 'ייבוא, נא להמתין..';
+$messages['importerror'] = 'חוקי vCard הייבוא נכשל כי הקובץ אינו בפורמט';
+$messages['importconfirm'] = '<b>יובאו $inserted אנשי קשר, $skipped היו קיימים </b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'פעולה אסורה!';
+$messages['nofromaddress'] = 'לזהות שנבחרה חסרה כתובת דואר';
+$messages['editorwarning'] = 'המעבר לעורך רגיל יגרום לאיבוד את העריכה הקיימת. האם להמשיך?';
-?>
\ No newline at end of file
+?>
+++ /dev/null
-<?php
-
-/*
-
- +-----------------------------------------------------------------------+
- | language/hr/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Edi Budimilic <edi@gemstudio.hr> |
- +-----------------------------------------------------------------------+
-
- @version $Id: labels.inc 1143 2008-02-26 20:50:10Z yllar $
-
-*/
-
-$labels = array();
-$labels['welcome'] = 'Dobrodošli na $product';
-$labels['username'] = 'E-mail';
-$labels['password'] = 'Lozinka';
-$labels['server'] = 'Server';
-$labels['login'] = 'Prijava';
-$labels['logout'] = 'Odjava';
-$labels['mail'] = 'Sandučić';
-$labels['settings'] = 'Postavke';
-$labels['addressbook'] = 'Imenik';
-$labels['inbox'] = 'Inbox';
-$labels['drafts'] = 'Predlošci';
-$labels['sent'] = 'Poslano';
-$labels['trash'] = 'Smeće';
-$labels['junk'] = 'Spam';
-$labels['subject'] = 'Naslov';
-$labels['from'] = 'Od';
-$labels['to'] = 'Za';
-$labels['cc'] = 'Cc';
-$labels['bcc'] = 'Bcc';
-$labels['replyto'] = 'Odgovor-na';
-$labels['date'] = 'Datum';
-$labels['size'] = 'Veličina';
-$labels['priority'] = 'Prioritet';
-$labels['organization'] = 'Organizacija';
-$labels['reply-to'] = 'Odgovor-na';
-$labels['mailboxlist'] = 'Mape';
-$labels['messagesfromto'] = 'Poruke od $from do $to od ukupno $count';
-$labels['messagenrof'] = 'Poruka broj $nr od $count';
-$labels['moveto'] = 'prebaci u...';
-$labels['download'] = 'preuzmi (download)';
-$labels['filename'] = 'Ime datoteke';
-$labels['filesize'] = 'Veličina datoteke';
-$labels['preferhtml'] = 'HTML format u prednosti';
-$labels['htmlmessage'] = 'HTML format poruke';
-$labels['prettydate'] = 'Formatiran datum';
-$labels['addtoaddressbook'] = 'Dodaj u imenik';
-$labels['sun'] = 'Ned';
-$labels['mon'] = 'Pon';
-$labels['tue'] = 'Uto';
-$labels['wed'] = 'Sri';
-$labels['thu'] = 'Čet';
-$labels['fri'] = 'Pet';
-$labels['sat'] = 'Sub';
-$labels['sunday'] = 'Nedjelja';
-$labels['monday'] = 'Ponedjeljak';
-$labels['tuesday'] = 'Utorak';
-$labels['wednesday'] = 'Srijeda';
-$labels['thursday'] = 'Četvrtak';
-$labels['friday'] = 'Petak';
-$labels['saturday'] = 'Subota';
-$labels['today'] = 'danas';
-$labels['checkmail'] = 'Provjera novih poruka';
-$labels['writenewmessage'] = 'Nova poruka';
-$labels['replytomessage'] = 'Odgovori na poruku';
-$labels['replytoallmessage'] = 'Odgovori pošiljaocu i svim primateljima';
-$labels['forwardmessage'] = 'Prosljedi poruku';
-$labels['deletemessage'] = 'Prebaci poruku u mapu smeće';
-$labels['movemessagetotrash'] = 'Preseli poruke u smeće';
-$labels['printmessage'] = 'Print poruke';
-$labels['previousmessage'] = 'Prikaži prethodnu poruku';
-$labels['previousmessages'] = 'Prijašnje poruke';
-$labels['firstmessage'] = 'Prikaži prvu poruku';
-$labels['firstmessages'] = 'Prikaži početni skup poruka';
-$labels['nextmessage'] = 'Prikaži slijedeću poruku';
-$labels['nextmessages'] = 'Sljedeće poruke';
-$labels['lastmessage'] = 'Prikaži zadnju poruku';
-$labels['lastmessages'] = 'Prikaži zadnju skupinu poruka';
-$labels['backtolist'] = 'Povratak na listu poruka';
-$labels['viewsource'] = 'Prikaži poruku u izvornom obliku';
-$labels['markmessages'] = 'Označi poruke';
-$labels['markread'] = 'Kao pročitano';
-$labels['markunread'] = 'Kao nepročitano';
-$labels['select'] = 'Oznaći';
-$labels['all'] = 'Sve';
-$labels['none'] = 'Nijednu';
-$labels['unread'] = 'Nepročitane';
-$labels['compact'] = 'Kompresiranje';
-$labels['empty'] = 'Izprazni';
-$labels['purge'] = 'Očisti';
-$labels['quota'] = 'Kvota';
-$labels['unknown'] = 'nepoznato';
-$labels['unlimited'] = 'beskonačna';
-$labels['quicksearch'] = 'Brza pretraga';
-$labels['resetsearch'] = 'Prikaži sve poruke';
-$labels['compose'] = 'Nova poruka';
-$labels['savemessage'] = 'Spremi u \'Predlošci\'';
-$labels['sendmessage'] = 'Pošalji poruku';
-$labels['addattachment'] = 'Priloži datoteku';
-$labels['charset'] = 'Charset';
-$labels['editortype'] = 'Tip editora';
-$labels['returnreceipt'] = 'Potvrda o primitku poruke';
-$labels['checkspelling'] = 'Provjera pravopisa';
-$labels['resumeediting'] = 'Povratak u pisanje';
-$labels['revertto'] = 'Vrati na';
-$labels['attachments'] = 'Privitci (Attachments)';
-$labels['upload'] = 'Dodaj';
-$labels['close'] = 'Zatvori';
-$labels['low'] = 'Nizak';
-$labels['lowest'] = 'Najniži';
-$labels['normal'] = 'Srednji';
-$labels['high'] = 'Visok';
-$labels['highest'] = 'Najviši';
-$labels['nosubject'] = '(bez naslova)';
-$labels['showimages'] = 'Prikaži slike';
-$labels['htmltoggle'] = 'HTML';
-$labels['plaintoggle'] = 'Samo teks';
-$labels['addcc'] = 'Dodaj Cc';
-$labels['addbcc'] = 'Dodaj Bcc';
-$labels['addreplyto'] = 'Dodaj Odgovori-na';
-$labels['mdnrequest'] = 'Pošiljaoc ove poruke je tražio da bude obaviješten po primitku ove poruke. Želite li obavijestiti pošiljaoca?';
-$labels['receiptread'] = 'Vrati potvrdu (pročitano)';
-$labels['yourmessage'] = 'Ovo je vraćena potvrda vaše poruke';
-$labels['receiptnote'] = 'Info: Ova potvrda samo potvrđuje da se poruka prikazala na računalu primaoca. Nema garancije da je primaoc pročitao ili razumio sadržaj poruke.';
-$labels['name'] = 'Puno ime';
-$labels['firstname'] = 'Ime';
-$labels['surname'] = 'Prezime';
-$labels['email'] = 'E-Mail';
-$labels['addcontact'] = 'Dodaj novi kontakt';
-$labels['editcontact'] = 'Izmjeni kontakt';
-$labels['edit'] = 'Izmjeni';
-$labels['cancel'] = 'Odustani';
-$labels['save'] = 'Spremi';
-$labels['delete'] = 'Obriši';
-$labels['newcontact'] = 'Dodaj novi kontakt';
-$labels['deletecontact'] = 'Obriši odabrane kontakte';
-$labels['composeto'] = 'Napiši mail...';
-$labels['contactsfromto'] = 'Kontakti od $from do $to od ukupno $count';
-$labels['print'] = 'Print';
-$labels['export'] = 'Export';
-$labels['previouspage'] = 'Prethodna strana';
-$labels['firstpage'] = 'Prva strana';
-$labels['nextpage'] = 'Slijedeća strana';
-$labels['lastpage'] = 'Zadnja strana';
-$labels['groups'] = 'Grupe';
-$labels['personaladrbook'] = 'Privatna adresa';
-$labels['settingsfor'] = 'Postavke za';
-$labels['preferences'] = 'Postavke';
-$labels['userpreferences'] = 'Korisničke postavke';
-$labels['editpreferences'] = 'Izmjena postavki';
-$labels['identities'] = 'Identiteti';
-$labels['manageidentities'] = 'Podesi identitete za ovaj nalog';
-$labels['newidentity'] = 'Dodaj identitet';
-$labels['newitem'] = 'New item';
-$labels['edititem'] = 'Edit item';
-$labels['setdefault'] = 'Set default';
-$labels['language'] = 'Jezik';
-$labels['timezone'] = 'Vremenska zona';
-$labels['pagesize'] = 'Redova po stranici';
-$labels['signature'] = 'Potpis';
-$labels['dstactive'] = 'Automatska promjena vremena';
-$labels['htmleditor'] = 'Sastavi HTML poruke';
-$labels['htmlsignature'] = 'HTML potpis';
-$labels['previewpane'] = 'Prikaži područje pregleda';
-$labels['autosavedraft'] = 'Automatski spremi draft';
-$labels['everynminutes'] = 'svakih $n minuta';
-$labels['never'] = 'Nikada';
-$labels['folder'] = 'Folder';
-$labels['folders'] = 'Folderi';
-$labels['foldername'] = 'Ime foldera';
-$labels['subscribed'] = 'Pretplata';
-$labels['messagecount'] = 'Poruke';
-$labels['create'] = 'Napravi';
-$labels['createfolder'] = 'Napravi novi folder';
-$labels['rename'] = 'Preimenuj';
-$labels['renamefolder'] = 'Preimenuj Folder';
-$labels['deletefolder'] = 'Obriši Folder';
-$labels['managefolders'] = 'Podesi Folder';
-$labels['sortby'] = 'Sortiraj po';
-$labels['sortasc'] = 'Sortiraj rastućim nizom';
-$labels['sortdesc'] = 'Sortiraj opadajućim nizom';
-
-?>
\ No newline at end of file
+++ /dev/null
-<?php
-
-/*
-
- +-----------------------------------------------------------------------+
- | language/hr/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Edi Budimilic <edi@gemstudio.hr> |
- +-----------------------------------------------------------------------+
-
- @version $Id: messages.inc 1143 2008-02-26 20:50:10Z yllar $
-
-*/
-
-$messages = array();
-$messages['loginfailed'] = 'Prijava neuspješna';
-$messages['cookiesdisabled'] = 'Vaš pretraživač ne podržava kolačiće (cookies)';
-$messages['sessionerror'] = 'Morate se ponovno ulogirati';
-$messages['imaperror'] = 'Neuspješna konekcija na IMAP server';
-$messages['nomessagesfound'] = 'Nema poruka u sandučiću';
-$messages['loggedout'] = 'Uspješna odjava.';
-$messages['mailboxempty'] = 'Sandučuć je prazan';
-$messages['loading'] = 'Učitavanje...';
-$messages['loadingdata'] = 'Učitavanje podataka...';
-$messages['checkingmail'] = 'Provjera novih poruka u tijeku...';
-$messages['sendingmessage'] = 'Poruka se šalje...';
-$messages['messagesent'] = 'Poruka je uspješno poslana';
-$messages['savingmessage'] = 'Poruka se sprema...';
-$messages['messagesaved'] = 'Poruka uspješno spremljena u \'Predlošci\'';
-$messages['successfullysaved'] = 'Spremanje uspješno obavljeno';
-$messages['addedsuccessfully'] = 'Kontakt uspješno dodan u imenik';
-$messages['contactexists'] = 'Kontakt sa ovom e-mail adresom već postoji u imeniku';
-$messages['blockedimages'] = 'Zbog zaštite privatnosti, slike sa udaljenih servera su blokirane.';
-$messages['encryptedmessage'] = 'Ova poruka je zaštićena pa se ne može prikazati';
-$messages['nocontactsfound'] = 'Imenik je prazan';
-$messages['contactnotfound'] = 'Traženi kontakt nije pronađen';
-$messages['sendingfailed'] = 'Greška pri slanju poruke';
-$messages['errorsaving'] = 'Greška pri spremanju';
-$messages['errormoving'] = 'Greška pri premještanju poruke';
-$messages['errordeleting'] = 'Greška pri brisanju poruke';
-$messages['deletecontactconfirm'] = 'Želite li obrisati izabrane kontakte?';
-$messages['deletemessagesconfirm'] = 'Sigurno želite obrisati odabrane poruke?';
-$messages['deletefolderconfirm'] = 'Želite li obrisati ovu mapu?';
-$messages['purgefolderconfirm'] = 'Želite li obrisati sve poruke u mapi?';
-$messages['formincomplete'] = 'Forma nije u cjelosti popunjena';
-$messages['noemailwarning'] = 'Unesite valjanu e-mail adresu';
-$messages['nonamewarning'] = 'Unesite ime';
-$messages['nopagesizewarning'] = 'Unesite veličinu stranice';
-$messages['norecipientwarning'] = 'Unesite primatelja (ZA)';
-$messages['nosubjectwarning'] = 'Polje \'Naslov\' je prazno. Želite li unijeti naslov?';
-$messages['nobodywarning'] = 'Želite li poslati poruku bez teksta?';
-$messages['notsentwarning'] = 'Poruka nije poslana. Želite li odbaciti ovu poruku?';
-$messages['noldapserver'] = 'Unesite LDAP server za pretragu';
-$messages['nocontactsreturned'] = 'Nije pronađen niti jedan kontakt';
-$messages['nosearchname'] = 'Unesite ime ili e-mail adresu';
-$messages['searchsuccessful'] = 'Broj pronađenih poruka: $nr';
-$messages['searchnomatch'] = 'Traženi termin nije pronađen ni u jednoj poruci';
-$messages['searching'] = 'Pretraga u tijeku...';
-$messages['checking'] = 'Provjera u tijeku...';
-$messages['nospellerrors'] = 'Nije pronađena niti jedna pravopisna greška';
-$messages['folderdeleted'] = 'Mapa uspješno obrisana';
-$messages['deletedsuccessfully'] = 'Uspješno obrisano';
-$messages['converting'] = 'Formatiranje poruke';
-$messages['messageopenerror'] = 'Nije moguće ';
-$messages['fileuploaderror'] = 'Prijenos datoteke nije uspio';
-$messages['filesizeerror'] = 'Datoteka je prevelika. Maksimalna veličina je $size';
-$messages['copysuccess'] = 'Uspješno kopirano $n adresa';
-$messages['copyerror'] = 'Nije uspjelo kopiranje adresa';
-$messages['sourceisreadonly'] = 'Ovaj resurs adresa je samo za čitanje';
-$messages['errorsavingcontact'] = 'Nije uspjelo spremanje adrese kontakta';
-$messages['movingmessage'] = 'Premještanje poruke...';
-$messages['receiptsent'] = 'Uspješno poslana potvrda (pročitano)';
-$messages['errorsendingreceipt'] = 'Ne može poslati potvrdu';
-$messages['nodeletelastidentity'] = 'Ne možete izbrisati zadnji identitet.';
-$messages['addsubfolderhint'] = 'Ova mapa će biti stvorena kao podmapa na trenutno označenoj';
-
-?>
\ No newline at end of file
--- /dev/null
+<?php
+
+/*
+
++-----------------------------------------------------------------------+
+| language/hr/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Edi Budimilic <edi@gemstudio.hr> |
++-----------------------------------------------------------------------+
+
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
+
+*/
+
+$labels = array();
+$labels['welcome'] = 'Dobrodošli na $product';
+$labels['username'] = 'E-mail';
+$labels['password'] = 'Lozinka';
+$labels['server'] = 'Server';
+$labels['login'] = 'Prijava';
+$labels['logout'] = 'Odjava';
+$labels['mail'] = 'Sandučić';
+$labels['settings'] = 'Postavke';
+$labels['addressbook'] = 'Imenik';
+$labels['inbox'] = 'Inbox';
+$labels['drafts'] = 'Predlošci';
+$labels['sent'] = 'Poslano';
+$labels['trash'] = 'Smeće';
+$labels['junk'] = 'Spam';
+$labels['subject'] = 'Naslov';
+$labels['from'] = 'Od';
+$labels['to'] = 'Za';
+$labels['cc'] = 'Cc';
+$labels['bcc'] = 'Bcc';
+$labels['replyto'] = 'Odgovor-na';
+$labels['date'] = 'Datum';
+$labels['size'] = 'Veličina';
+$labels['priority'] = 'Prioritet';
+$labels['organization'] = 'Organizacija';
+$labels['reply-to'] = 'Odgovor-na';
+$labels['mailboxlist'] = 'Mape';
+$labels['messagesfromto'] = 'Poruke od $from do $to od ukupno $count';
+$labels['messagenrof'] = 'Poruka broj $nr od $count';
+$labels['moveto'] = 'prebaci u...';
+$labels['download'] = 'preuzmi (download)';
+$labels['filename'] = 'Ime datoteke';
+$labels['filesize'] = 'Veličina datoteke';
+$labels['preferhtml'] = 'HTML format u prednosti';
+$labels['htmlmessage'] = 'HTML format poruke';
+$labels['prettydate'] = 'Formatiran datum';
+$labels['addtoaddressbook'] = 'Dodaj u imenik';
+$labels['sun'] = 'Ned';
+$labels['mon'] = 'Pon';
+$labels['tue'] = 'Uto';
+$labels['wed'] = 'Sri';
+$labels['thu'] = 'Čet';
+$labels['fri'] = 'Pet';
+$labels['sat'] = 'Sub';
+$labels['sunday'] = 'Nedjelja';
+$labels['monday'] = 'Ponedjeljak';
+$labels['tuesday'] = 'Utorak';
+$labels['wednesday'] = 'Srijeda';
+$labels['thursday'] = 'Četvrtak';
+$labels['friday'] = 'Petak';
+$labels['saturday'] = 'Subota';
+$labels['jan'] = 'Sij';
+$labels['feb'] = 'Velj';
+$labels['mar'] = 'Ožu';
+$labels['apr'] = 'Tra';
+$labels['may'] = 'Svi';
+$labels['jun'] = 'Lip';
+$labels['jul'] = 'Srp';
+$labels['aug'] = 'Kol';
+$labels['sep'] = 'Ruj';
+$labels['oct'] = 'Lis';
+$labels['nov'] = 'Stu';
+$labels['dec'] = 'Pro';
+$labels['longjan'] = 'Siječanj';
+$labels['longfeb'] = 'Veljača';
+$labels['longmar'] = 'Ožujak';
+$labels['longapr'] = 'Travanj';
+$labels['longmay'] = 'Svibanj';
+$labels['longjun'] = 'Lipanj';
+$labels['longjul'] = 'Srpanj';
+$labels['longaug'] = 'Kolovoz';
+$labels['longsep'] = 'Rujan';
+$labels['longoct'] = 'Listopad';
+$labels['longnov'] = 'Studeni';
+$labels['longdec'] = 'Prosinac';
+$labels['today'] = 'danas';
+$labels['checkmail'] = 'Provjera novih poruka';
+$labels['writenewmessage'] = 'Nova poruka';
+$labels['replytomessage'] = 'Odgovori na poruku';
+$labels['replytoallmessage'] = 'Odgovori pošiljaocu i svim primateljima';
+$labels['forwardmessage'] = 'Prosljedi poruku';
+$labels['deletemessage'] = 'Prebaci poruku u mapu smeće';
+$labels['movemessagetotrash'] = 'Preseli poruke u smeće';
+$labels['printmessage'] = 'Print poruke';
+$labels['previousmessage'] = 'Prikaži prethodnu poruku';
+$labels['previousmessages'] = 'Prijašnje poruke';
+$labels['firstmessage'] = 'Prikaži prvu poruku';
+$labels['firstmessages'] = 'Prikaži početni skup poruka';
+$labels['nextmessage'] = 'Prikaži slijedeću poruku';
+$labels['nextmessages'] = 'Sljedeće poruke';
+$labels['lastmessage'] = 'Prikaži zadnju poruku';
+$labels['lastmessages'] = 'Prikaži zadnju skupinu poruka';
+$labels['backtolist'] = 'Povratak na listu poruka';
+$labels['viewsource'] = 'Prikaži poruku u izvornom obliku';
+$labels['markmessages'] = 'Označi poruke';
+$labels['markread'] = 'Kao pročitano';
+$labels['markunread'] = 'Kao nepročitano';
+$labels['markflagged'] = 'Kao markiranu';
+$labels['markunflagged'] = 'Kao nemarkiranu';
+$labels['select'] = 'Označi';
+$labels['all'] = 'Sve';
+$labels['none'] = 'Nijednu';
+$labels['unread'] = 'Nepročitane';
+$labels['flagged'] = 'Markirane';
+$labels['unanswered'] = 'Neodgovrene';
+$labels['compact'] = 'Kompresiranje';
+$labels['empty'] = 'Isprazni ';
+$labels['purge'] = 'Očisti';
+$labels['quota'] = 'Kvota';
+$labels['unknown'] = 'nepoznato';
+$labels['unlimited'] = 'beskonačna';
+$labels['quicksearch'] = 'Brza pretraga';
+$labels['resetsearch'] = 'Prikaži sve poruke';
+$labels['openinextwin'] = 'Otvori u novom prozoru';
+$labels['compose'] = 'Nova poruka';
+$labels['savemessage'] = 'Spremi u \'Predlošci\'';
+$labels['sendmessage'] = 'Pošalji poruku';
+$labels['addattachment'] = 'Priloži datoteku';
+$labels['charset'] = 'Charset';
+$labels['editortype'] = 'Tip editora';
+$labels['returnreceipt'] = 'Potvrda o primitku poruke';
+$labels['checkspelling'] = 'Provjera pravopisa';
+$labels['resumeediting'] = 'Povratak u pisanje';
+$labels['revertto'] = 'Vrati na';
+$labels['attachments'] = 'Privitci (Attachments)';
+$labels['upload'] = 'Dodaj';
+$labels['close'] = 'Zatvori';
+$labels['low'] = 'Nizak';
+$labels['lowest'] = 'Najniži';
+$labels['normal'] = 'Srednji';
+$labels['high'] = 'Visok';
+$labels['highest'] = 'Najviši';
+$labels['nosubject'] = '(bez naslova)';
+$labels['showimages'] = 'Prikaži slike';
+$labels['alwaysshow'] = 'Uvijek prikaži slike od $sender';
+$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Samo tekst';
+$labels['savesentmessagein'] = 'Spremi poslane poruke u';
+$labels['dontsave'] = 'ne spremaj';
+$labels['maxuploadsize'] = 'Maksimalna dozvoljena velicina datoteke je $size';
+$labels['addcc'] = 'Dodaj Cc';
+$labels['addbcc'] = 'Dodaj Bcc';
+$labels['addreplyto'] = 'Dodaj Odgovori-na';
+$labels['mdnrequest'] = 'Pošiljaoc ove poruke je tražio da bude obaviješten o njenom primitku. Želite li obavijestiti pošiljaoca?';
+$labels['receiptread'] = 'Vrati potvrdu (pročitano)';
+$labels['yourmessage'] = 'Ovo je vraćena potvrda vaše poruke';
+$labels['receiptnote'] = 'Info: Ova potvrda samo potvrđuje da se poruka prikazala na računalu primaoca. Nema garancije da je primaoc pročitao ili razumio sadržaj poruke.';
+$labels['name'] = 'Puno ime';
+$labels['firstname'] = 'Ime';
+$labels['surname'] = 'Prezime';
+$labels['email'] = 'E-Mail';
+$labels['addcontact'] = 'Dodaj novi kontakt';
+$labels['editcontact'] = 'Izmjeni kontakt';
+$labels['edit'] = 'Izmjeni';
+$labels['cancel'] = 'Odustani';
+$labels['save'] = 'Spremi';
+$labels['delete'] = 'Obriši';
+$labels['newcontact'] = 'Dodaj novi kontakt';
+$labels['deletecontact'] = 'Obriši odabrane kontakte';
+$labels['composeto'] = 'Napiši mail...';
+$labels['contactsfromto'] = 'Kontakti od $from do $to od ukupno $count';
+$labels['print'] = 'Print';
+$labels['export'] = 'Export';
+$labels['exportvcards'] = 'Izvezi kontakte u vCard formatu';
+$labels['previouspage'] = 'Prethodna strana';
+$labels['firstpage'] = 'Prva strana';
+$labels['nextpage'] = 'Slijedeća strana';
+$labels['lastpage'] = 'Zadnja strana';
+$labels['groups'] = 'Grupe';
+$labels['personaladrbook'] = 'Privatna adresa';
+$labels['import'] = 'Uvoz';
+$labels['importcontacts'] = 'Uvoz kontakta';
+$labels['importfromfile'] = 'Uvezi iz datoteke:';
+$labels['importreplace'] = 'Prepiši cijeli adresar';
+$labels['importtext'] = 'Možete prebaciti kontakte iz postojećeg adresara.<br/>Trenutno podržavamo uvozenje adresa iz <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> formata.';
+$labels['done'] = 'Završeno';
+$labels['settingsfor'] = 'Postavke za';
+$labels['preferences'] = 'Postavke';
+$labels['userpreferences'] = 'Korisničke postavke';
+$labels['editpreferences'] = 'Izmjena postavki';
+$labels['identities'] = 'Identiteti';
+$labels['manageidentities'] = 'Podesi identitete za ovaj nalog';
+$labels['newidentity'] = 'Dodaj identitet';
+$labels['newitem'] = 'Novo';
+$labels['edititem'] = 'Uredi';
+$labels['setdefault'] = 'Postavi predodređeno';
+$labels['autodetect'] = 'Auto';
+$labels['language'] = 'Jezik';
+$labels['timezone'] = 'Vremenska zona';
+$labels['pagesize'] = 'Redova po stranici';
+$labels['signature'] = 'Potpis';
+$labels['dstactive'] = 'Automatska promjena vremena';
+$labels['htmleditor'] = 'Sastavi HTML poruke';
+$labels['htmlsignature'] = 'HTML potpis';
+$labels['previewpane'] = 'Prikaži područje pregleda';
+$labels['skin'] = 'Tema izgleda';
+$labels['logoutclear'] = 'Očisti smeće pri izlazu';
+$labels['logoutcompact'] = 'Komprimiraj Inbox pri izlazu';
+$labels['uisettings'] = 'Korisnički interfejs';
+$labels['serversettings'] = 'Postavke servera';
+$labels['mailboxview'] = 'Pregled Mailboxa';
+$labels['mdnrequests'] = 'Obavijest pošiljatelja';
+$labels['askuser'] = 'pitaj korisnika';
+$labels['autosend'] = 'šalji automatski';
+$labels['ignore'] = 'ignoriraj';
+$labels['readwhendeleted'] = 'Označi poruku kao pročitanu pri brisanju';
+$labels['flagfordeletion'] = 'Označi poruku za brisanje umjesto brisanja';
+$labels['skipdeleted'] = 'Ne prikazivaj pobrisane poruke';
+$labels['showinlineimages'] = 'Prikaži slike ispod poruke';
+$labels['autosavedraft'] = 'Automatski spremi draft';
+$labels['everynminutes'] = 'svakih $n minuta';
+$labels['keepaliveevery'] = 'svakih $n minuta';
+$labels['keepalive'] = 'Provjeri nove poruke';
+$labels['never'] = 'Nikada';
+$labels['messagesdisplaying'] = 'Prikazujem poruke';
+$labels['messagescomposition'] = 'Komponiram poruke';
+$labels['mimeparamfolding'] = 'Nazivi privitaka';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (ostali)';
+$labels['advancedoptions'] = 'Napredne postavke';
+$labels['focusonnewmessage'] = 'Fokusiraj browser pri novoj poruci';
+$labels['folder'] = 'Mapa';
+$labels['folders'] = 'Mape';
+$labels['foldername'] = 'Ime mape';
+$labels['subscribed'] = 'Pretplata';
+$labels['messagecount'] = 'Poruke';
+$labels['create'] = 'Napravi';
+$labels['createfolder'] = 'Napravi novu mapu';
+$labels['rename'] = 'Preimenuj';
+$labels['renamefolder'] = 'Preimenuj Mapu';
+$labels['deletefolder'] = 'Obriši Mapu';
+$labels['managefolders'] = 'Podesi Mapu';
+$labels['specialfolders'] = 'Specijalna Mapa';
+$labels['sortby'] = 'Sortiraj po';
+$labels['sortasc'] = 'Sortiraj rastućim nizom';
+$labels['sortdesc'] = 'Sortiraj opadajućim nizom';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+?>
--- /dev/null
+<?php
+
+/*
+
++-----------------------------------------------------------------------+
+| language/hr/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Edi Budimilic <edi@gemstudio.hr> |
++-----------------------------------------------------------------------+
+
+@version $Id: messages.inc 2102 2008-12-01 10:46:11Z yllar $
+
+*/
+
+$messages = array();
+$messages['loginfailed'] = 'Prijava neuspješna';
+$messages['cookiesdisabled'] = 'Vaš Web preglednik ne podržava kolačiće (cookies)';
+$messages['sessionerror'] = 'Morate se ponovno ulogirati';
+$messages['imaperror'] = 'Neuspješna veza na IMAP server';
+$messages['nomessagesfound'] = 'Nema poruka u sandučiću';
+$messages['loggedout'] = 'Uspješna odjava.';
+$messages['mailboxempty'] = 'Sandučuć je prazan';
+$messages['loading'] = 'Učitavanje...';
+$messages['loadingdata'] = 'Učitavanje podataka...';
+$messages['checkingmail'] = 'Provjera novih poruka u tijeku...';
+$messages['sendingmessage'] = 'Poruka se šalje...';
+$messages['messagesent'] = 'Poruka je uspješno poslana';
+$messages['savingmessage'] = 'Poruka se sprema...';
+$messages['messagesaved'] = 'Poruka uspješno spremljena u \'Predlošci\'';
+$messages['successfullysaved'] = 'Spremanje uspješno obavljeno';
+$messages['addedsuccessfully'] = 'Kontakt uspješno dodan u imenik';
+$messages['contactexists'] = 'Kontakt sa ovom e-mail adresom već postoji u imeniku';
+$messages['blockedimages'] = 'Zbog zaštite privatnosti, slike sa udaljenih servera su blokirane.';
+$messages['encryptedmessage'] = 'Ova poruka je zaštićena pa se ne može prikazati';
+$messages['nocontactsfound'] = 'Imenik je prazan';
+$messages['contactnotfound'] = 'Traženi kontakt nije pronađen';
+$messages['sendingfailed'] = 'Greška pri slanju poruke';
+$messages['senttooquickly'] = 'Molimo sačekajte $sec sek. prije slanja ove poruke';
+$messages['errorsavingsent'] = 'Greška pri spremanju poslane poruke';
+$messages['errorsaving'] = 'Greška pri spremanju';
+$messages['errormoving'] = 'Greška pri premještanju poruke';
+$messages['errordeleting'] = 'Greška pri brisanju poruke';
+$messages['deletecontactconfirm'] = 'Želite li obrisati izabrane kontakte?';
+$messages['deletemessagesconfirm'] = 'Sigurno želite obrisati odabrane poruke?';
+$messages['deletefolderconfirm'] = 'Želite li obrisati ovu mapu?';
+$messages['purgefolderconfirm'] = 'Želite li obrisati sve poruke u mapi?';
+$messages['foldercreating'] = 'Kreiram mapu...';
+$messages['folderdeleting'] = 'Brišem mapu...';
+$messages['folderrenaming'] = 'Mijenjam naziv mape...';
+$messages['foldermoving'] = 'Premještam mapu...';
+$messages['formincomplete'] = 'Obrazac nije u cjelosti popunjen';
+$messages['noemailwarning'] = 'Unesite valjanu e-mail adresu';
+$messages['nonamewarning'] = 'Unesite ime';
+$messages['nopagesizewarning'] = 'Unesite veličinu stranice';
+$messages['nosenderwarning'] = 'Unesite e-mail adresu pošiljatelja';
+$messages['norecipientwarning'] = 'Unesite primatelja (ZA)';
+$messages['nosubjectwarning'] = 'Polje \'Naslov\' je prazno. Želite li unijeti naslov?';
+$messages['nobodywarning'] = 'Želite li poslati poruku bez teksta?';
+$messages['notsentwarning'] = 'Poruka nije poslana. Želite li odbaciti ovu poruku?';
+$messages['noldapserver'] = 'Unesite LDAP poslužitelj za pretragu';
+$messages['nocontactsreturned'] = 'Nije pronađen niti jedan kontakt';
+$messages['nosearchname'] = 'Unesite ime ili e-mail adresu';
+$messages['searchsuccessful'] = 'Broj pronađenih poruka: $nr';
+$messages['searchnomatch'] = 'Traženi termin nije pronađen ni u jednoj poruci';
+$messages['searching'] = 'Pretraga u tijeku...';
+$messages['checking'] = 'Provjera u tijeku...';
+$messages['nospellerrors'] = 'Nije pronađena niti jedna pravopisna greška';
+$messages['folderdeleted'] = 'Mapa uspješno obrisana';
+$messages['deletedsuccessfully'] = 'Uspješno obrisano';
+$messages['converting'] = 'Formatiranje poruke';
+$messages['messageopenerror'] = 'Nije moguće ';
+$messages['fileuploaderror'] = 'Prijenos datoteke nije uspio';
+$messages['filesizeerror'] = 'Datoteka je prevelika. Maksimalna veličina je $size';
+$messages['copysuccess'] = 'Uspješno kopirano $n adresa';
+$messages['copyerror'] = 'Nije uspjelo kopiranje adresa';
+$messages['sourceisreadonly'] = 'Ovaj resurs adresa je samo za čitanje';
+$messages['errorsavingcontact'] = 'Nije uspjelo spremanje adrese kontakta';
+$messages['movingmessage'] = 'Premještanje poruke...';
+$messages['receiptsent'] = 'Uspješno poslana potvrda (pročitano)';
+$messages['errorsendingreceipt'] = 'Ne može poslati potvrdu';
+$messages['nodeletelastidentity'] = 'Ne možete izbrisati zadnji identitet.';
+$messages['addsubfolderhint'] = 'Ova mapa će biti stvorena kao podmapa na trenutno označenoj';
+$messages['forbiddencharacter'] = 'Naziv mape sadrži zabranjene znakove';
+$messages['selectimportfile'] = 'Odaberite datoteku za prijenos';
+$messages['addresswriterror'] = 'U odabrani adresar nije moguće zapisivat...';
+$messages['importwait'] = 'Uvozim, molimo sačekajte...';
+$messages['importerror'] = 'Greška pri uvozu! Datoteka ne sadrži pravilan vCard format.';
+$messages['importconfirm'] = '<b>Uspješno je uvezeno $inserted kontakt(a), preskočeno $skipped već postojećih</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operacija nije dozvoljena!';
+$messages['nofromaddress'] = 'Nije upisana e-mail adresa u odabrani identitet';
+$messages['editorwarning'] = 'Prebacivanje u čisti tekstualni uređivač će prouzrokovati gubljenje formatiranje teksta. Želite li nastaviti?';
+
+?>
/*
- +-----------------------------------------------------------------------+
- | language/hu/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Levente Farkas <lfarkas at lfarkas dot org> |
- | Ervin Hegedüs <airween@damson.hu> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/hu_HU/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Levente Farkas <lfarkas at lfarkas dot org> |
+| Ervin Hegedüs <airween@damson.hu> |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 1069 2008-02-13 19:33:10Z yllar $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['thursday'] = 'Csütörtök';
$labels['friday'] = 'Péntek';
$labels['saturday'] = 'Szombat';
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Febr';
+$labels['mar'] = 'Márc';
+$labels['apr'] = 'Ápr';
+$labels['may'] = 'Máj';
+$labels['jun'] = 'Jún';
+$labels['jul'] = 'Júl';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Szept';
+$labels['oct'] = 'Okt';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+$labels['longjan'] = 'Január';
+$labels['longfeb'] = 'Február';
+$labels['longmar'] = 'Március';
+$labels['longapr'] = 'Április';
+$labels['longmay'] = 'Május';
+$labels['longjun'] = 'Június';
+$labels['longjul'] = 'Július';
+$labels['longaug'] = 'Augusztus';
+$labels['longsep'] = 'Szeptember';
+$labels['longoct'] = 'Október';
+$labels['longnov'] = 'November';
+$labels['longdec'] = 'December';
$labels['today'] = 'Ma';
$labels['checkmail'] = 'Új üzenetek ellenőrzése';
$labels['writenewmessage'] = 'Új üzenet';
$labels['markmessages'] = 'Üzenetek megjelölése';
$labels['markread'] = 'Olvasottként';
$labels['markunread'] = 'Olvasatlanként';
+$labels['markflagged'] = 'Jelöltként';
+$labels['markunflagged'] = 'Jelöletlenként';
$labels['select'] = 'Kijelölés';
$labels['all'] = 'Összes';
$labels['none'] = 'Nincs';
$labels['highest'] = 'Legmagasabb';
$labels['nosubject'] = '(nincs tárgy)';
$labels['showimages'] = 'Képek megjelenítése';
+$labels['alwaysshow'] = 'Képek megjelenítése mindíg ha a feladó $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Egyszerű szöveg';
$labels['addcc'] = 'Cc (Másolati cím) hozzáadása';
$labels['htmleditor'] = 'HTML üzenet írása';
$labels['htmlsignature'] = 'HTML aláírás';
$labels['previewpane'] = 'Előnézeti kép';
+$labels['skin'] = 'Smink';
+$labels['logoutclear'] = 'Törölt elemek mappa ürítése kilépéskor';
+$labels['logoutcompact'] = 'Beérkezett üzenetek mappa tömörítése kilépéskor';
+$labels['uisettings'] = 'Felhasználói felület';
+$labels['serversettings'] = 'Szerverbeállítások';
+$labels['mailboxview'] = 'Postafiók nézet';
+$labels['mdnrequests'] = 'Olvasási értesítés küldése';
+$labels['askuser'] = 'kérdezzen rá';
+$labels['autosend'] = 'automatikus küldés';
+$labels['ignore'] = 'hagyja figyelmen kívül';
+$labels['readwhendeleted'] = 'Üzenet olvasottként jelölése törléskor';
+$labels['flagfordeletion'] = 'Üzenet törlendőnek jelölése törlés helyett ';
+$labels['showinlineimages'] = 'Csatolt képek megjelenítése az üzenet alatt';
$labels['autosavedraft'] = 'Automatikus piszkozat mentés';
$labels['everynminutes'] = 'minden $n percben';
$labels['never'] = 'soha';
+$labels['messagesdisplaying'] = 'Üzenetek megjelenítése';
+$labels['messagescomposition'] = 'Üzenetek írása';
$labels['folder'] = 'Mappa';
$labels['folders'] = 'Mappák';
$labels['foldername'] = 'Mappa neve';
$labels['sortasc'] = 'növekvő';
$labels['sortdesc'] = 'csökkenő';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/hu/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Levente Farkas <lfarkas at lfarkas dot org> |
- | Ervin Hegedüs <airween@damson.hu> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/hu_HU/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Levente Farkas <lfarkas at lfarkas dot org> |
+| Ervin Hegedüs <airween@damson.hu> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1192 2008-03-14 08:11:06Z yllar $
+@version $Id: messages.inc 1600 2008-07-21 08:52:30Z yllar $
*/
$messages['sendingmessage'] = 'Az üzenet küldése...';
$messages['messagesent'] = 'Az üzenet elküldve';
$messages['savingmessage'] = 'Az üzenet mentése...';
-$messages['messagesaved'] = 'Az üzenet elmentve a Sablonokhoz';
+$messages['messagesaved'] = 'Az üzenet elmentve a Piszkozatokhoz';
$messages['successfullysaved'] = 'A mentés sikerült';
$messages['addedsuccessfully'] = 'A cím hozzáadása a címjegyzékhez megtörtént';
$messages['contactexists'] = 'A kapcsolat már létezik ezzel az e-mail címmel';
$messages['nonamewarning'] = 'Adj meg egy nevet';
$messages['nopagesizewarning'] = 'Add meg a papír méretét';
$messages['norecipientwarning'] = 'Legalább egy címzettet adj meg';
-$messages['nosubjectwarning'] = 'A "Tárgy" mező üres. Szeretnéd most kitölteni?';
+$messages['nosubjectwarning'] = 'A \"Tárgy\" mező üres. Szeretnéd most kitölteni?';
$messages['nobodywarning'] = 'Elküldöd az üzenetet tárgy nélkül?';
$messages['notsentwarning'] = 'Az üzenet még nem küldtem el. Eldobod az üzenetet?';
$messages['noldapserver'] = 'Adj meg egy LDAP szervert a kereséshez';
$messages['errorsendingreceipt'] = 'Az Olvasási Értesítést nem sikerült elküldeni';
$messages['nodeletelastidentity'] = 'Nem törölheti ezt a profilt, ez az egyetlen';
$messages['addsubfolderhint'] = 'Az új könyvtárat az aktuálisan kiválasztott alkönyvtáraként fogjuk létrehozni';
+$messages['forbiddencharacter'] = 'A mappa neve tiltott karaktert tartalmaz';
-?>
\ No newline at end of file
+?>
-<?php\r
-\r
-/*\r
-\r
- +-----------------------------------------------------------------------+\r
- | language/id_ID/labels.inc |\r
- | |\r
- | Language file of the RoundCube Webmail client |\r
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |\r
- | Licensed under the GNU GPL |\r
- | |\r
- +-----------------------------------------------------------------------+\r
- | Author: Putu Arya Sabda Wijaya <klunxer@gmail.com> |\r
- +-----------------------------------------------------------------------+\r
-\r
- @version $Id$\r
-\r
-*/\r
-\r
-$labels = array();\r
-$labels['welcome'] = 'Selamat datang di $product';\r
-$labels['username'] = 'Username';\r
-$labels['password'] = 'Password';\r
-$labels['server'] = 'Server';\r
-$labels['login'] = 'Masuk';\r
-$labels['logout'] = 'Keluar';\r
-$labels['mail'] = 'E-Mail';\r
-$labels['settings'] = 'Pengaturan Pribadi';\r
-$labels['addressbook'] = 'Buku Alamat';\r
-$labels['inbox'] = 'Kotak Masuk';\r
-$labels['drafts'] = 'Daftar tunggu';\r
-$labels['sent'] = 'Terkirim';\r
-$labels['trash'] = 'Item-itenm tergapus';\r
-$labels['junk'] = 'Sampah';\r
-$labels['subject'] = 'Judul';\r
-$labels['from'] = 'Pengirim';\r
-$labels['to'] = 'Penerima';\r
-$labels['cc'] = 'Lampiran';\r
-$labels['bcc'] = 'Lampiran tersembunyi';\r
-$labels['replyto'] = 'Balas kepada';\r
-$labels['date'] = 'Tangal';\r
-$labels['size'] = 'Ukuran';\r
-$labels['priority'] = 'Prioritas';\r
-$labels['organization'] = 'Organisasi';\r
-$labels['reply-to'] = 'Balas kepada';\r
-$labels['mailboxlist'] = 'Map-map';\r
-$labels['messagesfromto'] = 'Pesan $from kepada $to sebanyak $count';\r
-$labels['messagenrof'] = 'Pesan $nr sebanyak $count';\r
-$labels['moveto'] = 'dipindahkan...';\r
-$labels['download'] = 'unduh';\r
-$labels['filename'] = 'Nama berkas';\r
-$labels['filesize'] = 'Ukuran berkas';\r
-$labels['preferhtml'] = 'Lebih suka HTML';\r
-$labels['htmlmessage'] = 'Pesan HTML';\r
-$labels['prettydate'] = 'Tanggal cantik';\r
-$labels['addtoaddressbook'] = 'Tambahkan ke buku tamu';\r
-$labels['sun'] = 'Min';\r
-$labels['mon'] = 'Sen';\r
-$labels['tue'] = 'Sel';\r
-$labels['wed'] = 'Rab';\r
-$labels['thu'] = 'Kam';\r
-$labels['fri'] = 'Jum';\r
-$labels['sat'] = 'Sab';\r
-$labels['sunday'] = 'Minggu';\r
-$labels['monday'] = 'Senin';\r
-$labels['tuesday'] = 'Selasa';\r
-$labels['wednesday'] = 'Rabu';\r
-$labels['thursday'] = 'Kamis';\r
-$labels['friday'] = 'Jumat';\r
-$labels['saturday'] = 'Sabtu';\r
-$labels['today'] = 'Hari ini';\r
-$labels['checkmail'] = 'Periksa pesan baru';\r
-$labels['writenewmessage'] = 'Buat pesan baru';\r
-$labels['replytomessage'] = 'Balas pesan';\r
-$labels['replytoallmessage'] = 'balas ke pengirim dan semua penerima';\r
-$labels['forwardmessage'] = 'Teruskan pesan';\r
-$labels['deletemessage'] = 'Pindahkan pesan ke tong sampah';\r
-$labels['movemessagetotrash'] = 'Pindahkan pesan ke tong sampah';\r
-$labels['printmessage'] = 'cetak pesan ini';\r
-$labels['previousmessage'] = 'Perlihatkan pesan sebelumnya';\r
-$labels['previousmessages'] = 'Perlihatkan kumpulan pesan-pesan sebelumnya';\r
-$labels['firstmessage'] = 'Perlihatkan pesan pertama';\r
-$labels['firstmessages'] = 'Perlihatkan kumpulan pesan pertama';\r
-$labels['nextmessage'] = 'Perlihatkan pesan berikutnya';\r
-$labels['nextmessages'] = 'Perlihatkan kumpulan pesan-pesan berikutnya';\r
-$labels['lastmessage'] = 'Perlihatkan pesan terakhir';\r
-$labels['lastmessages'] = 'Perlihatkan kumpulan pesan terkahir';\r
-$labels['backtolist'] = 'Kembali ke daftar pesan';\r
-$labels['viewsource'] = 'Perlihatkan kode sumber';\r
-$labels['markmessages'] = 'Tandai Pesan';\r
-$labels['markread'] = 'Terbaca';\r
-$labels['markunread'] = 'Belum Terbaca';\r
-$labels['select'] = 'Pilih';\r
-$labels['all'] = 'Semua';\r
-$labels['none'] = 'Tidak satupun';\r
-$labels['unread'] = 'Belum terbaca';\r
-$labels['compact'] = 'Ramping';\r
-$labels['empty'] = 'Kosong';\r
-$labels['purge'] = 'Kosongkan';\r
-$labels['quota'] = 'Penggunaan kandar';\r
-$labels['unknown'] = 'Tidak dikenal';\r
-$labels['unlimited'] = 'Tidak terbatas';\r
-$labels['quicksearch'] = 'Pencarian cepat';\r
-$labels['resetsearch'] = 'Atur ulang pencarian';\r
-$labels['compose'] = 'Tulis sebuah pesan';\r
-$labels['savemessage'] = 'Simpan daftar tunggu ini';\r
-$labels['sendmessage'] = 'Kirim pesan sekarang';\r
-$labels['addattachment'] = 'Sisipkan sebuah berkas';\r
-$labels['charset'] = 'set karakter';\r
-$labels['editortype'] = 'Tipe editor';\r
-$labels['returnreceipt'] = 'Kembalikan penerima';\r
-$labels['checkspelling'] = 'Pemeriksaan ejaan';\r
-$labels['resumeediting'] = 'Lanjutkan mengedit';\r
-$labels['revertto'] = 'Balik ke';\r
-$labels['attachments'] = 'Sisispan';\r
-$labels['upload'] = 'unggah';\r
-$labels['close'] = 'Tutup';\r
-$labels['low'] = 'Rendah';\r
-$labels['lowest'] = 'Terrendah';\r
-$labels['normal'] = 'Normal';\r
-$labels['high'] = 'Tinggi';\r
-$labels['highest'] = 'tertinggi';\r
-$labels['nosubject'] = '(tanpa judul)';\r
-$labels['showimages'] = 'Tampilkan gambar';\r
-$labels['htmltoggle'] = 'HTML';\r
-$labels['plaintoggle'] = 'Text murni';\r
-$labels['addcc'] = 'Tambah Cc';\r
-$labels['addbcc'] = 'Tambah Bcc';\r
-$labels['addreplyto'] = 'Tambah Balas Ke';\r
-$labels['mdnrequest'] = 'Pengirim pesan ini telah meminta untuk diberitahu ketika Anda membaca pesan ini. Apakah anda ingin memberitahu pengirim?';\r
-$labels['receiptread'] = 'Tanda Terima (baca)';\r
-$labels['yourmessage'] = 'Ini adalah Tanda Terima untuk pesan Anda';\r
-$labels['receiptnote'] = 'Catatan: Tanda Terima ini hanya mengesahkan bahwa pesan telah diperlihatkan pada komputer penerima. Tidak ada jaminan bahwa penerima telah membaca atau mengerti isi pesan.';\r
-$labels['name'] = 'Tampilkan nama';\r
-$labels['firstname'] = 'Nama depan';\r
-$labels['surname'] = 'Nama belakang';\r
-$labels['email'] = 'E-Mail';\r
-$labels['addcontact'] = 'Tambah kontak baru';\r
-$labels['editcontact'] = 'Ubah kontak';\r
-$labels['edit'] = 'Ubah';\r
-$labels['cancel'] = 'Batal';\r
-$labels['save'] = 'Simpan';\r
-$labels['delete'] = 'Hapus';\r
-$labels['newcontact'] = 'Buat kartu kontak baru';\r
-$labels['deletecontact'] = 'Hapus kontak terpilih';\r
-$labels['composeto'] = 'Tulis surat kepada';\r
-$labels['contactsfromto'] = 'Kontak $from kepada $to sebanyak $count';\r
-$labels['print'] = 'Cetak';\r
-$labels['export'] = 'Ekspor';\r
-$labels['previouspage'] = 'Perlihatkan kumpulan sebelumnya';\r
-$labels['firstpage'] = 'Perlihatkan kumpulan pertama';\r
-$labels['nextpage'] = 'Perlihatkan kumpulan selanjutnya';\r
-$labels['lastpage'] = 'Perlihatkan kumpulan terakhir';\r
-$labels['groups'] = 'Kelompok';\r
-$labels['personaladrbook'] = 'Alamat personal';\r
-$labels['settingsfor'] = 'Pengaturan untuk';\r
-$labels['preferences'] = 'Pilihan';\r
-$labels['userpreferences'] = 'Pilihan pengguna';\r
-$labels['editpreferences'] = 'Ubah pilihan pengguna';\r
-$labels['identities'] = 'Identitas';\r
-$labels['manageidentities'] = 'Atur identitas untuk akun ini';\r
-$labels['newidentity'] = 'Identitas baru';\r
-$labels['newitem'] = 'Item baru';\r
-$labels['edititem'] = 'Ubah item';\r
-$labels['setdefault'] = 'Pengaturan Awal';\r
-$labels['language'] = 'Bahasa';\r
-$labels['timezone'] = 'Daerah Waktu';\r
-$labels['pagesize'] = 'Baris per halaman';\r
-$labels['signature'] = 'Tanda tangan';\r
-$labels['dstactive'] = 'Waktu Musim Panas';\r
-$labels['htmleditor'] = 'Tulis pesan HTML';\r
-$labels['htmlsignature'] = 'Tandatangan HTML';\r
-$labels['previewpane'] = 'Perlihatkan tempat melihat';\r
-$labels['autosavedraft'] = 'Otomatis menyimpan pesan tertunda';\r
-$labels['everynminutes'] = 'setiap $n menit';\r
-$labels['never'] = 'tidak pernah';\r
-$labels['folder'] = 'Map';\r
-$labels['folders'] = 'Map-map';\r
-$labels['foldername'] = 'Nama map';\r
-$labels['subscribed'] = 'Subscribed';\r
-$labels['messagecount'] = 'Pesan-pesan';\r
-$labels['create'] = 'Buat';\r
-$labels['createfolder'] = 'Buat map baru';\r
-$labels['rename'] = 'Namai ulang';\r
-$labels['renamefolder'] = 'Namai ulang map';\r
-$labels['deletefolder'] = 'Hapus map';\r
-$labels['managefolders'] = 'Atur map';\r
-$labels['sortby'] = 'Urut berdasarkan';\r
-$labels['sortasc'] = 'Urut menaik';\r
-$labels['sortdesc'] = 'Urut menurun';\r
-\r
-?>\r
+<?php
+
+/*
+
++-----------------------------------------------------------------------+
+| language/id_ID/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Putu Arya Sabda Wijaya <klunxer@gmail.com> |
++-----------------------------------------------------------------------+
+
+@version $Id$
+
+*/
+
+$labels = array();
+$labels['welcome'] = 'Selamat datang di $product';
+$labels['username'] = 'Username';
+$labels['password'] = 'Password';
+$labels['server'] = 'Server';
+$labels['login'] = 'Masuk';
+$labels['logout'] = 'Keluar';
+$labels['mail'] = 'E-Mail';
+$labels['settings'] = 'Pengaturan Pribadi';
+$labels['addressbook'] = 'Buku Alamat';
+$labels['inbox'] = 'Kotak Masuk';
+$labels['drafts'] = 'Daftar tunggu';
+$labels['sent'] = 'Terkirim';
+$labels['trash'] = 'Item-itenm tergapus';
+$labels['junk'] = 'Sampah';
+$labels['subject'] = 'Judul';
+$labels['from'] = 'Pengirim';
+$labels['to'] = 'Penerima';
+$labels['cc'] = 'Lampiran';
+$labels['bcc'] = 'Lampiran tersembunyi';
+$labels['replyto'] = 'Balas kepada';
+$labels['date'] = 'Tangal';
+$labels['size'] = 'Ukuran';
+$labels['priority'] = 'Prioritas';
+$labels['organization'] = 'Organisasi';
+$labels['reply-to'] = 'Balas kepada';
+$labels['mailboxlist'] = 'Map-map';
+$labels['messagesfromto'] = 'Pesan $from kepada $to sebanyak $count';
+$labels['messagenrof'] = 'Pesan $nr sebanyak $count';
+$labels['moveto'] = 'dipindahkan...';
+$labels['download'] = 'unduh';
+$labels['filename'] = 'Nama berkas';
+$labels['filesize'] = 'Ukuran berkas';
+$labels['preferhtml'] = 'Lebih suka HTML';
+$labels['htmlmessage'] = 'Pesan HTML';
+$labels['prettydate'] = 'Tanggal cantik';
+$labels['addtoaddressbook'] = 'Tambahkan ke buku tamu';
+$labels['sun'] = 'Min';
+$labels['mon'] = 'Sen';
+$labels['tue'] = 'Sel';
+$labels['wed'] = 'Rab';
+$labels['thu'] = 'Kam';
+$labels['fri'] = 'Jum';
+$labels['sat'] = 'Sab';
+$labels['sunday'] = 'Minggu';
+$labels['monday'] = 'Senin';
+$labels['tuesday'] = 'Selasa';
+$labels['wednesday'] = 'Rabu';
+$labels['thursday'] = 'Kamis';
+$labels['friday'] = 'Jumat';
+$labels['saturday'] = 'Sabtu';
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'Mei';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Ags';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Okt';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Des';
+$labels['longjan'] = 'Januari';
+$labels['longfeb'] = 'Februari';
+$labels['longmar'] = 'Maret';
+$labels['longapr'] = 'April';
+$labels['longmay'] = 'Mei';
+$labels['longjun'] = 'Juni';
+$labels['longjul'] = 'Juli';
+$labels['longaug'] = 'Agustus';
+$labels['longsep'] = 'Spetember';
+$labels['longoct'] = 'Oktober';
+$labels['longnov'] = 'November';
+$labels['longdec'] = 'Desember';
+$labels['today'] = 'Hari ini';
+$labels['checkmail'] = 'Periksa pesan baru';
+$labels['writenewmessage'] = 'Buat pesan baru';
+$labels['replytomessage'] = 'Balas pesan';
+$labels['replytoallmessage'] = 'balas ke pengirim dan semua penerima';
+$labels['forwardmessage'] = 'Teruskan pesan';
+$labels['deletemessage'] = 'Pindahkan pesan ke tong sampah';
+$labels['movemessagetotrash'] = 'Pindahkan pesan ke tong sampah';
+$labels['printmessage'] = 'cetak pesan ini';
+$labels['previousmessage'] = 'Perlihatkan pesan sebelumnya';
+$labels['previousmessages'] = 'Perlihatkan kumpulan pesan-pesan sebelumnya';
+$labels['firstmessage'] = 'Perlihatkan pesan pertama';
+$labels['firstmessages'] = 'Perlihatkan kumpulan pesan pertama';
+$labels['nextmessage'] = 'Perlihatkan pesan berikutnya';
+$labels['nextmessages'] = 'Perlihatkan kumpulan pesan-pesan berikutnya';
+$labels['lastmessage'] = 'Perlihatkan pesan terakhir';
+$labels['lastmessages'] = 'Perlihatkan kumpulan pesan terkahir';
+$labels['backtolist'] = 'Kembali ke daftar pesan';
+$labels['viewsource'] = 'Perlihatkan kode sumber';
+$labels['markmessages'] = 'Tandai Pesan';
+$labels['markread'] = 'Terbaca';
+$labels['markunread'] = 'Belum Terbaca';
+$labels['markflagged'] = 'Sudah ditandai';
+$labels['markunflagged'] = 'Belum ditandai';
+$labels['select'] = 'Pilih';
+$labels['all'] = 'Semua';
+$labels['none'] = 'Tidak satupun';
+$labels['unread'] = 'Belum terbaca';
+$labels['compact'] = 'Ramping';
+$labels['empty'] = 'Kosong';
+$labels['purge'] = 'Kosongkan';
+$labels['quota'] = 'Penggunaan kandar';
+$labels['unknown'] = 'Tidak dikenal';
+$labels['unlimited'] = 'Tidak terbatas';
+$labels['quicksearch'] = 'Pencarian cepat';
+$labels['resetsearch'] = 'Atur ulang pencarian';
+$labels['compose'] = 'Tulis sebuah pesan';
+$labels['savemessage'] = 'Simpan daftar tunggu ini';
+$labels['sendmessage'] = 'Kirim pesan sekarang';
+$labels['addattachment'] = 'Sisipkan sebuah berkas';
+$labels['charset'] = 'set karakter';
+$labels['editortype'] = 'Tipe editor';
+$labels['returnreceipt'] = 'Kembalikan penerima';
+$labels['checkspelling'] = 'Pemeriksaan ejaan';
+$labels['resumeediting'] = 'Lanjutkan mengedit';
+$labels['revertto'] = 'Balik ke';
+$labels['attachments'] = 'Sisispan';
+$labels['upload'] = 'unggah';
+$labels['close'] = 'Tutup';
+$labels['low'] = 'Rendah';
+$labels['lowest'] = 'Terrendah';
+$labels['normal'] = 'Normal';
+$labels['high'] = 'Tinggi';
+$labels['highest'] = 'tertinggi';
+$labels['nosubject'] = '(tanpa judul)';
+$labels['showimages'] = 'Tampilkan gambar';
+$labels['alwaysshow'] = 'Selalu tampilkan gambar dari $sender';
+$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Text murni';
+$labels['savesentmessagein'] = 'Simpan pesan terkirim di';
+$labels['dontsave'] = 'Jangan disimpan';
+$labels['addcc'] = 'Tambah Cc';
+$labels['addbcc'] = 'Tambah Bcc';
+$labels['addreplyto'] = 'Tambah Balas Ke';
+$labels['mdnrequest'] = 'Pengirim pesan ini telah meminta untuk diberitahu ketika Anda membaca pesan ini. Apakah anda ingin memberitahu pengirim?';
+$labels['receiptread'] = 'Tanda Terima (baca)';
+$labels['yourmessage'] = 'Ini adalah Tanda Terima untuk pesan Anda';
+$labels['receiptnote'] = 'Catatan: Tanda Terima ini hanya mengesahkan bahwa pesan telah diperlihatkan pada komputer penerima. Tidak ada jaminan bahwa penerima telah membaca atau mengerti isi pesan.';
+$labels['name'] = 'Tampilkan nama';
+$labels['firstname'] = 'Nama depan';
+$labels['surname'] = 'Nama belakang';
+$labels['email'] = 'E-Mail';
+$labels['addcontact'] = 'Tambah kontak baru';
+$labels['editcontact'] = 'Ubah kontak';
+$labels['edit'] = 'Ubah';
+$labels['cancel'] = 'Batal';
+$labels['save'] = 'Simpan';
+$labels['delete'] = 'Hapus';
+$labels['newcontact'] = 'Buat kartu kontak baru';
+$labels['deletecontact'] = 'Hapus kontak terpilih';
+$labels['composeto'] = 'Tulis surat kepada';
+$labels['contactsfromto'] = 'Kontak $from kepada $to sebanyak $count';
+$labels['print'] = 'Cetak';
+$labels['export'] = 'Ekspor';
+$labels['previouspage'] = 'Perlihatkan kumpulan sebelumnya';
+$labels['firstpage'] = 'Perlihatkan kumpulan pertama';
+$labels['nextpage'] = 'Perlihatkan kumpulan selanjutnya';
+$labels['lastpage'] = 'Perlihatkan kumpulan terakhir';
+$labels['groups'] = 'Kelompok';
+$labels['personaladrbook'] = 'Alamat personal';
+$labels['settingsfor'] = 'Pengaturan untuk';
+$labels['preferences'] = 'Pilihan';
+$labels['userpreferences'] = 'Pilihan pengguna';
+$labels['editpreferences'] = 'Ubah pilihan pengguna';
+$labels['identities'] = 'Identitas';
+$labels['manageidentities'] = 'Atur identitas untuk akun ini';
+$labels['newidentity'] = 'Identitas baru';
+$labels['newitem'] = 'Item baru';
+$labels['edititem'] = 'Ubah item';
+$labels['setdefault'] = 'Pengaturan Awal';
+$labels['language'] = 'Bahasa';
+$labels['timezone'] = 'Daerah Waktu';
+$labels['pagesize'] = 'Baris per halaman';
+$labels['signature'] = 'Tanda tangan';
+$labels['dstactive'] = 'Waktu Musim Panas';
+$labels['htmleditor'] = 'Tulis pesan HTML';
+$labels['htmlsignature'] = 'Tandatangan HTML';
+$labels['previewpane'] = 'Perlihatkan tempat melihat';
+$labels['skin'] = 'Tampilan antarmuka';
+$labels['logoutclear'] = 'Bersihkan Tong Sampah saat keluar';
+$labels['logoutcompact'] = 'Mampatkan Kotak Masuk saat keluar';
+$labels['uisettings'] = 'Antarmuka pengguna';
+$labels['serversettings'] = 'Pengaturan Server';
+$labels['mailboxview'] = 'Tampilan Kotak Surat';
+$labels['mdnrequests'] = 'Pemberitahuan pada pengirim';
+$labels['askuser'] = 'tanya si pengguna';
+$labels['autosend'] = 'kirim otomatis';
+$labels['ignore'] = 'acuhkan';
+$labels['readwhendeleted'] = 'Tandai pesan sebagai terbaca saat dihapus';
+$labels['flagfordeletion'] = 'Tandai pesan untuk penghapusan daripada dihapus';
+$labels['showinlineimages'] = 'Tampilkan gambar terlampir dibawah pesan';
+$labels['autosavedraft'] = 'Otomatis menyimpan pesan tertunda';
+$labels['everynminutes'] = 'setiap $n menit';
+$labels['never'] = 'tidak pernah';
+$labels['messagesdisplaying'] = 'Penampilan Pesan';
+$labels['messagescomposition'] = 'Pengaturan Pesan';
+$labels['folder'] = 'Map';
+$labels['folders'] = 'Map-map';
+$labels['foldername'] = 'Nama map';
+$labels['subscribed'] = 'Subscribed';
+$labels['messagecount'] = 'Pesan-pesan';
+$labels['create'] = 'Buat';
+$labels['createfolder'] = 'Buat map baru';
+$labels['rename'] = 'Namai ulang';
+$labels['renamefolder'] = 'Namai ulang map';
+$labels['deletefolder'] = 'Hapus map';
+$labels['managefolders'] = 'Atur map';
+$labels['specialfolders'] = 'Map Khusus';
+$labels['sortby'] = 'Urut berdasarkan';
+$labels['sortasc'] = 'Urut menaik';
+$labels['sortdesc'] = 'Urut menurun';
+
+?>
-<?php\r
-\r
-/*\r
-\r
- +-----------------------------------------------------------------------+\r
- | language/id_ID/messages.inc |\r
- | |\r
- | Language file of the RoundCube Webmail client |\r
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |\r
- | Licensed under the GNU GPL |\r
- | |\r
- +-----------------------------------------------------------------------+\r
- | Author: Putu Arya Sabda Wijaya <klunxer@gmail.com> |\r
- +-----------------------------------------------------------------------+\r
-\r
- @version $Id$\r
-\r
-*/\r
-\r
-$messages = array();\r
-$messages['loginfailed'] = 'Gagal masuk';\r
-$messages['cookiesdisabled'] = 'Browser Anda tidak menerima cookies';\r
-$messages['sessionerror'] = 'Session Anda invalid atau kadaluwarsa';\r
-$messages['imaperror'] = 'Koneksi ke IMAP server gagal';\r
-$messages['nomessagesfound'] = 'Surat tidak ditemukan di kotak masuk ini';\r
-$messages['loggedout'] = 'Anda berhasil mengakhiri session. Selamat Tinggal!';\r
-$messages['mailboxempty'] = 'Kotak masuk kosong';\r
-$messages['loading'] = 'Loading...';\r
-$messages['loadingdata'] = 'Loading data...';\r
-$messages['checkingmail'] = 'Memeriksa pesan baru...';\r
-$messages['sendingmessage'] = 'Mengirim pesan...';\r
-$messages['messagesent'] = 'Pesan terkirim';\r
-$messages['savingmessage'] = 'Menyimpan pesan...';\r
-$messages['messagesaved'] = 'MMenyimpan pesan ke daftar tunggu';\r
-$messages['successfullysaved'] = 'Berhasil disimpan';\r
-$messages['addedsuccessfully'] = 'Kontak berhasil ditambahkan ke buku alamat';\r
-$messages['contactexists'] = 'Konatk dengan alamat e-mail ini sudah ada';\r
-$messages['blockedimages'] = 'Untuk melindungi privasi Anda, gambar-gambar diluar server diblok pada pesan ini.';\r
-$messages['encryptedmessage'] = 'Pesan ini terenkripsi dan tidak bisa ditampilkan. Maaf!';\r
-$messages['nocontactsfound'] = 'Kontak tidak ditemukan';\r
-$messages['contactnotfound'] = 'Kontak yang diminta tidak ditemukan';\r
-$messages['sendingfailed'] = 'Pengiriman pesan gagal';\r
-$messages['errorsaving'] = 'Error ketika menyimpan';\r
-$messages['errormoving'] = 'Pesan tidak bisa dipindahkan';\r
-$messages['errordeleting'] = 'Pesan tidak bisa dihapus';\r
-$messages['deletecontactconfirm'] = 'Apakah anda yakin untuk menghapus kontak terpilih?';\r
-$messages['deletemessagesconfirm'] = 'Yakin menghapus pesan terpilih?';\r
-$messages['deletefolderconfirm'] = 'Apakah anda benar-benar ingin menghapus map ini?';\r
-$messages['purgefolderconfirm'] = 'Yakin menghapus semua pesan pada map ini?';\r
-$messages['formincomplete'] = 'Blangko tidak terisi semua';\r
-$messages['noemailwarning'] = 'Tolong masukkan alamat email yang valid';\r
-$messages['nonamewarning'] = 'Tolong masukkan nama';\r
-$messages['nopagesizewarning'] = 'Tolong masukkan ukuran halaman';\r
-$messages['norecipientwarning'] = 'Tolong masukkan sedikitnya satu penerima';\r
-$messages['nosubjectwarning'] = '\\"Judul\\" kosong. Isi judul sekarang?';\r
-$messages['nobodywarning'] = 'Kirim pesan ini tanpa teks?';\r
-$messages['notsentwarning'] = 'Pesan belum terkirim. Buang pesan Anda?';\r
-$messages['noldapserver'] = 'Tolong pilih server LDAP untuk pencarian';\r
-$messages['nocontactsreturned'] = 'Kontak kosong';\r
-$messages['nosearchname'] = 'Tolong masukkan nama kontak atau alamat email';\r
-$messages['searchsuccessful'] = '$nr pesan ditemukan';\r
-$messages['searchnomatch'] = 'Pencarian kosong';\r
-$messages['searching'] = 'Mencari...';\r
-$messages['checking'] = 'Memeriksa...';\r
-$messages['nospellerrors'] = 'Tidak ditemkan kesalahan ejaan';\r
-$messages['folderdeleted'] = 'Map berhasil dihapus';\r
-$messages['deletedsuccessfully'] = 'Berhasil dihapus';\r
-$messages['converting'] = 'Mengembalikan pesan ke format awal...';\r
-$messages['messageopenerror'] = 'Tidak dapat mengambil pesan dari server';\r
-$messages['fileuploaderror'] = 'Gagal mengunggah berkas';\r
-$messages['filesizeerror'] = 'Berkas terunggah mencapai ukuran maksimal dari $size';\r
-$messages['copysuccess'] = 'Berhasil menyalin $nr alamat';\r
-$messages['copyerror'] = 'Tidak bisa menyalin alamat manapun';\r
-$messages['sourceisreadonly'] = 'Sumber dari alamat ini hanya dapat dibaca';\r
-$messages['errorsavingcontact'] = 'Tidak bisa menyimpan alamat kontak';\r
-$messages['movingmessage'] = 'Memindahkan pesan...';\r
-$messages['receiptsent'] = 'Berhasil mengirim pemberitahuan tanda terima telah terbaca';\r
-$messages['errorsendingreceipt'] = 'Tidak dapat mengirim tanda terima';\r
-$messages['nodeletelastidentity'] = 'Anda tidak bida mengapus identitas ini, ini identitas yang terakhir';\r
-$messages['addsubfolderhint'] = 'Folder ini akan dibuat sebagai subfolder pada folder yang terpilih';\r
-\r
-?>\r
+<?php
+
+/*
+
++-----------------------------------------------------------------------+
+| language/id_ID/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Putu Arya Sabda Wijaya <klunxer@gmail.com> |
++-----------------------------------------------------------------------+
+
+@version $Id$
+
+*/
+
+$messages = array();
+$messages['loginfailed'] = 'Gagal masuk';
+$messages['cookiesdisabled'] = 'Browser Anda tidak menerima cookies';
+$messages['sessionerror'] = 'Session Anda invalid atau kadaluwarsa';
+$messages['imaperror'] = 'Koneksi ke IMAP server gagal';
+$messages['nomessagesfound'] = 'Surat tidak ditemukan di kotak masuk ini';
+$messages['loggedout'] = 'Anda berhasil mengakhiri session. Selamat Tinggal!';
+$messages['mailboxempty'] = 'Kotak masuk kosong';
+$messages['loading'] = 'Loading...';
+$messages['loadingdata'] = 'Loading data...';
+$messages['checkingmail'] = 'Memeriksa pesan baru...';
+$messages['sendingmessage'] = 'Mengirim pesan...';
+$messages['messagesent'] = 'Pesan terkirim';
+$messages['savingmessage'] = 'Menyimpan pesan...';
+$messages['messagesaved'] = 'MMenyimpan pesan ke daftar tunggu';
+$messages['successfullysaved'] = 'Berhasil disimpan';
+$messages['addedsuccessfully'] = 'Kontak berhasil ditambahkan ke buku alamat';
+$messages['contactexists'] = 'Konatk dengan alamat e-mail ini sudah ada';
+$messages['blockedimages'] = 'Untuk melindungi privasi Anda, gambar-gambar diluar server diblok pada pesan ini.';
+$messages['encryptedmessage'] = 'Pesan ini terenkripsi dan tidak bisa ditampilkan. Maaf!';
+$messages['nocontactsfound'] = 'Kontak tidak ditemukan';
+$messages['contactnotfound'] = 'Kontak yang diminta tidak ditemukan';
+$messages['sendingfailed'] = 'Pengiriman pesan gagal';
+$messages['errorsavingsent'] = 'Error ketika menyimpan pesan terkirim';
+$messages['errorsaving'] = 'Error ketika menyimpan';
+$messages['errormoving'] = 'Pesan tidak bisa dipindahkan';
+$messages['errordeleting'] = 'Pesan tidak bisa dihapus';
+$messages['deletecontactconfirm'] = 'Apakah anda yakin untuk menghapus kontak terpilih?';
+$messages['deletemessagesconfirm'] = 'Yakin menghapus pesan terpilih?';
+$messages['deletefolderconfirm'] = 'Apakah anda benar-benar ingin menghapus map ini?';
+$messages['purgefolderconfirm'] = 'Yakin menghapus semua pesan pada map ini?';
+$messages['formincomplete'] = 'Blangko tidak terisi semua';
+$messages['noemailwarning'] = 'Tolong masukkan alamat email yang valid';
+$messages['nonamewarning'] = 'Tolong masukkan nama';
+$messages['nopagesizewarning'] = 'Tolong masukkan ukuran halaman';
+$messages['norecipientwarning'] = 'Tolong masukkan sedikitnya satu penerima';
+$messages['nosubjectwarning'] = '"Judul" kosong. Isi judul sekarang?';
+$messages['nobodywarning'] = 'Kirim pesan ini tanpa teks?';
+$messages['notsentwarning'] = 'Pesan belum terkirim. Buang pesan Anda?';
+$messages['noldapserver'] = 'Tolong pilih server LDAP untuk pencarian';
+$messages['nocontactsreturned'] = 'Kontak kosong';
+$messages['nosearchname'] = 'Tolong masukkan nama kontak atau alamat email';
+$messages['searchsuccessful'] = '$nr pesan ditemukan';
+$messages['searchnomatch'] = 'Pencarian kosong';
+$messages['searching'] = 'Mencari...';
+$messages['checking'] = 'Memeriksa...';
+$messages['nospellerrors'] = 'Tidak ditemkan kesalahan ejaan';
+$messages['folderdeleted'] = 'Map berhasil dihapus';
+$messages['deletedsuccessfully'] = 'Berhasil dihapus';
+$messages['converting'] = 'Mengembalikan pesan ke format awal...';
+$messages['messageopenerror'] = 'Tidak dapat mengambil pesan dari server';
+$messages['fileuploaderror'] = 'Gagal mengunggah berkas';
+$messages['filesizeerror'] = 'Berkas terunggah mencapai ukuran maksimal dari $size';
+$messages['copysuccess'] = 'Berhasil menyalin $nr alamat';
+$messages['copyerror'] = 'Tidak bisa menyalin alamat manapun';
+$messages['sourceisreadonly'] = 'Sumber dari alamat ini hanya dapat dibaca';
+$messages['errorsavingcontact'] = 'Tidak bisa menyimpan alamat kontak';
+$messages['movingmessage'] = 'Memindahkan pesan...';
+$messages['receiptsent'] = 'Berhasil mengirim pemberitahuan tanda terima telah terbaca';
+$messages['errorsendingreceipt'] = 'Tidak dapat mengirim tanda terima';
+$messages['nodeletelastidentity'] = 'Anda tidak bida mengapus identitas ini, ini identitas yang terakhir';
+$messages['addsubfolderhint'] = 'Folder ini akan dibuat sebagai subfolder pada folder yang terpilih';
+$messages['forbiddencharacter'] = 'Nama folder mengandung karakter terlarang';
+
+?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: index.inc 1491 2008-06-07 19:31:56Z alec $
+ $Id: index.inc 2039 2008-11-04 20:10:28Z alec $
*/
'sq_AL' => 'Albanian',
'ar_SA' => 'Arabic',
'hy_AM' => 'Armenian',
+ 'az_AZ' => 'Azerbaijani',
'bs_BA' => 'Bosnian (Serbian Latin)',
'bg_BG' => 'Bulgarian',
'ca_ES' => 'Català',
+ 'cy_GB' => 'Cymraeg',
'zh_CN' => 'Chinese (Simplified)',
'zh_TW' => 'Chinese (Traditional)',
'hr_HR' => 'Croatian (Hrvatski)',
'pt_BR' => 'Portuguese (Brazilian)',
'pt_PT' => 'Portuguese (Standard)',
'ro_RO' => 'Romanian',
- 'ru_RU' => 'Russian',
+ 'ru_RU' => 'Русский',
'sr_CS' => 'Serbian (Cyrillic)',
'si_LK' => 'Sinhala',
'sk_SK' => 'Slovak',
'sl_SI' => 'Slovenian',
'sv_SE' => 'Swedish (Svenska)',
'th_TH' => 'Thai',
- 'tr_TR' => 'Turkish',
+ 'tr_TR' => 'Türkçe',
'uk_UA' => 'Ukrainian',
'vi_VN' => 'Vietnamese',
);
$rcube_language_aliases = array(
- 'ar' => 'ar_SA',
'am' => 'hy_AM',
+ 'ar' => 'ar_SA',
+ 'az' => 'az_AZ',
'bg' => 'bg_BG',
'bs' => 'bs_BA',
'ca' => 'ca_ES',
'zh' => 'zh_CN',
);
-
?>
/*
- +-----------------------------------------------------------------------+
- | language/it/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Andrej Mocilnik <amocilnik@dotcom.ts.it> |
- | Yusef Maali <contact@yusefmaali.net> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/it/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Andrej Mocilnik <amocilnik@dotcom.ts.it> |
+| Yusef Maali <contact@yusefmaali.net> |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 1068 2008-02-13 19:24:23Z yllar $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['mailboxlist'] = 'Cartelle';
$labels['messagesfromto'] = 'Messaggi da $from a $to di $count';
$labels['messagenrof'] = 'Messaggio $nr di $count';
-$labels['moveto'] = 'sposta...';
-$labels['download'] = 'download';
+$labels['moveto'] = 'Sposta in...';
+$labels['download'] = 'Download';
$labels['filename'] = 'Nome file';
$labels['filesize'] = 'Dimensione file';
$labels['preferhtml'] = 'Mostra HTML';
$labels['thursday'] = 'Giovedì';
$labels['friday'] = 'Venerdì';
$labels['saturday'] = 'Sabato';
+$labels['jan'] = 'Gen';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'Mag';
+$labels['jun'] = 'Giu';
+$labels['jul'] = 'Lug';
+$labels['aug'] = 'Ago';
+$labels['sep'] = 'Set';
+$labels['oct'] = 'Ott';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dic';
+$labels['longjan'] = 'Gennaio';
+$labels['longfeb'] = 'Febbraio';
+$labels['longmar'] = 'Marzo';
+$labels['longapr'] = 'Aprile';
+$labels['longmay'] = 'Maggio';
+$labels['longjun'] = 'Giugno';
+$labels['longjul'] = 'Luglio';
+$labels['longaug'] = 'Agosto';
+$labels['longsep'] = 'Settembre';
+$labels['longoct'] = 'Ottobre';
+$labels['longnov'] = 'Novembre';
+$labels['longdec'] = 'Dicembre';
$labels['today'] = 'Oggi';
$labels['checkmail'] = 'Controlla nuovi messaggi';
$labels['writenewmessage'] = 'Scrivi un nuovo messaggio';
-$labels['replytomessage'] = 'Rispondi al messaggio';
+$labels['replytomessage'] = 'Rispondi al mittente';
$labels['replytoallmessage'] = 'Rispondi a tutti';
$labels['forwardmessage'] = 'Inoltra il messaggio';
$labels['deletemessage'] = 'Elimina il messaggio';
$labels['markmessages'] = 'Marca i messaggi';
$labels['markread'] = 'Letti';
$labels['markunread'] = 'Non letti';
+$labels['markflagged'] = 'Contrassegnati';
+$labels['markunflagged'] = 'Non contrassegnati';
$labels['select'] = 'Seleziona';
$labels['all'] = 'Tutti';
$labels['none'] = 'Nessuno';
$labels['unlimited'] = 'illimitato';
$labels['quicksearch'] = 'Ricerca veloce';
$labels['resetsearch'] = 'Annulla ricerca';
+$labels['openinextwin'] = 'Apri in una nuova finestra';
$labels['compose'] = 'Scrivi un messaggio';
$labels['savemessage'] = 'Salva come bozza';
$labels['sendmessage'] = 'Invia il messaggio adesso';
$labels['highest'] = 'Molto alta';
$labels['nosubject'] = '(nessun oggetto)';
$labels['showimages'] = 'Visualizza immagini';
+$labels['alwaysshow'] = 'Mostra sempre immagini da $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Testo semplice';
+$labels['savesentmessagein'] = 'Salva messaggi inviati in';
+$labels['dontsave'] = 'non salvare';
+$labels['maxuploadsize'] = 'La dimensione massima consentita è $size';
$labels['addcc'] = 'Aggiungi Cc';
$labels['addbcc'] = 'Aggiungi Bcc';
$labels['addreplyto'] = 'Aggiungi Rispondi a';
-$labels['mdnrequest'] = 'Il mittente richiede di ricevere una notifica dell\'avvenuta lettura del messaggio. Si desidera inviare tale notifica?';
+$labels['mdnrequest'] = 'Il mittente ha richiesto di ricevere una notifica dell\'avvenuta lettura del messaggio. Si desidera inviare tale notifica?';
$labels['receiptread'] = 'Ricevuta di ritorno (letto)';
$labels['yourmessage'] = 'Questa è la ricevuta di ritorno del mesaggio inviato';
$labels['receiptnote'] = 'Nota: questa Ricevuta di ritorno attesta solamente che il messaggio è stato visualizzato nel computer del destinatario. Non c\'è pertanto alcuna garanzia che il destinatario abbia letto o compreso il suo contenuto.';
$labels['contactsfromto'] = 'Contatti da $from a $to di $count';
$labels['print'] = 'Stampa';
$labels['export'] = 'Esporta';
+$labels['exportvcards'] = 'Esporta i contatti in formato vCard';
$labels['previouspage'] = 'Pagina precedente';
$labels['firstpage'] = 'Prima pagina';
$labels['nextpage'] = 'Pagina successiva';
$labels['lastpage'] = 'Ultima pagina';
$labels['groups'] = 'Gruppi';
$labels['personaladrbook'] = 'Rubrica Personale';
+$labels['import'] = 'Importa';
+$labels['importcontacts'] = 'Importa contatti';
+$labels['importfromfile'] = 'Importa da file:';
+$labels['importreplace'] = 'Sostituisci l\'intera rubrica';
+$labels['importtext'] = 'Puoi caricare i contatti da una rubrica esistente.Al momento è supportata l\'importazione dei contatti dal formato vCard.';
+$labels['done'] = 'Fatto';
$labels['settingsfor'] = 'Impostazioni per ';
$labels['preferences'] = 'Preferenze';
$labels['userpreferences'] = 'Preferenze utente';
$labels['newitem'] = 'Nuovo elemento';
$labels['edititem'] = 'Modifica elemento';
$labels['setdefault'] = 'Imposta predefinita';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Lingua';
$labels['timezone'] = 'Fuso orario';
$labels['pagesize'] = 'Righe per pagina';
$labels['htmleditor'] = 'Scrivi i messaggi in HTML';
$labels['htmlsignature'] = 'Firma in HTML';
$labels['previewpane'] = 'Mostra l\'anteprima';
+$labels['skin'] = 'Tema interfaccia';
+$labels['logoutclear'] = 'Svuota il Cestino all\'uscita';
+$labels['logoutcompact'] = 'Compatta la Posta In Arrivo all\'uscita';
+$labels['uisettings'] = 'Interfaccia Utente';
+$labels['serversettings'] = 'Impostazioni Server';
+$labels['mailboxview'] = 'Vista Messaggi';
+$labels['mdnrequests'] = 'Notifiche Lettura';
+$labels['askuser'] = 'chiedi all\'utente';
+$labels['autosend'] = 'invia automaticamente';
+$labels['ignore'] = 'ignora';
+$labels['readwhendeleted'] = 'Segna il messaggio come letto all\'eliminazione';
+$labels['flagfordeletion'] = 'Segna il messaggio per l\'eliminazione invece che eliminare';
+$labels['skipdeleted'] = 'Non mostrare messaggi eliminati';
+$labels['showinlineimages'] = 'Mostra immagini allegate sotto il messaggio';
$labels['autosavedraft'] = 'Salva le bozze automaticamente';
$labels['everynminutes'] = 'ogni $n minuti';
+$labels['keepaliveevery'] = 'ogni $n minuto(i)';
+$labels['keepalive'] = 'Verificare la presenza di nuovi messaggi su';
$labels['never'] = 'mai';
+$labels['messagesdisplaying'] = 'Visualizzazione Messaggi';
+$labels['messagescomposition'] = 'Composizione Messaggi';
+$labels['mimeparamfolding'] = 'Nomi allegati';
+$labels['2231folding'] = 'RFC 2231 completo (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'RFC 2047 completo (altri)';
+$labels['advancedoptions'] = 'Opzioni avanzate';
+$labels['focusonnewmessage'] = 'Finestra del browser sul nuovo messaggio';
$labels['folder'] = 'Cartella';
$labels['folders'] = 'Cartelle';
$labels['foldername'] = 'Nome cartella';
$labels['renamefolder'] = 'Rinomina cartella';
$labels['deletefolder'] = 'Cancella cartella';
$labels['managefolders'] = 'Gestione cartelle';
+$labels['specialfolders'] = 'Cartelle Speciali';
$labels['sortby'] = 'Ordina per';
$labels['sortasc'] = 'Ordinamento crescente';
$labels['sortdesc'] = 'Ordinamento decrescente';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/it/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Andrej Mocilnik <amocilnik@dotcom.ts.it> |
- | Yusef Maali <contact@yusefmaali.net> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/it/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Andrej Mocilnik <amocilnik@dotcom.ts.it> |
+| Yusef Maali <contact@yusefmaali.net> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1068 2008-02-13 19:24:23Z yllar $
+@version $Id: messages.inc 2045 2008-11-11 15:09:24Z yllar $
*/
$messages['imaperror'] = 'Impossibile connettersi al server IMAP';
$messages['nomessagesfound'] = 'Nessun messaggio trovato in questa cartella';
$messages['loggedout'] = 'Sessione chiusa correttamente. Arrivederci!';
-$messages['mailboxempty'] = 'Cartella vuota';
+$messages['mailboxempty'] = 'La cartella è vuota';
$messages['loading'] = 'Caricamento...';
$messages['loadingdata'] = 'Caricamento dati...';
$messages['checkingmail'] = 'Controllo nuovi messaggi...';
$messages['sendingmessage'] = 'Invio messaggio in corso...';
$messages['messagesent'] = 'Messaggio inviato correttamente';
$messages['savingmessage'] = 'Salvataggio messaggio...';
-$messages['messagesaved'] = 'Messaggio salvato nelle bozze';
+$messages['messagesaved'] = 'Messaggio salvato in bozze';
$messages['successfullysaved'] = 'Salvato correttamente';
$messages['addedsuccessfully'] = 'Contatto aggiunto alla rubrica';
$messages['contactexists'] = 'Esiste già un contatto con questo indirizzo e-mail';
$messages['blockedimages'] = 'Per proteggere la tua privacy, le immagini remote di questo messaggio sono state bloccate.';
-$messages['encryptedmessage'] = 'Questo messaggio é cifrato e non può essere visualizzato';
+$messages['encryptedmessage'] = 'Questo messaggio é cifrato e non può essere visualizzato. Spiacenti!';
$messages['nocontactsfound'] = 'Nessun contatto trovato';
$messages['contactnotfound'] = 'Il contatto richiesto non è stato trovato';
$messages['sendingfailed'] = 'Impossibile inviare il messaggio';
+$messages['senttooquickly'] = 'Per favore, attendi $sec secondi prima di inviare questo messaggio';
+$messages['errorsavingsent'] = 'C\'è stato un errore nel salvare il messaggio inviato';
$messages['errorsaving'] = 'Impossibile salvare';
$messages['errormoving'] = 'Impossibile spostare il messaggio';
-$messages['errordeleting'] = 'Impossibile cancellare il messaggio';
-$messages['deletecontactconfirm'] = 'Sei sicuro di voler cancellare i contatti selezionati?';
-$messages['deletemessagesconfirm'] = 'Sei sicuro di voler cancellare i messaggi selezionati?';
-$messages['deletefolderconfirm'] = 'Sei sicuro di voler cancellare la cartella selezionata?';
-$messages['purgefolderconfirm'] = 'Sei sicuro di voler cancellare tutti i messaggi in questa cartella?';
+$messages['errordeleting'] = 'Impossibile eliminare il messaggio';
+$messages['deletecontactconfirm'] = 'Sei sicuro di voler eliminare i contatti selezionati?';
+$messages['deletemessagesconfirm'] = 'Sei sicuro di voler eliminare i messaggi selezionati?';
+$messages['deletefolderconfirm'] = 'Sei sicuro di voler eliminare la cartella selezionata?';
+$messages['purgefolderconfirm'] = 'Sei sicuro di voler eliminare tutti i messaggi in questa cartella?';
+$messages['foldercreating'] = 'Creazione cartella...';
+$messages['folderdeleting'] = 'Eliminazione cartella...';
+$messages['folderrenaming'] = 'Rinominazione cartella...';
+$messages['foldermoving'] = 'Spostamento cartella...';
$messages['formincomplete'] = 'Per favore, compila tutti i campi';
$messages['noemailwarning'] = 'Per favore, immetti un indirizzo e-mail valido';
$messages['nonamewarning'] = 'Per favore, immetti un nome';
$messages['nopagesizewarning'] = 'Per favore, immetti il numero di righe per pagina';
+$messages['nosenderwarning'] = 'Per favore, inserisci l\'indirizzo e-mail del mittente';
$messages['norecipientwarning'] = 'Per favore, immetti almeno un destinatario';
-$messages['nosubjectwarning'] = 'L\'oggetto é vuoto. Vuoi inserirlo adesso?';
+$messages['nosubjectwarning'] = 'L\'oggetto è vuoto. Vuoi inserirlo adesso?';
$messages['nobodywarning'] = 'Inviare il messaggio senza testo?';
-$messages['notsentwarning'] = 'Il messaggio non é stato inviato. Vuoi veramente annullare questo messaggio?';
+$messages['notsentwarning'] = 'Il messaggio non è stato inviato. Vuoi annullare questo messaggio?';
$messages['noldapserver'] = 'Per favore, scegli un server LDAP in cui ricercare';
$messages['nocontactsreturned'] = 'Nessun contatto trovato';
$messages['nosearchname'] = 'Per favore, immetti un nome o un indirizzo e-mail';
$messages['copyerror'] = 'Impossibile copiare gli indirizzi';
$messages['sourceisreadonly'] = 'La rubrica è in sola lettura';
$messages['errorsavingcontact'] = 'Impossibile salvare il contatto';
-$messages['movingmessage'] = 'Sposto il messaggio...';
+$messages['movingmessage'] = 'Spostamento del messaggio...';
$messages['receiptsent'] = 'Ricevuta di ritorno inviata con successo';
$messages['errorsendingreceipt'] = 'Impossibile spedire la ricevuta di ritorno';
$messages['nodeletelastidentity'] = 'Impossibile eliminare l\'unica identità disponibile';
$messages['addsubfolderhint'] = 'La cartella verrà creata come sotto cartella della cartella corrente';
+$messages['forbiddencharacter'] = 'Il nome della cartella contiene un carattere vietato';
+$messages['selectimportfile'] = 'Per favore, seleziona il file da caricare';
+$messages['addresswriterror'] = 'La rubrica selezionata non è scrivibile';
+$messages['importwait'] = 'Importazione in corso, attendere...';
+$messages['importerror'] = 'Importazione fallita! Il file caricato non è un file vCard valido.';
+$messages['importconfirm'] = '<b>Importati con successo $inserted contatti, saltate $skipped voci esistenti</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operazione non consentita!';
+$messages['nofromaddress'] = 'Indirizzo e-mail mancante nell\'identità selezionata';
+$messages['editorwarning'] = 'Passare all\'editor testuale farà perdere tutte le informazioni di formattazione. Sicuro di voler continuare?';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/ja/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Tadashi Jokagi <elf2000@users.sourceforge.net> |
- | Takashi Takamatsu <taka717@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/ja_JP/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Tadashi Jokagi <elf2000@users.sourceforge.net> |
+| Takashi Takamatsu <taka717@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 1335 2008-04-27 15:18:13Z alec $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['mail'] = '電子メール';
$labels['settings'] = '個人設定';
$labels['addressbook'] = 'アドレス帳';
-$labels['inbox'] = '受信箱';
-$labels['drafts'] = '草稿';
-$labels['sent'] = '送信箱';
+$labels['inbox'] = '受信トレイ';
+$labels['drafts'] = '下書き';
+$labels['sent'] = '送信済みアイテム';
$labels['trash'] = 'ごみ箱';
-$labels['junk'] = 'ジャンク';
+$labels['junk'] = '迷惑メール';
$labels['subject'] = '件名';
$labels['from'] = '送信者';
$labels['to'] = '受信者';
$labels['organization'] = '所属';
$labels['reply-to'] = '返信先';
$labels['mailboxlist'] = 'フォルダ一覧';
-$labels['messagesfromto'] = '表示ä¸ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸: $from ~ $to (全: $count 件)';
-$labels['messagenrof'] = 'ç\8f¾å\9c¨ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸:$nr (全: $count 件)';
+$labels['messagesfromto'] = '表示ä¸ã\81®ã\83¡ã\83¼ã\83«: $from ~ $to (全: $count 件)';
+$labels['messagenrof'] = 'ç\8f¾å\9c¨ã\81®ã\83¡ã\83¼ã\83«:$nr (全: $count 件)';
$labels['moveto'] = 'フォルダの移動';
$labels['download'] = 'ダウンロード';
$labels['filename'] = 'ファイル名';
$labels['filesize'] = 'ファイルサイズ';
-$labels['preferhtml'] = 'HTML を表示';
-$labels['htmlmessage'] = 'HTML メッセージ';
+$labels['preferhtml'] = 'HTMLを表示';
+$labels['htmlmessage'] = 'HTMLメール';
$labels['prettydate'] = '簡易な日付表示';
$labels['addtoaddressbook'] = 'アドレス帳に追加';
$labels['sun'] = '日';
$labels['deletemessage'] = '削除';
$labels['movemessagetotrash'] = 'ごみ箱に移動';
$labels['printmessage'] = '印刷';
-$labels['previousmessage'] = 'å\89\8dã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸へ';
+$labels['previousmessage'] = 'å\89\8dã\81®ã\83¡ã\83¼ã\83«へ';
$labels['previousmessages'] = '前の一覧へ';
-$labels['firstmessage'] = 'æ\9c\80å\88\9dã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸へ';
+$labels['firstmessage'] = 'æ\9c\80å\88\9dã\81®ã\83¡ã\83¼ã\83«へ';
$labels['firstmessages'] = '最初の一覧へ';
-$labels['nextmessage'] = '次ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸へ';
+$labels['nextmessage'] = '次ã\81®ã\83¡ã\83¼ã\83«へ';
$labels['nextmessages'] = '次の一覧へ';
-$labels['lastmessage'] = 'æ\9c\80å¾\8cã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸へ';
+$labels['lastmessage'] = 'æ\9c\80å¾\8cã\81®ã\83¡ã\83¼ã\83«へ';
$labels['lastmessages'] = '最後の一覧へ';
$labels['backtolist'] = '一覧に戻る';
$labels['viewsource'] = 'ソースの表示';
$labels['markmessages'] = 'マークを付ける';
$labels['markread'] = '既読にする';
$labels['markunread'] = '未読にする';
+$labels['markflagged'] = 'フラグを付ける';
+$labels['markunflagged'] = 'フラグを外す';
$labels['select'] = '選択';
$labels['all'] = 'すべて';
$labels['none'] = 'なし';
$labels['unread'] = '未読';
+$labels['flagged'] = 'フラグあり';
+$labels['unanswered'] = '未返信';
$labels['compact'] = 'コンパクト';
$labels['empty'] = '空';
$labels['purge'] = '破棄';
$labels['quota'] = 'ディスク使用量';
$labels['unknown'] = '不明';
$labels['unlimited'] = '無制限';
-$labels['quicksearch'] = 'Quick search';
-$labels['resetsearch'] = 'Reset search';
-$labels['compose'] = 'メッセージの作成';
-$labels['savemessage'] = '草稿に保存';
+$labels['quicksearch'] = '検索';
+$labels['resetsearch'] = '検索の解除';
+$labels['openinextwin'] = '新しいウィンドウで開く';
+$labels['compose'] = 'メールの作成';
+$labels['savemessage'] = '下書きに保存';
$labels['sendmessage'] = '今すぐ送信';
$labels['addattachment'] = 'ファイルの添付';
$labels['charset'] = '文字エンコード';
$labels['editortype'] = 'エディターの種類';
$labels['returnreceipt'] = '開封確認';
$labels['checkspelling'] = 'スペルチェック';
-$labels['resumeediting'] = '編集の中断';
+$labels['resumeediting'] = 'メール作成に戻る';
$labels['revertto'] = '元に戻す';
$labels['attachments'] = '添付ファイル';
$labels['upload'] = 'アップロード';
$labels['highest'] = '最高';
$labels['nosubject'] = '(件名なし)';
$labels['showimages'] = '画像の表示';
+$labels['alwaysshow'] = '$sender の画像は常に表示する';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'テキスト';
+$labels['savesentmessagein'] = '送信済みメールの保存先';
+$labels['dontsave'] = '保存しない';
+$labels['maxuploadsize'] = '添付可能ファイルサイズ : $size';
$labels['addcc'] = 'Cc 追加';
$labels['addbcc'] = 'Bcc 追加';
$labels['addreplyto'] = 'Reply-To 追加';
-$labels['mdnrequest'] = 'ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81®é\80\81ä¿¡è\80\85ã\81¯é\96\8bå°\81確èª\8dã\81®é\80\81ä»\98ã\82\92æ±\82ã\82\81ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82é\96\8bå°\81確èª\8dã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸を送付しますか?';
+$labels['mdnrequest'] = 'ã\83¡ã\83¼ã\83«ã\81®é\80\81ä¿¡è\80\85ã\81¯é\96\8bå°\81確èª\8dã\81®é\80\81ä»\98ã\82\92æ±\82ã\82\81ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82é\96\8bå°\81確èª\8dã\81®ã\83¡ã\83¼ã\83«を送付しますか?';
$labels['receiptread'] = '開封確認 (表示済)';
-$labels['yourmessage'] = 'ã\81\93ã\82\8cã\81¯ã\81\82ã\81ªã\81\9fã\81\8cé\80\81ä¿¡ã\81\97ã\81\9fã\83¡ã\83\83ã\82»ã\83¼ã\82¸に対する開封確認です。';
-$labels['receiptnote'] = '注æ\84\8f: ã\81\93ã\81®é\96\8bå°\81確èª\8dã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81\8cå\8f\97ä¿¡è\80\85ã\81«è¡¨ç¤ºã\81\95ã\82\8cã\81\9fã\81\93ã\81¨ã\81®é\80\9aç\9f¥ã\81§ã\81\99ã\80\82å\8f\97ä¿¡è\80\85ã\81\8cã\83¡ã\83\83ã\82»ã\83¼ã\82¸を読んだこと、内容を理解したことを保証するものではありません。';
+$labels['yourmessage'] = 'ã\81\93ã\82\8cã\81¯ã\81\82ã\81ªã\81\9fã\81\8cé\80\81ä¿¡ã\81\97ã\81\9fã\83¡ã\83¼ã\83«に対する開封確認です。';
+$labels['receiptnote'] = '注æ\84\8f: ã\81\93ã\81®é\96\8bå°\81確èª\8dã\81¯ã\83¡ã\83¼ã\83«ã\81\8cå\8f\97ä¿¡è\80\85ã\81«è¡¨ç¤ºã\81\95ã\82\8cã\81\9fã\81\93ã\81¨ã\81®é\80\9aç\9f¥ã\81§ã\81\99ã\80\82å\8f\97ä¿¡è\80\85ã\81\8cã\83¡ã\83¼ã\83«を読んだこと、内容を理解したことを保証するものではありません。';
$labels['name'] = '表示名';
$labels['firstname'] = '名前';
$labels['surname'] = '名字';
$labels['contactsfromto'] = '連絡先: $from ~ $to (全: $count 件)';
$labels['print'] = '印刷';
$labels['export'] = 'エクスポート';
+$labels['exportvcards'] = 'vCard形式でエクスポート';
$labels['previouspage'] = '前の一覧へ';
$labels['firstpage'] = '最初の一覧へ';
$labels['nextpage'] = '次の一覧へ';
$labels['lastpage'] = '最後の一覧へ';
$labels['groups'] = 'グループ';
$labels['personaladrbook'] = '個人アドレス';
+$labels['import'] = 'インポート';
+$labels['importcontacts'] = '連絡先のインポート';
+$labels['importfromfile'] = 'インポートするファイル:';
+$labels['importreplace'] = '現在のアドレス帳と置き換える';
+$labels['importtext'] = '既存のアドレス帳の連絡先をアップロードできます。現在、vCard 形式からのインポートに対応しています。';
+$labels['done'] = '完了';
$labels['settingsfor'] = '次の設定:';
$labels['preferences'] = '設定';
$labels['userpreferences'] = 'ユーザー設定';
$labels['newitem'] = '新しい項目';
$labels['edititem'] = '項目の編集';
$labels['setdefault'] = '標準の設定';
+$labels['autodetect'] = '自動識別';
$labels['language'] = '言語';
$labels['timezone'] = 'タイムゾーン';
$labels['pagesize'] = 'ページ単位の表示件数';
$labels['signature'] = '署名';
$labels['dstactive'] = '夏時間の適用';
-$labels['htmleditor'] = 'ã\83¡ã\83\83ã\82»ã\83¼ã\82¸作成はHTMLが標準';
+$labels['htmleditor'] = 'ã\83¡ã\83¼ã\83«作成はHTMLが標準';
$labels['htmlsignature'] = 'HTML の署名';
$labels['previewpane'] = 'プレビューペインの表示';
$labels['logoutclear'] = 'ログアウト時にごみ箱を空にする';
$labels['logoutcompact'] = 'ログアウト時にフォルダのコンパクト化を実行';
$labels['uisettings'] = 'ユーザーインターフェース';
$labels['serversettings'] = 'サーバの設定';
-$labels['autosavedraft'] = '自動的に草稿を保存';
+$labels['mailboxview'] = '受信箱';
+$labels['mdnrequests'] = '送信者への通知';
+$labels['askuser'] = 'ユーザーに確認する';
+$labels['autosend'] = '自動的に送信する';
+$labels['ignore'] = '無視する';
+$labels['readwhendeleted'] = '削除したメールを既読にする';
+$labels['flagfordeletion'] = '実際に削除せずに削除済みフラグを付ける';
+$labels['skipdeleted'] = '削除済みメールを表示しない';
+$labels['showinlineimages'] = 'メールに添付された画像を表示する';
+$labels['autosavedraft'] = '自動的に下書きを保存';
$labels['everynminutes'] = ' $n 分毎';
+$labels['keepaliveevery'] = '$n 分毎';
+$labels['keepalive'] = '新着メールの確認間隔';
$labels['never'] = 'しない';
+$labels['messagesdisplaying'] = 'メールの表示';
+$labels['messagescomposition'] = 'メールの作成';
+$labels['mimeparamfolding'] = '添付ファイル名';
+$labels['2231folding'] = 'RFC 2231 準拠 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'RFC 2047 準拠 (other)';
+$labels['advancedoptions'] = '高度な設定';
+$labels['focusonnewmessage'] = '新しいメールが届いたらブラウザにフォーカスを移す';
$labels['folder'] = 'フォルダ';
$labels['folders'] = 'フォルダ一覧';
$labels['foldername'] = 'フォルダ名';
$labels['subscribed'] = '購読済';
-$labels['messagecount'] = 'ã\83¡ã\83\83ã\82»ã\83¼ã\82¸';
+$labels['messagecount'] = 'ã\83¡ã\83¼ã\83«';
$labels['create'] = '作成';
$labels['createfolder'] = 'フォルダの新規作成';
$labels['rename'] = '名前の変更';
$labels['renamefolder'] = 'フォルダ名の変更';
$labels['deletefolder'] = 'フォルダの削除';
$labels['managefolders'] = 'フォルダの管理';
+$labels['specialfolders'] = '特殊なフォルダ';
$labels['sortby'] = '整列の基準にする';
$labels['sortasc'] = '昇順で整列';
$labels['sortdesc'] = '降順で整列';
/*
- +-----------------------------------------------------------------------+
- | language/ja/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Tadashi Jokagi <elf2000@users.sourceforge.net> |
- | Takashi Takamatsu <taka717@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/ja_JP/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Tadashi Jokagi <elf2000@users.sourceforge.net> |
+| Takashi Takamatsu <taka717@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1335 2008-04-27 15:18:13Z alec $
+@version $Id: messages.inc 2093 2008-11-27 11:12:38Z alec $
*/
$messages['nocontactsfound'] = '連絡先がありません。';
$messages['contactnotfound'] = '要求された連絡先が見つかりません。';
$messages['sendingfailed'] = 'メールの送信に失敗しました。';
+$messages['senttooquickly'] = 'このメールを送信する前に、$sec お待ちください。';
+$messages['errorsavingsent'] = '送信メールの保存中にエラーが発生しました。';
$messages['errorsaving'] = '保存中にエラーが発生しました。';
$messages['errormoving'] = 'メールを移動できません。';
$messages['errordeleting'] = 'メールを削除できません。';
$messages['deletemessagesconfirm'] = '選択したメールを本当に削除しますか?';
$messages['deletefolderconfirm'] = 'このフォルダを本当に削除しますか?';
$messages['purgefolderconfirm'] = 'このフォルダの全てのメールを本当に削除しますか?';
+$messages['foldercreating'] = 'フォルダの作成中です...';
+$messages['folderdeleting'] = 'フォルダの削除中です...';
+$messages['folderrenaming'] = 'フォルダ名の変更中です...';
+$messages['foldermoving'] = 'フォルダの移動中です...';
$messages['formincomplete'] = 'フォームの項目が完全に入力されていません。';
$messages['noemailwarning'] = '有効なメールアドレスを入力して下さい。';
$messages['nonamewarning'] = '名前を入力して下さい。';
$messages['nopagesizewarning'] = 'ページのサイズを入力して下さい。';
+$messages['nosenderwarning'] = '送信者のメールアドレスを入力してください。';
$messages['norecipientwarning'] = '受信者を最低 1 人は入力して下さい。';
$messages['nosubjectwarning'] = '件名が空です。今すぐ入力しますか?';
$messages['nobodywarning'] = '本文が無いメールを送信しますか?';
$messages['errorsendingreceipt'] = '開封確認を送信できません。';
$messages['nodeletelastidentity'] = '削除できません。少なくとも1つの個人情報が必要です。';
$messages['addsubfolderhint'] = '現在選択しているフォルダのサブフォルダとして作成されます。';
+$messages['forbiddencharacter'] = 'フォルダ名に利用できない文字が含まれています。';
+$messages['selectimportfile'] = 'アップロードするファイルを選択してください。';
+$messages['addresswriterror'] = '選択したアドレス帳に書き込めません。';
+$messages['importwait'] = 'インポート中です。しばらくお待ちください...';
+$messages['importerror'] = 'インポートに失敗しました。アップロードしたファイルは正しくない vCard ファイルです。';
+$messages['importconfirm'] = '<b>$inserted 件の連絡先のインポートに成功ました。<br />$skipped 件の登録済み連絡先をスキップしました。</b><p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'その操作は許可されていません。';
+$messages['nofromaddress'] = '選択中の個人情報のメールアドレスが失われました';
+$messages['editorwarning'] = 'テキストエディタに切替えるとすべての装飾が失われます。切替えてもよろしいですか?';
?>
/*
+-----------------------------------------------------------------------+
-| language/lt/labels.inc |
+| language/lt_LT/labels.inc |
| |
| Language file of the RoundCube Webmail client |
| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| Author: Martynas Bendorius <martynas@evanet.lt> |
+-----------------------------------------------------------------------+'
-@version $Id: labels.inc 1445 2008-05-28 09:42:08Z yllar $
+@version $Id: labels.inc 2184 2008-12-21 09:30:25Z yllar $
*/
$labels['markmessages'] = 'Pažymėti laiškus';
$labels['markread'] = 'Kaip perskaitytus';
$labels['markunread'] = 'Kaip neperskaitytus';
+$labels['markflagged'] = 'Kaip pažymėtą';
+$labels['markunflagged'] = 'Kaip nepažymėtą';
$labels['select'] = 'Pažymėti';
$labels['all'] = 'Visus';
$labels['none'] = 'Nieko';
$labels['unread'] = 'Neskaitytas';
+$labels['flagged'] = 'Pažymėtas';
+$labels['unanswered'] = 'Neatsakytas';
+$labels['filter'] = 'Filtruoti';
$labels['compact'] = 'Suspausti';
$labels['empty'] = 'Ištuštinti';
$labels['purge'] = 'Išvalyti';
$labels['unlimited'] = 'neribotas';
$labels['quicksearch'] = 'Greita paieška';
$labels['resetsearch'] = 'Atšaukti paiešką';
+$labels['openinextwin'] = 'Atidaryti naujame lange';
$labels['compose'] = 'Rašyti nauja laiška';
$labels['savemessage'] = 'Išsaugoti šį juodraštį';
$labels['sendmessage'] = 'Išsiųsti laiską';
$labels['highest'] = 'Aukščiausias';
$labels['nosubject'] = '(nėra temos)';
$labels['showimages'] = 'Rodyti paveikslėlius';
+$labels['alwaysshow'] = 'Visada rodyti paveikslėlius gautus iš $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Paprastas tekstas';
+$labels['savesentmessagein'] = 'Išsaugoti išsiųstus laiškus į';
+$labels['dontsave'] = 'neišsaugoti';
+$labels['maxuploadsize'] = 'Maksimalus leistinas bylos dydis yra $size';
$labels['addcc'] = 'Pridėti Cc';
$labels['addbcc'] = 'Pridėti Bcc';
$labels['addreplyto'] = 'Pridėti Reply-To';
$labels['contactsfromto'] = 'Kontaktai nuo $from iki $to iš $count';
$labels['print'] = 'Atspausdinti';
$labels['export'] = 'Eksportuoti';
+$labels['exportvcards'] = 'Eksportuoti kontaktus vCard formatu';
$labels['previouspage'] = 'Rodyti ankstesnį puslapį';
$labels['firstpage'] = 'Rodyti pirmąjį puslapį';
$labels['nextpage'] = 'Rodyti tolesnį puslapį';
$labels['lastpage'] = 'Rodyti paskutinį puslapį';
$labels['groups'] = 'Grupės';
$labels['personaladrbook'] = 'Asmeniniai adresai';
+$labels['import'] = 'Importuoti';
+$labels['importcontacts'] = 'Importuoti kontaktus';
+$labels['importfromfile'] = 'Importuoti iš bylos:';
+$labels['importreplace'] = 'Pakeisti visą adresų knygą';
+$labels['importtext'] = 'Jūs galite įkelti kontaktus iš egzistuojančios adresų knygos.Mes šiuo metu palaikome adresų importavimą vCard duomenų formatu. ';
+$labels['done'] = 'Baigta';
$labels['settingsfor'] = 'Nustatymai';
$labels['preferences'] = 'Nustatymai';
$labels['userpreferences'] = 'Vartotojo nustatymai';
$labels['newitem'] = 'Naujas įrašas';
$labels['edititem'] = 'Redaguoti įrašą';
$labels['setdefault'] = 'Nustatyti pagrindiniu';
+$labels['autodetect'] = 'Automatiškai';
$labels['language'] = 'Kalba';
$labels['timezone'] = 'Laiko juosta';
$labels['pagesize'] = 'Eilučių skaičius puslapyje';
$labels['htmleditor'] = 'Kurti HTML laiškus';
$labels['htmlsignature'] = 'HTML parašas';
$labels['previewpane'] = 'Rodyti peržiūros lauką';
+$labels['skin'] = 'Aplinkos stilius';
$labels['logoutclear'] = 'Išvalyti šiukšliadėžę atsijungiant';
$labels['logoutcompact'] = 'Suspausti Gautus atsijungiant';
$labels['uisettings'] = 'Vartotojo Aplinka';
$labels['ignore'] = 'ignoruoti';
$labels['readwhendeleted'] = 'Pažymėti laišką kaip perskaitytu trinant';
$labels['flagfordeletion'] = 'Pažymėti laišką trynimui vietoje ištrynimo';
+$labels['skipdeleted'] = 'Nerodyti ištrintų laiškų';
+$labels['showremoteimages'] = 'Rodyti paveikslėlius';
+$labels['fromknownsenders'] = 'iš žinomų siuntėjų';
+$labels['always'] = 'visada';
+$labels['showinlineimages'] = 'Rodyti prisegtus paveikslėlius žemiau laiško';
$labels['autosavedraft'] = 'Automatiškai išsaugoti juodraščius';
-$labels['everynminutes'] = 'kas $n minutes(-ių)';
+$labels['everynminutes'] = 'kas $n minutes(-čių)';
+$labels['keepaliveevery'] = 'kas $n minutę(-čių)';
+$labels['keepalive'] = 'Tikrinti ar nėra naujų pranešimus';
$labels['never'] = 'niekada';
+$labels['messagesdisplaying'] = 'Laiškų rodymas';
+$labels['messagescomposition'] = 'Laiškų struktūra';
+$labels['mimeparamfolding'] = 'Prisegtų bylų vardai';
+$labels['2231folding'] = 'Pilnas RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Pilnas RFC 2047 (kita)';
+$labels['advancedoptions'] = 'Papildomi nustatymai';
+$labels['focusonnewmessage'] = 'Fokusuoti naršyklės langą gavus naują laišką';
+$labels['checkallfolders'] = 'Tikrinti ar nėra naujų laiškų visuose aplankuose';
$labels['folder'] = 'Aplankas';
$labels['folders'] = 'Aplankai';
$labels['foldername'] = 'Aplanko vardas';
$labels['renamefolder'] = 'Pervadinti aplanką';
$labels['deletefolder'] = 'Ištrinti aplanką';
$labels['managefolders'] = 'Tvarkyti aplankus';
+$labels['specialfolders'] = 'Specialūs aplankai';
$labels['sortby'] = 'Rikiuoti pagal';
$labels['sortasc'] = 'Rikiuoti didėjančia tvarka';
$labels['sortdesc'] = 'Rikiuoti mažėjančia tvarka';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
?>
/*
- +-----------------------------------------------------------------------+
- | language/lt/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Martynas Bendorius <martynas@evanet.lt> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/lt_LT/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Martynas Bendorius <martynas@evanet.lt> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1128 2008-02-21 07:43:23Z yllar $
+@version $Id: messages.inc 2184 2008-12-21 09:30:25Z yllar $
*/
$messages['nocontactsfound'] = 'Kontaktų nerasta';
$messages['contactnotfound'] = 'Reikalautas kontaktas nerastas';
$messages['sendingfailed'] = 'Laiško išsiųsti nepavyko';
+$messages['senttooquickly'] = 'Jūs turite palaukti $sec sek., kad galėtumėte išsiųsti laišką';
+$messages['errorsavingsent'] = 'Išsaugant išsiųstą laišką įvyko klaida';
$messages['errorsaving'] = 'Išsaugant įvyko klaida';
$messages['errormoving'] = 'Laiško perkelti nepavyko';
$messages['errordeleting'] = 'Laiško ištrinti nepavyko';
$messages['deletemessagesconfirm'] = 'Ar jūs tikrai norite ištrinti pasirinktą(-us) žinutę(-es)?';
$messages['deletefolderconfirm'] = 'Ar jūs tikrai norite ištrinti šį aplanką?';
$messages['purgefolderconfirm'] = 'Ar jūs tikrai norite ištrinti visus laiškus, esančius šiame aplanke?';
+$messages['foldercreating'] = 'Aplankas kuriamas...';
+$messages['folderdeleting'] = 'Aplankas pašalinamas...';
+$messages['folderrenaming'] = 'Aplankas pervardinamas...';
+$messages['foldermoving'] = 'Aplankas perkeliamas...';
$messages['formincomplete'] = 'Šios formos laukai yra nepilnai užpildyti';
$messages['noemailwarning'] = 'Prašome įvesti teisingą el. pašto adresą';
$messages['nonamewarning'] = 'Prašome įvesti vardą';
$messages['nopagesizewarning'] = 'Prašome įvesti puslapio dydį';
+$messages['nosenderwarning'] = 'Prašome įvesti siuntėjo el. pašto adresą';
$messages['norecipientwarning'] = 'Prašome įvesti bent vieną gavėją';
$messages['nosubjectwarning'] = 'Temos laukelis tuščias. Ar norite temą įvesti dabar?';
$messages['nobodywarning'] = 'Išsiųsti šį laišką be teksto?';
$messages['errorsendingreceipt'] = 'Nepavyko išsiųsti laiško perskaitymo patvirtinimo';
$messages['nodeletelastidentity'] = 'Jūs negalite ištrinti šios tapatybės, kadangi ji yra vienintelė likusi.';
$messages['addsubfolderhint'] = 'Šis aplankas bus sukurtas kaip poaplankis, kurį esate pažymėjęs';
+$messages['forbiddencharacter'] = 'Aplanko pavadinimas turi neleistinų simbolių';
+$messages['selectimportfile'] = 'Prašome pasirinkti bylą įkėlimui';
+$messages['addresswriterror'] = 'Pasirinkta adresų knyga nėra įrašoma';
+$messages['importwait'] = 'Importuojama, prašome palaukti...';
+$messages['importerror'] = 'Importavimas nepavyko! Įkelta byla nėra vCard formato.';
+$messages['importconfirm'] = '<b>Sėkmingai importuoti $inserted kontaktai, $skipped egzistuojančių įrašų praleista</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operacija neleistina!';
+$messages['nofromaddress'] = 'Nerastas el. pašto adresas pasirinktoje tapatybėje';
+$messages['editorwarning'] = 'Pereinant tik į teksto redagavimą visas formatavimas bus prarastas. Ar tikrai norite vykdyti užklausą?';
?>
-<?php\r
-\r
-/*\r
- +-----------------------------------------------------------------------+\r
- | language/mk/labels.inc |\r
- | |\r
- | Language file of the RoundCube Webmail client |\r
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |\r
- | Licensed under the GNU GPL |\r
- | |\r
- +-----------------------------------------------------------------------+\r
- | Author: Ivan Mishev - mishevivan@gmail.com |\r
- +-----------------------------------------------------------------------+\r
-\r
- @version $Id$\r
-\r
-*/\r
-\r
-$labels = array();\r
-$labels['welcome'] = 'Добредојдовте во $product';\r
-$labels['username'] = 'Корисничко Име';\r
-$labels['password'] = 'Лозинка';\r
-$labels['server'] = 'Сервер';\r
-$labels['login'] = 'Логирај Се';\r
-$labels['logout'] = 'Одлогирај Се';\r
-$labels['mail'] = 'Е-Маил';\r
-$labels['settings'] = 'Подесувања';\r
-$labels['addressbook'] = 'Именик';\r
-$labels['inbox'] = 'Пошта';\r
-$labels['drafts'] = 'Непратени';\r
-$labels['sent'] = 'Пратени';\r
-$labels['trash'] = 'Корпа';\r
-$labels['junk'] = 'Ѓубре';\r
-$labels['subject'] = 'Наслов';\r
-$labels['from'] = 'Праќач';\r
-$labels['to'] = 'Примач';\r
-$labels['cc'] = 'Копирај';\r
-$labels['bcc'] = 'Bcc';\r
-$labels['replyto'] = 'Препрати на';\r
-$labels['date'] = 'Дата';\r
-$labels['size'] = 'Големина';\r
-$labels['priority'] = 'Приоритет';\r
-$labels['organization'] = 'Организација';\r
-$labels['reply-to'] = 'Препрати на';\r
-$labels['mailboxlist'] = 'Папки';\r
-$labels['messagesfromto'] = '$count пораки од $from';\r
-$labels['messagenrof'] = '$nr порака од $count';\r
-$labels['moveto'] = 'Премести во...';\r
-$labels['download'] = 'сними';\r
-$labels['filename'] = 'Име на датотеката';\r
-$labels['filesize'] = 'Големина на датотеката';\r
-$labels['preferhtml'] = 'Прикажи во HTML';\r
-$labels['htmlmessage'] = 'HTML Порака';\r
-$labels['prettydate'] = 'Убави дати';\r
-$labels['addtoaddressbook'] = 'Додади во именик';\r
-$labels['sun'] = 'Нед';\r
-$labels['mon'] = 'Пон';\r
-$labels['tue'] = 'Вто';\r
-$labels['wed'] = 'Сре';\r
-$labels['thu'] = 'Чет';\r
-$labels['fri'] = 'Пет';\r
-$labels['sat'] = 'Саб';\r
-$labels['sunday'] = 'Недела';\r
-$labels['monday'] = 'Понеделник';\r
-$labels['tuesday'] = 'Вторник';\r
-$labels['wednesday'] = 'Среда';\r
-$labels['thursday'] = 'Четврток';\r
-$labels['friday'] = 'Петок';\r
-$labels['saturday'] = 'Сабота';\r
-$labels['today'] = 'Денес';\r
-$labels['checkmail'] = 'Провери пошта';\r
-$labels['writenewmessage'] = 'Нова порака';\r
-$labels['replytomessage'] = 'Одговори на пораката';\r
-$labels['replytoallmessage'] = 'Одговори на сите';\r
-$labels['forwardmessage'] = 'Препрати ја пораката';\r
-$labels['deletemessage'] = 'Премести ја пораката во Корпа';\r
-$labels['movemessagetotrash'] = 'Премести ги пораките во Канта';\r
-$labels['printmessage'] = 'За печатење';\r
-$labels['previousmessage'] = 'Прикажи ја претходната порака';\r
-$labels['previousmessages'] = 'Прикажи ги претходните пораки';\r
-$labels['firstmessage'] = 'Прикажи ја првата порака';\r
-$labels['firstmessages'] = 'Прикажи ги првите пораки';\r
-$labels['nextmessage'] = 'Прикажи ја наредната порака';\r
-$labels['nextmessages'] = 'Прикажи ги следните пораки';\r
-$labels['lastmessage'] = 'Прикажи ја последната порака';\r
-$labels['lastmessages'] = 'Прикажи ги последните пораки';\r
-$labels['backtolist'] = 'Врати се во поштенското сандаче';\r
-$labels['viewsource'] = 'Покажи го изворот на пракање';\r
-$labels['markmessages'] = 'Обележи ги пораките';\r
-$labels['markread'] = 'Како прочитани';\r
-$labels['markunread'] = 'Како непрочитани';\r
-$labels['select'] = 'Одбележи';\r
-$labels['all'] = 'Сите';\r
-$labels['none'] = 'Никоја';\r
-$labels['unread'] = 'Непрочитани';\r
-$labels['compact'] = 'Уредно';\r
-$labels['empty'] = 'Испразни';\r
-$labels['purge'] = 'Чистење';\r
-$labels['quota'] = 'Искористен простор';\r
-$labels['unknown'] = 'непознато';\r
-$labels['unlimited'] = 'неограничено';\r
-$labels['quicksearch'] = 'Брзо претражување';\r
-$labels['resetsearch'] = 'Ново претражување';\r
-$labels['compose'] = 'Нова порака';\r
-$labels['savemessage'] = 'Снимај ја пораката во Непратени';\r
-$labels['sendmessage'] = 'Прати ја пораката';\r
-$labels['addattachment'] = 'Прикачи фајл';\r
-$labels['charset'] = 'Charset';\r
-$labels['editortype'] = 'Тип на едитор';\r
-$labels['returnreceipt'] = 'Врати ';\r
-$labels['checkspelling'] = 'Провери спелување';\r
-$labels['resumeediting'] = 'Продолжи со уредување';\r
-$labels['revertto'] = 'Обрати се на';\r
-$labels['attachments'] = 'Прикачено';\r
-$labels['upload'] = 'Прикачи';\r
-$labels['close'] = 'Затвори';\r
-$labels['low'] = 'Низок';\r
-$labels['lowest'] = 'Најнизок';\r
-$labels['normal'] = 'Нормален';\r
-$labels['high'] = 'Висок';\r
-$labels['highest'] = 'Највисок';\r
-$labels['nosubject'] = '(нема тема)';\r
-$labels['showimages'] = 'Прикажи ги сликите';\r
-$labels['htmltoggle'] = 'HTML';\r
-$labels['plaintoggle'] = 'Обичен текст';\r
-$labels['addcc'] = 'Додај Cc';\r
-$labels['addbcc'] = 'Додај Bcc';\r
-$labels['addreplyto'] = 'Додај Одговори-На';\r
-$labels['mdnrequest'] = 'Праќачот на оваа порака сака да добие известување кога ќе ја прочитате пораката. Дали сакате да го известите?';\r
-$labels['receiptread'] = 'Извести (читај)';\r
-$labels['yourmessage'] = 'Ова е известување за вашата порака';\r
-$labels['receiptnote'] = 'Забелешка: Ова известување само потврдува дека пораката која сте ја пратиле е отворена. Не е гаранција дека примачот ја прочитал или ја разбрал истата.';\r
-$labels['name'] = 'Прикажано име';\r
-$labels['firstname'] = 'Име';\r
-$labels['surname'] = 'Презиме';\r
-$labels['email'] = 'Е-маил';\r
-$labels['addcontact'] = 'Додади го контактот';\r
-$labels['editcontact'] = 'Промени го контактот';\r
-$labels['edit'] = 'Промени';\r
-$labels['cancel'] = 'Откажи';\r
-$labels['save'] = 'Сними';\r
-$labels['delete'] = 'Избриши';\r
-$labels['newcontact'] = 'Додади ново име';\r
-$labels['deletecontact'] = 'Избриши ги следните имиња';\r
-$labels['composeto'] = 'Напиши порака';\r
-$labels['contactsfromto'] = '$count имиња $from до $to';\r
-$labels['print'] = 'Испечати';\r
-$labels['export'] = 'Извади како';\r
-$labels['previouspage'] = 'Прикажи претходна страна';\r
-$labels['firstpage'] = 'Прикажи ја првата страна';\r
-$labels['nextpage'] = 'Прикажи ја следната страна';\r
-$labels['lastpage'] = 'Прикажи ја последната страна';\r
-$labels['groups'] = 'Групи';\r
-$labels['personaladrbook'] = 'Адреси';\r
-$labels['settingsfor'] = 'Подесувања за';\r
-$labels['preferences'] = 'Подесувања';\r
-$labels['userpreferences'] = 'Кориснички подесувања';\r
-$labels['editpreferences'] = 'Промени ги корисничките подесувања';\r
-$labels['identities'] = 'Идентитети';\r
-$labels['manageidentities'] = 'Организирај ги идентитетите за овој корисник';\r
-$labels['newidentity'] = 'Нов идентитет';\r
-$labels['newitem'] = 'Нов објект';\r
-$labels['edititem'] = 'Промени објект';\r
-$labels['setdefault'] = 'Одбери за основно';\r
-$labels['language'] = 'Јазик';\r
-$labels['timezone'] = 'Временска зона';\r
-$labels['pagesize'] = 'Редови прикажани на страна';\r
-$labels['signature'] = 'Потпис';\r
-$labels['dstactive'] = 'Промени на времето';\r
-$labels['htmleditor'] = 'Создади HTML порака';\r
-$labels['htmlsignature'] = 'HTML потпис';\r
-$labels['previewpane'] = 'Прикажи го претходниот панел';\r
-$labels['autosavedraft'] = 'Авоматски снимај во Непратени';\r
-$labels['everynminutes'] = 'секои $n минути';\r
-$labels['never'] = 'никогаш';\r
-$labels['folder'] = 'Папка';\r
-$labels['folders'] = 'Папки';\r
-$labels['foldername'] = 'Име на папката';\r
-$labels['subscribed'] = 'Претплатен';\r
-$labels['messagecount'] = 'Пораки';\r
-$labels['create'] = 'Креирај';\r
-$labels['createfolder'] = 'Креирај нова папка';\r
-$labels['rename'] = 'Преименувај';\r
-$labels['renamefolder'] = 'Преименувај ја папката';\r
-$labels['deletefolder'] = 'Избриши ја папката';\r
-$labels['managefolders'] = 'Организирање на папки';\r
-$labels['sortby'] = 'Уреди по';\r
-$labels['sortasc'] = 'Уреди по азбучен ред';\r
-$labels['sortdesc'] = 'Уреди опаѓачки';\r
-\r
-?>
\ No newline at end of file
+<?php
+
+/*
++-----------------------------------------------------------------------+
+| language/mk_MK/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Ivan Mishev - mishevivan@gmail.com |
++-----------------------------------------------------------------------+
+
+@version $Id$
+
+*/
+
+$labels = array();
+$labels['welcome'] = 'Добредојдовте во $product';
+$labels['username'] = 'Корисничко Име';
+$labels['password'] = 'Лозинка';
+$labels['server'] = 'Сервер';
+$labels['login'] = 'Логирај Се';
+$labels['logout'] = 'Одлогирај Се';
+$labels['mail'] = 'Е-Маил';
+$labels['settings'] = 'Подесувања';
+$labels['addressbook'] = 'Именик';
+$labels['inbox'] = 'Пошта';
+$labels['drafts'] = 'Непратени';
+$labels['sent'] = 'Пратени';
+$labels['trash'] = 'Корпа';
+$labels['junk'] = 'Ѓубре';
+$labels['subject'] = 'Наслов';
+$labels['from'] = 'Праќач';
+$labels['to'] = 'Примач';
+$labels['cc'] = 'Копирај';
+$labels['bcc'] = 'Bcc';
+$labels['replyto'] = 'Препрати на';
+$labels['date'] = 'Дата';
+$labels['size'] = 'Големина';
+$labels['priority'] = 'Приоритет';
+$labels['organization'] = 'Организација';
+$labels['reply-to'] = 'Препрати на';
+$labels['mailboxlist'] = 'Папки';
+$labels['messagesfromto'] = '$count пораки од $from';
+$labels['messagenrof'] = '$nr порака од $count';
+$labels['moveto'] = 'Премести во...';
+$labels['download'] = 'сними';
+$labels['filename'] = 'Име на датотеката';
+$labels['filesize'] = 'Големина на датотеката';
+$labels['preferhtml'] = 'Прикажи во HTML';
+$labels['htmlmessage'] = 'HTML Порака';
+$labels['prettydate'] = 'Убави дати';
+$labels['addtoaddressbook'] = 'Додади во именик';
+$labels['sun'] = 'Нед';
+$labels['mon'] = 'Пон';
+$labels['tue'] = 'Вто';
+$labels['wed'] = 'Сре';
+$labels['thu'] = 'Чет';
+$labels['fri'] = 'Пет';
+$labels['sat'] = 'Саб';
+$labels['sunday'] = 'Недела';
+$labels['monday'] = 'Понеделник';
+$labels['tuesday'] = 'Вторник';
+$labels['wednesday'] = 'Среда';
+$labels['thursday'] = 'Четврток';
+$labels['friday'] = 'Петок';
+$labels['saturday'] = 'Сабота';
+$labels['jan'] = 'Јан';
+$labels['feb'] = 'Фев';
+$labels['mar'] = 'Мар';
+$labels['apr'] = 'Апр';
+$labels['may'] = 'Мај';
+$labels['jun'] = 'Јун';
+$labels['jul'] = 'Јул';
+$labels['aug'] = 'Авг';
+$labels['sep'] = 'Сеп';
+$labels['oct'] = 'Окт';
+$labels['nov'] = 'Ное';
+$labels['dec'] = 'Дек';
+$labels['longjan'] = 'Јануари';
+$labels['longfeb'] = 'Февруари';
+$labels['longmar'] = 'Март';
+$labels['longapr'] = 'Април';
+$labels['longmay'] = 'Мај';
+$labels['longjun'] = 'Јуни';
+$labels['longjul'] = 'Јули';
+$labels['longaug'] = 'Август';
+$labels['longsep'] = 'Септември';
+$labels['longoct'] = 'Октомври';
+$labels['longnov'] = 'Ноември';
+$labels['longdec'] = 'Декември';
+$labels['today'] = 'Денес';
+$labels['checkmail'] = 'Провери пошта';
+$labels['writenewmessage'] = 'Нова порака';
+$labels['replytomessage'] = 'Одговори на пораката';
+$labels['replytoallmessage'] = 'Одговори на сите';
+$labels['forwardmessage'] = 'Препрати ја пораката';
+$labels['deletemessage'] = 'Премести ја пораката во Корпа';
+$labels['movemessagetotrash'] = 'Премести ги пораките во Канта';
+$labels['printmessage'] = 'За печатење';
+$labels['previousmessage'] = 'Прикажи ја претходната порака';
+$labels['previousmessages'] = 'Прикажи ги претходните пораки';
+$labels['firstmessage'] = 'Прикажи ја првата порака';
+$labels['firstmessages'] = 'Прикажи ги првите пораки';
+$labels['nextmessage'] = 'Прикажи ја наредната порака';
+$labels['nextmessages'] = 'Прикажи ги следните пораки';
+$labels['lastmessage'] = 'Прикажи ја последната порака';
+$labels['lastmessages'] = 'Прикажи ги последните пораки';
+$labels['backtolist'] = 'Врати се во поштенското сандаче';
+$labels['viewsource'] = 'Покажи го изворот на пракање';
+$labels['markmessages'] = 'Обележи ги пораките';
+$labels['markread'] = 'Како прочитани';
+$labels['markunread'] = 'Како непрочитани';
+$labels['markflagged'] = 'Како обележана';
+$labels['markunflagged'] = 'Како необележана';
+$labels['select'] = 'Одбележи';
+$labels['all'] = 'Сите';
+$labels['none'] = 'Никоја';
+$labels['unread'] = 'Непрочитани';
+$labels['compact'] = 'Уредно';
+$labels['empty'] = 'Испразни';
+$labels['purge'] = 'Чистење';
+$labels['quota'] = 'Искористен простор';
+$labels['unknown'] = 'непознато';
+$labels['unlimited'] = 'неограничено';
+$labels['quicksearch'] = 'Брзо претражување';
+$labels['resetsearch'] = 'Ново претражување';
+$labels['compose'] = 'Нова порака';
+$labels['savemessage'] = 'Снимај ја пораката во Непратени';
+$labels['sendmessage'] = 'Прати ја пораката';
+$labels['addattachment'] = 'Прикачи фајл';
+$labels['charset'] = 'Charset';
+$labels['editortype'] = 'Тип на едитор';
+$labels['returnreceipt'] = 'Врати ';
+$labels['checkspelling'] = 'Провери спелување';
+$labels['resumeediting'] = 'Продолжи со уредување';
+$labels['revertto'] = 'Обрати се на';
+$labels['attachments'] = 'Прикачено';
+$labels['upload'] = 'Прикачи';
+$labels['close'] = 'Затвори';
+$labels['low'] = 'Низок';
+$labels['lowest'] = 'Најнизок';
+$labels['normal'] = 'Нормален';
+$labels['high'] = 'Висок';
+$labels['highest'] = 'Највисок';
+$labels['nosubject'] = '(нема тема)';
+$labels['showimages'] = 'Прикажи ги сликите';
+$labels['alwaysshow'] = 'Секогаш прикажувај ги сликите од $sender';
+$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Обичен текст';
+$labels['addcc'] = 'Додај Cc';
+$labels['addbcc'] = 'Додај Bcc';
+$labels['addreplyto'] = 'Додај Одговори-На';
+$labels['mdnrequest'] = 'Праќачот на оваа порака сака да добие известување кога ќе ја прочитате пораката. Дали сакате да го известите?';
+$labels['receiptread'] = 'Извести (читај)';
+$labels['yourmessage'] = 'Ова е известување за вашата порака';
+$labels['receiptnote'] = 'Забелешка: Ова известување само потврдува дека пораката која сте ја пратиле е отворена. Не е гаранција дека примачот ја прочитал или ја разбрал истата.';
+$labels['name'] = 'Прикажано име';
+$labels['firstname'] = 'Име';
+$labels['surname'] = 'Презиме';
+$labels['email'] = 'Е-маил';
+$labels['addcontact'] = 'Додади го контактот';
+$labels['editcontact'] = 'Промени го контактот';
+$labels['edit'] = 'Промени';
+$labels['cancel'] = 'Откажи';
+$labels['save'] = 'Сними';
+$labels['delete'] = 'Избриши';
+$labels['newcontact'] = 'Додади ново име';
+$labels['deletecontact'] = 'Избриши ги следните имиња';
+$labels['composeto'] = 'Напиши порака';
+$labels['contactsfromto'] = '$count имиња $from до $to';
+$labels['print'] = 'Испечати';
+$labels['export'] = 'Извади како';
+$labels['previouspage'] = 'Прикажи претходна страна';
+$labels['firstpage'] = 'Прикажи ја првата страна';
+$labels['nextpage'] = 'Прикажи ја следната страна';
+$labels['lastpage'] = 'Прикажи ја последната страна';
+$labels['groups'] = 'Групи';
+$labels['personaladrbook'] = 'Адреси';
+$labels['settingsfor'] = 'Подесувања за';
+$labels['preferences'] = 'Подесувања';
+$labels['userpreferences'] = 'Кориснички подесувања';
+$labels['editpreferences'] = 'Промени ги корисничките подесувања';
+$labels['identities'] = 'Идентитети';
+$labels['manageidentities'] = 'Организирај ги идентитетите за овој корисник';
+$labels['newidentity'] = 'Нов идентитет';
+$labels['newitem'] = 'Нов објект';
+$labels['edititem'] = 'Промени објект';
+$labels['setdefault'] = 'Одбери за основно';
+$labels['language'] = 'Јазик';
+$labels['timezone'] = 'Временска зона';
+$labels['pagesize'] = 'Редови прикажани на страна';
+$labels['signature'] = 'Потпис';
+$labels['dstactive'] = 'Промени на времето';
+$labels['htmleditor'] = 'Создади HTML порака';
+$labels['htmlsignature'] = 'HTML потпис';
+$labels['previewpane'] = 'Прикажи го претходниот панел';
+$labels['skin'] = 'Модел на изгледот';
+$labels['logoutclear'] = 'Очисти ја Кантата при излез';
+$labels['logoutcompact'] = 'Подреди ја поштата при излез';
+$labels['uisettings'] = 'Кориснички изглед';
+$labels['serversettings'] = 'Подесувања на серверот';
+$labels['mailboxview'] = 'Приказ на поштенското сандаче';
+$labels['mdnrequests'] = 'Најави за праќачот';
+$labels['askuser'] = 'прашај го корисникот';
+$labels['autosend'] = 'автоматски испрати';
+$labels['ignore'] = 'игнорирање';
+$labels['readwhendeleted'] = 'Обележи ја пораката како прочитана при бришење';
+$labels['flagfordeletion'] = 'Обележи ја пораката за бришење наместо да ја избришеш';
+$labels['showinlineimages'] = 'Прикажи ги прикачените слики под пораката';
+$labels['autosavedraft'] = 'Авоматски снимај во Непратени';
+$labels['everynminutes'] = 'секои $n минути';
+$labels['never'] = 'никогаш';
+$labels['messagesdisplaying'] = 'Прикажување на порака';
+$labels['messagescomposition'] = 'Пишување на порака';
+$labels['folder'] = 'Папка';
+$labels['folders'] = 'Папки';
+$labels['foldername'] = 'Име на папката';
+$labels['subscribed'] = 'Претплатен';
+$labels['messagecount'] = 'Пораки';
+$labels['create'] = 'Креирај';
+$labels['createfolder'] = 'Креирај нова папка';
+$labels['rename'] = 'Преименувај';
+$labels['renamefolder'] = 'Преименувај ја папката';
+$labels['deletefolder'] = 'Избриши ја папката';
+$labels['managefolders'] = 'Организирање на папки';
+$labels['sortby'] = 'Уреди по';
+$labels['sortasc'] = 'Уреди по азбучен ред';
+$labels['sortdesc'] = 'Уреди опаѓачки';
+
+?>
-<?php\r
-\r
-/*\r
- +-----------------------------------------------------------------------+\r
- | language/mk/messages.inc |\r
- | |\r
- | Language file of the RoundCube Webmail client |\r
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |\r
- | Licensed under the GNU GPL |\r
- | |\r
- +-----------------------------------------------------------------------+\r
- | Author: Ivan Mishev - mishevivan@gmail.com |\r
- +-----------------------------------------------------------------------+\r
-\r
- @version $Id$\r
-\r
-*/\r
-\r
-$messages = array();\r
-$messages['loginfailed'] = 'Неуспешна најава';\r
-$messages['cookiesdisabled'] = 'Вашиот прелистувач не прифаќа cookies';\r
-$messages['sessionerror'] = 'Сесијата е невалидна или е истечена';\r
-$messages['imaperror'] = 'Конектирањето со IMAP е неуспешно';\r
-$messages['nomessagesfound'] = 'Немате пораки во вашата пошта';\r
-$messages['loggedout'] = 'Успешно се одлогиравте. Благодариме!';\r
-$messages['mailboxempty'] = 'Поштенското сандаче е празно.';\r
-$messages['loading'] = 'Вчитувам...';\r
-$messages['loadingdata'] = 'Ги вчитувам податоците...';\r
-$messages['checkingmail'] = 'Проверување за нови пораки...';\r
-$messages['sendingmessage'] = 'Праќање на пораката...';\r
-$messages['messagesent'] = 'Пораката е успешно пратена';\r
-$messages['savingmessage'] = 'Пораката се снима...';\r
-$messages['messagesaved'] = 'Пораката е снимена во Непратени';\r
-$messages['successfullysaved'] = 'Успешно снимено';\r
-$messages['addedsuccessfully'] = 'Името е успешно додадено ви Именик';\r
-$messages['contactexists'] = 'Веќе постои име со зададената Е-маил адреса';\r
-$messages['blockedimages'] = 'За да се заштити вашата приватност, сликите во оваа порака не се прикажани.';\r
-$messages['encryptedmessage'] = 'Оваа порака е кодирана и неможе да се прикаже. Извинете!';\r
-$messages['nocontactsfound'] = 'Нема Имиња во Именикот.';\r
-$messages['contactnotfound'] = 'Бараното име не постои';\r
-$messages['sendingfailed'] = 'Пораката не е пратена';\r
-$messages['errorsaving'] = 'Грешка при снимањето';\r
-$messages['errormoving'] = 'Пораката неможе да се премести';\r
-$messages['errordeleting'] = 'Пораката неможе да се избрише';\r
-$messages['deletecontactconfirm'] = 'Дали сте сигурни дека сакате да го избришете обележаниот(те) контакт(и)?';\r
-$messages['deletemessagesconfirm'] = 'Дали сте сигурни дека сакате да го избришете обележаниот(те) порака(и)?';\r
-$messages['deletefolderconfirm'] = 'Дали сте сигурни дека сакате да ја избришете оваа папка?';\r
-$messages['purgefolderconfirm'] = 'Дали сте сигурни дека сакате да ги избршете сите пораки во оваа папка?';\r
-$messages['formincomplete'] = 'Имате изоставено непополнети информации';\r
-$messages['noemailwarning'] = 'Внесете валидна емаил адреса';\r
-$messages['nonamewarning'] = 'Внесете име';\r
-$messages['nopagesizewarning'] = 'Внесете ја големината на страната';\r
-$messages['norecipientwarning'] = 'Внесете барем еден примач';\r
-$messages['nosubjectwarning'] = 'Немате внесено „Наслов“. Дали сакате да внесете?';\r
-$messages['nobodywarning'] = 'Пораката нема текст во неа. Дали сакате да ја пратите?';\r
-$messages['notsentwarning'] = 'Пораката не е пратена. Дали сакате да ја откажете?';\r
-$messages['noldapserver'] = 'Изберете LDAP сервер за пребарување';\r
-$messages['nocontactsreturned'] = 'Не се најдени имиња';\r
-$messages['nosearchname'] = 'Внесете име или емаил адреса';\r
-$messages['searchsuccessful'] = '$nr пораки се најдени';\r
-$messages['searchnomatch'] = 'Претражувањето нема резлутати';\r
-$messages['searching'] = 'Пребарувам....';\r
-$messages['checking'] = 'Проверувам...';\r
-$messages['nospellerrors'] = 'Нема грешки во спелувањето';\r
-$messages['folderdeleted'] = 'Папката е успешно избришана';\r
-$messages['deletedsuccessfully'] = 'Успешно избришано';\r
-$messages['converting'] = 'Форматирањето на пораката е отстрането...';\r
-$messages['messageopenerror'] = 'Пораката неможе да се вчита од серверот';\r
-$messages['fileuploaderror'] = 'Прикачувањето е неуспешно';\r
-$messages['filesizeerror'] = 'Датотеката што се прикачува го изминува лимитот од $size';\r
-$messages['copysuccess'] = 'Успешно се копирани $nr имиња';\r
-$messages['copyerror'] = 'Неможе да се копираат адресите';\r
-$messages['sourceisreadonly'] = 'Изворот на оваа адреса неможе да се промени';\r
-$messages['errorsavingcontact'] = 'Името неможе да се сними';\r
-$messages['movingmessage'] = 'Пораката се преместува...';\r
-$messages['receiptsent'] = 'Известувањето е успешно пратено';\r
-$messages['errorsendingreceipt'] = 'Известувањето не е пратено';\r
-$messages['nodeletelastidentity'] = 'Овој идентитет неможе да се избрише, тој е последниот.';\r
-$messages['addsubfolderhint'] = 'Оваа папка ќе биде креирана како под-папка на селектираната.';\r
-\r
-?>
\ No newline at end of file
+<?php
+
+/*
++-----------------------------------------------------------------------+
+| language/mk_MK/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Ivan Mishev - mishevivan@gmail.com |
++-----------------------------------------------------------------------+
+
+@version $Id$
+
+*/
+
+$messages = array();
+$messages['loginfailed'] = 'Неуспешна најава';
+$messages['cookiesdisabled'] = 'Вашиот прелистувач не прифаќа cookies';
+$messages['sessionerror'] = 'Сесијата е невалидна или е истечена';
+$messages['imaperror'] = 'Конектирањето со IMAP е неуспешно';
+$messages['nomessagesfound'] = 'Немате пораки во вашата пошта';
+$messages['loggedout'] = 'Успешно се одлогиравте. Благодариме!';
+$messages['mailboxempty'] = 'Поштенското сандаче е празно.';
+$messages['loading'] = 'Вчитувам...';
+$messages['loadingdata'] = 'Ги вчитувам податоците...';
+$messages['checkingmail'] = 'Проверување за нови пораки...';
+$messages['sendingmessage'] = 'Праќање на пораката...';
+$messages['messagesent'] = 'Пораката е успешно пратена';
+$messages['savingmessage'] = 'Пораката се снима...';
+$messages['messagesaved'] = 'Пораката е снимена во Непратени';
+$messages['successfullysaved'] = 'Успешно снимено';
+$messages['addedsuccessfully'] = 'Името е успешно додадено ви Именик';
+$messages['contactexists'] = 'Веќе постои име со зададената Е-маил адреса';
+$messages['blockedimages'] = 'За да се заштити вашата приватност, сликите во оваа порака не се прикажани.';
+$messages['encryptedmessage'] = 'Оваа порака е кодирана и неможе да се прикаже. Извинете!';
+$messages['nocontactsfound'] = 'Нема Имиња во Именикот.';
+$messages['contactnotfound'] = 'Бараното име не постои';
+$messages['sendingfailed'] = 'Пораката не е пратена';
+$messages['errorsaving'] = 'Грешка при снимањето';
+$messages['errormoving'] = 'Пораката неможе да се премести';
+$messages['errordeleting'] = 'Пораката неможе да се избрише';
+$messages['deletecontactconfirm'] = 'Дали сте сигурни дека сакате да го избришете обележаниот(те) контакт(и)?';
+$messages['deletemessagesconfirm'] = 'Дали сте сигурни дека сакате да го избришете обележаниот(те) порака(и)?';
+$messages['deletefolderconfirm'] = 'Дали сте сигурни дека сакате да ја избришете оваа папка?';
+$messages['purgefolderconfirm'] = 'Дали сте сигурни дека сакате да ги избршете сите пораки во оваа папка?';
+$messages['formincomplete'] = 'Имате изоставено непополнети информации';
+$messages['noemailwarning'] = 'Внесете валидна емаил адреса';
+$messages['nonamewarning'] = 'Внесете име';
+$messages['nopagesizewarning'] = 'Внесете ја големината на страната';
+$messages['norecipientwarning'] = 'Внесете барем еден примач';
+$messages['nosubjectwarning'] = 'Немате внесено „Наслов“. Дали сакате да внесете?';
+$messages['nobodywarning'] = 'Пораката нема текст во неа. Дали сакате да ја пратите?';
+$messages['notsentwarning'] = 'Пораката не е пратена. Дали сакате да ја откажете?';
+$messages['noldapserver'] = 'Изберете LDAP сервер за пребарување';
+$messages['nocontactsreturned'] = 'Не се најдени имиња';
+$messages['nosearchname'] = 'Внесете име или емаил адреса';
+$messages['searchsuccessful'] = '$nr пораки се најдени';
+$messages['searchnomatch'] = 'Претражувањето нема резлутати';
+$messages['searching'] = 'Пребарувам....';
+$messages['checking'] = 'Проверувам...';
+$messages['nospellerrors'] = 'Нема грешки во спелувањето';
+$messages['folderdeleted'] = 'Папката е успешно избришана';
+$messages['deletedsuccessfully'] = 'Успешно избришано';
+$messages['converting'] = 'Форматирањето на пораката е отстрането...';
+$messages['messageopenerror'] = 'Пораката неможе да се вчита од серверот';
+$messages['fileuploaderror'] = 'Прикачувањето е неуспешно';
+$messages['filesizeerror'] = 'Датотеката што се прикачува го изминува лимитот од $size';
+$messages['copysuccess'] = 'Успешно се копирани $nr имиња';
+$messages['copyerror'] = 'Неможе да се копираат адресите';
+$messages['sourceisreadonly'] = 'Изворот на оваа адреса неможе да се промени';
+$messages['errorsavingcontact'] = 'Името неможе да се сними';
+$messages['movingmessage'] = 'Пораката се преместува...';
+$messages['receiptsent'] = 'Известувањето е успешно пратено';
+$messages['errorsendingreceipt'] = 'Известувањето не е пратено';
+$messages['nodeletelastidentity'] = 'Овој идентитет неможе да се избрише, тој е последниот.';
+$messages['addsubfolderhint'] = 'Оваа папка ќе биде креирана како под-папка на селектираната.';
+$messages['forbiddencharacter'] = 'Името на папката содржи несоодветен формат';
+
+?>
/*
- +-----------------------------------------------------------------------+
- | language/nl_BE/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Dennis Heeren <dennis.heeren@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/nl_BE/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Dennis Heeren <dennis.heeren@gmail.com> |
+| Laurens Vets <laurens@daemon.be> |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 1108 2008-02-17 20:08:44Z thomasb $
+@version $Id: labels.inc 2136 2008-12-08 20:44:46Z yllar $
*/
$labels['thursday'] = 'Donderdag';
$labels['friday'] = 'Vrijdag';
$labels['saturday'] = 'Zaterdag';
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mrt';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'Mei';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Okt';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+$labels['longjan'] = 'Januari';
+$labels['longfeb'] = 'Februari';
+$labels['longmar'] = 'Maart';
+$labels['longapr'] = 'April';
+$labels['longmay'] = 'Mei';
+$labels['longjun'] = 'Juni';
+$labels['longjul'] = 'Juli';
+$labels['longaug'] = 'Augustus';
+$labels['longsep'] = 'September';
+$labels['longoct'] = 'Oktober';
+$labels['longnov'] = 'November';
+$labels['longdec'] = 'December';
$labels['today'] = 'Vandaag';
$labels['checkmail'] = 'Controleer op nieuwe berichten';
$labels['writenewmessage'] = 'Nieuw bericht';
$labels['markmessages'] = 'Markeer berichten';
$labels['markread'] = 'Als gelezen';
$labels['markunread'] = 'Als ongelezen';
+$labels['markflagged'] = 'Selecteren';
+$labels['markunflagged'] = 'Niet Selecteren';
$labels['select'] = 'Selecteren';
$labels['all'] = 'Alles';
$labels['none'] = 'Geen';
$labels['unread'] = 'Ongelezen';
+$labels['flagged'] = 'Gemarkeerd';
+$labels['unanswered'] = 'Onbeantwoord';
+$labels['filter'] = 'Filter';
$labels['compact'] = 'Comprimeren';
$labels['empty'] = 'Legen';
$labels['purge'] = 'Opruimen';
$labels['unlimited'] = 'ongelimiteerd';
$labels['quicksearch'] = 'Snelzoeken';
$labels['resetsearch'] = 'Zoek opnieuw';
+$labels['openinextwin'] = 'Openen in een nieuw venster';
$labels['compose'] = 'Nieuw bericht opstellen';
$labels['savemessage'] = 'Bewaar als concept';
$labels['sendmessage'] = 'Verzenden';
$labels['highest'] = 'Hoogste';
$labels['nosubject'] = '(geen onderwerp)';
$labels['showimages'] = 'Toon afbeeldingen';
+$labels['alwaysshow'] = 'Afbeeldingen van $sender altijd tonen';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Platte tekst';
+$labels['savesentmessagein'] = 'Bewaar verzonden bericht in';
+$labels['dontsave'] = 'niet bewaren';
+$labels['maxuploadsize'] = 'Maximum toegestane bestandsgrootte is $size';
$labels['addcc'] = 'Cc toevoegen';
$labels['addbcc'] = 'Bcc toevoegen';
$labels['addreplyto'] = 'Antwoorden aan toevoegen';
$labels['contactsfromto'] = 'Contactpersonen $from - $to van $count';
$labels['print'] = 'Afdrukken';
$labels['export'] = 'Exporteren';
+$labels['exportvcards'] = 'Exporteer contactpersonen in vCard formaat';
$labels['previouspage'] = 'Toon vorige';
$labels['firstpage'] = 'Toon eerste';
$labels['nextpage'] = 'Toon volgende';
$labels['lastpage'] = 'Toon laatste';
$labels['groups'] = 'Groepen';
$labels['personaladrbook'] = 'Personlijke adressen';
+$labels['import'] = 'Importeer';
+$labels['importcontacts'] = 'Contactpersonen importeren';
+$labels['importfromfile'] = 'Importeer van bestand:';
+$labels['importreplace'] = 'Vervang het complete adresboek';
+$labels['importtext'] = 'U kunt hier contactpersonen importeren vanuit een bestaand adresboek.<br />Op dit moment ondersteunen wij het <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> bestandsformaat.';
+$labels['done'] = 'Klaar';
$labels['settingsfor'] = 'Instellingen voor';
$labels['preferences'] = 'Voorkeuren';
$labels['userpreferences'] = 'Gebruikersvoorkeuren';
$labels['newitem'] = 'Nieuw';
$labels['edititem'] = 'Bewerken';
$labels['setdefault'] = 'Als standaard instellen';
+$labels['autodetect'] = 'Automatisch';
$labels['language'] = 'Taal';
$labels['timezone'] = 'Tijdzone';
$labels['pagesize'] = 'Berichten per pagina';
$labels['htmleditor'] = 'HTML berichten opmaken';
$labels['htmlsignature'] = 'HTML handtekening';
$labels['previewpane'] = 'Toon voorbeeldvenster';
+$labels['skin'] = 'Opmaakprofiel';
+$labels['logoutclear'] = 'Prullenbak legen bij uitloggen';
+$labels['logoutcompact'] = 'Postvak IN opschonen bij uitloggen';
+$labels['uisettings'] = 'Gebruikersinterface';
+$labels['serversettings'] = 'Serverinstellingen';
+$labels['mailboxview'] = 'Opmaak Mailbox';
+$labels['mdnrequests'] = 'Ontvangstmeldingen';
+$labels['askuser'] = 'vraag de gebruiker';
+$labels['autosend'] = 'stuur automatisch';
+$labels['ignore'] = 'negeer';
+$labels['readwhendeleted'] = 'Bericht na verwijderen als gelezen markeren';
+$labels['flagfordeletion'] = 'Bericht niet verwijderen maar als verwijderd markeren ';
+$labels['skipdeleted'] = 'Verwijderde berichten niet tonen';
+$labels['showremoteimages'] = 'Geef externe toegevoegde berichten weer';
+$labels['fromknownsenders'] = 'Van bekende afzenders';
+$labels['always'] = 'altijd';
+$labels['showinlineimages'] = 'Toon bijgevoegde afbeeldingen onder het bericht';
$labels['autosavedraft'] = 'Automatisch als concept opslaan';
$labels['everynminutes'] = 'elke $n minuten';
+$labels['keepaliveevery'] = 'elke $n minuten';
+$labels['keepalive'] = 'Controleer op nieuwe berichten';
$labels['never'] = 'nooit';
+$labels['messagesdisplaying'] = 'Berichten weergave';
+$labels['messagescomposition'] = 'Berichten aanmaken';
+$labels['mimeparamfolding'] = 'Namen van bijlagen';
+$labels['2231folding'] = 'Volledig RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Volledig RFC 2047 (andere)';
+$labels['advancedoptions'] = 'Geavanceerde opties';
+$labels['focusonnewmessage'] = 'Focus browserscherm bij nieuw bericht';
+$labels['checkallfolders'] = 'Controleer alle mappen op nieuwe berichten';
$labels['folder'] = 'Map';
$labels['folders'] = 'Mappen';
$labels['foldername'] = 'Naam';
$labels['renamefolder'] = 'Hernoem map';
$labels['deletefolder'] = 'Map verwijderen';
$labels['managefolders'] = 'Mappen beheren';
+$labels['specialfolders'] = 'Speciale mappen';
$labels['sortby'] = 'Sorteren op';
$labels['sortasc'] = 'Oplopend sorteren';
$labels['sortdesc'] = 'Aflopend sorteren';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
?>
| |
+-----------------------------------------------------------------------+
| Author: Mark Moses <mark@katmoda.com> |
+| Lazlo Westerhof <roundcube@lazlo.me> |
+| Laurens Vets <laurens@daemon.be> |
+-----------------------------------------------------------------------+
-@version $Id: labels.inc 1402 2008-05-19 07:50:25Z alec $
+@version $Id: labels.inc 2136 2008-12-08 20:44:46Z yllar $
*/
$labels['mailboxlist'] = 'Mappen';
$labels['messagesfromto'] = 'Bericht $from t/m $to van $count';
$labels['messagenrof'] = 'Bericht $nr van $count';
-$labels['moveto'] = 'verplaats naar...';
-$labels['download'] = 'download';
+$labels['moveto'] = 'Verplaats naar...';
+$labels['download'] = 'Download';
$labels['filename'] = 'Bestandsnaam';
$labels['filesize'] = 'Bestandsgrootte';
$labels['preferhtml'] = 'Toon HTML';
-$labels['htmlmessage'] = 'HTML Bericht';
-$labels['prettydate'] = 'Opgemaakte datums';
+$labels['htmlmessage'] = 'HTML-Bericht';
+$labels['prettydate'] = 'Gebruiksvriendelijke data';
$labels['addtoaddressbook'] = 'Toevoegen aan adresboek';
$labels['sun'] = 'Zo';
$labels['mon'] = 'Ma';
$labels['markmessages'] = 'Markeer berichten';
$labels['markread'] = 'Gelezen';
$labels['markunread'] = 'Ongelezen';
+$labels['markflagged'] = 'Selecteren';
+$labels['markunflagged'] = 'Niet selecteren';
$labels['select'] = 'Selecteer';
$labels['all'] = 'Allemaal';
$labels['none'] = 'Geen';
$labels['unread'] = 'Ongelezen';
-$labels['compact'] = 'Compact';
+$labels['flagged'] = 'Gemarkeerd';
+$labels['unanswered'] = 'Onbeantwoord';
+$labels['filter'] = 'Filter';
+$labels['compact'] = 'Opschonen';
$labels['empty'] = 'Legen';
-$labels['purge'] = 'Purge';
-$labels['quota'] = 'Schijfruimte gebruik';
+$labels['purge'] = 'Verwijderen';
+$labels['quota'] = 'Mailbox quotum';
$labels['unknown'] = 'onbekend';
$labels['unlimited'] = 'onbeperkt';
$labels['quicksearch'] = 'Snel zoeken';
$labels['resetsearch'] = 'Reset zoekopdracht';
-$labels['compose'] = 'Maak een bericht';
+$labels['openinextwin'] = 'Openen in een nieuw venster';
+$labels['compose'] = 'Nieuw bericht aanmaken';
$labels['savemessage'] = 'Bewaar als concept';
$labels['sendmessage'] = 'Verstuur het bericht nu';
$labels['addattachment'] = 'Voeg een bijlage toe';
$labels['highest'] = 'Hoogste';
$labels['nosubject'] = '(geen onderwerp)';
$labels['showimages'] = 'Toon afbeeldingen';
+$labels['alwaysshow'] = 'Afbeeldingen van $sender altijd tonen';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Gewone tekst';
-$labels['addcc'] = 'Kopie toevoegen';
+$labels['savesentmessagein'] = 'Bewaar verzonden bericht in';
+$labels['dontsave'] = 'niet bewaren';
+$labels['maxuploadsize'] = 'Maximum toegestane bestandsgrootte is $size';
+$labels['addcc'] = 'Cc toevoegen';
$labels['addbcc'] = 'Bcc toevoegen';
$labels['addreplyto'] = 'Antwoord-aan toevoegen';
-$labels['mdnrequest'] = 'De afzender van dit bericht heeft gevraagd of er een melding kan worden verzonden als dit bericht is ontvangen. Wilt u de melding verzenden?';
+$labels['mdnrequest'] = 'De afzender van dit bericht heeft gevraagd een melding te ontvangen wanneer u dit bericht heeft gelezen. Wilt u deze melding verzenden?';
$labels['receiptread'] = 'Ontvangstbevestiging (gelezen)';
$labels['yourmessage'] = 'Dit is een ontvangstbevestiging voor uw bericht';
-$labels['receiptnote'] = 'Let op: Deze bevestigt alleen dat uw bericht bij de geaddresseerde is binnen gekomen. Er is geen garantie dat de geaddresseerde het bericht daadwerkelijk heeft gelezen of de inhoud heeft begrepen.';
+$labels['receiptnote'] = 'Let op: Dit bevestigd alleen dat uw bericht bij de geaddresseerde is weergegeven. Er is geen garantie dat de geaddresseerde het bericht daadwerkelijk heeft gelezen of de inhoud heeft begrepen.';
$labels['name'] = 'Naam';
$labels['firstname'] = 'Voornaam';
$labels['surname'] = 'Achternaam';
$labels['email'] = 'E-Mail';
-$labels['addcontact'] = 'Voeg geselecteerde contacten toe aan het adresboek';
+$labels['addcontact'] = 'Nieuwe contactpersoon toevoegen';
$labels['editcontact'] = 'Contactpersoon wijzigen';
$labels['edit'] = 'Wijzig';
$labels['cancel'] = 'Annuleer';
$labels['contactsfromto'] = 'Contacten $from t/m $to van $count';
$labels['print'] = 'Afdrukken';
$labels['export'] = 'Exporteren';
+$labels['exportvcards'] = 'Exporteer contactpersonen in vCard formaat';
$labels['previouspage'] = 'Vorige pagina';
$labels['firstpage'] = 'Eerste pagina';
$labels['nextpage'] = 'Volgende pagina';
$labels['lastpage'] = 'Laatste pagina';
$labels['groups'] = 'Groepen';
$labels['personaladrbook'] = 'Persoonlijk Adresboek';
+$labels['import'] = 'Importeer';
+$labels['importcontacts'] = 'Contactpersonen importeren';
+$labels['importfromfile'] = 'Importeer van bestand:';
+$labels['importreplace'] = 'Vervang het complete adresboek';
+$labels['importtext'] = 'U kunt hier contactpersonen importeren vanuit een bestaand adresboek.<br />Op dit moment ondersteunen wij het <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> bestandsformaat.';
+$labels['done'] = 'Klaar';
$labels['settingsfor'] = 'Instellingen voor';
$labels['preferences'] = 'Instellingen';
-$labels['userpreferences'] = 'Gebruikers instellingen';
-$labels['editpreferences'] = 'Wijzig gebruikers instellingen';
+$labels['userpreferences'] = 'Gebruikersinstellingen';
+$labels['editpreferences'] = 'Wijzig gebruikersinstellingen';
$labels['identities'] = 'Identititeiten';
$labels['manageidentities'] = 'Beheer identiteiten voor dit account';
$labels['newidentity'] = 'Identiteit toevoegen';
$labels['newitem'] = 'Nieuw item';
$labels['edititem'] = 'Wijzig item';
-$labels['setdefault'] = 'Stel als standaard in';
+$labels['setdefault'] = 'Stel in als standaard';
+$labels['autodetect'] = 'Automatisch';
$labels['language'] = 'Taal';
-$labels['timezone'] = 'Tijdszone';
-$labels['pagesize'] = 'Rijen per pagina';
-$labels['signature'] = 'Onderschrift';
+$labels['timezone'] = 'Tijdzone';
+$labels['pagesize'] = 'Aantal berichten per pagina';
+$labels['signature'] = 'Ondertekening';
$labels['dstactive'] = 'Zomertijd';
$labels['htmleditor'] = 'Maak HTML berichten aan';
$labels['htmlsignature'] = 'HTML onderschrift';
$labels['previewpane'] = 'Toon voorbeeldvenster';
+$labels['skin'] = 'Opmaakprofiel';
$labels['logoutclear'] = 'Prullenbak legen bij uitloggen';
$labels['logoutcompact'] = 'Postvak IN opschonen bij uitloggen';
-$labels['uisettings'] = 'Gebruikers Interface';
-$labels['serversettings'] = 'Server Instellingen';
+$labels['uisettings'] = 'Gebruikersinterface';
+$labels['serversettings'] = 'Serverinstellingen';
+$labels['mailboxview'] = 'Opmaak Mailbox';
+$labels['mdnrequests'] = 'Ontvangstmeldingen';
$labels['askuser'] = 'vraag de gebruiker';
$labels['autosend'] = 'stuur automatisch';
$labels['ignore'] = 'negeer';
-$labels['readwhendeleted'] = 'Markeer het bericht na verwijderen als gelezen';
+$labels['readwhendeleted'] = 'Bericht na verwijderen als gelezen markeren';
+$labels['flagfordeletion'] = 'Bericht niet verwijderen maar als verwijderd markeren ';
+$labels['skipdeleted'] = 'Verwijderde berichten niet tonen';
+$labels['showremoteimages'] = 'Geef externe toegevoegde berichten weer';
+$labels['fromknownsenders'] = 'Van bekende afzenders';
+$labels['always'] = 'altijd';
+$labels['showinlineimages'] = 'Toon bijgevoegde afbeeldingen onder het bericht';
$labels['autosavedraft'] = 'Concept automatisch opslaan';
$labels['everynminutes'] = 'iedere $n minuten';
+$labels['keepaliveevery'] = 'iedere $n minuten';
+$labels['keepalive'] = 'Controleer op nieuwe berichten';
$labels['never'] = 'nooit';
+$labels['messagesdisplaying'] = 'Berichten weergave';
+$labels['messagescomposition'] = 'Berichten aanmaken';
+$labels['mimeparamfolding'] = 'Namen van bijlagen';
+$labels['2231folding'] = 'Volledig RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Volledig RFC 2047 (andere)';
+$labels['advancedoptions'] = 'Geavanceerde opties';
+$labels['focusonnewmessage'] = 'Focus browserscherm bij nieuw bericht';
+$labels['checkallfolders'] = 'Controleer alle mappen op nieuwe berichten';
$labels['folder'] = 'Map';
$labels['folders'] = 'Mappen';
$labels['foldername'] = 'Mapnaam';
$labels['renamefolder'] = 'Wijzig mapnaam';
$labels['deletefolder'] = 'Verwijder map';
$labels['managefolders'] = 'Beheer mappen';
+$labels['specialfolders'] = 'Speciale mappen';
$labels['sortby'] = 'Sorteer op';
$labels['sortasc'] = 'Sorteer oplopend';
$labels['sortdesc'] = 'Sorteer aflopend';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
?>
/*
- +-----------------------------------------------------------------------+
- | language/nl_NL/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Mark Moses <mark@katmoda.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/nl_NL/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Mark Moses <mark@katmoda.com> |
+| Lazlo Westerhof <roundcube@lazlo.me> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1087 2008-02-15 07:49:48Z robin $
+@version $Id: messages.inc 2037 2008-11-04 07:46:29Z robin $
*/
$messages = array();
$messages['loginfailed'] = 'Inloggen mislukt';
$messages['cookiesdisabled'] = 'Uw browser accepteert geen cookies';
-$messages['sessionerror'] = 'De sessie is verlopen of ongeldig';
+$messages['sessionerror'] = 'Uw sessie is verlopen of ongeldig';
$messages['imaperror'] = 'Connectie met IMAP server mislukt';
-$messages['nomessagesfound'] = 'Geen berichten gevonden in deze e-mailbox';
+$messages['nomessagesfound'] = 'Geen berichten gevonden in deze mailbox';
$messages['loggedout'] = 'Succesvol uitgelogd. Tot ziens!';
$messages['mailboxempty'] = 'Mailbox is leeg';
$messages['loading'] = 'Laden...';
-$messages['loadingdata'] = 'Bezig met laden van data...';
+$messages['loadingdata'] = 'Laden van data...';
$messages['checkingmail'] = 'Controleren op nieuwe berichten...';
$messages['sendingmessage'] = 'Bezig met bericht versturen...';
$messages['messagesent'] = 'Bericht succesvol verstuurd';
$messages['nocontactsfound'] = 'Geen contactpersonen gevonden';
$messages['contactnotfound'] = 'Contactpersoon niet gevonden';
$messages['sendingfailed'] = 'Verzenden van bericht is mislukt';
+$messages['senttooquickly'] = 'Je moet $sec seconden wachten om het bericht te versturen.';
+$messages['errorsavingsent'] = 'Er is een fout opgetreden tijdens het opslaan van het verzonden bericht';
$messages['errorsaving'] = 'Er is een fout opgetreden tijdens het opslaan';
$messages['errormoving'] = 'Kan het bericht niet verplaatsen';
$messages['errordeleting'] = 'Kan het bericht niet verwijderen';
$messages['deletemessagesconfirm'] = 'Weet u zeker dat u de geselecteerde bericht(en) wilt verwijderen?';
$messages['deletefolderconfirm'] = 'Weet u zeker dat u deze map wilt verwijderen?';
$messages['purgefolderconfirm'] = 'Weet u zeker dat u alle berichten in deze map wilt verwijderen?';
+$messages['foldercreating'] = 'Map aanmaken...';
+$messages['folderdeleting'] = 'Map verwijderen...';
+$messages['folderrenaming'] = 'Mapnaam wijzigen...';
+$messages['foldermoving'] = 'Map verplaatsen...';
$messages['formincomplete'] = 'Het formulier was niet volledig ingevuld';
$messages['noemailwarning'] = 'Geef een geldig e-mailadres op';
$messages['nonamewarning'] = 'Vul een naam in';
$messages['nopagesizewarning'] = 'Geef een paginagrootte op';
+$messages['nosenderwarning'] = 'Geef een e-mailadres van de afzender op';
$messages['norecipientwarning'] = 'Geef tenminste één ontvanger op';
-$messages['nosubjectwarning'] = 'Het veld: \'onderwerp\' is leeg. Wilt u nu alsnog een onderwerp opgeven?';
+$messages['nosubjectwarning'] = 'Het \'Onderwerp\' veld is leeg. Wilt u nu alsnog een onderwerp opgeven?';
$messages['nobodywarning'] = 'Dit bericht zonder inhoud versturen?';
$messages['notsentwarning'] = 'Bericht is niet verstuurd. Weet u zeker dat u het niet wilt bewaren?';
$messages['noldapserver'] = 'Geef een LDAP adresboek server op om te doorzoeken';
$messages['nosearchname'] = 'Geef de naam of e-mail op van de contactpersoon';
$messages['searchsuccessful'] = '$nr berichten gevonden';
$messages['searchnomatch'] = 'Zoekopdracht heeft geen resultaten opgeleverd';
-$messages['searching'] = 'Bezig met zoeken...';
+$messages['searching'] = 'Zoeken...';
$messages['checking'] = 'Controleren...';
$messages['nospellerrors'] = 'Geen spelfouten gevonden';
$messages['folderdeleted'] = 'Map successvol verwijderd';
$messages['deletedsuccessfully'] = 'Successvol verwijderd';
$messages['converting'] = 'Opmaak van bericht verwijderen...';
$messages['messageopenerror'] = 'Kan het bericht niet van de server laden';
-$messages['fileuploaderror'] = 'Bestand versturen mislukt';
+$messages['fileuploaderror'] = 'Bestand uploaden mislukt';
$messages['filesizeerror'] = 'Het bestand overschrijdt de maximale grootte van $size';
$messages['copysuccess'] = '$nr adressen succesvol gekopieerd';
$messages['copyerror'] = 'Kan geen adressen kopiëren';
-$messages['sourceisreadonly'] = 'Het adres kan niet worden opgeslagen';
+$messages['sourceisreadonly'] = 'Het adres is alleen-lezen';
$messages['errorsavingcontact'] = 'Kan het ontvanger-adres niet opslaan';
$messages['movingmessage'] = 'Bericht verplaatsen...';
$messages['receiptsent'] = 'Ontvangstbevestiging is verstuurd';
$messages['errorsendingreceipt'] = 'Kan de ontvangstbevestiging niet versturen';
-$messages['nodeletelastidentity'] = 'U kunt dit afzenderadres niet verwijderen';
+$messages['nodeletelastidentity'] = 'U kunt uw enige identiteit niet verwijderen';
$messages['addsubfolderhint'] = 'Deze map zal worden aangemaakt onder de geselecteerde map';
+$messages['forbiddencharacter'] = 'De naam van de map bevat een karakter dat niet is toegestaan';
+$messages['selectimportfile'] = 'Selecteer een bestand om de uploaden';
+$messages['addresswriterror'] = 'Het geselecteerde adresboek is alleen lezen';
+$messages['importwait'] = 'Importeren, even geduld...';
+$messages['importerror'] = 'Importeren mislukt! Het verstuurde bestand is geen geldig vCard bestand.';
+$messages['importconfirm'] = '<b>Er zijn $inserted contactpersonen succesvol geïmporteerd, en $skipped bestaande overgeslagen</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Deze verrichting is niet toegestaan!';
+$messages['nofromaddress'] = 'Het e-mailadres mist in de geselecteerde identiteit';
+$messages['editorwarning'] = 'Door het overschakelen naar de platte tekst editor gaat alle opmaak verloren. Weet je zeker dat je verder wil gaan?';
+
?>
/*
- +-----------------------------------------------------------------------+
- | language/nn/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Per-Stian Vatne <psv@orsta.org> |
- +-----------------------------------------------------------------------+
-
- @version $Id: labels.inc 950 2008-01-04 08:04:53Z tomekp $
++-----------------------------------------------------------------------+
+| language/nn_NO/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Per-Stian Vatne <psv@orsta.org> |
+| Update: Odin Omdal Hørthe <odin.omdal@gmail.com> |
++-----------------------------------------------------------------------+
+
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels = array();
-
-// login page
-$labels['welcome'] = 'Welcome to Roundcube|Mail';
-$labels['username'] = 'Brukarnamn';
-$labels['password'] = 'Passord';
-$labels['server'] = 'Tenar';
-$labels['login'] = 'Logg inn';
-
-// taskbar
-$labels['logout'] = 'Logg ut';
-$labels['mail'] = 'E-post';
+$labels['welcome'] = 'Velkomen til $product';
+$labels['username'] = 'Brukarnamn';
+$labels['password'] = 'Passord';
+$labels['server'] = 'Tenar';
+$labels['login'] = 'Logg inn';
+$labels['logout'] = 'Logg ut';
+$labels['mail'] = 'E-post';
$labels['settings'] = 'Personlege innstillingar';
$labels['addressbook'] = 'Adressebok';
-
-// mailbox names
-$labels['inbox'] = 'Innboks';
-$labels['sent'] = 'Sende element';
-$labels['trash'] = 'Sletta element';
+$labels['inbox'] = 'Innboks';
$labels['drafts'] = 'Kladd';
-$labels['junk'] = 'Søppel';
-
-// message listing
+$labels['sent'] = 'Sende element';
+$labels['trash'] = 'Sletta element';
+$labels['junk'] = 'Søppel';
$labels['subject'] = 'Emne';
-$labels['from'] = 'Sendar';
-$labels['to'] = 'Mottakar';
-$labels['cc'] = 'Kopi';
-$labels['bcc'] = 'Blindkopi';
+$labels['from'] = 'Sendar';
+$labels['to'] = 'Mottakar';
+$labels['cc'] = 'Kopi';
+$labels['bcc'] = 'Blindkopi';
$labels['replyto'] = 'Svar-til';
-$labels['date'] = 'Dato';
-$labels['size'] = 'Storleik';
+$labels['date'] = 'Dato';
+$labels['size'] = 'Storleik';
$labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organisasjon';
-
-// aliases
-$labels['reply-to'] = $labels['replyto'];
-
+$labels['reply-to'] = 'Svar-til';
$labels['mailboxlist'] = 'Katalogar';
$labels['messagesfromto'] = 'Meldingar $from til $to av $count';
$labels['messagenrof'] = 'Melding $nr av $count';
-
-$labels['moveto'] = 'flytt til...';
+$labels['moveto'] = 'flytt til...';
$labels['download'] = 'last ned';
-
$labels['filename'] = 'Filnamn';
$labels['filesize'] = 'Filstorleik';
-
$labels['preferhtml'] = 'Føretrekk HTML';
$labels['htmlmessage'] = 'HTML-melding';
$labels['prettydate'] = 'Pene datoar';
-
$labels['addtoaddressbook'] = 'Legg til i adressebok';
-
-// weekdays short
$labels['sun'] = 'Sun';
$labels['mon'] = 'Mån';
$labels['tue'] = 'Tys';
$labels['thu'] = 'Tor';
$labels['fri'] = 'Fre';
$labels['sat'] = 'Lau';
-
-// weekdays long
-$labels['sunday'] = 'Sundag';
-$labels['monday'] = 'Måndag';
-$labels['tuesday'] = 'Tysdag';
+$labels['sunday'] = 'Sundag';
+$labels['monday'] = 'Måndag';
+$labels['tuesday'] = 'Tysdag';
$labels['wednesday'] = 'Onsdag';
-$labels['thursday'] = 'Torsdag';
-$labels['friday'] = 'Fredag';
-$labels['saturday'] = 'Laurdag';
-
+$labels['thursday'] = 'Torsdag';
+$labels['friday'] = 'Fredag';
+$labels['saturday'] = 'Laurdag';
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'Mai';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Okt';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Des';
+$labels['longjan'] = 'Januar';
+$labels['longfeb'] = 'Februar';
+$labels['longmar'] = 'Mars';
+$labels['longapr'] = 'April';
+$labels['longmay'] = 'Mai';
+$labels['longjun'] = 'Juni';
+$labels['longjul'] = 'Juli';
+$labels['longaug'] = 'August';
+$labels['longsep'] = 'September';
+$labels['longoct'] = 'Oktober';
+$labels['longnov'] = 'November';
+$labels['longdec'] = 'Desember';
$labels['today'] = 'I dag';
-
-// toolbar buttons
-$labels['writenewmessage'] = 'Skriv ei ny melding';
-$labels['replytomessage'] = 'Svar på meldinga';
-$labels['forwardmessage'] = 'Vidaresend meldinga';
-$labels['deletemessage'] = 'Flytt melding til Sletta element';
-$labels['printmessage'] = 'Skriv ut meldinga';
+$labels['checkmail'] = 'Sjå etter nye meldingar';
+$labels['writenewmessage'] = 'Skriv ei ny melding';
+$labels['replytomessage'] = 'Svar på meldinga';
+$labels['replytoallmessage'] = 'Svar til sendar og alle mottakarar';
+$labels['forwardmessage'] = 'Vidaresend meldinga';
+$labels['deletemessage'] = 'Slett melding';
+$labels['movemessagetotrash'] = 'Flytt melding til «sletta element»';
+$labels['printmessage'] = 'Skriv ut meldinga';
+$labels['previousmessage'] = 'Vis føregåande melding';
$labels['previousmessages'] = 'Vis føregåande side med meldingar';
-$labels['nextmessages'] = 'Vis neste side med med meldingar';
-$labels['backtolist'] = 'Tilbake til meldingslista';
-$labels['viewsource'] = 'Vis kjelde';
-
+$labels['firstmessage'] = 'Vis den fyrste meldinga';
+$labels['firstmessages'] = 'Vis fyrste side med meldingar';
+$labels['nextmessage'] = 'Vis den neste meldinga';
+$labels['nextmessages'] = 'Vis neste side med med meldingar';
+$labels['lastmessage'] = 'Vis den siste meldinga';
+$labels['lastmessages'] = 'Vis den siste sida med meldingar';
+$labels['backtolist'] = 'Tilbake til meldingslista';
+$labels['viewsource'] = 'Vis kjelde';
+$labels['markmessages'] = 'Marker meldingar';
+$labels['markread'] = 'Som lese';
+$labels['markunread'] = 'Som ulese';
+$labels['markflagged'] = 'Som flagga';
+$labels['markunflagged'] = 'Som uflagga';
$labels['select'] = 'Vel';
$labels['all'] = 'Alle';
$labels['none'] = 'Ingen';
$labels['unread'] = 'Uleste';
-
-// message compose
-$labels['compose'] = 'Skriv ei melding';
-$labels['sendmessage'] = 'Send meldinga no';
-$labels['addattachment'] = 'Legg ved ei fil';
-
+$labels['compact'] = 'Kompakt';
+$labels['empty'] = 'Tom';
+$labels['purge'] = 'Reinska opp';
+$labels['quota'] = 'Plassbruk';
+$labels['unknown'] = 'ukjend';
+$labels['unlimited'] = 'ubegrensa';
+$labels['quicksearch'] = 'Snøggsøk';
+$labels['resetsearch'] = 'Tilbakestill søk';
+$labels['openinextwin'] = 'Opna i nytt vindauga';
+$labels['compose'] = 'Skriv ei melding';
+$labels['savemessage'] = 'Lagra kladd';
+$labels['sendmessage'] = 'Send meldinga no';
+$labels['addattachment'] = 'Legg ved ei fil';
+$labels['charset'] = 'Teiknkoding';
+$labels['editortype'] = 'Redigeringstype';
+$labels['returnreceipt'] = 'Epost-er-lest-kvittering';
+$labels['checkspelling'] = 'Stavekontroll';
+$labels['resumeediting'] = 'Fortsett redigering';
+$labels['revertto'] = 'Tilbakestill til';
$labels['attachments'] = 'Vedlegg';
$labels['upload'] = 'Last opp';
-$labels['close'] = 'Steng';
-
-$labels['low'] = 'Låg';
-$labels['lowest'] = 'Lågast';
-$labels['normal'] = 'Normal';
-$labels['high'] = 'Høg';
+$labels['close'] = 'Steng';
+$labels['low'] = 'Låg';
+$labels['lowest'] = 'Lågast';
+$labels['normal'] = 'Normal';
+$labels['high'] = 'Høg';
$labels['highest'] = 'Høgast';
-
+$labels['nosubject'] = '(ingen emne)';
$labels['showimages'] = 'Vis bilete';
-
-// address book
-$labels['name'] = 'Visingsnamn';
+$labels['alwaysshow'] = 'Alltid vis bilete frå $sender';
+$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Vanleg tekst';
+$labels['savesentmessagein'] = 'Lagra sendt epost i';
+$labels['dontsave'] = 'Ikkje lagra';
+$labels['maxuploadsize'] = 'Maksimalt tillatte storleik på filar er $size';
+$labels['addcc'] = 'Legg til kopi';
+$labels['addbcc'] = 'Legg til blindkopi';
+$labels['addreplyto'] = 'Legg til svaradressa';
+$labels['mdnrequest'] = 'Sendaren av denne meldinga ynskjer å få kvittering når du har lest meldinga. Ynskjer du å senda denne kvitteringa?';
+$labels['receiptread'] = 'Svarkvittering (eposten-er-lest-kvittering)';
+$labels['yourmessage'] = 'Dette er ein retur-kvittering for meldinga di.';
+$labels['receiptnote'] = 'Hugs: Denne kvitteringa seier berre at meldinga di vart vist på mottakar sin datamaskin. Det er ingen garanti for at mottakaren faktisk har lese eller forstått innhaldet i meldinga.';
+$labels['name'] = 'Visingsnamn';
$labels['firstname'] = 'Førenamn';
-$labels['surname'] = 'Etternamn';
-$labels['email'] = 'E-post';
-
+$labels['surname'] = 'Etternamn';
+$labels['email'] = 'E-post';
$labels['addcontact'] = 'Legg til ny kontakt';
$labels['editcontact'] = 'Redigere kontakt';
-
-$labels['edit'] = 'Redigere';
+$labels['edit'] = 'Redigere';
$labels['cancel'] = 'Avbryt';
-$labels['save'] = 'Lagre';
+$labels['save'] = 'Lagre';
$labels['delete'] = 'Slette';
-
-$labels['newcontact'] = 'Opprett nytt kontaktkort';
-$labels['deletecontact'] = 'Slett valde kontaktar';
-$labels['composeto'] = 'Ny melding til';
+$labels['newcontact'] = 'Opprett nytt kontaktkort';
+$labels['deletecontact'] = 'Slett valde kontaktar';
+$labels['composeto'] = 'Ny melding til';
$labels['contactsfromto'] = 'Kontaktar $from til $to av $count';
-$labels['print'] = 'Skriv ut';
-$labels['export'] = 'Eksport';
-
-// settings
-$labels['settingsfor'] = 'Innstillingar for';
-
-$labels['preferences'] = 'Innstillingar';
-$labels['userpreferences'] = 'Brukarinnstillingar';
-$labels['editpreferences'] = 'Redigere brukarinnstillingar';
-
-$labels['identities'] = 'Identitetar';
-$labels['manageidentities'] = 'Administrere identitetar for denne kontoen';
-$labels['newidentity'] = 'Ny identitet';
-
-$labels['newitem'] = 'Nytt element';
-$labels['edititem'] = 'Redigere element';
-
-$labels['setdefault'] = 'Set som standard';
-$labels['language'] = 'Språk';
-$labels['timezone'] = 'Tidssone';
-$labels['pagesize'] = 'Rader pr side';
-
-$labels['folders'] = 'Mapper';
-$labels['foldername'] = 'Mappenamn';
-$labels['subscribed'] = 'Abonnert';
-$labels['create'] = 'Opprette';
-$labels['createfolder'] = 'Opprett ny mappe';
-$labels['deletefolder'] = 'Slett mappe';
-$labels['managefolders'] = 'Administrere mapper';
-
-?>
\ No newline at end of file
+$labels['print'] = 'Skriv ut';
+$labels['export'] = 'Eksport';
+$labels['exportvcards'] = 'Eksporter kontaktar i vCard-format';
+$labels['previouspage'] = 'Førre side';
+$labels['firstpage'] = 'Fyrste side';
+$labels['nextpage'] = 'Neste side';
+$labels['lastpage'] = 'Siste side';
+$labels['groups'] = 'Gruppar';
+$labels['personaladrbook'] = 'Personlege adresser';
+$labels['import'] = 'Importer';
+$labels['importcontacts'] = 'Importer kontaktar';
+$labels['importfromfile'] = 'Importer frå fil:';
+$labels['importreplace'] = 'Byt ut heile adresseboka';
+$labels['importtext'] = 'Du kan lasta opp kontaktar frå ei eksisterande adressebok.Me stør innlasting frå vCard-formatet.';
+$labels['done'] = 'Ferdig';
+$labels['settingsfor'] = 'Innstillingar for';
+$labels['preferences'] = 'Innstillingar';
+$labels['userpreferences'] = 'Brukarinnstillingar';
+$labels['editpreferences'] = 'Redigere brukarinnstillingar';
+$labels['identities'] = 'Identitetar';
+$labels['manageidentities'] = 'Administrere identitetar for denne kontoen';
+$labels['newidentity'] = 'Ny identitet';
+$labels['newitem'] = 'Nytt element';
+$labels['edititem'] = 'Redigere element';
+$labels['setdefault'] = 'Set som standard';
+$labels['autodetect'] = 'Automatisk';
+$labels['language'] = 'Språk';
+$labels['timezone'] = 'Tidssone';
+$labels['pagesize'] = 'Rader pr side';
+$labels['signature'] = 'Signartur';
+$labels['dstactive'] = 'Sumartid';
+$labels['htmleditor'] = 'Lag HTML-meldingar';
+$labels['htmlsignature'] = 'HTML-signatur';
+$labels['previewpane'] = 'Vis førehandsvisningsboks';
+$labels['skin'] = 'Bunad';
+$labels['logoutclear'] = 'Fjern alt i «sletta element» ved utlogging';
+$labels['logoutcompact'] = 'Samanpress innboks ved utlogging';
+$labels['uisettings'] = 'Brukargrensesnitt';
+$labels['serversettings'] = 'Tenarinstillingar';
+$labels['mailboxview'] = 'Epostboksvisning';
+$labels['mdnrequests'] = 'Sender-notifisering';
+$labels['askuser'] = 'spør brukaren';
+$labels['autosend'] = 'send automatisk';
+$labels['ignore'] = 'ignorer';
+$labels['readwhendeleted'] = 'Marker melding som lese ved sletting';
+$labels['flagfordeletion'] = 'Flagg meldinga for sletting i staden for å sletta';
+$labels['showinlineimages'] = 'Vis vedlagte bilete under meldinga';
+$labels['autosavedraft'] = 'Lagra kladd automatisk';
+$labels['everynminutes'] = 'kvart $n minutt';
+$labels['never'] = 'aldri';
+$labels['messagesdisplaying'] = 'Meldingar som viser';
+$labels['messagescomposition'] = 'Meldingar sin komposisjon';
+$labels['folder'] = 'Mappe';
+$labels['folders'] = 'Mapper';
+$labels['foldername'] = 'Mappenamn';
+$labels['subscribed'] = 'Abonnert';
+$labels['messagecount'] = 'Meldingar';
+$labels['create'] = 'Opprette';
+$labels['createfolder'] = 'Opprett ny mappe';
+$labels['rename'] = 'Gje nytt namn';
+$labels['renamefolder'] = 'Gje nytt namn til mappe';
+$labels['deletefolder'] = 'Slett mappe';
+$labels['managefolders'] = 'Mappehandsaming';
+$labels['specialfolders'] = 'Spesialmapper';
+$labels['sortby'] = 'Sorter etter';
+$labels['sortasc'] = 'Sorter stigande';
+$labels['sortdesc'] = 'Sorter søkkjande';
+
+?>
/*
- +-----------------------------------------------------------------------+
- | language/nn/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Per-Stian Vatne <psv@orsta.org> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/nn_NO/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Per-Stian Vatne <psv@orsta.org> |
+| Update: Odin Omdal Hørthe <odin.omdal@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 950 2008-01-04 08:04:53Z tomekp $
+@version $Id: messages.inc 2045 2008-11-11 15:09:24Z yllar $
*/
$messages = array();
-$messages['loginfailed'] = 'Feil ved innlogging';
+$messages['loginfailed'] = 'Feil ved innlogging';
$messages['cookiesdisabled'] = 'Nettlesaren din tillet ikkje informasjonskapslar (cookies)';
$messages['sessionerror'] = 'Sesjonen din er ulovleg eller har gått ut på tid';
$messages['imaperror'] = 'Feil ved tilkopling til IMAP-tenar';
$messages['nomessagesfound'] = 'Ingen meldingar i denne postkassa';
$messages['loggedout'] = 'Du har avslutta sesjonen. Ha det bra!';
$messages['mailboxempty'] = 'Postkassa er tom';
+$messages['loading'] = 'Lastar...';
$messages['loadingdata'] = 'Lastar inn data...';
+$messages['checkingmail'] = 'Ser etter nye meldingar...';
+$messages['sendingmessage'] = 'Sender melding...';
$messages['messagesent'] = 'Meldinga vart send';
+$messages['savingmessage'] = 'Lagrar melding...';
+$messages['messagesaved'] = 'Melding lagra som kladd';
$messages['successfullysaved'] = 'Meldinga vart lagra';
$messages['addedsuccessfully'] = 'Kontakta vart lagt til i adresseboka';
$messages['contactexists'] = 'Ei kontakt med denne e-postadressa eksisterer allereie';
$messages['blockedimages'] = 'For å ta vare på privatlivet ditt er eksterne bilete blokkert i denne meldinga.';
$messages['encryptedmessage'] = 'Dette er ei kryptert melding og kan ikkje visast. Orsak!';
$messages['nocontactsfound'] = 'Fann ingen kontaktar';
+$messages['contactnotfound'] = 'Fann ikkje kontakten du såg etter';
$messages['sendingfailed'] = 'Kunne ikkje sende meldinga';
+$messages['senttooquickly'] = 'Du må venta $sec sekund for å senda meldinga';
+$messages['errorsavingsent'] = 'Klarte ikkje lagra den sende meldinga';
$messages['errorsaving'] = 'Det skjedde ein feil ved lagring';
$messages['errormoving'] = 'Kunne ikkje flytte meldinga';
$messages['errordeleting'] = 'Kunne ikkje slette meldinga';
+$messages['deletecontactconfirm'] = 'Sletta kontakt(ar)?';
+$messages['deletemessagesconfirm'] = 'Sletta melding(ar)?';
+$messages['deletefolderconfirm'] = 'Sletta mappa?';
+$messages['purgefolderconfirm'] = 'Sletta alle meldingane i denne mappa?';
+$messages['formincomplete'] = 'Fyll ut skjema';
+$messages['noemailwarning'] = 'Skriv inn korrekt epostadresse';
+$messages['nonamewarning'] = 'Skriv inn namn';
+$messages['nopagesizewarning'] = 'Skriv inn sidestorleik';
+$messages['norecipientwarning'] = 'Skriv inn minst ein mottakar';
+$messages['nosubjectwarning'] = 'Emnefeltet er tomt. Vil du skriva inn eitt emne no?';
+$messages['nobodywarning'] = 'Senda melding utan tekst?';
+$messages['notsentwarning'] = 'Meldinga er ikkje sendt. Vil du kasta ho?';
+$messages['noldapserver'] = 'Vel LDAP-tenar å søkja i';
+$messages['nocontactsreturned'] = 'Fann ingen kontaktar';
+$messages['nosearchname'] = 'Skriv inn kontaktnamn eller epostadressa';
+$messages['searchsuccessful'] = 'Fann $nr meldingar';
+$messages['searchnomatch'] = 'Søket fann ingenting';
+$messages['searching'] = 'Søkjer...';
+$messages['checking'] = 'Sjekkar...';
+$messages['nospellerrors'] = 'Fann ingen stavefeil';
+$messages['folderdeleted'] = 'Mappe sletta';
+$messages['deletedsuccessfully'] = 'Sletta';
+$messages['converting'] = 'Fjerner formattering frå melding...';
+$messages['messageopenerror'] = 'Kunne ikkje lasta meldinga frå tenaren';
+$messages['fileuploaderror'] = 'Filopplasting feila';
+$messages['filesizeerror'] = 'Fila du lasta opp, er større enn maksimumsstorleiken, $size';
+$messages['copysuccess'] = 'Kopierte $nr adresser';
+$messages['copyerror'] = 'Kunne ikkje kopiera adresser';
+$messages['sourceisreadonly'] = 'Denne adressekjelda er berre lesbar';
+$messages['errorsavingcontact'] = 'Kunne ikkje lagra kontaktadressa';
+$messages['movingmessage'] = 'Flyttar melding...';
+$messages['receiptsent'] = 'Sende melding-er-lest-kvittering';
+$messages['errorsendingreceipt'] = 'Kunne ikkje senda melding-er-lest-kvittering';
+$messages['nodeletelastidentity'] = 'Du kan ikkje sletta denne identiteten, det er den siste.';
+$messages['addsubfolderhint'] = 'Denne mappa vert laga som ei undermappe til den du hev markert';
+$messages['forbiddencharacter'] = 'Mappenamn inneheld eit teikn som ikkje er støtta';
+$messages['selectimportfile'] = 'Vel ei fil til å lasta opp';
+$messages['addresswriterror'] = 'Denne adresseboka er ikkje skrivbar';
+$messages['importwait'] = 'Importerer, vent...';
+$messages['importerror'] = 'Importering feila! Fila er ikkje ei korrekt vCard-file.';
+$messages['importconfirm'] = '<b>Importerte $inserted kontakar, hoppa over $skipped oppføringar</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Ulovleg operasjon.';
-?>
\ No newline at end of file
+?>
$labels['server'] = 'Serwer';
$labels['login'] = 'Zaloguj';
$labels['logout'] = 'Wyloguj';
-$labels['mail'] = 'Skrzynka odbiorcza';
+$labels['mail'] = 'Poczta';
$labels['settings'] = 'Ustawienia';
$labels['addressbook'] = 'Książka adresowa';
$labels['inbox'] = 'Odebrane';
$labels['to'] = 'Odbiorca';
$labels['cc'] = 'Kopia';
$labels['bcc'] = 'Ukryta kopia';
-$labels['replyto'] = 'Odpowiedz do';
+$labels['replyto'] = 'Odp. do';
$labels['date'] = 'Data';
$labels['size'] = 'Rozmiar';
$labels['priority'] = 'Priorytet';
$labels['filesize'] = 'Rozmiar pliku';
$labels['preferhtml'] = 'Domyślny HTML';
$labels['htmlmessage'] = 'Wiadomość HTML';
+$labels['showremoteimages'] = 'Wyświetlaj obrazki w wiadomościach';
+$labels['fromknownsenders'] = 'od znanych nadawców';
+$labels['always'] = 'zawsze';
$labels['prettydate'] = 'Ładne daty';
+$labels['showinlineimages'] = 'Wyświetlaj załączone obrazki pod treścią wiadomości';
+$labels['messagesdisplaying'] = 'Wyświetlanie wiadomości';
+$labels['messagescomposition'] = 'Tworzenie wiadomości';
$labels['addtoaddressbook'] = 'Dodaj do książki adresowej ';
$labels['sun'] = 'Nd';
$labels['mon'] = 'Pn';
$labels['markmessages'] = 'Oznacz wiadomość';
$labels['markread'] = 'Jako przeczytaną';
$labels['markunread'] = 'Jako nieprzeczytaną';
+$labels['markflagged'] = 'Jako oflagowaną';
+$labels['markunflagged'] = 'Jako nieoflagowaną';
$labels['select'] = 'Zaznacz';
$labels['all'] = 'Wszystkie';
$labels['none'] = 'Anuluj';
$labels['unread'] = 'Nieprzeczytane';
+$labels['flagged'] = 'Oznaczone';
+$labels['unanswered'] = 'Bez odpowiedzi';
+$labels['filter'] = 'Filtr';
$labels['compact'] = 'Porządkuj';
$labels['empty'] = 'Opróżnij';
$labels['purge'] = 'Oczyść';
$labels['unlimited'] = 'bez limitu';
$labels['quicksearch'] = 'Szybkie wyszukiwanie';
$labels['resetsearch'] = 'Wyczyść filtr';
+$labels['openinextwin'] = 'Otwórz w nowym oknie';
$labels['compose'] = 'Utwórz wiadomość';
$labels['savemessage'] = 'Zapisz kopię roboczą';
$labels['sendmessage'] = 'Wyślij teraz';
$labels['highest'] = 'Bardzo wysoki';
$labels['nosubject'] = '(brak tematu)';
$labels['showimages'] = 'Wyświetl obrazki';
+$labels['alwaysshow'] = 'Zawsze wyświetlaj obrazki od $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Zwykły tekst';
+$labels['savesentmessagein'] = 'Zapisz wiadomość w';
+$labels['dontsave'] = 'nie zapisuj';
$labels['addcc'] = 'Dodaj Cc';
$labels['addbcc'] = 'Dodaj Bcc';
$labels['addreplyto'] = 'Dodaj Reply-To';
$labels['dstactive'] = 'Czas letni';
$labels['htmleditor'] = 'Twórz wiadomości HTML';
$labels['htmlsignature'] = 'Podpis w HTML';
-$labels['previewpane'] = 'Pokaż podgląd';
+$labels['previewpane'] = 'Pokaż podgląd wiadomości';
+$labels['skin'] = 'Wygląd interfejsu';
$labels['logoutclear'] = 'Przy wylogowaniu opróżnij Kosz';
$labels['logoutcompact'] = 'Przy wylogowaniu porządkuj folder Odebrane';
$labels['uisettings'] = 'Interfejs użytkownika';
$labels['askuser'] = 'spytaj użytkownika';
$labels['autosend'] = 'wyślij automatycznie';
$labels['ignore'] = 'ignoruj';
+$labels['mimeparamfolding'] = 'Nazwy załączników';
+$labels['2231folding'] = 'zgodne z RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'zgodne z RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'zgodne z RFC 2047 (inne)';
+$labels['advancedoptions'] = 'opcje zaawansowane';
$labels['readwhendeleted'] = 'Podczas usuwania oznacz wiadomość jako przeczytaną';
$labels['flagfordeletion'] = 'Oznacz wiadomość do usunięcia zamiast ją usuwać';
+$labels['skipdeleted'] = 'Ukryj wiadomości oznaczone do usunięcia';
$labels['autosavedraft'] = 'Automatyczny zapis tworzonej wiadomości';
-$labels['everynminutes'] = 'co $n minut';
+$labels['everynminutes'] = 'co $n minut(y)';
+$labels['keepalive'] = 'Sprawdzaj czy nadeszły nowe wiadomości';
+$labels['keepaliveevery'] = 'co $n minut(y)';
$labels['never'] = 'nigdy';
+$labels['focusonnewmessage'] = 'Informuj przeglądarkę o nowej wiadomości';
$labels['folder'] = 'Folder';
$labels['folders'] = 'Foldery';
$labels['foldername'] = 'Nazwa folderu';
$labels['renamefolder'] = 'Zmień nazwę folderu';
$labels['deletefolder'] = 'Usuń folder';
$labels['managefolders'] = 'Zarządzaj folderami';
+$labels['specialfolders'] = 'Foldery specjalne';
$labels['sortby'] = 'Sortuj wg';
$labels['sortasc'] = 'Rosnąco';
$labels['sortdesc'] = 'Malejąco';
+$labels['import'] = 'Importuj';
+$labels['importcontacts'] = 'Import kontaktów';
+$labels['importfromfile'] = 'Import z pliku:';
+$labels['importreplace'] = 'Zastąp całą książkę adresową';
+$labels['importtext'] = 'Możesz dodać kontakty z istniejącej książki adresowej.<br/>Aktualnie możliwy jest import kontaktów w formacie <a href="http://en.wikipedia.org/wiki/VCard">vCard</a>.';
+$labels['done'] = 'Wykonane';
+$labels['autodetect'] = '- wybór automatyczny -';
+$labels['maxuploadsize'] = 'Maksymalny rozmiar pliku to $size';
+$labels['exportvcards'] = 'Eksport kontaktów w formacie vCard';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+$labels['checkallfolders'] = 'Sprawdzaj czy nadeszły nowe wiadomości we wszystkich folderach';
?>
$messages['nocontactsfound'] = 'Nie znaleziono kontaktu!';
$messages['contactnotfound'] = 'Szukany kontakt nie został odnaleziony';
$messages['sendingfailed'] = 'Nie udało się wysłać wiadomości!';
-$messages['errorsaving'] = 'Błąd podczas zapisu!';
+$messages['senttooquickly'] = 'Musisz poczekać $sec sek. aby móc wysłać tą wiadomość!';
+$messages['errorsavingsent'] = 'Wystąpił błąd podczas zapisu wysłanej wiadomości!';
+$messages['errorsaving'] = 'Wystąpił błąd podczas zapisu!';
$messages['errormoving'] = 'Nie można przenieść wybranej wiadomości!';
$messages['errordeleting'] = 'Nie można usunąć wiadomości!';
$messages['deletecontactconfirm'] = 'Czy na pewno chcesz usunąć wybrane kontakty?';
$messages['deletemessagesconfirm'] = 'Czy na pewno chcesz usunąć wybrane wiadomości?';
$messages['deletefolderconfirm'] = 'Czy na pewno chcesz usunąć wybrany folder?';
$messages['purgefolderconfirm'] = 'Czy na pewno chcesz usunąć wszystkie wiadomości w tym folderze?';
+$messages['foldercreating'] = 'Dodawanie folderu...';
+$messages['folderdeleting'] = 'Usuwanie folderu...';
+$messages['folderrenaming'] = 'Zmiana nazwy folderu...';
+$messages['foldermoving'] = 'Przenoszenie folderu...';
$messages['formincomplete'] = 'Uzupełnij formularz!';
$messages['noemailwarning'] = 'Podaj poprawny adres e-mail!';
$messages['nonamewarning'] = 'Podaj nazwę!';
$messages['nopagesizewarning'] = 'Podaj poprawną wartość!';
+$messages['nosenderwarning'] = 'Podaj adres nadawcy!';
$messages['norecipientwarning'] = 'Podaj co najmniej jednego odbiorcę!';
$messages['nosubjectwarning'] = 'Nie podano tematu wiadomości. Czy chcesz go teraz uzupełnić?';
$messages['nobodywarning'] = 'Ta wiadomość jest pusta, czy mimo to chcesz ją wysłać?';
$messages['nospellerrors'] = 'Nie znaleziono błędów w pisowni.';
$messages['folderdeleted'] = 'Folder został pomyślnie usunięty.';
$messages['deletedsuccessfully'] = 'Usunięto';
-$messages['converting'] = 'Konwertowanie wiadomości...';
+$messages['converting'] = 'Konwertowanie tekstu...';
$messages['messageopenerror'] = 'Nie można załadować wiadomości z serwera';
$messages['fileuploaderror'] = 'Załączanie pliku nie powiodło się';
$messages['filesizeerror'] = 'Plik przekracza maksymalną wielkość $size';
$messages['nodeletelastidentity'] = 'Nie można skasować tej tożsamości, ponieważ jest ostatnią.';
$messages['addsubfolderhint'] = 'Ten folder zostanie utworzony jako podfolder aktualnie wybranego.';
$messages['forbiddencharacter'] = 'Nazwa folderu zawiera niedozwolony znak';
+$messages['selectimportfile'] = 'Proszę wybrać plik do wysłania';
+$messages['addresswriterror'] = 'Wybrana książka adresowa jest tylko-do-odczytu';
+$messages['importwait'] = 'Importowanie, proszę czekać...';
+$messages['importerror'] = 'Błąd! Pobrany plik nie jest poprawnym plikiem vCard.';
+$messages['importconfirm'] = '<b>Pomyślnie dodano $inserted kontaktów, pominięto $skipped istniejących wpisów</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Niedozwolona operacja!';
+$messages['nofromaddress'] = 'Brak adresu e-mail w wybranej tożsamości';
+$messages['editorwarning'] = 'Zmiana edytora spowoduje utratę formatowania tekstu. Czy jesteś pewien, że chcesz to zrobić?';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/pt_BR/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Anderson S. Ferreira <anderson@cnpm.embrapa.br> |
- | Robson F. Ramaldes <rframaldes@gmail.com> |
- | Alessandro Lenzi <alessandro@mistymountain.com.br> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/pt_BR/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Anderson S. Ferreira <anderson@cnpm.embrapa.br> |
+| Robson F. Ramaldes <rframaldes@gmail.com> |
+| Alessandro Lenzi <alessandro@mistymountain.com.br> |
+| Gervasio Antonio <gdsa32-translations@yahoo.com.br> |
+| Victor Benincasa <vbenincasa@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 1113 2008-02-18 12:47:25Z yllar $
+@version $Id: labels.inc 2184 2008-12-21 09:30:25Z yllar $
*/
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Configurações pessoais';
$labels['addressbook'] = 'Catálogo de endereços';
-$labels['inbox'] = 'Entrada';
+$labels['inbox'] = 'Caixa de entrada';
$labels['drafts'] = 'Rascunhos';
$labels['sent'] = 'Enviados';
$labels['trash'] = 'Lixeira';
-$labels['junk'] = 'Junk';
+$labels['junk'] = 'Spam';
$labels['subject'] = 'Assunto';
$labels['from'] = 'Remetente';
$labels['to'] = 'Para';
$labels['cc'] = 'Cópia';
-$labels['bcc'] = 'Cópia Oculta';
+$labels['bcc'] = 'Cópia Oculta (Bcc)';
$labels['replyto'] = 'Responder para';
$labels['date'] = 'Data';
$labels['size'] = 'Tamanho';
$labels['mailboxlist'] = 'Pastas';
$labels['messagesfromto'] = 'Mensagens $from - $to de $count';
$labels['messagenrof'] = 'Mensagem $nr de $count';
-$labels['moveto'] = 'mover para...';
-$labels['download'] = 'download';
+$labels['moveto'] = 'Mover para...';
+$labels['download'] = 'Download';
$labels['filename'] = 'Arquivo';
$labels['filesize'] = 'Tamanho';
-$labels['preferhtml'] = 'Preferir HTML';
+$labels['preferhtml'] = 'Exibir formatação HTML em mensagens';
$labels['htmlmessage'] = 'Mensagem HTML';
-$labels['prettydate'] = 'Formatar datas';
+$labels['prettydate'] = 'Exibir datas amigáveis';
$labels['addtoaddressbook'] = 'Incluir no catálogo de endereços';
$labels['sun'] = 'Dom';
$labels['mon'] = 'Seg';
$labels['thursday'] = 'Quinta-feira';
$labels['friday'] = 'Sexta-feira';
$labels['saturday'] = 'Sábado';
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Fev';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Abr';
+$labels['may'] = 'Mai';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Ago';
+$labels['sep'] = 'Set';
+$labels['oct'] = 'Out';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dez';
+$labels['longjan'] = 'Janeiro';
+$labels['longfeb'] = 'Fevereiro';
+$labels['longmar'] = 'Março';
+$labels['longapr'] = 'Abril';
+$labels['longmay'] = 'Maio';
+$labels['longjun'] = 'Junho';
+$labels['longjul'] = 'Julho';
+$labels['longaug'] = 'Agosto';
+$labels['longsep'] = 'Setembro';
+$labels['longoct'] = 'Outubro';
+$labels['longnov'] = 'Novembro';
+$labels['longdec'] = 'Dezembro';
$labels['today'] = 'Hoje';
-$labels['checkmail'] = 'Verificar se há novas mensagens.';
+$labels['checkmail'] = 'Verificar se há novas mensagens';
$labels['writenewmessage'] = 'Criar nova mensagem';
-$labels['replytomessage'] = 'Responder';
-$labels['replytoallmessage'] = 'Responder para todos';
-$labels['forwardmessage'] = 'Encaminhar';
-$labels['deletemessage'] = 'Excluir';
-$labels['movemessagetotrash'] = 'Mover para Lixeira';
-$labels['printmessage'] = 'Imprimir';
+$labels['replytomessage'] = 'Responder para o remetente';
+$labels['replytoallmessage'] = 'Responder para o remetente e todos destinatários';
+$labels['forwardmessage'] = 'Encaminhar a mensagem';
+$labels['deletemessage'] = 'Excluir a mensagem';
+$labels['movemessagetotrash'] = 'Mover a mensagem para a Lixeira';
+$labels['printmessage'] = 'Imprimir a mensagem';
$labels['previousmessage'] = 'Mensagem Anterior';
$labels['previousmessages'] = 'Página Anterior';
$labels['firstmessage'] = 'Primeira Mensagem';
$labels['firstmessages'] = 'Primeira Página';
$labels['nextmessage'] = 'Próxima Mensagem';
-$labels['nextmessages'] = 'Próxima Pána';
+$labels['nextmessages'] = 'Próxima Página';
$labels['lastmessage'] = 'Última Mensagem';
$labels['lastmessages'] = 'Última Página';
-$labels['backtolist'] = 'Voltar';
-$labels['viewsource'] = 'Exibir código fonte';
+$labels['backtolist'] = 'Voltar para a lista de mensagens';
+$labels['viewsource'] = 'Exibir código-fonte';
$labels['markmessages'] = 'Marcar mensagens';
$labels['markread'] = 'como lidas';
$labels['markunread'] = 'como não lidas';
+$labels['markflagged'] = 'como sinalizadas';
+$labels['markunflagged'] = 'como não sinalizadas';
$labels['select'] = 'Selecionar';
$labels['all'] = 'Todas';
$labels['none'] = 'Nenhuma';
$labels['unread'] = 'Não lidas';
+$labels['flagged'] = 'Sinalizada';
+$labels['unanswered'] = 'Não respondida';
+$labels['filter'] = 'Filtro';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Esvaziar';
$labels['purge'] = 'Apagar';
$labels['quota'] = 'Utilização';
$labels['unknown'] = 'desconhecido';
-$labels['unlimited'] = 'Sem limitação';
-$labels['quicksearch'] = 'Pesquisa Rápida';
+$labels['unlimited'] = 'ilimitado';
+$labels['quicksearch'] = 'Pesquisa rápida';
$labels['resetsearch'] = 'Limpar';
+$labels['openinextwin'] = 'Abrir em nova janela';
$labels['compose'] = 'Escrever mensagem';
$labels['savemessage'] = 'Salvar Rascunho';
$labels['sendmessage'] = 'Enviar';
-$labels['addattachment'] = 'Anexar';
+$labels['addattachment'] = 'Anexar um arquivo';
$labels['charset'] = 'Codificação';
-$labels['editortype'] = 'Tipo';
-$labels['returnreceipt'] = 'Receber Confirmação';
-$labels['checkspelling'] = 'Verificar Ortografia';
-$labels['resumeediting'] = 'Continuar';
+$labels['editortype'] = 'Tipo de editor';
+$labels['returnreceipt'] = 'Solicitar confirmação de recebimento';
+$labels['checkspelling'] = 'Verificar ortografia';
+$labels['resumeediting'] = 'Continuar a edição';
$labels['revertto'] = 'Reverter para';
$labels['attachments'] = 'Anexos';
$labels['upload'] = 'Enviar';
$labels['close'] = 'Fechar';
-$labels['low'] = 'Mais baixa';
-$labels['lowest'] = 'Baixa';
+$labels['low'] = 'Baixa';
+$labels['lowest'] = 'Mais baixa';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alta';
$labels['highest'] = 'Mais alta';
-$labels['nosubject'] = '(Sem assunto)';
+$labels['nosubject'] = '(sem assunto)';
$labels['showimages'] = 'Exibir imagens';
+$labels['alwaysshow'] = 'Sempre exibir imagens de $sender';
$labels['htmltoggle'] = 'HTML';
-$labels['plaintoggle'] = 'Texto Puro';
+$labels['plaintoggle'] = 'Texto simples';
+$labels['savesentmessagein'] = 'Salvar mensagens enviadas em';
+$labels['dontsave'] = 'não salvar';
+$labels['maxuploadsize'] = 'Tamanho máximo permitido do arquivo é $size';
$labels['addcc'] = 'Cópia';
$labels['addbcc'] = 'Cópia Oculta';
$labels['addreplyto'] = 'Responder para';
$labels['mdnrequest'] = 'O remetente desta mensagem deseja ser notificado quando você ler esta mensagem. Você permite o envio desta notificação?';
-$labels['receiptread'] = 'Confirmacao de Leitura (Exibida)';
-$labels['yourmessage'] = 'Esta e uma confirmacao de leitura da sua mensagem.';
-$labels['receiptnote'] = 'Nota: Esta confirmacao de leitura somente informa que a mensagem foi aberta no computador do destinatario.\\n Nao ha garantia que o destinatario tenha lido ou compreendido o conteudo da mensagem.';
-$labels['name'] = 'Nome completo';
+$labels['receiptread'] = 'Confirmação de Leitura (Exibida)';
+$labels['yourmessage'] = 'Esta é uma confirmação de leitura da sua mensagem';
+$labels['receiptnote'] = 'Nota: Esta confirmação de leitura somente informa que a mensagem foi aberta no computador do destinatário.\n Não há garantia que o destinatário tenha lido ou compreendido o conteúdo da mensagem.';
+$labels['name'] = 'Nome';
$labels['firstname'] = 'Primeiro nome';
$labels['surname'] = 'Sobrenome';
$labels['email'] = 'E-Mail';
$labels['newcontact'] = 'Criar novo contato';
$labels['deletecontact'] = 'Apagar contatos selecionados';
$labels['composeto'] = 'Escrever mensagem para';
-$labels['contactsfromto'] = 'Contatos de $from à $to de $count';
+$labels['contactsfromto'] = 'Contatos $from - $to de $count';
$labels['print'] = 'Imprimir';
$labels['export'] = 'Exportar';
+$labels['exportvcards'] = 'Exportar os contatos em formato vCard';
$labels['previouspage'] = 'Página Anterior';
$labels['firstpage'] = 'Primeira Página ';
$labels['nextpage'] = 'Próxima Página';
$labels['lastpage'] = 'Última Página';
$labels['groups'] = 'Grupos';
-$labels['personaladrbook'] = 'Endereços Pessoais';
+$labels['personaladrbook'] = 'Endereços pessoais';
+$labels['import'] = 'Importar';
+$labels['importcontacts'] = 'Importar contatos';
+$labels['importfromfile'] = 'Importar de arquivo:';
+$labels['importreplace'] = 'Substituir o catálogo de endereços atual';
+$labels['importtext'] = 'Você pode enviar contatos de um catálogo de endereços existente.<br/>Os contatos devem ser enviados no formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a>.';
+$labels['done'] = 'Finalizado';
$labels['settingsfor'] = 'Configurações para';
$labels['preferences'] = 'Preferências';
$labels['userpreferences'] = 'Preferências do usuário';
$labels['editpreferences'] = 'Editar preferências do usuário';
$labels['identities'] = 'Identidades';
-$labels['manageidentities'] = 'Gerenciar identidades para esta conta';
+$labels['manageidentities'] = 'Gerenciar identidades desta conta';
$labels['newidentity'] = 'Nova identidade';
$labels['newitem'] = 'Novo item';
$labels['edititem'] = 'Editar item';
$labels['setdefault'] = 'Padrão';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Idioma';
-$labels['timezone'] = 'Fuso Horário';
-$labels['pagesize'] = 'Linhas por página';
+$labels['timezone'] = 'Fuso horário';
+$labels['pagesize'] = 'Mensagens por página';
$labels['signature'] = 'Assinatura';
-$labels['dstactive'] = 'Horário de Verão';
-$labels['htmleditor'] = 'Criar mensagens em HTML';
+$labels['dstactive'] = 'Horário de verão';
+$labels['htmleditor'] = 'Criar mensagens formatadas em HTML';
$labels['htmlsignature'] = 'Assinatura em HTML';
-$labels['previewpane'] = 'Exibir Pré-visualização';
-$labels['autosavedraft'] = 'Salvar Rascunho automaticamente';
+$labels['previewpane'] = 'Exibir pré-visualização';
+$labels['skin'] = 'Aparência da interface (tema)';
+$labels['logoutclear'] = 'Esvaziar a Lixeira ao sair';
+$labels['logoutcompact'] = 'Compactar a Caixa de Entrada ao sair';
+$labels['uisettings'] = 'Interface de usuário';
+$labels['serversettings'] = 'Configurações do Servidor';
+$labels['mailboxview'] = 'Exibição da Caixa de Correio';
+$labels['mdnrequests'] = 'Notificações ao remetente';
+$labels['askuser'] = 'perguntar ao usuário';
+$labels['autosend'] = 'enviar automaticamente';
+$labels['ignore'] = 'ignorar';
+$labels['readwhendeleted'] = 'Marcar a mensagem como lida ao excluir';
+$labels['flagfordeletion'] = 'Sinalizar a mensagem para exclusão ao invés de excluir';
+$labels['skipdeleted'] = 'Não exibir mensagens excluídas';
+$labels['showremoteimages'] = 'Exibir imagens externas';
+$labels['fromknownsenders'] = 'de remetentes conhecidos';
+$labels['always'] = 'sempre';
+$labels['showinlineimages'] = 'Exibir imagens anexadas abaixo da mensagem';
+$labels['autosavedraft'] = 'Salvar rascunho automaticamente';
$labels['everynminutes'] = 'a cada $n minutos';
+$labels['keepaliveevery'] = 'a cada $n minuto(s)';
+$labels['keepalive'] = 'Verificar se há novas mensagens';
$labels['never'] = 'nunca';
+$labels['messagesdisplaying'] = 'Exibição de mensagens';
+$labels['messagescomposition'] = 'Composição de mensagens';
+$labels['mimeparamfolding'] = 'Nomes de anexos';
+$labels['2231folding'] = 'RFC 2231 Integral (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'RFC 2047 Integral (outro)';
+$labels['advancedoptions'] = 'Opções avançadas';
+$labels['focusonnewmessage'] = 'Focar janela do navegador na nova mensagem';
+$labels['checkallfolders'] = 'Verificar se há novas mensagens em todas as pastas';
$labels['folder'] = 'Pasta';
$labels['folders'] = 'Pastas';
$labels['foldername'] = 'Nome da pasta';
-$labels['subscribed'] = 'Assinado';
+$labels['subscribed'] = 'Ativo';
$labels['messagecount'] = 'Mensagens';
$labels['create'] = 'Criar';
$labels['createfolder'] = 'Criar nova pasta';
$labels['rename'] = 'Renomear';
-$labels['renamefolder'] = 'Renomear Pasta';
+$labels['renamefolder'] = 'Renomear pasta';
$labels['deletefolder'] = 'Apagar pasta';
$labels['managefolders'] = 'Gerenciar pastas';
+$labels['specialfolders'] = 'Pastas especiais';
$labels['sortby'] = 'Ordenado por';
$labels['sortasc'] = 'Ascendente';
$labels['sortdesc'] = 'Descendente';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/pt_BR/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Anderson S. Ferreira <anderson@cnpm.embrapa.br> |
- | Robson F. Ramaldes <rframaldes@gmail.com> |
- | Alessandro Lenzi <alessandro@mistymountain.com.br> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/pt_BR/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Anderson S. Ferreira <anderson@cnpm.embrapa.br> |
+| Robson F. Ramaldes <rframaldes@gmail.com> |
+| Alessandro Lenzi <alessandro@mistymountain.com.br> |
+| Gervasio Antonio <gdsa32-translations@yahoo.com.br> |
+| Victor Benincasa <vbenincasa@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1113 2008-02-18 12:47:25Z yllar $
+@version $Id: messages.inc 2184 2008-12-21 09:30:25Z yllar $
*/
$messages = array();
-$messages['loginfailed'] = 'Falha no login.';
-$messages['cookiesdisabled'] = 'Seu navegador não suporta cookies.';
-$messages['sessionerror'] = 'A sessão do seu navegador é inválida ou expirou.';
-$messages['imaperror'] = 'Falha na conexão com o servidor IMAP.';
-$messages['nomessagesfound'] = 'Nenhuma mensagem foi encontrada.';
+$messages['loginfailed'] = 'Falha no login';
+$messages['cookiesdisabled'] = 'Seu navegador não suporta cookies';
+$messages['sessionerror'] = 'A sessão do seu navegador é inválida ou expirou';
+$messages['imaperror'] = 'Falha na conexão com o servidor IMAP';
+$messages['nomessagesfound'] = 'Nenhuma mensagem foi encontrada';
$messages['loggedout'] = 'Sua sessão foi finalizada com sucesso. Até breve!';
-$messages['mailboxempty'] = 'A caixa de mensagens está vazia.';
+$messages['mailboxempty'] = 'A caixa de mensagens está vazia';
$messages['loading'] = 'Carregando...';
$messages['loadingdata'] = 'Carregando informações...';
$messages['checkingmail'] = 'Verificando se há novas mensagens...';
-$messages['sendingmessage'] = 'Enviando...';
-$messages['messagesent'] = 'Mensagem enviada';
+$messages['sendingmessage'] = 'Enviando mensagem...';
+$messages['messagesent'] = 'Mensagem enviada com sucesso';
$messages['savingmessage'] = 'Salvando Mensagem...';
-$messages['messagesaved'] = 'Rascunho Salvo';
-$messages['successfullysaved'] = 'Operação realizada com sucesso.';
-$messages['addedsuccessfully'] = 'Contato incluído com sucesso.';
-$messages['contactexists'] = 'Um contato com esse e-mail já existe';
+$messages['messagesaved'] = 'Mensagem gravada como rascunho';
+$messages['successfullysaved'] = 'Gravado com sucesso';
+$messages['addedsuccessfully'] = 'Contato incluído com sucesso';
+$messages['contactexists'] = 'Já existe um contato com esse e-mail';
$messages['blockedimages'] = 'Para proteger sua privacidade, as imagens desta mensagem foram bloqueadas';
$messages['encryptedmessage'] = 'Esta mensagem está criptografada e não pode ser exibida. Desculpe.';
$messages['nocontactsfound'] = 'Nenhum contato foi encontrado';
$messages['contactnotfound'] = 'O contato solicitado não foi encontrado';
$messages['sendingfailed'] = 'Falha no envio da mensagem';
-$messages['errorsaving'] = 'Ocorreu um erro ao Salvar';
+$messages['senttooquickly'] = 'Aguarde $sec s para enviar a mensagem';
+$messages['errorsavingsent'] = 'Ocorreu um erro ao salvar a mensagem enviada';
+$messages['errorsaving'] = 'Ocorreu um erro ao salvar';
$messages['errormoving'] = 'Não foi possível mover a mensagem';
$messages['errordeleting'] = 'Não foi possível apagar a mensagem';
$messages['deletecontactconfirm'] = 'Deseja realmente excluir o(s) contato(s) selecionado(s)?';
$messages['deletemessagesconfirm'] = 'Deseja realmente excluir a(s) mensagem(s) selecionada(s)?';
$messages['deletefolderconfirm'] = 'Deseja realmente excluir esta pasta?';
$messages['purgefolderconfirm'] = 'Deseja realmente excluir todas mensagens desta pasta?';
-$messages['formincomplete'] = 'Os campos não foram completamente preenchidos.';
-$messages['noemailwarning'] = 'Por favor, informe um endereço de e-mail válido.';
-$messages['nonamewarning'] = 'Por favor, informe o nome.';
-$messages['nopagesizewarning'] = 'Por favor, informe o tamanho da página.';
-$messages['norecipientwarning'] = 'Por favor, informe pelo menos um destinatário.';
-$messages['nosubjectwarning'] = 'O campo assunto não foi informado. Deseja incluí-lo agora?';
+$messages['foldercreating'] = 'Criando pasta...';
+$messages['folderdeleting'] = 'Apagando pasta...';
+$messages['folderrenaming'] = 'Renomeando pasta...';
+$messages['foldermoving'] = 'Movendo pasta...';
+$messages['formincomplete'] = 'Os campos não foram completamente preenchidos';
+$messages['noemailwarning'] = 'Por favor, informe um endereço de e-mail válido';
+$messages['nonamewarning'] = 'Por favor, informe o nome';
+$messages['nopagesizewarning'] = 'Por favor, informe o tamanho da página';
+$messages['nosenderwarning'] = 'Por favor, informe o e-mail do remetente';
+$messages['norecipientwarning'] = 'Por favor, informe pelo menos um destinatário';
+$messages['nosubjectwarning'] = 'O campo "Assunto" não foi preenchido. Deseja incluí-lo agora?';
$messages['nobodywarning'] = 'Enviar a mensagem sem texto?';
-$messages['notsentwarning'] = 'A mensegem não foi enviada, deseja excluí-la?';
+$messages['notsentwarning'] = 'A mensagem não foi enviada, deseja excluí-la?';
$messages['noldapserver'] = 'Por favor, selecione um servidor LDAP para a pesquisa';
-$messages['nocontactsreturned'] = 'Nenhum contato foi encontrado.';
+$messages['nocontactsreturned'] = 'Nenhum contato foi encontrado';
$messages['nosearchname'] = 'Por favor, informe o nome do contado ou seu endereço de e-mail';
$messages['searchsuccessful'] = '$nr mensagens encontradas';
$messages['searchnomatch'] = 'A pesquisa não encontrou resultados';
$messages['searching'] = 'Pesquisando...';
$messages['checking'] = 'Verificando...';
-$messages['nospellerrors'] = 'Nenhum erro ortográfico encontrado.';
+$messages['nospellerrors'] = 'Nenhum erro ortográfico foi encontrado';
$messages['folderdeleted'] = 'Pasta excluída com sucesso';
$messages['deletedsuccessfully'] = 'Excluído com sucesso';
-$messages['converting'] = 'Removendo formatação da Mensagem...';
+$messages['converting'] = 'Removendo formatação...';
$messages['messageopenerror'] = 'Não foi possível carregar a mensagem do servidor';
$messages['fileuploaderror'] = 'Falha ao enviar o arquivo';
-$messages['filesizeerror'] = 'O Arquivo enviado excede o tamanho máximo de $size';
+$messages['filesizeerror'] = 'O arquivo enviado excede o tamanho máximo de $size';
$messages['copysuccess'] = '$nr endereço(s) copiado(s) com sucesso';
-$messages['copyerror'] = 'Não foi possível copiar quaisquer endereços';
+$messages['copyerror'] = 'Não foi possível copiar os endereços';
$messages['sourceisreadonly'] = 'Esta fonte de endereço é somente leitura';
-$messages['errorsavingcontact'] = 'Não foi possível salvar o endereço de contato.';
+$messages['errorsavingcontact'] = 'Não foi possível salvar o endereço de contato';
$messages['movingmessage'] = 'Movendo mensagem...';
-$messages['receiptsent'] = 'Confirmação de Leitura enviada com sucesso.';
-$messages['errorsendingreceipt'] = 'Não foi possível enviar a confirmação de leitura.';
-$messages['nodeletelastidentity'] = 'Você não pode excluir sua única identidade.';
-$messages['addsubfolderhint'] = 'Esta pasta será criada como uma sub-pasta da que está selecionada.';
+$messages['receiptsent'] = 'Confirmação de recebimento enviada com sucesso';
+$messages['errorsendingreceipt'] = 'Não foi possível enviar a confirmação de recebimento';
+$messages['nodeletelastidentity'] = 'Você não pode excluir a única identidade';
+$messages['addsubfolderhint'] = 'Esta pasta será criada como uma sub-pasta da que está selecionada';
+$messages['forbiddencharacter'] = 'O nome da pasta contém um caractere não permitido';
+$messages['selectimportfile'] = 'Selecione o arquivo para envio';
+$messages['addresswriterror'] = 'O catálogo de endereços selecionado não tem permissão de modificação';
+$messages['importwait'] = 'Importando, aguarde por favor...';
+$messages['importerror'] = 'Falha na importação! O arquivo enviado não é um arquivo vCard válido.';
+$messages['importconfirm'] = '<b>Foram importados com sucesso $inserted contatos, e $skipped contatos foram ignorados</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operação não permitida!';
+$messages['nofromaddress'] = 'Falta o endereço de email na identidade selecionada';
+$messages['editorwarning'] = 'Mudar para o editor de texto simples elimina toda a formatação de texto. Deseja continuar?';
-?>
\ No newline at end of file
+?>
| Nuno Costa <nuno@criacaoweb.net> |
+-----------------------------------------------------------------------+
-@version $Id: labels.inc 1402 2008-05-19 07:50:25Z alec $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['markmessages'] = 'Marcar mensagens';
$labels['markread'] = 'Como lidas';
$labels['markunread'] = 'Como não lidas';
+$labels['markflagged'] = 'Com sinalização';
+$labels['markunflagged'] = 'Sem sinalização';
$labels['select'] = 'Seleccionar';
$labels['all'] = 'Todas';
$labels['none'] = 'Nenhuma';
$labels['unlimited'] = 'ilimitado';
$labels['quicksearch'] = 'Pesquisa rápida';
$labels['resetsearch'] = 'Limpar pesquisa';
+$labels['openinextwin'] = 'Abrir numa nova janela';
$labels['compose'] = 'Escrever mensagem';
$labels['savemessage'] = 'Salvar rascunho';
$labels['sendmessage'] = 'Enviar';
$labels['highest'] = 'Mais alta';
$labels['nosubject'] = '(sem assunto)';
$labels['showimages'] = 'Exibir imagens';
+$labels['alwaysshow'] = 'Mostrar sempre imagens a partir de $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texto simples';
+$labels['savesentmessagein'] = 'Salvar mensagem enviada em';
+$labels['dontsave'] = 'não salvar';
+$labels['maxuploadsize'] = 'Tamanho máximo permitido do ficheiro é $size';
$labels['addcc'] = 'Adicionar Cc';
$labels['addbcc'] = 'Adicionar Bcc';
$labels['addreplyto'] = 'Adicionar "Responder para"';
$labels['contactsfromto'] = 'Contactos $from - $to of $count';
$labels['print'] = 'Imprimir';
$labels['export'] = 'Exportar';
+$labels['exportvcards'] = 'Exportar contactos no formato vCard';
$labels['previouspage'] = 'Exibir página anterior';
$labels['firstpage'] = 'Exibir primeira página';
$labels['nextpage'] = 'Exibir próxima página';
$labels['lastpage'] = 'Exibir última página';
$labels['groups'] = 'Grupos';
$labels['personaladrbook'] = 'Endereços pessoais';
+$labels['import'] = 'Importar';
+$labels['importcontacts'] = 'Importar contactos';
+$labels['importfromfile'] = 'Importar do ficheiro:';
+$labels['importreplace'] = 'Substituir todo o livro de endereços';
+$labels['importtext'] = 'Pode submeter contactos a partir de um livro de endereços.Actualmente suportamos importação de endereços no formato vCard.';
+$labels['done'] = 'Terminado';
$labels['settingsfor'] = 'Configurações para';
$labels['preferences'] = 'Preferências';
$labels['userpreferences'] = 'Preferências do utilizador';
$labels['newitem'] = 'Novo item';
$labels['edititem'] = 'Editar item';
$labels['setdefault'] = 'Marcar por omissão';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Idioma';
$labels['timezone'] = 'Fuso horário';
$labels['pagesize'] = 'Linhas por página';
$labels['htmleditor'] = 'Escrever mensagens em HTML';
$labels['htmlsignature'] = 'Assinatura em HTML';
$labels['previewpane'] = 'Mostrar pré-visualização';
+$labels['skin'] = 'Interface skin [tema]';
$labels['logoutclear'] = 'Limpar a Lixeira após sair';
$labels['logoutcompact'] = 'Compactar Caixa de Entrada após sair';
$labels['uisettings'] = 'Interface de Utilizador';
$labels['serversettings'] = 'Definições do Servidor';
+$labels['mailboxview'] = 'Visualizar caixa de Entrada';
+$labels['mdnrequests'] = 'Enviar Notificações';
+$labels['askuser'] = 'Perguntar ao ultilizador';
+$labels['autosend'] = 'enviar automáticamente';
+$labels['ignore'] = 'ignorar';
+$labels['readwhendeleted'] = 'Marcar a mensagem como lida ao excluir';
+$labels['flagfordeletion'] = 'Marcar a mensagem de eliminação, em vez de a excluir';
+$labels['skipdeleted'] = 'Não mostrar mensagens apagadas';
+$labels['showinlineimages'] = 'Mostrar imagens anexadas abaixo da mensagem';
$labels['autosavedraft'] = 'Salvar rascunho automaticamente';
$labels['everynminutes'] = 'a cada $n minutos';
+$labels['keepaliveevery'] = 'cada $n minuto(s)';
+$labels['keepalive'] = 'Verificar novas mensagens em';
$labels['never'] = 'nunca';
+$labels['messagesdisplaying'] = 'A exibir mensagens';
+$labels['messagescomposition'] = 'Composição de mensagens ';
+$labels['mimeparamfolding'] = 'Nomes de anexos';
+$labels['2231folding'] = 'Total RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Total RFC 2047 (outro)';
+$labels['advancedoptions'] = 'Opções avançadas';
+$labels['focusonnewmessage'] = 'Focar janela de navegador na nova mensagem';
$labels['folder'] = 'Pasta';
$labels['folders'] = 'Pastas';
$labels['foldername'] = 'Nome da pasta';
$labels['renamefolder'] = 'Renomear pasta';
$labels['deletefolder'] = 'Apagar pasta';
$labels['managefolders'] = 'Gerir pastas';
+$labels['specialfolders'] = 'Pastas especiais';
$labels['sortby'] = 'Ordenado por';
$labels['sortasc'] = 'Ascendente';
$labels['sortdesc'] = 'Descendente';
-$labels['mailboxview'] = 'Visualizar caixa de Entrada';
-$labels['mdnrequests'] = 'Enviar Notificações';
-$labels['askuser'] = 'Perguntar ao ultilizador';
-$labels['autosend'] = 'enviar automáticamente';
-$labels['ignore'] = 'ignorar';
-$labels['readwhendeleted'] = 'Marcar a mensagem como lida ao excluir';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
?>
/*
- +-----------------------------------------------------------------------+
- | language/pt_PT/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Authors: Sergio Rocha <sergio.rocha@makeitsimple.pt> |
- | João Vale <jpvale@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/pt_PT/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Authors: Sergio Rocha <sergio.rocha@makeitsimple.pt> |
+| João Vale <jpvale@gmail.com> |
+| Nuno Costa <nuno@criacaoweb.net> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1068 2008-02-13 19:24:23Z yllar $
+@version $Id: messages.inc 2045 2008-11-11 15:09:24Z yllar $
*/
$messages['nocontactsfound'] = 'Nenhum contacto encontrado';
$messages['contactnotfound'] = 'O contacto especificado não foi encontrado';
$messages['sendingfailed'] = 'Falha no envio da mensagem';
+$messages['senttooquickly'] = 'Por favor espere $sec seg(s). antes de enviar esta mensagem';
+$messages['errorsavingsent'] = 'Ocorreu um erro ao salvar mensagem enviada';
$messages['errorsaving'] = 'Ocorreu um erro a gravar';
$messages['errormoving'] = 'Não foi possível mover a mensagem';
$messages['errordeleting'] = 'Não foi possível apagar a mensagem';
$messages['deletemessagesconfirm'] = 'Deseja realmente apagar a(s) mensagem(ns) selecionada(s)?';
$messages['deletefolderconfirm'] = 'Deseja realmente apagar esta pasta?';
$messages['purgefolderconfirm'] = 'Deseja realmente apagar todas mensagens desta pasta?';
+$messages['foldercreating'] = 'A criar pasta...';
+$messages['folderdeleting'] = 'A apagar pasta...';
+$messages['folderrenaming'] = 'A renomear pasta...';
+$messages['foldermoving'] = 'A mover pasta...';
$messages['formincomplete'] = 'Os campos não foram completamente preenchidos';
$messages['noemailwarning'] = 'Por favor escreva um endereço de e-mail válido';
$messages['nonamewarning'] = 'Por favor escreva o nome';
$messages['nopagesizewarning'] = 'Por favor escreva o tamanho da página';
+$messages['nosenderwarning'] = 'Por favor insira endereço de email do remetente';
$messages['norecipientwarning'] = 'Por favor escreva pelo menos um destinatário';
$messages['nosubjectwarning'] = 'O campo "Assunto" não foi preenchido. Deseja incluí-lo agora?';
$messages['nobodywarning'] = 'Enviar a mensagem sem texto?';
$messages['errorsendingreceipt'] = 'Não foi possível enviar o recibo';
$messages['nodeletelastidentity'] = 'Esta é a última identidade, não é possível apagá-la.';
$messages['addsubfolderhint'] = 'Esta pasta será criada como uma sub-pasta da que está seleccionada';
+$messages['forbiddencharacter'] = 'O nome da pasta contém um caractere proibido';
+$messages['selectimportfile'] = 'Por favor selecione um ficheiro para submeter';
+$messages['addresswriterror'] = 'Não é possível escrever no livro de endereços selecionado';
+$messages['importwait'] = 'A importar, por favor agurade...';
+$messages['importerror'] = 'Falhou importação! O ficheiro submetido não é um válido ficheiro vCard.';
+$messages['importconfirm'] = '<b>$inserted contactos importados com sucesso, $skipped contactos já existentes ignorados</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operação não permitida';
+$messages['nofromaddress'] = 'Falta endereço de email na identidade selecionada';
+$messages['editorwarning'] = 'Ao mudar para o editor plain text vai perder toda a formação de texto. Deseja continuar?';
?>
/*
- +-----------------------------------------------------------------------+
- | language/ru_RU/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Maxim Zenin <maxx@webmechanics.ru> |
- | Vladimir Kulev <me@lightoze.net> |
- | Artur Smolkin <admin@roundcube.ru> |
- +-----------------------------------------------------------------------+
-
- @version $Id: labels.inc 1429 2008-05-27 05:35:06Z alec $
++-----------------------------------------------------------------------+
+| language/ru_RU/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Maxim Zenin <maxx@webmechanics.ru> |
+| Vladimir Kulev <me@lightoze.net> |
+| Artur Smolkin <admin@roundcube.ru> |
++-----------------------------------------------------------------------+
+
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels = array();
-
-// login page
$labels['welcome'] = 'Добро пожаловать в $product!';
$labels['username'] = 'Имя пользователя';
$labels['password'] = 'Пароль';
$labels['server'] = 'Сервер';
$labels['login'] = 'Войти';
-
-// taskbar
$labels['logout'] = 'Выход';
$labels['mail'] = 'Почта';
$labels['settings'] = 'Настройки';
$labels['addressbook'] = 'Контакты';
-
-// mailbox names
$labels['inbox'] = 'Входящие';
$labels['drafts'] = 'Черновики';
$labels['sent'] = 'Отправленные';
$labels['trash'] = 'Корзина';
$labels['junk'] = 'СПАМ';
-
-// message listing
$labels['subject'] = 'Тема';
$labels['from'] = 'От';
$labels['to'] = 'Кому';
$labels['cc'] = 'Копия';
$labels['bcc'] = 'Скрытая';
-$labels['replyto'] = 'Обратный адрес';
+$labels['replyto'] = 'Ответить';
$labels['date'] = 'Дата';
$labels['size'] = 'Размер';
$labels['priority'] = 'Приоритет';
$labels['organization'] = 'Организация';
-
-// aliases
-$labels['reply-to'] = 'Обратный адрес';
-
+$labels['reply-to'] = 'Ответить';
$labels['mailboxlist'] = 'Папки';
$labels['messagesfromto'] = 'Сообщения с $from по $to из $count';
$labels['messagenrof'] = 'Сообщение $nr из $count';
-
$labels['moveto'] = 'Переместить в...';
$labels['download'] = 'Загрузить';
-
$labels['filename'] = 'Имя файла';
$labels['filesize'] = 'Размер файла';
-
$labels['preferhtml'] = 'Предпочитать HTML';
$labels['htmlmessage'] = 'Сообщение HTML';
$labels['prettydate'] = 'Красивые даты';
-
$labels['addtoaddressbook'] = 'Добавить в контакты';
-
-// weekdays short
$labels['sun'] = 'Вс';
$labels['mon'] = 'Пн';
$labels['tue'] = 'Вт';
$labels['thu'] = 'Чт';
$labels['fri'] = 'Пт';
$labels['sat'] = 'Сб';
-
-// weekdays long
$labels['sunday'] = 'Воскресенье';
$labels['monday'] = 'Понедельник';
$labels['tuesday'] = 'Вторник';
$labels['thursday'] = 'Четверг';
$labels['friday'] = 'Пятница';
$labels['saturday'] = 'Суббота';
-
-// months short
-$labels['jan'] = 'Янв';
-$labels['feb'] = 'Фев';
-$labels['mar'] = 'Мар';
-$labels['apr'] = 'Апр';
-$labels['may'] = 'Май';
-$labels['jun'] = 'Июн';
-$labels['jul'] = 'Июл';
-$labels['aug'] = 'Авг';
-$labels['sep'] = 'Сен';
-$labels['oct'] = 'Окт';
-$labels['nov'] = 'Ноя';
-$labels['dec'] = 'Дек';
-
-// months long
-$labels['longjan'] = 'Январь';
-$labels['longfeb'] = 'Февраль';
-$labels['longmar'] = 'Март';
-$labels['longapr'] = 'Апрель';
-$labels['longmay'] = 'Май';
-$labels['longjun'] = 'Июнь';
-$labels['longjul'] = 'Июль';
-$labels['longaug'] = 'Август';
-$labels['longsep'] = 'Сентябрь';
-$labels['longoct'] = 'Октябрь';
-$labels['longnov'] = 'Ноябрь';
-$labels['longdec'] = 'Декабрь';
-
+$labels['jan'] = 'Янв';
+$labels['feb'] = 'Фев';
+$labels['mar'] = 'Мар';
+$labels['apr'] = 'Апр';
+$labels['may'] = 'Май';
+$labels['jun'] = 'Июн';
+$labels['jul'] = 'Июл';
+$labels['aug'] = 'Авг';
+$labels['sep'] = 'Сен';
+$labels['oct'] = 'Окт';
+$labels['nov'] = 'Ноя';
+$labels['dec'] = 'Дек';
+$labels['longjan'] = 'Январь';
+$labels['longfeb'] = 'Февраль';
+$labels['longmar'] = 'Март';
+$labels['longapr'] = 'Апрель';
+$labels['longmay'] = 'Май';
+$labels['longjun'] = 'Июнь';
+$labels['longjul'] = 'Июль';
+$labels['longaug'] = 'Август';
+$labels['longsep'] = 'Сентябрь';
+$labels['longoct'] = 'Октябрь';
+$labels['longnov'] = 'Ноябрь';
+$labels['longdec'] = 'Декабрь';
$labels['today'] = 'Сегодня';
-
-// toolbar buttons
$labels['checkmail'] = 'Доставить почту';
$labels['writenewmessage'] = 'Новое сообщение';
$labels['replytomessage'] = 'Ответить';
$labels['lastmessages'] = 'Последнее сообщение';
$labels['backtolist'] = 'К списку сообщений';
$labels['viewsource'] = 'Исходный текст';
-$labels['markmessages'] = 'Отметить сообщение';
-$labels['markread'] = 'как прочитанное';
-$labels['markunread'] = 'как непрочитанное';
-
+$labels['markmessages'] = 'Пометить сообщение';
+$labels['markread'] = 'Как прочитанное';
+$labels['markunread'] = 'Как непрочитанное';
+$labels['markflagged'] = 'Установить флаг';
+$labels['markunflagged'] = 'Снять флаг';
$labels['select'] = 'Выбрать';
$labels['all'] = 'Все';
$labels['none'] = 'Ничего';
$labels['unread'] = 'Непрочитанные';
-
+$labels['flagged'] = 'Помеченные';
+$labels['unanswered'] = 'Неотвеченные';
$labels['compact'] = 'Сжать';
$labels['empty'] = 'Опустошить';
$labels['purge'] = 'Очистить';
-
$labels['quota'] = 'Квота';
$labels['unknown'] = 'неизвестно';
$labels['unlimited'] = 'без ограничений';
-
$labels['quicksearch'] = 'Быстрый поиск';
$labels['resetsearch'] = 'Сброс';
-
-
-// message compose
+$labels['openinextwin'] = 'Открыть в новом окне';
$labels['compose'] = 'Написать сообщение';
$labels['savemessage'] = 'Сохранить черновик';
$labels['sendmessage'] = 'Отправить сейчас';
$labels['charset'] = 'Кодировка';
$labels['editortype'] = 'Редактор';
$labels['returnreceipt'] = 'Запрос ответа';
-
$labels['checkspelling'] = 'Проверить орфографию';
$labels['resumeediting'] = 'Продолжить редактирование';
$labels['revertto'] = 'Отменить правки';
-
$labels['attachments'] = 'Вложения';
$labels['upload'] = 'Загрузить';
$labels['close'] = 'Закрыть';
-
$labels['low'] = 'Низкий';
$labels['lowest'] = 'Нижайш.';
$labels['normal'] = 'Норм.';
$labels['high'] = 'Высокий';
$labels['highest'] = 'Высоч.';
-
$labels['nosubject'] = '(без темы)';
$labels['showimages'] = 'Показать изображения';
-
+$labels['alwaysshow'] = 'Всегда показывать изображенияв письмах от $sender';
$labels['htmltoggle'] = 'HTML';
-$labels['plaintoggle'] = 'Обычный текст';
-
+$labels['plaintoggle'] = 'Текст';
+$labels['savesentmessagein'] = 'Сохранить в';
+$labels['dontsave'] = 'не сохранять';
+$labels['maxuploadsize'] = 'Максимальный размер файла $size';
$labels['addcc'] = 'Копия';
$labels['addbcc'] = 'Скрытая копия';
-$labels['addreplyto'] = 'Обратный адрес';
-
-// mdn
+$labels['addreplyto'] = 'Кому ответить';
$labels['mdnrequest'] = 'Отправитель этого сообщения запросил уведомление о прочтении. Отправить уведомление?';
$labels['receiptread'] = 'Уведомление о прочтении';
$labels['yourmessage'] = 'Это уведомление о прочтении вашего сообщения';
$labels['receiptnote'] = 'Это уведомление означает только, что сообщение было открыто получателем, и не гарантирует того, что оно было прочитано и (или) понято.';
-
-// address book
$labels['name'] = 'Отображаемое имя';
$labels['firstname'] = 'Имя';
$labels['surname'] = 'Фамилия';
$labels['email'] = 'E-Mail';
-
$labels['addcontact'] = 'Добавить выбранные контакты в список контактов';
$labels['editcontact'] = 'Редактировать контакт';
-
$labels['edit'] = 'Правка';
$labels['cancel'] = 'Отмена';
$labels['save'] = 'Сохранить';
$labels['delete'] = 'Удалить';
-
$labels['newcontact'] = 'Создать новый контакт';
$labels['deletecontact'] = 'Удалить выбранные контакты';
$labels['composeto'] = 'Создать сообщение для выбранных контактов';
$labels['contactsfromto'] = 'Контакты с $from по $to из $count';
$labels['print'] = 'Печать';
$labels['export'] = 'Экспорт';
-
+$labels['exportvcards'] = 'Экспортировать контакты в формате vCard';
$labels['previouspage'] = 'Показать предыдущий';
$labels['firstpage'] = 'Показать первый';
$labels['nextpage'] = 'Показать следующий';
$labels['lastpage'] = 'Показать последний';
-
$labels['groups'] = 'Группы';
$labels['personaladrbook'] = 'Персональные адреса';
-
-
-// settings
+$labels['import'] = 'Импортировать';
+$labels['importcontacts'] = 'Импортировать контакты';
+$labels['importfromfile'] = 'Импортировать из файла:';
+$labels['importreplace'] = 'Заменить всю адресную книгу';
+$labels['importtext'] = 'Вы можете загрузить контакты из существующей адресной книги. На данный момент поддерживается загрузка в формате vCard.';
+$labels['done'] = 'Завершено';
$labels['settingsfor'] = 'Настройки для';
-
$labels['preferences'] = 'Настройки';
$labels['userpreferences'] = 'Настройки пользователя';
$labels['editpreferences'] = 'Редактировать настройки пользователя';
-
$labels['identities'] = 'Профили';
$labels['manageidentities'] = 'Управление профилями';
$labels['newidentity'] = 'Новый профиль';
-
$labels['newitem'] = 'Новый';
$labels['edititem'] = 'Правка';
-
$labels['setdefault'] = 'Использовать по умолчанию';
+$labels['autodetect'] = 'Определять автоматически';
$labels['language'] = 'Язык';
$labels['timezone'] = 'Часовой пояс';
$labels['pagesize'] = 'Строк на странице';
$labels['signature'] = 'Подпись';
-$labels['dstactive'] = 'Ð\9fеÑ\80евод Ñ\87аÑ\81ов';
+$labels['dstactive'] = 'Ð\9bеÑ\82нее вÑ\80емÑ\8f';
$labels['htmleditor'] = 'Создавать сообщения в HTML';
$labels['htmlsignature'] = 'Подпись в HTML';
$labels['previewpane'] = 'Показать панель превью';
+$labels['skin'] = 'Стиль оформления';
$labels['logoutclear'] = 'Очищать корзину при выходе';
$labels['logoutcompact'] = 'Сжать Входящие при выходе';
$labels['uisettings'] = 'Пользовательский интерфейс';
$labels['autosend'] = 'отправлять автоматически';
$labels['ignore'] = 'игнорировать';
$labels['readwhendeleted'] = 'Помечать как прочитанное при удалении';
-$labels['flagfordeletion'] = 'Помечать "для удаления" вместо удаления';
-
+$labels['flagfordeletion'] = 'Помечать для удаления вместо удаления';
+$labels['skipdeleted'] = 'Не показывать удаленные сообщения';
+$labels['showinlineimages'] = 'Показывать вложенные изображения внизу сообщения';
$labels['autosavedraft'] = 'Автосохранение черновика';
$labels['everynminutes'] = 'каждые $n минут';
+$labels['keepaliveevery'] = 'каждые $n минут';
+$labels['keepalive'] = 'Проверять новые сообщения';
$labels['never'] = 'никогда';
-
+$labels['messagesdisplaying'] = 'Отображение сообщений';
+$labels['messagescomposition'] = 'Создание сообщений';
+$labels['mimeparamfolding'] = 'Имена вложений';
+$labels['2231folding'] = 'RFC 2231 (только для новейших программ)';
+$labels['miscfolding'] = 'RFC 2047/2231 (наибольшая совместимость)';
+$labels['2047folding'] = 'RFC 2047 (для старых программ)';
+$labels['advancedoptions'] = 'Дополнительные настройки';
+$labels['focusonnewmessage'] = 'Фокусировать окно браузера при новом сообщении';
+$labels['checkallfolders'] = 'Проверять новые сообщения во всех папках';
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Имя папки';
$labels['subscribed'] = 'Подписан';
-$labels['messagecount'] = 'сообщения';
+$labels['messagecount'] = 'Сообщения';
$labels['create'] = 'Создать';
$labels['createfolder'] = 'Создать новую папку';
$labels['rename'] = 'Переименовать';
$labels['renamefolder'] = 'Переименовать папку';
$labels['deletefolder'] = 'Удалить папку';
$labels['managefolders'] = 'Управление папками';
-
+$labels['specialfolders'] = 'Особые папки';
$labels['sortby'] = 'Сортировать по';
$labels['sortasc'] = 'Возрастанию';
$labels['sortdesc'] = 'Убыванию';
+$labels['B'] = 'Б';
+$labels['KB'] = 'КБ';
+$labels['MB'] = 'МБ';
+$labels['GB'] = 'ГБ';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/ru_RU/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Maxim Zenin <maxx@webmechanics.ru> |
- | Vladimir Kulev <me@lightoze.net> |
- | Artur Smolkin <admin@roundcube.ru> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/ru_RU/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Maxim Zenin <maxx@webmechanics.ru> |
+| Vladimir Kulev <me@lightoze.net> |
+| Artur Smolkin <admin@roundcube.ru> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1134 2008-02-22 15:05:18Z yllar $
+@version $Id: messages.inc 2105 2008-12-01 17:50:13Z alec $
*/
$messages['nocontactsfound'] = 'Контакты не найдены';
$messages['contactnotfound'] = 'Требуемый контакт не найден';
$messages['sendingfailed'] = 'Не удалось отправить сообщение';
+$messages['senttooquickly'] = 'Вы должны подождать $sec сек. для отправки сообщения';
+$messages['errorsavingsent'] = 'Произошла ошибка при сохранении отправленного сообщения';
$messages['errorsaving'] = 'В процессе сохранения произошла ошибка';
$messages['errormoving'] = 'Не удалось переместить сообщение';
$messages['errordeleting'] = 'Не удалось удалить сообщение';
$messages['deletemessagesconfirm'] = 'Вы действительно хотите удалить выбранные сообщения?';
$messages['deletefolderconfirm'] = 'Вы действительно хотите удалить эту папку?';
$messages['purgefolderconfirm'] = 'Вы действительно хотите удалить все сообщения в этой папке?';
+$messages['foldercreating'] = 'Создание папки...';
+$messages['folderdeleting'] = 'Удаление папки...';
+$messages['folderrenaming'] = 'Переименование папки...';
+$messages['foldermoving'] = 'Перемещение папки...';
$messages['formincomplete'] = 'Заполнены не все поля';
$messages['noemailwarning'] = 'Пожалуйста, введите корректный адрес электронной почты';
$messages['nonamewarning'] = 'Пожалуйста, введите имя';
$messages['nopagesizewarning'] = 'Пожалуйста, введите размер страницы';
+$messages['nosenderwarning'] = 'Пожалуйста, введите адрес электронной почты отправителя';
$messages['norecipientwarning'] = 'Пожалуйста, введите имя получателя';
-$messages['nosubjectwarning'] = 'Поле "Тема" не заполнено. Хотите заполнить его сейчас?';
+$messages['nosubjectwarning'] = 'Поле Тема не заполнено. Хотите заполнить его сейчас?';
$messages['nobodywarning'] = 'Отправить сообщение без текста?';
$messages['notsentwarning'] = 'Сообщение не было отправлено. Вы хотите отказаться от отправки?';
$messages['noldapserver'] = 'Пожалуйста, выберите LDAP сервер для поиска';
$messages['errorsendingreceipt'] = 'Уведомление о прочтении не отправлено';
$messages['nodeletelastidentity'] = 'Вы не можете удалить этот профиль, он у вас последний';
$messages['addsubfolderhint'] = 'Эта папка будет создана как подпапка в текущей папке';
+$messages['forbiddencharacter'] = 'Имя папки содержит недопустимые символы';
+$messages['selectimportfile'] = 'Выберите файл для загрузки';
+$messages['addresswriterror'] = 'Выбранная адресная книга недоступна для записи';
+$messages['importwait'] = 'Импортирование, пожалуйста, подождите...';
+$messages['importerror'] = 'Импорт завершился неудачно! Загруженный файл не является правильным файлом vCard.';
+$messages['importconfirm'] = '<b>Успешно импортировано $inserted контакт(ов), пропущено $skipped существующих</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Действие запрещено!';
+$messages['nofromaddress'] = 'В выбранном профиле не хватает адреса электронной почты';
+$messages['editorwarning'] = 'При переключении в редактор простого текста все форматирование будет потеряно. Продолжить?';
-?>
\ No newline at end of file
+?>
| Peter Mann <peter.mann@tuke.sk> |
+-----------------------------------------------------------------------+
-@version $Id: labels.inc 1462 2008-06-01 15:40:16Z yllar $
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels['markmessages'] = 'Označiť správy';
$labels['markread'] = 'Ako prečítané';
$labels['markunread'] = 'Ako neprečítané';
+$labels['markflagged'] = 'Ako označené';
+$labels['markunflagged'] = 'Ako neoznačené';
$labels['select'] = 'Výber';
$labels['all'] = 'Všetky';
$labels['none'] = 'Žiadne';
$labels['unread'] = 'Neprečítané';
-$labels['compact'] = 'Kompaktné';
+$labels['compact'] = 'Zhustiť priečinok';
$labels['empty'] = 'Prázdne';
$labels['purge'] = 'Vyprázdniť';
$labels['quota'] = 'Zaplnenie schránky';
$labels['unlimited'] = 'neobmedzené';
$labels['quicksearch'] = 'Rýchle vyhľadávanie';
$labels['resetsearch'] = 'Vyčistiť vyhľadávanie';
+$labels['openinextwin'] = 'Otvoriť v novom okne';
$labels['compose'] = 'Vytvoriť správu';
$labels['savemessage'] = 'Uložiť do rozpísaných';
$labels['sendmessage'] = 'Odoslať správu';
$labels['highest'] = 'Najvyššia';
$labels['nosubject'] = '(bez predmetu)';
$labels['showimages'] = 'Ukázať obrázky';
+$labels['alwaysshow'] = 'Vždy zobraziť obrázky od $sender';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Čistý text';
+$labels['savesentmessagein'] = 'Ukladať odoslané správy do';
+$labels['dontsave'] = 'Neukladať';
+$labels['maxuploadsize'] = 'Maximálna povolená veľkosť súboru je $size';
$labels['addcc'] = 'Pridať kópiu';
$labels['addbcc'] = 'Pridať skrytú kopiu';
$labels['addreplyto'] = 'Pridať odpoveď';
$labels['contactsfromto'] = 'Kontakty od $from do $to z $count';
$labels['print'] = 'Tlač';
$labels['export'] = 'Export';
+$labels['exportvcards'] = 'Exportovať kontakty vo formáte vCard';
$labels['previouspage'] = 'Predchádzajúca stránka';
$labels['firstpage'] = 'Prvá stránka';
$labels['nextpage'] = 'Nasledujúca stránka';
$labels['lastpage'] = 'Posledná stránka';
$labels['groups'] = 'Skupiny';
$labels['personaladrbook'] = 'Osobné adresy';
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Importovať kontakty';
+$labels['importfromfile'] = 'Importovať zo súboru:';
+$labels['importreplace'] = 'Nahradiť celý zoznam kontaktov';
+$labels['importtext'] = 'Môžete nahrať kontakty z existujúcich adresárov. Podporujeme import adries vo formáte vCard.';
+$labels['done'] = 'Hotovo';
$labels['settingsfor'] = 'Nastavenia pre';
$labels['preferences'] = 'Vlastnosti';
$labels['userpreferences'] = 'Používateľské nastavenia';
$labels['newitem'] = 'Nová položka';
$labels['edititem'] = 'Upraviť položku';
$labels['setdefault'] = 'Obnoviť pôvodné';
+$labels['autodetect'] = 'Automaticky';
$labels['language'] = 'Jazyk';
$labels['timezone'] = 'Časová zóna';
$labels['pagesize'] = 'Riadky na stránku';
$labels['htmleditor'] = 'Vytvoriť HTML správu';
$labels['htmlsignature'] = 'HTML podpis';
$labels['previewpane'] = 'Ukázať náhľad';
+$labels['skin'] = 'Vzhľad';
$labels['logoutclear'] = 'Vyprázdniť kôš pri odhlásení';
$labels['logoutcompact'] = 'Zhustiť priečinok Doručená pošta pri odhlásení';
$labels['uisettings'] = 'Používateľské rozhranie';
$labels['ignore'] = 'ignorovať';
$labels['readwhendeleted'] = 'Označiť správu ';
$labels['flagfordeletion'] = 'Pri odstránení správy iba označiť správu ako odstránenú';
+$labels['skipdeleted'] = 'Nezobrazovať zmazané správy';
+$labels['showinlineimages'] = 'Zobraziť pripojené obrázky pod správou';
$labels['autosavedraft'] = 'Automaticky uložiť koncept';
$labels['everynminutes'] = 'každých $n minút';
+$labels['keepalive'] = 'Kontrolovať nové správy';
$labels['never'] = 'nikdy';
+$labels['messagesdisplaying'] = 'Zobrazovanie správ';
+$labels['messagescomposition'] = 'Vytváranie správ';
+$labels['mimeparamfolding'] = 'Názvy príloh';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['advancedoptions'] = 'Rozšírené nastavenia';
$labels['folder'] = 'Priečinok';
$labels['folders'] = 'Priečinky';
$labels['foldername'] = 'Názov priečinku';
$labels['renamefolder'] = 'Premenovať priečinok';
$labels['deletefolder'] = 'Zmazať priečinok';
$labels['managefolders'] = 'Spravovať priečinky';
+$labels['specialfolders'] = 'Špeciálne priečinky';
$labels['sortby'] = 'Triediť podľa';
$labels['sortasc'] = 'Triediť vzostupne';
$labels['sortdesc'] = 'Triediť zostupne';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
?>
| Peter Mann <peter.mann@tuke.sk> |
+-----------------------------------------------------------------------+
-@version $Id: messages.inc 1462 2008-06-01 15:40:16Z yllar $
+@version $Id: messages.inc 2045 2008-11-11 15:09:24Z yllar $
*/
$messages['nocontactsfound'] = 'Nemáte žiadne kontakty';
$messages['contactnotfound'] = 'Požadovaný kontakt nebol nájdený';
$messages['sendingfailed'] = 'Odosielanie správy zlyhalo';
+$messages['senttooquickly'] = 'Počkajte $sec sekúnd pred odoslaním tejto správy';
+$messages['errorsavingsent'] = 'Pri ukladaní odoslanej správy nastala chyba';
$messages['errorsaving'] = 'Vyskytla sa chyba pri ukladaní';
$messages['errormoving'] = 'Správa sa nedá presunúť';
$messages['errordeleting'] = 'Správa sa nedá zmazať';
$messages['deletemessagesconfirm'] = 'Ste si istý, že chcete zmazať zvolenú(é) správu(y)?';
$messages['deletefolderconfirm'] = 'Ste si istý, že chcete zmazať tento priečinok?';
$messages['purgefolderconfirm'] = 'Ste si istý, že chcete zmazať všetky správy v tomto priečinku?';
+$messages['foldercreating'] = 'Vytvára sa priečinok ...';
+$messages['folderdeleting'] = 'Odstraňuje sa priečinok ...';
+$messages['folderrenaming'] = 'Mení sa názov priečinka ...';
+$messages['foldermoving'] = 'Prečinok sa presúva ...';
$messages['formincomplete'] = 'Formulár nie je kompletne vyplnený';
$messages['noemailwarning'] = 'Prosím, vložte platnú emailovú adresu';
$messages['nonamewarning'] = 'Prosím, zadajte meno';
$messages['nopagesizewarning'] = 'Prosím, zadajte veľkosť strany';
+$messages['nosenderwarning'] = 'Prosím, zadajte adresu odosielateľa';
$messages['norecipientwarning'] = 'Prosím, vložte aspoň jedného príjemcu';
$messages['nosubjectwarning'] = 'Predmet správy je prázdny. Chcete ho teraz zadať?';
$messages['nobodywarning'] = 'Chcete odoslať správu bez textu?';
$messages['nodeletelastidentity'] = 'Identita sa nedá odstrániť, je posledná a musí zostať.';
$messages['addsubfolderhint'] = 'Tento priečinok bude vytvorený ako podpriečinok aktuálne zvoleného priečinka';
$messages['forbiddencharacter'] = 'Názov priečinka obsahuje nepovolený znak';
+$messages['selectimportfile'] = 'Zvoľte súbor, ktorý chcete načítať';
+$messages['addresswriterror'] = 'Zvolený adresár kontaktov je iba na čítanie';
+$messages['importwait'] = 'Prebieha import, počkajte ...';
+$messages['importerror'] = 'Import zlyhal. Načítavaný súbor nie je platným vCard súborom.';
+$messages['importconfirm'] = '<b>Úspešne sa načítalo $inserted kontaktov, preskočilo sa $skipped existujúcich záznamov</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Operácia nie je povolená!';
+$messages['nofromaddress'] = 'Zvolená identita neobsahuje e-mailovú adresu';
+$messages['editorwarning'] = 'Prepnutie na editor obyčajného textu spôsobí stratu formátovania. Chcete napriek tomu pokračovať?';
?>
/*
- +-----------------------------------------------------------------------+
- | language/tr/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Hasan Cansız <hasancansiz@yahoo.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/tr/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Hasan Cansız <hasancansiz@yahoo.com> |
+| Author: Gökdeniz Karadağ <gokdenizk@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: labels.inc 950 2008-01-04 08:04:53Z tomekp $
+@version $Id: labels.inc 2194 2008-12-29 18:26:51Z alec $
*/
$labels = array();
-$labels['welcome'] = '$product \'a hoşgeldiniz';
+$labels['welcome'] = '$product, Hoş Geldiniz';
$labels['username'] = 'Kullanıcı Adı';
$labels['password'] = 'Şifre';
$labels['server'] = 'Sunucu';
$labels['logout'] = 'Oturumu Kapat';
$labels['mail'] = 'E-Posta';
$labels['settings'] = 'Kişisel Ayarlar';
-$labels['addressbook'] = 'Rehber';
-$labels['inbox'] = 'Gelenler';
+$labels['addressbook'] = 'Adres Defteri';
+$labels['inbox'] = 'Gelen';
$labels['drafts'] = 'Taslaklar';
-$labels['sent'] = 'Gönderilenler';
-$labels['trash'] = 'Çöp Kutusu';
-$labels['junk'] = 'Gereksiz(spam)';
+$labels['sent'] = 'Giden';
+$labels['trash'] = 'Çöp';
+$labels['junk'] = 'İstenmeyen';
$labels['subject'] = 'Konu';
$labels['from'] = 'Gönderen';
$labels['to'] = 'Alıcı';
-$labels['cc'] = 'Karbon Kopya';
-$labels['bcc'] = 'Gizli Karbon Kopya';
-$labels['replyto'] = 'Yanıtların Gönderileceği Adres';
+$labels['cc'] = 'İlgili Kopyası';
+$labels['bcc'] = 'Gizli Kopya';
+$labels['replyto'] = 'Yanıtla';
$labels['date'] = 'Tarih';
$labels['size'] = 'Boyut';
$labels['priority'] = 'Öncelik';
$labels['organization'] = 'Kuruluş';
-$labels['reply-to'] = 'Yanıtların Gönderileceği Adres';
+$labels['reply-to'] = 'Yanıtlama Adresi';
$labels['mailboxlist'] = 'Klasörler';
-$labels['messagesfromto'] = '$count Mesajın $from - $to Arasındaki Mesajlar';
-$labels['messagenrof'] = '$count Mesajın $nr .';
-$labels['moveto'] = 'şuraya taşı...';
+$labels['messagesfromto'] = 'Postalar: $from - $to , Toplam: $count';
+$labels['messagenrof'] = 'Posta: $nr / $count';
+$labels['moveto'] = 'Buraya taşı...';
$labels['download'] = 'İndir';
$labels['filename'] = 'Dosya Adı';
$labels['filesize'] = 'Dosya Boyutu';
-$labels['preferhtml'] = 'HTML görüntülemeyi destekle';
-$labels['htmlmessage'] = 'HTML Mesaj';
+$labels['preferhtml'] = 'HTML görüntüle';
+$labels['htmlmessage'] = 'HTML Posta';
$labels['prettydate'] = 'Tarihi kısaltarak göster';
-$labels['addtoaddressbook'] = 'Rehbere Ekle';
-$labels['sun'] = 'Pzr';
-$labels['mon'] = 'Pts';
+$labels['addtoaddressbook'] = 'Adres Defterine Ekle';
+$labels['sun'] = 'Paz';
+$labels['mon'] = 'Pzt';
$labels['tue'] = 'Sal';
$labels['wed'] = 'Çar';
$labels['thu'] = 'Per';
$labels['fri'] = 'Cum';
-$labels['sat'] = 'Cts';
+$labels['sat'] = 'Cmt';
$labels['sunday'] = 'Pazar';
$labels['monday'] = 'Pazartesi';
$labels['tuesday'] = 'Salı';
$labels['thursday'] = 'Perşembe';
$labels['friday'] = 'Cuma';
$labels['saturday'] = 'Cumartesi';
+$labels['jan'] = 'Oca';
+$labels['feb'] = 'Şub';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Nis';
+$labels['may'] = 'May';
+$labels['jun'] = 'Haz';
+$labels['jul'] = 'Tem';
+$labels['aug'] = 'Ağu';
+$labels['sep'] = 'Eyl';
+$labels['oct'] = 'Eki';
+$labels['nov'] = 'Kas';
+$labels['dec'] = 'Ara';
+$labels['longjan'] = 'Ocak';
+$labels['longfeb'] = 'Şubat';
+$labels['longmar'] = 'Mart';
+$labels['longapr'] = 'Nisan';
+$labels['longmay'] = 'Mayıs';
+$labels['longjun'] = 'Haziran';
+$labels['longjul'] = 'Temmuz';
+$labels['longaug'] = 'Ağustos';
+$labels['longsep'] = 'Eylül';
+$labels['longoct'] = 'Ekim';
+$labels['longnov'] = 'Kasım';
+$labels['longdec'] = 'Aralık';
$labels['today'] = 'Bugün';
-$labels['checkmail'] = 'Yeni posta olup olmadığını kontrol et';
+$labels['checkmail'] = 'Yeni postaları kontrol et';
$labels['writenewmessage'] = 'Yeni posta oluştur';
-$labels['replytomessage'] = 'Postayı yanıtla';
-$labels['replytoallmessage'] = 'Bu postanın gönderildiği herkesi yanıtla';
+$labels['replytomessage'] = 'Gönderene yanıtla';
+$labels['replytoallmessage'] = 'Gönderene ve tüm alıcılara yanıtla';
$labels['forwardmessage'] = 'Postayı ilet';
-$labels['deletemessage'] = 'Çöp Kutusuna At';
-$labels['printmessage'] = 'Yazdır';
-$labels['previousmessage'] = 'Önceki mesajı göster';
+$labels['deletemessage'] = 'Postayı sil';
+$labels['movemessagetotrash'] = 'Postayı çöpe taşı';
+$labels['printmessage'] = 'Bu postayı yazdır';
+$labels['previousmessage'] = 'Önceki postayı göster';
$labels['previousmessages'] = 'Önceki postaları göster';
-$labels['firstmessage'] = 'İlk mesajı göster';
-$labels['firstmessages'] = 'İlk mesajları göster';
-$labels['nextmessage'] = 'Sonraki mesajı göster';
+$labels['firstmessage'] = 'İlk postayı göster';
+$labels['firstmessages'] = 'İlk postaları göster';
+$labels['nextmessage'] = 'Sonraki postayı göster';
$labels['nextmessages'] = 'Sonraki postaları göster';
-$labels['lastmessage'] = 'Son mesajı göster';
-$labels['lastmessages'] = 'Son mesajları göster';
-$labels['backtolist'] = 'Posta kutusuna dön';
+$labels['lastmessage'] = 'Son postayı göster';
+$labels['lastmessages'] = 'Son postaları göster';
+$labels['backtolist'] = 'Posta listesine dön';
$labels['viewsource'] = 'Kaynağı göster';
+$labels['markmessages'] = 'Postaları işaretle';
+$labels['markread'] = 'okunmuş olarak';
+$labels['markunread'] = 'okunmamış olarak';
+$labels['markflagged'] = 'işaretli olarak';
+$labels['markunflagged'] = 'işaretsiz olarak';
$labels['select'] = 'Seç';
-$labels['all'] = 'Hepsi';
-$labels['none'] = 'Hiçbiri';
-$labels['unread'] = 'Okunmamış';
-$labels['compact'] = 'Kompakt';
+$labels['all'] = 'Hepsini';
+$labels['none'] = 'Hiçbirini';
+$labels['unread'] = 'Okunmamışları';
+$labels['compact'] = 'Sıklaştır';
$labels['empty'] = 'Boşalt';
$labels['purge'] = 'Sil';
$labels['quota'] = 'Disk kullanımı';
$labels['unknown'] = 'bilinmeyen';
$labels['unlimited'] = 'sınırsız';
$labels['quicksearch'] = 'Hızlı arama';
-$labels['resetsearch'] = 'Aramayı sıfırla';
+$labels['resetsearch'] = 'Aramayı bitir';
+$labels['openinextwin'] = 'Yeni pencerede aç';
$labels['compose'] = 'Yeni posta oluştur';
-$labels['sendmessage'] = 'Postayı gönder';
$labels['savemessage'] = 'Taslak olarak kaydet';
+$labels['sendmessage'] = 'Postayı gönder';
$labels['addattachment'] = 'Dosya ekle';
-$labels['charset'] = 'Karakter seti';
-$labels['editortype'] = 'Düzenleyici tipi';
-$labels['returnreceipt'] = 'Return receipt';
-$labels['checkspelling'] = 'Dilbilgisi kontrolu yap';
+$labels['charset'] = 'Karakter kodlaması';
+$labels['editortype'] = 'Düzenleyici';
+$labels['returnreceipt'] = 'Alındı onayı';
+$labels['checkspelling'] = 'Yazım denetimi yap';
$labels['resumeediting'] = 'Düzenlemeye devam et';
-$labels['revertto'] = 'Revert to';
+$labels['revertto'] = 'Geri çevir:';
$labels['attachments'] = 'Ekler';
$labels['upload'] = 'Yükle';
$labels['close'] = 'Kapat';
$labels['low'] = 'Düşük';
-$labels['lowest'] = 'Çok düşük';
+$labels['lowest'] = 'En Düşük';
$labels['normal'] = 'Normal';
$labels['high'] = 'Yüksek';
-$labels['highest'] = 'Çok yüksek';
+$labels['highest'] = 'En yüksek';
$labels['nosubject'] = '(Konu Belirtilmemiş)';
-$labels['showimages'] = 'Grafikleri görüntüle';
+$labels['showimages'] = 'Resimleri göster';
+$labels['alwaysshow'] = '$sender tarafından gönderilen resimleri her zaman göster';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Düz metin';
-$labels['name'] = 'İsmi görüntüle';
-$labels['firstname'] = 'İsim';
-$labels['surname'] = 'Soy isim';
-$labels['email'] = 'E-Mail';
-$labels['addcontact'] = 'Seçili kişiyi rehbere ekle';
+$labels['savesentmessagein'] = 'Gönderileni buraya kaydet';
+$labels['dontsave'] = 'kaydetme';
+$labels['maxuploadsize'] = 'İzin verilen en büyük dosya boyutu $size';
+$labels['addcc'] = 'İlgili kopyası ekle';
+$labels['addbcc'] = 'Gizli kopya ekle';
+$labels['addreplyto'] = 'Yanıtlama adresi ekle';
+$labels['mdnrequest'] = 'Bu postayı gönderen kişi, postayı okuduğunuza dair alındı onayı istedi. Alındı onayını göndermek ister misiniz ?';
+$labels['mdnrequests'] = 'Alındı onayları';
+$labels['receiptread'] = 'Alındı Onayı (okundu)';
+$labels['yourmessage'] = 'Bu, postanız için alındı onayıdır';
+$labels['receiptnote'] = 'Not: Bu alındı onayı sadece postanızın alıcının bilgisayarında gösterildiğini belirtir. Alıcının posta içeriğini okuduğunu veya anladığını garantilemez.';
+$labels['name'] = 'Görüntülenen isim';
+$labels['firstname'] = 'Ad';
+$labels['surname'] = 'Soyad';
+$labels['email'] = 'E-Posta';
+$labels['addcontact'] = 'Adres defterine ekle';
$labels['editcontact'] = 'Kişiyi düzenle';
$labels['edit'] = 'Düzenle';
$labels['cancel'] = 'İptal';
$labels['save'] = 'Kaydet';
$labels['delete'] = 'Sil';
-$labels['newcontact'] = 'Yeni kişi Kartı Ekle';
+$labels['newcontact'] = 'Yeni adres kartı ekle';
$labels['deletecontact'] = 'Seçili kişileri sil';
$labels['composeto'] = 'Seçili kişiye posta gönder';
-$labels['contactsfromto'] = '$count Kişinin $from - $to arası ';
+$labels['contactsfromto'] = 'Kişiler: $from - $to , Toplam: $count';
$labels['print'] = 'Yazdır';
-$labels['export'] = 'Export';
-$labels['previouspage'] = 'Önceki seti göster';
-$labels['firstpage'] = 'İlk sayfa';
-$labels['nextpage'] = 'Sonraki seti göster';
-$labels['lastpage'] = 'Son sayfa';
+$labels['export'] = 'Dışa aktar';
+$labels['exportvcards'] = 'vCard olarak dışa aktar';
+$labels['previouspage'] = 'Öncekileri göster';
+$labels['firstpage'] = 'İlkini göster';
+$labels['nextpage'] = 'Sonrakileri göster';
+$labels['lastpage'] = 'Sonuncuyu göster';
$labels['groups'] = 'Gruplar';
$labels['personaladrbook'] = 'Adresler';
+$labels['import'] = 'İçe aktar';
+$labels['importcontacts'] = 'Kişileri içe aktar';
+$labels['importfromfile'] = 'Dosyadan içe aktar:';
+$labels['importreplace'] = 'Tüm adres defterinin yerine geçsin';
+$labels['importtext'] = 'Mevcut bir adres defterindeki kişileri yükleyebilirsiniz.<br/><a href="http://en.wikipedia.org/wiki/VCard">vCard</a> dosyalarından adresleri içe aktarmayı destekliyoruz.';
+$labels['done'] = 'Tamam';
$labels['settingsfor'] = 'Ayarlar';
$labels['preferences'] = 'Tercihler';
$labels['userpreferences'] = 'Kullanıcı tercihleri';
$labels['identities'] = 'Kimlikler';
$labels['manageidentities'] = 'Bu hesap için kimlikleri düzenle';
$labels['newidentity'] = 'Yeni kimlik';
-$labels['newitem'] = 'Yeni etiket';
-$labels['edititem'] = 'Etiket düzenle';
-$labels['setdefault'] = 'Varsayılan olarak ayarla';
+$labels['newitem'] = 'Yeni öğe';
+$labels['edititem'] = 'Öğe düzenle';
+$labels['setdefault'] = 'Varsayılan olarak ata';
+$labels['autodetect'] = 'Otomatik';
$labels['language'] = 'Dil';
$labels['timezone'] = 'Saat dilimi';
-$labels['pagesize'] = 'Bir sayfada kaç posta gösterilsin';
+$labels['pagesize'] = 'Bir sayfadaki satır sayısı';
$labels['signature'] = 'İmza';
$labels['dstactive'] = 'Yaz saati uygulaması';
-$labels['htmleditor'] = 'HTML türünde mesaj düzenle';
-$labels['htmlsignature'] = 'HTML türü imza';
-$labels['previewpane'] = 'İlk paneli göster';
-$labels['autosavedraft'] = 'Taslağı otomatik kaydet';
+$labels['htmleditor'] = 'HTML postaları oluştur';
+$labels['htmlsignature'] = 'HTML imza';
+$labels['previewpane'] = 'Önizleme panelini göster';
+$labels['skin'] = 'Arayüz görünümü';
+$labels['logoutclear'] = 'Oturumu kapatınca Çöpü temizle';
+$labels['logoutcompact'] = 'Oturumu kapatınca Gelen Kutusunu sıklaştır';
+$labels['uisettings'] = 'Kullanıcı Arayüzü';
+$labels['serversettings'] = 'Sunucu Ayarları';
+$labels['mailboxview'] = 'Posta Kutusu Görünümü';
+$labels['askuser'] = 'kullanıcıya sor';
+$labels['autosend'] = 'otomatik olarak gönder';
+$labels['ignore'] = 'gözardı et';
+$labels['readwhendeleted'] = 'Silinen postaları okunmuş olarak işaretle';
+$labels['flagfordeletion'] = 'Postaları silmek yerine silinecek olarak işaretle';
+$labels['showinlineimages'] = 'Postanın ekindeki resimleri postanın altında göster';
+$labels['autosavedraft'] = 'Taslağı otomatik kaydet:';
$labels['everynminutes'] = 'her $n dakikada bir';
-$labels['never'] = 'hiçbir zaman';
+$labels['never'] = 'asla';
+$labels['messagesdisplaying'] = 'Posta Görüntüleme';
+$labels['messagescomposition'] = 'Yeni Posta Oluşturma';
$labels['folder'] = 'Klasör';
$labels['folders'] = 'Klasörler';
$labels['foldername'] = 'Klasör ismi';
-$labels['subscribed'] = 'Görülebilir';
-$labels['create'] = 'Yeni Oluştur';
+$labels['subscribed'] = 'Abonelik';
+$labels['messagecount'] = 'Postalar';
+$labels['create'] = 'Oluştur';
$labels['createfolder'] = 'Yeni klasör oluştur';
$labels['rename'] = 'Yeniden adlandır';
$labels['renamefolder'] = 'Klasörü yeniden adlandır';
$labels['deletefolder'] = 'Klasörü sil';
$labels['managefolders'] = 'Klasörleri düzenle';
+$labels['specialfolders'] = 'Özel klasörler';
$labels['sortby'] = 'Sırala';
-$labels['sortasc'] = 'Azdan çoğa';
-$labels['sortdesc'] = 'Çoktan aza';
+$labels['sortasc'] = 'Artarak';
+$labels['sortdesc'] = 'Azalarak';
+$labels['filter'] = 'Süzgeç';
+$labels['always'] = 'her zaman';
+$labels['fromknownsenders'] = 'bilinen göndericilerden';
+$labels['showremoteimages'] = 'Uzaktan yüklenen resimleri göster';
+$labels['checkallfolders'] = 'Tüm klasörlerdeki yeni postaları denetle';
+$labels['flagged'] = 'İşaretlenmiş';
+$labels['unanswered'] = 'Yanıtlanmamış';
+$labels['keepaliveevery'] = 'her $n dakikada bir';
+$labels['keepalive'] = 'Yeni postaları denetle:';
+$labels['focusonnewmessage'] = 'Yeni posta geldiğinde web tarayıcı penceresine odaklan.';
+$labels['skipdeleted'] = 'Silinmiş postaları gösterme';
+
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+$labels['mimeparamfolding'] = 'Eklenti isimleri';
+$labels['2231folding'] = 'Tam RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Tam RFC 2047 (diğer)';
+$labels['advancedoptions'] = 'Gelişmiş seçenekler';
-?>
\ No newline at end of file
+?>
/*
- +-----------------------------------------------------------------------+
- | language/tr/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Hasan Cansız <hasancansiz@yahoo.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| language/tr/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Hasan Cansız <hasancansiz@yahoo.com> |
+| Author: Gökdeniz Karadağ <gokdenizk@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 950 2008-01-04 08:04:53Z tomekp $
+@version $Id: messages.inc 2184 2008-12-21 09:30:25Z yllar $
*/
$messages = array();
$messages['loginfailed'] = 'Giriş Başarısız';
-$messages['cookiesdisabled'] = 'Tarayıcınız cookileri kabul etmiyor';
+$messages['cookiesdisabled'] = 'Tarayıcınız çerezleri kabul etmiyor';
$messages['sessionerror'] = 'Oturumunuz sona ermiş veya hatalı';
-$messages['imaperror'] = 'IMAP Servera bağlanılamadı';
-$messages['nomessagesfound'] = 'Posta kutusunda mesaj bulunamadı';
+$messages['imaperror'] = 'IMAP sunucusuna bağlanılamadı';
+$messages['nomessagesfound'] = 'Posta kutusunda ileti bulunamadı';
$messages['loggedout'] = 'Oturumu başarılı bir şekilde kapattınız. Güle güle!';
$messages['mailboxempty'] = 'Posta kutusu boş';
$messages['loading'] = 'Yükleniyor...';
$messages['loadingdata'] = 'Veriler yükleniyor...';
-$messages['checkingmail'] = 'Yeni posta var mı diye kontrol ediliyor...';
+$messages['checkingmail'] = 'Yeni postalara bakılıyor...';
$messages['sendingmessage'] = 'Posta gönderiliyor...';
$messages['messagesent'] = 'Posta gönderildi';
$messages['savingmessage'] = 'Posta kaydediliyor...';
$messages['messagesaved'] = 'Posta taslaklara kaydedildi';
$messages['successfullysaved'] = 'Kaydedildi';
-$messages['addedsuccessfully'] = 'Kişi rehbere eklendi';
-$messages['contactexists'] = 'Rehberde bu posta adresine sahip biri zaten var';
-$messages['blockedimages'] = 'Gizliliğinizi korumak amacıyla postadaki grafikler bloke edildi.';
-$messages['encryptedmessage'] = 'Bu şifrelenmiş bir posta ve bu nedenle gösterilemiyor. Özür dilerim!';
+$messages['addedsuccessfully'] = 'Kişi adres defterine eklendi';
+$messages['contactexists'] = 'Rehberde bu e-posta adresine sahip biri zaten var';
+$messages['blockedimages'] = 'Kişisel gizliliğinizi korumak amacıyla postadaki resimler engellendi';
+$messages['encryptedmessage'] = 'Bu şifrelenmiş bir posta olduğu için gösterilemiyor. Özür dilerim!';
$messages['nocontactsfound'] = 'Kişi bulunamadı';
-$messages['contactnotfound'] = 'İstenen bağlantı bulunamadı';
+$messages['contactnotfound'] = 'İstenen kişi bulunamadı';
$messages['sendingfailed'] = 'Posta gönderilemedi';
-$messages['errorsaving'] = 'Kaydederken bir problem oluştu';
+$messages['senttooquickly'] = 'Lütfen bu postayı göndermeden önce $sec saniye bekleyin';
+$messages['errorsavingsent'] = 'Gönderilen postayı kaydederken hata oluştu';
+$messages['errorsaving'] = 'Kaydederken bir hata oluştu';
$messages['errormoving'] = 'Posta taşınamadı';
$messages['errordeleting'] = 'Posta silinemedi';
-$messages['deletecontactconfirm'] = 'Seçili posta(lar)ı silmeyi gerçekten istiyor musunuz?';
-$messages['deletemessagesconfirm'] = 'Seçilen mesajları silmek istiyor musunuz?';
-$messages['deletefolderconfirm'] = 'Bu klasörü silmeyi gerçekten istiyor musunuz?';
-$messages['purgefolderconfirm'] = 'Bu klasördeki tüm postaları silmeyi gerçekten istiyor musnuz?';
+$messages['deletecontactconfirm'] = 'Seçili kişileri silmek istediğinizden emin misiniz?';
+$messages['deletemessagesconfirm'] = 'Seçili postaları silmek istediğinizden emin misiniz?';
+$messages['deletefolderconfirm'] = 'Bu klasörü silmek istediğinizden emin misiniz?';
+$messages['purgefolderconfirm'] = 'Bu klasördeki tüm postaları silmek istediğinizden emin misiniz?';
+$messages['foldercreating'] = 'Klasör oluştuluyor...';
+$messages['folderdeleting'] = 'Klasör siliniyor...';
+$messages['folderrenaming'] = 'Klasör yeniden adlandırılıyor...';
+$messages['foldermoving'] = 'Klasör taşınıyor...';
$messages['formincomplete'] = 'Form tam olarak doldurulmadı';
-$messages['noemailwarning'] = 'Lütfen geçerli bir posta adresi girin';
+$messages['noemailwarning'] = 'Lütfen geçerli bir e-posta adresi girin';
$messages['nonamewarning'] = 'Lütfen bir isim girin';
$messages['nopagesizewarning'] = 'Lütfen bir sayfa boyutu girin';
$messages['norecipientwarning'] = 'Lütfen en az bir alıcı belirtin';
-$messages['nosubjectwarning'] = '"Konu" kutusu boş bırakılmış. Ã\9eimdi bir konu belirtmek ister misiniz?';
+$messages['nosubjectwarning'] = '"Konu" kutusu boş bırakılmış. Å\9eimdi bir konu belirtmek ister misiniz?';
$messages['nobodywarning'] = 'Postayı boş olarak gönder?';
$messages['notsentwarning'] = 'Posta gönderilmedi. Postanızı iptal etmek istiyor musunuz?';
-$messages['noldapserver'] = 'Lütfen arama için bir Ldap sunucu seçin';
+$messages['noldapserver'] = 'Lütfen arama için bir LDAP sunucu seçin';
$messages['nocontactsreturned'] = 'Kişi bulunamadı';
-$messages['nosearchname'] = 'Lütfen bir kişi ismi veya posta adresi girin';
-$messages['searchsuccessful'] = '$nr tane posta bulundu';
+$messages['nosearchname'] = 'Lütfen bir kişi ismi veya e-posta adresi girin';
+$messages['searchsuccessful'] = '$nr posta bulundu';
$messages['searchnomatch'] = 'Aramanıza uygun hiçbir sonuç bulunamadı';
$messages['searching'] = 'Aranıyor...';
-$messages['checking'] = 'Kontrol ediliyor...';
-$messages['nospellerrors'] = 'Yazım hatası bulunmadı';
-$messages['folderdeleted'] = 'Klasör başarılı bir şekilde silindi';
+$messages['checking'] = 'Denetleniyor...';
+$messages['nospellerrors'] = 'Yazım hatası bulunamadı';
+$messages['folderdeleted'] = 'Klasör silindi';
$messages['deletedsuccessfully'] = 'Silindi';
-$messages['converting'] = 'Mesajın biçimlendirmesi kaldırılıyor..';
-$messages['messageopenerror'] = 'Mesaj sunucudan yüklenemedi';
+$messages['converting'] = 'Postanın biçimlendirmesi kaldırılıyor...';
+$messages['messageopenerror'] = 'Sunucudan posta yüklenemedi';
$messages['fileuploaderror'] = 'Dosya yükleme başarısız';
-$messages['filesizeerror'] = 'Yüklenen dosya en büyük dosya boyu $size \'ı aşıyor';
+$messages['filesizeerror'] = 'Yüklenen dosya en büyük dosya boyunu ($size) aşıyor';
$messages['copysuccess'] = '$nr adres kopyalandı';
$messages['copyerror'] = 'Hiçbir adres kopyalanamadı';
$messages['sourceisreadonly'] = 'Adres kaynağı salt okunur durumda';
-$messages['errorsavingcontact'] = 'Bağlantı adresi kaydedilemedi';
+$messages['errorsavingcontact'] = 'Kişinin adresi kaydedilemedi';
+$messages['movingmessage'] = 'Posta taşınıyor...';
+$messages['receiptsent'] = 'Okundu onayı gönderildi';
+$messages['errorsendingreceipt'] = 'Okundu onayı gönderilemedi';
+$messages['nodeletelastidentity'] = 'Son kimliğiniz olduğu için bu kimliği silemezsiniz';
+$messages['addsubfolderhint'] = 'Bu klasör, şu an seçili olanın alt klasörü olarak oluşturulacak';
+$messages['forbiddencharacter'] = 'Klasör ismi yasaklanmış bir karakter içeriyor';
+$messages['selectimportfile'] = 'Lütfen yüklenecek dosyayı seçin';
+$messages['addresswriterror'] = 'Seçili adres defterine yazılamaz';
+$messages['importwait'] = 'Aktarılıyor, lütfen bekleyin...';
+$messages['importerror'] = 'İçe aktarma başarısız! Yüklenen dosya geçerli bir vCard dosyası değil';
+$messages['importconfirm'] = '<b>$inserted kişi başarıyla aktarıldı, halihazırda var olan $skipped kişi atlandı</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = 'Bu işleme izin verilmedi!';
+$messages['editorwarning'] = 'Düz metin düzenleyiciye geçmek, metin üzerindeki bütün biçimlendirmeleri kaldıracak. Devam etmek istiyor musunuz?';
+$messages['nofromaddress'] = 'Seçili kimlikte e-posta adresi yok';
+$messages['nosenderwarning'] = 'Lütfen gönderici e-posta adresini girin';
-?>
\ No newline at end of file
+?>
| Zhang Huang bin <michaelbibby@gmail.com> |
+-----------------------------------------------------------------------+
-@version $Id: labels.inc 1428 2008-05-26 17:18:31Z alec $
+@version $Id: labels.inc 2151 2008-12-14 21:37:19Z yllar $
*/
$labels['login'] = '登录';
$labels['logout'] = '注销';
$labels['mail'] = '电子邮件';
-$labels['settings'] = '系统设定';
+$labels['settings'] = '邮箱设置';
$labels['addressbook'] = '通讯录';
$labels['inbox'] = '收件箱';
$labels['drafts'] = '草稿箱';
$labels['from'] = '发件人';
$labels['to'] = '收件人';
$labels['cc'] = '抄送';
-$labels['bcc'] = '暗送';
+$labels['bcc'] = '密送';
$labels['replyto'] = '回复至';
$labels['date'] = '日期';
$labels['size'] = '大小';
$labels['organization'] = '组织';
$labels['reply-to'] = '回复至';
$labels['mailboxlist'] = '邮件夹';
-$labels['messagesfromto'] = '从 $from 到 $to,共有 $count 封邮件';
-$labels['messagenrof'] = '第 $nr 封邮件,共有 $count 封';
-$labels['moveto'] = '转移至...';
+$labels['messagesfromto'] = '第 $from 到 $to,共 $count 封邮件';
+$labels['messagenrof'] = '第 $nr 封邮件,共 $count 封';
+$labels['moveto'] = '移动到';
$labels['download'] = '下载';
$labels['filename'] = '文件名';
$labels['filesize'] = '文件大小';
-$labels['preferhtml'] = '使ç\94¨HTML显示';
-$labels['htmlmessage'] = 'HTML邮件';
+$labels['preferhtml'] = '以 HTML æ ¼å¼\8f显示';
+$labels['htmlmessage'] = 'HTML 邮件';
$labels['prettydate'] = '短日期格式';
$labels['addtoaddressbook'] = '添加到通讯录';
$labels['sun'] = '日';
$labels['longnov'] = '十一月';
$labels['longdec'] = '十二月';
$labels['today'] = '今日';
-$labels['checkmail'] = 'æ£\80æ\9f¥邮件';
+$labels['checkmail'] = 'æ\94¶å\8f\96æ\96°邮件';
$labels['writenewmessage'] = '写新邮件';
-$labels['replytomessage'] = '回复';
+$labels['replytomessage'] = '回复发件人';
$labels['replytoallmessage'] = '全部回复';
-$labels['forwardmessage'] = '转发';
-$labels['deletemessage'] = '删除';
+$labels['forwardmessage'] = '转发邮件';
+$labels['deletemessage'] = '删除邮件';
$labels['movemessagetotrash'] = '移动邮件到回收站';
-$labels['printmessage'] = '打印';
-$labels['previousmessage'] = '上一封';
+$labels['printmessage'] = '打印邮件';
+$labels['previousmessage'] = '显示上一封邮件';
$labels['previousmessages'] = '上一页';
-$labels['firstmessage'] = '第一封';
+$labels['firstmessage'] = '显示第一封邮件';
$labels['firstmessages'] = '第一页';
$labels['nextmessage'] = '下一封';
$labels['nextmessages'] = '下一页';
$labels['lastmessage'] = '最后一封';
$labels['lastmessages'] = '最后一页';
$labels['backtolist'] = '返回邮件列表';
-$labels['viewsource'] = '显示邮件原文';
+$labels['viewsource'] = '显示邮件源文件';
$labels['markmessages'] = '标记邮件';
$labels['markread'] = '已读';
$labels['markunread'] = '未读';
+$labels['markflagged'] = '已标记';
+$labels['markunflagged'] = '未标记';
$labels['select'] = '选择';
$labels['all'] = '全部';
$labels['none'] = '无';
$labels['unread'] = '未读';
+$labels['flagged'] = '已标记';
+$labels['unanswered'] = '未回复';
+$labels['filter'] = '过滤';
$labels['compact'] = '压缩';
$labels['empty'] = '清空';
$labels['purge'] = '清除';
-$labels['quota'] = '空间使用';
+$labels['quota'] = '邮箱容量';
$labels['unknown'] = '未知';
$labels['unlimited'] = '无限制';
$labels['quicksearch'] = '快速查找';
-$labels['resetsearch'] = '重新查找';
+$labels['resetsearch'] = '清空查找内容';
+$labels['openinextwin'] = '在新窗口中打开';
$labels['compose'] = '写新邮件';
-$labels['savemessage'] = '暂存至草稿箱';
+$labels['savemessage'] = '保存为草稿';
$labels['sendmessage'] = '立即发送';
$labels['addattachment'] = '添加附件';
$labels['charset'] = '字符集';
$labels['editortype'] = '编辑器类型';
$labels['returnreceipt'] = '邮件回执';
$labels['checkspelling'] = '拼写检查';
-$labels['resumeediting'] = '继续编辑';
+$labels['resumeediting'] = '重新编辑';
$labels['revertto'] = '恢复至';
$labels['attachments'] = '附件';
$labels['upload'] = '上传';
$labels['highest'] = '最高';
$labels['nosubject'] = '(无主题)';
$labels['showimages'] = '显示图片';
+$labels['alwaysshow'] = '总是在来自 $sender 的邮件中显示图片';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = '纯文本';
+$labels['savesentmessagein'] = '将已发送邮件保存到';
+$labels['dontsave'] = '不保存';
+$labels['maxuploadsize'] = '允许的最大文件大小是 $size';
$labels['addcc'] = '添加抄送';
-$labels['addbcc'] = '添加暗送';
+$labels['addbcc'] = '添加密送';
$labels['addreplyto'] = '添加回复';
$labels['mdnrequest'] = '发件人要求在您阅读这封邮件时发送通知。您是否希望通知发件人?';
$labels['receiptread'] = '发送回执(已读)';
$labels['yourmessage'] = '这是您的邮件回执';
$labels['receiptnote'] = '注意:回执只表示邮件在收件人的电脑上被打开过,不表示收件人已经阅读或已理解邮件的内容。';
$labels['name'] = '显示名称';
-$labels['firstname'] = '名称';
+$labels['firstname'] = '名字';
$labels['surname'] = '姓氏';
-$labels['email'] = '电子邮件地址';
+$labels['email'] = '邮件地址';
$labels['addcontact'] = '添加联系人';
$labels['editcontact'] = '修改联系人';
$labels['edit'] = '编辑';
$labels['cancel'] = '取消';
-$labels['save'] = '储存';
+$labels['save'] = '保存';
$labels['delete'] = '删除';
-$labels['newcontact'] = '建立联系人卡片';
+$labels['newcontact'] = '新建联系人';
$labels['deletecontact'] = '删除选中的联系人';
$labels['composeto'] = '写信给';
-$labels['contactsfromto'] = '从 $from 到 $to,共有 $count 个联系人';
+$labels['contactsfromto'] = '第 $from 到 $to 个联系人,共 $count 个';
$labels['print'] = '打印';
$labels['export'] = '导出';
-$labels['previouspage'] = '上页';
-$labels['firstpage'] = '首页';
-$labels['nextpage'] = '下页';
-$labels['lastpage'] = '末页';
+$labels['exportvcards'] = '以 vCard 格式导出联系人';
+$labels['previouspage'] = '上一页';
+$labels['firstpage'] = '第一页';
+$labels['nextpage'] = '下一页';
+$labels['lastpage'] = '最后一页';
$labels['groups'] = '分组';
$labels['personaladrbook'] = '个人住址';
+$labels['import'] = '导入';
+$labels['importcontacts'] = '导入联系人';
+$labels['importfromfile'] = '从文件导入';
+$labels['importreplace'] = '替换整个地址簿';
+$labels['importtext'] = '你可以从已有的地址簿导入联系人。目前支持从 vCard 数据格式导入地址簿。';
+$labels['done'] = '完成';
$labels['settingsfor'] = '设置';
-$labels['preferences'] = '偏好';
+$labels['preferences'] = '偏好设置';
$labels['userpreferences'] = '个人偏好';
$labels['editpreferences'] = '修改个人偏好';
-$labels['identities'] = '身份';
+$labels['identities'] = '发邮件的身份';
$labels['manageidentities'] = '管理此账号的身份';
$labels['newidentity'] = '添加身份';
$labels['newitem'] = '添加条目';
$labels['edititem'] = '修改条目';
-$labels['setdefault'] = '默认值';
+$labels['setdefault'] = '设为默认';
+$labels['autodetect'] = '自动';
$labels['language'] = '语言';
$labels['timezone'] = '时区';
-$labels['pagesize'] = '每页邮件数量';
+$labels['pagesize'] = '每页显示的邮件数量';
$labels['signature'] = '签名';
$labels['dstactive'] = '夏令时';
-$labels['htmleditor'] = '使用HTML编辑器';
-$labels['htmlsignature'] = '使用HTML签名';
+$labels['htmleditor'] = '使用 HTML 编辑器';
+$labels['htmlsignature'] = '使用 HTML 签名';
$labels['previewpane'] = '显示预览窗口';
+$labels['skin'] = '界面皮肤';
$labels['logoutclear'] = '退出时清空回收站';
$labels['logoutcompact'] = '退出时压缩收件箱';
$labels['uisettings'] = '用户界面';
$labels['serversettings'] = '服务器设置';
-$labels['mailboxview'] = '邮箱查看';
+$labels['mailboxview'] = '邮箱查看方式';
$labels['mdnrequests'] = '发件人通知';
$labels['askuser'] = '询问用户';
$labels['autosend'] = '自动发送';
-$labels['ignore'] = '乎略';
+$labels['ignore'] = '忽略';
$labels['readwhendeleted'] = '删除后标记为已读';
$labels['flagfordeletion'] = '标记邮件为已删除而不是实际删除';
+$labels['skipdeleted'] = '不显示标记为已删除的邮件';
+$labels['showremoteimages'] = '显示内嵌的图片';
+$labels['fromknownsenders'] = '来自未知的发件人';
+$labels['always'] = '总是';
+$labels['showinlineimages'] = '在邮件下方显示附件中的图片';
$labels['autosavedraft'] = '自动保存到草稿箱';
$labels['everynminutes'] = '第 $n 分钟';
+$labels['keepaliveevery'] = '每隔 $n 分钟';
+$labels['keepalive'] = '检查新邮件';
$labels['never'] = '从不';
+$labels['messagesdisplaying'] = '邮件显示设置';
+$labels['messagescomposition'] = '写邮件';
+$labels['mimeparamfolding'] = '附件名';
+$labels['2231folding'] = '完整的 RFC 2231(Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2232(MS Outlook)';
+$labels['2047folding'] = '完整的 RFC 2047(其它)';
+$labels['advancedoptions'] = '高级选项';
+$labels['focusonnewmessage'] = '新邮件到达时将窗口提升为焦点窗口';
+$labels['checkallfolders'] = '检查所有邮件夹里的新邮件';
$labels['folder'] = '邮件夹';
$labels['folders'] = '邮件夹';
$labels['foldername'] = '邮件夹名称';
$labels['renamefolder'] = '重命名邮件夹';
$labels['deletefolder'] = '删除邮件夹';
$labels['managefolders'] = '管理邮件夹';
+$labels['specialfolders'] = '指定邮件夹';
$labels['sortby'] = '排序';
$labels['sortasc'] = '递增排序';
$labels['sortdesc'] = '递减排序';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
?>
/*
- +-----------------------------------------------------------------------+
- | localization/zh_CN/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: Xue zhong sheng <xue.zhongsheng@gmail.com> |
- | Zhang Huang bin <michaelbibby@gmail.com> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| localization/zh_CN/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: Xue zhong sheng <xue.zhongsheng@gmail.com> |
+| Zhang Huang bin <michaelbibby@gmail.com> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1415 2008-05-21 13:23:00Z alec $
+@version $Id: messages.inc 2136 2008-12-08 20:44:46Z yllar $
*/
$messages = array();
$messages['loginfailed'] = '登录失败';
-$messages['cookiesdisabled'] = '你的浏览器不接受 cookies';
+$messages['cookiesdisabled'] = '您的浏览器不接受 cookies';
$messages['sessionerror'] = '会话已过期';
$messages['imaperror'] = '连接到邮件服务器失败';
$messages['nomessagesfound'] = '此邮件夹内无邮件';
-$messages['loggedout'] = '你已成功注销';
+$messages['loggedout'] = '您已成功注销';
$messages['mailboxempty'] = '邮件夹为空';
-$messages['loading'] = '加载中...';
-$messages['loadingdata'] = 'æ\95°æ\8d®å\8a è½½ä¸...';
+$messages['loading'] = '正在加载...';
+$messages['loadingdata'] = 'æ£å\9c¨å\8a è½½æ\95°æ\8d®...';
$messages['checkingmail'] = '检查新邮件...';
$messages['sendingmessage'] = '正在发送邮件...';
$messages['messagesent'] = '邮件发送成功';
$messages['nocontactsfound'] = '未找到联系人';
$messages['contactnotfound'] = '未找到指定的联系人';
$messages['sendingfailed'] = '发送失败';
+$messages['senttooquickly'] = '您需要等待 $sec 秒才能发送邮件';
+$messages['errorsavingsent'] = '保存已发送邮件时出现错误';
$messages['errorsaving'] = '保存过程中发生错误';
$messages['errormoving'] = '无法移动邮件';
$messages['errordeleting'] = '无法删除邮件';
-$messages['deletecontactconfirm'] = '你是否确认要删除已选中的联系人?';
-$messages['deletemessagesconfirm'] = '你是否确认要删除已选中的邮件?';
-$messages['deletefolderconfirm'] = '你是否确认要删除已选中的邮件夹?';
-$messages['purgefolderconfirm'] = '你是否确认要删除当前邮件夹中的所有邮件?';
+$messages['deletecontactconfirm'] = '确定要删除已选中的联系人?';
+$messages['deletemessagesconfirm'] = '确定要删除已选中的邮件?';
+$messages['deletefolderconfirm'] = '确定要删除已选中的邮件夹?';
+$messages['purgefolderconfirm'] = '是否确认要删除当前邮件夹中的所有邮件?';
+$messages['foldercreating'] = '正在创建邮件夹';
+$messages['folderdeleting'] = '正在删除邮件夹';
+$messages['folderrenaming'] = '正在重命名邮件夹';
+$messages['foldermoving'] = '正在移动目录...';
$messages['formincomplete'] = '当前表单未填写完整,请完整填写';
$messages['noemailwarning'] = '请输入一个有效的邮件地址';
$messages['nonamewarning'] = '请输入名字';
$messages['nopagesizewarning'] = '请输入每页显示的邮件数量';
+$messages['nosenderwarning'] = '请输入发件人的邮件地址';
$messages['norecipientwarning'] = '至少需要一个收件人';
-$messages['nosubjectwarning'] = '主题为空。你要输入一个主题吗?';
+$messages['nosubjectwarning'] = '主题为空。您要输入一个主题吗?';
$messages['nobodywarning'] = '要发送无正文的邮件吗?';
-$messages['notsentwarning'] = '邮件未发送。你确定要离开并废弃当前邮件?';
+$messages['notsentwarning'] = '邮件未发送。您确定要离开并废弃当前邮件吗?';
$messages['noldapserver'] = '请选择一个LDAP服务器进行查找';
$messages['nocontactsreturned'] = '未找到联系人';
$messages['nosearchname'] = '请输入一个联系人姓名或电子邮件地址';
-$messages['searchsuccessful'] = '共找到 $n 封邮件';
+$messages['searchsuccessful'] = '共找到 $nr 封邮件';
$messages['searchnomatch'] = '未找到任何符合条件的邮件';
-$messages['searching'] = 'æ\9f¥æ\89¾ä¸...';
-$messages['checking'] = 'æ£\80æ\9f¥ä¸...';
+$messages['searching'] = 'æ£å\9c¨æ\9f¥æ\89¾...';
+$messages['checking'] = 'æ£å\9c¨æ£\80æ\9f¥...';
$messages['nospellerrors'] = '未发现拼写错误';
$messages['folderdeleted'] = '邮件夹已被成功删除';
$messages['deletedsuccessfully'] = '删除成功';
$messages['receiptsent'] = '成功发送了一个已读回执';
$messages['errorsendingreceipt'] = '无法发送回执';
$messages['nodeletelastidentity'] = '无法删除这个身份,这是最后一个。';
-$messages['addsubfolderhint'] = '文件夹将被作为所选中文件夹的子目录';
+$messages['addsubfolderhint'] = '新建的文件夹将成为所选文件夹的子文件夹';
+$messages['forbiddencharacter'] = '目录名包含隐藏字符';
+$messages['selectimportfile'] = '请选择要上传的文件';
+$messages['addresswriterror'] = '已选择的地址簿不可写';
+$messages['importwait'] = '正在导入,请稍后...';
+$messages['importerror'] = '导入失败!所上传的文件不是有效的 vCard 文件。';
+$messages['importconfirm'] = '<b>成功导入 $inserted 联系人,$skipped 乎略已存在的联系人</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = '不允许的操作';
+$messages['nofromaddress'] = '选种的身份中没有邮件地址';
+$messages['editorwarning'] = '切换到纯文本编辑器将导致邮件正文中的所有文本格式失效,您确定要这样做吗?';
?>
/*
- +-----------------------------------------------------------------------+
- | localization/tw/labels.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: kourge <kourge@gmail.com> |
- | Ting-Hung Chiu <earrl@mmlab.cse.yzu.edu.tw> |
- +-----------------------------------------------------------------------+
-
- @version $Id: labels.inc 1277 2008-04-10 10:01:46Z alec $
++-----------------------------------------------------------------------+
+| localization/zh_TW/labels.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: WayneSan <waynesan@zerozone.tw> |
+| kourge <kourge@gmail.com> |
+| Ting-Hung Chiu <earrl@mmlab.cse.yzu.edu.tw> |
++-----------------------------------------------------------------------+
+
+@version $Id: labels.inc 2115 2008-12-04 10:21:34Z alec $
*/
$labels = array();
+
+// login page
$labels['welcome'] = '歡迎使用 $product';
$labels['username'] = '使用者名稱';
$labels['password'] = '使用者密碼';
$labels['server'] = '伺服器';
$labels['login'] = '登入';
+
+// taskbar
$labels['logout'] = '登出';
$labels['mail'] = '電子郵件';
$labels['settings'] = '個人設定';
$labels['addressbook'] = '通訊錄';
-$labels['inbox'] = '信件匣';
+
+// mailbox names
+$labels['inbox'] = '收件匣';
$labels['drafts'] = '草稿匣';
$labels['sent'] = '寄件備份';
$labels['trash'] = '垃圾桶';
$labels['junk'] = '垃圾郵件';
+
+// message listing
$labels['subject'] = '主旨';
$labels['from'] = '寄件者';
$labels['to'] = '收件者';
$labels['cc'] = '副本';
-$labels['bcc'] = '秘件副本';
+$labels['bcc'] = '密件副本';
$labels['replyto'] = '回覆至';
$labels['date'] = '日期';
$labels['size'] = '大小';
$labels['priority'] = '優先順序';
$labels['organization'] = '組織';
-$labels['reply-to'] = '回覆至';
+
+// aliases
+$labels['reply-to'] = $labels['replyto'];
+
$labels['mailboxlist'] = '資料夾';
$labels['messagesfromto'] = '郵件 $from 至 $to,共有 $count 封郵件';
$labels['messagenrof'] = '第 $nr 封郵件,共有 $count 封';
+
$labels['moveto'] = '移至...';
$labels['download'] = '下載';
+
$labels['filename'] = '檔案名稱';
$labels['filesize'] = '檔案大小';
+
$labels['preferhtml'] = '使用 HTML 顯示';
$labels['htmlmessage'] = 'HTML 郵件';
$labels['prettydate'] = '簡短日期顯示';
+
$labels['addtoaddressbook'] = '新增至通訊錄';
+
+// weekdays short
$labels['sun'] = '日';
$labels['mon'] = '一';
$labels['tue'] = '二';
$labels['thu'] = '四';
$labels['fri'] = '五';
$labels['sat'] = '六';
+
+// weekdays long
$labels['sunday'] = '星期日';
$labels['monday'] = '星期一';
$labels['tuesday'] = '星期二';
$labels['thursday'] = '星期四';
$labels['friday'] = '星期五';
$labels['saturday'] = '星期六';
+
+// months short
+$labels['jan'] = '一';
+$labels['feb'] = '二';
+$labels['mar'] = '三';
+$labels['apr'] = '四';
+$labels['may'] = '五';
+$labels['jun'] = '六';
+$labels['jul'] = '七';
+$labels['aug'] = '八';
+$labels['sep'] = '九';
+$labels['oct'] = '十';
+$labels['nov'] = '十一';
+$labels['dec'] = '十二';
+
+// months long
+$labels['longjan'] = '一月';
+$labels['longfeb'] = '二月';
+$labels['longmar'] = '三月';
+$labels['longapr'] = '四月';
+$labels['longmay'] = '五月';
+$labels['longjun'] = '六月';
+$labels['longjul'] = '七月';
+$labels['longaug'] = '八月';
+$labels['longsep'] = '九月';
+$labels['longoct'] = '十月';
+$labels['longnov'] = '十一月';
+$labels['longdec'] = '十二月';
+
$labels['today'] = '今日';
+
+// toolbar buttons
$labels['checkmail'] = '檢查新郵件';
$labels['writenewmessage'] = '撰寫新郵件';
$labels['replytomessage'] = '回覆';
$labels['replytoallmessage'] = '全部回覆';
$labels['forwardmessage'] = '轉寄';
$labels['deletemessage'] = '刪除郵件';
-$labels['movemessagetotrash'] = '移動郵件至垃圾桶';
+$labels['movemessagetotrash'] = '移動郵件至' . $labels['trash'];
$labels['printmessage'] = '列印此郵件';
$labels['previousmessage'] = '顯示上一封郵件';
$labels['previousmessages'] = '顯示上一頁';
$labels['lastmessages'] = '顯示最後一頁';
$labels['backtolist'] = '回到郵件清單';
$labels['viewsource'] = '顯示原始郵件';
-$labels['markmessages'] = '標記郵件為';
-$labels['markread'] = '已讀';
-$labels['markunread'] = '未讀';
-$labels['select'] = '選擇';
+$labels['markmessages'] = '標記選取的郵件為';
+$labels['markread'] = '標示為已讀取';
+$labels['markunread'] = '標示為未讀取';
+$labels['markflagged'] = '標上旗標';
+$labels['markunflagged'] = '移除旗標';
+
+$labels['select'] = '選取';
$labels['all'] = '全部';
$labels['none'] = '無';
-$labels['unread'] = '未讀';
+$labels['unread'] = '未讀取';
+
$labels['compact'] = '壓縮';
$labels['empty'] = '清空';
$labels['purge'] = '清除';
+
$labels['quota'] = '磁碟使用量';
$labels['unknown'] = '未知';
$labels['unlimited'] = '無限制';
+
$labels['quicksearch'] = '快速搜尋';
$labels['resetsearch'] = '重設搜尋';
+
+$labels['openinextwin'] = '在新視窗開啟';
+
+// message compose
$labels['compose'] = '撰寫新郵件';
-$labels['savemessage'] = 'å\98è\87³è\8d\89稿å\8c£';
+$labels['savemessage'] = 'å\84²å\98æ\88\90è\8d\89稿';
$labels['sendmessage'] = '立即寄出';
$labels['addattachment'] = '增加附件檔案';
-$labels['charset'] = '字元集';
+$labels['charset'] = '郵件編碼';
$labels['editortype'] = '編輯器類型';
-$labels['returnreceipt'] = '郵件回條';
+$labels['returnreceipt'] = '要求讀取回條';
+
$labels['checkspelling'] = '拼字檢查';
$labels['resumeediting'] = '繼續編輯';
$labels['revertto'] = '恢復至';
-$labels['attachments'] = '附件';
+
+$labels['attachments'] = '附加檔案';
$labels['upload'] = '上傳';
$labels['close'] = '關閉';
+
$labels['low'] = '低';
$labels['lowest'] = '最低';
$labels['normal'] = '普通';
$labels['high'] = '高';
$labels['highest'] = '最高';
+
$labels['nosubject'] = '(沒有主旨)';
$labels['showimages'] = '顯示圖片';
+$labels['alwaysshow'] = '永遠顯示來自 $sender 的圖片';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = '純文字';
+$labels['savesentmessagein'] = '儲存寄件備份至';
+$labels['dontsave'] = '不要儲存';
+$labels['maxuploadsize'] = '上傳檔案大小限制為 $size';
+
$labels['addcc'] = '新增副本';
$labels['addbcc'] = '新增密件副本';
$labels['addreplyto'] = '新增回覆地址';
+
+// mdn
$labels['mdnrequest'] = '此郵件的寄件者希望在你閱讀此郵件時受到通知。你想要通知寄件者嗎?';
$labels['receiptread'] = '郵件回條(已閱讀)';
$labels['yourmessage'] = '這是你郵件的郵件回條';
$labels['receiptnote'] = '注意:此回條只能確認收件者的電腦顯示了郵件,並不能保證收件者已閱讀或了解郵件的內容。';
+
+// address book
$labels['name'] = '顯示名稱';
$labels['firstname'] = '名稱';
$labels['surname'] = '姓氏';
$labels['email'] = '電子郵件';
+
$labels['addcontact'] = '新增聯絡人';
$labels['editcontact'] = '編輯聯絡人';
+
$labels['edit'] = '編輯';
$labels['cancel'] = '取消';
$labels['save'] = '儲存';
$labels['delete'] = '刪除';
-$labels['newcontact'] = '建立新聯絡人卡片';
+
+$labels['newcontact'] = '建立新聯絡人資料';
$labels['deletecontact'] = '刪除所選擇的聯絡人';
-$labels['composeto'] = '寄信至';
+$labels['composeto'] = '寄信至所選擇的聯絡人';
$labels['contactsfromto'] = '聯絡人 $from 至 $to,共有 $count 人';
$labels['print'] = '列印';
-$labels['export'] = '匯出';
+$labels['export'] = '匯出通訊錄';
+$labels['exportvcards'] = '匯出通訊錄為 vCard 格式';
+
$labels['previouspage'] = '顯示上一頁';
$labels['firstpage'] = '顯示第一頁';
$labels['nextpage'] = '顯示下一頁';
$labels['lastpage'] = '顯示最後一頁';
+
$labels['groups'] = '群組';
$labels['personaladrbook'] = '個人住址';
+
+$labels['import'] = '匯入通訊錄';
+$labels['importcontacts'] = '由檔案匯入通訊錄';
+$labels['importfromfile'] = '選擇你要匯入的檔案:';
+$labels['importreplace'] = '以匯入的資料取代已存在的重複資料';
+$labels['importtext'] = '你可以由已存在的通訊錄上傳資料,<br/>目前系統僅支援匯入 <a href="http://zh.wikipedia.org/wiki/VCard" target="_blank">vCard</a> 格式的資料。';
+$labels['done'] = '完成';
+
+// settings
$labels['settingsfor'] = '設定';
+
$labels['preferences'] = '設定';
$labels['userpreferences'] = '個人設定';
$labels['editpreferences'] = '編輯個人設定';
+
$labels['identities'] = '身份資訊';
$labels['manageidentities'] = '管理此帳號的身份資訊';
$labels['newidentity'] = '新增身份資訊';
+
$labels['newitem'] = '新增項目';
$labels['edititem'] = '編輯項目';
-$labels['setdefault'] = '設成預設值';
+
+$labels['setdefault'] = '設成預設i值';
+$labels['autodetect'] = '自動選擇';
$labels['language'] = '語言';
$labels['timezone'] = '時區';
$labels['pagesize'] = '每頁郵件數';
-$labels['signature'] = '簽名';
-$labels['dstactive'] = '日光節約';
-$labels['htmleditor'] = '撰寫 HTML 郵件';
+$labels['signature'] = '簽名檔';
+$labels['dstactive'] = '日光節約時間';
+$labels['htmleditor'] = '使用 HTML 撰寫郵件';
$labels['htmlsignature'] = 'HTML 簽名檔';
$labels['previewpane'] = '顯示預覽窗格';
+$labels['skin'] = '版面風格';
+$labels['logoutclear'] = '登出時清空' . $labels['trash'];
+$labels['logoutcompact'] = '登出時壓縮' . $labels['inbox'];
+$labels['uisettings'] = '使用介面設定';
+$labels['serversettings'] = '伺服器設定';
+$labels['mailboxview'] = '信箱顯示設定';
+$labels['mdnrequests'] = '讀取回條回應';
+$labels['askuser'] = '詢問使用者';
+$labels['autosend'] = '自動送出';
+$labels['ignore'] = '完全忽略';
+$labels['readwhendeleted'] = '將刪除的信件標示為已讀取';
+$labels['flagfordeletion'] = '刪除信件時將原始信件標示為已刪除';
+$labels['showinlineimages'] = '將附加檔案的圖片顯示於郵件最後';
$labels['autosavedraft'] = '自動儲存草稿';
$labels['everynminutes'] = '每 $n 分鐘';
$labels['never'] = '絕不';
+$labels['messagesdisplaying'] = '郵件顯示設定';
+$labels['messagescomposition'] = '撰寫郵件設定';
+
$labels['folder'] = '資料夾';
$labels['folders'] = '資料夾';
$labels['foldername'] = '資料夾名稱';
-$labels['subscribed'] = '已訂閱';
-$labels['messagecount'] = '個郵件';
+$labels['subscribed'] = '顯示';
+$labels['messagecount'] = '郵件數目';
$labels['create'] = '建立';
$labels['createfolder'] = '建立新資料夾';
$labels['rename'] = '重新命名';
$labels['renamefolder'] = '重新命名資料夾';
$labels['deletefolder'] = '刪除資料夾';
$labels['managefolders'] = '管理資料夾';
+$labels['specialfolders'] = '預設資料夾設定';
+
$labels['sortby'] = '排序';
$labels['sortasc'] = '遞增排序';
$labels['sortdesc'] = '遞減排序';
/*
- +-----------------------------------------------------------------------+
- | localization/tw/messages.inc |
- | |
- | Language file of the RoundCube Webmail client |
- | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- +-----------------------------------------------------------------------+
- | Author: kourge <kourge@gmail.com> |
- | Ting-Hung Chiu <earrl@mmlab.cse.yzu.edu.tw> |
- +-----------------------------------------------------------------------+
++-----------------------------------------------------------------------+
+| localization/zh_TW/messages.inc |
+| |
+| Language file of the RoundCube Webmail client |
+| Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+| Licensed under the GNU GPL |
+| |
++-----------------------------------------------------------------------+
+| Author: WayneSan <waynesan@zerozone.tw> |
+| kourge <kourge@gmail.com> |
+| Ting-Hung Chiu <earrl@mmlab.cse.yzu.edu.tw> |
++-----------------------------------------------------------------------+
- @version $Id: messages.inc 1086 2008-02-15 05:43:32Z tomekp $
+@version $Id: messages.inc 1886 2008-09-24 08:41:27Z tomekp $
*/
$messages['sendingmessage'] = '寄出郵件中...';
$messages['messagesent'] = '郵件寄出成功';
$messages['savingmessage'] = '儲存郵件中...';
-$messages['messagesaved'] = '訊息已經存至草稿匣';
+$messages['messagesaved'] = '訊息已經存至' . $labels['drafts'];
$messages['successfullysaved'] = '儲存成功';
$messages['addedsuccessfully'] = '聯絡人已經成功地新增至通訊錄';
$messages['contactexists'] = '此聯絡人的電子郵件位址已存在';
$messages['nocontactsfound'] = '沒有找到任何聯絡人';
$messages['contactnotfound'] = '找不到要求的聯絡人';
$messages['sendingfailed'] = '郵件寄出失敗';
+$messages['senttooquickly'] = '你寄出的信件太過於頻繁,請稍候 $sec 秒後再試一次。';
+$messages['errorsavingsent'] = '儲存寄件備份時發生錯誤';
$messages['errorsaving'] = '儲存時發生錯誤';
$messages['errormoving'] = '無法移動此郵件';
$messages['errordeleting'] = '無法刪除此郵件';
$messages['deletemessagesconfirm'] = '你確定要刪除已選擇的郵件?';
$messages['deletefolderconfirm'] = '你確定要刪除這個資料夾嗎?';
$messages['purgefolderconfirm'] = '你確定要刪除這個資料夾裡面所有的郵件嗎?';
+$messages['foldercreating'] = '建立資料夾中...';
+$messages['folderdeleting'] = '刪除資料夾中...';
+$messages['folderrenaming'] = '重新命名資料夾中...';
$messages['formincomplete'] = '這個表單有部分未填,請完整填寫';
$messages['noemailwarning'] = '請輸入一個有效的電子郵件位址';
$messages['nonamewarning'] = '請輸入名字';
$messages['errorsendingreceipt'] = '無法傳送回條';
$messages['nodeletelastidentity'] = '你不能刪除此身份,因為只剩一個身份。';
$messages['addsubfolderhint'] = '此資料夾會成為目前所選資料夾的子資料夾';
+$messages['forbiddencharacter'] = '資料夾名稱中包含非法的字元';
+$messages['selectimportfile'] = '請選擇一個上傳的檔案';
+$messages['addresswriterror'] = '無法寫入選擇的通訊錄';
+$messages['importwait'] = '匯入中,請稍候...';
+$messages['importerror'] = '匯入失敗!上傳的檔案並非支援的 vCard 格式。';
+$messages['importconfirm'] = '<b>成功匯入 $inserted 筆資料,略過 $skipped 筆已存在的資料</b>:<p><em>$names</em></p>';
+$messages['opnotpermitted'] = '不允許的操作';
?>
\ No newline at end of file
$target = get_input_value('_to', RCUBE_INPUT_POST);
if ($cid && preg_match('/^[a-z0-9\-_=]+(,[a-z0-9\-_=]+)*$/i', $cid) && strlen($target) && $target != $source)
{
- if ($target != '0')
- $TARGET = new rcube_ldap($CONFIG['ldap_public'][$target]);
- else
- $TARGET = new rcube_contacts($DB, $_SESSION['user_id']);
-
- $success = false;
+ $success = false;
+ $TARGET = $RCMAIL->get_address_book($target);
+
if ($TARGET && $TARGET->ready && !$TARGET->readonly)
$success = $TARGET->insert($CONTACTS->search($CONTACTS->primary_key, $cid), true);
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: edit.inc 1361 2008-05-07 22:16:00Z richs $
+ $Id: edit.inc 1939 2008-10-05 07:18:15Z alec $
*/
}
// add some labels to client
- rcube_add_label('noemailwarning');
- rcube_add_label('nonamewarning');
+ $OUTPUT->add_label('noemailwarning', 'nonamewarning');
list($form_start, $form_end) = get_form_tags($attrib);
unset($attrib['form']);
if (!strlen($EDIT_FORM))
{
$hiddenfields = new html_hiddenfield(array('name' => '_task', 'value' => $RCMAIL->task));
- $hiddenfields->add(array('name' => '_action', 'value' => 'save', 'source' => get_input_value('_source', RCUBE_INPUT_GPC)));
+ $hiddenfields->add(array('name' => '_action', 'value' => 'save'));
$hiddenfields->add(array('name' => '_source', 'value' => get_input_value('_source', RCUBE_INPUT_GPC)));
+ $hiddenfields->add(array('name' => '_framed', 'value' => (empty($_REQUEST['_framed']) ? 0 : 1)));
if (($result = $CONTACTS->get_result()) && ($record = $result->first()))
$hiddenfields->add(array('name' => '_cid', 'value' => $record['ID']));
-if (!$CONTACTS->get_result() && template_exists('addcontact'))
+if (!$CONTACTS->get_result() && $OUTPUT->template_exists('addcontact'))
$OUTPUT->send('addcontact');
// this will be executed if no template for addcontact exists
--- /dev/null
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/addressbook/export.inc |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2008, RoundCube Dev. - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Export the selected address book as vCard file |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com> |
+ +-----------------------------------------------------------------------+
+
+ $Id: $
+
+*/
+
+// get contacts for this user
+$CONTACTS->set_page(1);
+$CONTACTS->set_pagesize(999);
+$result = $CONTACTS->list_records();
+
+// send downlaod headers
+send_nocacheing_headers();
+header('Content-Type: text/x-vcard; charset=UTF-8');
+header('Content-Disposition: attachment; filename="rcube_contacts.vcf"');
+
+while ($result && ($row = $result->next())) {
+ $vcard = new rcube_vcard($row['vcard']);
+ $vcard->set('displayname', $row['name']);
+ $vcard->set('firstname', $row['firstname']);
+ $vcard->set('surname', $row['surname']);
+ $vcard->set('email', $row['email']);
+
+ echo $vcard->export();
+}
+
+exit;
+
+?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: func.inc 1412 2008-05-21 07:45:54Z alec $
+ $Id: func.inc 1939 2008-10-05 07:18:15Z alec $
*/
// instantiate a contacts object according to the given source
-if (($source = get_input_value('_source', RCUBE_INPUT_GPC)) && isset($CONFIG['ldap_public'][$source]))
- $CONTACTS = new rcube_ldap($CONFIG['ldap_public'][$source]);
-else if (strtolower($CONFIG['address_book_type']) == 'ldap') {
- // Get the first LDAP address book.
- $source = key((array)$CONFIG['ldap_public']);
- $prop = current((array)$CONFIG['ldap_public']);
- $CONTACTS = new rcube_ldap($prop);
-} else {
- $CONTACTS = new rcube_contacts($DB, $_SESSION['user_id']);
-} // end else
+$CONTACTS = $RCMAIL->get_address_book(($source = get_input_value('_source', RCUBE_INPUT_GPC)));
$CONTACTS->set_pagesize($CONFIG['pagesize']);
if (strtolower($CONFIG['address_book_type']) != 'ldap') {
// We are using the DB address book, add it.
$js_list = array("0" => array('id' => 0, 'readonly' => false));
-} // end if
-foreach ((array)$CONFIG['ldap_public'] as $id => $prop)
- $js_list[$id] = array('id' => $id, 'readonly' => !$prop['writable']);
+}
+if (is_array($CONFIG['ldap_public'])) {
+ foreach ($CONFIG['ldap_public'] as $id => $prop)
+ $js_list[$id] = array('id' => $id, 'readonly' => !$prop['writable']);
+}
$OUTPUT->set_env('address_sources', $js_list);
if (!$attrib['id'])
$attrib['id'] = 'rcmdirectorylist';
+ $out = '';
$local_id = '0';
$current = get_input_value('_source', RCUBE_INPUT_GPC);
- $line_templ = '<li id="%s" class="%s"><a href="%s"' .
- ' onclick="return %s.command(\'list\',\'%s\',this)"' .
- ' onmouseover="return %s.focus_folder(\'%s\')"' .
- ' onmouseout="return %s.unfocus_folder(\'%s\')"' .
- ' onmouseup="return %s.folder_mouse_up(\'%s\')">%s'.
- "</a></li>\n";
+ $line_templ = html::tag('li', array('id' => 'rcmli%s', 'class' => '%s'),
+ html::a(array('href' => '%s', 'onclick' => "return ".JS_OBJECT_NAME.".command('list','%s',this)"), '%s'));
- // allow the following attributes to be added to the <ul> tag
- $out = '<ul' . create_attrib_string($attrib, array('style', 'class', 'id')) . ">\n";
if (strtolower($CONFIG['address_book_type']) != 'ldap') {
- $out .= sprintf($line_templ,
- 'rcmli'.$local_id,
- !$current ? 'selected' : '',
- Q(rcmail_url('list', array('_source' => 0))),
- JS_OBJECT_NAME,
- $local_id,
- JS_OBJECT_NAME,
- $local_id,
- JS_OBJECT_NAME,
- $local_id,
- JS_OBJECT_NAME,
- $local_id,
- rcube_label('personaladrbook'));
+ $out .= sprintf($line_templ, $local_id, (!$current ? 'selected' : ''),
+ Q(rcmail_url(null, array('_source' => $local_id))), $local_id, rcube_label('personaladrbook'));
} // end if
else {
// DB address book not used, see if a source is set, if not use the
} // end if
} // end else
- foreach ((array)$CONFIG['ldap_public'] as $id => $prop)
- {
+ foreach ((array)$CONFIG['ldap_public'] as $id => $prop) {
$js_id = JQ($id);
$dom_id = preg_replace('/[^a-z0-9\-_]/i', '', $id);
- $out .= sprintf($line_templ,
- 'rcmli'.$dom_id,
- $current == $id ? 'selected' : '',
- Q(rcmail_url('list', array('_source' => $id))),
- JS_OBJECT_NAME,
- $js_id,
- JS_OBJECT_NAME,
- $js_id,
- JS_OBJECT_NAME,
- $js_id,
- JS_OBJECT_NAME,
- $js_id,
- !empty($prop['name']) ? Q($prop['name']) : Q($id));
+ $out .= sprintf($line_templ, $dom_id, ($current == $id ? 'selected' : ''),
+ Q(rcmail_url(null, array('_source' => $id))), $js_id, (!empty($prop['name']) ? Q($prop['name']) : Q($id)));
}
- $out .= '</ul>';
-
$OUTPUT->add_gui_object('folderlist', $attrib['id']);
- return $out;
+ return html::tag('ul', $attrib, $out, html::$common_attrib);
}
$OUTPUT->include_script('list.js');
// add some labels to client
- rcube_add_label('deletecontactconfirm');
+ $OUTPUT->add_label('deletecontactconfirm');
return $out;
}
$attrib['id'] = 'rcmcontactframe';
$attrib['name'] = $attrib['id'];
- $attrib_str = create_attrib_string($attrib, array('name', 'id', 'class', 'style', 'src', 'width', 'height', 'frameborder'));
$OUTPUT->set_env('contentframe', $attrib['name']);
$OUTPUT->set_env('blankpage', $attrib['src'] ? $OUTPUT->abs_url($attrib['src']) : 'program/blank.gif');
- return '<iframe'. $attrib_str . '></iframe>';
+
+ return html::iframe($attrib);
}
$OUTPUT->add_gui_object('countdisplay', $attrib['id']);
- // allow the following attributes to be added to the <span> tag
- $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id'));
-
- $out = '<span' . $attrib_str . '>';
- $out .= rcmail_get_rowcount_text();
- $out .= '</span>';
- return $out;
+ return html::span($attrib, rcmail_get_rowcount_text());
}
return $out;
}
+
$OUTPUT->set_pagetitle(rcube_label('addressbook'));
// register UI objects
--- /dev/null
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/addressbook/import.inc |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2008, RoundCube Dev. - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Import contacts from a vCard or CSV file |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com> |
+ +-----------------------------------------------------------------------+
+
+ $Id: $
+
+*/
+
+/**
+ * Handler function to display the import/upload form
+ */
+function rcmail_import_form($attrib)
+{
+ global $RCMAIL, $OUTPUT;
+
+ $attrib += array('id' => "rcmImportForm");
+
+ $upload = new html_inputfield(array('type' => 'file', 'name' => '_file', 'id' => 'rcmimportfile', 'size' => 40));
+ $form = html::p(null, html::label('rcmimportfile', rcube_label('importfromfile')) . html::br() . $upload->show());
+
+ $check_replace = new html_checkbox(array('name' => '_replace', 'value' => 1, 'id' => 'rcmimportreplace'));
+ $form .= html::p(null, $check_replace->show(get_input_value('_replace', RCUBE_INPUT_GPC)) .
+ html::label('rcmimportreplace', rcube_label('importreplace')));
+
+ $OUTPUT->add_label('selectimportfile','importwait');
+ $OUTPUT->add_gui_object('importform', $attrib['id']);
+
+ $out = html::p(null, Q(rcube_label('importtext'), 'show'));
+
+ $out .= $OUTPUT->form_tag(array(
+ 'action' => $RCMAIL->url('import'),
+ 'method' => 'post',
+ 'enctype' => 'multipart/form-data') + $attrib,
+ $form);
+
+ return $out;
+}
+
+
+/**
+ * Render the confirmation page for the import process
+ */
+function rcmail_import_confirm($attrib)
+{
+ global $IMPORT_STATS;
+
+ $vars = get_object_vars($IMPORT_STATS);
+ $vars['names'] = join(', ', array_map('Q', $IMPORT_STATS->names));
+
+ return html::p($attrib, Q(rcube_label(array(
+ 'name' => 'importconfirm',
+ 'nr' => $IMORT_STATS->inserted,
+ 'vars' => $vars,
+ )), 'show'));
+}
+
+
+/**
+ * Create navigation buttons for the current import step
+ */
+function rcmail_import_buttons($attrib)
+{
+ global $IMPORT_STATS, $OUTPUT;
+
+ $attrib += array('type' => "input");
+ unset($attrib['name']);
+
+ if (is_object($IMPORT_STATS)) {
+ $attrib['class'] = trim($attrib['class'] . ' mainaction');
+ $out = $OUTPUT->button(array('command' => "list", 'label' => "done") + $attrib);
+ }
+ else {
+ $out = $OUTPUT->button(array('command' => "list", 'label' => "cancel") + $attrib);
+ $out .= ' ';
+ $attrib['class'] = trim($attrib['class'] . ' mainaction');
+ $out .= $OUTPUT->button(array('command' => "import", 'label' => "import") + $attrib);
+ }
+
+ return $out;
+}
+
+
+/** The import process **/
+
+$importstep = 'rcmail_import_form';
+
+if ($_FILES['_file']['tmp_name'] && is_uploaded_file($_FILES['_file']['tmp_name'])) {
+
+ $replace = (bool)get_input_value('_replace', RCUBE_INPUT_GPC);
+ $CONTACTS = $RCMAIL->get_address_book(null, true);
+
+ // let rcube_vcard do the hard work :-)
+ $vcards = rcube_vcard::import(file_get_contents($_FILES['_file']['tmp_name']));
+
+ // no vcards detected
+ if (!count($vcards)) {
+ $OUTPUT->show_message('importerror', 'error');
+ }
+ else if ($CONTACTS->readonly) {
+ $OUTPUT->show_message('addresswriterror', 'error');
+ }
+ else {
+ $IMPORT_STATS = new stdClass;
+ $IMPORT_STATS->names = array();
+ $IMPORT_STATS->count = count($vcards);
+ $IMPORT_STATS->inserted = $IMPORT_STATS->skipped = $IMPORT_STATS->nomail = $IMPORT_STATS->errors = 0;
+
+ if ($replace)
+ $CONTACTS->delete_all();
+
+ foreach ($vcards as $vcard) {
+ $email = $vcard->email[0];
+
+ // skip entries without an e-mail address
+ if (empty($email)) {
+ $IMPORT_STATS->nomail++;
+ continue;
+ }
+
+ if (!$replace) {
+ // compare e-mail address
+ $existing = $CONTACTS->search('email', $email, false, false);
+ if (!$existing->count) { // compare display name
+ $existing = $CONTACTS->search('name', $vcard->displayname, false, false);
+ }
+ if ($existing->count) {
+ $IMPORT_STATS->skipped++;
+ continue;
+ }
+ }
+
+ $success = $CONTACTS->insert(array(
+ 'name' => $vcard->displayname,
+ 'firstname' => $vcard->firstname,
+ 'surname' => $vcard->surname,
+ 'email' => $email,
+ 'vcard' => $vcard->export(),
+ ));
+
+ if ($success) {
+ $IMPORT_STATS->inserted++;
+ $IMPORT_STATS->names[] = $vcard->displayname;
+ }
+ else {
+ $IMPORT_STATS->errors++;
+ }
+ }
+
+ $importstep = 'rcmail_import_confirm';
+ }
+}
+else if ($err = $_FILES['_file']['error']) {
+ if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE) {
+ $OUTPUT->show_message('filesizeerror', 'error', array('size' => show_bytes(parse_bytes(ini_get('upload_max_filesize')))));
+ }
+ else {
+ $OUTPUT->show_message('fileuploaderror', 'error');
+ }
+}
+
+
+$OUTPUT->set_pagetitle(rcube_label('importcontacts'));
+
+$OUTPUT->add_handlers(array(
+ 'importstep' => $importstep,
+ 'importnav' => 'rcmail_import_buttons',
+));
+
+// render page
+$OUTPUT->send('importcontacts');
+
+?>
\ No newline at end of file
{
$mailto_str = join(', ', $mailto);
$mailto_id = substr(md5($mailto_str), 0, 16);
- $_SESSION['mailto'][$mailto_id] = $mailto_str;
- $OUTPUT->command('redirect', rcmail_url('compose', array('_mailto' => $mailto_id), 'mail'));
+ $_SESSION['mailto'][$mailto_id] = urlencode($mailto_str);
+ $OUTPUT->redirect(array('task' => 'mail', '_action' => 'compose', '_mailto' => $mailto_id));
}
else
$OUTPUT->show_message('nocontactsfound', 'warning');
| program/steps/addressbook/show.inc |
| |
| This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: show.inc 543 2007-04-28 18:07:12Z thomasb $
+ $Id: show.inc 1615 2008-07-29 12:32:19Z thomasb $
*/
// read contact record
-if (($cid = get_input_value('_cid', RCUBE_INPUT_GPC)) && ($record = $CONTACTS->get_record($cid, true)))
+if (($cid = get_input_value('_cid', RCUBE_INPUT_GPC)) && ($record = $CONTACTS->get_record($cid, true))) {
$OUTPUT->set_env('cid', $record['ID']);
-
+}
function rcmail_contact_details($attrib)
- {
+{
global $CONTACTS, $OUTPUT;
// check if we have a valid result
- if (!(($result = $CONTACTS->get_result()) && ($record = $result->first())))
- {
+ if (!(($result = $CONTACTS->get_result()) && ($record = $result->first()))) {
$OUTPUT->show_message('contactnotfound');
return false;
}
// a specific part is requested
- if ($attrib['part'])
+ if ($attrib['part']) {
return Q($record[$attrib['part']]);
+ }
// return the complete address record as table
- $out = "<table>\n\n";
+ $table = new html_table(array('cols' => 2));
$a_show_cols = array('name', 'firstname', 'surname', 'email');
- foreach ($a_show_cols as $col)
- {
- if ($col=='email' && !empty($record[$col]))
- $value = sprintf(
- '<a href="#compose" onclick="%s.command(\'compose\', \'%s\')" title="%s">%s</a>',
- JS_OBJECT_NAME,
- JQ($record[$col]),
- rcube_label('composeto'),
- Q($record[$col]));
+ $microformats = array('name' => 'fn', 'email' => 'email');
+
+ foreach ($a_show_cols as $col) {
+ if ($col == 'email' && !empty($record[$col])) {
+ $value = html::a(array(
+ 'href' => 'mailto:' . $record[$col],
+ 'onclick' => sprintf("return %s.command('compose','%s',this)", JS_OBJECT_NAME, JQ($record[$col])),
+ 'title' => rcube_label('composeto'),
+ 'class' => $microformats[$col],
+ ), Q($record[$col]));
+ }
+ else if (!empty($record[$col])) {
+ $value = html::span($microformats[$col], Q($record[$col]));
+ }
else
- $value = Q($record[$col]);
+ $value = '';
- $out .= sprintf("<tr><td class=\"title\">%s</td><td>%s</td></tr>\n",
- Q(rcube_label($col)),
- $value);
- }
-
- $out .= "\n</table>";
-
- return $out;
+ $table->add('title', Q(rcube_label($col)));
+ $table->add(null, $value);
}
+
+ return $table->show($attrib + array('class' => 'vcard'));
+}
//$OUTPUT->framed = $_framed;
| program/steps/error.inc |
| |
| This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: error.inc 1347 2008-04-30 14:07:29Z thomasb $
+ $Id: error.inc 1946 2008-10-06 18:59:22Z alec $
*/
// browser is not compatible with this application
-if ($ERROR_CODE==409)
- {
+if ($ERROR_CODE==409) {
$user_agent = $GLOBALS['HTTP_SERVER_VARS']['HTTP_USER_AGENT'];
$__error_title = 'Your browser does not suit the requirements for this application';
$__error_text = <<<EOF
<p><i>Your configuration:</i><br />
$user_agent</p>
EOF;
- }
+}
// authorization error
-else if ($ERROR_CODE==401)
- {
+else if ($ERROR_CODE==401) {
$__error_title = "AUTHORIZATION FAILED";
$__error_text = "Could not verify that you are authorized to access this service!<br />\n".
"Please contact your server-administrator.";
- }
+}
// failed request (wrong step in URL)
-else if ($ERROR_CODE==404)
- {
+else if ($ERROR_CODE==404) {
$__error_title = "REQUEST FAILED/FILE NOT FOUND";
$request_url = htmlentities($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
$__error_text = <<<EOF
<p><i>Failed request:</i><br />
http://$request_url</p>
EOF;
- }
+}
// database connection error
-else if ($ERROR_CODE==603)
- {
+else if ($ERROR_CODE==601)
+{
+ $__error_title = "CONFIGURATION ERROR";
+ $__error_text = nl2br($ERROR_MESSAGE) . "<br />Please read the INSTALL instructions!";
+}
+
+// database connection error
+else if ($ERROR_CODE==603) {
$__error_title = "DATABASE ERROR: CONNECTION FAILED!";
- $__error_text = <<<EOF
-Unable to connect to the database!<br />
-Please contact your server-administrator.
-EOF;
- }
+ $__error_text = "Unable to connect to the database!<br />Please contact your server-administrator.";
+}
// system error
-else
- {
+else {
$__error_title = "SERVICE CURRENTLY NOT AVAILABLE!";
$__error_text = "Please contact your server-administrator.";
$__error_text = $ERROR_MESSAGE;
else
$__error_text = sprintf('Error No. [0x%04X]', $ERROR_CODE);
- }
+}
// compose page content
-if (template_exists('error'))
- {
+if ($OUTPUT && $OUTPUT->template_exists('error')) {
$OUTPUT->reset();
$OUTPUT->send('error');
- }
+}
+$__skin = $CONFIG->skin ? $CONFIG->skin : 'default';
// print system error page
print <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>RoundCube|Mail : ERROR $ERROR_CODE</title>
-<link rel="stylesheet" type="text/css" href="program/style.css" />
+<link rel="stylesheet" type="text/css" href="skins/$__skin/common.css" />
</head>
<body>
</html>
EOF;
+exit;
?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: addcontact.inc 1365 2008-05-08 08:22:18Z alec $
+ $Id: addcontact.inc 1712 2008-09-02 07:42:46Z thomasb $
*/
$done = false;
+$CONTACTS = $RCMAIL->get_address_book(null, true);
-if (!empty($_POST['_address']))
+if (!empty($_POST['_address']) && is_object($CONTACTS))
{
- $CONTACTS = array();
- if (strtolower($CONFIG['address_book_type']) == 'ldap') {
- // Use the first writable LDAP address book.
- foreach ($CONFIG["ldap_public"] as $id => $prop) {
- if ($prop["writable"]) {
- $CONTACTS = new rcube_ldap($prop);
- break;
- } // end if
- } // end foreach
- } // end if
- else {
- $CONTACTS = new rcube_contacts($DB, $_SESSION['user_id']);
- } // end else
$contact_arr = $IMAP->decode_address_list(get_input_value('_address', RCUBE_INPUT_POST, true), 1, false);
if (!empty($contact_arr[1]['mailto']))
--- /dev/null
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/mail/attachments.inc |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Upload, remove, display attachments in compose form |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com> |
+ +-----------------------------------------------------------------------+
+
+ $Id: compose.inc 2081 2008-11-23 12:38:44Z thomasb $
+
+*/
+
+
+if (!$_SESSION['compose']) {
+ die("Invalid session var!");
+}
+
+
+// remove an attachment
+if ($RCMAIL->action=='remove-attachment')
+{
+ if (preg_match('/^rcmfile([0-9]+)$/', $_POST['_file'], $regs))
+ {
+ $id = $regs[1];
+ if (is_array($_SESSION['compose']['attachments'][$id]))
+ {
+ @unlink($_SESSION['compose']['attachments'][$id]['path']);
+ unset($_SESSION['compose']['attachments'][$id]);
+ $OUTPUT->command('remove_from_attachment_list', "rcmfile$id");
+ $OUTPUT->send();
+ }
+ }
+ exit;
+}
+
+if ($RCMAIL->action=='display-attachment')
+{
+ if (preg_match('/^rcmfile([0-9]+)$/', $_GET['_file'], $regs))
+ {
+ $id = $regs[1];
+ if (is_array($_SESSION['compose']['attachments'][$id]))
+ {
+ $apath = $_SESSION['compose']['attachments'][$id]['path'];
+ header('Content-Type: ' . $_SESSION['compose']['attachments'][$id]['mimetype']);
+ header('Content-Length: ' . filesize($apath));
+ readfile($apath);
+ }
+ }
+ exit;
+}
+
+// attachment upload action
+
+// use common temp dir for file uploads
+$temp_dir = unslashify($CONFIG['temp_dir']);
+
+if (!is_array($_SESSION['compose']['attachments'])) {
+ $_SESSION['compose']['attachments'] = array();
+}
+
+// clear all stored output properties (like scripts and env vars)
+$OUTPUT->reset();
+
+if (is_array($_FILES['_attachments']['tmp_name'])) {
+ foreach ($_FILES['_attachments']['tmp_name'] as $i => $filepath) {
+ $tmpfname = tempnam($temp_dir, 'rcmAttmnt');
+ if (move_uploaded_file($filepath, $tmpfname)) {
+ $id = count($_SESSION['compose']['attachments']);
+ $_SESSION['compose']['attachments'][] = array(
+ 'name' => $_FILES['_attachments']['name'][$i],
+ 'mimetype' => rc_mime_content_type($tmpfname, $_FILES['_attachments']['type'][$i]),
+ 'path' => $tmpfname,
+ );
+
+ if (is_file($icon = $CONFIG['skin_path'] . '/images/icons/remove-attachment.png')) {
+ $button = html::img(array(
+ 'src' => $icon,
+ 'alt' => rcube_label('delete'),
+ 'style' => "padding-right:2px;vertical-align:middle",
+ ));
+ }
+ else {
+ $button = Q(rcube_label('delete'));
+ }
+
+ $content = html::a(array(
+ 'href' => "#delete",
+ 'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%d', this)", JS_OBJECT_NAME, $id),
+ 'title' => rcube_label('delete'),
+ ), $button);
+
+ $content .= Q($_FILES['_attachments']['name'][$i]);
+
+ $OUTPUT->command('add2attachment_list', "rcmfile$id", $content);
+ }
+ else { // upload failed
+ $err = $_FILES['_attachments']['error'][$i];
+ if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE) {
+ $msg = rcube_label(array('name' => 'filesizeerror', 'vars' => array('size' => show_bytes(parse_bytes(ini_get('upload_max_filesize'))))));
+ }
+ else {
+ $msg = rcube_label('fileuploaderror');
+ }
+
+ $OUTPUT->command('display_message', $msg, 'error');
+ }
+ }
+}
+else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+ $OUTPUT->command('display_message', rcube_label('fileuploaderror'), 'error');
+}
+
+// send html page with JS calls as response
+$OUTPUT->command('show_attachment_form', false);
+$OUTPUT->command('auto_save_start', false);
+$OUTPUT->send('iframe');
+
+?>
--- /dev/null
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/mail/autocomplete.inc |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2008, RoundCube Dev Team |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Perform a search on configured address books for the address |
+ | autocompletion of the message compose screen |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com> |
+ +-----------------------------------------------------------------------+
+
+ $Id: $
+
+*/
+
+$MAXNUM = 15; // same limit as in app.js
+$contacts = array();
+
+if ($search = get_input_value('_search', RCUBE_INPUT_POST)) {
+
+ foreach ($RCMAIL->config->get('autocomplete_addressbooks', array('sql')) as $id) {
+ $abook = $RCMAIL->get_address_book($id);
+ $abook->set_pagesize($MAXNUM);
+
+ if ($result = $abook->search(array('email','name'), $search)) {
+ while ($sql_arr = $result->iterate()) {
+ if (stripos((string)$sql_arr['email'], $search) !== false || stripos((string)$sql_arr['name'], $search) !== false) {
+ $contacts[] = format_email_recipient($sql_arr['email'], $sql_arr['name']);
+ }
+ }
+ }
+
+ if (count($contacts) >= $MAXNUM)
+ break;
+ }
+
+ sort($contacts);
+}
+
+$OUTPUT->command('ksearch_query_results', $contacts);
+$OUTPUT->send();
+
+?>
\ No newline at end of file
| program/steps/mail/check_recent.inc |
| |
| This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
*/
$a_mailboxes = $IMAP->list_mailboxes();
+$check_all = (bool)$RCMAIL->config->get('check_all_folders');
-foreach ($a_mailboxes as $mbox_name)
- {
- if ($mbox_name == $IMAP->get_mailbox_name())
- {
- if ($recent_count = $IMAP->messagecount(NULL, 'RECENT', TRUE))
- {
+foreach ($a_mailboxes as $mbox_name) {
+ if ($mbox_name == $IMAP->get_mailbox_name()) {
+ if ($recent_count = $IMAP->messagecount(NULL, 'RECENT', TRUE)) {
// refresh saved search set
if (($search_request = get_input_value('_search', RCUBE_INPUT_GPC)) && $IMAP->search_set)
$_SESSION['search'][$search_request] = $IMAP->refresh_search();
$unread_count = $IMAP->messagecount(NULL, 'UNSEEN', TRUE);
$OUTPUT->set_env('messagecount', $IMAP->messagecount());
+ $OUTPUT->set_env('pagesize', $IMAP->page_size);
+ $OUTPUT->set_env('pagecount', ceil($IMAP->messagecount()/$IMAP->page_size));
$OUTPUT->command('set_unread_count', $mbox_name, $unread_count, ($mbox_name == 'INBOX'));
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text());
$OUTPUT->command('set_quota', rcmail_quota_content($IMAP->get_quota()));
+ if (rcmail::get_instance()->config->get('focus_on_new_message',true))
+ $OUTPUT->command('new_message_focus');
+
// add new message headers to list
$a_headers = array();
for ($i=$recent_count, $id=$count_all-$recent_count+1; $i>0; $i--, $id++)
- {
+ {
// skip message if it does not match the current search
if (!$IMAP->in_searchset($id))
continue;
$header = $IMAP->get_headers($id, NULL, FALSE);
if ($header->recent)
$a_headers[] = $header;
- }
+ }
rcmail_js_message_list($a_headers, TRUE);
- }
- }
- else
- {
- if ($IMAP->messagecount($mbox_name, 'RECENT'))
- $OUTPUT->command('set_unread_count', $mbox_name, $IMAP->messagecount($mbox_name, 'UNSEEN'));
}
}
+ else if ($IMAP->messagecount($mbox_name, 'RECENT', $check_all)) {
+ $OUTPUT->command('set_unread_count', $mbox_name, $IMAP->messagecount($mbox_name, 'UNSEEN', $check_all));
+ }
+}
$OUTPUT->send();
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: compose.inc 1493 2008-06-08 18:17:09Z alec $
+ $Id: compose.inc 2161 2008-12-16 17:01:50Z thomasb $
*/
define('RCUBE_COMPOSE_FORWARD', 0x0107);
define('RCUBE_COMPOSE_DRAFT', 0x0108);
-
-// remove an attachment
-if ($RCMAIL->action=='remove-attachment' && preg_match('/^rcmfile([0-9]+)$/', $_POST['_file'], $regs))
-{
- $id = $regs[1];
- if (is_array($_SESSION['compose']['attachments'][$id]))
- {
- @unlink($_SESSION['compose']['attachments'][$id]['path']);
- $_SESSION['compose']['attachments'][$id] = NULL;
- $OUTPUT->command('remove_from_attachment_list', "rcmfile$id");
- $OUTPUT->send();
- exit;
- }
-}
-
-if ($RCMAIL->action=='display-attachment' && preg_match('/^rcmfile([0-9]+)$/', $_GET['_file'], $regs))
-{
- $id = $regs[1];
- if (is_array($_SESSION['compose']['attachments'][$id]))
- {
- $apath = $_SESSION['compose']['attachments'][$id]['path'];
- header('Content-Type: ' . $_SESSION['compose']['attachments'][$id]['mimetype']);
- header('Content-Length: ' . filesize($apath));
- readfile($apath);
- }
- exit;
-}
-
$MESSAGE_FORM = NULL;
$MESSAGE = NULL;
if (!is_array($_SESSION['compose']) || $_SESSION['compose']['id'] != get_input_value('_id', RCUBE_INPUT_GET))
{
rcmail_compose_cleanup();
- $_SESSION['compose'] = array('id' => uniqid(rand()));
+ $_SESSION['compose'] = array('id' => uniqid(rand()), 'param' => array_map('strip_tags', $_GET));
+
+ // process values like "mailto:foo@bar.com?subject=new+message&cc=another"
+ if ($_SESSION['compose']['param']['_to']) {
+ $mailto = explode('?', $_SESSION['compose']['param']['_to']);
+ if (count($mailto) > 1) {
+ $_SESSION['compose']['param']['_to'] = $mailto[0];
+ parse_str($mailto[1], $query);
+ foreach ($query as $f => $val)
+ $_SESSION['compose']['param']["_$f"] = $val;
+ }
+ }
+
+ // redirect to a unique URL with all parameters stored in session
+ $OUTPUT->redirect(array('_action' => 'compose', '_id' => $_SESSION['compose']['id']));
}
// add some labels to client
-rcube_add_label('nosubject', 'norecipientwarning', 'nosubjectwarning', 'nobodywarning', 'notsentwarning', 'savingmessage', 'sendingmessage', 'messagesaved', 'converting');
-
-// add config parameter to client script
-$OUTPUT->set_env('draft_autosave', !empty($CONFIG['drafts_mbox']) ? $CONFIG['draft_autosave'] : 0);
-
+$OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubjectwarning',
+ 'nobodywarning', 'notsentwarning', 'savingmessage', 'sendingmessage', 'messagesaved',
+ 'converting', 'editorwarning', 'searching');
+
+// add config parameters to client script
+if (!empty($CONFIG['drafts_mbox'])) {
+ $OUTPUT->set_env('drafts_mailbox', $CONFIG['drafts_mbox']);
+ $OUTPUT->set_env('draft_autosave', $CONFIG['draft_autosave']);
+}
+// set current mailbox in client environment
+$OUTPUT->set_env('mailbox', $IMAP->get_mailbox_name());
// get reference message and set compose mode
-if ($msg_uid = get_input_value('_reply_uid', RCUBE_INPUT_GET))
+if ($msg_uid = $_SESSION['compose']['param']['_reply_uid'])
$compose_mode = RCUBE_COMPOSE_REPLY;
-else if ($msg_uid = get_input_value('_forward_uid', RCUBE_INPUT_GET))
+else if ($msg_uid = $_SESSION['compose']['param']['_forward_uid'])
$compose_mode = RCUBE_COMPOSE_FORWARD;
-else if ($msg_uid = get_input_value('_draft_uid', RCUBE_INPUT_GET))
+else if ($msg_uid = $_SESSION['compose']['param']['_draft_uid'])
$compose_mode = RCUBE_COMPOSE_DRAFT;
if (!empty($msg_uid))
$_SESSION['compose']['reply_msgid'] = $MESSAGE->headers->messageID;
$_SESSION['compose']['references'] = trim($MESSAGE->headers->references . " " . $MESSAGE->headers->messageID);
- if (!empty($_GET['_all']))
+ if (!empty($_SESSION['compose']['param']['_all']))
$MESSAGE->reply_all = 1;
}
- else if ($compose_mode == RCUBE_COMPOSE_FORWARD)
+ else if ($compose_mode == RCUBE_COMPOSE_DRAFT)
{
- $_SESSION['compose']['forward_uid'] = $msg_uid;
+ if($MESSAGE->headers->in_reply_to)
+ {
+ // TODO: how to get reply_uid/forward_uid value, maybe we must set X-Reply-UID/X-Forward-UID
+ // $_SESSION['compose']['reply_uid'] = ?
+ // $_SESSION['compose']['forward_uid'] = ?
+ $_SESSION['compose']['reply_msgid'] = '<'.$MESSAGE->headers->in_reply_to.'>';
+ }
+ $_SESSION['compose']['references'] = $MESSAGE->headers->references;
}
- else if ($compose_mode == RCUBE_COMPOSE_DRAFT)
+ else if ($compose_mode == RCUBE_COMPOSE_FORWARD)
{
- $_SESSION['compose']['draft_uid'] = $msg_uid;
+ $_SESSION['compose']['forward_uid'] = $msg_uid;
}
}
$header = 'to';
// we have a set of recipients stored is session
- if (($mailto_id = get_input_value('_mailto', RCUBE_INPUT_GET)) && $_SESSION['mailto'][$mailto_id])
- $fvalue = $_SESSION['mailto'][$mailto_id];
- else if (!empty($_GET['_to']))
- $fvalue = get_input_value('_to', RCUBE_INPUT_GET);
-
+ if (($mailto_id = $_SESSION['compose']['param']['_mailto']) && $_SESSION['mailto'][$mailto_id])
+ $fvalue = urldecode($_SESSION['mailto'][$mailto_id]);
+
case 'cc':
if (!$fname)
{
$fname = '_replyto';
$allow_attrib = array('id', 'class', 'style', 'size', 'tabindex');
$field_type = 'html_inputfield';
- break;
+ break;
}
if ($fname && !empty($_POST[$fname]))
$fvalue = get_input_value($fname, RCUBE_INPUT_POST, TRUE);
+ else if ($fname && !$fvalue && !empty($_SESSION['compose']['param'][$fname]))
+ $fvalue = $_SESSION['compose']['param'][$fname];
else if ($header && $compose_mode == RCUBE_COMPOSE_REPLY)
{
{
$to_addresses = $IMAP->decode_address_list($fvalue);
$fvalue = '';
+
foreach ($to_addresses as $addr_part)
{
- if (!empty($addr_part['mailto']) && !in_array($addr_part['mailto'], $sa_recipients) && (!$MESSAGE->compose_from || !in_array($addr_part['mailto'], $MESSAGE->compose_from)))
+ if (!empty($addr_part['mailto'])
+ && !in_array($addr_part['mailto'], $sa_recipients)
+ && (!$MESSAGE->compose_from
+ || !in_array_nocase($addr_part['mailto'], $MESSAGE->compose_from)
+ || (count($to_addresses)==1 && $header=='to'))) // allow reply to yourself
{
$fvalue .= (strlen($fvalue) ? ', ':'').$addr_part['string'];
$sa_recipients[] = $addr_part['mailto'];
if ($fname && $field_type)
{
// pass the following attributes to the form class
- $field_attrib = array('name' => $fname);
+ $field_attrib = array('name' => $fname, 'spellcheck' => 'false');
foreach ($attrib as $attr => $value)
if (in_array($attr, $allow_attrib))
$field_attrib[$attr] = $value;
foreach ($a_to as $addr)
{
if (!empty($addr['mailto']))
- $a_recipients[] = $addr['mailto'];
+ $a_recipients[] = rc_strtolower($addr['mailto']);
}
if (!empty($MESSAGE->headers->cc))
foreach ($a_cc as $addr)
{
if (!empty($addr['mailto']))
- $a_recipients[] = $addr['mailto'];
+ $a_recipients[] = rc_strtolower($addr['mailto']);
}
}
}
if ($a_signatures[$identity_id]['is_html'])
{
$h2t = new html2text($a_signatures[$identity_id]['text'], false, false);
- $plainTextPart = $h2t->get_text();
- $a_signatures[$identity_id]['plain_text'] = trim(html_entity_decode($plainTextPart, ENT_NOQUOTES, 'UTF-8'));
+ $a_signatures[$identity_id]['plain_text'] = trim($h2t->get_text());
}
}
- // set identity if it's one of the reply-message recipients
- if (in_array($sql_arr['email'], $a_recipients))
- $from_id = $sql_arr['identity_id'];
-
if ($compose_mode == RCUBE_COMPOSE_REPLY && is_array($MESSAGE->compose_from))
$MESSAGE->compose_from[] = $sql_arr['email'];
- if ($compose_mode == RCUBE_COMPOSE_DRAFT && strstr($MESSAGE->headers->from, $sql_arr['email']))
- $from_id = $sql_arr['identity_id'];
+ if (empty($_POST['_from']))
+ {
+ // set draft's identity
+ if ($compose_mode == RCUBE_COMPOSE_DRAFT && strstr($MESSAGE->headers->from, $sql_arr['email']))
+ $from_id = $sql_arr['identity_id'];
+ // set identity if it's one of the reply-message recipients (with prio for default identity)
+ else if (in_array(rc_strtolower($sql_arr['email']), $a_recipients) && (empty($from_id) || $sql_arr['standard']))
+ $from_id = $sql_arr['identity_id'];
+ }
}
// overwrite identity selection with post parameter
- if (isset($_POST['_from']))
+ if (!empty($_POST['_from']))
$from_id = get_input_value('_from', RCUBE_INPUT_POST);
$out = $select_from->show($from_id);
// load draft message body
else if ($compose_mode == RCUBE_COMPOSE_DRAFT)
$body = rcmail_create_draft_body($body, $isHtml);
- }
-
- $tinylang = substr($_SESSION['language'], 0, 2);
- if (!file_exists('program/js/tiny_mce/langs/'.$tinylang.'.js'))
- $tinylang = 'en';
- $OUTPUT->include_script('tiny_mce/tiny_mce.js');
- $OUTPUT->include_script("editor.js");
- $OUTPUT->add_script('rcmail_editor_init("$__skin_path", "'.$tinylang.'");');
+ if ($isHtml) {
+ // replace cid with href in inline images links
+ foreach ((array)$_SESSION['compose']['attachments'] as $pid => $attachment) {
+ if ($attachment['content_id']) {
+ $body = str_replace('cid:'. $attachment['content_id'],
+ $OUTPUT->app->comm_path.'&_action=display-attachment&_file=rcmfile'.$pid, $body);
+ }
+ }
+ }
+ }
+ else if (!empty($_SESSION['compose']['param']['_body']))
+ {
+ $body = $_SESSION['compose']['param']['_body'];
+ }
$out = $form_start ? "$form_start\n" : '';
$msgtype = new html_hiddenfield(array('name' => '_is_html', 'value' => ($isHtml?"1":"0")));
$out .= $msgtype->show();
- // If desired, set this text area to be editable by TinyMCE
- if ($isHtml) $attrib['class'] = "mce_editor";
+ // If desired, set this textarea to be editable by TinyMCE
+ if ($isHtml) $attrib['class'] = 'mce_editor';
$textarea = new html_textarea($attrib);
$out .= $textarea->show($body);
$out .= $form_end ? "\n$form_end" : '';
+ // include HTML editor
+ rcube_html_editor();
+
// include GoogieSpell
- if (!empty($CONFIG['enable_spellcheck']) && !$isHtml)
- {
- $lang_set = '';
- if (!empty($CONFIG['spellcheck_languages']) && is_array($CONFIG['spellcheck_languages']))
- $lang_set = "googie.setLanguages(".array2js($CONFIG['spellcheck_languages']).");\n";
+ if (!empty($CONFIG['enable_spellcheck'])) {
+
+ $lang = strtolower(substr($_SESSION['language'], 0, 2));
+
+ $spellcheck_langs = (array)$RCMAIL->config->get('spellcheck_languages', array('da'=>'Dansk', 'de'=>'Deutsch', 'en' => 'English', 'es'=>'Español', 'fr'=>'Français', 'it'=>'Italiano', 'nl'=>'Nederlands', 'pl'=>'Polski', 'pt'=>'Português', 'fi'=>'Suomi', 'sv'=>'Svenska'));
+ if (!$spellcheck_langs[$lang])
+ $lang = 'en';
+
+ $editor_lang_set = array();
+ foreach ($spellcheck_langs as $key => $name) {
+ $editor_lang_set[] = ($key == $lang ? '+' : '') . JQ($name).'='.JQ($key);
+ }
$OUTPUT->include_script('googiespell.js');
$OUTPUT->add_script(sprintf(
"googie.lang_rsm_edt = \"%s\";\n".
"googie.lang_close = \"%s\";\n".
"googie.lang_revert = \"%s\";\n".
- "googie.lang_no_error_found = \"%s\";\n%s".
+ "googie.lang_no_error_found = \"%s\";\n".
+ "googie.setLanguages(%s);\n".
"googie.setCurrentLanguage('%s');\n".
"googie.decorateTextarea('%s');\n".
"%s.set_env('spellcheck', googie);",
JQ(Q(rcube_label('close'))),
JQ(Q(rcube_label('revertto'))),
JQ(Q(rcube_label('nospellerrors'))),
- $lang_set,
- substr($_SESSION['language'], 0, 2),
+ json_serialize($spellcheck_langs),
+ $lang,
$attrib['id'],
JS_OBJECT_NAME), 'foot');
- rcube_add_label('checking');
- }
+ $OUTPUT->add_label('checking');
+ $OUTPUT->set_env('spellcheck_langs', join(',', $editor_lang_set));
+ }
$out .= "\n".'<iframe name="savetarget" src="program/blank.gif" style="width:0;height:0;border:none;visibility:hidden;"></iframe>';
function rcmail_create_reply_body($body, $bodyIsHtml)
{
- global $IMAP, $MESSAGE;
+ global $IMAP, $MESSAGE, $OUTPUT;
if (! $bodyIsHtml)
{
+ // try to remove the signature
+ if (($sp = strrpos($body, '-- ')) !== false && ($sp == 0 || $body{$sp-1} == "\n"))
+ {
+ if ($body{$sp+3}==' ' || $body{$sp+3}=="\n" || $body{$sp+3}=="\r")
+ $body = substr($body, 0, max(0, $sp-1));
+ }
+
// soft-wrap message first
- $body = wordwrap($body, 75);
-
- // split body into single lines
- $a_lines = preg_split('/\r?\n/', $body);
-
- // add > to each line
- for($n=0; $n<sizeof($a_lines); $n++)
- {
- if (strpos($a_lines[$n], '>')===0)
- $a_lines[$n] = '>'.$a_lines[$n];
- else
- $a_lines[$n] = '> '.$a_lines[$n];
- }
+ $body = rcmail_wrap_quoted($body, 75);
+
+ $body = rtrim($body, "\r\n");
+
+ if ($body) {
+ // split body into single lines
+ $a_lines = preg_split('/\r?\n/', $body);
+
+ // add > to each line
+ for($n=0; $n<sizeof($a_lines); $n++) {
+ if (strpos($a_lines[$n], '>')===0)
+ $a_lines[$n] = '>'.$a_lines[$n];
+ else
+ $a_lines[$n] = '> '.$a_lines[$n];
+ }
- $body = join("\n", $a_lines);
+ $body = join("\n", $a_lines);
+ }
- // add title line
- $prefix = sprintf("\n\n\nOn %s, %s wrote:\n",
+ // add title line(s)
+ $prefix = wordwrap(sprintf("On %s, %s wrote:\n",
$MESSAGE->headers->date,
- $MESSAGE->get_header('from'));
+ $MESSAGE->get_header('from')), 76);
- // try to remove the signature
- if ($sp = strrpos($body, '-- '))
- {
- if ($body{$sp+3}==' ' || $body{$sp+3}=="\n" || $body{$sp+3}=="\r")
- $body = substr($body, 0, $sp-1);
- }
$suffix = '';
}
else
{
- $prefix = sprintf("<br /><br />On %s, %s wrote:<br />\n",
+ $prefix = sprintf("On %s, %s wrote:<br />\n",
$MESSAGE->headers->date,
- Q($MESSAGE->get_header('from')));
+ htmlspecialchars(Q($MESSAGE->get_header('from'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset()));
$prefix .= '<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">';
- $suffix = "</blockquote>";
+ $suffix = "</blockquote><p></p>";
+
+ rcmail_write_inline_attachments($MESSAGE);
}
return $prefix.$body.$suffix;
function rcmail_create_forward_body($body, $bodyIsHtml)
{
- global $IMAP, $MESSAGE;
+ global $IMAP, $MESSAGE, $OUTPUT;
if (!$bodyIsHtml)
{
- // soft-wrap message first
- $body = wordwrap($body, 80);
-
- $prefix = sprintf("\n\n\n-------- Original Message --------\nSubject: %s\nDate: %s\nFrom: %s\nTo: %s\n\n",
- $MESSAGE->subject,
- $MESSAGE->headers->date,
- $MESSAGE->get_header('from'),
- $MESSAGE->get_header('to'));
+ $prefix = "\n\n\n-------- Original Message --------\n";
+ $prefix .= 'Subject: ' . $MESSAGE->subject . "\n";
+ $prefix .= 'Date: ' . $MESSAGE->headers->date . "\n";
+ $prefix .= 'From: ' . $MESSAGE->get_header('from') . "\n";
+ $prefix .= 'To: ' . $MESSAGE->get_header('to') . "\n";
+ if ($MESSAGE->headers->replyto && $MESSAGE->headers->replyto != $MESSAGE->headers->from)
+ $prefix .= 'Reply-To: ' . $MESSAGE->get_header('replyto') . "\n";
+ $prefix .= "\n";
}
else
{
"<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">Subject: </th><td>%s</td></tr>" .
"<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">Date: </th><td>%s</td></tr>" .
"<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">From: </th><td>%s</td></tr>" .
- "<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">To: </th><td>%s</td></tr>" .
- "</tbody></table><br>",
+ "<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">To: </th><td>%s</td></tr>",
Q($MESSAGE->subject),
Q($MESSAGE->headers->date),
- Q($MESSAGE->get_header('from')),
- Q($MESSAGE->get_header('to')));
+ htmlspecialchars(Q($MESSAGE->get_header('from'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset(), true),
+ htmlspecialchars(Q($MESSAGE->get_header('to'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset(), true));
+
+ if ($MESSAGE->headers->replyto && $MESSAGE->headers->replyto != $MESSAGE->headers->from)
+ $prefix .= sprintf("<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">Reply-To: </th><td>%s</td></tr>",
+ htmlspecialchars(Q($MESSAGE->get_header('replyto'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset(), true));
+
+ $prefix .= "</tbody></table><br>";
}
// add attachments
if (!isset($_SESSION['compose']['forward_attachments']) && is_array($MESSAGE->mime_parts))
- rcmail_write_compose_attachments($MESSAGE);
+ rcmail_write_compose_attachments($MESSAGE, $bodyIsHtml);
return $prefix.$body;
}
if (!isset($_SESSION['compose']['forward_attachments'])
&& is_array($MESSAGE->mime_parts)
&& count($MESSAGE->mime_parts) > 0)
- rcmail_write_compose_attachments($MESSAGE);
+ rcmail_write_compose_attachments($MESSAGE, $bodyIsHtml);
return $body;
}
-function rcmail_write_compose_attachments(&$message)
+function rcmail_write_compose_attachments(&$message, $bodyIsHtml)
{
- global $RCMAIL, $IMAP;
-
- $temp_dir = unslashify($RCMAIL->config->get('temp_dir'));
-
- if (!is_array($_SESSION['compose']['attachments']))
- $_SESSION['compose']['attachments'] = array();
-
foreach ((array)$message->mime_parts as $pid => $part)
{
- if ($part->ctype_primary != 'message' &&
- ($part->disposition=='attachment' || $part->disposition=='inline' || $part->headers['content-id'] ||
- (empty($part->disposition) && $part->filename)))
+ if (($part->ctype_primary != 'message' || !$bodyIsHtml) &&
+ ($part->disposition=='attachment' || $part->disposition=='inline' || $part->headers['content-id']
+ || (empty($part->disposition) && $part->filename)))
{
- $tmp_path = tempnam($temp_dir, 'rcmAttmnt');
- if ($fp = fopen($tmp_path, 'w'))
- {
- fwrite($fp, $message->get_part_content($pid));
- fclose($fp);
-
- $_SESSION['compose']['attachments'][] = array(
- 'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary,
- 'name' => $part->filename,
- 'path' => $tmp_path
- );
- }
+ if ($attachment = rcmail_save_attachment($message, $pid))
+ $_SESSION['compose']['attachments'][] = $attachment;
}
}
}
+function rcmail_write_inline_attachments(&$message)
+{
+ foreach ((array)$message->mime_parts as $pid => $part)
+ {
+ if ($part->content_id && $part->filename)
+ {
+ if ($attachment = rcmail_save_attachment($message, $pid))
+ $_SESSION['compose']['attachments'][] = $attachment;
+ }
+ }
+}
+
+function rcmail_save_attachment(&$message, $pid)
+{
+ global $RCMAIL;
+
+ $temp_dir = unslashify($RCMAIL->config->get('temp_dir'));
+ $tmp_path = tempnam($temp_dir, 'rcmAttmnt');
+ $part = $message->mime_parts[$pid];
+
+ if ($fp = fopen($tmp_path, 'w'))
+ {
+ $message->get_part_content($pid, $fp);
+ fclose($fp);
+
+ return array(
+ 'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary,
+ 'name' => $part->filename,
+ 'path' => $tmp_path,
+ 'content_id' => $part->content_id
+ );
+ }
+}
+
+
function rcmail_compose_subject($attrib)
{
global $MESSAGE, $compose_mode;
unset($attrib['form']);
$attrib['name'] = '_subject';
+ $attrib['spellcheck'] = 'true';
$textfield = new html_inputfield($attrib);
$subject = '';
// use subject from post
- if (isset($_POST['_subject']))
+ if (isset($_POST['_subject'])) {
$subject = get_input_value('_subject', RCUBE_INPUT_POST, TRUE);
-
+ }
// create a reply-subject
- else if ($compose_mode == RCUBE_COMPOSE_REPLY)
- {
+ else if ($compose_mode == RCUBE_COMPOSE_REPLY) {
if (eregi('^re:', $MESSAGE->subject))
$subject = $MESSAGE->subject;
else
$subject = 'Re: '.$MESSAGE->subject;
}
-
// create a forward-subject
- else if ($compose_mode == RCUBE_COMPOSE_FORWARD)
- {
+ else if ($compose_mode == RCUBE_COMPOSE_FORWARD) {
if (eregi('^fwd:', $MESSAGE->subject))
$subject = $MESSAGE->subject;
else
$subject = 'Fwd: '.$MESSAGE->subject;
}
-
// creeate a draft-subject
- else if ($compose_mode == RCUBE_COMPOSE_DRAFT)
+ else if ($compose_mode == RCUBE_COMPOSE_DRAFT) {
$subject = $MESSAGE->subject;
+ }
+ else if (!empty($_SESSION['compose']['param']['_subject'])) {
+ $subject = $_SESSION['compose']['param']['_subject'];
+ }
$out = $form_start ? "$form_start\n" : '';
$out .= $textfield->show($subject);
$button = html::img(array(
'src' => $CONFIG['skin_path'] . $attrib['deleteicon'],
'alt' => rcube_label('delete'),
- 'style' => "border:0;padding-right:2px;vertical-align:middle"));
+ 'style' => "padding-right:2px;vertical-align:middle"));
else
$button = Q(rcube_label('delete'));
foreach ($_SESSION['compose']['attachments'] as $id => $a_prop)
+ {
+ if (empty($a_prop))
+ continue;
+
$out .= html::tag('li', array('id' => "rcmfile".$id),
html::a(array(
'href' => "#delete",
'title' => rcube_label('delete'),
- 'onclick' => sprintf("return %s.command(\'remove-attachment\',\'rcmfile%d\', this)", JS_OBJECT_NAME, $id)),
+ 'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%d', this)", JS_OBJECT_NAME, $id)),
$button) . Q($a_prop['name']));
+ }
}
$OUTPUT->add_gui_object('attachmentlist', $attrib['id']);
$button = new html_inputfield(array('type' => 'button', 'class' => 'button'));
$out = html::div($attrib,
- $OUTPUT->form_tag(array('name' => 'form', 'method' => 'post', 'enctype' => 'multipart/form-data')) .
- rcmail_compose_attachment_field(array()) . html::br() .
- $button->show(rcube_label('close'), array('onclick' => "document.getElementById('$attrib[id]').style.visibility='hidden'")) .
- $button->show(rcube_label('upload'), array('onclick' => JS_OBJECT_NAME . ".command('send-attachment', this.form)"))
+ $OUTPUT->form_tag(array('name' => 'form', 'method' => 'post', 'enctype' => 'multipart/form-data'),
+ html::div(null, rcmail_compose_attachment_field(array())) .
+ html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => show_bytes(parse_bytes(ini_get('upload_max_filesize'))))))) .
+ html::div('buttons',
+ $button->show(rcube_label('close'), array('onclick' => "document.getElementById('$attrib[id]').style.visibility='hidden'")) . ' ' .
+ $button->show(rcube_label('upload'), array('onclick' => JS_OBJECT_NAME . ".command('send-attachment', this.form)"))
+ )
+ )
);
-
$OUTPUT->add_gui_object('uploadbox', $attrib['id']);
return $out;
}
function rcmail_compose_attachment_field($attrib)
{
- // allow the following attributes to be added to the <input> tag
- $attrib_str = create_attrib_string($attrib, array('id', 'class', 'style', 'size'));
-
- $out = '<input type="file" name="_attachments[]"'. $attrib_str . " />";
- return $out;
+ $attrib['type'] = 'file';
+ $attrib['name'] = '_attachments[]';
+ $field = new html_inputfield($attrib);
+ return $field->show();
}
if ($compose_mode)
$useHtml = ($useHtml && $MESSAGE->has_html_part());
+ $editorid = empty($attrib['editorid']) ? 'rcmComposeMessage' : $attrib['editorid'];
+
$selector = '';
$chosenvalue = $useHtml ? 'html' : 'plain';
- $radio = new html_radiobutton(array('name' => '_editorSelect', 'onclick' => 'return rcmail_toggle_editor(this)'));
+ $radio = new html_radiobutton(array('name' => '_editorSelect',
+ 'onclick' => "return rcmail_toggle_editor(this.value=='html', '$editorid', '_is_html')"));
+
foreach ($choices as $value => $text)
{
$attrib['id'] = '_' . $value;
}
+function rcmail_store_target_selection($attrib)
+{
+ $attrib['name'] = '_store_target';
+ $select = rcmail_mailbox_select(array_merge($attrib, array('noselection' => '- '.rcube_label('dontsave').' -')));
+ return $select->show(rcmail::get_instance()->config->get('sent_mbox'), $attrib);
+}
+
+
function get_form_tags($attrib)
{
global $RCMAIL, $MESSAGE_FORM;
'priorityselector' => 'rcmail_priority_selector',
'editorselector' => 'rcmail_editor_selector',
'receiptcheckbox' => 'rcmail_receipt_checkbox',
+ 'storetarget' => 'rcmail_store_target_selection',
));
-/****** get contacts for this user and add them to client scripts ********/
-
-$CONTACTS = new rcube_contacts($DB, $USER->ID);
-$CONTACTS->set_pagesize(1000);
-
-$a_contacts = array();
-
-if ($result = $CONTACTS->list_records())
- {
- while ($sql_arr = $result->iterate())
- if ($sql_arr['email'])
- $a_contacts[] = format_email_recipient($sql_arr['email'], $sql_arr['name']);
- }
-if (isset($CONFIG['ldap_public']))
- {
- /* LDAP autocompletion */
- foreach ($CONFIG['ldap_public'] as $ldapserv_config)
- {
- if ($ldapserv_config['fuzzy_search'] != 1 ||
- $ldapserv_config['global_search'] != 1)
- {
- continue;
- }
-
- $LDAP = new rcube_ldap($ldapserv_config);
- $LDAP->connect();
- $LDAP->set_pagesize(1000);
-
- $results = $LDAP->search($ldapserv_config['mail_field'], "");
-
- for ($i = 0; $i < $results->count; $i++)
- {
- if ($results->records[$i]['email'] != '')
- {
- $email = $results->records[$i]['email'];
- $name = $results->records[$i]['name'];
-
- $a_contacts[] = format_email_recipient($email, $name);
- }
- }
- $LDAP->close();
- }
- }
-if ($a_contacts)
- {
- $OUTPUT->set_env('contacts', $a_contacts);
- }
-
$OUTPUT->send('compose');
?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: folders.inc 1344 2008-04-30 08:21:42Z thomasb $
+ $Id: folders.inc 1570 2008-06-24 13:04:57Z alec $
*/
$mbox_name = $IMAP->get_mailbox_name();
// clear mailbox
else if ($RCMAIL->action=='purge' && ($mbox = get_input_value('_mbox', RCUBE_INPUT_POST)))
{
- // we should only be purging trash and junk
- if($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox'])
+ $delimiter = $IMAP->get_hierarchy_delimiter();
+ $trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/';
+ $junk_regexp = '/^' . preg_quote($CONFIG['junk_mbox'] . $delimiter, '/') . '/';
+
+ // we should only be purging trash and junk (or their subfolders)
+ if ($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox']
+ || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox))
{
$success = $IMAP->clear_mailbox($mbox);
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: func.inc 1494 2008-06-09 12:22:54Z alec $
+ $Id: func.inc 2197 2008-12-30 13:30:20Z thomasb $
*/
require_once('lib/enriched.inc');
require_once('include/rcube_smtp.inc');
-
$EMAIL_ADDRESS_PATTERN = '/([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9]\\.[a-z]{2,5})/i';
-if (empty($_SESSION['mbox']))
- $_SESSION['mbox'] = $IMAP->get_mailbox_name();
+// actions that do not require imap connection
+$NOIMAP_ACTIONS = array('spell', 'addcontact', 'autocomplete', 'upload', 'display-attachment', 'remove-attachment');
+
+
+// log in to imap server
+if (!in_array($RCMAIL->action, $NOIMAP_ACTIONS) && !$RCMAIL->imap_connect()) {
+ $RCMAIL->kill_session();
+
+ if ($OUTPUT->ajax_call)
+ $OUTPUT->redirect(array(), 2000);
+
+ $OUTPUT->set_env('task', 'login');
+ $OUTPUT->send('login');
+}
+
// set imap properties and session vars
if ($mbox = get_input_value('_mbox', RCUBE_INPUT_GPC))
$IMAP->set_mailbox(($_SESSION['mbox'] = $mbox));
+else
+ $_SESSION['mbox'] = $IMAP->get_mailbox_name();
if (!empty($_GET['_page']))
$IMAP->set_page(($_SESSION['page'] = intval($_GET['_page'])));
-// set mailbox to INBOX if not set
-if (empty($_SESSION['mbox']))
- $_SESSION['mbox'] = $IMAP->get_mailbox_name();
-
// set default sort col/order to session
if (!isset($_SESSION['sort_col']))
$_SESSION['sort_col'] = $CONFIG['message_sort_col'];
$OUTPUT->set_env('search_text', $_SESSION['last_text_search']);
}
-
-// set current mailbox in client environment
-$OUTPUT->set_env('mailbox', $IMAP->get_mailbox_name());
-$OUTPUT->set_env('quota', $IMAP->get_capability('quota'));
-
-if ($CONFIG['trash_mbox'])
- $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']);
-if ($CONFIG['drafts_mbox'])
- $OUTPUT->set_env('drafts_mailbox', $CONFIG['drafts_mbox']);
-if ($CONFIG['junk_mbox'])
- $OUTPUT->set_env('junk_mailbox', $CONFIG['junk_mbox']);
-
-if (!$OUTPUT->ajax_call)
- rcube_add_label('checkingmail', 'deletemessage', 'movemessagetotrash', 'movingmessage');
-
-// set page title
+// set main env variables, labels and page title
if (empty($RCMAIL->action) || $RCMAIL->action == 'list')
- $OUTPUT->set_pagetitle(rcmail_localize_foldername($IMAP->get_mailbox_name()));
+ {
+ $mbox_name = $IMAP->get_mailbox_name();
+ if (empty($RCMAIL->action))
+ {
+ // initialize searching result if search_filter is used
+ if ($_SESSION['search_filter'] && $_SESSION['search_filter'] != 'ALL')
+ {
+ $search_request = md5($mbox_name.$_SESSION['search_filter']);
+
+ $IMAP->search($mbox_name, $_SESSION['search_filter'], RCMAIL_CHARSET, $_SESSION['sort_col']);
+ $_SESSION['search'][$search_request] = $IMAP->get_search_set();
+ $OUTPUT->set_env('search_request', $search_request);
+ }
+
+ // make sure the message count is refreshed (for default view)
+ $IMAP->messagecount($mbox_name, 'ALL', true);
+ }
+
+ // set current mailbox in client environment
+ $OUTPUT->set_env('mailbox', $mbox_name);
+ $OUTPUT->set_env('quota', $IMAP->get_capability('quota'));
+ $OUTPUT->set_env('delimiter', $IMAP->get_hierarchy_delimiter());
+
+ if ($CONFIG['trash_mbox'])
+ $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']);
+ if ($CONFIG['drafts_mbox'])
+ $OUTPUT->set_env('drafts_mailbox', $CONFIG['drafts_mbox']);
+ if ($CONFIG['junk_mbox'])
+ $OUTPUT->set_env('junk_mailbox', $CONFIG['junk_mbox']);
+
+ if (!$OUTPUT->ajax_call)
+ $OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash', 'movingmessage');
+
+ $OUTPUT->set_pagetitle(rcmail_localize_foldername($mbox_name));
+ }
/**
global $IMAP, $CONFIG, $COMM_PATH, $OUTPUT;
$skin_path = $CONFIG['skin_path'];
- $image_tag = '<img src="%s%s" alt="%s" border="0" />';
+ $image_tag = '<img src="%s%s" alt="%s" />';
// check to see if we have some settings for sorting
$sort_col = $_SESSION['sort_col'];
$sort_order = $_SESSION['sort_order'];
// add some labels to client
- rcube_add_label('from', 'to');
+ $OUTPUT->add_label('from', 'to');
// get message headers
$a_headers = $IMAP->list_headers('', '', $sort_col, $sort_order);
$out = '<table' . $attrib_str . ">\n";
+ // define list of cols to be displayed based on parameter or config
+ if (empty($attrib['columns']))
+ $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject');
+ else
+ $a_show_cols = preg_split('/[\s,;]+/', strip_quotes($attrib['columns']));
- // define list of cols to be displayed
- $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject');
+ // store column list in a session-variable
+ $_SESSION['list_columns'] = $a_show_cols;
+
+ // define sortable columns
$a_sort_cols = array('subject', 'date', 'from', 'to', 'size');
$mbox = $IMAP->get_mailbox_name();
$out .= '<col class="icon" />';
foreach ($a_show_cols as $col)
- $out .= sprintf('<col class="%s" />', $col);
+ $out .= ($col!='attachment') ? sprintf('<col class="%s" />', $col) : '<col class="icon" />';
- $out .= '<col class="icon" />';
$out .= "</colgroup>\n";
// add table title
foreach ($a_show_cols as $col)
{
// get column name
- $col_name = Q(rcube_label($col));
+ switch ($col)
+ {
+ case 'flag':
+ $col_name = sprintf($image_tag, $skin_path, $attrib['unflaggedicon'], '');
+ break;
+ case 'attachment':
+ $col_name = sprintf($image_tag, $skin_path, $attrib['attachmenticon'], '');
+ break;
+ default:
+ $col_name = Q(rcube_label($col));
+ }
// make sort links
$sort = '';
$sort_class = $col==$sort_col ? " sorted$sort_order" : '';
// put it all together
- $out .= '<td class="'.$col.$sort_class.'" id="rcmHead'.$col.'">' . "$col_name$sort</td>\n";
+ if ($col!='attachment')
+ $out .= '<td class="'.$col.$sort_class.'" id="rcm'.$col.'">' . "$col_name$sort</td>\n";
+ else
+ $out .= '<td class="icon" id="rcm'.$col.'">' . "$col_name$sort</td>\n";
}
- $out .= '<td class="icon">'.($attrib['attachmenticon'] ? sprintf($image_tag, $skin_path, $attrib['attachmenticon'], '') : '')."</td>\n";
$out .= "</tr></thead>\n<tbody>\n";
// no messages in this mailbox
// create row for each message
foreach ($a_headers as $i => $header) //while (list($i, $header) = each($a_headers))
{
- $message_icon = $attach_icon = '';
+ $message_icon = $attach_icon = $flagged_icon = '';
$js_row_arr = array();
- $zebra_class = $i%2 ? 'even' : 'odd';
+ $zebra_class = $i%2 ? ' even' : ' odd';
// set messag attributes to javascript array
if ($header->deleted)
$js_row_arr['unread'] = true;
if ($header->answered)
$js_row_arr['replied'] = true;
+ if ($header->forwarded)
+ $js_row_arr['forwarded'] = true;
+ if ($header->flagged)
+ $js_row_arr['flagged'] = true;
+
// set message icon
if ($attrib['deletedicon'] && $header->deleted)
$message_icon = $attrib['deletedicon'];
+ else if ($attrib['repliedicon'] && $header->answered)
+ {
+ if ($attrib['forwardedrepliedicon'] && $header->forwarded)
+ $message_icon = $attrib['forwardedrepliedicon'];
+ else
+ $message_icon = $attrib['repliedicon'];
+ }
+ else if ($attrib['forwardedicon'] && $header->forwarded)
+ $message_icon = $attrib['forwardedicon'];
else if ($attrib['unreadicon'] && !$header->seen)
$message_icon = $attrib['unreadicon'];
- else if ($attrib['repliedicon'] && $header->answered)
- $message_icon = $attrib['repliedicon'];
else if ($attrib['messageicon'])
$message_icon = $attrib['messageicon'];
+
+ if ($attrib['flaggedicon'] && $header->flagged)
+ $flagged_icon = $attrib['flaggedicon'];
+ else if ($attrib['unflaggedicon'] && !$header->flagged)
+ $flagged_icon = $attrib['unflaggedicon'];
// set attachment icon
- if ($attrib['attachmenticon'] && preg_match("/multipart\/[mr]/i", $header->ctype))
+ if ($attrib['attachmenticon'] && preg_match("/multipart\/m/i", $header->ctype))
$attach_icon = $attrib['attachmenticon'];
- $out .= sprintf('<tr id="rcmrow%d" class="message%s%s %s">'."\n",
+ $out .= sprintf('<tr id="rcmrow%d" class="message%s%s%s%s">'."\n",
$header->uid,
$header->seen ? '' : ' unread',
$header->deleted ? ' deleted' : '',
- $zebra_class);
+ $header->flagged ? ' flagged' : '',
+ $zebra_class);
$out .= sprintf("<td class=\"icon\">%s</td>\n", $message_icon ? sprintf($image_tag, $skin_path, $message_icon, '') : '');
+
if (!empty($header->charset))
$IMAP->set_charset($header->charset);
foreach ($a_show_cols as $col)
{
if ($col=='from' || $col=='to')
- $cont = Q(rcmail_address_string($header->$col, 3, $attrib['addicon']), 'show');
+ $cont = Q(rcmail_address_string($header->$col, 3, false, $attrib['addicon']), 'show');
else if ($col=='subject')
{
$action = $mbox==$CONFIG['drafts_mbox'] ? 'compose' : 'show';
$uid_param = $mbox==$CONFIG['drafts_mbox'] ? '_draft_uid' : '_uid';
- $cont = Q($IMAP->decode_header($header->$col));
- if (empty($cont)) $cont = Q(rcube_label('nosubject'));
- $cont = sprintf('<a href="%s" onclick="return rcube_event.cancel(event)">%s</a>', Q(rcmail_url($action, array($uid_param=>$header->uid, '_mbox'=>$mbox))), $cont);
+ $cont = abbreviate_string(trim($IMAP->decode_header($header->$col)), 160);
+ if (empty($cont)) $cont = rcube_label('nosubject');
+ $cont = sprintf('<a href="%s" onclick="return rcube_event.cancel(event)">%s</a>', Q(rcmail_url($action, array($uid_param=>$header->uid, '_mbox'=>$mbox))), Q($cont));
}
+ else if ($col=='flag')
+ $cont = $flagged_icon ? sprintf($image_tag, $skin_path, $flagged_icon, '') : '';
else if ($col=='size')
$cont = show_bytes($header->$col);
else if ($col=='date')
else
$cont = Q($header->$col);
- $out .= '<td class="'.$col.'">' . $cont . "</td>\n";
+ if ($col!='attachment')
+ $out .= '<td class="'.$col.'">' . $cont . "</td>\n";
+ else
+ $out .= sprintf("<td class=\"icon\">%s</td>\n", $attach_icon ? sprintf($image_tag, $skin_path, $attach_icon, '') : ' ');
}
- $out .= sprintf("<td class=\"icon\">%s</td>\n", $attach_icon ? sprintf($image_tag, $skin_path, $attach_icon, '') : '');
$out .= "</tr>\n";
if (sizeof($js_row_arr))
// complete message table
$out .= "</tbody></table>\n";
-
$message_count = $IMAP->messagecount();
// set client env
$OUTPUT->set_env('unreadicon', $skin_path . $attrib['unreadicon']);
if ($attrib['repliedicon'])
$OUTPUT->set_env('repliedicon', $skin_path . $attrib['repliedicon']);
+ if ($attrib['forwardedicon'])
+ $OUTPUT->set_env('forwardedicon', $skin_path . $attrib['forwardedicon']);
+ if ($attrib['forwardedrepliedicon'])
+ $OUTPUT->set_env('forwardedrepliedicon', $skin_path . $attrib['forwardedrepliedicon']);
if ($attrib['attachmenticon'])
$OUTPUT->set_env('attachmenticon', $skin_path . $attrib['attachmenticon']);
+ if ($attrib['flaggedicon'])
+ $OUTPUT->set_env('flaggedicon', $skin_path . $attrib['flaggedicon']);
+ if ($attrib['unflaggedicon'])
+ $OUTPUT->set_env('unflaggedicon', $skin_path . $attrib['unflaggedicon']);
$OUTPUT->set_env('messages', $a_js_message_arr);
$OUTPUT->set_env('coltypes', $a_show_cols);
{
global $CONFIG, $IMAP, $OUTPUT;
- $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject');
+ if (empty($_SESSION['list_columns']))
+ $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject');
+ else
+ $a_show_cols = $_SESSION['list_columns'];
+
$mbox = $IMAP->get_mailbox_name();
// show 'to' instead of from in sent messages
if (!empty($header->charset))
$IMAP->set_charset($header->charset);
+ // remove 'attachment' and 'flag' columns, we don't need them here
+ if(($key = array_search('attachment', $a_show_cols)) !== FALSE)
+ unset($a_show_cols[$key]);
+ if(($key = array_search('flag', $a_show_cols)) !== FALSE)
+ unset($a_show_cols[$key]);
+
// format each col; similar as in rcmail_message_list()
foreach ($a_show_cols as $col)
{
{
$action = $mbox==$CONFIG['drafts_mbox'] ? 'compose' : 'show';
$uid_param = $mbox==$CONFIG['drafts_mbox'] ? '_draft_uid' : '_uid';
- $cont = Q($IMAP->decode_header($header->$col));
- if (!$cont) $cont = Q(rcube_label('nosubject'));
- $cont = sprintf('<a href="%s" onclick="return rcube_event.cancel(event)">%s</a>', Q(rcmail_url($action, array($uid_param=>$header->uid, '_mbox'=>$mbox))), $cont);
+ $cont = abbreviate_string(trim($IMAP->decode_header($header->$col)), 160);
+ if (!$cont) $cont = rcube_label('nosubject');
+ $cont = sprintf('<a href="%s" onclick="return rcube_event.cancel(event)">%s</a>', Q(rcmail_url($action, array($uid_param=>$header->uid, '_mbox'=>$mbox))), Q($cont));
}
else if ($col=='size')
$cont = show_bytes($header->$col);
$a_msg_flags['deleted'] = $header->deleted ? 1 : 0;
$a_msg_flags['unread'] = $header->seen ? 0 : 1;
$a_msg_flags['replied'] = $header->answered ? 1 : 0;
+ $a_msg_flags['forwarded'] = $header->forwarded ? 1 : 0;
+ $a_msg_flags['flagged'] = $header->flagged ? 1 : 0;
+
$OUTPUT->command('add_message_row',
$header->uid,
$a_msg_cols,
if (empty($attrib['id']))
$attrib['id'] = 'rcmailcontentwindow';
- // allow the following attributes to be added to the <iframe> tag
- $attrib_str = create_attrib_string($attrib, array('id', 'class', 'style', 'src', 'width', 'height', 'frameborder'));
- $framename = $attrib['id'];
+ $attrib['name'] = $attrib['id'];
- $out = sprintf('<iframe name="%s"%s></iframe>'."\n",
- $framename,
- $attrib_str);
-
- $OUTPUT->set_env('contentframe', $framename);
+ $OUTPUT->set_env('contentframe', $attrib['id']);
$OUTPUT->set_env('blankpage', $attrib['src'] ? $OUTPUT->abs_url($attrib['src']) : 'program/blank.gif');
- return $out;
+ return html::iframe($attrib);
}
$OUTPUT->add_gui_object('countdisplay', $attrib['id']);
- // allow the following attributes to be added to the <span> tag
- $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id'));
-
-
- $out = '<span' . $attrib_str . '>';
- $out .= rcmail_get_messagecount_text();
- $out .= '</span>';
- return $out;
+ return html::span($attrib, rcmail_get_messagecount_text());
}
$OUTPUT->add_gui_object('quotadisplay', $attrib['id']);
- // allow the following attributes to be added to the <span> tag
- $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id', 'display'));
-
- $out = '<span' . $attrib_str . '>';
- $out .= rcmail_quota_content();
- $out .= '</span>';
- return $out;
+ return html::span($attrib, rcmail_quota_content(NULL, $attrib));
}
/**
*
*/
-function rcmail_quota_content($quota=NULL)
+function rcmail_quota_content($quota=NULL, $attrib=NULL)
{
- global $IMAP, $COMM_PATH;
+ global $IMAP, $COMM_PATH, $RCMAIL;
$display = isset($_SESSION['quota_display']) ? $_SESSION['quota_display'] : '';
else
$quota = $IMAP->get_quota();
- if ($quota)
+ if ($quota && !($quota['total']==0 && $RCMAIL->config->get('quota_zero_as_unlimited')))
{
$quota_text = sprintf('%s / %s (%.0f%%)',
show_bytes($quota['used'] * 1024),
// show quota as image (by Brett Patterson)
if ($display == 'image' && function_exists('imagegif'))
{
- $attrib = array('width' => 100, 'height' => 14);
+ if (!$attrib['width'])
+ $attrib['width'] = isset($_SESSION['quota_width']) ? $_SESSION['quota_width'] : 100;
+ else
+ $_SESSION['quota_width'] = $attrib['width'];
+
+ if (!$attrib['height'])
+ $attrib['height'] = isset($_SESSION['quota_height']) ? $_SESSION['quota_height'] : 14;
+ else
+ $_SESSION['quota_height'] = $attrib['height'];
+
$quota_text = sprintf('<img src="./bin/quotaimg.php?u=%s&q=%d&w=%d&h=%d" width="%d" height="%d" alt="%s" title="%s / %s" />',
$quota['used'], $quota['total'],
$attrib['width'], $attrib['height'],
$attrib['width'], $attrib['height'],
$quota_text,
- show_bytes($quota["used"] * 1024),
- show_bytes($quota["total"] * 1024));
+ show_bytes($quota['used'] * 1024),
+ show_bytes($quota['total'] * 1024));
}
}
else
return Q($out);
}
+/**
+ *
+ */
+function rcmail_mailbox_name_display($attrib)
+{
+ global $RCMAIL;
+
+ if (!$attrib['id'])
+ $attrib['id'] = 'rcmmailboxname';
+
+ $RCMAIL->output->add_gui_object('mailboxname', $attrib['id']);
+
+ return html::span($attrib, rcmail_get_mailbox_name_text());
+}
+
+function rcmail_get_mailbox_name_text()
+{
+ global $RCMAIL;
+ return rcmail_localize_foldername($RCMAIL->imap->get_mailbox_name());
+}
+
/**
* Convert the given message part to proper HTML
* @param bool True if part should be converted to plaintext
* @return string Formatted HTML string
*/
-function rcmail_print_body($part, $safe=false, $plain=false)
+function rcmail_print_body($part, $p = array())
{
global $REMOTE_OBJECTS;
+ $p += array('safe' => false, 'plain' => false, 'inline_html' => true);
+
// convert html to text/plain
- if ($part->ctype_secondary == 'html' && $plain) {
+ if ($part->ctype_secondary == 'html' && $p['plain']) {
$txt = new html2text($part->body, false, true);
$body = $txt->get_text();
$part->ctype_secondary = 'plain';
}
// text/html
else if ($part->ctype_secondary == 'html') {
+ $html = $part->body;
+
+ // special replacements (not properly handled by washtml class)
+ $html_search = array(
+ '/(<\/nobr>)(\s+)(<nobr>)/i', // space(s) between <NOBR>
+ '/(<[\/]*st1:[^>]+>)/i', // Microsoft's Smart Tags <ST1>
+ '/<\/?rte_text>/i', // Rich Text Editor tags (#1485647)
+ '/<title>.*<\/title>/i', // PHP bug #32547 workaround: remove title tag
+ '/<html[^>]*>/im', // malformed html: remove html tags (#1485139)
+ '/<\/html>/i', // malformed html: remove html tags (#1485139)
+ '/^[\xFE\xFF\xBB\xBF\x00]+((?:<\!doctype|\<html))/im', // remove byte-order mark (only outlook?)
+ );
+ $html_replace = array(
+ '\\1'.' '.'\\3',
+ '',
+ '',
+ '',
+ '',
+ '',
+ '\\1',
+ );
+ $html = preg_replace($html_search, $html_replace, $html);
+
// charset was converted to UTF-8 in rcube_imap::get_message_part() -> change charset specification in HTML accordingly
- $html = $part->body;
- if(preg_match('/(\s+content=[\'"]\w+\/\w+;\s+charset)=([a-z0-9-]+)/i', $html))
- $html = preg_replace('/(\s+content=[\'"]\w+\/\w+;\s+charset)=([a-z0-9-]+)/i', '\\1='.RCMAIL_CHARSET, $html);
- else
- $html = substr_replace($html, '<meta http-equiv="Content-Type" content="text/html; charset='.RCMAIL_CHARSET.'" />', intval(stripos($html, '</head>')), 0);
-
+ $charset_pattern = '/(\s+content=[\'"]?\w+\/\w+;\s*charset)=([a-z0-9-_]+)/i';
+ if (preg_match($charset_pattern, $html)) {
+ $html = preg_replace($charset_pattern, '\\1='.RCMAIL_CHARSET, $html);
+ }
+ else {
+ // add head for malformed messages, washtml cannot work without that
+ if (!preg_match('/<head[^>]*>(.*)<\/head>/Uims', $html))
+ $html = '<head></head>'. $html;
+ $html = substr_replace($html, '<meta http-equiv="content-type" content="text/html; charset='.RCMAIL_CHARSET.'" />', intval(stripos($html, '<head>')+6), 0);
+ }
+
// clean HTML with washhtml by Frederic Motte
- $body = washtml::wash($html, array(
+ $wash_opts = array(
'show_washed' => false,
- 'allow_remote' => $safe,
+ 'allow_remote' => $p['safe'],
'blocked_src' => "./program/blocked.gif",
'charset' => RCMAIL_CHARSET,
'cid_map' => $part->replaces,
- ), $full_inline);
-
- $REMOTE_OBJECTS = !$full_inline;
+ 'html_elements' => array('body'),
+ );
+
+ if (!$p['inline_html']) {
+ $wash_opts['html_elements'] = array('html','head','title','body');
+ }
+
+ $washer = new washtml($wash_opts);
+ $washer->add_callback('form', 'rcmail_washtml_callback');
+
+ if ($p['safe']) { // allow CSS styles, will be sanitized by rcmail_washtml_callback()
+ $washer->add_callback('style', 'rcmail_washtml_callback');
+ }
+
+ $body = $washer->wash($html);
+ $REMOTE_OBJECTS = $washer->extlinks;
return $body;
}
// text/enriched
else if ($part->ctype_secondary=='enriched') {
$part->ctype_secondary = 'html';
- return Q(enriched_to_html($body), 'show');
+ return Q(enriched_to_html($part->body), 'show');
}
else
$body = $part->body;
$convert_patterns[] = '/([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9]\\.[a-z]{2,5})/ie';
$convert_replaces[] = "rcmail_str_replacement('<a href=\"mailto:\\1\" onclick=\"return ".JS_OBJECT_NAME.".command(\'compose\',\'\\1\',this)\">\\1</a>', \$replace_strings)";
-// if ($part->ctype_parameters['format'] != 'flowed')
-// $body = wordwrap(trim($body), 80);
-
// search for patterns like links and e-mail addresses
$body = preg_replace($convert_patterns, $convert_replaces, $body);
// insert the links for urls and mailtos
$body = preg_replace("/##string_replacement\{([0-9]+)\}##/e", "\$replace_strings[\\1]", join("\n", $a_lines));
-
- return "<div class=\"pre\">".$body."\n</div>";
- }
-
+ return html::tag('pre', array(), $body);
+}
/**
* add a string to the replacement array and return a replacement string
*/
function rcmail_str_replacement($str, &$rep)
- {
+{
static $count = 0;
$rep[$count] = stripslashes($str);
return "##string_replacement{".($count++)."}##";
- }
+}
+/**
+ * Callback function for washtml cleaning class
+ */
+function rcmail_washtml_callback($tagname, $attrib, $content)
+{
+ switch ($tagname) {
+ case 'form':
+ $out = html::div('form', $content);
+ break;
+
+ case 'style':
+ // decode all escaped entities and reduce to ascii strings
+ $stripped = preg_replace('/[^a-zA-Z\(:]/', '', rcmail_xss_entitiy_decode($content));
+
+ // now check for evil strings like expression, behavior or url()
+ if (!preg_match('/expression|behavior|url\(|import/', $stripped)) {
+ $out = html::tag('style', array('type' => 'text/css'), $content);
+ break;
+ }
+
+ default:
+ $out = '';
+ }
+
+ return $out;
+}
+
/**
* return table with message headers
*/
function rcmail_message_headers($attrib, $headers=NULL)
{
- global $IMAP, $OUTPUT, $MESSAGE;
+ global $IMAP, $OUTPUT, $MESSAGE, $PRINT_MODE, $CONFIG;
static $sa_attrib;
// keep header table attrib
if (!$headers)
$headers = is_object($MESSAGE->headers) ? get_object_vars($MESSAGE->headers) : $MESSAGE->headers;
- // add empty subject if none exsists
- if (empty($headers['subject']))
- $headers['subject'] = rcube_label('nosubject');
-
$header_count = 0;
// allow the following attributes to be added to the <table> tag
$out = '<table' . $attrib_str . ">\n";
// show these headers
- $standard_headers = array('subject', 'from', 'organization', 'to', 'cc', 'bcc', 'reply-to', 'date');
-
+ $standard_headers = array('subject', 'from', 'to', 'cc', 'bcc', 'replyto', 'date');
+
foreach ($standard_headers as $hkey)
{
if (!$headers[$hkey])
continue;
- if ($hkey=='date' && !empty($headers[$hkey]))
- $header_value = format_date($headers[$hkey]);
- else if (in_array($hkey, array('from', 'to', 'cc', 'bcc', 'reply-to')))
- $header_value = Q(rcmail_address_string($headers[$hkey], NULL, $attrib['addicon']), 'show');
+ if ($hkey == 'date')
+ {
+ if ($PRINT_MODE)
+ $header_value = format_date($headers[$hkey], $CONFIG['date_long'] ? $CONFIG['date_long'] : 'x');
+ else
+ $header_value = format_date($headers[$hkey]);
+ }
+ else if ($hkey == 'replyto')
+ {
+ if ($headers['replyto'] != $headers['from'])
+ $header_value = Q(rcmail_address_string($headers['replyto'], null, true, $attrib['addicon']), 'show');
+ else
+ continue;
+ }
+ else if (in_array($hkey, array('from', 'to', 'cc', 'bcc')))
+ $header_value = Q(rcmail_address_string($headers[$hkey], null, true, $attrib['addicon']), 'show');
+ else if ($hkey == 'subject' && empty($headers[$hkey]))
+ $header_value = Q(rcube_label('nosubject'));
else
- $header_value = Q($IMAP->decode_header($headers[$hkey]));
+ $header_value = Q(trim($IMAP->decode_header($headers[$hkey])));
$out .= "\n<tr>\n";
$out .= '<td class="header-title">'.Q(rcube_label($hkey)).": </td>\n";
$header_count++;
}
+ // all headers division
+ $out .= "\n".'<tr><td colspan="2" class="more-headers show-headers"
+ onclick="return '.JS_OBJECT_NAME.'.command(\'load-headers\', \'\', this)"></td></tr>';
+ $out .= "\n".'<tr id="all-headers"><td colspan="2" class="all"><div id="headers-source"></div></td></tr>';
+
+ $OUTPUT->add_gui_object('all_headers_row', 'all-headers');
+ $OUTPUT->add_gui_object('all_headers_box', 'headers-source');
+
$out .= "\n</table>\n\n";
return $header_count ? $out : '';
function rcmail_message_body($attrib)
{
global $CONFIG, $OUTPUT, $MESSAGE, $IMAP, $REMOTE_OBJECTS;
-
+
if (!is_array($MESSAGE->parts) && empty($MESSAGE->body))
return '';
if (!isset($part->body))
$part->body = $MESSAGE->get_part_content($part->mime_id);
- $body = rcmail_print_body($part, $safe_mode, !$CONFIG['prefer_html']);
-
+ $body = rcmail_print_body($part, array('safe' => $safe_mode, 'plain' => !$CONFIG['prefer_html']));
+
if ($part->ctype_secondary == 'html')
$out .= html::div('message-htmlpart', rcmail_html4inline($body, $attrib['id']));
else
}
}
else
- $out .= html::div('message-part', html::div('pre', Q($MESSAGE->body)));
+ $out .= html::div('message-part', html::tag('pre', array(), Q($MESSAGE->body)));
$ctype_primary = strtolower($MESSAGE->structure->ctype_primary);
$ctype_secondary = strtolower($MESSAGE->structure->ctype_secondary);
-
+
// list images after mail body
- if (get_boolean($attrib['showimages']) && $ctype_primary == 'multipart' &&
- !empty($MESSAGE->attachments) && !strstr($message_body, '<html')) {
+ if ($CONFIG['inline_images']
+ && $ctype_primary == 'multipart'
+ && !empty($MESSAGE->attachments)
+ && !strstr($message_body, '<html'))
+ {
foreach ($MESSAGE->attachments as $attach_prop) {
if (strpos($attach_prop->mimetype, 'image/') === 0) {
$out .= html::tag('hr') . html::p(array('align' => "center"),
* parse link attributes and set correct target
*/
function rcmail_alter_html_link($tag, $attrs, $container_id)
- {
+{
$attrib = parse_attrib_string($attrs);
+ $end = '>';
- if ($tag == 'link' && preg_match('/^https?:\/\//i', $attrib['href']))
+ if ($tag == 'link' && preg_match('/^https?:\/\//i', $attrib['href'])) {
$attrib['href'] = "./bin/modcss.php?u=" . urlencode($attrib['href']) . "&c=" . urlencode($container_id);
-
- else if (stristr((string)$attrib['href'], 'mailto:'))
+ $end = ' />';
+ }
+ else if (stristr((string)$attrib['href'], 'mailto:')) {
$attrib['onclick'] = sprintf(
"return %s.command('compose','%s',this)",
JS_OBJECT_NAME,
JQ(substr($attrib['href'], 7)));
-
- else if (!empty($attrib['href']) && $attrib['href']{0}!='#')
+ }
+ else if (!empty($attrib['href']) && $attrib['href'][0] != '#') {
$attrib['target'] = '_blank';
-
- return "<$tag" . create_attrib_string($attrib, array('href','name','target','onclick','id','class','style','title','rel','type','media')) . ' />';
}
+ return "<$tag" . html::attrib_string($attrib, array('href','name','target','onclick','id','class','style','title','rel','type','media')) . $end;
+}
+
/**
* decode address string and re-format it as HTML links
*/
-function rcmail_address_string($input, $max=NULL, $addicon=NULL)
- {
+function rcmail_address_string($input, $max=null, $linked=false, $addicon=null)
+{
global $IMAP, $PRINT_MODE, $CONFIG, $OUTPUT, $EMAIL_ADDRESS_PATTERN;
$a_parts = $IMAP->decode_address_list($input);
$j = 0;
$out = '';
- foreach ($a_parts as $part)
- {
+ foreach ($a_parts as $part) {
$j++;
- if ($PRINT_MODE)
+ if ($PRINT_MODE) {
$out .= sprintf('%s <%s>', Q($part['name']), $part['mailto']);
- else if (preg_match($EMAIL_ADDRESS_PATTERN, $part['mailto']))
- {
- $out .= sprintf('<a href="mailto:%s" onclick="return %s.command(\'compose\',\'%s\',this)" class="rcmContactAddress" title="%s">%s</a>',
- Q($part['mailto']),
- JS_OBJECT_NAME,
- JQ($part['mailto']),
- Q($part['mailto']),
- Q($part['name']));
-
- if ($addicon)
- $out .= sprintf(' <a href="#add" onclick="return %s.command(\'add-contact\',\'%s\',this)" title="%s"><img src="%s%s" alt="add" border="0" /></a>',
- JS_OBJECT_NAME,
- urlencode($part['string']),
- rcube_label('addtoaddressbook'),
- $CONFIG['skin_path'],
- $addicon);
+ }
+ else if (preg_match($EMAIL_ADDRESS_PATTERN, $part['mailto'])) {
+ if ($linked) {
+ $out .= html::a(array(
+ 'href' => 'mailto:'.$part['mailto'],
+ 'onclick' => sprintf("return %s.command('compose','%s',this)", JS_OBJECT_NAME, JQ($part['mailto'])),
+ 'title' => $part['mailto'],
+ 'class' => "rcmContactAddress",
+ ),
+ Q($part['name']));
}
- else
- {
+ else {
+ $out .= html::span(array('title' => $part['mailto'], 'class' => "rcmContactAddress"), Q($part['name']));
+ }
+
+ if ($addicon) {
+ $out .= ' ' . html::a(array(
+ 'href' => "#add",
+ 'onclick' => sprintf("return %s.command('add-contact','%s',this)", JS_OBJECT_NAME, urlencode($part['string'])),
+ 'title' => rcube_label('addtoaddressbook'),
+ ),
+ html::img(array(
+ 'src' => $CONFIG['skin_path'] . $addicon,
+ 'alt' => "Add contact",
+ )));
+ }
+ }
+ else {
if ($part['name'])
$out .= Q($part['name']);
if ($part['mailto'])
$out .= (strlen($out) ? ' ' : '') . sprintf('<%s>', Q($part['mailto']));
- }
+ }
if ($c>$j)
$out .= ','.($max ? ' ' : ' ');
- if ($max && $j==$max && $c>$j)
- {
+ if ($max && $j==$max && $c>$j) {
$out .= '...';
break;
- }
}
+ }
return $out;
+}
+
+
+/**
+ * Wrap text to a given number of characters per line
+ * but respect the mail quotation of replies messages (>)
+ *
+ * @param string Text to wrap
+ * @param int The line width
+ * @return string The wrapped text
+ */
+function rcmail_wrap_quoted($text, $max = 76)
+{
+ // Rebuild the message body with a maximum of $max chars, while keeping quoted message.
+ $lines = preg_split('/\r?\n/', trim($text));
+ $out = '';
+
+ foreach ($lines as $line) {
+ if (strlen($line) > $max) {
+ if (preg_match('/^([>\s]+)/', $line, $regs)) {
+ $length = strlen($regs[0]);
+ $prefix = substr($line, 0, $length);
+
+ // Remove '> ' from the line, then wordwrap() the line
+ $line = wordwrap(substr($line, $length), $max - $length);
+
+ // Rebuild the line with '> ' at the beginning of each 'subline'
+ $newline = '';
+ foreach (explode("\n", $line) as $l) {
+ $newline .= $prefix . $l . "\n";
+ }
+
+ // Remove the righest newline char
+ $line = rtrim($newline);
+ }
+ else {
+ $line = wordwrap($line, $max);
+ }
+ }
+
+ // Append the line
+ $out .= $line . "\n";
}
+
+ return $out;
+}
function rcmail_message_part_controls()
$part = $MESSAGE->mime_parts[asciiwords(get_input_value('_part', RCUBE_INPUT_GPC))];
$ctype_primary = strtolower($part->ctype_primary);
- $attrib['src'] = Q('./?'.str_replace('_frame=', ($ctype_primary=='text' ? '_show=' : '_preload='), $_SERVER['QUERY_STRING']));
+ $attrib['src'] = './?' . str_replace('_frame=', ($ctype_primary=='text' ? '_show=' : '_preload='), $_SERVER['QUERY_STRING']);
- $attrib_str = create_attrib_string($attrib, array('id', 'class', 'style', 'src', 'width', 'height'));
- $out = '<iframe '. $attrib_str . "></iframe>";
-
- return $out;
+ return html::iframe($attrib);
}
*/
function rcmail_deliver_message(&$message, $from, $mailto)
{
- global $CONFIG;
+ global $CONFIG, $RCMAIL;
$msg_body = $message->get();
$headers = $message->headers();
-
+
// send thru SMTP server using custom SMTP library
if ($CONFIG['smtp_server'])
{
$sent = mail($headers_enc['To'], $headers_enc['Subject'], $msg_body, $header_str, "-f$from");
}
- if ($sent) // remove MDN headers after sending
+ if ($sent)
+ {
+ // remove MDN headers after sending
unset($headers['Return-Receipt-To'], $headers['Disposition-Notification-To']);
+
+ if ($CONFIG['smtp_log'])
+ write_log('sendmail', sprintf("User %s [%s]; Message for %s; %s",
+ $RCMAIL->user->get_username(),
+ $_SERVER['REMOTE_ADDR'],
+ $mailto,
+ !empty($smtp_response) ? join('; ', $smtp_response) : ''));
+ }
$message->_headers = array();
$message->headers($headers);
function rcmail_send_mdn($uid)
{
- global $CONFIG, $USER, $IMAP;
+ global $RCMAIL, $IMAP;
$message = new rcube_message($uid);
- if ($message->headers->mdn_to && !$message->headers->mdn_sent)
+ if ($message->headers->mdn_to && !$message->headers->mdn_sent && $IMAP->check_permflag('MDNSENT'))
{
- $identity = $USER->get_identity();
+ $identity = $RCMAIL->user->get_identity();
$sender = format_email_recipient($identity['email'], $identity['name']);
$recipient = array_shift($IMAP->decode_address_list($message->headers->mdn_to));
$mailto = $recipient['mailto'];
- $compose = new rcube_mail_mime(rcmail_header_delm());
+ $compose = new rcube_mail_mime($RCMAIL->config->header_delimiter());
$compose->setParam(array(
'text_encoding' => 'quoted-printable',
'html_encoding' => 'quoted-printable',
'From' => $sender,
'To' => $message->headers->mdn_to,
'Subject' => rcube_label('receiptread') . ': ' . $message->subject,
- 'Message-ID' => sprintf('<%s@%s>', md5(uniqid('rcmail'.rand(),true)), rcmail_mail_domain($_SESSION['imap_host'])),
+ 'Message-ID' => sprintf('<%s@%s>', md5(uniqid('rcmail'.rand(),true)), $RCMAIL->config->mail_domain($_SESSION['imap_host'])),
'X-Sender' => $identity['email'],
'Content-Type' => 'multipart/report; report-type=disposition-notification',
);
- if (!empty($CONFIG['useragent']))
- $headers['User-Agent'] = $CONFIG['useragent'];
+ if ($agent = $RCMAIL->config->get('useragent'))
+ $headers['User-Agent'] = $agent;
$body = rcube_label("yourmessage") . "\r\n\r\n" .
"\t" . rcube_label("to") . ': ' . rcube_imap::decode_mime_string($message->headers->to, $message->headers->charset) . "\r\n" .
"\t" . rcube_label("subject") . ': ' . $message->subject . "\r\n" .
- "\t" . rcube_label("sent") . ': ' . format_date($message->headers->date, $CONFIG['date_long']) . "\r\n" .
+ "\t" . rcube_label("sent") . ': ' . format_date($message->headers->date, $RCMAIL->config->get('date_long')) . "\r\n" .
"\r\n" . rcube_label("receiptnote") . "\r\n";
- $ua = !empty($CONFIG['useragent']) ? $CONFIG['useragent'] : "RoundCube Webmail (Version ".RCMAIL_VERSION.")";
+ $ua = $RCMAIL->config->get('useragent', "RoundCube Webmail (Version ".RCMAIL_VERSION.")");
$report = "Reporting-UA: $ua\r\n";
if ($message->headers->to)
}
+function rcmail_search_filter($attrib)
+{
+ global $OUTPUT;
+
+ if (!strlen($attrib['id']))
+ $attrib['id'] = 'rcmlistfilter';
+
+ $attrib['onchange'] = JS_OBJECT_NAME.'.filter_mailbox(this.value)';
+
+ /*
+ RFC3501 (6.4.4): 'ALL', 'RECENT',
+ 'ANSWERED', 'DELETED', 'FLAGGED', 'SEEN',
+ 'UNANSWERED', 'UNDELETED', 'UNFLAGGED', 'UNSEEN',
+ 'NEW', // = (RECENT UNSEEN)
+ 'OLD' // = NOT RECENT
+ */
+
+ $select_filter = new html_select($attrib);
+ $select_filter->add(rcube_label('all'), 'ALL');
+ $select_filter->add(rcube_label('unread'), 'UNSEEN');
+ $select_filter->add(rcube_label('flagged'), 'FLAGGED');
+ $select_filter->add(rcube_label('unanswered'), 'UNANSWERED');
+
+ $out = $select_filter->show($_SESSION['search_filter']);
+
+ $OUTPUT->add_gui_object('search_filter', $attrib['id']);
+
+ return $out;
+}
+
// register UI objects
$OUTPUT->add_handlers(array(
'mailboxlist' => 'rcmail_mailbox_list',
'messages' => 'rcmail_message_list',
'messagecountdisplay' => 'rcmail_messagecount_display',
'quotadisplay' => 'rcmail_quota_display',
+ 'mailboxname' => 'rcmail_mailbox_name_display',
'messageheaders' => 'rcmail_message_headers',
'messagebody' => 'rcmail_message_body',
'messagecontentframe' => 'rcmail_messagecontent_frame',
'messagepartframe' => 'rcmail_message_part_frame',
'messagepartcontrols' => 'rcmail_message_part_controls',
+ 'searchfilter' => 'rcmail_search_filter',
'searchform' => array($OUTPUT, 'search_form'),
));
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: get.inc 1400 2008-05-17 17:46:43Z thomasb $
+ $Id: get.inc 2182 2008-12-19 07:20:50Z alec $
*/
$ctype_primary = strtolower($part->ctype_primary);
$ctype_secondary = strtolower($part->ctype_secondary);
$mimetype = sprintf('%s/%s', $ctype_primary, $ctype_secondary);
+
+ $browser = new rcube_browser;
- header("Expires: 0");
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
- header("Cache-Control: private", false);
- header("Content-Transfer-Encoding: binary");
-
+ send_nocacheing_headers();
+
// send download headers
if ($_GET['_download']) {
- header("Cache-Control: private", false);
header("Content-Type: application/octet-stream");
+ if ($browser->ie)
+ header("Content-Type: application/force-download");
+ }
+ else if ($ctype_primary == 'text') {
+ header("Content-Type: text/$ctype_secondary; charset=" . ($part->charset ? $part->charset : RCMAIL_CHARSET));
}
- else
+ else {
header("Content-Type: $mimetype");
-
- // We need to set the following headers to make downloads work using IE in HTTPS mode.
- if (isset($_SERVER['HTTPS'])) {
- header('Pragma: ');
- header('Cache-Control: ');
+ header("Content-Transfer-Encoding: binary");
}
// deliver part content
if ($ctype_primary == 'text' && $ctype_secondary == 'html') {
- // we have to analyze the whole structure again to find inline objects
- /* what was this good for again ?
- list($new_parts, $new_attachments) =
- rcmail_parse_message($MESSAGE['structure'],
- array('safe' => intval($_GET['_safe']),
- 'prefer_html' => TRUE,
- 'get_url' => $GET_URL.'&_part=%s'));
-
- $all_parts = array_merge($new_parts, $new_attachments);
- for ($partix = 0; $partix < sizeof($all_parts); $partix++)
- if ($all_parts[$partix]->mime_id == $pid)
- $part = &$all_parts[$partix];
- */
-
// get part body if not available
if (!$part->body)
$part->body = $MESSAGE->get_part_content($part->mime_id);
$OUTPUT = new rcube_html_page();
- $OUTPUT->write(rcmail_print_body($part, $MESSAGE->is_safe));
+ $OUTPUT->write(rcmail_print_body($part, array('safe' => $MESSAGE->is_safe, 'inline_html' => false)));
}
else {
- header(sprintf('Content-Disposition: %s; filename="%s";',
- $_GET['_download'] ? 'attachment' : 'inline',
- $part->filename ? abbreviate_string($part->filename, 55) : "roundcube.$ctype_secondary"));
+ // don't kill the connection if download takes more than 30 sec.
+ if (!ini_get('safe_mode')) {
+ set_time_limit(0);
+ }
+
+ $filename = $part->filename ? $part->filename : ($MESSAGE->subject ? $MESSAGE->subject : 'roundcube') . '.'.$ctype_secondary;
+
+ if ($browser->ie && $browser->ver < 7)
+ $filename = rawurlencode(abbreviate_string($filename, 55));
+ else if ($browser->ie)
+ $filename = rawurlencode($filename);
+ else
+ $filename = addcslashes($filename, '"');
+
+ $disposition = !empty($_GET['_download']) ? 'attachment' : 'inline';
+
+ header("Content-Disposition: $disposition; filename=\"$filename\"");
// turn off output buffering and print part content
$IMAP->get_message_part($MESSAGE->uid, $part->mime_id, $part, true);
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: getunread.inc 1019 2008-02-05 21:39:08Z thomasb $
+ $Id: getunread.inc 1917 2008-10-02 17:26:16Z alec $
*/
if (!empty($a_folders))
{
+ $inbox = ($IMAP->get_mailbox_name() == 'INBOX');
foreach ($a_folders as $mbox_row)
- $OUTPUT->command('set_unread_count', $mbox_row, $IMAP->messagecount($mbox_row, 'UNSEEN'), ($IMAP->get_mailbox_name() == 'INBOX' && $mbox_row == 'INBOX'));
+ $OUTPUT->command('set_unread_count', $mbox_row, $IMAP->messagecount($mbox_row, 'UNSEEN'), $inbox && $mbox_row == 'INBOX');
}
$OUTPUT->send();
--- /dev/null
+<?php
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/mail/headers.inc |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Fetch message headers in raw format for display |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Aleksander Machniak <alec@alec.pl> |
+ +-----------------------------------------------------------------------+
+
+ $Id: mark.inc 1580 2008-06-30 09:36:18Z alec $
+
+*/
+
+if ($uid = get_input_value('_uid', RCUBE_INPUT_POST))
+{
+ $source = $IMAP->get_raw_headers($uid);
+
+ if ($source)
+ {
+ $source = htmlspecialchars(trim($source));
+ $source = preg_replace('/\t/', ' ', $source);
+ $source = preg_replace('/^([a-z0-9_:-]+)/im', '<font class="bold">'.'\1'.'</font>', $source);
+ $source = preg_replace('/\r?\n/', '<br />', $source);
+
+ $OUTPUT->command('set_headers', $source);
+ $OUTPUT->send();
+ }
+}
+
+exit;
+
+?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: list.inc 1019 2008-02-05 21:39:08Z thomasb $
+ $Id: list.inc 2109 2008-12-03 08:16:44Z alec $
*/
-$OUTPUT_TYPE = 'js';
// is there a sort type for this request?
if ($sort = get_input_value('_sort', RCUBE_INPUT_GET))
{
list($sort_col, $sort_order) = explode('_', $sort);
// set session vars for sort (so next page and task switch know how to sort)
- $_SESSION['sort_col'] = $sort_col;
- $_SESSION['sort_order'] = $sort_order;
+ $save_arr = array();
+ $_SESSION['sort_col'] = $save_arr['message_sort_col'] = $sort_col;
+ $_SESSION['sort_order'] = $save_arr['message_sort_order'] = $sort_order;
+
+ $RCMAIL->user->save_prefs($save_arr);
}
else
{
$mbox_name = $IMAP->get_mailbox_name();
+// initialize searching result if search_filter is used
+if ($_SESSION['search_filter'] && $_SESSION['search_filter'] != 'ALL')
+{
+ $search_request = md5($mbox_name.$_SESSION['search_filter']);
+
+ $IMAP->search($mbox_name, $_SESSION['search_filter'], RCMAIL_CHARSET, $sort_col);
+ $_SESSION['search'][$search_request] = $IMAP->get_search_set();
+ $OUTPUT->set_env('search_request', $search_request);
+}
+
+
// fetch message headers
if ($IMAP->messagecount($mbox_name, 'ALL', !empty($_REQUEST['_refresh'])))
$a_headers = $IMAP->list_headers($mbox_name, NULL, $sort_col, $sort_order);
$OUTPUT->set_env('messagecount', $count);
$OUTPUT->set_env('pagecount', $pages);
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count));
-
+$OUTPUT->command('set_mailboxname', rcmail_get_mailbox_name_text());
// add message rows
if (isset($a_headers) && count($a_headers))
+{
rcmail_js_message_list($a_headers);
+ if ($search_request)
+ $OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $count));
+}
+else if ($search_request)
+ $OUTPUT->show_message('searchnomatch', 'notice');
else
$OUTPUT->show_message('nomessagesfound', 'notice');
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: mark.inc 1292 2008-04-12 17:37:22Z alec $
+ $Id: mark.inc 1962 2008-10-09 06:25:43Z alec $
*/
'undelete' => 'UNDELETED',
'delete' => 'DELETED',
'read' => 'SEEN',
- 'unread' => 'UNSEEN');
+ 'unread' => 'UNSEEN',
+ 'flagged' => 'FLAGGED',
+ 'unflagged' => 'UNFLAGGED');
if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_value('_flag', RCUBE_INPUT_POST)))
{
$OUTPUT->command('flag_deleted_as_read', $uids);
}
- if ($marked != -1)
+ if ($marked != -1 && ($flag == 'SEEN' || $flag == 'UNSEEN'))
{
$mbox_name = $IMAP->get_mailbox_name();
$OUTPUT->command('set_unread_count', $mbox_name, $IMAP->messagecount($mbox_name, 'UNSEEN'), ($mbox_name == 'INBOX'));
- $OUTPUT->send();
}
+
+ $OUTPUT->send();
}
exit;
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: move_del.inc 1359 2008-05-06 16:56:42Z alec $
+ $Id: move_del.inc 2018 2008-10-27 10:53:56Z alec $
*/
if ($RCMAIL->action=='moveto' && !empty($_POST['_uid']) && !empty($_POST['_target_mbox'])) {
$count = sizeof(explode(',', ($uids = get_input_value('_uid', RCUBE_INPUT_POST))));
$target = get_input_value('_target_mbox', RCUBE_INPUT_POST);
- $moved = $IMAP->move_message($uids, $target, get_input_value('_mbox', RCUBE_INPUT_POST));
+ $mbox = get_input_value('_mbox', RCUBE_INPUT_POST);
+
+ // flag messages as read before moving them
+ if ($CONFIG['read_when_deleted'] && $target == $CONFIG['trash_mbox'])
+ $IMAP->set_flag($uids, 'SEEN');
+
+ $moved = $IMAP->move_message($uids, $target, $mbox);
if (!$moved) {
// send error message
$OUTPUT->send();
exit;
}
+
+ if (!$CONFIG['flag_for_deletion'])
+ $addrows = true;
}
// delete messages
else if ($RCMAIL->action=='delete' && !empty($_POST['_uid'])) {
$count = sizeof(explode(',', ($uids = get_input_value('_uid', RCUBE_INPUT_POST))));
- $del = $IMAP->delete_message($uids, get_input_value('_mbox', RCUBE_INPUT_POST));
+ $mbox = get_input_value('_mbox', RCUBE_INPUT_POST);
+ $del = $IMAP->delete_message($uids, $mbox);
if (!$del) {
// send error message
$OUTPUT->send();
exit;
}
+
+ $addrows = true;
}
// unknown action or missing query param
else {
$OUTPUT->set_env('current_page', $IMAP->list_page);
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count));
-
// update mailboxlist
$mbox = $IMAP->get_mailbox_name();
$OUTPUT->command('set_unread_count', $mbox, $IMAP->messagecount($mbox, 'UNSEEN'), ($mbox == 'INBOX'));
$OUTPUT->command('set_quota', rcmail_quota_content($IMAP->get_quota()));
// add new rows from next page (if any)
-if ($_POST['_from']!='show' && ($jump_back || $nextpage_count > 0)) {
+if ($addrows && $_POST['_from']!='show' && ($jump_back || $nextpage_count > 0)) {
$sort_col = isset($_SESSION['sort_col']) ? $_SESSION['sort_col'] : $CONFIG['message_sort_col'];
$sort_order = isset($_SESSION['sort_order']) ? $_SESSION['sort_order'] : $CONFIG['message_sort_order'];
// get search string
$str = get_input_value('_q', RCUBE_INPUT_GET);
+$filter = get_input_value('_filter', RCUBE_INPUT_GET);
$mbox = get_input_value('_mbox', RCUBE_INPUT_GET);
-$search_request = md5($mbox.$str);
+$search_request = md5($mbox.$filter.$str);
+// add list filter string
+$search_str = $filter && $filter != 'ALL' ? $filter : '';
+
+$_SESSION['search_filter'] = $filter;
// Check the search string for type of search
-if (preg_match("/^from:/i", $str))
+if (preg_match("/^from:.*/i", $str))
{
list(,$srch) = explode(":", $str);
- $subject = "HEADER FROM";
+ $subject = "HEADER FROM";
$search = trim($srch);
}
-else if (preg_match("/^to:/i", $str))
+else if (preg_match("/^to.*:/i", $str))
{
list(,$srch) = explode(":", $str);
$subject = "HEADER TO";
$search = trim($srch);
}
-else if (preg_match("/^cc:/i", $str))
+else if (preg_match("/^cc:.*/i", $str))
{
list(,$srch) = explode(":", $str);
$subject = "HEADER CC";
$search = trim($srch);
}
-else if (preg_match("/^subject:/i", $str))
+else if (preg_match("/^subject:.*/i", $str))
{
list(,$srch) = explode(":", $str);
$subject = "HEADER SUBJECT";
$search = trim($srch);
}
-else if (preg_match("/^body:/i", $str))
+else if (preg_match("/^body:.*/i", $str))
{
list(,$srch) = explode(":", $str);
$subject = "TEXT";
$search = trim($srch);
}
// search in subject and sender by default
-else
+else if(trim($str))
{
$from = ($mbox == $CONFIG['sent_mbox'] || $mbox == $CONFIG['drafts_mbox']) ? "TO" : "FROM";
$subject = array("HEADER SUBJECT", "HEADER $from");
$search = trim($str);
}
+if ($subject && !is_array($subject))
+ $search_str .= sprintf(" %s {%d}\r\n%s", $subject, strlen($search), $search);
+else if ($subject) {
+ $search_str .= ' OR';
+ foreach($subject as $sub)
+ $search_str .= sprintf(" %s {%d}\r\n%s", $sub, strlen($search), $search);
+}
+
+$search_str = trim($search_str);
// execute IMAP search
-$result = $IMAP->search($mbox, $subject, $search, $imap_charset);
-$count = 0;
-
-// Make sure our $result is legit..
-if (is_array($result) && $result[0] != '')
-{
- // Get the headers
- $result_h = $IMAP->list_header_set($mbox, $result, 1, $_SESSION['sort_col'], $_SESSION['sort_order']);
- $count = $IMAP->messagecount();
+if ($search_str)
+ $result = $IMAP->search($mbox, $search_str, $imap_charset, $_SESSION['sort_col']);
+
+// Get the headers
+$result_h = $IMAP->list_headers($mbox, 1, $_SESSION['sort_col'], $_SESSION['sort_order']);
+$count = $IMAP->messagecount();
- // save search results in session
- if (!is_array($_SESSION['search']))
- $_SESSION['search'] = array();
+// save search results in session
+if (!is_array($_SESSION['search']))
+ $_SESSION['search'] = array();
- // Make sure we got the headers
- if ($result_h != NULL)
- {
+// Make sure we got the headers
+if (!empty($result_h))
+{
+ rcmail_js_message_list($result_h);
+ if ($search_str) {
$_SESSION['search'][$search_request] = $IMAP->get_search_set();
$_SESSION['last_text_search'] = $str;
- rcmail_js_message_list($result_h);
$OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $count));
}
}
else
{
- $OUTPUT->show_message('searchnomatch', 'warning');
- $search_request = -1;
+ $OUTPUT->show_message('searchnomatch', 'notice');
}
// update message count display
-$pages = ceil($count/$IMAP->page_size);
-$OUTPUT->set_env('search_request', $search_request);
+$OUTPUT->set_env('search_request', $search_str ? $search_request : -1);
$OUTPUT->set_env('messagecount', $count);
-$OUTPUT->set_env('pagecount', $pages);
+$OUTPUT->set_env('pagecount', ceil($count/$IMAP->page_size));
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count, 1));
$OUTPUT->send();
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: sendmail.inc 1344 2008-04-30 08:21:42Z thomasb $
+ $Id: sendmail.inc 2193 2008-12-29 14:43:45Z alec $
*/
-if (!isset($_SESSION['compose']['id']))
- {
- rcmail_overwrite_action('list');
- return;
+// remove all scripts and act as called in frame
+$OUTPUT->reset();
+$OUTPUT->framed = TRUE;
+
+$savedraft = !empty($_POST['_draft']) ? TRUE : FALSE;
+
+/****** checks ********/
+
+if (!isset($_SESSION['compose']['id'])) {
+ raise_error(array('code' => 500, 'file' => __FILE__, 'message' => "Invalid compose ID"), true, false);
+ console("Sendmail error", $_SESSION['compose']);
+ $OUTPUT->show_message("An internal error occured. Please try again.", 'error');
+ $OUTPUT->send('iframe');
+}
+
+if (!$savedraft) {
+ if (empty($_POST['_to']) && empty($_POST['_cc']) && empty($_POST['_bcc'])
+ && empty($_POST['_subject']) && $_POST['_message']) {
+ $OUTPUT->show_message('sendingfailed', 'error');
+ $OUTPUT->send('iframe');
}
+ if(!empty($CONFIG['sendmail_delay'])) {
+ $wait_sec = time() - intval($CONFIG['sendmail_delay']) - intval($CONFIG['last_message_time']);
+ if($wait_sec < 0) {
+ $OUTPUT->show_message('senttooquickly', 'error', array('sec' => $wait_sec * -1));
+ $OUTPUT->send('iframe');
+ }
+ }
+}
-/****** message sending functions ********/
+/****** message sending functions ********/
// get identity record
function rcmail_get_identity($id)
{
$out = $sql_arr;
$out['mailto'] = $sql_arr['email'];
- $name = strpos($sql_arr['name'], ",") ? '"'.$sql_arr['name'].'"' : $sql_arr['name'];
- $out['string'] = sprintf('%s <%s>',
- rcube_charset_convert($name, RCMAIL_CHARSET, $OUTPUT->get_charset()),
- $sql_arr['email']);
+
+ // Special chars as defined by RFC 822 need to in quoted string (or escaped).
+ if (preg_match('/[\(\)\<\>\\\.\[\]@,;:"]/', $sql_arr['name']))
+ $name = '"' . addcslashes($sql_arr['name'], '"') . '"';
+ else
+ $name = $sql_arr['name'];
+
+ $out['string'] = rcube_charset_convert($name, RCMAIL_CHARSET, $OUTPUT->get_charset());
+ if ($sql_arr['email'])
+ $out['string'] .= ' <' . $sql_arr['email'] . '>';
+
return $out;
}
$body = preg_replace('/\x00/', '', $htmlContents);
$last_img_pos = 0;
-
- $searchstr = 'program/js/tiny_mce/plugins/emotions/images/';
+ $searchstr = 'program/js/tiny_mce/plugins/emotions/img/';
+ $path_len = strlen(INSTALL_PATH . '/');
// keep track of added images, so they're only added once
$included_images = array();
{
$pos2 = strpos($body, '"', $pos);
$body_pre = substr($body, 0, $pos);
+ $body_post = substr($body, $pos2);
+
$image_name = substr($body,
$pos + strlen($searchstr),
$pos2 - ($pos + strlen($searchstr)));
+
// sanitize image name so resulting attachment doesn't leave images dir
$image_name = preg_replace('/[^a-zA-Z0-9_\.\-]/i','',$image_name);
-
- $body_post = substr($body, $pos2);
+ $img_file = INSTALL_PATH . '/' . $searchstr . $image_name;
if (! in_array($image_name, $included_images))
{
// add the image to the MIME message
- $img_file = INSTALL_PATH . '/' . $searchstr . $image_name;
- if(! $mime_message->addHTMLImage($img_file, 'image/gif', '', true, '_' . $image_name))
+ if(! $mime_message->addHTMLImage($img_file, 'image/gif', '', true, $image_name))
$OUTPUT->show_message("emoticonerror", 'error');
-
array_push($included_images, $image_name);
}
+
+ $body = $body_pre . $img_file . $body_post;
- $body = $body_pre . 'cid:_' . $image_name . $body_post;
-
- $last_img_pos = $pos2;
+ $last_img_pos = $pos2 + $path_len;
}
-
+
$mime_message->setHTMLBody($body);
}
-if (strlen($_POST['_draft_saveid']) > 3)
- $olddraftmessageid = get_input_value('_draft_saveid', RCUBE_INPUT_POST);
-
-$message_id = sprintf('<%s@%s>', md5(uniqid('rcmail'.rand(),true)), rcmail_mail_domain($_SESSION['imap_host']));
-$savedraft = !empty($_POST['_draft']) ? TRUE : FALSE;
-
-// remove all scripts and act as called in frame
-$OUTPUT->reset();
-$OUTPUT->framed = TRUE;
-
-/****** check submission and compose message ********/
+/****** compose message ********/
+if (strlen($_POST['_draft_saveid']) > 3)
+ $olddraftmessageid = get_input_value('_draft_saveid', RCUBE_INPUT_POST);
-if (!$savedraft && empty($_POST['_to']) && empty($_POST['_cc']) && empty($_POST['_bcc']) && empty($_POST['_subject']) && $_POST['_message'])
- {
- $OUTPUT->show_message("sendingfailed", 'error');
- $OUTPUT->send('iframe');
- return;
- }
-
+$message_id = sprintf('<%s@%s>', md5(uniqid('rcmail'.rand(),true)), $RCMAIL->config->mail_domain($_SESSION['imap_host']));
// set default charset
$input_charset = $OUTPUT->get_charset();
$message_charset = isset($_POST['_charset']) ? $_POST['_charset'] : $input_charset;
-$mailto_regexp = array('/[,;]\s*[\r\n]+/', '/[\r\n]+/', '/[,;]\s*$/m', '/;/');
-$mailto_replace = array(', ', ', ', '', ',');
+$mailto_regexp = array('/[,;]\s*[\r\n]+/', '/[\r\n]+/', '/[,;]\s*$/m', '/;/', '/(\S{1})(<\S+@\S+>)/U');
+$mailto_replace = array(', ', ', ', '', ',', '\\1 \\2');
-// replace new lines and strip ending ', '
+// replace new lines and strip ending ', ', make address strings more valid also
$mailto = preg_replace($mailto_regexp, $mailto_replace, get_input_value('_to', RCUBE_INPUT_POST, TRUE, $message_charset));
$mailcc = preg_replace($mailto_regexp, $mailto_replace, get_input_value('_cc', RCUBE_INPUT_POST, TRUE, $message_charset));
$mailbcc = preg_replace($mailto_regexp, $mailto_replace, get_input_value('_bcc', RCUBE_INPUT_POST, TRUE, $message_charset));
$mailto = 'undisclosed-recipients:;';
// get sender name and address
-$identity_arr = rcmail_get_identity(get_input_value('_from', RCUBE_INPUT_POST));
-$from = $identity_arr['mailto'];
+$from = get_input_value('_from', RCUBE_INPUT_POST);
+$identity_arr = rcmail_get_identity($from);
+
+if ($identity_arr)
+ $from = $identity_arr['mailto'];
if (empty($identity_arr['string']))
$identity_arr['string'] = $from;
// additional headers
if ($CONFIG['http_received_header'])
{
- $nldlm = rcmail_header_delm() . "\t";
+ $nldlm = $RCMAIL->config->header_delimiter() . "\t";
$headers['Received'] = wordwrap('from ' . (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ?
gethostbyaddr($_SERVER['HTTP_X_FORWARDED_FOR']).' ['.$_SERVER['HTTP_X_FORWARDED_FOR'].']'.$nldlm.' via ' : '') .
gethostbyaddr($_SERVER['REMOTE_ADDR']).' ['.$_SERVER['REMOTE_ADDR'].']'.$nldlm.'with ' .
if (!empty($CONFIG['useragent']))
$headers['User-Agent'] = $CONFIG['useragent'];
+$isHtmlVal = strtolower(get_input_value('_is_html', RCUBE_INPUT_POST));
+$isHtml = ($isHtmlVal == "1");
+
// fetch message body
$message_body = get_input_value('_message', RCUBE_INPUT_POST, TRUE, $message_charset);
+// remove signature's div ID
+if (!$savedraft && $isHtml)
+ $message_body = preg_replace('/\s*id="_rc_sig"/', '', $message_body);
+
// append generic footer to all messages
if (!$savedraft && !empty($CONFIG['generic_message_footer']) && ($footer = file_get_contents(realpath($CONFIG['generic_message_footer']))))
$message_body .= "\r\n" . rcube_charset_convert($footer, 'UTF-8', $message_charset);
-$isHtmlVal = strtolower(get_input_value('_is_html', RCUBE_INPUT_POST));
-$isHtml = ($isHtmlVal == "1");
-
// create extended PEAR::Mail_mime instance
-$MAIL_MIME = new rcube_mail_mime(rcmail_header_delm());
+$MAIL_MIME = new rcube_mail_mime($RCMAIL->config->header_delimiter());
// For HTML-formatted messages, construct the MIME message with both
// the HTML part and the plain-text part
// empty message body breaks attachment handling in drafts
$plainTextPart = "\r\n";
}
- $MAIL_MIME->setTXTBody(html_entity_decode($plainTextPart, ENT_COMPAT, 'utf-8'));
+ $MAIL_MIME->setTXTBody($plainTextPart);
// look for "emoticon" images from TinyMCE and copy into message as attachments
rcmail_attach_emoticons($MAIL_MIME);
$MAIL_MIME->setTXTBody($message_body, FALSE, TRUE);
}
+// chose transfer encoding
+$charset_7bit = array('ASCII', 'ISO-2022-JP', 'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-15');
+$transfer_encoding = in_array(strtoupper($message_charset), $charset_7bit) ? '7bit' : '8bit';
// add stored attachments, if any
if (is_array($_SESSION['compose']['attachments']))
}
else
{
- /*
- We need to replace mime_content_type in a later release because the function
- is deprecated in favour of File_Info
- */
+ $ctype = str_replace('image/pjpeg', 'image/jpeg', $attachment['mimetype']); // #1484914
+
+ // .eml attachments send inline
$MAIL_MIME->addAttachment($attachment['path'],
- rc_mime_content_type($attachment['path'], $attachment['mimetype']),
- $attachment['name'], true, 'base64',
- 'attachment', $message_charset);
+ $ctype,
+ $attachment['name'], true,
+ ($ctype == 'message/rfc822' ? $transfer_encoding : 'base64'),
+ ($ctype == 'message/rfc822' ? 'inline' : 'attachment'),
+ $message_charset, '', '',
+ $CONFIG['mime_param_folding'] ? 'quoted-printable' : NULL,
+ $CONFIG['mime_param_folding'] == 2 ? 'quoted-printable' : NULL
+ );
}
}
// add submitted attachments
if (is_array($_FILES['_attachments']['tmp_name']))
foreach ($_FILES['_attachments']['tmp_name'] as $i => $filepath)
- $MAIL_MIME->addAttachment($filepath, $files['type'][$i], $files['name'][$i], true, 'base64', 'attachment', $message_charset);
+ {
+ $ctype = $files['type'][$i];
+ $ctype = str_replace('image/pjpeg', 'image/jpeg', $ctype); // #1484914
+
+ $MAIL_MIME->addAttachment($filepath, $ctype, $files['name'][$i], true,
+ $ctype == 'message/rfc822' ? $transfer_encoding : 'base64',
+ 'attachment', $message_charset, '', '',
+ $CONFIG['mime_param_folding'] ? 'quoted-printable' : NULL,
+ $CONFIG['mime_param_folding'] == 2 ? 'quoted-printable' : NULL
+ );
+ }
-// chose transfer encoding
-$charset_7bit = array('ASCII', 'ISO-2022-JP', 'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-15');
-$transfer_encoding = in_array(strtoupper($message_charset), $charset_7bit) ? '7bit' : '8bit';
-
// encoding settings for mail composing
$MAIL_MIME->setParam(array(
'text_encoding' => $transfer_encoding,
// Begin SMTP Delivery Block
if (!$savedraft)
{
+ // check for 'From' address (identity may be incomplete)
+ if ($identity_arr && !$identity_arr['mailto']) {
+ $OUTPUT->show_message('nofromaddress', 'error');
+ $OUTPUT->send('iframe');
+ }
+
$sent = rcmail_deliver_message($MAIL_MIME, $from, $mailto);
// return to compose page if sending failed
{
$OUTPUT->show_message("sendingfailed", 'error');
$OUTPUT->send('iframe');
- return;
}
+
+ // save message sent time
+ if (!empty($CONFIG['sendmail_delay']))
+ $RCMAIL->user->save_prefs(array('last_message_time' => time()));
- // set repliead flag
+ // set replied/forwarded flag
if ($_SESSION['compose']['reply_uid'])
$IMAP->set_flag($_SESSION['compose']['reply_uid'], 'ANSWERED');
+ else if ($_SESSION['compose']['forward_uid'])
+ $IMAP->set_flag($_SESSION['compose']['forward_uid'], 'FORWARDED');
- } // End of SMTP Delivery Block
+} // End of SMTP Delivery Block
// Determine which folder to save message
if ($savedraft)
- $store_target = 'drafts_mbox';
-else
- $store_target = 'sent_mbox';
+ $store_target = $CONFIG['drafts_mbox'];
+else
+ $store_target = isset($_POST['_store_target']) ? get_input_value('_store_target', RCUBE_INPUT_POST) : $CONFIG['sent_mbox'];
-if ($CONFIG[$store_target])
+if ($store_target)
{
// check if mailbox exists
- if (!in_array_nocase($CONFIG[$store_target], $IMAP->list_mailboxes()))
- $store_folder = $IMAP->create_mailbox($CONFIG[$store_target], TRUE);
+ if (!in_array_nocase($store_target, $IMAP->list_mailboxes()))
+ {
+ // folder may be existing but not subscribed (#1485241)
+ if (!in_array_nocase($store_target, $IMAP->list_unsubscribed()))
+ $store_folder = $IMAP->create_mailbox($store_target, TRUE);
+ else if ($IMAP->subscribe($store_target))
+ $store_folder = TRUE;
+ }
else
$store_folder = TRUE;
// append message to sent box
if ($store_folder)
- $saved = $IMAP->save_message($CONFIG[$store_target], $MAIL_MIME->getMessage());
+ $saved = $IMAP->save_message($store_target, $MAIL_MIME->getMessage());
// raise error if saving failed
if (!$saved)
{
raise_error(array('code' => 800, 'type' => 'imap', 'file' => __FILE__,
- 'message' => "Could not save message in $CONFIG[$store_target]"), TRUE, FALSE);
+ 'message' => "Could not save message in $store_target"), TRUE, FALSE);
- $OUTPUT->show_message('errorsaving', 'error');
- $OUTPUT->send('iframe');
+ if ($savedraft) {
+ $OUTPUT->show_message('errorsaving', 'error');
+ $OUTPUT->send('iframe');
+ }
}
if ($olddraftmessageid)
{
// delete previous saved draft
- $a_deleteid = $IMAP->search($CONFIG['drafts_mbox'],'HEADER Message-ID',$olddraftmessageid);
- $deleted = $IMAP->delete_message($IMAP->get_uid($a_deleteid[0],$CONFIG['drafts_mbox']),$CONFIG['drafts_mbox']);
+ $a_deleteid = $IMAP->search($CONFIG['drafts_mbox'], 'HEADER Message-ID '.$olddraftmessageid);
+
+ $deleted = $IMAP->delete_message($IMAP->get_uid($a_deleteid[0], $CONFIG['drafts_mbox']), $CONFIG['drafts_mbox']);
// raise error if deletion of old draft failed
if (!$deleted)
if ($savedraft)
{
+ $msgid = strtr($message_id, array('>' => '', '<' => ''));
+
+ // remember new draft-uid
+ $draftids = $IMAP->search($CONFIG['drafts_mbox'], 'HEADER Message-ID '.$msgid);
+ $_SESSION['compose']['param']['_draft_uid'] = $IMAP->get_uid($draftids[0], $CONFIG['drafts_mbox']);
+
// display success
$OUTPUT->show_message('messagesaved', 'confirmation');
// update "_draft_saveid" and the "cmp_hash" to prevent "Unsaved changes" warning
- $OUTPUT->command('set_draft_id', str_replace(array('<','>'), "", $message_id));
+ $OUTPUT->command('set_draft_id', $msgid);
$OUTPUT->command('compose_field_hash', true);
// start the auto-save timer again
}
else
{
- if ($CONFIG['smtp_log'])
- {
- $log_entry = sprintf(
- "[%s] User: %d on %s; Message for %s; %s\n",
- date("d-M-Y H:i:s O", mktime()),
- $_SESSION['user_id'],
- $_SERVER['REMOTE_ADDR'],
- $mailto,
- !empty($smtp_response) ? join('; ', $smtp_response) : '');
-
- if ($fp = @fopen($CONFIG['log_dir'].'/sendmail', 'a'))
- {
- fwrite($fp, $log_entry);
- fclose($fp);
- }
- }
-
rcmail_compose_cleanup();
- $OUTPUT->command('sent_successfully', rcube_label('messagesent'));
+
+ if ($store_folder && !$saved)
+ $OUTPUT->command('sent_successfully', 'error', rcube_label('errorsavingsent'));
+ else
+ $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent'));
$OUTPUT->send('iframe');
}
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: show.inc 1400 2008-05-17 17:46:43Z thomasb $
+ $Id: show.inc 2115 2008-12-04 10:21:34Z alec $
*/
// similar code as in program/steps/mail/get.inc
if ($_GET['_uid']) {
$MESSAGE = new rcube_message(get_input_value('_uid', RCUBE_INPUT_GET));
-
+
// set message charset as default
if (!empty($MESSAGE->headers->charset))
$IMAP->set_charset($MESSAGE->headers->charset);
// go back to list if message not found (wrong UID)
if (empty($MESSAGE->headers)) {
$OUTPUT->show_message('messageopenerror', 'error');
- if ($RCMAIL->action=='preview' && template_exists('messagepreview'))
+ if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messagepreview'))
$OUTPUT->send('messagepreview');
else {
- $RCMAIL->action = 'list';
+ rcmail_overwrite_action('');
return;
}
}
$mbox_name = $IMAP->get_mailbox_name();
+ // show images?
+ $show_images = $RCMAIL->config->get('show_images');
+ if(!$MESSAGE->is_safe
+ && !empty($show_images)
+ && $MESSAGE->has_html_part())
+ {
+ switch($show_images) {
+ case '1': // known senders only
+ $CONTACTS = new rcube_contacts($DB, $_SESSION['user_id']);
+ if ($CONTACTS->search('email', $MESSAGE->sender['mailto'], true, false)->count) {
+ $MESSAGE->set_safe(true);
+ }
+ break;
+ case '2': // always
+ $MESSAGE->set_safe(true);
+ break;
+ }
+ }
+
// calculate Etag for this request
- $etag = md5($MESSAGE->uid.$mbox_name.session_id().intval($MESSAGE->headers->mdn_sent).intval($MESSAGE->is_safe).intval($PRINT_MODE));
+ $etag = md5($MESSAGE->uid.$mbox_name.session_id()
+ .intval($MESSAGE->headers->mdn_sent)
+ .intval($MESSAGE->is_safe)
+ .(!empty($MESSAGE->attachments) ? intval($CONFIG['inline_images']) : '')
+ .intval($PRINT_MODE));
// allow caching, unless remote images are present
if ((bool)$MESSAGE->is_safe)
$OUTPUT->set_pagetitle($MESSAGE->subject);
- // mark message as read
- if (!$MESSAGE->headers->seen)
- {
- $marked = $IMAP->set_flag($MESSAGE->uid, 'SEEN');
- if($RCMAIL->action == 'preview' && $marked != -1)
- {
- $OUTPUT->command('set_unread_count_from_preview', $mbox_name, $IMAP->messagecount($mbox_name, 'UNSEEN'), ($mbox_name == 'INBOX'));
- $OUTPUT->command('mark_as_read_from_preview', $MESSAGE->uid);
- }
- }
-
// give message uid to the client
$OUTPUT->set_env('uid', $MESSAGE->uid);
+ // set environement
$OUTPUT->set_env('safemode', $MESSAGE->is_safe);
-
+ $OUTPUT->set_env('sender', $MESSAGE->sender['string']);
+ $OUTPUT->set_env('permaurl', rcmail_url('show', array('_uid' => $MESSAGE->uid, '_mbox' => $mbox_name)));
+ $OUTPUT->set_env('mailbox', $mbox_name);
+ if ($CONFIG['trash_mbox'])
+ $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']);
+ if (!$OUTPUT->ajax_call)
+ $OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash', 'movingmessage');
+
// check for unset disposition notification
- if ($MESSAGE->headers->mdn_to && !$MESSAGE->headers->mdn_sent &&
- $mbox_name != $CONFIG['drafts_mbox'] && $mbox_name != $CONFIG['sent_mbox'])
+ if ($MESSAGE->headers->mdn_to &&
+ !$MESSAGE->headers->mdn_sent && !$MESSAGE->headers->seen &&
+ $IMAP->check_permflag('MDNSENT') &&
+ $mbox_name != $CONFIG['drafts_mbox'] &&
+ $mbox_name != $CONFIG['sent_mbox'])
{
if (intval($CONFIG['mdn_requests']) === 1)
{
if (rcmail_send_mdn($MESSAGE->uid))
$OUTPUT->show_message('receiptsent', 'confirmation');
+ else
+ $OUTPUT->show_message('errorsendingreceipt', 'error');
}
else if (empty($CONFIG['mdn_requests']))
{
- rcube_add_label('mdnrequest');
+ $OUTPUT->add_label('mdnrequest');
$OUTPUT->set_env('mdn_request', true);
}
}
-
- $next = $prev = $first = $last = -1;
// get previous, first, next and last message UID
- if ((!($_SESSION['sort_col'] == 'date' && $_SESSION['sort_order'] == 'DESC') &&
- $IMAP->get_capability('sort')) || !empty($_REQUEST['_search']))
- {
- // Only if we use custom sorting
- $a_msg_index = $IMAP->message_index(NULL, $_SESSION['sort_col'], $_SESSION['sort_order']);
-
- $MESSAGE->index = array_search((string)$MESSAGE->uid, $a_msg_index, TRUE);
- $prev = isset($a_msg_index[$MESSAGE->index-1]) ? $a_msg_index[$MESSAGE->index-1] : -1 ;
- $first = count($a_msg_index)>0 ? $a_msg_index[0] : -1;
- $next = isset($a_msg_index[$MESSAGE->index+1]) ? $a_msg_index[$MESSAGE->index+1] : -1 ;
- $last = count($a_msg_index)>0 ? $a_msg_index[count($a_msg_index)-1] : -1;
- }
- else
+ if ($RCMAIL->action != 'preview' && $RCMAIL->action != 'print')
{
- // this assumes that we are sorted by date_DESC
- $seq = $IMAP->get_id($MESSAGE->uid);
- $prev = $IMAP->get_uid($seq + 1);
- $first = $IMAP->get_uid($IMAP->messagecount());
- $next = $IMAP->get_uid($seq - 1);
- $last = $IMAP->get_uid(1);
- $MESSAGE->index = $IMAP->messagecount() - $seq;
+ $next = $prev = $first = $last = -1;
+
+ if ((!($_SESSION['sort_col'] == 'date' && $_SESSION['sort_order'] == 'DESC') &&
+ $IMAP->get_capability('sort')) || !empty($_REQUEST['_search']))
+ {
+ // Only if we use custom sorting
+ $a_msg_index = $IMAP->message_index(NULL, $_SESSION['sort_col'], $_SESSION['sort_order']);
+
+ $MESSAGE->index = array_search($IMAP->get_id($MESSAGE->uid), $a_msg_index);
+
+ $prev = isset($a_msg_index[$MESSAGE->index-1]) ? $IMAP->get_uid($a_msg_index[$MESSAGE->index-1]) : -1 ;
+ $first = count($a_msg_index)>0 ? $IMAP->get_uid($a_msg_index[0]) : -1;
+ $next = isset($a_msg_index[$MESSAGE->index+1]) ? $IMAP->get_uid($a_msg_index[$MESSAGE->index+1]) : -1 ;
+ $last = count($a_msg_index)>0 ? $IMAP->get_uid($a_msg_index[count($a_msg_index)-1]) : -1;
+ }
+ else
+ {
+ // this assumes that we are sorted by date_DESC
+ $cnt = $IMAP->messagecount();
+ $seq = $IMAP->get_id($MESSAGE->uid);
+ $MESSAGE->index = $cnt - $seq;
+
+ $prev = $IMAP->get_uid($seq + 1);
+ $first = $IMAP->get_uid($cnt);
+ $next = $IMAP->get_uid($seq - 1);
+ $last = $IMAP->get_uid(1);
+ }
+
+ if ($prev > 0)
+ $OUTPUT->set_env('prev_uid', $prev);
+ if ($first > 0)
+ $OUTPUT->set_env('first_uid', $first);
+ if ($next > 0)
+ $OUTPUT->set_env('next_uid', $next);
+ if ($last > 0)
+ $OUTPUT->set_env('last_uid', $last);
}
-
- if ($prev > 0)
- $OUTPUT->set_env('prev_uid', $prev);
- if ($first >0)
- $OUTPUT->set_env('first_uid', $first);
- if ($next > 0)
- $OUTPUT->set_env('next_uid', $next);
- if ($last >0)
- $OUTPUT->set_env('last_uid', $last);
+
+ // mark message as read
+ if (!$MESSAGE->headers->seen)
+ $IMAP->set_flag($MESSAGE->uid, 'SEEN');
}
$ol .= html::tag('li', null, sprintf("%s (%s)", Q($attach_prop->filename), Q(show_bytes($attach_prop->size))));
}
else {
+ if (rc_strlen($attach_prop->filename) > 50) {
+ $filename = abbreviate_string($attach_prop->filename, 50);
+ $title = $attach_prop->filename;
+ }
+ else {
+ $filename = $attach_prop->filename;
+ $title = '';
+ }
+
$ol .= html::tag('li', null,
html::a(array(
'href' => $MESSAGE->get_part_url($attach_prop->mime_id),
JS_OBJECT_NAME,
$attach_prop->mime_id,
$attach_prop->mimetype),
+ 'title' => Q($title),
),
- Q($attach_prop->filename)));
+ Q($filename)));
}
}
function rcmail_remote_objects_msg($attrib)
- {
- global $CONFIG, $OUTPUT;
+{
+ global $MESSAGE, $RCMAIL;
if (!$attrib['id'])
$attrib['id'] = 'rcmremoteobjmsg';
-
- // allow the following attributes to be added to the <div> tag
- $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id'));
- $out = '<div' . $attrib_str . ">";
-
- $out .= sprintf('%s <a href="#loadimages" onclick="%s.command(\'load-images\')">%s</a>',
- Q(rcube_label('blockedimages')),
- JS_OBJECT_NAME,
- Q(rcube_label('showimages')));
- $out .= '</div>';
+ $msg = Q(rcube_label('blockedimages')) . ' ';
+ $msg .= html::a(array('href' => "#loadimages", 'onclick' => JS_OBJECT_NAME.".command('load-images')"), Q(rcube_label('showimages')));
- $OUTPUT->add_gui_object('remoteobjectsmsg', $attrib['id']);
- return $out;
+ // add link to save sender in addressbook and reload message
+ if ($MESSAGE->sender['mailto'] && $RCMAIL->config->get('show_images') == 1) {
+ $msg .= ' ' . html::a(array('href' => "#alwaysload", 'onclick' => JS_OBJECT_NAME.".command('always-load')", 'style' => "white-space:nowrap"),
+ Q(rcube_label(array('name' => 'alwaysshow', 'vars' => array('sender' => $MESSAGE->sender['mailto'])))));
}
+
+ $RCMAIL->output->add_gui_object('remoteobjectsmsg', $attrib['id']);
+ return html::div($attrib, $msg);
+}
$OUTPUT->add_handlers(array(
'messageattachments' => 'rcmail_message_attachments',
+ 'mailboxname' => 'rcmail_mailbox_name_display',
'blockedobjects' => 'rcmail_remote_objects_msg'));
-if ($RCMAIL->action=='print' && template_exists('printmessage'))
+if ($RCMAIL->action=='print' && $OUTPUT->template_exists('printmessage'))
$OUTPUT->send('printmessage');
-else if ($RCMAIL->action=='preview' && template_exists('messagepreview'))
- $OUTPUT->send('messagepreview');
+else if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messagepreview'))
+ $OUTPUT->send('messagepreview');
else
$OUTPUT->send('message');
?>
| program/steps/mail/spell.inc |
| |
| This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
| Licensed under the GNU GPL |
| |
| PURPOSE: |
- | Submit request to Google's spell checking engine |
- | |
- | CREDITS: |
- | Script from GoogieSpell by amix.dk |
+ | Invoke the configured or default spell checking engine. |
| |
+-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com> |
+ | Author: Kris Steinhoff <steinhof@umich.edu> |
+-----------------------------------------------------------------------+
- $Id: spell.inc 850 2007-10-03 00:13:32Z ihug $
+ $Id$
*/
-$REMOTE_REQUEST = TRUE;
-
-// default settings
-$host = "ssl://www.google.com";
-$port = 443;
-$lang = get_input_value('lang', RCUBE_INPUT_GET);
-$path = "/tbproxy/spell?lang=$lang";
-
-// spell check uri is configured
-if (!empty($CONFIG['spellcheck_uri']))
- {
- $a_uri = parse_url($CONFIG['spellcheck_uri']);
- $ssl = ($a_uri['scheme']=='https' || $a_uri['scheme']=='ssl');
- $port = $a_uri['port'] ? $a_uri['port'] : ($ssl ? 443 : 80);
- $host = ($ssl ? 'ssl://' : '') . $a_uri['host'];
- $path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '') . $lang;
- }
-
-$data = file_get_contents('php://input');
-$store = "";
-
-if ($fp = fsockopen($host, $port, $errno, $errstr, 30))
- {
- $out = "POST $path HTTP/1.0\r\n";
- $out .= "Host: $host\r\n";
- $out .= "Content-Length: " . strlen($data) . "\r\n";
- $out .= "Content-type: application/x-www-form-urlencoded\r\n";
- $out .= "Connection: Close\r\n\r\n";
- $out .= $data;
- fwrite($fp, $out);
-
- while (!feof($fp))
- $store .= fgets($fp, 128);
- fclose($fp);
- }
+if ($spell_engine = $RCMAIL->config->get('spellcheck_engine', 'googie')) {
+ include('spell_'.$spell_engine.'.inc');
+}
-print $store;
+header('HTTP/1.1 404 Not Found');
exit;
?>
--- /dev/null
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/mail/spell.inc |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Submit request to Google's spell checking engine |
+ | |
+ | CREDITS: |
+ | Script from GoogieSpell by amix.dk |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Thomas Bruederli <roundcube@gmail.com> |
+ +-----------------------------------------------------------------------+
+
+ $Id: spell_googie.inc 1649 2008-08-15 10:35:09Z thomasb $
+
+*/
+
+$REMOTE_REQUEST = TRUE;
+
+// default settings
+$host = "ssl://www.google.com";
+$port = 443;
+$lang = get_input_value('lang', RCUBE_INPUT_GET);
+$path = "/tbproxy/spell?lang=$lang";
+
+// spell check uri is configured
+if (!empty($CONFIG['spellcheck_uri']))
+ {
+ $a_uri = parse_url($CONFIG['spellcheck_uri']);
+ $ssl = ($a_uri['scheme']=='https' || $a_uri['scheme']=='ssl');
+ $port = $a_uri['port'] ? $a_uri['port'] : ($ssl ? 443 : 80);
+ $host = ($ssl ? 'ssl://' : '') . $a_uri['host'];
+ $path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '') . $lang;
+ }
+
+$data = file_get_contents('php://input');
+$store = "";
+
+if ($fp = fsockopen($host, $port, $errno, $errstr, 30))
+ {
+ $out = "POST $path HTTP/1.0\r\n";
+ $out .= "Host: $host\r\n";
+ $out .= "Content-Length: " . strlen($data) . "\r\n";
+ $out .= "Content-type: application/x-www-form-urlencoded\r\n";
+ $out .= "Connection: Close\r\n\r\n";
+ $out .= $data;
+ fwrite($fp, $out);
+
+ while (!feof($fp))
+ $store .= fgets($fp, 128);
+ fclose($fp);
+ }
+
+print $store;
+exit;
+
+?>
--- /dev/null
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | program/steps/mail/spell_pspell.inc |
+ | |
+ | This file is part of the RoundCube Webmail client |
+ | Licensed under the GNU GPL |
+ | |
+ | PURPOSE: |
+ | Use the Pspell extension to check spelling, returns results |
+ | compatible with spell_googie.inc. |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Kris Steinhoff <steinhof@umich.edu> |
+ +-----------------------------------------------------------------------+
+
+ $Id$
+
+*/
+
+if (!extension_loaded('pspell')) {
+ raise_error(array(
+ 'code' => 500,
+ 'file' => __FILE__,
+ 'message' => "Pspell extension not available"), true, false);
+
+ header('HTTP/1.1 404 Not Found');
+ exit;
+}
+
+// read input
+$data = file_get_contents('php://input');
+
+// parse data (simplexml_load_string breaks CRLFs)
+$left = strpos($data, '<text>');
+$right = strrpos($data, '</text>');
+$text = substr($data, $left+6, $right-($left+6));
+
+// tokenize
+$words = preg_split('/[ !"#$%&()*+\\,-.\/\n:;<=>?@\[\]^_{|}]+/', $text, NULL, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE );
+
+// init spellchecker
+$plink = pspell_new(get_input_value('lang', RCUBE_INPUT_GET), null, null, 'utf-8', PSPELL_FAST);
+
+// send output
+$out = '<?xml version="1.0" encoding="UTF-8"?><spellresult charschecked="'.rc_strlen($text).'">';
+
+$diff = 0;
+foreach ($words as $w) {
+ $word = trim($w[0]);
+ $pos = $w[1] - $diff;
+ $len = rc_strlen($word);
+ if ($word && $plink && !pspell_check($plink, $word)) {
+ $suggestions = pspell_suggest($plink, $word);
+ $out .= '<c o="'.$pos.'" l="'.$len.'">';
+ $out .= implode("\t", $suggestions);
+ $out .= '</c>';
+ }
+ $diff += (strlen($word) - $len);
+}
+
+$out .= '</spellresult>';
+
+header("Content-Type: text/xml");
+echo $out;
+exit;
+
+?>
+++ /dev/null
-<?php
-
-/*
- +-----------------------------------------------------------------------+
- | program/steps/mail/upload.inc |
- | |
- | This file is part of the RoundCube Webmail client |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland |
- | Licensed under the GNU GPL |
- | |
- | PURPOSE: |
- | Handle file-upload and make them available as attachments |
- | |
- +-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com> |
- +-----------------------------------------------------------------------+
-
- $Id: upload.inc 1434 2008-05-27 14:58:04Z thomasb $
-
-*/
-
-
-if (!$_SESSION['compose']) {
- die("Invalid session var!");
-}
-
-
-// use common temp dir for file uploads
-$temp_dir = unslashify($CONFIG['temp_dir']);
-
-
-if (!is_array($_SESSION['compose']['attachments']))
- $_SESSION['compose']['attachments'] = array();
-
-
-// clear all stored output properties (like scripts and env vars)
-$OUTPUT->reset();
-
-if (is_array($_FILES['_attachments']['tmp_name']))
- {
- foreach ($_FILES['_attachments']['tmp_name'] as $i => $filepath)
- {
- $tmpfname = tempnam($temp_dir, 'rcmAttmnt');
- if (move_uploaded_file($filepath, $tmpfname))
- {
- $id = count($_SESSION['compose']['attachments']);
- $_SESSION['compose']['attachments'][] = array('name' => $_FILES['_attachments']['name'][$i],
- 'mimetype' => $_FILES['_attachments']['type'][$i],
- 'path' => $tmpfname);
-
- if (is_file($CONFIG['skin_path'] . '/images/icons/remove-attachment.png'))
- $button = sprintf(
- '<img src="%s/images/icons/remove-attachment.png" alt="%s" border="0" style="padding-right:2px;vertical-align:middle" />',
- $CONFIG['skin_path'],
- Q(rcube_label('delete')));
- else
- $button = Q(rcube_label('delete'));
-
- $content = sprintf(
- '<a href="#delete" onclick="return %s.command(\'remove-attachment\', \'rcmfile%d\', this)" title="%s">%s</a>%s',
- JS_OBJECT_NAME,
- $id,
- Q(rcube_label('delete')),
- $button,
- Q($_FILES['_attachments']['name'][$i]));
-
- $OUTPUT->command('add2attachment_list', "rcmfile$id", $content);
- }
- else // upload failed
- {
- $err = $_FILES['_attachments']['error'][$i];
- if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE)
- $msg = rcube_label(array('name' => 'filesizeerror', 'vars' => array('size' => show_bytes(parse_bytes(ini_get('upload_max_filesize'))))));
- else
- $msg = rcube_label('fileuploaderror');
-
- $OUTPUT->command('display_message', $msg, 'error');
- }
- }
- }
-else if ($_SERVER['REQUEST_METHOD'] == 'POST')
- {
- $OUTPUT->command('display_message', rcube_label('fileuploaderror'), 'error');
- }
-
-// send html page with JS calls as response
-$OUTPUT->command('show_attachment_form', false);
-$OUTPUT->command('auto_save_start', false);
-$OUTPUT->send('iframe');
-
-?>
\ No newline at end of file
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: delete_identity.inc 1035 2008-02-10 17:08:40Z till $
+ $Id: delete_identity.inc 2008 2008-10-24 08:30:52Z alec $
*/
if (($ids = get_input_value('_iid', RCUBE_INPUT_GET)) && preg_match('/^[0-9]+(,[0-9]+)*$/', $ids))
{
-
- if ($USER->delete_identity($ids))
- {
+ if ($USER->delete_identity($ids)) {
$OUTPUT->show_message('deletedsuccessfully', 'confirmation');
}
- else
- {
+ else {
$OUTPUT->show_message('nodeletelastidentity', 'error');
}
// send response
$OUTPUT->send();
}
-
if ($OUTPUT->ajax_call)
exit;
-
// go to identities page
rcmail_overwrite_action('identities');
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: edit_identity.inc 1412 2008-05-21 07:45:54Z alec $
+ $Id: edit_identity.inc 2040 2008-11-05 10:19:44Z alec $
*/
-$OUTPUT->set_pagetitle(rcube_label('identities'));
+define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0)));
-if (($_GET['_iid'] || $_POST['_iid']) && $RCMAIL->action=='edit-identity')
- {
+// edit-identity
+if (($_GET['_iid'] || $_POST['_iid']) && $RCMAIL->action=='edit-identity') {
$IDENTITY_RECORD = $USER->get_identity(get_input_value('_iid', RCUBE_INPUT_GPC));
if (is_array($IDENTITY_RECORD))
$OUTPUT->set_env('iid', $IDENTITY_RECORD['identity_id']);
+ else {
+ $OUTPUT->show_message('opnotpermitted', 'error');
+ // go to identities page
+ rcmail_overwrite_action('identities');
+ return;
}
-
-
-$OUTPUT->include_script('list.js');
+}
+// add-identity
+else {
+ if (IDENTITIES_LEVEL > 1) {
+ $OUTPUT->show_message('opnotpermitted', 'error');
+ // go to identities page
+ rcmail_overwrite_action('identities');
+ return;
+ }
+ else if (IDENTITIES_LEVEL == 1)
+ $IDENTITY_RECORD['email'] = rcmail_get_email();
+}
function rcube_identity_form($attrib)
{
global $IDENTITY_RECORD, $RCMAIL, $OUTPUT;
- $tinylang = substr($_SESSION['language'], 0, 2);
- if (!file_exists('program/js/tiny_mce/langs/'.$tinylang.'.js'))
- {
- $tinylang = 'en';
- }
-
- $OUTPUT->include_script('tiny_mce/tiny_mce.js');
- $OUTPUT->add_script("tinyMCE.init({ mode : 'textareas'," .
- "editor_selector : 'mce_editor'," .
- "apply_source_formatting : true," .
- "language : '$tinylang'," .
- "content_css : '\$__skin_path' + '/editor_content.css'," .
- "theme : 'advanced'," .
- "theme_advanced_toolbar_location : 'top'," .
- "theme_advanced_toolbar_align : 'left'," .
- "theme_advanced_buttons1 : 'bold,italic,underline,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,separator,outdent,indent,charmap,hr'," .
- "theme_advanced_buttons2 : 'link,unlink,code,forecolor,fontselect,fontsizeselect'," .
- "theme_advanced_buttons3 : '' });");
-
- if (!$IDENTITY_RECORD && $RCMAIL->action != 'add-identity')
- return rcube_label('notfound');
+ rcube_html_editor('identity');
// add some labels to client
- rcube_add_label('noemailwarning', 'nonamewarning');
+ $OUTPUT->add_label('noemailwarning', 'nonamewarning', 'converting', 'editorwarning');
+ $i_size = !empty($attrib['size']) ? $attrib['size'] : 40;
+ $t_rows = !empty($attrib['textarearows']) ? $attrib['textarearows'] : 6;
+ $t_cols = !empty($attrib['textareacols']) ? $attrib['textareacols'] : 40;
list($form_start, $form_end) = get_form_tags($attrib, 'save-identity', array('name' => '_iid', 'value' => $IDENTITY_RECORD['identity_id']));
unset($attrib['form']);
-
// list of available cols
- $a_show_cols = array('name' => array('type' => 'text'),
- 'email' => array('type' => 'text'),
- 'organization' => array('type' => 'text'),
- 'reply-to' => array('type' => 'text', 'label' => 'replyto'),
- 'bcc' => array('type' => 'text'),
- 'signature' => array('type' => 'textarea', 'size' => "40", 'rows' => "6"),
- 'html_signature'=>array('type' => 'checkbox', 'label' => 'htmlsignature', 'onclick' => 'return rcmail.toggle_editor(this, \'rcmfd_signature\');'),
+ $a_show_cols = array('name' => array('type' => 'text', 'size' => $i_size),
+ 'email' => array('type' => 'text', 'size' => $i_size),
+ 'organization' => array('type' => 'text', 'size' => $i_size),
+ 'reply-to' => array('type' => 'text', 'label' => 'reply-to', 'size' => $i_size),
+ 'bcc' => array('type' => 'text', 'size' => $i_size),
+ 'signature' => array('type' => 'textarea', 'size' => $t_cols, 'rows' => $t_rows),
+ 'html_signature'=>array('type' => 'checkbox', 'label' => 'htmlsignature', 'onclick' => 'return rcmail_toggle_editor(this.checked, \'rcmfd_signature\');'),
'standard' => array('type' => 'checkbox', 'label' => 'setdefault'));
-
+ // disable some field according to access level
+ if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3) {
+ $a_show_cols['email']['disabled'] = true;
+ $a_show_cols['email']['class'] = 'disabled';
+ }
+
// a specific part is requested
if ($attrib['part'])
{
if (is_array($colprop))
{
$out = $form_start;
- $out .= rcmail_get_edit_field($attrib['part'], $IDENTITY_RECORD[$attrib['part']], $attrib + array('size' => 30), $colprop['type']);
+ $out .= rcmail_get_edit_field($attrib['part'], $IDENTITY_RECORD[$attrib['part']], $attrib, $colprop['type']);
return $out;
}
else
foreach ($a_show_cols as $col => $colprop)
{
- $attrib['id'] = 'rcmfd_'.$col;
-
- if (strlen($colprop['onclick']))
- $attrib['onclick'] = $colprop['onclick'];
- else
- unset($attrib['onclick']);
+ $colprop['id'] = 'rcmfd_'.$col;
if ($col == 'signature')
{
- $attrib['size'] = $colprop['size'];
- $attrib['rows'] = $colprop['rows'];
+ $colprop['spellcheck'] = true;
if ($IDENTITY_RECORD['html_signature'])
{
- $attrib['class'] = "mce_editor";
+ $colprop['class'] = 'mce_editor';
}
}
- else
- {
- $attrib['size'] = 40;
- unset($attrib['rows']);
- }
$label = strlen($colprop['label']) ? $colprop['label'] : $col;
- $value = rcmail_get_edit_field($col, $IDENTITY_RECORD[$col], $attrib, $colprop['type']);
+ $value = rcmail_get_edit_field($col, $IDENTITY_RECORD[$col], $colprop, $colprop['type']);
$out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $attrib['id'],
+ $colprop['id'],
Q(rcube_label($label)),
$value);
}
return $out;
}
+$OUTPUT->include_script('list.js');
$OUTPUT->add_handler('identityform', 'rcube_identity_form');
+$OUTPUT->set_env('identities_level', IDENTITIES_LEVEL);
-if ($RCMAIL->action=='add-identity' && template_exists('addidentity'))
+$OUTPUT->set_pagetitle(rcube_label(($RCMAIL->action=='add-identity' ? 'newidentity' : 'edititem')));
+
+if ($RCMAIL->action=='add-identity' && $OUTPUT->template_exists('addidentity'))
$OUTPUT->send('addidentity');
$OUTPUT->send('editidentity');
+
?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: func.inc 1448 2008-05-29 07:36:53Z alec $
+ $Id: func.inc 2164 2008-12-16 19:05:50Z thomasb $
*/
if (!$OUTPUT->ajax_call)
$OUTPUT->set_pagetitle(rcube_label('preferences'));
-
function rcmail_user_prefs_form($attrib)
- {
+{
global $RCMAIL;
- $config = $RCMAIL->config->all();
- $no_override = is_array($config['dont_override']) ? array_flip($config['dont_override']) : array();
+ $no_override = array_flip($RCMAIL->config->get('dont_override', array()));
+ $blocks = $attrib['parts'] ? preg_split('/[\s,;]+/', strip_quotes($attrib['parts'])) : array('general','mailbox','compose','mailview','folders','server');
// add some labels to client
- rcube_add_label('nopagesizewarning');
+ $RCMAIL->output->add_label('nopagesizewarning');
list($form_start, $form_end) = get_form_tags($attrib, 'save-prefs');
unset($attrib['form']);
- // allow the following attributes to be added to the <table> tag
- $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id', 'cellpadding', 'cellspacing', 'border', 'summary'));
-
- // return the complete edit form as tables
- $out = "$form_start<fieldset><legend>" . Q(rcube_label('uisettings')) . "</legend>\n<table" . $attrib_str . ">\n\n";
-
- // show language selection
- if (!isset($no_override['language']))
- {
- $a_lang = $RCMAIL->list_languages();
- asort($a_lang);
+ $out = $form_start;
- $field_id = 'rcmfd_lang';
- $select_lang = new html_select(array('name' => '_language', 'id' => $field_id));
- $select_lang->add(array_values($a_lang), array_keys($a_lang));
+ foreach ($blocks as $part)
+ $out .= rcmail_user_prefs_block($part, $no_override, $attrib);
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('language')),
- $select_lang->show($_SESSION['language']));
+ return $out . $form_end;
+}
+
+function rcmail_user_prefs_block($part, $no_override, $attrib)
+{
+ global $RCMAIL;
+ $config = $RCMAIL->config->all();
+
+ switch ($part)
+ {
+ // General UI settings
+ case 'general':
+ $table = new html_table(array('cols' => 2));
+
+ // show language selection
+ if (!isset($no_override['language'])) {
+ $a_lang = $RCMAIL->list_languages();
+ asort($a_lang);
+
+ $field_id = 'rcmfd_lang';
+ $select_lang = new html_select(array('name' => '_language', 'id' => $field_id));
+ $select_lang->add(array_values($a_lang), array_keys($a_lang));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('language'))));
+ $table->add(null, $select_lang->show($RCMAIL->user->language));
}
+ // show page size selection
+ if (!isset($no_override['timezone'])) {
+ $field_id = 'rcmfd_timezone';
+ $select_timezone = new html_select(array('name' => '_timezone', 'id' => $field_id, 'onchange' => "document.getElementById('rcmfd_dst').disabled=this.selectedIndex==0"));
+ $select_timezone->add(rcube_label('autodetect'), 'auto');
+ $select_timezone->add('(GMT -11:00) Midway Island, Samoa', '-11');
+ $select_timezone->add('(GMT -10:00) Hawaii', '-10');
+ $select_timezone->add('(GMT -9:30) Marquesas Islands', '-9.5');
+ $select_timezone->add('(GMT -9:00) Alaska', '-9');
+ $select_timezone->add('(GMT -8:00) Pacific Time (US/Canada)', '-8');
+ $select_timezone->add('(GMT -7:00) Mountain Time (US/Canada)', '-7');
+ $select_timezone->add('(GMT -6:00) Central Time (US/Canada), Mexico City', '-6');
+ $select_timezone->add('(GMT -5:00) Eastern Time (US/Canada), Bogota, Lima', '-5');
+ $select_timezone->add('(GMT -4:30) Caracas', '-4.5');
+ $select_timezone->add('(GMT -4:00) Atlantic Time (Canada), La Paz', '-4');
+ $select_timezone->add('(GMT -3:30) Nfld Time (Canada), Nfld, S. Labador', '-3.5');
+ $select_timezone->add('(GMT -3:00) Brazil, Buenos Aires, Georgetown', '-3');
+ $select_timezone->add('(GMT -2:00) Mid-Atlantic', '-2');
+ $select_timezone->add('(GMT -1:00) Azores, Cape Verde Islands', '-1');
+ $select_timezone->add('(GMT) Western Europe, London, Lisbon, Casablanca', '0');
+ $select_timezone->add('(GMT +1:00) Central European Time', '1');
+ $select_timezone->add('(GMT +2:00) EET: Kaliningrad, South Africa', '2');
+ $select_timezone->add('(GMT +3:00) Baghdad, Kuwait, Riyadh, Moscow, Nairobi', '3');
+ $select_timezone->add('(GMT +3:30) Tehran', '3.5');
+ $select_timezone->add('(GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi', '4');
+ $select_timezone->add('(GMT +4:30) Kabul', '4.5');
+ $select_timezone->add('(GMT +5:00) Ekaterinburg, Islamabad, Karachi', '5');
+ $select_timezone->add('(GMT +5:30) Chennai, Kolkata, Mumbai, New Delhi', '5.5');
+ $select_timezone->add('(GMT +5:45) Kathmandu', '5.75');
+ $select_timezone->add('(GMT +6:00) Almaty, Dhaka, Colombo', '6');
+ $select_timezone->add('(GMT +6:30) Cocos Islands, Myanmar', '6.5');
+ $select_timezone->add('(GMT +7:00) Bangkok, Hanoi, Jakarta', '7');
+ $select_timezone->add('(GMT +8:00) Beijing, Perth, Singapore, Taipei', '8');
+ $select_timezone->add('(GMT +8:45) Caiguna, Eucla, Border Village', '8.75');
+ $select_timezone->add('(GMT +9:00) Tokyo, Seoul, Yakutsk', '9');
+ $select_timezone->add('(GMT +9:30) Adelaide, Darwin', '9.5');
+ $select_timezone->add('(GMT +10:00) EAST/AEST: Sydney, Guam, Vladivostok', '10');
+ $select_timezone->add('(GMT +10:30) New South Wales', '10.5');
+ $select_timezone->add('(GMT +11:00) Magadan, Solomon Islands', '11');
+ $select_timezone->add('(GMT +11:30) Norfolk Island', '11.5');
+ $select_timezone->add('(GMT +12:00) Auckland, Wellington, Kamchatka', '12');
+ $select_timezone->add('(GMT +12:45) Chatham Islands', '12.75');
+ $select_timezone->add('(GMT +13:00) Tonga, Pheonix Islands', '13');
+ $select_timezone->add('(GMT +14:00) Kiribati', '14');
+
+ $table->add('title', html::label($field_id, Q(rcube_label('timezone'))));
+ $table->add(null, $select_timezone->show((string)$config['timezone']));
+ }
- // show page size selection
- if (!isset($no_override['timezone']))
- {
- $field_id = 'rcmfd_timezone';
- $select_timezone = new html_select(array('name' => '_timezone', 'id' => $field_id));
- $select_timezone->add('(GMT -11:00) Midway Island, Samoa', '-11');
- $select_timezone->add('(GMT -10:00) Hawaii', '-10');
- $select_timezone->add('(GMT -9:30) Marquesas Islands', '-9.5');
- $select_timezone->add('(GMT -9:00) Alaska', '-9');
- $select_timezone->add('(GMT -8:00) Pacific Time (US/Canada)', '-8');
- $select_timezone->add('(GMT -7:00) Mountain Time (US/Canada)', '-7');
- $select_timezone->add('(GMT -6:00) Central Time (US/Canada), Mexico City', '-6');
- $select_timezone->add('(GMT -5:00) Eastern Time (US/Canada), Bogota, Lima', '-5');
- $select_timezone->add('(GMT -4:30) Caracas', '-4.5');
- $select_timezone->add('(GMT -4:00) Atlantic Time (Canada), La Paz', '-4');
- $select_timezone->add('(GMT -3:30) Nfld Time (Canada), Nfld, S. Labador', '-3.5');
- $select_timezone->add('(GMT -3:00) Brazil, Buenos Aires, Georgetown', '-3');
- $select_timezone->add('(GMT -2:00) Mid-Atlantic', '-2');
- $select_timezone->add('(GMT -1:00) Azores, Cape Verde Islands', '-1');
- $select_timezone->add('(GMT) Western Europe, London, Lisbon, Casablanca', '0');
- $select_timezone->add('(GMT +1:00) Central European Time', '1');
- $select_timezone->add('(GMT +2:00) EET: Kaliningrad, South Africa', '2');
- $select_timezone->add('(GMT +3:00) Baghdad, Kuwait, Riyadh, Moscow, Nairobi', '3');
- $select_timezone->add('(GMT +3:30) Tehran', '3.5');
- $select_timezone->add('(GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi', '4');
- $select_timezone->add('(GMT +4:30) Kabul', '4.5');
- $select_timezone->add('(GMT +5:00) Ekaterinburg, Islamabad, Karachi', '5');
- $select_timezone->add('(GMT +5:30) Chennai, Kolkata, Mumbai, New Delhi', '5.5');
- $select_timezone->add('(GMT +5:45) Kathmandu', '5.75');
- $select_timezone->add('(GMT +6:00) Almaty, Dhaka, Colombo', '6');
- $select_timezone->add('(GMT +6:30) Cocos Islands, Myanmar', '6.5');
- $select_timezone->add('(GMT +7:00) Bangkok, Hanoi, Jakarta', '7');
- $select_timezone->add('(GMT +8:00) Beijing, Perth, Singapore, Taipei', '8');
- $select_timezone->add('(GMT +8:45) Caiguna, Eucla, Border Village', '8.75');
- $select_timezone->add('(GMT +9:00) Tokyo, Seoul, Yakutsk', '9');
- $select_timezone->add('(GMT +9:30) Adelaide, Darwin', '9.5');
- $select_timezone->add('(GMT +10:00) EAST/AEST: Sydney, Guam, Vladivostok', '10');
- $select_timezone->add('(GMT +10:30) New South Wales', '10.5');
- $select_timezone->add('(GMT +11:00) Magadan, Solomon Islands', '11');
- $select_timezone->add('(GMT +11:30) Norfolk Island', '11.5');
- $select_timezone->add('(GMT +12:00) Auckland, Wellington, Kamchatka', '12');
- $select_timezone->add('(GMT +12:45) Chatham Islands', '12.75');
- $select_timezone->add('(GMT +13:00) Tonga, Pheonix Islands', '13');
- $select_timezone->add('(GMT +14:00) Kiribati', '14');
-
-
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('timezone')),
- $select_timezone->show((string)$config['timezone']));
+ // daylight savings
+ if (!isset($no_override['dst_active'])) {
+ $field_id = 'rcmfd_dst';
+ $input_dst = new html_checkbox(array('name' => '_dst_active', 'id' => $field_id, 'value' => 1, 'disabled' => ($config['timezone'] === 'auto')));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('dstactive'))));
+ $table->add(null, $input_dst->show($config['dst_active']));
}
- // daylight savings
- if (!isset($no_override['dst_active']))
- {
- $field_id = 'rcmfd_dst';
- $input_dst = new html_checkbox(array('name' => '_dst_active', 'id' => $field_id, 'value' => 1));
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('dstactive')),
- $input_dst->show($config['dst_active']));
+ // MM: Show checkbox for toggling 'pretty dates'
+ if (!isset($no_override['prettydate'])) {
+ $field_id = 'rcmfd_prettydate';
+ $input_prettydate = new html_checkbox(array('name' => '_pretty_date', 'id' => $field_id, 'value' => 1));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('prettydate'))));
+ $table->add(null, $input_prettydate->show($config['prettydate']?1:0));
}
- // show page size selection
- if (!isset($no_override['pagesize']))
- {
- $field_id = 'rcmfd_pgsize';
- $input_pagesize = new html_inputfield(array('name' => '_pagesize', 'id' => $field_id, 'size' => 5));
+ // show page size selection
+ if (!isset($no_override['pagesize'])) {
+ $field_id = 'rcmfd_pgsize';
+ $input_pagesize = new html_inputfield(array('name' => '_pagesize', 'id' => $field_id, 'size' => 5));
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('pagesize')),
- $input_pagesize->show($config['pagesize']));
+ $table->add('title', html::label($field_id, Q(rcube_label('pagesize'))));
+ $table->add(null, $input_pagesize->show($config['pagesize']));
}
- // MM: Show checkbox for toggling 'pretty dates'
- if (!isset($no_override['prettydate']))
- {
- $field_id = 'rcmfd_prettydate';
- $input_prettydate = new html_checkbox(array('name' => '_pretty_date', 'id' => $field_id, 'value' => 1));
+ // show drop-down for available skins
+ if (!isset($no_override['skin'])) {
+ $skins = rcmail_get_skins();
+
+ if (count($skins) > 1) {
+ $field_id = 'rcmfd_skin';
+ $input_skin = new html_select(array('name'=>'_skin', 'id'=>$field_id));
+
+ foreach($skins as $skin)
+ $input_skin->add($skin, $skin);
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('prettydate')),
- $input_prettydate->show($config['prettydate']?1:0));
+ $table->add('title', html::label($field_id, Q(rcube_label('skin'))));
+ $table->add(null, $input_skin->show($config['skin']));
+ }
}
+
+ if ($table->size())
+ $out = html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('uisettings'))) . $table->show($attrib));
+ break;
- // show checkbox for HTML/plaintext messages
- if (!isset($no_override['prefer_html']))
- {
- $field_id = 'rcmfd_htmlmsg';
- $input_pagesize = new html_checkbox(array('name' => '_prefer_html', 'id' => $field_id, 'value' => 1));
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('preferhtml')),
- $input_pagesize->show($config['prefer_html']?1:0));
+ // Mailbox view (mail screen)
+ case 'mailbox':
+ $table = new html_table(array('cols' => 2));
+
+ if (!isset($no_override['focus_on_new_message'])) {
+ $field_id = 'rcmfd_focus_on_new_message';
+ $input_focus_on_new_message = new html_checkbox(array('name' => '_focus_on_new_message', 'id' => $field_id, 'value' => 1));
+ $table->add('title', html::label($field_id, Q(rcube_label('focusonnewmessage'))));
+ $table->add(null, $input_focus_on_new_message->show($config['focus_on_new_message']?1:0));
}
- // Show checkbox for HTML Editor
- if (!isset($no_override['htmleditor']))
- {
- $field_id = 'rcmfd_htmleditor';
- $input_htmleditor = new html_checkbox(array('name' => '_htmleditor', 'id' => $field_id, 'value' => 1));
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('htmleditor')),
- $input_htmleditor->show($config['htmleditor']?1:0));
+ // show config parameter for preview pane
+ if (!isset($no_override['preview_pane'])) {
+ $field_id = 'rcmfd_preview';
+ $input_preview = new html_checkbox(array('name' => '_preview_pane', 'id' => $field_id, 'value' => 1));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('previewpane'))));
+ $table->add(null, $input_preview->show($config['preview_pane']?1:0));
}
+ if (!isset($no_override['mdn_requests'])) {
+ $field_id = 'rcmfd_mdn_requests';
+ $select_mdn_requests = new html_select(array('name' => '_mdn_requests', 'id' => $field_id));
+ $select_mdn_requests->add(rcube_label('askuser'), 0);
+ $select_mdn_requests->add(rcube_label('autosend'), 1);
+ $select_mdn_requests->add(rcube_label('ignore'), 2);
- if (!isset($no_override['mdn_requests']))
- {
- $field_id = 'rcmfd_mdn_requests';
- $select_mdn_requests = new html_select(array('name' => '_mdn_requests', 'id' => $field_id));
- $select_mdn_requests->add(rcube_label('askuser'), 0);
- $select_mdn_requests->add(rcube_label('autosend'), 1);
- $select_mdn_requests->add(rcube_label('ignore'), 2);
-
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('mdnrequests')),
- $select_mdn_requests->show($config['mdn_requests']));
+ $table->add('title', html::label($field_id, Q(rcube_label('mdnrequests'))));
+ $table->add(null, $select_mdn_requests->show($config['mdn_requests']));
}
- $out .= "</table></fieldset>\n<fieldset><legend>" . Q(rcube_label('mailboxview')) . "</legend>\n<table" . $attrib_str . ">\n\n";
+ if (!isset($no_override['keep_alive'])) {
+ $field_id = 'rcmfd_keep_alive';
+ $select_keep_alive = new html_select(array('name' => '_keep_alive', 'id' => $field_id));
- // show config parameter for preview pane
- if (!isset($no_override['preview_pane']))
- {
- $field_id = 'rcmfd_preview';
- $input_preview = new html_checkbox(array('name' => '_preview_pane', 'id' => $field_id, 'value' => 1));
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('previewpane')),
- $input_preview->show($config['preview_pane']?1:0));
+ foreach(array(1, 3, 5, 10, 15, 30, 60) as $min)
+ if((!$config['min_keep_alive'] || $config['min_keep_alive'] <= $min * 60)
+ && (!$config['session_lifetime'] || $config['session_lifetime'] > $min)) {
+ $select_keep_alive->add(rcube_label(array('name' => 'keepaliveevery', 'vars' => array('n' => $min))), $min);
+ }
+
+ $table->add('title', html::label($field_id, Q(rcube_label('keepalive'))));
+ $table->add(null, $select_keep_alive->show($config['keep_alive']/60));
}
- $out .= "</table></fieldset>\n<fieldset><legend>" . Q(rcube_label('serversettings')) . "</legend>\n<table" . $attrib_str . ">\n\n";
-
- if (!empty($config['drafts_mbox']) && !isset($no_override['draft_autosave']))
- {
- $field_id = 'rcmfd_autosave';
- $select_autosave = new html_select(array('name' => '_draft_autosave', 'id' => $field_id));
- $select_autosave->add(rcube_label('never'), 0);
- foreach (array(3, 5, 10) as $i => $min)
- $select_autosave->add(rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min))), $min*60);
-
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('autosavedraft')),
- $select_autosave->show($config['draft_autosave']));
+ if (!isset($no_override['check_all_folders'])) {
+ $field_id = 'rcmfd_check_all_folders';
+ $input_check_all = new html_checkbox(array('name' => '_check_all_folders', 'id' => $field_id, 'value' => 1));
+ $table->add('title', html::label($field_id, Q(rcube_label('checkallfolders'))));
+ $table->add(null, $input_check_all->show($config['check_all_folders']?1:0));
}
- if (!isset($no_override['read_when_deleted']))
- {
- $field_id = 'rcmfd_read_deleted';
- $input_readdeleted = new html_checkbox(array('name' => '_read_when_deleted', 'id' => $field_id, 'value' => 1));
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('readwhendeleted')),
- $input_readdeleted->show($config['read_when_deleted']?1:0));
+ if ($table->size())
+ $out = html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('mailboxview'))) . $table->show($attrib));
+ break;
+
+
+ // Message viewing
+ case 'mailview':
+ $table = new html_table(array('cols' => 2));
+
+ // show checkbox for HTML/plaintext messages
+ if (!isset($no_override['prefer_html'])) {
+ $field_id = 'rcmfd_htmlmsg';
+ $input_preferhtml = new html_checkbox(array('name' => '_prefer_html', 'id' => $field_id, 'value' => 1,
+ 'onchange' => JS_OBJECT_NAME.'.toggle_prefer_html(this)'));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('preferhtml'))));
+ $table->add(null, $input_preferhtml->show($config['prefer_html']?1:0));
}
- if (!isset($no_override['flag_for_deletion']))
- {
- $field_id = 'rcmfd_flag_for_deletion';
- $input_flagfordeletion = new html_checkbox(array('name' => '_flag_for_deletion', 'id' => $field_id, 'value' => 1));
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('flagfordeletion')),
- $input_flagfordeletion->show($config['flag_for_deletion']?1:0));
+ if (!isset($no_override['show_images'])) {
+ $field_id = 'rcmfd_show_images';
+ $input_show_images = new html_select(array('name' => '_show_images', 'id' => $field_id));
+ $input_show_images->add(rcube_label('never'), 0);
+ $input_show_images->add(rcube_label('fromknownsenders'), 1);
+ $input_show_images->add(rcube_label('always'), 2);
+
+ $table->add('title', html::label($field_id, Q(rcube_label('showremoteimages'))));
+ $table->add(null, $input_show_images->show($config['show_images']));
}
- // Trash purging on logout
- if (!isset($no_override['logout_purge']))
- {
- $field_id = 'rcmfd_logout_purge';
- $input_purge = new html_checkbox(array('name' => '_logout_purge', 'id' => $field_id, 'value' => 1));
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('logoutclear')),
- $input_purge->show($config['logout_purge']?1:0));
+ if (!isset($no_override['inline_images'])) {
+ $field_id = 'rcmfd_inline_images';
+ $input_inline_images = new html_checkbox(array('name' => '_inline_images', 'id' => $field_id, 'value' => 1));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('showinlineimages'))));
+ $table->add(null, $input_inline_images->show($config['inline_images']?1:0));
}
- // INBOX compacting on logout
- if (!isset($no_override['logout_expunge']))
- {
- $field_id = 'rcmfd_logout_expunge';
- $input_expunge = new html_checkbox(array('name' => '_logout_expunge', 'id' => $field_id, 'value' => 1));
- $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
- $field_id,
- Q(rcube_label('logoutcompact')),
- $input_expunge->show($config['logout_expunge']?1:0));
+ if ($table->size())
+ $out = html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('messagesdisplaying'))) . $table->show($attrib));
+ break;
+
+
+ // Mail composition
+ case 'compose':
+ $table = new html_table(array('cols' => 2));
+
+ // Show checkbox for HTML Editor
+ if (!isset($no_override['htmleditor'])) {
+ $field_id = 'rcmfd_htmleditor';
+ $input_htmleditor = new html_checkbox(array('name' => '_htmleditor', 'id' => $field_id, 'value' => 1));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('htmleditor'))));
+ $table->add(null, $input_htmleditor->show($config['htmleditor']?1:0));
}
- $out .= "\n</table></fieldset>$form_end";
+ if (!isset($no_override['draft_autosave'])) {
+ $field_id = 'rcmfd_autosave';
+ $select_autosave = new html_select(array('name' => '_draft_autosave', 'id' => $field_id, 'disabled' => empty($config['drafts_mbox'])));
+ $select_autosave->add(rcube_label('never'), 0);
+ foreach (array(3, 5, 10) as $i => $min)
+ $select_autosave->add(rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min))), $min*60);
- return $out;
- }
+ $table->add('title', html::label($field_id, Q(rcube_label('autosavedraft'))));
+ $table->add(null, $select_autosave->show($config['draft_autosave']));
+ }
+ if (!isset($no_override['mime_param_folding'])) {
+ $field_id = 'rcmfd_param_folding';
+ $select_param_folding = new html_select(array('name' => '_mime_param_folding', 'id' => $field_id));
+ $select_param_folding->add(rcube_label('2231folding'), 0);
+ $select_param_folding->add(rcube_label('miscfolding'), 1);
+ $select_param_folding->add(rcube_label('2047folding'), 2);
+
+ $table->set_row_attribs('advanced');
+ $table->add('title', html::label($field_id, Q(rcube_label('mimeparamfolding'))));
+ $table->add(null, $select_param_folding->show($config['mime_param_folding']));
+ }
+
+ if ($table->size())
+ $out = html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('messagescomposition'))) . $table->show($attrib));
+ break;
+
+
+ // Special IMAP folders
+ case 'folders':
+ // Configure special folders
+ if (!isset($no_override['default_imap_folders'])) {
+ $RCMAIL->imap_init(true);
+ $select = rcmail_mailbox_select(array('noselection' => '---', 'realnames' => true, 'maxlength' => 30));
+
+ $table = new html_table(array('cols' => 2));
+
+ if (!isset($no_override['drafts_mbox'])) {
+ $table->add('title', Q(rcube_label('drafts')));
+ $table->add(null, $select->show($config['drafts_mbox'], array('name' => "_drafts_mbox", 'onchange' => "document.getElementById('rcmfd_autosave').disabled=this.selectedIndex==0")));
+ }
+
+ if (!isset($no_override['sent_mbox'])) {
+ $table->add('title', Q(rcube_label('sent')));
+ $table->add(null, $select->show($config['sent_mbox'], array('name' => "_sent_mbox")));
+ }
+
+ if (!isset($no_override['junk_mbox'])) {
+ $table->add('title', Q(rcube_label('junk')));
+ $table->add(null, $select->show($config['junk_mbox'], array('name' => "_junk_mbox")));
+ }
+
+ if (!isset($no_override['trash_mbox'])) {
+ $table->add('title', Q(rcube_label('trash')));
+ $table->add(null, $select->show($config['trash_mbox'], array('name' => "_trash_mbox")));
+ }
+
+ $out = html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('specialfolders'))) . $table->show($attrib));
+ }
+ break;
+
+
+ // Server settings
+ case 'server':
+ $table = new html_table(array('cols' => 2));
+
+ if (!isset($no_override['read_when_deleted'])) {
+ $field_id = 'rcmfd_read_deleted';
+ $input_readdeleted = new html_checkbox(array('name' => '_read_when_deleted', 'id' => $field_id, 'value' => 1));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('readwhendeleted'))));
+ $table->add(null, $input_readdeleted->show($config['read_when_deleted']?1:0));
+ }
+
+ if (!isset($no_override['flag_for_deletion'])) {
+ $field_id = 'rcmfd_flag_for_deletion';
+ $input_flagfordeletion = new html_checkbox(array('name' => '_flag_for_deletion', 'id' => $field_id, 'value' => 1));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('flagfordeletion'))));
+ $table->add(null, $input_flagfordeletion->show($config['flag_for_deletion']?1:0));
+ }
+
+ // don't show deleted messages
+ if (!isset($no_override['skip_deleted'])) {
+ $field_id = 'rcmfd_skip_deleted';
+ $input_purge = new html_checkbox(array('name' => '_skip_deleted', 'id' => $field_id, 'value' => 1));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('skipdeleted'))));
+ $table->add(null, $input_purge->show($config['skip_deleted']?1:0));
+ }
+
+ // Trash purging on logout
+ if (!isset($no_override['logout_purge'])) {
+ $field_id = 'rcmfd_logout_purge';
+ $input_purge = new html_checkbox(array('name' => '_logout_purge', 'id' => $field_id, 'value' => 1));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('logoutclear'))));
+ $table->add(null, $input_purge->show($config['logout_purge']?1:0));
+ }
+
+ // INBOX compacting on logout
+ if (!isset($no_override['logout_expunge'])) {
+ $field_id = 'rcmfd_logout_expunge';
+ $input_expunge = new html_checkbox(array('name' => '_logout_expunge', 'id' => $field_id, 'value' => 1));
+
+ $table->add('title', html::label($field_id, Q(rcube_label('logoutcompact'))));
+ $table->add(null, $input_expunge->show($config['logout_expunge']?1:0));
+ }
+
+ if ($table->size())
+ $out = html::tag('fieldset', null, html::tag('legend', null, Q(rcube_label('serversettings'))) . $table->show($attrib));
+ break;
+
+
+ default:
+ $out = '';
+ }
+
+ return $out;
+}
function rcmail_identities_list($attrib)
$attrib['id'] = 'rcmIdentitiesList';
// define list of cols to be displayed
- $a_show_cols = array('name', 'email', 'organization', 'reply-to');
+ $a_show_cols = array('name', 'email');
// create XHTML table
$out = rcube_table_output($attrib, $USER->list_identities(), $a_show_cols, 'identity_id');
return array($form_start, $form_end);
}
+function rcmail_get_skins()
+ {
+ $path = 'skins';
+ $skins = array();
+
+ $dir = opendir($path);
+
+ if (!$dir)
+ return false;
+
+ while (($file = readdir($dir)) !== false)
+ {
+ $filename = $path.'/'.$file;
+ if (is_dir($filename) && is_readable($filename)
+ && !in_array($file, array('.', '..', '.svn')))
+ $skins[] = $file;
+ }
+
+ closedir($dir);
+
+ return $skins;
+ }
+
+
+function rcmail_get_email()
+ {
+ global $RCMAIL;
+
+ if (strpos($RCMAIL->user->data['username'], '@'))
+ return $RCMAIL->user->data['username'];
+ else {
+ if ($RCMAIL->config->get('virtuser_file'))
+ $user_email = rcube_user::user2email($RCMAIL->user->data['username']);
+
+ if ($user_email == '')
+ $user_email = sprintf('%s@%s', $RCMAIL->user->data['username'],
+ $RCMAIL->config->mail_domain($_SESSION['imap_host']));
+
+ return $user_email;
+ }
+ }
// register UI objects
$OUTPUT->add_handlers(array(
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: identities.inc 1412 2008-05-21 07:45:54Z alec $
+ $Id: identities.inc 2006 2008-10-24 07:57:21Z alec $
*/
+define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0)));
+
$OUTPUT->set_pagetitle(rcube_label('identities'));
$OUTPUT->include_script('list.js');
$OUTPUT->set_env('contentframe', $attrib['name']);
- $attrib_str = create_attrib_string($attrib, array('name', 'id', 'class', 'style', 'src', 'width', 'height', 'frameborder'));
- $out = '<iframe'. $attrib_str . '></iframe>';
-
- return $out;
+ return html::iframe($attrib);
}
$OUTPUT->add_handler('identityframe', 'rcmail_identity_frame');
+$OUTPUT->set_env('identities_level', IDENTITIES_LEVEL);
$OUTPUT->send('identities');
?>
\ No newline at end of file
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: manage_folders.inc 1455 2008-05-30 11:52:15Z alec $
+ $Id: manage_folders.inc 2175 2008-12-18 17:51:50Z alec $
*/
{
if (preg_match($regexp, $folderlist[$x]))
{
- $oldfolder = $oldname . $delimiter . preg_replace($regexp, '', $folderlist[$x]);
+ $oldfolder = $oldname . $delimiter . preg_replace($regexp, '', $folderlist[$x]);
$foldersplit = explode($delimiter, $folderlist[$x]);
$level = count($foldersplit) - 1;
$display_rename = str_repeat(' ', $level)
- . rcube_charset_convert($foldersplit[$level], 'UTF-7');
+ . rcube_charset_convert($foldersplit[$level], 'UTF-7');
- $before = isset($folderlist[$x+1]) ? rcube_charset_convert($folderlist[$x+1], 'UTF-7') : false;
+ $before = isset($folderlist[$x+1]) ? rcube_charset_convert($folderlist[$x+1], 'UTF-7') : false;
- $OUTPUT->command('replace_folder_row', rcube_charset_convert($oldfolder, 'UTF-7'),
- rcube_charset_convert($folderlist[$x], 'UTF-7'), $display_rename, $before);
+ $OUTPUT->command('replace_folder_row', rcube_charset_convert($oldfolder, 'UTF-7'),
+ rcube_charset_convert($folderlist[$x], 'UTF-7'), $display_rename, $before);
}
}
$index = array_search($rename, $folderlist);
$before = $index !== false && isset($folderlist[$index+1]) ? rcube_charset_convert($folderlist[$index+1], 'UTF-7') : false;
- $OUTPUT->command('replace_folder_row', $oldname_utf8, rcube_charset_convert($rename, 'UTF-7'),
- $display_rename, $before);
+ $OUTPUT->command('replace_folder_row', $oldname_utf8, rcube_charset_convert($rename, 'UTF-7'), $display_rename, $before);
$OUTPUT->command('reset_folder_rename');
}
if (!$attrib['id'])
$attrib['id'] = 'rcmSubscriptionlist';
- // allow the following attributes to be added to the <table> tag
- $attrib_str = create_attrib_string($attrib, array('style', 'class', 'id', 'cellpadding', 'cellspacing', 'border', 'summary'));
-
- $out = "$form_start\n<table" . $attrib_str . ">\n";
-
+ $table = new html_table();
// add table header
- $out .= "<thead><tr>\n";
- $out .= sprintf('<td class="name">%s</td><td class="msgcount">%s</td><td class="subscribed">%s</td>'.
- '<td class="rename"> </td><td class="delete"> </td>',
- rcube_label('foldername'), rcube_label('messagecount'), rcube_label('subscribed'));
-
- $out .= "\n</tr></thead>\n<tbody>\n";
+ $table->add_header('name', rcube_label('foldername'));
+ $table->add_header('msgcount', rcube_label('messagecount'));
+ $table->add_header('subscribed', rcube_label('subscribed'));
+ $table->add_header('rename', ' ');
+ $table->add_header('delete', ' ');
// get folders from server
$a_unsubscribed = $IMAP->list_unsubscribed();
$a_subscribed = $IMAP->list_mailboxes();
$delimiter = $IMAP->get_hierarchy_delimiter();
- $a_js_folders = array();
+ $a_js_folders = $seen_folders = $list_folders = array();
+
+ // pre-process folders list
+ foreach ($a_unsubscribed as $i => $folder) {
+ $foldersplit = explode($delimiter, $folder);
+ $name = rcube_charset_convert(array_pop($foldersplit), 'UTF-7');
+ $parent_folder = join($delimiter, $foldersplit);
+ $level = count($foldersplit);
+
+ // add any necessary "virtual" parent folders
+ if ($parent_folder && !$seen[$parent_folder]) {
+ for ($i=1; $i<=$level; $i++) {
+ $ancestor_folder = join($delimiter, array_slice($foldersplit, 0, $i));
+ if ($ancestor_folder && !$seen[$ancestor_folder]++) {
+ $ancestor_name = rcube_charset_convert($foldersplit[$i-1], 'UTF-7');
+ $list_folders[] = array('id' => $ancestor_folder, 'name' => $ancestor_name, 'level' => $i-1, 'virtual' => true);
+ }
+ }
+ }
+
+ $list_folders[] = array('id' => $folder, 'name' => $name, 'level' => $level);
+ $seen[$folder]++;
+ }
- $checkbox_subscribe = new html_checkbox(array('name' => '_subscribed[]', 'onclick' => JS_OBJECT_NAME.".command(this.checked?'subscribe':'unsubscribe',this.value)"));
+ $checkbox_subscribe = new html_checkbox(array(
+ 'name' => '_subscribed[]',
+ 'onclick' => JS_OBJECT_NAME.".command(this.checked?'subscribe':'unsubscribe',this.value)",
+ ));
if (!empty($attrib['deleteicon']))
- $del_button = sprintf('<img src="%s%s" alt="%s" border="0" />', $CONFIG['skin_path'], $attrib['deleteicon'], rcube_label('delete'));
+ $del_button = html::img(array('src' => $CONFIG['skin_path'] . $attrib['deleteicon'], 'alt' => rcube_label('delete')));
else
$del_button = rcube_label('delete');
if (!empty($attrib['renameicon']))
- $edit_button = sprintf('<img src="%s%s" alt="%s" border="0" />', $CONFIG['skin_path'], $attrib['renameicon'], rcube_label('rename'));
+ $edit_button = html::img(array('src' => $CONFIG['skin_path'] . $attrib['renameicon'], 'alt' => rcube_label('rename')));
else
- $del_button = rcube_label('rename');
-
+ $edit_button = rcube_label('rename');
+
// create list of available folders
- foreach ($a_unsubscribed as $i => $folder)
- {
- $subscribed = in_array($folder, $a_subscribed);
- $protected = ($CONFIG['protect_default_folders'] == TRUE && in_array($folder,$CONFIG['default_imap_folders']));
- $zebra_class = $i%2 ? 'even' : 'odd';
- $folder_js = JQ($folder);
- $foldersplit = explode($delimiter, $folder);
- $level = count($foldersplit) - 1;
- $display_folder = str_repeat(' ', $level) . rcube_charset_convert($foldersplit[$level], 'UTF-7');
- $folder_html = $CONFIG['protect_default_folders'] && in_array($folder, $CONFIG['default_imap_folders']) ? rcmail_localize_foldername($folder) : $display_folder;
- $folder_utf8 = rcube_charset_convert($folder, 'UTF-7');
-
- $a_js_folders['rcmrow'.($i+1)] = array($folder_utf8, $display_folder, $protected);
-
- $out .= sprintf('<tr id="rcmrow%d" class="%s"><td class="name">%s</td><td class="msgcount">%d</td>',
- $i+1,
- $zebra_class,
- Q($folder_html),
- $IMAP->messagecount($folder));
-
- if ($protected)
- $out .= '<td class="subscribed"> '.($subscribed ? '•' : '-').'</td>';
- else
- $out .= '<td class="subscribed">'.$checkbox_subscribe->show($subscribed?$folder_utf8:'', array('value' => $folder_utf8)).'</td>';
-
- // add rename and delete buttons
- if (!$protected)
- $out .= sprintf('<td class="rename"><a href="#rename" title="%s">%s</a>'.
- '<td class="delete"><a href="#delete" title="%s">%s</a></td>',
- rcube_label('renamefolder'),
- $edit_button,
- rcube_label('deletefolder'),
- $del_button);
- else
- $out .= '<td></td><td></td>';
+ foreach ($list_folders as $i => $folder) {
+ $idx = $i + 1;
+ $subscribed = in_array($folder['id'], $a_subscribed);
+ $protected = ($CONFIG['protect_default_folders'] == true && in_array($folder['id'], $CONFIG['default_imap_folders']));
+ $classes = array($i%2 ? 'even' : 'odd');
+ $folder_js = JQ($folder['id']);
+ $display_folder = str_repeat(' ', $folder['level']) . ($protected ? rcmail_localize_foldername($folder['id']) : $folder['name']);
+ $folder_utf8 = rcube_charset_convert($folder['id'], 'UTF-7');
+
+ if ($folder['virtual'])
+ $classes[] = 'virtual';
+
+ $table->add_row(array('id' => 'rcmrow'.$idx, 'class' => join(' ', $classes)));
- $out .= "</tr>\n";
+ $table->add('name', Q($display_folder));
+ $table->add('msgcount', ($folder['virtual'] ? '' : $IMAP->messagecount($folder['id'])));
+ $table->add('subscribed', ($protected || $folder['virtual']) ? ($subscribed ? ' •' : ' ') :
+ $checkbox_subscribe->show(($subscribed ? $folder_utf8 : ''), array('value' => $folder_utf8)));
+
+ // add rename and delete buttons
+ if (!$protected && !$folder['virtual']) {
+ $table->add('rename', html::a(array('href' => "#rename", 'title' => rcube_label('renamefolder')), $edit_button));
+ $table->add('delete', html::a(array('href' => "#delete", 'title' => rcube_label('deletefolder')), $del_button));
+ }
+ else {
+ $table->add('rename', ' ');
+ $table->add('delete', ' ');
}
+
+ $a_js_folders['rcmrow'.$idx] = array($folder_utf8, $display_folder, $protected || $folder['virtual']);
+ }
- $out .= "</tbody>\n</table>";
- $out .= "\n$form_end";
$OUTPUT->add_gui_object('subscriptionlist', $attrib['id']);
$OUTPUT->set_env('subscriptionrows', $a_js_folders);
$OUTPUT->set_env('defaultfolders', $CONFIG['default_imap_folders']);
$OUTPUT->set_env('delimiter', $delimiter);
- return $out;
+ return $form_start . $table->show($attrib) . $form_end;
}
));
// add some labels to client
-rcube_add_label('deletefolderconfirm','addsubfolderhint','forbiddencharacter');
+$OUTPUT->add_label('deletefolderconfirm','addsubfolderhint','forbiddencharacter','folderdeleting','folderrenaming','foldercreating','foldermoving');
$OUTPUT->send('managefolders');
?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: save_identity.inc 1407 2008-05-19 17:47:45Z thomasb $
+ $Id: save_identity.inc 2006 2008-10-24 07:57:21Z alec $
*/
+define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0)));
+
$a_save_cols = array('name', 'email', 'organization', 'reply-to', 'bcc', 'standard', 'signature', 'html_signature');
$a_html_cols = array('signature');
$a_boolean_cols = array('standard', 'html_signature');
$updated = $default_id = false;
// check input
-if (empty($_POST['_name']) || empty($_POST['_email']))
+if (empty($_POST['_name']) || (empty($_POST['_email']) && IDENTITIES_LEVEL != 1 && IDENTITIES_LEVEL != 3))
{
$OUTPUT->show_message('formincomplete', 'warning');
- rcmail_overwrite_action('edit-identitiy');
+ rcmail_overwrite_action('edit-identity');
return;
}
$save_data[$col] = 0;
}
+// unset email address if user has no rights to change it
+if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3)
+ unset($save_data['email']);
+
// update an existing contact
if ($_POST['_iid'])
{
// show error message
$OUTPUT->show_message('errorsaving', 'error');
- rcmail_overwrite_action('edit-identitiy');
+ rcmail_overwrite_action('edit-identity');
return;
}
}
// insert a new identity record
-else
+else if (IDENTITIES_LEVEL < 2)
{
- if ($insert_id = $USER->insert_identity($save_data))
+ if (IDENTITIES_LEVEL == 1)
+ $save_data['email'] = rcmail_get_email();
+
+ if ($save_data['email'] && ($insert_id = $USER->insert_identity($save_data)))
{
$OUTPUT->show_message('successfullysaved', 'confirmation');
return;
}
}
+else
+ $OUTPUT->show_message('opnotpermitted', 'error');
// mark all other identities as 'not-default'
// go to next step
rcmail_overwrite_action('identities');
-?>
\ No newline at end of file
+?>
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
- $Id: save_prefs.inc 1403 2008-05-19 08:09:38Z alec $
+ $Id: save_prefs.inc 2115 2008-12-04 10:21:34Z alec $
*/
$a_user_prefs = array(
- 'timezone' => isset($_POST['_timezone']) ? floatval($_POST['_timezone']) : $CONFIG['timezone'],
+ 'language' => isset($_POST['_language']) ? get_input_value('_language', RCUBE_INPUT_POST) : $CONFIG['language'],
+ 'timezone' => isset($_POST['_timezone']) ? (is_numeric($_POST['_timezone']) ? floatval($_POST['_timezone']) : get_input_value('_timezone', RCUBE_INPUT_POST)) : $CONFIG['timezone'],
'dst_active' => isset($_POST['_dst_active']) ? TRUE : FALSE,
'pagesize' => is_numeric($_POST['_pagesize']) ? max(2, intval($_POST['_pagesize'])) : $CONFIG['pagesize'],
'prettydate' => isset($_POST['_pretty_date']) ? TRUE : FALSE,
'prefer_html' => isset($_POST['_prefer_html']) ? TRUE : FALSE,
'htmleditor' => isset($_POST['_htmleditor']) ? TRUE : FALSE,
+ 'inline_images' => isset($_POST['_inline_images']) ? TRUE : FALSE,
'preview_pane' => isset($_POST['_preview_pane']) ? TRUE : FALSE,
+ 'focus_on_new_message' => isset($_POST['_focus_on_new_message']) ? TRUE : FALSE,
'read_when_deleted' => isset($_POST['_read_when_deleted']) ? TRUE : FALSE,
+ 'skip_deleted' => isset($_POST['_skip_deleted']) ? TRUE : FALSE,
'flag_for_deletion' => isset($_POST['_flag_for_deletion']) ? TRUE : FALSE,
'logout_purge' => isset($_POST['_logout_purge']) ? TRUE : FALSE,
'logout_expunge' => isset($_POST['_logout_expunge']) ? TRUE : FALSE,
'draft_autosave' => isset($_POST['_draft_autosave']) ? intval($_POST['_draft_autosave']) : 0,
+ 'show_images' => isset($_POST['_show_images']) ? intval($_POST['_show_images']) : 0,
+ 'keep_alive' => isset($_POST['_keep_alive']) ? intval($_POST['_keep_alive'])*60 : $CONFIG['keep_alive'],
+ 'check_all_folders' => isset($_POST['_check_all_folders']) ? TRUE : FALSE,
+ 'mime_param_folding' => isset($_POST['_mime_param_folding']) ? intval($_POST['_mime_param_folding']) : 0,
'mdn_requests' => isset($_POST['_mdn_requests']) ? intval($_POST['_mdn_requests']) : 0,
+ 'skin' => isset($_POST['_skin']) ? get_input_value('_skin', RCUBE_INPUT_POST) : $CONFIG['skin'],
+ 'drafts_mbox' => get_input_value('_drafts_mbox', RCUBE_INPUT_POST),
+ 'sent_mbox' => get_input_value('_sent_mbox', RCUBE_INPUT_POST),
+ 'junk_mbox' => get_input_value('_junk_mbox', RCUBE_INPUT_POST),
+ 'trash_mbox' => get_input_value('_trash_mbox', RCUBE_INPUT_POST),
);
// don't override these parameters
foreach ((array)$CONFIG['dont_override'] as $p)
$a_user_prefs[$p] = $CONFIG[$p];
+// special handling for 'default_imap_folders'
+if (in_array('default_imap_folders', (array)$CONFIG['dont_override'])) {
+ foreach (array('drafts_mbox','sent_mbox','junk_mbox','trash_mbox') as $p)
+ $a_user_prefs[$p] = $CONFIG[$p];
+}
+else {
+ $a_user_prefs['default_imap_folders'] = array('INBOX');
+ foreach (array('drafts_mbox','sent_mbox','junk_mbox','trash_mbox') as $p) {
+ if ($a_user_prefs[$p])
+ $a_user_prefs['default_imap_folders'][] = $a_user_prefs[$p];
+ }
+}
// switch UI language
if (isset($_POST['_language'])) {
- $RCMAIL->load_language(get_input_value('_language', RCUBE_INPUT_POST));
+ $RCMAIL->load_language($a_user_prefs['language']);
}
+// switch skin
+$OUTPUT->set_skin($a_user_prefs['skin']);
+
// force min size
if ($a_user_prefs['pagesize'] < 1)
$a_user_prefs['pagesize'] = 10;
if (isset($CONFIG['max_pagesize']) && ($a_user_prefs['pagesize'] > $CONFIG['max_pagesize']))
$a_user_prefs['pagesize'] = (int) $CONFIG['max_pagesize'];
+// force keep_alive
+if (isset($a_user_prefs['keep_alive'])) {
+ $a_user_prefs['keep_alive'] = max(60, $CONFIG['min_keep_alive'], $a_user_prefs['keep_alive']);
+ if (!empty($CONFIG['session_lifetime']))
+ $a_user_prefs['keep_alive'] = min($CONFIG['session_lifetime']*60, $a_user_prefs['keep_alive']);
+}
+
+
if ($USER->save_prefs($a_user_prefs))
$OUTPUT->show_message('successfullysaved', 'confirmation');
-
// go to next step
rcmail_overwrite_action('preferences');
/***** RoundCube|Mail address book task styles *****/
-
#abooktoolbar
{
position: absolute;
{
position: absolute;
bottom: 16px;
- left: 185px;
+ left: 200px;
width: 240px;
height: 20px;
text-align: left;
color: #333333;
}
-#directorylist, #addresslist
+#mainscreen
+{
+ position: absolute;
+ top: 85px;
+ right: 20px;
+ bottom: 40px;
+ left: 200px;
+ /* css hack for IE */
+ width: expression((parseInt(document.documentElement.clientWidth)-220)+'px');
+ height: expression((parseInt(document.documentElement.clientHeight)-125)+'px');
+}
+
+#directorylist
{
position: absolute;
top: 85px;
bottom: 40px;
+ left: 20px;
+ width: 170px;
+ border: 1px solid #999999;
+ background-color: #F9F9F9;
+ overflow: hidden;
+ /* css hack for IE */
+ height: expression((parseInt(document.documentElement.clientHeight)-125)+'px');
+}
+
+#addresslist
+{
+ position: absolute;
+ top: 0px;
+ bottom: 0px;
border: 1px solid #999999;
background-color: #F9F9F9;
overflow: auto;
/* css hack for IE */
- height: expression((parseInt(document.documentElement.clientHeight)-135)+'px');
+ height: expression(parseInt(this.parentNode.offsetHeight)+'px');
}
-#directorylist
+#importbox
{
+ position: absolute;
+ top: 85px;
+ bottom: 40px;
left: 20px;
- width: 150px;
+ right: 20px;
+ border: 1px solid #999999;
+ background-color: #F9F9F9;
+ padding-bottom: 4ex;
+ overflow: auto;
+ /* css hack for IE */
+ height: expression((parseInt(document.documentElement.clientHeight)-135)+'px');
}
#addresslist
{
- left: 185px;
+ left: 0px;
width: 340px;
}
+#importbox a
+{
+ color: blue;
+}
+
#directorylist ul
{
list-style: none;
{
font-size: 11px;
border-bottom: 1px solid #EBEBEB;
+ white-space: nowrap;
}
#directorylist ul li a
padding-top: 2px;
padding-bottom: 2px;
text-decoration: none;
+ white-space: nowrap;
}
#directorylist li.selected
#contacts-table tbody td
{
- cursor: pointer;
+ cursor: default;
}
#contacts-box
{
position: absolute;
- top: 85px;
- left: 540px;
- right: 30px;
- bottom: 40px;
+ top: 0px;
+ left: 555px;
+ right: 0px;
+ bottom: 0px;
border: 1px solid #999999;
overflow: hidden;
/* css hack for IE */
- width: expression((parseInt(document.documentElement.clientWidth)-45-document.getElementById('addresslist').offsetLeft-document.getElementById('addresslist').offsetWidth)+'px');
- height: expression((parseInt(document.documentElement.clientHeight)-135)+'px');
+ height: expression(parseInt(this.parentNode.offsetHeight)+'px');
+ width: expression((parseInt(this.parentNode.offsetWidth)-555)+'px');
}
-
-#addressviewsplitter
-{
- background-position: 4px center;
-}
-
-#addressviewsplitter .splitterLine
-{
- margin-left: 3px;
- width: 6px;
-}
-
-
body.iframe,
#contact-frame
{
margin: 10px;
}
-body, td, th, span, div, p, h3
+body, td, th, div, p, h3
{
font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
border-style: none;
}
-input, textarea
+input[type="text"],
+input[type="button"],
+input[type="password"],
+textarea
{
font-size: 9pt;
font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
padding: 1px;
padding-left: 3px;
padding-right: 3px;
+ border: 1px solid #666666;
color: #333333;
background-color: #ffffff;
- border: 1px solid #666666;
}
-input[type="checkbox"],
-input[type="radio"]
+input, textarea
{
- border: 0;
- padding: 0;
- background-color: transparent;
+ font-size: 9pt;
+ font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
+ color: #333333;
+ padding-left: 3px;
+ padding-right: 3px;
+ /* IE hacks for input elements */
+ border-style: expression(this.type=='checkbox' || this.type=='radio' || this.id=='quicksearchbox' ? 'none' : 'solid');
+ border-width: expression(this.type=='checkbox' || this.type=='radio' ? '0' : '1px');
+ border-color: expression(this.type=='checkbox' || this.type=='radio' ? '' : '#666666');
+ background-color: expression(this.type=='checkbox' || this.type=='radio' ? 'transparent' : '#ffffff');
}
input.button
color: black;
}
+input.mainaction
+{
+ font-weight: bold;
+ border: 1px solid #999;
+}
+
img
{
behavior: url('skins/default/pngbehavior.htc');
+ border: 0;
}
.alttext
right: 200px;
z-index: 5000;
opacity: 0.85;
+ /* IE */
+ filter: alpha(opacity=85);
}
#message div
.splitter
{
+ user-select: none;
+ -moz-user-select: none;
+ -khtml-user-select: none;
position: absolute;
- padding: 2px;
background: url(images/dimple.png) center no-repeat;
}
.splitter-v
{
cursor: e-resize;
- background-position: 1px center;
+ background-position: 2px center;
}
.boxtitle
#quicksearchbar
{
position: absolute;
- top: 60px;
+ top: 55px;
right: 20px;
width: 182px;
height: 20px;
#rcmdraglayer
{
+ min-width: 300px;
+ width: auto !important;
width: 300px;
border: 1px solid #999999;
background-color: #F9F9F9;
padding-top: 3px;
padding-bottom: 3px;
font-size: 11px;
+ white-space: nowrap;
opacity: 0.7;
-moz-opacity: 0.7;
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);
#rcmKSearchpane ul li
{
+ display: block;
height: 16px;
font-size: 11px;
- padding-left: 8px;
+ padding-left: 6px;
padding-top: 2px;
- padding-right: 8px;
- white-space: nowrap;
+ padding-right: 6px;
+ white-space: nowrap;
+ cursor: pointer;
}
#rcmKSearchpane ul li.selected
--- /dev/null
+/**
+ * RoundCube functions for default skin interface
+ */
+
+/**
+ * Settings
+ */
+
+function rcube_init_settings_tabs()
+{
+ if (window.rcmail && rcmail.env.action)
+ {
+ var action = rcmail.env.action=='preferences' ? 'default' : (rcmail.env.action.indexOf('identity')>0 ? 'identities' : rcmail.env.action);
+ var tab = document.getElementById('settingstab'+action);
+ }
+ else
+ var tab = document.getElementById('settingstabdefault');
+
+ if (tab)
+ tab.className = 'tablink-selected';
+}
+
+function rcube_show_advanced(visible)
+{
+ var rows = document.getElementsByTagName('TR');
+ for(var i=0; i<rows.length; i++)
+ if(rows[i].className && rows[i].className.match(/advanced/))
+ rows[i].style.display = visible ? (bw.ie ? 'block' : 'table-row') : 'none';
+}
+
+/**
+ * Mail Composing
+ */
+
+function rcmail_show_header_form(id)
+{
+ var link, row, parent, ns, ps;
+
+ link = document.getElementById(id + '-link');
+ parent = link.parentNode;
+
+ if ((ns = rcmail_next_sibling(link)))
+ ns.style.display = 'none';
+ else if ((ps = rcmail_prev_sibling(link)))
+ ps.style.display = 'none';
+
+ link.style.display = 'none';
+
+ if (row = document.getElementById('compose-' + id))
+ {
+ var div = document.getElementById('compose-div');
+ var headers_div = document.getElementById('compose-headers-div');
+ row.style.display = (document.all && !window.opera) ? 'block' : 'table-row';
+ div.style.top = (parseInt(headers_div.offsetHeight)) + 'px';
+ }
+
+ return false;
+}
+
+function rcmail_hide_header_form(id)
+{
+ var row, parent, ns, ps, link, links;
+
+ link = document.getElementById(id + '-link');
+ link.style.display = '';
+
+ parent = link.parentNode;
+ links = parent.getElementsByTagName('A');
+
+ for (var i=0; i<links.length; i++)
+ if (links[i].style.display != 'none')
+ for (var j=i+1; j<links.length; j++)
+ if (links[j].style.display != 'none')
+ if ((ns = rcmail_next_sibling(links[i]))) {
+ ns.style.display = '';
+ break;
+ }
+
+ document.getElementById('_' + id).value = '';
+
+ if (row = document.getElementById('compose-' + id))
+ {
+ var div = document.getElementById('compose-div');
+ var headers_div = document.getElementById('compose-headers-div');
+ row.style.display = 'none';
+ div.style.top = (parseInt(headers_div.offsetHeight)) + 'px';
+ }
+
+ return false;
+}
+
+function rcmail_next_sibling(elm)
+{
+ var ns = elm.nextSibling;
+ while (ns && ns.nodeType == 3)
+ ns = ns.nextSibling;
+ return ns;
+}
+
+function rcmail_prev_sibling(elm)
+{
+ var ps = elm.previousSibling;
+ while (ps && ps.nodeType == 3)
+ ps = ps.previousSibling;
+ return ps;
+}
+
+function rcmail_init_compose_form()
+{
+ var cc_field = document.getElementById('_cc');
+ if (cc_field && cc_field.value!='')
+ rcmail_show_header_form('cc');
+
+ var bcc_field = document.getElementById('_bcc');
+ if (bcc_field && bcc_field.value!='')
+ rcmail_show_header_form('bcc');
+
+ // prevent from form data loss when pressing ESC key in IE
+ if (bw.ie) {
+ var form = rcube_find_object('form');
+ form.onkeydown = function (e) { if (rcube_event.get_keycode(e) == 27) rcube_event.cancel(e); };
+ }
+}
+
+/**
+ * Mailbox view
+ */
+
+function rcube_mail_ui()
+{
+ this.markmenu = new rcube_layer('markmessagemenu');
+}
+
+rcube_mail_ui.prototype = {
+
+show_markmenu: function(show)
+{
+ if (typeof show == 'undefined')
+ show = this.markmenu.visible ? false : true;
+
+ var ref = rcube_find_object('markreadbutton');
+ if (show && ref)
+ this.markmenu.move(ref.offsetLeft, ref.offsetTop + ref.offsetHeight);
+
+ this.markmenu.show(show);
+},
+
+body_mouseup: function(evt, p)
+{
+ if (this.markmenu && this.markmenu.visible && rcube_event.get_target(evt) != rcube_find_object('markreadbutton'))
+ this.show_markmenu(false);
+},
+
+body_keypress: function(evt, p)
+{
+ if (rcube_event.get_keycode(evt) == 27 && this.markmenu && this.markmenu.visible)
+ this.show_markmenu(false);
+}
+
+};
+
+var rcmail_ui;
+
+function rcube_init_mail_ui()
+{
+ rcmail_ui = new rcube_mail_ui();
+ rcube_event.add_listener({ object:rcmail_ui, method:'body_mouseup', event:'mouseup' });
+ rcube_event.add_listener({ object:rcmail_ui, method:'body_keypress', event:'keypress' });
+}
+++ /dev/null
-<script type="text/javascript">
-var ldap_server_select = document.getElementById('rcfmd_ldap_public_servers');
-
-if (ldap_server_select) {
- // attach event to ldap server drop down
- ldap_server_select.onchange = function() {
- updateLdapSearchFields(this);
- return false;
- }
-
- // update the fields on page load
- updateLdapSearchFields(ldap_server_select);
-}
-
-/**
- * function to change the attributes of the ldap server search fields select box
- * this function is triggered by an onchange event in the server select box
- */
-function updateLdapSearchFields(element) {
-
- // get the search fields select element
- var search_fields = document.getElementById('rcfmd_ldap_public_search_field');
-
- // get rid of the current options for the select
- for (i = search_fields.length - 1; i>=0; i--)
- search_fields.remove(i);
-
- // get the array containing this servers search fields
- var server_fields = rcmail.env[element.value + '_search_fields'];
-
- // add a new option for each of the possible search fields for the selected server
- for (i = 0; i < server_fields.length; i++) {
-
- // the last array value is for fuzzy search, so skip that one
- if (i < (server_fields.length - 1)) {
- var new_option = document.createElement('option');
- new_option.text = server_fields[i][0];
- new_option.value = server_fields[i][1];
-
- // standards compliant browsers
- try {
- search_fields.add(new_option, null);
- }
- // for the standards challenged one...
- catch(e) {
- search_fields.add(new_option);
- }
- } else {
- // ok, last member of array, so check the value of fuzzy_search
- var fuzzy_search = server_fields[i];
- var search_check_box = document.getElementById('rcmfd_ldap_public_search_type');
-
- if (fuzzy_search == 'fuzzy') {
- // we should enable the check box
- if (search_check_box.disabled)
- search_check_box.disabled = false;
-
- // make sure the checkbox is unchecked
- if (search_check_box.checked)
- search_check_box.checked = false;
-
- } else {
- // we should disable the check box
- if (!search_check_box.disabled)
- search_check_box.disabled = true;
-
- // check the checkbox (just a visual clue for the user)
- if (!search_check_box.checked)
- search_check_box.checked = true;
- }
- }
- }
-}
-</script>
+++ /dev/null
-<script type="text/javascript">
-
-if (window.rcmail && rcmail.env.action)
- {
- var action = rcmail.env.action=='preferences' ? 'default' : (rcmail.env.action.indexOf('identity')>0 ? 'identities' : rcmail.env.action);
- var tab = document.getElementById('settingstab'+action);
- }
-else
- var tab = document.getElementById('settingstabdefault');
-
-if (tab)
- tab.className = 'tablink-selected';
-
-</script>
\ No newline at end of file
#messagetoolbar
{
position: absolute;
- top: 45px;
+ top: 47px;
left: 200px;
right: 200px;
height: 35px;
white-space: nowrap;
/* border: 1px solid #cccccc; */
+ /* css hack for IE */
+ width: expression((parseInt(document.documentElement.clientWidth)-400)+'px');
}
#messagetoolbar a
{
position: absolute;
left: 375px;
- top: 10px;
+ top: 8px;
}
#messagetoolbar select.mboxlist option
border: 1px solid #CCC;
padding: 1px;
opacity: 0.9;
+ filter:alpha(opacity=90);
z-index: 240;
}
background-color: #ddd;
}
-#listcontrols
+#searchfilter
{
position: absolute;
- left: 200px;
- bottom: 20px;
- height: 16px;
- width: 500px;
+ right: 18px;
+ top: 8px;
+ width: 240px;
+ text-align: right;
+}
+
+#searchfilter label
+{
font-size: 11px;
}
text-decoration: underline;
}
+#listcontrols,
+#mailboxcontrols
+{
+ padding-right: 2em;
+}
+
#messagecountbar
{
position: absolute;
color: #333333;
}
+#mainscreen
+{
+ position: absolute;
+ top: 85px;
+ right: 20px;
+ bottom: 40px;
+ left: 20px;
+ /* css hack for IE */
+ width: expression((parseInt(document.documentElement.clientWidth)-40)+'px');
+ height: expression((parseInt(document.documentElement.clientHeight)-125)+'px');
+}
+
+#mailrightcontainer
+{
+ position: absolute;
+ top: 0px;
+ left: 170px;
+ bottom: 0px;
+ right: 0px;
+ /* css hack for IE */
+ width: expression((parseInt(this.parentNode.offsetWidth)-170)+'px');
+ height: expression(parseInt(this.parentNode.offsetHeight)+'px');
+}
+
#messagepartcontainer
{
position: absolute;
#mailcontframe
{
position: absolute;
- top: 85px;
- left: 200px;
- right: 20px;
- bottom: 40px;
+ width: 100%;
+ top: 0px;
+ bottom: 0px;
border: 1px solid #999999;
background-color: #F9F9F9;
overflow: auto;
/* css hack for IE */
- width: expression((parseInt(document.documentElement.clientWidth)-220)+'px');
- height: expression((parseInt(document.documentElement.clientHeight)-125)+'px');
+ height: expression(parseInt(this.parentNode.offsetHeight)+'px');
}
#mailpreviewframe
{
position: absolute;
- top: 305px;
- left: 200px;
- right: 20px;
- bottom: 40px;
+ width: 100%;
+ top: 205px;
+ bottom: 0px;
border: 1px solid #999999;
background-color: #F9F9F9;
/* css hack for IE */
- width: expression((parseInt(document.documentElement.clientWidth)-220)+'px');
- height: expression((parseInt(document.documentElement.clientHeight)-135-document.getElementById('mailcontframe').offsetHeight)+'px');
+ height: expression((parseInt(this.parentNode.offsetHeight)-205)+'px');
}
#messagecontframe
{
- position: absolute;
+ position: relative;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
- /* css hack for IE */
- width: expression((parseInt(document.documentElement.clientWidth)-220)+'px');
- height: expression((parseInt(document.documentElement.clientHeight)-135-document.getElementById('mailcontframe').offsetHeight)+'px');
+ width: 100%;
+ height: 100%;
}
#messagepartframe
#mailboxlist-container
{
position: absolute;
- top: 85px;
- left: 20px;
- width: 170px;
- bottom: 40px;
+ top: 0px;
+ left: 0px;
+ width: 160px;
+ bottom: 0px;
border: 1px solid #999;
background-color: #F9F9F9;
overflow: auto;
/* css hack for IE */
- height: expression((parseInt(document.documentElement.clientHeight)-125)+'px');
+ height: expression(parseInt(this.parentNode.offsetHeight)+'px');
}
#mailboxlist
{
- width: 100%;
+ position:relative;
height: auto;
margin: 0px;
padding: 0px;
#mailboxlist li
{
+ display: block;
+ position: relative;
font-size: 11px;
background: url(images/icons/folder-closed.png) no-repeat;
background-position: 5px 1px;
border-bottom: 1px solid #EBEBEB;
}
+#mailboxlist li div
+{
+ position: absolute;
+ left: 8px !important;
+ left: -16px;
+ top: 2px;
+ width: 14px;
+ height: 16px;
+}
+
+#mailboxlist li div.collapsed,
+#mailboxlist li div.expanded
+{
+ cursor: pointer;
+}
+
+#mailboxlist li div.collapsed
+{
+ background: url(images/icons/collapsed.png) bottom right no-repeat;
+}
+
+#mailboxlist li div.expanded
+{
+ background: url(images/icons/expanded.png) bottom right no-repeat;
+}
+
#mailboxlist li.inbox
{
background-image: url(images/icons/folder-inbox.png);
#mailboxlist li a
{
+ cursor: default;
display: block;
+ position: relative;
padding-left: 25px;
padding-top: 2px;
padding-bottom: 2px;
font-weight: bold;
}
+#mailboxlist li.virtual > a
+{
+ color: #666;
+}
+
#mailboxlist li.selected,
#mailboxlist li.droptarget li.selected
{
}
-#mailboxcontrols
+#mailfooter
{
position: absolute;
left: 20px;
- width: 170px;
- bottom: 20px;
- height: 16px;
- overflow: hidden;
+ right: 20px;
+ bottom: 18px;
+ height: 20px;
+ /* css hack for IE */
+ width: expression((parseInt(document.documentElement.clientWidth)-40)+'px');
+}
+
+#mailfooter table tr td
+{
+ white-space: nowrap;
+ vertical-align: bottom;
+}
+
+#mailboxcontrols,
+#listcontrols,
+#countcontrols,
+#quotabox
+{
+ white-space: nowrap;
font-size: 11px;
}
display: table;
table-layout: fixed;
/* css hack for IE */
- width: expression(parseInt(document.getElementById('mailcontframe').clientWidth)+'px');
+ width: expression('auto');
}
-/* safari hack \*/
-html>body*#messagelist[id$="messagelist"]:not([class="none"]) { table-layout: auto; }
-/**/
-
#messagelist thead tr td
{
height: 20px;
white-space: nowrap;
text-overflow: ellipsis;
border-bottom: 1px solid #EBEBEB;
- cursor: pointer;
+ cursor: default;
}
#messagelist tbody tr td a
color: #000;
text-decoration: none;
white-space: nowrap;
+ cursor: inherit;
+}
+
+#messagelist tbody tr td.subject a
+{
+ cursor: default;
}
#messagelist col
vertical-align: middle;
}
-#messagelist tr td.icon
+#messagelist tr td.icon,
+#messagelist tr td.flag
{
width: 16px;
vertical-align: middle;
+ cursor: pointer;
+}
+
+#messagelist tbody tr td.flag img:hover,
+#messagelist thead tr td.flag img
+{
+ background: url(images/icons/unflagged.png) center no-repeat;
}
#messagelist tr td.subject
vertical-align: middle;
}
+#messagelist thead tr td.size
+{
+ text-align: left;
+}
+
#messagelist tr td.from,
#messagelist tr td.to
{
background-color: #FFFFFF;
}
+#messagelist tr.flagged td,
+#messagelist tr.flagged td a
+{
+ color: #CC0000;
+}
+
#messagelist tr.selected td
{
color: #FFFFFF;
color: #FFFFFF;
}
-#messagelist tr.deleted td a
-{
- color: #CCCCCC;
-}
-
#messagelist tr.deleted td,
#messagelist tr.deleted td a
{
color: #CCCCCC;
}
+/* safari hacks \*/
+html>body*#messagelist[id$="messagelist"]:not([class="none"]) { width: 99.8%; }
+html>body*#messagelist[id$="messagelist"]:not([class="none"]) tr td.flag,
+html>body*#messagelist[id$="messagelist"]:not([class="none"]) tr td.icon { width: 20px; }
+html>body*input[type$="file"]:not([class="none"]) { background-color: transparent; border: 0; }
+/**/
#quotadisplay
{
{
vertical-align: middle;
margin-left: 4px;
- border: 1px solid #666666;
+ border: 1px solid #999;
}
/** message view styles */
-
#messageframe
{
position: absolute;
- top: 85px;
- left: 200px;
- right: 20px;
- bottom: 40px;
+ top: 0px;
+ left: 170px;
+ right: 0px;
+ bottom: 0px;
+ border: 1px solid #999;
+ background-color: #FFF;
+ overflow: auto;
+ /* css hack for IE */
+ width: expression((parseInt(this.parentNode.offsetWidth)-170)+'px');
+ height: expression((parseInt(this.parentNode.offsetHeight))+'px');
+}
+
+#messagecanvas
+{
+ /* css hack for IE */
+ width: expression((parseInt(this.parentNode.offsetWidth)-20)+'px');
+}
+
+#printmessageframe
+{
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ right: 0px;
+ bottom: 0px;
border: 1px solid #999;
background-color: #FFF;
overflow: auto;
/* css hack for IE */
- /* margin-bottom: 10px; */
width: expression((parseInt(document.documentElement.clientWidth)-220)+'px');
height: expression((parseInt(document.documentElement.clientHeight)-125)+'px');
}
border: 1px solid #ccc;
}
+#messageframe table.headers-table
+{
+ border-bottom: 1px solid #ccc;
+}
+
table.headers-table tr td
{
font-size: 11px;
table.headers-table tr td.subject
{
- width: 95%;
+ width: 90%;
font-weight: bold;
}
+table.headers-table tr td.all
+{
+ width: 100%;
+ color: #666666;
+ text-align: left;
+ padding-right: 10px;
+ vertical-align: center;
+ text-align: center;
+}
+
#attachment-list
{
margin: 0px;
#messagebody
{
position:relative;
- min-height: 300px;
padding-bottom: 10px;
background-color: #FFFFFF;
}
color: #0000CC;
}
+div.message-part pre,
div.message-part div.pre
{
margin: 0px;
padding: 0px;
+ font-family: monospace;
white-space: -moz-pre-wrap !important;
+ white-space: -o-pre-wrap !important;
+ white-space: pre-wrap !important;
white-space: pre;
- font-family: monospace;
+ word-wrap: break-word; /* IE (and Safari) */
}
div.message-part blockquote
border-right: 2px solid #bb0000;
}
+body.iframe
+{
+ /* css hack for IE */
+ width: expression((parseInt(document.documentElement.clientWidth))+'px');
+}
+
body.iframe div.message-htmlpart
{
margin: 8px;
#remote-objects-message
{
display: none;
- height: 20px;
+ margin: 8px;
min-height: 20px;
- margin: 8px 8px 0px 8px;
- padding: 10px 10px 6px 46px;
+ padding: 10px 10px 6px 46px;
}
#remote-objects-message a
color: #333333;
}
+#messageviewlink
+{
+ position: absolute;
+ top: 8px;
+ right: 10px;
+ width: 15px;
+ height: 15px;
+ border: 0;
+}
/** message compose styles */
+#compose-toolbar
+{
+ white-space: nowrap;
+}
+
#priority-selector,
#receipt-selector
{
left: 200px;
right: 25px;
bottom: 30px;
- padding: 0px;
margin: 0px;
/* css hack for IE */
width: expression((parseInt(document.documentElement.clientWidth)-220)+'px');
- height: expression((parseInt(document.documentElement.clientHeight)-130)+'px');
+ height: expression((parseInt(document.documentElement.clientHeight)-120)+'px');
}
-/*
-#compose-headers
+#compose-div
{
position: absolute;
- top: 70px;
- left: 200px;
- height: 84px;
- border-top: 1px solid #cccccc;
- overflow: auto;
-}
-
-#compose-headers td
-{
- padding-top: 1px;
- padding-bottom: 1px;
- border-right: 1px solid #cccccc;
- border-bottom: 1px solid #cccccc;
-}
-*/
-
-#compose-headers
-{
+ top: 110px;
+ bottom: 40px;
width: 100%;
+ vertical-align: top;
}
-/*
-#compose-headers td
+#compose-headers
{
width: 100%;
}
-*/
#compose-headers td.top
{
#compose-body
{
- margin-top: 5px;
- margin-bottom: 10px;
- height: 90%;
- min-height: 280px;
+ min-height: 100px;
+ height: 100%;
font-size: 9pt;
font-family: "Courier New", Courier, monospace;
}
top: 150px;
left: 20px;
z-index: 200;
- padding: 8px;
+ padding: 6px;
visibility: hidden;
border: 1px solid #CCCCCC;
background-color: #F9F9F9;
}
-#attachment-form input.button
+#attachment-form div
{
- margin-top: 8px;
+ padding: 2px;
+}
+
+#attachment-form div.buttons
+{
+ margin-top: 4px;
}
+table.headers-table tr td.more-headers
+{
+ cursor: pointer;
+ width: 100%;
+ height: 8px;
+ border-bottom: 0;
+}
+
+table.headers-table tr td.all
+{
+ padding: 2px 6px 4px 6px;
+ border-bottom: 0;
+}
+
+td.show-headers
+{
+ background: url(images/icons/down_small.gif) no-repeat center;
+}
+
+td.hide-headers
+{
+ background: url(images/icons/up_small.gif) no-repeat center;
+}
+
+#all-headers
+{
+ height: 150px;
+ display: none;
+}
+
+#headers-source
+{
+ margin: 0 5px;
+ padding: 0.5em;
+ height: 145px;
+ background: white;
+ overflow: auto;
+ font-size: 11px;
+ white-space: nowrap;
+ border: 1px solid #999999;
+ display: none;
+ text-align: left;
+ color: #333;
+}
+
+font.bold
+{
+ font-weight: bold;
+}
{
margin: 0;
padding: 0;
- white-space: pre;
font-family: monospace;
+ white-space: -o-pre-wrap !important;
+ white-space: -moz-pre-wrap !important;
+ white-space: pre-wrap !important;
+ white-space: pre;
+ word-wrap: break-word; /* IE (and Safari) */
}
div.message-part blockquote
position: absolute;
top: 50px;
left: 220px;
- right: 60px;
+ right: 20px;
height: 22px;
border-bottom: 1px solid #999999;
white-space: nowrap;
/* css hack for IE */
- width: expression((parseInt(document.documentElement.clientWidth)-280)+'px');
+ width: expression((parseInt(document.documentElement.clientWidth)-240)+'px');
}
span.tablink,
position: absolute;
top: 95px;
left: 20px;
- width: 600px;
- border: 1px solid #999999;
+ bottom: 60px;
+ right: 20px;
+ overflow: auto;
+ border: 1px solid #999999;
+ /* css hack for IE */
+ height: expression((parseInt(document.documentElement.clientHeight)-155)+'px');
+ width: expression((parseInt(document.documentElement.clientWidth)-40)+'px');
}
#userprefs-box table td.title
{
color: #666666;
padding-right: 10px;
+ white-space: nowrap;
+}
+
+#userprefs-box table tr.advanced
+{
+ display: none;
+}
+
+.userprefs-block
+{
+ float: left;
+ margin-right: 14px;
+ width: 520px;
}
#identities-list,
position: absolute;
top: 95px;
left: 20px;
+ overflow: auto;
}
#folder-manager
bottom: 140px;
overflow: auto;
border: 1px solid #999999;
+ /* css hack for IE */
height: expression((parseInt(document.documentElement.clientHeight)-235)+'px');
}
background-color: #FFFFA6;
}
-#identities-table
+#identities-list
{
- width: 600px;
+ bottom: 60px;
+ width: 420px;
border: 1px solid #999999;
+ /* css hack for IE */
+ height: expression((parseInt(document.documentElement.clientHeight)-155)+'px');
+}
+
+#listbuttons
+{
+ position: absolute;
+ left: 20px;
+ bottom: 18px;
+}
+
+#identities-table
+{
+ width: 420px;
+ table-layout: fixed;
background-color: #F9F9F9;
}
#identities-table tbody td
{
- cursor: pointer;
+ cursor: default;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+#identities-table thead td.name
+{
+ width: 55%;
+}
+
+#identities-table thead td.email
+{
+ width: 45%;
}
#identity-frame
#identity-details
{
- margin-top: 30px;
- width: 600px;
+ position: absolute;
+ top: 95px;
+ left: 450px;
+ right: 20px;
+ bottom: 60px;
border: 1px solid #999999;
+ overflow: auto;
+ /* css hack for IE */
+ width: expression((parseInt(document.documentElement.clientWidth)-470)+'px');
+ height: expression((parseInt(document.documentElement.clientHeight)-155)+'px');
}
#identity-details table td.title
padding-right: 10px;
}
+input.disabled
+{
+ color: #999999;
+}
+
#bottomboxes
{
position: absolute;
{
width: 600px;
margin-top: 20px;
- margin-bottom: 20px;
border: 1px solid #999999;
}
#subscription-table
{
width: 100%;
+ /* css hack for IE */
+ width: expression('auto');
}
#subscription-table tbody td
{
- height: 16px;
+ height: 20px;
padding-left: 6px;
padding-right: 10px;
white-space: nowrap;
border-bottom: 1px solid #EBEBEB;
background-color: #F9F9F9;
- cursor: pointer;
+ cursor: default;
+}
+
+#subscription-table tr.virtual td
+{
+ color: #666;
}
#subscription-table tr.selected td,
{
margin-bottom: 0.5em;
border: 1px solid #999999;
+ padding: 4px 8px 9px 8px;
}
legend
{
color: #999999;
}
-
\ No newline at end of file
+
+div.advswitch
+{
+ white-space: nowrap;
+ text-align: right;
+ position: absolute;
+ bottom: 35px;
+ right: 20px;
+ width: 460px;
+}
this.id = attrib.id ? attrib.id : this.p1id + '_' + this.p2id + '_splitter';
this.orientation = attrib.orientation;
this.horizontal = (this.orientation == 'horizontal' || this.orientation == 'h');
- this.offset_1 = bw.ie ? 0 : -1;
- this.offset_2 = bw.ie ? -2 : 1;
- this.pos = 0;
+ this.offset = bw.ie6 ? 2 : 0;
+ this.pos = attrib.start ? attrib.start * 1 : 0;
+ this.relative = attrib.relative ? true : false;
+ this.drag_active = false;
this.init = function()
{
this.p1 = document.getElementById(this.p1id);
this.p2 = document.getElementById(this.p2id);
-
+
// create and position the handle for this splitter
- this.p1pos = rcube_get_object_pos(this.p1);
- this.p2pos = rcube_get_object_pos(this.p2);
- var top = this.p1pos.y + this.p1.offsetHeight;
- var height = this.p2pos.y - this.p1pos.y - this.p1.offsetHeight;
- var left = this.p1pos.x + this.p1.offsetWidth;
- var width = this.p2pos.x - this.p1pos.x - this.p1.offsetWidth;
+ this.p1pos = rcube_get_object_pos(this.p1, this.relative);
+ this.p2pos = rcube_get_object_pos(this.p2, this.relative);
if (this.horizontal)
- this.layer = new rcube_layer(this.id, {x: this.p1pos.x, y: top, height: height, width: this.p1.offsetWidth, vis: 1});
+ {
+ var top = this.p1pos.y + this.p1.offsetHeight;
+ this.layer = new rcube_layer(this.id, {x: 0, y: top, height: 10,
+ width: '100%', vis: 1, parent: this.p1.parentNode});
+ }
else
- this.layer = new rcube_layer(this.id, {x: left, y: this.p1pos.y, width: width, height: this.p1.offsetHeight, vis: 1});
+ {
+ var left = this.p1pos.x + this.p1.offsetWidth;
+ this.layer = new rcube_layer(this.id, {x: left, y: 0, width: 10,
+ height: '100%', vis: 1, parent: this.p1.parentNode});
+ }
this.elm = this.layer.elm;
this.elm.className = 'splitter '+(this.horizontal ? 'splitter-h' : 'splitter-v');
+ this.elm.unselectable = 'on';
// add the mouse event listeners
rcube_event.add_listener({element: this.elm, event:'mousedown', object:this, method:'onDragStart'});
- rcube_event.add_listener({element: window, event:'resize', object:this, method:'onResize'});
+ if (bw.ie)
+ rcube_event.add_listener({element: window, event:'resize', object:this, method:'onResize'});
- // read saved position form cookie
+ // read saved position from cookie
var cookie = bw.get_cookie(this.id);
- if (cookie)
+ if (cookie && !isNaN(cookie))
{
- var param = cookie.split(':');
- for (var i=0, p; i<param.length; i++)
- {
- p = param[i].split('=');
- this[p[0]] = !isNaN(p[1]) ? parseFloat(p[1]) : p[1];
- }
-
+ this.pos = parseFloat(cookie);
this.resize();
}
+ else if (this.pos)
+ {
+ this.resize();
+ this.set_cookie();
+ }
};
/**
*/
this.resize = function()
{
- if (this.horizontal)
+ if (this.horizontal)
{
- this.p1.style.height = Math.floor(this.pos - this.p1pos.y - this.layer.height / 2 + this.offset_1) + 'px';
- this.p2.style.top = Math.ceil(this.pos + (this.layer.height / 2 + this.offset_2)) + 'px';
- this.layer.move(this.layer.x, Math.round(this.pos - this.layer.height / 2 + 1));
+ var lh = this.layer.height - this.offset * 2;
+ this.p1.style.height = Math.floor(this.pos - this.p1pos.y - lh / 2) + 'px';
+ this.p2.style.top = Math.ceil(this.pos + lh / 2) + 'px';
+ this.layer.move(this.layer.x, Math.round(this.pos - lh / 2 + 1));
+ if (bw.ie)
+ {
+ var new_height = (parseInt(this.p2.parentNode.offsetHeight) - parseInt(this.p2.style.top));
+ this.p2.style.height = (new_height > 0 ? new_height : 0) +'px';
+ }
}
else
{
- this.p1.style.width = Math.floor(this.pos - this.p1pos.x - this.layer.width / 2 + this.offset_1) + 'px';
- this.p2.style.left = Math.ceil(this.pos + this.layer.width / 2 + this.offset_2) + 'px';
+ this.p1.style.width = Math.floor(this.pos - this.p1pos.x - this.layer.width / 2) + 'px';
+ this.p2.style.left = Math.ceil(this.pos + this.layer.width / 2) + 'px';
this.layer.move(Math.round(this.pos - this.layer.width / 2 + 1), this.layer.y);
+ if (bw.ie)
+ this.p2.style.width = (parseInt(this.p2.parentNode.offsetWidth) - parseInt(this.p2.style.left))+'px';
}
};
*/
this.onDragStart = function(e)
{
- this.p1pos = rcube_get_object_pos(this.p1);
- this.p2pos = rcube_get_object_pos(this.p2);
-
+ this.p1pos = rcube_get_object_pos(this.p1, this.relative);
+ this.p2pos = rcube_get_object_pos(this.p2, this.relative);
+ this.drag_active = true;
+
// start listening to mousemove events
rcube_event.add_listener({element:document, event:'mousemove', object:this, method:'onDrag'});
rcube_event.add_listener({element:document, event:'mouseup', object:this, method:'onDragStop'});
// the position of each iframe when the event is received
var s = this;
var id = iframes[n].id;
- this.iframe_events[n] = function(e){ e._rc_pos_offset = rcube_get_object_pos(document.getElementById(id)); return s.onDrag(e); }
+ this.iframe_events[n] = function(e){ e._offset = rcube_get_object_pos(document.getElementById(id)); return s.onDrag(e); }
+
if (iframedoc.addEventListener)
iframedoc.addEventListener('mousemove', this.iframe_events[n], false);
else if (iframes[n].attachEvent)
*/
this.onDrag = function(e)
{
+ if (!this.drag_active) return false;
+
var pos = rcube_event.get_mouse_pos(e);
- if (e._rc_pos_offset)
+
+ if (this.relative)
{
- pos.x += e._rc_pos_offset.x;
- pos.y += e._rc_pos_offset.y;
+ var parent = rcube_get_object_pos(this.p1.parentNode);
+ pos.x -= parent.x;
+ pos.y -= parent.y;
}
if (this.horizontal)
}
}
- this.p1pos = rcube_get_object_pos(this.p1);
- this.p2pos = rcube_get_object_pos(this.p2);
+ this.p1pos = rcube_get_object_pos(this.p1, this.relative);
+ this.p2pos = rcube_get_object_pos(this.p2, this.relative);
return false;
};
// cancel the listening for drag events
rcube_event.remove_listener({element:document, event:'mousemove', object:this, method:'onDrag'});
rcube_event.remove_listener({element:document, event:'mouseup', object:this, method:'onDragStop'});
+ this.drag_active = false;
+
var iframes = document.getElementsByTagName('IFRAME');
for (var n in iframes)
if (this.iframe_events[n]) {
if (iframedoc.removeEventListener)
iframedoc.removeEventListener('mousemove', this.iframe_events[n], false);
- else if (iframedoc.detachEvent)
+ else if (iframedoc.detachEvent)
iframedoc.detachEvent('onmousemove', this.iframe_events[n]);
else
iframedoc['onmousemove'] = null;
- }
+ }
rcube_event.remove_listener({element:iframedoc, event:'mouseup', object:this, method:'onDragStop'});
}
}
- // save state in cookie
- var exp = new Date();
- exp.setYear(exp.getFullYear() + 1);
- bw.set_cookie(this.id, 'pos='+this.pos, exp);
+ this.set_cookie();
return bw.safari ? true : rcube_event.cancel(e);
};
*/
this.onResize = function(e)
{
- this.p1pos = rcube_get_object_pos(this.p1);
- this.p2pos = rcube_get_object_pos(this.p2);
- var height = this.horizontal ? this.p2pos.y - this.p1pos.y - this.p1.offsetHeight : this.p1.offsetHeight;
- var width = this.horizontal ? this.p1.offsetWidth : this.p2pos.x - this.p1pos.x - this.p1.offsetWidth;
- this.layer.resize(width, height);
+ if (this.horizontal)
+ {
+ var new_height = (parseInt(this.p2.parentNode.offsetHeight) - parseInt(this.p2.style.top));
+ this.p2.style.height = (new_height > 0 ? new_height : 0) +'px';
+ }
+ else
+ this.p2.style.width = (parseInt(this.p2.parentNode.offsetWidth) - parseInt(this.p2.style.left))+'px';
};
+ this.set_cookie = function()
+ {
+ // save state in cookie
+ var exp = new Date();
+ exp.setYear(exp.getFullYear() + 1);
+ bw.set_cookie(this.id, this.pos, exp);
+ }
+
} // end class rcube_splitter
<p><br />
<input type="button" value="<roundcube:label name="cancel" />" class="button" onclick="history.back()" />
-<roundcube:button command="save" type="input" class="button" label="save" />
+<roundcube:button command="save" type="input" class="button mainaction" label="save" />
</p>
</form>
</div>
-
</body>
</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title><roundcube:object name="pagetitle" /></title>
-<roundcube:include file="/includes/links.html" />
-<link rel="stylesheet" type="text/css" href="/settings.css" />
-</head>
-<body>
-
-<roundcube:include file="/includes/taskbar.html" />
-<roundcube:include file="/includes/header.html" />
-<roundcube:include file="/includes/settingstabs.html" />
-
-
-<div id="identities-list">
-<roundcube:object name="identitiesList" id="identities-table" class="records-table" cellspacing="0" summary="Identities list" editIcon="" />
-
-<p><roundcube:button command="add" type="input" label="newidentity" class="button" /></p>
-
-<div id="identity-details">
-<div id="identity-title"><roundcube:label name="newidentity" /></div>
-
-<div style="padding:15px;">
-<roundcube:object name="identityform" size="40" />
-
-<p><br />
-<roundcube:button command="save" type="input" class="button" label="save" />
-</p>
-</div>
-</div>
-</div>
-
-<roundcube:include file="/includes/settingscripts.html" />
-
-</body>
-</html>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/addresses.css" />
<script type="text/javascript" src="/splitter.js"></script>
+
+<style type="text/css">
+<roundcube:if condition="config:ldap_public == false" />
+#abookcountbar { left: 20px;}
+#mainscreen { left:20px; /* IE hack */ width:expression((parseInt(document.documentElement.clientWidth)-40)+'px') }
+#addresslist { width: <roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter-5 : 245" />px; }
+#contacts-box {
+ left: <roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter+5 : 255" />px;
+ /* IE hack */
+ width:expression((parseInt(mainscreen.offsetWidth)-<roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter+5 : 255" />)+'px')
+}
+<roundcube:else />
+#addresslist { width: <roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter-5 : 245" />px; }
+#contacts-box {
+ left: <roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter+5 : 255" />px;
+ /* IE hack */
+ width:expression((parseInt(mainscreen.offsetWidth)-<roundcube:exp expression="!empty(cookie:addressviewsplitter) ? cookie:addressviewsplitter+5 : 255" />)+'px')
+}
+<roundcube:endif />
+</style>
+
</head>
<body>
<roundcube:button command="add" imageSel="/images/buttons/add_contact_sel.png" imageAct="/images/buttons/add_contact_act.png" imagePas="/images/buttons/add_contact_pas.png" width="32" height="32" title="newcontact" />
<roundcube:button command="delete" imageSel="/images/buttons/delete_sel.png" imageAct="/images/buttons/delete_act.png" imagePas="/images/buttons/delete_pas.png" width="32" height="32" title="deletecontact" />
<roundcube:button command="compose" imageSel="/images/buttons/compose_sel.png" imageAct="/images/buttons/compose_act.png" imagePas="/images/buttons/compose_pas.png" width="32" height="32" title="composeto" />
-<roundcube:button command="print" imageSel="/images/buttons/print_sel.png" imageAct="/images/buttons/print_act.png" imagePas="/images/buttons/print_pas.png" width="32" height="32" title="print" />
-<roundcube:button command="export" imageSel="/images/buttons/download_sel.png" imageAct="/images/buttons/download_act.png" imagePas="/images/buttons/download_pas.png" width="32" height="32" title="export" />
+<roundcube:button command="import" imageSel="/images/buttons/adr_import_sel.png" imageAct="/images/buttons/adr_import_act.png" imagePas="/images/buttons/adr_import_pas.png" width="32" height="32" title="importcontacts" />
+<roundcube:button command="export" imageSel="/images/buttons/download_sel.png" imageAct="/images/buttons/download_act.png" imagePas="/images/buttons/download_pas.png" width="32" height="32" title="exportvcards" />
</div>
<div id="quicksearchbar">
<div id="groups-title"><roundcube:label name="groups" /></div>
<roundcube:object name="directorylist" id="directories-list" />
</div>
-
-<roundcube:else />
-<style type="text/css">
-#addresslist { left:20px; width:440px }
-#contacts-box { left:475px }
-#abookcountbar { left:20px }
-</style>
-
<roundcube:endif />
+<div id="mainscreen">
+
<div id="addresslist">
<roundcube:object name="addresslist" id="contacts-table" class="records-table" cellspacing="0" summary="Contacts list" />
</div>
<script type="text/javascript">
- var addrviewsplit = new rcube_splitter({id:'addressviewsplitter', p1: 'addresslist', p2: 'contacts-box', orientation: 'v'});
+ var addrviewsplit = new rcube_splitter({id:'addressviewsplitter', p1: 'addresslist', p2: 'contacts-box', orientation: 'v', relative: true, start: 250});
rcmail.add_onload('addrviewsplit.init()');
</script>
<roundcube:object name="addressframe" id="contact-frame" width="100%" height="100%" frameborder="0" src="/watermark.html" />
</div>
+</div>
+
<div id="abookcountbar">
<roundcube:button command="firstpage" imageSel="/images/buttons/first_sel.png" imageAct="/images/buttons/first_act.png" imagePas="/images/buttons/first_pas.png" width="11" height="11" title="firstpage" />
<roundcube:button command="previouspage" imageSel="/images/buttons/previous_sel.png" imageAct="/images/buttons/previous_act.png" imagePas="/images/buttons/previous_pas.png" width="11" height="11" title="previouspage" />
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/mail.css" />
<link rel="stylesheet" type="text/css" href="/googiespell.css" />
-<script type="text/javascript">
-<!--
-
-function rcmail_show_header_form(id, link)
-{
- var row, ns, ps;
- if (row = document.getElementById(id))
- row.style.display = (document.all && !window.opera) ? 'block' : 'table-row';
-
- if (link)
- {
- if ((ns = rcmail_next_sibling(link)))
- link.parentNode.removeChild(ns);
- else if ((ps = rcmail_prev_sibling(link)))
- link.parentNode.removeChild(ps);
-
- link.parentNode.removeChild(link);
- }
-
- return false;
-}
-
-function rcmail_next_sibling(elm)
-{
- var ns = elm.nextSibling;
- while (ns && ns.nodeType == 3)
- ns = ns.nextSibling;
- return ns;
-}
-
-function rcmail_prev_sibling(elm)
-{
- var ps = elm.previousSibling;
- while (ps && ps.nodeType == 3)
- ps = ps.previousSibling;
- return ps;
-}
-
-//-->
-</script>
+<script type="text/javascript" src="/functions.js"></script>
</head>
-<body>
+<body onload="rcmail_init_compose_form()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<div id="messagetoolbar">
<table border="0" cellspacing="0" cellpadding="0"><tr>
-<td>
- <roundcube:button command="list" image="/images/buttons/back_act.png" imageSel="/images/buttons/back_sel.png" imageAct="/images/buttons/back_act.png" width="32" height="32" title="backtolist" />
- <roundcube:button command="send" imageSel="/images/buttons/send_sel.png" imageAct="/images/buttons/send_act.png" imagePas="/images/buttons/send_pas.png" width="32" height="32" title="sendmessage" />
- <roundcube:button command="spellcheck" imageSel="/images/buttons/spellcheck_sel.png" imageAct="/images/buttons/spellcheck_act.png" imagePas="/images/buttons/spellcheck_pas.png" width="32" height="32" title="checkspelling" />
- <roundcube:button command="add-attachment" imageSel="/images/buttons/attach_sel.png" imageAct="/images/buttons/attach_act.png" imagePas="/images/buttons/attach_pas.png" width="32" height="32" title="addattachment" />
- <roundcube:button command="savedraft" imageSel="/images/buttons/drafts_sel.png" imageAct="/images/buttons/drafts_act.png" imagePas="/images/buttons/drafts_pas.png" width="32" height="32" title="savemessage" />
-</td>
-<td id="priority-selector">
- <label for="rcmcomposepriority"><roundcube:label name="priority" />:</label> <roundcube:object name="prioritySelector" form="form" id="rcmcomposepriority" />
-</td>
-<td id="receipt-selector">
- <roundcube:object name="receiptCheckBox" form="form" id="rcmcomposereceipt" /> <label for="rcmcomposereceipt"><roundcube:label name="returnreceipt" /></label>
-</td>
+ <td id="compose-toolbar">
+ <roundcube:button command="list" image="/images/buttons/back_act.png" imageSel="/images/buttons/back_sel.png" imageAct="/images/buttons/back_act.png" width="32" height="32" title="backtolist" />
+ <roundcube:button command="send" imageSel="/images/buttons/send_sel.png" imageAct="/images/buttons/send_act.png" imagePas="/images/buttons/send_pas.png" width="32" height="32" title="sendmessage" />
+ <roundcube:button command="spellcheck" imageSel="/images/buttons/spellcheck_sel.png" imageAct="/images/buttons/spellcheck_act.png" imagePas="/images/buttons/spellcheck_pas.png" width="32" height="32" title="checkspelling" />
+ <roundcube:button command="add-attachment" imageSel="/images/buttons/attach_sel.png" imageAct="/images/buttons/attach_act.png" imagePas="/images/buttons/attach_pas.png" width="32" height="32" title="addattachment" />
+ <roundcube:button command="savedraft" imageSel="/images/buttons/drafts_sel.png" imageAct="/images/buttons/drafts_act.png" imagePas="/images/buttons/drafts_pas.png" width="32" height="32" title="savemessage" />
+ </td>
+ <td id="priority-selector">
+ <label for="rcmcomposepriority"><roundcube:label name="priority" />:</label> <roundcube:object name="prioritySelector" form="form" id="rcmcomposepriority" />
+ </td>
+ <td id="receipt-selector">
+ <roundcube:object name="receiptCheckBox" form="form" id="rcmcomposereceipt" /> <label for="rcmcomposereceipt"><roundcube:label name="returnreceipt" /></label>
+ </td>
</tr></table>
</div>
<div id="compose-container">
-<table border="0" cellspacing="0" cellpadding="1" style="width:100%; height:99%;" summary="">
-<tbody>
-<tr>
-<td>
-
-<table border="0" cellspacing="0" cellpadding="1" id="compose-headers" summary="">
-<tbody><tr>
-
-<td class="title"><label for="rcmcomposefrom"><roundcube:label name="from" /></label></td>
-<td><roundcube:object name="composeHeaders" part="from" form="form" id="rcmcomposefrom" tabindex="1" /></td>
-
-</tr><tr>
-
-<td class="title top"><label for="rcmcomposeto"><roundcube:label name="to" /></label></td>
-<td><roundcube:object name="composeHeaders" part="to" form="form" id="rcmcomposeto" cols="80" rows="2" tabindex="2" /></td>
-
-</tr><tr id="compose-cc">
-
-<td class="title top"><label for="rcmcomposecc"><roundcube:label name="cc" /></label></td>
-<td><roundcube:object name="composeHeaders" part="cc" form="form" id="rcmcomposecc" cols="80" rows="2" tabindex="3" /></td>
-
-</tr><tr id="compose-bcc">
-
-<td class="title top"><label for="rcmcomposebcc"><roundcube:label name="bcc" /></label></td>
-<td><roundcube:object name="composeHeaders" part="bcc" form="form" id="rcmcomposebcc" cols="80" rows="2" tabindex="4" /></td>
-
-</tr><tr id="compose-replyto">
-
-<td class="title top"><label for="rcmcomposereplyto"><roundcube:label name="replyto" /></label></td>
-<td><roundcube:object name="composeHeaders" part="replyto" form="form" id="rcmcomposereplyto" size="80" tabindex="5" /></td>
-
-</tr><tr>
-
-<td></td>
-<td class="formlinks">
- <a href="#cc" onclick="return rcmail_show_header_form('compose-cc', this);" id="addcclink"><roundcube:label name="addcc" /></a>
- <span class="separator">|</span>
- <a href="#bcc" onclick="return rcmail_show_header_form('compose-bcc', this);" id="addbcclink"><roundcube:label name="addbcc" /></a>
- <span class="separator">|</span>
- <a href="#reply-to" onclick="return rcmail_show_header_form('compose-replyto', this);" id="addreplytolink"><roundcube:label name="addreplyto" /></a>
-</td>
-
-</tr><tr>
-
-<td class="title"><label for="compose-subject"><roundcube:label name="subject" /></label></td>
-<td><roundcube:object name="composeSubject" id="compose-subject" form="form" tabindex="6" /></td>
-
-</tr>
-</tbody>
-</table>
-
-</td>
-
-</tr><tr>
-
-<td style="width:100%; height:90%; vertical-align:top;">
-<roundcube:object name="composeBody" id="compose-body" form="form" cols="80" rows="20" tabindex="7" />
-
-<table border="0" cellspacing="0" width="100%" summary=""><tbody>
-<tr>
-<td>
-<roundcube:button type="input" command="send" class="button" label="sendmessage" />
-<roundcube:button type="input" command="list" class="button" label="cancel" />
-</td>
-<td align="right">
- <roundcube:label name="editortype" />:
- <span class="radios-left"><roundcube:object name="editorSelector" tabindex="9" /></span>
-</td>
-</tr>
-</tbody></table>
-
-</td>
-
-</tr>
-</tbody>
-</table>
-
+ <div id="compose-headers-div" style="width: 100%;">
+ <table border="0" cellspacing="0" cellpadding="1" id="compose-headers" summary="">
+ <tbody>
+ <tr>
+ <td class="title"><label for="_from"><roundcube:label name="from" /></label></td>
+ <td><roundcube:object name="composeHeaders" part="from" form="form" id="_from" tabindex="1" /></td>
+ </tr><tr>
+ <td class="title top"><label for="_to"><roundcube:label name="to" /></label></td>
+ <td><roundcube:object name="composeHeaders" part="to" form="form" id="_to" cols="70" rows="2" tabindex="2" /></td>
+ </tr><tr id="compose-cc">
+ <td class="title top"><a href="#cc" onclick="return rcmail_hide_header_form('cc');"><img src="/images/icons/minus.gif" alt="" title="<roundcube:label name='delete' />" /></a>
+ <label for="_cc"><roundcube:label name="cc" /></label></td>
+ <td><roundcube:object name="composeHeaders" part="cc" form="form" id="_cc" cols="70" rows="2" tabindex="3" /></td>
+ </tr><tr id="compose-bcc">
+ <td class="title top"><a href="#bcc" onclick="return rcmail_hide_header_form('bcc');"><img src="/images/icons/minus.gif" alt="" title="<roundcube:label name='delete' />" /></a>
+ <label for="_bcc"><roundcube:label name="bcc" /></label></td>
+ <td><roundcube:object name="composeHeaders" part="bcc" form="form" id="_bcc" cols="70" rows="2" tabindex="4" /></td>
+ </tr><tr id="compose-replyto">
+ <td class="title top"><a href="#replyto" onclick="return rcmail_hide_header_form('replyto');"><img src="/images/icons/minus.gif" alt="" title="<roundcube:label name='delete' />" /></a>
+ <label for="_replyto"><roundcube:label name="replyto" /></label></td>
+ <td><roundcube:object name="composeHeaders" part="replyto" form="form" id="_replyto" size="70" tabindex="5" /></td>
+ </tr><tr id="compose-links">
+ <td></td>
+ <td class="formlinks">
+ <a href="#cc" onclick="return rcmail_show_header_form('cc')" id="cc-link"><roundcube:label name="addcc" /></a>
+ <span class="separator">|</span>
+ <a href="#bcc" onclick="return rcmail_show_header_form('bcc')" id="bcc-link"><roundcube:label name="addbcc" /></a>
+ <span class="separator">|</span>
+ <a href="#reply-to" onclick="return rcmail_show_header_form('replyto')" id="replyto-link"><roundcube:label name="addreplyto" /></a>
+ </td>
+ </tr><tr>
+ <td class="title"><label for="compose-subject"><roundcube:label name="subject" /></label></td>
+ <td><roundcube:object name="composeSubject" id="compose-subject" form="form" tabindex="6" /></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div id="compose-div">
+ <roundcube:object name="composeBody" id="compose-body" form="form" cols="70" rows="20" tabindex="7" />
+ <table border="0" cellspacing="0" summary="" style="width:100%; margin-top: 5px;"><tbody>
+ <tr>
+ <td style="white-space: nowrap">
+ <roundcube:button type="input" command="send" class="button mainaction" label="sendmessage" tabindex="8" />
+ <roundcube:button type="input" command="list" class="button" label="cancel" tabindex="9" />
+ </td>
+ <td style="text-align:center; white-space: nowrap">
+ <label><roundcube:label name="savesentmessagein" />: <roundcube:object name="storetarget" maxlength="30" /></label>
+ </td>
+ <td style="text-align:right; white-space:nowrap">
+ <roundcube:label name="editortype" />:
+ <span class="radios-left"><roundcube:object name="editorSelector" editorid="compose-body" tabindex="10" /></span>
+ </td>
+ </tr>
+ </tbody></table>
+ </div>
</div>
<div id="compose-attachments">
<div id="attachment-title"><roundcube:label name="attachments" /></div>
<roundcube:object name="composeAttachmentList" deleteIcon="/images/icons/remove-attachment.png"/ >
-<p><roundcube:button command="add-attachment" imagePas="/images/buttons/add_pas.png" imageSel="/images/buttons/add_sel.png" imageAct="/images/buttons/add_act.png" width="23" height="18" title="addattachment" />
+<p><roundcube:button command="add-attachment" imagePas="/images/buttons/add_pas.png" imageSel="/images/buttons/add_sel.png" imageAct="/images/buttons/add_act.png" width="23" height="18" title="addattachment" /></p>
</div>
</form>
<roundcube:object name="composeAttachmentForm" id="attachment-form" />
-<script type="text/javascript">
-<!--
-
-var cc_field = document.getElementById('rcmcomposecc');
-if (cc_field && cc_field.value!='')
- rcmail_show_header_form('compose-cc', document.getElementById('addcclink'));
-var bcc_field = document.getElementById('rcmcomposebcc');
-if (bcc_field && bcc_field.value!='')
- rcmail_show_header_form('compose-bcc', document.getElementById('addbcclink'));
-
-//-->
-</script>
-
-
</body>
</html>
<p><br />
<roundcube:button command="show" type="input" class="button" label="cancel" />
-<roundcube:button command="save" type="input" class="button" label="save" />
+<roundcube:button command="save" type="input" class="button mainaction" label="save" />
</p>
</form>
</div>
-
</body>
</html>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/settings.css" />
+<script type="text/javascript" src="/functions.js"></script>
</head>
-<body>
+<body onload="rcube_init_settings_tabs()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<roundcube:include file="/includes/settingstabs.html" />
-
<div id="identities-list">
<roundcube:object name="identitiesList" id="identities-table" class="records-table" cellspacing="0" summary="Identities list" editIcon="" />
+</div>
-<p><roundcube:button command="add" type="input" label="newidentity" class="button" /></p>
+<p id="listbuttons">
+<roundcube:button command="add" type="input" label="newidentity" class="button" condition="config:identities_level:0<2" />
+</p>
<div id="identity-details">
-<div id="identity-title"><roundcube:label name="edititem" /></div>
+<div id="identity-title"><roundcube:object name="steptitle" /></div>
<div style="padding:15px;">
-<roundcube:object name="identityform" size="40" />
+<roundcube:object name="identityform" size="40" textareacols="60" textarearows="6" />
<p><br />
-<roundcube:button command="delete" type="input" class="button" label="delete" />
-<roundcube:button command="save" type="input" class="button" label="save" />
+<roundcube:button command="delete" type="input" class="button" label="delete" condition="env:action=='edit-identity'" style="margin-right:0.5em" />
+<roundcube:button command="save" type="input" class="button mainaction" label="save" />
</p>
</div>
</div>
-</div>
-
-<roundcube:include file="/includes/settingscripts.html" />
</body>
</html>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/settings.css" />
+<script type="text/javascript" src="/functions.js"></script>
</head>
-<body>
+<body onload="rcube_init_settings_tabs()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<div id="identities-list">
<roundcube:object name="identitiesList" id="identities-table" class="records-table" cellspacing="0" summary="Identities list" editIcon="" />
-
-<p><roundcube:button command="add" type="input" label="newidentity" class="button" /></p>
</div>
-<roundcube:include file="/includes/settingscripts.html" />
+<p id="listbuttons">
+<roundcube:button command="add" type="input" label="newidentity" class="button" condition="config:identities_level:0<2" />
+</p>
+
+<div id="identity-details">
+ <div style="margin:10px auto; text-align:center">
+ <img src="/images/watermark.gif" width="260" height="228" alt="RoundCube" />
+ </div>
+</div>
</body>
</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title><roundcube:object name="pagetitle" /></title>
+<roundcube:include file="/includes/links.html" />
+<link rel="stylesheet" type="text/css" href="/addresses.css" />
+</head>
+<body>
+
+<roundcube:include file="/includes/taskbar.html" />
+<roundcube:include file="/includes/header.html" />
+
+<div id="importbox">
+<div class="boxtitle"><roundcube:label name="importcontacts" /></div>
+
+<div style="padding-left:20px; width:48em">
+<roundcube:object name="importstep" />
+
+<p><br />
+<roundcube:object name="importnav" class="button" />
+</p>
+
+</div>
+</div>
+
+</body>
+</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><roundcube:object name="pagetitle" /></title>
+<meta name="Robots" content="noindex,nofollow" />
<roundcube:include file="/includes/links.html" />
<style type="text/css">
<div class="boxcontent">
<form name="form" action="./" method="post">
-<roundcube:object name="loginform" form="form" />
+<roundcube:object name="loginform" form="form" autocomplete="off" />
-<p style="text-align:center;"><input type="submit" class="button" value="<roundcube:label name='login' />" /></p>
+<p style="text-align:center;"><input type="submit" class="button mainaction" value="<roundcube:label name='login' />" /></p>
</form>
</div>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/mail.css" />
<script type="text/javascript" src="/splitter.js"></script>
-<script type="text/javascript">
-
-function rcube_mail_ui()
-{
- this.markmenu = new rcube_layer('markmessagemenu');
+<script type="text/javascript" src="/functions.js"></script>
+<style type="text/css">
+<roundcube:if condition="config:preview_pane == true" />
+#mailcontframe { height: <roundcube:exp expression="!empty(cookie:mailviewsplitter) ? cookie:mailviewsplitter-5 : 195" />px; }
+#mailpreviewframe {
+ top: <roundcube:exp expression="!empty(cookie:mailviewsplitter) ? cookie:mailviewsplitter+5 : 205" />px;
+ /* css hack for IE */
+ height: expression((parseInt(this.parentNode.offsetHeight)-<roundcube:exp expression="!empty(cookie:mailviewsplitter) ? cookie:mailviewsplitter+5 : 205" />)+'px');
}
-
-rcube_mail_ui.prototype = {
-
-show_markmenu: function(show)
-{
- if (typeof show == 'undefined')
- show = this.markmenu.visible ? false : true;
-
- var ref = rcube_find_object('markreadbutton');
- if (show && ref)
- this.markmenu.move(ref.offsetLeft, ref.offsetTop + ref.offsetHeight);
-
- this.markmenu.show(show);
-},
-
-body_mouseup: function(evt, p)
-{
- if (this.markmenu && this.markmenu.visible)
- this.show_markmenu(false);
-},
-
-body_keypress: function(evt, p)
-{
- if (rcube_event.get_keycode(evt) == 27 && this.markmenu && this.markmenu.visible)
- this.show_markmenu(false);
+<roundcube:endif />
+#mailboxlist-container { width: <roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv-5 : 160" />px; }
+#mailrightcontainer {
+ left: <roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv+5 : 170" />px;
+ /* css hack for IE */
+ width: expression((parseInt(this.parentNode.offsetWidth)-<roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv+5 : 170" />)+'px');
}
-
-};
-
-</script>
+</style>
</head>
-<body>
+<body onload="rcube_init_mail_ui()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
+<div id="mainscreen">
+
<div id="mailboxlist-container">
<h3 id="mailboxlist-header"><roundcube:label name="mailboxlist" /></h3>
<roundcube:object name="mailboxlist" id="mailboxlist" maxlength="16" />
</div>
-<div id="mailboxcontrols">
-<roundcube:label name="folder" />:
-<roundcube:button command="expunge" label="compact" classAct="active" />
-<roundcube:button command="purge" label="empty" classAct="active" />
-</div>
+<script type="text/javascript">
+ var mailviewsplitv = new rcube_splitter({id:'mailviewsplitterv', p1: 'mailboxlist-container', p2: 'mailrightcontainer', orientation: 'v', relative: true, start: 165});
+ rcmail.add_onload('mailviewsplitv.init()');
+</script>
+<div id="mailrightcontainer">
<div id="mailcontframe">
<roundcube:object name="messages"
id="messagelist"
cellspacing="0"
+ columns=""
summary="Message list"
messageIcon="/images/icons/dot.png"
unreadIcon="/images/icons/unread.png"
deletedIcon="/images/icons/deleted.png"
repliedIcon="/images/icons/replied.png"
- attachmentIcon="/images/icons/attachment.png" />
+ forwardedIcon="/images/icons/forwarded.png"
+ forwardedrepliedIcon="/images/icons/forwarded_replied.png"
+ attachmentIcon="/images/icons/attachment.png"
+ flaggedIcon="/images/icons/flagged.png"
+ unflaggedIcon="/images/icons/blank.gif" />
</div>
<roundcube:if condition="config:preview_pane == true" />
+
<script type="text/javascript">
- var mailviewsplit = new rcube_splitter({id:'mailviewsplitter', p1: 'mailcontframe', p2: 'mailpreviewframe', orientation: 'h'});
+ var mailviewsplit = new rcube_splitter({id:'mailviewsplitter', p1: 'mailcontframe', p2: 'mailpreviewframe', orientation: 'h', relative: true, start: 200});
rcmail.add_onload('mailviewsplit.init()');
</script>
+
<div id="mailpreviewframe">
<roundcube:object name="messagecontentframe" id="messagecontframe" width="100%" height="100%" frameborder="0" src="/watermark.html" />
</div>
-<style type="text/css">
-#mailcontframe {
- bottom: auto;
- height: 208px;
-}
-</style>
<roundcube:endif />
-<div id="listcontrols">
+</div>
+
+</div>
+
+<div id="mailfooter">
+<table cellpadding="1" cellspacing="0">
+<tr>
+<td width="99%">
+<span id="mailboxcontrols">
+<roundcube:label name="folder" />:
+<roundcube:button command="expunge" label="compact" classAct="active" />
+<roundcube:button command="purge" label="empty" classAct="active" />
+</span>
+<span id="listcontrols">
<roundcube:label name="select" />:
<roundcube:button command="select-all" label="all" classAct="active" />
<roundcube:button command="select-all" prop="unread" label="unread" classAct="active" />
-<roundcube:button command="select-none" label="none" classAct="active" />
+<roundcube:button command="select-none" label="none" classAct="active" />
+</span>
<roundcube:if condition="env:quota" />
-<roundcube:label name="quota" />: <roundcube:object name="quotaDisplay" display="image" width="120" id="quotadisplay" />
+<span id="quotabox">
+<roundcube:label name="quota" />: <roundcube:object name="quotaDisplay" display="image" width="100" id="quotadisplay" />
+</span>
<roundcube:endif />
+</td>
+<td width="1%">
+<span id="countcontrols">
+<roundcube:button command="firstpage" imageSel="/images/buttons/first_sel.png" imageAct="/images/buttons/first_act.png" imagePas="/images/buttons/first_pas.png" width="11" height="11" title="firstmessages" />
+<roundcube:button command="previouspage" imageSel="/images/buttons/previous_sel.png" imageAct="/images/buttons/previous_act.png" imagePas="/images/buttons/previous_pas.png" width="11" height="11" title="previousmessages" />
+ <roundcube:object name="messageCountDisplay" />
+<roundcube:button command="nextpage" imageSel="/images/buttons/next_sel.png" imageAct="/images/buttons/next_act.png" imagePas="/images/buttons/next_pas.png" width="11" height="11" title="nextmessages" />
+<roundcube:button command="lastpage" imageSel="/images/buttons/last_sel.png" imageAct="/images/buttons/last_act.png" imagePas="/images/buttons/last_pas.png" width="11" height="11" title="lastmessages" />
+</span>
+</td>
+</tr>
+</table>
</div>
<div id="messagetoolbar">
<roundcube:button command="checkmail" imageSel="/images/buttons/inbox_sel.png" imageAct="/images/buttons/inbox_act.png" imagePas="/images/buttons/inbox_pas.png" width="32" height="32" title="checkmail" />
<roundcube:button command="compose" imageSel="/images/buttons/compose_sel.png" imageAct="/images/buttons/compose_act.png" imagePas="/images/buttons/compose_pas.png" width="32" height="32" title="writenewmessage" />
-<roundcube:button name="markreadbutton" id="markreadbutton" image="/images/buttons/markread_act.png" width="32" height="32" title="markmessages" onclick="rcmailUI.show_markmenu();return false" />
+<roundcube:button name="markreadbutton" id="markreadbutton" image="/images/buttons/markread_act.png" width="32" height="32" title="markmessages" onclick="rcmail_ui.show_markmenu();return false" />
<roundcube:button command="reply" imageSel="/images/buttons/reply_sel.png" imageAct="/images/buttons/reply_act.png" imagePas="/images/buttons/reply_pas.png" width="32" height="32" title="replytomessage" />
<roundcube:button command="reply-all" imageSel="/images/buttons/replyall_sel.png" imageAct="/images/buttons/replyall_act.png" imagePas="/images/buttons/replyall_pas.png" width="32" height="32" title="replytoallmessage" />
<roundcube:button command="forward" imageSel="/images/buttons/forward_sel.png" imageAct="/images/buttons/forward_act.png" imagePas="/images/buttons/forward_pas.png" width="32" height="32" title="forwardmessage" />
<ul class="toolbarmenu">
<li><roundcube:button command="mark" prop="read" label="markread" classAct="active" /></li>
<li><roundcube:button command="mark" prop="unread" label="markunread" classAct="active" /></li>
+ <li><roundcube:button command="mark" prop="flagged" label="markflagged" classAct="active" /></li>
+ <li><roundcube:button command="mark" prop="unflagged" label="markunflagged" classAct="active" /></li>
</ul>
</div>
+
+<div id="searchfilter">
+ <label for="rcmlistfilter"><roundcube:label name="filter" /></label>:
+ <roundcube:object name="searchfilter" class="searchfilter" />
+</div>
</div>
<div id="quicksearchbar">
<roundcube:object name="searchform" type="search" results="5" id="quicksearchbox" /><roundcube:button command="reset-search" id="searchreset" image="/images/icons/reset.gif" title="resetsearch" />
</div>
-<div id="messagecountbar">
-<roundcube:button command="firstpage" imageSel="/images/buttons/first_sel.png" imageAct="/images/buttons/first_act.png" imagePas="/images/buttons/first_pas.png" width="11" height="11" title="firstmessages" />
-<roundcube:button command="previouspage" imageSel="/images/buttons/previous_sel.png" imageAct="/images/buttons/previous_act.png" imagePas="/images/buttons/previous_pas.png" width="11" height="11" title="previousmessages" />
- <roundcube:object name="messageCountDisplay" />
-<roundcube:button command="nextpage" imageSel="/images/buttons/next_sel.png" imageAct="/images/buttons/next_act.png" imagePas="/images/buttons/next_pas.png" width="11" height="11" title="nextmessages" />
-<roundcube:button command="lastpage" imageSel="/images/buttons/last_sel.png" imageAct="/images/buttons/last_act.png" imagePas="/images/buttons/last_pas.png" width="11" height="11" title="lastmessages" />
-</div>
-
-<script type="text/javascript">
-
-var rcmailUI = new rcube_mail_ui();
-rcube_event.add_listener({ object:rcmailUI, method:'body_mouseup', event:'mouseup' });
-rcube_event.add_listener({ object:rcmailUI, method:'body_keypress', event:'keypress' });
-
-</script>
</body>
</html>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/settings.css" />
+<script type="text/javascript" src="/functions.js"></script>
</head>
-<body>
+<body onload="rcube_init_settings_tabs()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
</form>
-<roundcube:include file="/includes/settingscripts.html" />
-
</body>
</html>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/mail.css" />
+<script type="text/javascript" src="/splitter.js"></script>
+<style type="text/css">
+#mailboxlist-container { width: <roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv-5 : 160" />px; }
+#messageframe {
+ left: <roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv+5 : 170" />px;
+ width: expression((parseInt(this.parentNode.offsetWidth)-<roundcube:exp expression="!empty(cookie:mailviewsplitterv) ? cookie:mailviewsplitterv+5 : 170" />)+'px');
+}
+</style>
</head>
<body>
<roundcube:object name="mailboxlist" type="select" noSelection="moveto" maxlength="25" onchange="rcmail.command('moveto', this.options[this.selectedIndex].value)" class="mboxlist" />
</div>
+<div id="mainscreen">
+
<div id="mailboxlist-container">
<div id="mailboxlist-header"><roundcube:label name="mailboxlist" /></div>
-<roundcube:object name="mailboxlist" id="mailboxlist" maxlength="16" />
+<roundcube:object name="mailboxlist" id="mailboxlist" maxlength="25" />
</div>
<div id="messageframe">
-
+<div id="messagecanvas">
<roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" addicon="/images/icons/plus.gif" summary="Message headers" />
<roundcube:object name="messageAttachments" id="attachment-list" />
<roundcube:object name="blockedObjects" id="remote-objects-message" />
-<roundcube:object name="messageBody" id="messagebody" showImages="true" />
+<roundcube:object name="messageBody" id="messagebody" />
+</div>
+</div>
</div>
+<script type="text/javascript">
+ var mailviewsplitv = new rcube_splitter({id:'mailviewsplitterv', p1: 'mailboxlist-container', p2: 'messageframe', orientation: 'v', relative: true, start: 165});
+ rcmail.add_onload('mailviewsplitv.init()');
+</script>
+
</body>
</html>
<body class="iframe">
<div class="messageheaderbox">
+<roundcube:button command="permaurl" image="/images/icons/extwin.png" width="15" height="15" title="openinextwin" id="messageviewlink" target="_blank" />
<roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" addicon="/images/icons/plus.gif" summary="Message headers" />
<roundcube:object name="messageAttachments" id="attachment-list" />
</div>
<div id="header"><img src="/images/roundcube_logo_print.gif" alt="<roundcube:object name="productname" />" /></div>
-<div id="messageframe">
+<div id="printmessageframe">
<roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" />
<roundcube:object name="messageAttachments" id="attachment-list" />
<roundcube:object name="messageBody" id="messagebody" showImages="false" />
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/settings.css" />
+<script type="text/javascript" src="/functions.js"></script>
</head>
-<body>
+<body onload="rcube_init_settings_tabs()">
<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<roundcube:include file="/includes/settingstabs.html" />
+<form name="form" action="./" method="post">
+
<div id="userprefs-box">
<div id="userprefs-title"><roundcube:label name="userpreferences" /></div>
-<div style="padding:15px">
-<roundcube:object name="userprefs">
-
-<p><roundcube:button command="save" type="input" class="button" label="save" /></p>
+<div style="padding:15px 0 15px 15px">
+<div class="userprefs-block">
+ <roundcube:object name="userprefs" form="form" parts="general,mailbox,mailview" />
+</div>
+<div class="userprefs-block">
+ <roundcube:object name="userprefs" form="form" parts="compose,folders,server" />
+</div>
+<div style="clear:left"></div>
</div>
</div>
-<roundcube:include file="/includes/settingscripts.html" />
+<p id="listbuttons">
+<roundcube:button command="save" type="input" class="button mainaction" label="save" />
+</p>
+
+</form>
+
+<div class="advswitch">
+<label for="advswitch"><roundcube:label name="advancedoptions"></label>
+<input type="checkbox" id="advswitch" name="_advanced" value="0" onclick="rcube_show_advanced(this.checked)" />
+</div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
+ <title></title>
</head>
-<body style="background-color:#F2F2F2;">
+<body style="background-color:#F2F2F2; width: expression((parseInt(document.documentElement.clientWidth)-20)+'px');">
-<div style="margin:10px auto; text-align:center">
-<img src="images/rcube_watermark.png" width="245" height="245" alt="" />
+<div style="margin:20px auto; text-align:center">
+<img src="images/watermark.gif" width="260" height="228" alt="" />
</div>
</body>