]> git.donarmstrong.com Git - roundcube.git/commitdiff
Imported Upstream version 0.5.1
authorJérémy Bobbio <lunar@debian.org>
Sat, 18 Jun 2011 19:26:07 +0000 (21:26 +0200)
committerJérémy Bobbio <lunar@debian.org>
Sat, 18 Jun 2011 19:26:07 +0000 (21:26 +0200)
81 files changed:
CHANGELOG
INSTALL
INSTALL.orig [deleted file]
SQL/mysql.update.sql
SQL/postgres.update.sql
SQL/sqlite.update.sql
config/main.inc.php.dist
index.php
installer/check.php
program/include/iniset.php
program/include/main.inc
program/include/rcmail.php
program/include/rcmail.php.orig [deleted file]
program/include/rcube_config.php
program/include/rcube_html_page.php
program/include/rcube_imap.php
program/include/rcube_imap_generic.php
program/include/rcube_ldap.php
program/include/rcube_message.php
program/include/rcube_plugin_api.php
program/include/rcube_session.php
program/include/rcube_shared.inc
program/include/rcube_smtp.php
program/include/rcube_template.php
program/js/app.js
program/js/app.js.src
program/js/common.js
program/js/common.js.src
program/js/tiny_mce/themes/advanced/langs/sv_dlg.js
program/js/tiny_mce/tiny_mce.js
program/lib/washtml.php
program/localization/az_AZ/labels.inc
program/localization/az_AZ/messages.inc
program/localization/bg_BG/labels.inc
program/localization/bg_BG/messages.inc
program/localization/da_DK/labels.inc
program/localization/da_DK/messages.inc
program/localization/de_DE/labels.inc
program/localization/de_DE/messages.inc
program/localization/fr_FR/labels.inc
program/localization/fr_FR/messages.inc
program/localization/he_IL/labels.inc
program/localization/he_IL/messages.inc
program/localization/hu_HU/labels.inc
program/localization/it_IT/labels.inc
program/localization/it_IT/messages.inc
program/localization/ja_JP/labels.inc
program/localization/ja_JP/messages.inc
program/localization/kh_KH/labels.inc
program/localization/kh_KH/messages.inc
program/localization/pt_PT/labels.inc
program/localization/pt_PT/messages.inc
program/localization/ru_RU/labels.inc
program/localization/ru_RU/messages.inc
program/localization/sk_SK/labels.inc
program/localization/sk_SK/messages.inc
program/localization/sv_SE/labels.inc
program/localization/sv_SE/messages.inc
program/localization/zh_TW/labels.inc
program/localization/zh_TW/messages.inc
program/steps/addressbook/import.inc
program/steps/addressbook/save.inc
program/steps/mail/addcontact.inc
program/steps/mail/compose.inc
program/steps/mail/func.inc
program/steps/mail/sendmail.inc
program/steps/settings/edit_identity.inc
program/steps/settings/folders.inc
program/steps/settings/func.inc
program/steps/settings/save_identity.inc
program/steps/settings/save_prefs.inc
program/steps/utils/error.inc
program/steps/utils/modcss.inc
skins/default/common.css
skins/default/functions.js
skins/default/ie6hacks.css
skins/default/iehacks.css
skins/default/mail.css
skins/default/templates/addressbook.html
skins/default/templates/message.html
skins/default/templates/messagepreview.html

index 3a24db1b774abf8dca4ea45f65428c2c2b8e23ae..867472610ce8792d0197905db9f1e54ebd33d6e4 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,40 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+RELEASE 0.5.1
+-------------
+- Fix handling of attachments with invalid content type (#1487767)
+- Add workaround for DBMail's bug http://www.dbmail.org/mantis/view.php?id=881 (#1487766)
+- Use IMAP's ID extension (RFC2971) to print more info into debug log
+- Security: add optional referer check to prevent CSRF in GET requests
+- Fix email_dns_check setting not used for identities/contacts (#1487740)
+- Fix ICANN example addresses doesn't validate (#1487742)
+- Security: protect login form submission from CSRF
+- Security: prevent from relaying malicious requests through modcss.inc
+- Fix handling of non-image attachments in multipart/related messages (#1487750)
+- Fix IDNA support when IDN/INTL modules are in use (#1487742)
+- Fix handling of invalid HTML comments in messages (#1487759)
+- Fix parsing FETCH response for very long headers (#1487753)
+- Fix add/remove columns in message list when message_sort_order isn't set (#1487751)
+- Fix settings UI on IE 6 (#1487724)
+- Remove double borders in folder listing (#1487713)
+- Separate full message headers UI element from headers table (#1487715)
+- Add part MIME ID to message_part_* hooks (#1487718) 
+- Updated PEAR::Net_Socket to 1.0.10
+- Updated PEAR::Net_IDNA2 to 0.1.1
+- Fix handling of comments inside an email address spec. (#1487673)
+- Show full mail subject as title when hovering a cut subject link (#1487128)
+- Fix randomly disappearing folders list in IE (#1487704)
+- Fix list column add/removal in IE (#1487703)
+- Fix login redirect issues (#1487686)
+- Require PHP 5.2.1 or greater
+- Fix %h/%z variables in username_domain option (#1487701)
+- Workaround for setting charset in case of malformed bodystructure response (#1487700)
+- Fix impossible to subscribe to protected folders (#1487656)
+- Fix setting timezone in Preferences (#1487705)
+
+RELEASE 0.5
+-----------
 - Fix double-login/session issue (#1487104)
 - Wrap HTML parts with <html><body> and add Doctype declaration (#1487098)
 - Make rcube_autoload silently skip unknown classes (#1487109)
diff --git a/INSTALL b/INSTALL
index 8216343a560e59c7cdf1eac5c0d6f151896d957b..956fb24cd8ab6de7606b4911e629192e6917f16d 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -11,7 +11,7 @@ REQUIREMENTS
 
 * The Apache or Lighttpd Webserver
 * .htaccess support allowing overrides for DirectoryIndex
-* PHP Version 5.2 or greater including
+* PHP Version 5.2.1 or greater including
    - PCRE, DOM, JSON, XML, Session, Sockets (required)
    - Libiconv
    - Multibyte String (mbstring)
@@ -22,6 +22,7 @@ REQUIREMENTS
    - MDB2 2.5.0 or newer
    - Mail_Mime 1.8.1 or newer
    - Net_SMTP 1.4.2 or newer
+   - Net_IDNA2 0.1.1 or newer
    - Auth_SASL 1.0.3 or newer
 * php.ini options (see .htaccess file):
    - error_reporting E_ALL & ~E_NOTICE (or lower)
diff --git a/INSTALL.orig b/INSTALL.orig
deleted file mode 100644 (file)
index eb83997..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-INTRODUCTION
-============
-
-This file describes the basic steps to install Roundcube Webmail on your
-web server. For additional information, please also consult the project's
-wiki page at http://trac.roundcube.net/wiki
-
-
-REQUIREMENTS
-============
-
-* The Apache or Lighttpd Webserver
-* .htaccess support allowing overrides for DirectoryIndex
-* PHP Version 5.2 or greater including
-   - PCRE, DOM, JSON, XML, Session, Sockets (required)
-   - libiconv (recommended)
-   - mbstring, fileinfo, mcrypt (optional)
-* PEAR packages distributed with Roundcube or external:
-   - MDB2 2.5.0 or newer
-   - Mail_Mime 1.8.1 or newer
-   - Net_SMTP 1.4.2 or newer
-   - Auth_SASL 1.0.3 or newer
-* php.ini options (see .htaccess file):
-   - error_reporting E_ALL & ~E_NOTICE (or lower)
-   - memory_limit > 16MB (increase as suitable to support large attachments)
-   - file_uploads enabled (for attachment upload features)
-   - session.auto_start disabled
-   - zend.ze1_compatibility_mode disabled
-   - suhosin.session.encrypt disabled
-   - mbstring.func_overload disabled
-* PHP compiled with OpenSSL to connect to IMAPS and to use the spell checker
-* A MySQL (4.0.8 or newer), PostgreSQL, MSSQL database engine
-  or the SQLite extension for PHP
-* One of the above databases with permission to create tables
-* An SMTP server (recommended) or PHP configured for mail delivery
-
-
-INSTALLATION
-============
-
-1. Decompress and put this folder somewhere inside your document root
-2. Make sure that the following directories (and the files within)
-   are writable by the webserver
-   - /temp
-   - /logs
-3. Create a new database and a database user for Roundcube (see DATABASE SETUP)
-4. Point your browser to http://url-to-roundcube/installer/
-5. Follow the instructions of the install script (or see MANUAL CONFIGURATION)
-6. After creating and testing the configuration, remove the installer directory
-7. Done!
-
-
-CONFIGURATION HINTS
-===================
-
-Roundcube writes internal errors to the 'errors' log file located in the logs
-directory which can be configured in config/main.inc.php. If you want ordinary
-PHP errors to be logged there as well, enable the 'php_value error_log' line
-in the .htaccess file and set the path to the log file accordingly.
-
-By default the session_path settings of PHP are not modified by Roundcube.
-However if you want to limit the session cookies to the directory where
-Roundcube resides you can uncomment and configure the according line
-in the .htaccess file.
-
-
-DATABASE SETUP
-==============
-
-Note: Database for Roundcube must use UTF-8 character set.
-
-* 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:
-
-# mysql
-> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-> GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost
-    IDENTIFIED BY 'password';
-> quit
-
-# mysql roundcubemail < SQL/mysql.initial.sql
-
-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'.
-
-
-* SQLite
---------
-You need sqlite 2 (preferably 2.8) to setup the sqlite db 
-(sqlite 3.x also doesn't work at the moment). Here is
-an example how you can setup the sqlite.db for roundcube:
-
-# sqlite -init SQL/sqlite.initial.sql sqlite.db
-Loading resources from SQL/sqlite.initial.sql
-SQLite version 2.8.16
-Enter ".help" for instructions
-sqlite> .exit
-# chmod o+rw sqlite.db
-
-Make sure your configuration points to the sqlite.db file and that the
-webserver can write to the file and the directory containing the file.
-
-
-* PostgreSQL
-------------
-To use Roundcube with PostgreSQL support you have to follow these
-simple steps, which have to be done as the postgres system user (or
-which ever is the database superuser):
-
-$ createuser roundcube
-$ createdb -O roundcube -E UNICODE roundcubemail
-$ psql roundcubemail
-
-roundcubemail =# ALTER USER roundcube WITH PASSWORD 'the_new_password';
-roundcubemail =# \c - roundcube
-roundcubemail => \i SQL/postgres.initial.sql
-
-All this has been tested with PostgreSQL 8.x and 7.4.x. Older
-versions don't have a -O option for the createdb, so if you are
-using that version you'll have to change ownership of the DB later.
-
-
-Database cleaning
------------------
-Do keep your database slick and clean we recommend to periodically execute
-bin/cleandb.sh which finally removes all records that are marked as deleted.
-Best solution is to install a cronjob running this script daily.
-
-
-
-MANUAL CONFIGURATION
-====================
-
-First of all, rename the files config/*.inc.php.dist to config/*.inc.php.
-You can then change these files according to your environment and your needs.
-Details about the config parameters can be found in the config files.
-See http://trac.roundcube.net/wiki/Howto_Install for even more guidance.
-
-You can also modify the default .htaccess file. This is necessary to
-increase the allowed size of file attachments, for example:
-       php_value       upload_max_filesize     2M
-
-
-UPGRADING
-=========
-
-If you already have a previous version of Roundcube installed,
-please refer to the instructions in UPGRADING guide.
-
-
-OPTIMISING
-==========
-
-There are two forms of optimisation here, compression and caching, both aimed
-at increasing an end user's experience using Roundcube Webmail. Compression
-allows the static web pages to be delivered with less bandwidth. The index.php
-of Roundcube Webmail already enables compression on its output. The settings
-below allow compression to occur for all static files. Caching sets HTTP 
-response headers that enable a user's web client to understand what is static
-and how to cache it.
-
-The caching directives used are:
- * Etags - sets at tag so the client can request is the page has changed
- * Cache-control - defines the age of the page and that the page is 'public'
-   This enables clients to cache javascript files that don't have private 
-   information between sessions even if using HTTPS. It also allows proxies
-   to share the same cached page between users.
- * Expires - provides another hint to increase the lifetime of static pages.
-
-For more information refer to RFC 2616.
-
-Side effects:
--------------
-These directives are designed for production use. If you are using this in
-a development environment you may get horribly confused if your webclient
-is caching stuff that you changed on the server. Disabling the expires 
-parts below should save you some grief.
-
-If you are changing the skins, it is recommended that you copy content to 
-a different directory apart from 'default'.
-
-Apache:
--------
-To enable these features in apache the following modules need to be enabled:
- * mod_deflate
- * mod_expires
- * mod_headers
-
-The optimisation is already included in the .htaccess file in the top 
-directory of your installation.
-
-If you are using Apache version 2.2.9 and later, in the .htaccess file
-change the 'append' word to 'merge' for a more correct response. Keeping
-as 'append' shouldn't cause any problems though changing to merge will 
-eliminate the possibility of duplicate 'public' headers in Cache-control.
-
-Lighttpd:
----------
-With Lightty the addition of Expire: tags by mod_expire is incompatible with
-the addition of "Cache-control: public". Using Cache-control 'public' is 
-used below as it is assumed to give a better caching result.
-
-Enable modules in server.modules:
-    "mod_setenv"
-    "mod_compress"
-
-Mod_compress is a server side cache of compressed files to improve its performance.
-
-$HTTP["host"] == "www.example.com" {
-
-    static-file.etags = "enable"
-    # http://redmine.lighttpd.net/projects/lighttpd/wiki/Etag.use-mtimeDetails
-    etag.use-mtime = "enable"
-
-    # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModSetEnv
-    $HTTP["url"] =~ "^/roundcubemail/(plugins|skins|program)" {
-        setenv.add-response-header  = ( "Cache-Control" => "public, max-age=2592000")
-    }
-
-    # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModCompress
-    # set compress.cache-dir to somewhere outside the docroot.
-    compress.cache-dir   = var.statedir + "/cache/compress"
-
-    compress.filetype = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml", "image/gif", "image/png")
-}
-
-
index 2af0a47e6f5ca58806fb1bbed8da6f1c01344101..aaab43fb23217f663c75919931c14d51e15b5de4 100644 (file)
@@ -131,3 +131,5 @@ ALTER TABLE `users` ADD UNIQUE `username` (`username`, `mail_host`);
 
 ALTER TABLE `contacts` MODIFY `email` varchar(255) NOT NULL;
 
+TRUNCATE TABLE `messages`;
+
index 444caf6f6ca47cf6e9948c499b9c6c2d29a6c374..2f4498d36897050fa600a100b5955db25e34804e 100644 (file)
@@ -88,3 +88,4 @@ DROP INDEX users_username_id_idx;
 ALTER TABLE users ADD UNIQUE (username, mail_host);
 ALTER TABLE contacts ALTER email TYPE varchar(255);
 
+TRUNCATE messages;
index 32869394489b3b7f54c44cb26c8affdb7a4ffc67..6f2acf91385c7a41b5e129bf8fac900ba63ba51a 100644 (file)
@@ -180,3 +180,5 @@ INSERT INTO contacts (contact_id, user_id, changed, del, name, email, firstname,
 CREATE INDEX ix_contacts_user_id ON contacts(user_id, email);
 DROP TABLE contacts_tmp;
 
+DELETE FROM messages;
+
index 144ca77b646d00264096b59a11e441c0ffebd541..ea0092b0d7e25f9f63d5b92be4fd9aefd911f8a1 100644 (file)
@@ -213,6 +213,9 @@ $rcmail_config['ip_check'] = false;
 // There have been problems reported with this feature.
 $rcmail_config['double_auth'] = false;
 
+// check referer of incoming requests
+$rcmail_config['referer_check'] = false;
+
 // this key is used to encrypt the users imap password which is stored
 // in the session record (and the client cookie if remember password is enabled).
 // please provide a string of exactly 24 chars.
index 57bcc64ce06d4fed1850944a7914e76654c73e47..883faa6d659cf321c490d5b3e18d0f2f50d79b25 100644 (file)
--- a/index.php
+++ b/index.php
@@ -2,9 +2,9 @@
 /*
  +-------------------------------------------------------------------------+
  | Roundcube Webmail IMAP Client                                           |
- | Version 0.5                                                             |
+ | Version 0.5.1                                                           |
  |                                                                         |
- | Copyright (C) 2005-2010, Roundcube Dev. - Switzerland                   |
+ | Copyright (C) 2005-2011, Roundcube Dev. - Switzerland                   |
  |                                                                         |
  | This program is free software; you can redistribute it and/or modify    |
  | it under the terms of the GNU General Public License version 2          |
@@ -23,7 +23,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                          |
  +-------------------------------------------------------------------------+
 
- $Id: index.php 4408 2011-01-12 15:54:35Z thomasb $
+ $Id: index.php 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -75,6 +75,8 @@ $RCMAIL->action = $startup['action'];
 
 // try to log in
 if ($RCMAIL->task == 'login' && $RCMAIL->action == 'login') {
+  $request_valid = $_SESSION['temp'] && $RCMAIL->check_request(RCUBE_INPUT_POST, 'login');
+
   // purge the session in case of new login when a session already exists 
   $RCMAIL->kill_session();
 
@@ -84,13 +86,14 @@ if ($RCMAIL->task == 'login' && $RCMAIL->action == 'login') {
     'pass' => get_input_value('_pass', RCUBE_INPUT_POST, true,
        $RCMAIL->config->get('password_charset', 'ISO-8859-1')),
     'cookiecheck' => true,
+    'valid' => $request_valid,
   ));
 
   // check if client supports cookies
   if ($auth['cookiecheck'] && empty($_COOKIE)) {
     $OUTPUT->show_message("cookiesdisabled", 'warning');
   }
-  else if ($_SESSION['temp'] && !$auth['abort'] &&
+  else if ($auth['valid'] && !$auth['abort'] &&
         !empty($auth['host']) && !empty($auth['user']) &&
         $RCMAIL->login($auth['user'], $auth['pass'], $auth['host'])) {
     // create new session ID
@@ -104,12 +107,17 @@ if ($RCMAIL->task == 'login' && $RCMAIL->action == 'login') {
     rcmail_log_login();
 
     // restore original request parameters
-    $query = array('_task' => 'mail');
-    if ($url = get_input_value('_url', RCUBE_INPUT_POST))
+    $query = array();
+    if ($url = get_input_value('_url', RCUBE_INPUT_POST)) {
       parse_str($url, $query);
+      
+      // prevent endless looping on login page
+      if ($query['_task'] == 'login')
+        unset($query['_task']);
+    }
 
     // allow plugins to control the redirect url after login success
-    $redir = $RCMAIL->plugins->exec_hook('login_after', $query);
+    $redir = $RCMAIL->plugins->exec_hook('login_after', $query + array('_task' => 'mail'));
     unset($redir['abort']);
 
     // send redirect
@@ -118,15 +126,15 @@ if ($RCMAIL->task == 'login' && $RCMAIL->action == 'login') {
   else {
     $error_code = is_object($IMAP) ? $IMAP->get_error_code() : -1;
 
-    $OUTPUT->show_message($error_code < -1 ? 'imaperror' : 'loginfailed', 'warning');
+    $OUTPUT->show_message($error_code < -1 ? 'imaperror' : (!$auth['valid'] ? 'invalidrequest' : 'loginfailed'), 'warning');
     $RCMAIL->plugins->exec_hook('login_failed', array(
       'code' => $error_code, 'host' => $auth['host'], 'user' => $auth['user']));
     $RCMAIL->kill_session();
   }
 }
 
-// end session
-else if ($RCMAIL->task == 'logout' && isset($_SESSION['user_id'])) {
+// end session (after optional referer check)
+else if ($RCMAIL->task == 'logout' && isset($_SESSION['user_id']) && (!$RCMAIL->config->get('referer_check') || rcube_check_referer())) {
   $userdata = array('user' => $_SESSION['username'], 'host' => $_SESSION['imap_host'], 'lang' => $RCMAIL->user->language);
   $OUTPUT->show_message('loggedout');
   $RCMAIL->logout_actions();
@@ -162,7 +170,7 @@ if (empty($RCMAIL->user->ID)) {
     );
   }
 
-  $OUTPUT->set_env('task', 'login');
+  $RCMAIL->set_task('login');
   $OUTPUT->send('login');
 }
 // CSRF prevention
@@ -182,6 +190,14 @@ else {
     $OUTPUT->show_message('invalidrequest', 'error');
     $OUTPUT->send($RCMAIL->task);
   }
+
+  // check referer if configured
+  if (!$request_check_whitelist[$RCMAIL->action] && $RCMAIL->config->get('referer_check') && !rcube_check_referer()) {
+    raise_error(array(
+      'code' => 403,
+      'type' => 'php',
+      'message' => "Referer check failed"), true, true);
+  }
 }
 
 // handle special actions
index 7fa4d95d3b245779f4d18c0be96f272f2864677b..0ba5f58de7ae34f865983a2a226762bc6570cc0b 100644 (file)
@@ -68,7 +68,7 @@ echo '<input type="hidden" name="_step" value="' . ($RCI->configured ? 3 : 2) .
 <h3>Checking PHP version</h3>
 <?php
 
-define('MIN_PHP_VERSION', '5.2.0');
+define('MIN_PHP_VERSION', '5.2.1');
 if (version_compare(PHP_VERSION, MIN_PHP_VERSION, '>=')) {
     $RCI->pass('Version', 'PHP ' . PHP_VERSION . ' detected');
 } else {
index 89fbb911ef76d887498afca49844222d48de0c8e..73a02b08013e1374bbd5c84b6265dad82cbe4ae0 100755 (executable)
@@ -16,7 +16,7 @@
  |         Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: iniset.php 4408 2011-01-12 15:54:35Z thomasb $
+ $Id: iniset.php 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -36,7 +36,7 @@ foreach ($crit_opts as $optname => $optval) {
 }
 
 // application constants
-define('RCMAIL_VERSION', '0.5');
+define('RCMAIL_VERSION', '0.5.1');
 define('RCMAIL_CHARSET', 'UTF-8');
 define('JS_OBJECT_NAME', 'rcmail');
 define('RCMAIL_START', microtime(true));
index 982352c5de20969d28ef42807695fcc6afbb97d7..d02dca5e2d67db6d3c26f030c8b9da568fdc2b32 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: main.inc 4334 2010-12-10 11:08:22Z alec $
+ $Id: main.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -858,8 +858,8 @@ function rcmail_mod_css_styles($source, $container_id)
   $replacements = new rcube_string_replacer;
 
   // ignore the whole block if evil styles are detected
-  $stripped = preg_replace('/[^a-z\(:]/', '', rcmail_xss_entity_decode($source));
-  if (preg_match('/expression|behavior|url\(|import/', $stripped))
+  $stripped = preg_replace('/[^a-z\(:;]/', '', rcmail_xss_entity_decode($source));
+  if (preg_match('/expression|behavior|url\(|import[^a]/', $stripped))
     return '/* evil! */';
 
   // remove css comments (sometimes used for some ugly hacks)
@@ -1220,6 +1220,19 @@ function rcmail_remote_ip()
 }
 
 
+/**
+ * Check whether the HTTP referer matches the current request
+ *
+ * @return boolean True if referer is the same host+path, false if not
+ */
+function rcube_check_referer()
+{
+  $uri = parse_url($_SERVER['REQUEST_URI']);
+  $referer = parse_url(rc_request_header('Referer'));
+  return $referer['host'] == rc_request_header('Host') && $referer['path'] == $uri['path'];
+}
+
+
 /**
  * @access private
  * @return mixed
@@ -1768,16 +1781,17 @@ function rcube_sess_unset($var_name=null)
  * Replaces hostname variables
  *
  * @param string $name Hostname
+ * @param string $host Optional IMAP hostname
  * @return string
  */
-function rcube_parse_host($name)
+function rcube_parse_host($name, $host='')
 {
   // %n - host
   $n = preg_replace('/:\d+$/', '', $_SERVER['SERVER_NAME']);
   // %d - domain name without first part, e.g. %d=mail.domain.tld, %m=domain.tld
   $d = preg_replace('/^[^\.]+\./', '', $n);
   // %h - IMAP host
-  $h = $_SESSION['imap_host'];
+  $h = $_SESSION['imap_host'] ? $_SESSION['imap_host'] : $host;
   // %z - IMAP domain without first part, e.g. %h=imap.domain.tld, %z=domain.tld
   $z = preg_replace('/^[^\.]+\./', '', $h);
 
@@ -1859,6 +1873,39 @@ function check_email($email, $dns_check=true)
   return false;
 }
 
+/*
+ * Idn_to_ascii wrapper.
+ * Intl/Idn modules version of this function doesn't work with e-mail address
+ */
+function rcube_idn_to_ascii($str)
+{
+  return rcube_idn_convert($str, true);
+}
+
+/*
+ * Idn_to_ascii wrapper.
+ * Intl/Idn modules version of this function doesn't work with e-mail address
+ */
+function rcube_idn_to_utf8($str)
+{
+  return rcube_idn_convert($str, false);
+}
+
+function rcube_idn_convert($input, $is_utf=false)
+{
+  if ($at = strpos($input, '@')) {
+    $user   = substr($input, 0, $at);
+    $domain = substr($input, $at+1);
+  }
+  else {
+    $domain = $input;
+  }
+
+  $domain = $is_utf ? idn_to_ascii($domain) : idn_to_utf8($domain);
+
+  return $at ? $user . '@' . $domain : $domain;
+}
+
 
 /**
  * Helper class to turn relative urls into absolute ones
index cbfb884af307490c75bc1b6ff6c9f8136a4f7df5..d3d2390793909220ec116e881d278167b80cec76 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcmail.php 4396 2011-01-06 12:41:16Z thomasb $
+ $Id: rcmail.php 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -673,9 +673,9 @@ class rcmail
     // Check if we need to add domain
     if (!empty($config['username_domain']) && strpos($username, '@') === false) {
       if (is_array($config['username_domain']) && isset($config['username_domain'][$host]))
-        $username .= '@'.rcube_parse_host($config['username_domain'][$host]);
+        $username .= '@'.rcube_parse_host($config['username_domain'][$host], $host);
       else if (is_string($config['username_domain']))
-        $username .= '@'.rcube_parse_host($config['username_domain']);
+        $username .= '@'.rcube_parse_host($config['username_domain'], $host);
     }
 
     // Convert username to lowercase. If IMAP backend
@@ -691,12 +691,12 @@ class rcmail
 
     // Here we need IDNA ASCII
     // Only rcube_contacts class is using domain names in Unicode
-    $host = idn_to_ascii($host);
+    $host = rcube_idn_to_ascii($host);
     if (strpos($username, '@')) {
       // lowercase domain name
       list($local, $domain) = explode('@', $username);
       $username = $local . '@' . mb_strtolower($domain);
-      $username = idn_to_ascii($username);
+      $username = rcube_idn_to_ascii($username);
     }
 
     // user already registered -> overwrite username
diff --git a/program/include/rcmail.php.orig b/program/include/rcmail.php.orig
deleted file mode 100644 (file)
index 11da562..0000000
+++ /dev/null
@@ -1,1327 +0,0 @@
-<?php
-
-/*
- +-----------------------------------------------------------------------+
- | program/include/rcmail.php                                            |
- |                                                                       |
- | This file is part of the Roundcube Webmail client                     |
- | Copyright (C) 2008-2010, Roundcube Dev. - Switzerland                 |
- | Licensed under the GNU GPL                                            |
- |                                                                       |
- | PURPOSE:                                                              |
- |   Application class providing core functions and holding              |
- |   instances of all 'global' objects like db- and imap-connections     |
- +-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com>                        |
- +-----------------------------------------------------------------------+
-
- $Id: rcmail.php 4396 2011-01-06 12:41:16Z thomasb $
-
-*/
-
-
-/**
- * Application class of Roundcube Webmail
- * implemented as singleton
- *
- * @package Core
- */
-class rcmail
-{
-  /**
-   * Main tasks.
-   *
-   * @var array
-   */
-  static public $main_tasks = array('mail','settings','addressbook','login','logout','utils','dummy');
-
-  /**
-   * Singleton instace of rcmail
-   *
-   * @var rcmail
-   */
-  static private $instance;
-
-  /**
-   * Stores instance of rcube_config.
-   *
-   * @var rcube_config
-   */
-  public $config;
-
-  /**
-   * Stores rcube_user instance.
-   *
-   * @var rcube_user
-   */
-  public $user;
-
-  /**
-   * Instace of database class.
-   *
-   * @var rcube_mdb2
-   */
-  public $db;
-
-  /**
-   * Instace of rcube_session class.
-   *
-   * @var rcube_session
-   */
-  public $session;
-
-  /**
-   * Instance of rcube_smtp class.
-   *
-   * @var rcube_smtp
-   */
-  public $smtp;
-
-  /**
-   * Instance of rcube_imap class.
-   *
-   * @var rcube_imap
-   */
-  public $imap;
-
-  /**
-   * Instance of rcube_template class.
-   *
-   * @var rcube_template
-   */
-  public $output;
-
-  /**
-   * Instance of rcube_plugin_api.
-   *
-   * @var rcube_plugin_api
-   */
-  public $plugins;
-
-  /**
-   * Current task.
-   *
-   * @var string
-   */
-  public $task;
-
-  /**
-   * Current action.
-   *
-   * @var string
-   */
-  public $action = '';
-  public $comm_path = './';
-
-  private $texts;
-  private $books = array();
-
-
-  /**
-   * This implements the 'singleton' design pattern
-   *
-   * @return rcmail The one and only instance
-   */
-  static function get_instance()
-  {
-    if (!self::$instance) {
-      self::$instance = new rcmail();
-      self::$instance->startup();  // init AFTER object was linked with self::$instance
-    }
-
-    return self::$instance;
-  }
-
-
-  /**
-   * Private constructor
-   */
-  private function __construct()
-  {
-    // load configuration
-    $this->config = new rcube_config();
-
-    register_shutdown_function(array($this, 'shutdown'));
-  }
-
-
-  /**
-   * Initial startup function
-   * to register session, create database and imap connections
-   *
-   * @todo Remove global vars $DB, $USER
-   */
-  private function startup()
-  {
-    // 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);
-    }
-
-    // connect to database
-    $GLOBALS['DB'] = $this->get_dbh();
-
-    // start session
-    $this->session_init();
-
-    // create user object
-    $this->set_user(new rcube_user($_SESSION['user_id']));
-
-    // configure session (after user config merge!)
-    $this->session_configure();
-
-    // set task and action properties
-    $this->set_task(get_input_value('_task', RCUBE_INPUT_GPC));
-    $this->action = asciiwords(get_input_value('_action', RCUBE_INPUT_GPC));
-
-    // reset some session parameters when changing task
-    if ($this->task != 'utils') {
-      if ($this->session && $_SESSION['task'] != $this->task)
-        $this->session->remove('page');
-      // set current task to session
-      $_SESSION['task'] = $this->task;
-    }
-
-    // init output class
-    if (!empty($_REQUEST['_remote']))
-      $GLOBALS['OUTPUT'] = $this->json_init();
-    else
-      $GLOBALS['OUTPUT'] = $this->load_gui(!empty($_REQUEST['_framed']));
-
-    // create plugin API and load plugins
-    $this->plugins = rcube_plugin_api::get_instance();
-
-    // init plugins
-    $this->plugins->init();
-  }
-
-
-  /**
-   * Setter for application task
-   *
-   * @param string Task to set
-   */
-  public function set_task($task)
-  {
-    $task = asciiwords($task);
-
-    if ($this->user && $this->user->ID)
-      $task = !$task ? 'mail' : $task;
-    else
-      $task = 'login';
-
-    $this->task = $task;
-    $this->comm_path = $this->url(array('task' => $this->task));
-
-    if ($this->output)
-      $this->output->set_env('task', $this->task);
-  }
-
-
-  /**
-   * Setter for system user object
-   *
-   * @param rcube_user Current user instance
-   */
-  public function set_user($user)
-  {
-    if (is_object($user)) {
-      $this->user = $user;
-      $GLOBALS['USER'] = $this->user;
-
-      // overwrite config with user preferences
-      $this->config->set_user_prefs((array)$this->user->get_prefs());
-    }
-
-    $_SESSION['language'] = $this->user->language = $this->language_prop($this->config->get('language', $_SESSION['language']));
-
-    // set localization
-    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');
-  }
-
-
-  /**
-   * Check the given string and return a valid language code
-   *
-   * @param string Language code
-   * @return string Valid language code
-   */
-  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');
-    }
-
-    // check if we have an alias for that language
-    if (!isset($rcube_languages[$lang]) && isset($rcube_language_aliases[$lang])) {
-      $lang = $rcube_language_aliases[$lang];
-    }
-    // try the first two chars
-    else if (!isset($rcube_languages[$lang])) {
-      $short = substr($lang, 0, 2);
-
-      // check if we have an alias for the short language code
-      if (!isset($rcube_languages[$short]) && isset($rcube_language_aliases[$short])) {
-        $lang = $rcube_language_aliases[$short];
-      }
-      // expand 'nn' to 'nn_NN'
-      else if (!isset($rcube_languages[$short])) {
-        $lang = $short.'_'.strtoupper($short);
-      }
-    }
-
-    if (!isset($rcube_languages[$lang]) || !is_dir(INSTALL_PATH . 'program/localization/' . $lang)) {
-      $lang = 'en_US';
-    }
-
-    return $lang;
-  }
-
-
-  /**
-   * Get the current database connection
-   *
-   * @return rcube_mdb2  Database connection object
-   */
-  public function get_dbh()
-  {
-    if (!$this->db) {
-      $config_all = $this->config->all();
-
-      $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']);
-    }
-
-    return $this->db;
-  }
-
-
-  /**
-   * Return instance of the internal address book class
-   *
-   * @param string  Address book identifier
-   * @param boolean True if the address book needs to be writeable
-   * @return 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'));
-
-    $plugin = $this->plugins->exec_hook('addressbook_get', array('id' => $id, 'writeable' => $writeable));
-
-    // plugin returned instance of a rcube_addressbook
-    if ($plugin['instance'] instanceof rcube_addressbook) {
-      $contacts = $plugin['instance'];
-    }
-    else if ($id && $ldap_config[$id]) {
-      $contacts = new rcube_ldap($ldap_config[$id], $this->config->get('ldap_debug'), $this->config->mail_domain($_SESSION['imap_host']));
-    }
-    else if ($id === '0') {
-      $contacts = new rcube_contacts($this->db, $this->user->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, $this->config->get('ldap_debug'), $this->config->mail_domain($_SESSION['imap_host']));
-          break;
-        }
-      }
-    }
-    else { // $id == 'sql'
-      $contacts = new rcube_contacts($this->db, $this->user->ID);
-    }
-
-    // add to the 'books' array for shutdown function
-    if (!in_array($contacts, $this->books))
-      $this->books[] = $contacts;
-
-    return $contacts;
-  }
-
-
-  /**
-   * Return address books list
-   *
-   * @param boolean True if the address book needs to be writeable
-   * @return array  Address books array
-   */
-  public function get_address_sources($writeable = false)
-  {
-    $abook_type = strtolower($this->config->get('address_book_type'));
-    $ldap_config = $this->config->get('ldap_public');
-    $autocomplete = (array) $this->config->get('autocomplete_addressbooks');
-    $list = array();
-
-    // We are using the DB address book
-    if ($abook_type != 'ldap') {
-      $contacts = new rcube_contacts($this->db, null);
-      $list['0'] = array(
-        'id' => 0,
-        'name' => rcube_label('personaladrbook'),
-        'groups' => $contacts->groups,
-        'readonly' => false,
-        'autocomplete' => in_array('sql', $autocomplete)
-      );
-    }
-
-    if ($ldap_config) {
-      $ldap_config = (array) $ldap_config;
-      foreach ($ldap_config as $id => $prop)
-        $list[$id] = array(
-          'id' => $id,
-          'name' => $prop['name'],
-          'groups' => false,
-          'readonly' => !$prop['writable'],
-          'autocomplete' => in_array('sql', $autocomplete)
-        );
-    }
-
-    $plugin = $this->plugins->exec_hook('addressbooks_list', array('sources' => $list));
-    $list = $plugin['sources'];
-
-    if ($writeable && !empty($list)) {
-      foreach ($list as $idx => $item) {
-        if ($item['readonly']) {
-          unset($list[$idx]);
-        }
-      }
-    }
-
-    return $list;
-  }
-
-
-  /**
-   * 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 rcube_template Reference to HTML output object
-   */
-  public function load_gui($framed = false)
-  {
-    // init output page
-    if (!($this->output instanceof rcube_template))
-      $this->output = new rcube_template($this->task, $framed);
-
-    // set keep-alive/check-recent interval
-    if ($this->session && ($keep_alive = $this->session->get_keep_alive())) {
-      $this->output->set_env('keep_alive', $keep_alive);
-    }
-
-    if ($framed) {
-      $this->comm_path .= '&_framed=1';
-      $this->output->set_env('framed', true);
-    }
-
-    $this->output->set_env('task', $this->task);
-    $this->output->set_env('action', $this->action);
-    $this->output->set_env('comm_path', $this->comm_path);
-    $this->output->set_charset(RCMAIL_CHARSET);
-
-    // add some basic label to client
-    $this->output->add_label('loading', 'servererror');
-
-    return $this->output;
-  }
-
-
-  /**
-   * Create an output object for JSON responses
-   *
-   * @return rcube_json_output Reference to JSON output object
-   */
-  public function json_init()
-  {
-    if (!($this->output instanceof rcube_json_output))
-      $this->output = new rcube_json_output($this->task);
-
-    return $this->output;
-  }
-
-
-  /**
-   * Create SMTP object and connect to server
-   *
-   * @param boolean True if connection should be established
-   */
-  public function smtp_init($connect = false)
-  {
-    $this->smtp = new rcube_smtp();
-
-    if ($connect)
-      $this->smtp->connect();
-  }
-
-
-  /**
-   * Create global IMAP object and connect to server
-   *
-   * @param boolean True if connection should be established
-   * @todo Remove global $IMAP
-   */
-  public function imap_init($connect = false)
-  {
-    // already initialized
-    if (is_object($this->imap))
-      return;
-
-    $this->imap = new rcube_imap($this->db);
-    $this->imap->debug_level = $this->config->get('debug_level');
-    $this->imap->skip_deleted = $this->config->get('skip_deleted');
-
-    // enable caching of imap data
-    if ($this->config->get('enable_caching')) {
-      $this->imap->set_caching(true);
-    }
-
-    // set pagesize from config
-    $this->imap->set_pagesize($this->config->get('pagesize', 50));
-
-    // Setting root and delimiter before establishing the connection
-    // can save time detecting them using NAMESPACE and LIST
-    $options = array(
-      'auth_method' => $this->config->get('imap_auth_type', 'check'),
-      'auth_cid'    => $this->config->get('imap_auth_cid'),
-      'auth_pw'     => $this->config->get('imap_auth_pw'),
-      'debug'       => (bool) $this->config->get('imap_debug', 0),
-      'force_caps'  => (bool) $this->config->get('imap_force_caps'),
-      'timeout'     => (int) $this->config->get('imap_timeout', 0),
-    );
-
-    $this->imap->set_options($options);
-
-    // set global object for backward compatibility
-    $GLOBALS['IMAP'] = $this->imap;
-
-    $hook = $this->plugins->exec_hook('imap_init', array('fetch_headers' => $this->imap->fetch_add_headers));
-    if ($hook['fetch_headers'])
-      $this->imap->fetch_add_headers = $hook['fetch_headers'];
-
-    // support this parameter for backward compatibility but log warning
-    if ($connect) {
-      $this->imap_connect();
-      raise_error(array(
-        'code' => 800, 'type' => 'imap',
-        'file' => __FILE__, 'line' => __LINE__,
-        'message' => "rcube::imap_init(true) is deprecated, use rcube::imap_connect() instead"),
-        true, false);
-    }
-  }
-
-
-  /**
-   * Connect to IMAP server with stored session data
-   *
-   * @return bool True on success, false on error
-   */
-  public function imap_connect()
-  {
-    if (!$this->imap)
-      $this->imap_init();
-
-    if ($_SESSION['imap_host'] && !$this->imap->conn->connected()) {
-      if (!$this->imap->connect($_SESSION['imap_host'], $_SESSION['username'], $this->decrypt($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl'])) {
-        if ($this->output)
-          $this->output->show_message($this->imap->get_error_code() == -1 ? 'imaperror' : 'sessionerror', 'error');
-      }
-      else {
-        $this->set_imap_prop();
-        return $this->imap->conn;
-      }
-    }
-
-    return false;
-  }
-
-
-  /**
-   * Create session object and start the session.
-   */
-  public function session_init()
-  {
-    // session started (Installer?)
-    if (session_id())
-      return;
-
-    $lifetime = $this->config->get('session_lifetime', 0) * 60;
-
-    // set session domain
-    if ($domain = $this->config->get('session_domain')) {
-      ini_set('session.cookie_domain', $domain);
-    }
-    // set session garbage collecting time according to session_lifetime
-    if ($lifetime) {
-      ini_set('session.gc_maxlifetime', $lifetime * 2);
-    }
-
-    ini_set('session.cookie_secure', rcube_https_check());
-    ini_set('session.name', 'roundcube_sessid');
-    ini_set('session.use_cookies', 1);
-    ini_set('session.use_only_cookies', 1);
-    ini_set('session.serialize_handler', 'php');
-
-    // use database for storing session data
-    $this->session = new rcube_session($this->get_dbh(), $lifetime);
-
-    $this->session->register_gc_handler('rcmail_temp_gc');
-    if ($this->config->get('enable_caching'))
-      $this->session->register_gc_handler('rcmail_cache_gc');
-
-    // start PHP session (if not in CLI mode)
-    if ($_SERVER['REMOTE_ADDR'])
-      session_start();
-
-    // set initial session vars
-    if (!isset($_SESSION['auth_time'])) {
-      $_SESSION['auth_time'] = time();
-      $_SESSION['temp'] = true;
-    }
-  }
-
-
-  /**
-   * Configure session object internals
-   */
-  public function session_configure()
-  {
-    if (!$this->session)
-      return;
-
-    $lifetime = $this->config->get('session_lifetime', 0) * 60;
-
-    // set keep-alive/check-recent interval
-    if ($keep_alive = $this->config->get('keep_alive')) {
-      // be sure that it's less than session lifetime
-      if ($lifetime)
-        $keep_alive = min($keep_alive, $lifetime - 30);
-      $keep_alive = max(60, $keep_alive);
-      $this->session->set_keep_alive($keep_alive);
-    }
-  }
-
-
-  /**
-   * Perfom login to the IMAP server and to the webmail service.
-   * This will also create a new user entry if auto_create_user is configured.
-   *
-   * @param string IMAP user name
-   * @param string IMAP password
-   * @param string IMAP host
-   * @return boolean True on success, False on failure
-   */
-  function login($username, $pass, $host=NULL)
-  {
-    $user = NULL;
-    $config = $this->config->all();
-
-    if (!$host)
-      $host = $config['default_host'];
-
-    // Validate that selected host is in the list of configured hosts
-    if (is_array($config['default_host'])) {
-      $allowed = false;
-      foreach ($config['default_host'] as $key => $host_allowed) {
-        if (!is_numeric($key))
-          $host_allowed = $key;
-        if ($host == $host_allowed) {
-          $allowed = true;
-          break;
-        }
-      }
-      if (!$allowed)
-        return false;
-      }
-    else if (!empty($config['default_host']) && $host != rcube_parse_host($config['default_host']))
-      return false;
-
-    // parse $host URL
-    $a_host = parse_url($host);
-    if ($a_host['host']) {
-      $host = $a_host['host'];
-      $imap_ssl = (isset($a_host['scheme']) && in_array($a_host['scheme'], array('ssl','imaps','tls'))) ? $a_host['scheme'] : null;
-      if (!empty($a_host['port']))
-        $imap_port = $a_host['port'];
-      else if ($imap_ssl && $imap_ssl != 'tls' && (!$config['default_port'] || $config['default_port'] == 143))
-        $imap_port = 993;
-    }
-
-    $imap_port = $imap_port ? $imap_port : $config['default_port'];
-
-    /* Modify username with domain if required
-       Inspired by Marco <P0L0_notspam_binware.org>
-    */
-    // Check if we need to add domain
-    if (!empty($config['username_domain']) && strpos($username, '@') === false) {
-      if (is_array($config['username_domain']) && isset($config['username_domain'][$host]))
-        $username .= '@'.rcube_parse_host($config['username_domain'][$host]);
-      else if (is_string($config['username_domain']))
-        $username .= '@'.rcube_parse_host($config['username_domain']);
-    }
-
-    // Convert username to lowercase. If IMAP backend
-    // is case-insensitive we need to store always the same username (#1487113)
-    if ($config['login_lc']) {
-      $username = mb_strtolower($username);
-    }
-
-    // try to resolve email address from virtuser table
-    if (strpos($username, '@') && ($virtuser = rcube_user::email2user($username))) {
-      $username = $virtuser;
-    }
-
-    // Here we need IDNA ASCII
-    // Only rcube_contacts class is using domain names in Unicode
-    $host = idn_to_ascii($host);
-    if (strpos($username, '@')) {
-      // lowercase domain name
-      list($local, $domain) = explode('@', $username);
-      $username = $local . '@' . mb_strtolower($domain);
-      $username = idn_to_ascii($username);
-    }
-
-    // user already registered -> overwrite username
-    if ($user = rcube_user::query($username, $host))
-      $username = $user->data['username'];
-
-    if (!$this->imap)
-      $this->imap_init();
-
-    // try IMAP login
-    if (!($imap_login = $this->imap->connect($host, $username, $pass, $imap_port, $imap_ssl))) {
-      // try with lowercase
-      $username_lc = mb_strtolower($username);
-      if ($username_lc != $username) {
-        // try to find user record again -> overwrite username
-        if (!$user && ($user = rcube_user::query($username_lc, $host)))
-          $username_lc = $user->data['username'];
-
-        if ($imap_login = $this->imap->connect($host, $username_lc, $pass, $imap_port, $imap_ssl))
-          $username = $username_lc;
-      }
-    }
-
-    // exit if IMAP login failed
-    if (!$imap_login)
-      return false;
-
-    $this->set_imap_prop();
-
-    // user already registered -> update user's record
-    if (is_object($user)) {
-      // create default folders on first login
-      if (!$user->data['last_login'] && $config['create_default_folders'])
-        $this->imap->create_default_folders();
-      $user->touch();
-    }
-    // create new system user
-    else if ($config['auto_create_user']) {
-      if ($created = rcube_user::create($username, $host)) {
-        $user = $created;
-        // create default folders on first login
-        if ($config['create_default_folders'])
-          $this->imap->create_default_folders();
-      }
-      else {
-        raise_error(array(
-          'code' => 600, 'type' => 'php',
-          'file' => __FILE__, 'line' => __LINE__,
-          'message' => "Failed to create a user record. Maybe aborted by a plugin?"
-          ), true, false);
-      }
-    }
-    else {
-      raise_error(array(
-        'code' => 600, 'type' => 'php',
-        'file' => __FILE__, 'line' => __LINE__,
-        'message' => "Acces denied for new user $username. 'auto_create_user' is disabled"
-        ), true, false);
-    }
-
-    // login succeeded
-    if (is_object($user) && $user->ID) {
-      $this->set_user($user);
-
-      // set session vars
-      $_SESSION['user_id']   = $user->ID;
-      $_SESSION['username']  = $user->data['username'];
-      $_SESSION['imap_host'] = $host;
-      $_SESSION['imap_port'] = $imap_port;
-      $_SESSION['imap_ssl']  = $imap_ssl;
-      $_SESSION['password']  = $this->encrypt($pass);
-      $_SESSION['login_time'] = mktime();
-
-      if (isset($_REQUEST['_timezone']) && $_REQUEST['_timezone'] != '_default_')
-        $_SESSION['timezone'] = floatval($_REQUEST['_timezone']);
-
-      // force reloading complete list of subscribed mailboxes
-      $this->imap->clear_cache('mailboxes');
-
-      return true;
-    }
-
-    return false;
-  }
-
-
-  /**
-   * Set root dir and last stored mailbox
-   * This must be done AFTER connecting to the server!
-   */
-  public function set_imap_prop()
-  {
-    $this->imap->set_charset($this->config->get('default_charset', RCMAIL_CHARSET));
-
-    if ($default_folders = $this->config->get('default_imap_folders')) {
-      $this->imap->set_default_mailboxes($default_folders);
-    }
-    if (isset($_SESSION['mbox'])) {
-      $this->imap->set_mailbox($_SESSION['mbox']);
-    }
-    if (isset($_SESSION['page'])) {
-      $this->imap->set_page($_SESSION['page']);
-    }
-  }
-
-
-  /**
-   * Auto-select IMAP host based on the posted login information
-   *
-   * @return string Selected IMAP host
-   */
-  public function autoselect_host()
-  {
-    $default_host = $this->config->get('default_host');
-    $host = null;
-
-    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 ($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 (empty($host)) {
-        $host = array_shift($default_host);
-      }
-    }
-    else if (empty($default_host)) {
-      $host = get_input_value('_host', RCUBE_INPUT_POST);
-    }
-    else
-      $host = rcube_parse_host($default_host);
-
-    return $host;
-  }
-
-
-  /**
-   * Get localized text in the desired language
-   *
-   * @param mixed Named parameters array or label name
-   * @return string Localized text
-   */
-  public function gettext($attrib, $domain=null)
-  {
-    // load localization files if not done yet
-    if (empty($this->texts))
-      $this->load_language();
-
-    // extract attributes
-    if (is_string($attrib))
-      $attrib = array('name' => $attrib);
-
-    $nr = is_numeric($attrib['nr']) ? $attrib['nr'] : 1;
-    $name = $attrib['name'] ? $attrib['name'] : '';
-
-    // check for text with domain
-    if ($domain && ($text_item = $this->texts[$domain.'.'.$name]))
-      ;
-    // text does not exist
-    else if (!($text_item = $this->texts[$name])) {
-      return "[$name]";
-    }
-
-    // make text item array
-    $a_text_item = is_array($text_item) ? $text_item : array('single' => $text_item);
-
-    // decide which text to use
-    if ($nr == 1) {
-      $text = $a_text_item['single'];
-    }
-    else if ($nr > 0) {
-      $text = $a_text_item['multiple'];
-    }
-    else if ($nr == 0) {
-      if ($a_text_item['none'])
-        $text = $a_text_item['none'];
-      else if ($a_text_item['single'])
-        $text = $a_text_item['single'];
-      else if ($a_text_item['multiple'])
-        $text = $a_text_item['multiple'];
-    }
-
-    // default text is single
-    if ($text == '') {
-      $text = $a_text_item['single'];
-    }
-
-    // replace vars in text
-    if (is_array($attrib['vars'])) {
-      foreach ($attrib['vars'] as $var_key => $var_value)
-        $text = str_replace($var_key[0]!='$' ? '$'.$var_key : $var_key, $var_value, $text);
-    }
-
-    // format output
-    if (($attrib['uppercase'] && strtolower($attrib['uppercase']=='first')) || $attrib['ucfirst'])
-      return ucfirst($text);
-    else if ($attrib['uppercase'])
-      return mb_strtoupper($text);
-    else if ($attrib['lowercase'])
-      return mb_strtolower($text);
-
-    return $text;
-  }
-
-
-  /**
-   * Load a localization package
-   *
-   * @param string Language ID
-   */
-  public function load_language($lang = null, $add = array())
-  {
-    $lang = $this->language_prop(($lang ? $lang : $_SESSION['language']));
-
-    // load localized texts
-    if (empty($this->texts) || $lang != $_SESSION['language']) {
-      $this->texts = array();
-
-      // handle empty lines after closing PHP tag in localization files
-      ob_start();
-
-      // get english labels (these should be complete)
-      @include(INSTALL_PATH . 'program/localization/en_US/labels.inc');
-      @include(INSTALL_PATH . 'program/localization/en_US/messages.inc');
-
-      if (is_array($labels))
-        $this->texts = $labels;
-      if (is_array($messages))
-        $this->texts = array_merge($this->texts, $messages);
-
-      // include user language files
-      if ($lang != 'en' && is_dir(INSTALL_PATH . 'program/localization/' . $lang)) {
-        include_once(INSTALL_PATH . 'program/localization/' . $lang . '/labels.inc');
-        include_once(INSTALL_PATH . 'program/localization/' . $lang . '/messages.inc');
-
-        if (is_array($labels))
-          $this->texts = array_merge($this->texts, $labels);
-        if (is_array($messages))
-          $this->texts = array_merge($this->texts, $messages);
-      }
-
-      ob_end_clean();
-
-      $_SESSION['language'] = $lang;
-    }
-
-    // append additional texts (from plugin)
-    if (is_array($add) && !empty($add))
-      $this->texts += $add;
-  }
-
-
-  /**
-   * Read directory program/localization and return a list of available languages
-   *
-   * @return array List of available localizations
-   */
-  public function list_languages()
-  {
-    static $sa_languages = array();
-
-    if (!sizeof($sa_languages)) {
-      @include(INSTALL_PATH . 'program/localization/index.inc');
-
-      if ($dh = @opendir(INSTALL_PATH . 'program/localization')) {
-        while (($name = readdir($dh)) !== false) {
-          if ($name[0] == '.' || !is_dir(INSTALL_PATH . 'program/localization/' . $name))
-            continue;
-
-          if ($label = $rcube_languages[$name])
-            $sa_languages[$name] = $label;
-        }
-        closedir($dh);
-      }
-    }
-
-    return $sa_languages;
-  }
-
-
-  /**
-   * Check the auth hash sent by the client against the local session credentials
-   *
-   * @return boolean True if valid, False if not
-   */
-  function authenticate_session()
-  {
-    // advanced session authentication
-    if ($this->config->get('double_auth')) {
-      $now = time();
-      $valid = ($_COOKIE['sessauth'] == $this->get_auth_hash(session_id(), $_SESSION['auth_time']) ||
-                $_COOKIE['sessauth'] == $this->get_auth_hash(session_id(), $_SESSION['last_auth']));
-
-      // renew auth cookie every 5 minutes (only for GET requests)
-      if (!$valid || ($_SERVER['REQUEST_METHOD']!='POST' && $now - $_SESSION['auth_time'] > 300)) {
-        $_SESSION['last_auth'] = $_SESSION['auth_time'];
-        $_SESSION['auth_time'] = $now;
-        rcmail::setcookie('sessauth', $this->get_auth_hash(session_id(), $now), 0);
-      }
-    }
-    else {
-      $valid = $this->config->get('ip_check') ? $_SERVER['REMOTE_ADDR'] == $this->session->get_ip() : true;
-    }
-
-    // check session filetime
-    $lifetime = $this->config->get('session_lifetime');
-    $sess_ts = $this->session->get_ts();
-    if (!empty($lifetime) && !empty($sess_ts) && $sess_ts + $lifetime*60 < time()) {
-      $valid = false;
-    }
-
-    return $valid;
-  }
-
-
-  /**
-   * Destroy session data and remove cookie
-   */
-  public function kill_session()
-  {
-    $this->plugins->exec_hook('session_destroy');
-
-    $this->session->remove();
-    $_SESSION = array('language' => $this->user->language, 'auth_time' => time(), 'temp' => true);
-    rcmail::setcookie('sessauth', '-del-', time() - 60);
-    $this->user->reset();
-  }
-
-
-  /**
-   * Do server side actions on logout
-   */
-  public function logout_actions()
-  {
-    $config = $this->config->all();
-
-    // on logout action we're not connected to imap server
-    if (($config['logout_purge'] && !empty($config['trash_mbox'])) || $config['logout_expunge']) {
-      if (!$this->authenticate_session())
-        return;
-
-      $this->imap_connect();
-    }
-
-    if ($config['logout_purge'] && !empty($config['trash_mbox'])) {
-      $this->imap->clear_mailbox($config['trash_mbox']);
-    }
-
-    if ($config['logout_expunge']) {
-      $this->imap->expunge('INBOX');
-    }
-  }
-
-
-  /**
-   * Function to be executed in script shutdown
-   * Registered with register_shutdown_function()
-   */
-  public function shutdown()
-  {
-    if (is_object($this->imap))
-      $this->imap->close();
-
-    if (is_object($this->smtp))
-      $this->smtp->disconnect();
-
-    foreach ($this->books as $book)
-      if (is_object($book))
-        $book->close();
-
-    // before closing the database connection, write session data
-    if ($_SERVER['REMOTE_ADDR'])
-      session_write_close();
-
-    // write performance stats to logs/console
-    if ($this->config->get('devel_mode')) {
-      if (function_exists('memory_get_usage'))
-        $mem = show_bytes(memory_get_usage());
-      if (function_exists('memory_get_peak_usage'))
-        $mem .= '/'.show_bytes(memory_get_peak_usage());
-
-      $log = $this->task . ($this->action ? '/'.$this->action : '') . ($mem ? " [$mem]" : '');
-      if (defined('RCMAIL_START'))
-        rcube_print_time(RCMAIL_START, $log);
-      else
-        console($log);
-    }
-  }
-
-
-  /**
-   * Generate a unique token to be used in a form request
-   *
-   * @return string The request token
-   */
-  public function get_request_token()
-  {
-    $key = $this->task;
-
-    if (!$_SESSION['request_tokens'][$key])
-      $_SESSION['request_tokens'][$key] = md5(uniqid($key . mt_rand(), true));
-
-    return $_SESSION['request_tokens'][$key];
-  }
-
-
-  /**
-   * Check if the current request contains a valid token
-   *
-   * @param int Request method
-   * @return boolean True if request token is valid false if not
-   */
-  public function check_request($mode = RCUBE_INPUT_POST)
-  {
-    $token = get_input_value('_token', $mode);
-    return !empty($token) && $_SESSION['request_tokens'][$this->task] == $token;
-  }
-
-
-  /**
-   * Create unique authorization hash
-   *
-   * @param string Session ID
-   * @param int Timestamp
-   * @return string The generated auth hash
-   */
-  private function get_auth_hash($sess_id, $ts)
-  {
-    $auth_string = sprintf('rcmail*sess%sR%s*Chk:%s;%s',
-      $sess_id,
-      $ts,
-      $this->config->get('ip_check') ? $_SERVER['REMOTE_ADDR'] : '***.***.***.***',
-      $_SERVER['HTTP_USER_AGENT']);
-
-    if (function_exists('sha1'))
-      return sha1($auth_string);
-    else
-      return md5($auth_string);
-  }
-
-
-  /**
-   * Encrypt using 3DES
-   *
-   * @param string $clear clear text input
-   * @param string $key encryption key to retrieve from the configuration, defaults to 'des_key'
-   * @param boolean $base64 whether or not to base64_encode() the result before returning
-   *
-   * @return string encrypted text
-   */
-  public function encrypt($clear, $key = 'des_key', $base64 = true)
-  {
-    if (!$clear)
-      return '';
-    /*-
-     * Add a single canary byte to the end of the clear text, which
-     * will help find out how much of padding will need to be removed
-     * upon decryption; see http://php.net/mcrypt_generic#68082
-     */
-    $clear = pack("a*H2", $clear, "80");
-
-    if (function_exists('mcrypt_module_open') &&
-        ($td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_CBC, "")))
-    {
-      $iv = $this->create_iv(mcrypt_enc_get_iv_size($td));
-      mcrypt_generic_init($td, $this->config->get_crypto_key($key), $iv);
-      $cipher = $iv . mcrypt_generic($td, $clear);
-      mcrypt_generic_deinit($td);
-      mcrypt_module_close($td);
-    }
-    else {
-      @include_once('lib/des.inc');
-
-      if (function_exists('des')) {
-        $des_iv_size = 8;
-        $iv = $this->create_iv($des_iv_size);
-        $cipher = $iv . des($this->config->get_crypto_key($key), $clear, 1, 1, $iv);
-      }
-      else {
-        raise_error(array(
-          'code' => 500, 'type' => 'php',
-          'file' => __FILE__, 'line' => __LINE__,
-          'message' => "Could not perform encryption; make sure Mcrypt is installed or lib/des.inc is available"
-        ), true, true);
-      }
-    }
-
-    return $base64 ? base64_encode($cipher) : $cipher;
-  }
-
-  /**
-   * Decrypt 3DES-encrypted string
-   *
-   * @param string $cipher encrypted text
-   * @param string $key encryption key to retrieve from the configuration, defaults to 'des_key'
-   * @param boolean $base64 whether or not input is base64-encoded
-   *
-   * @return string decrypted text
-   */
-  public function decrypt($cipher, $key = 'des_key', $base64 = true)
-  {
-    if (!$cipher)
-      return '';
-
-    $cipher = $base64 ? base64_decode($cipher) : $cipher;
-
-    if (function_exists('mcrypt_module_open') &&
-        ($td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_CBC, "")))
-    {
-      $iv_size = mcrypt_enc_get_iv_size($td);
-      $iv = substr($cipher, 0, $iv_size);
-
-      // session corruption? (#1485970)
-      if (strlen($iv) < $iv_size)
-        return '';
-
-      $cipher = substr($cipher, $iv_size);
-      mcrypt_generic_init($td, $this->config->get_crypto_key($key), $iv);
-      $clear = mdecrypt_generic($td, $cipher);
-      mcrypt_generic_deinit($td);
-      mcrypt_module_close($td);
-    }
-    else {
-      @include_once('lib/des.inc');
-
-      if (function_exists('des')) {
-        $des_iv_size = 8;
-        $iv = substr($cipher, 0, $des_iv_size);
-        $cipher = substr($cipher, $des_iv_size);
-        $clear = des($this->config->get_crypto_key($key), $cipher, 0, 1, $iv);
-      }
-      else {
-        raise_error(array(
-          'code' => 500, 'type' => 'php',
-          'file' => __FILE__, 'line' => __LINE__,
-          'message' => "Could not perform decryption; make sure Mcrypt is installed or lib/des.inc is available"
-        ), true, true);
-      }
-    }
-
-    /*-
-     * Trim PHP's padding and the canary byte; see note in
-     * rcmail::encrypt() and http://php.net/mcrypt_generic#68082
-     */
-    $clear = substr(rtrim($clear, "\0"), 0, -1);
-
-    return $clear;
-  }
-
-  /**
-   * Generates encryption initialization vector (IV)
-   *
-   * @param int Vector size
-   * @return string Vector string
-   */
-  private function create_iv($size)
-  {
-    // mcrypt_create_iv() can be slow when system lacks entrophy
-    // we'll generate IV vector manually
-    $iv = '';
-    for ($i = 0; $i < $size; $i++)
-        $iv .= chr(mt_rand(0, 255));
-    return $iv;
-  }
-
-  /**
-   * 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));
-
-    $task = $p['_task'] ? $p['_task'] : ($p['task'] ? $p['task'] : $this->task);
-    $p['_task'] = $task;
-    unset($p['task']);
-
-    $url = './';
-    $delm = '?';
-    foreach (array_reverse($p) as $key => $val)
-    {
-      if (!empty($val)) {
-        $par = $key[0] == '_' ? $key : '_'.$key;
-        $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)
-  {
-    if (headers_sent())
-      return;
-
-    $cookie = session_get_cookie_params();
-
-    setcookie($name, $value, $exp, $cookie['path'], $cookie['domain'],
-      rcube_https_check(), true);
-  }
-}
-
-
index 66d7b675d96f45aa3bbbda26a21675ce7e3d2192..19e1be30f614c0cd4f19233f8e3ce817526b8044 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_config.php 4363 2010-12-22 19:17:47Z alec $
+ $Id: rcube_config.php 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -287,7 +287,7 @@ class rcube_config
             $domain = rcube_parse_host($this->prop['mail_domain']);
 
         if ($encode)
-            $domain = idn_to_ascii($domain);
+            $domain = rcube_idn_to_ascii($domain);
 
         return $domain;
     }
index a3cec3f6c0619ae49648e9f784996307e0390f1c..e279f1f47d3b4b8ca0140253fd63c3f095ddd5f8 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_html_page.php 4015 2010-09-29 16:47:05Z alec $
+ $Id: rcube_html_page.php 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -28,11 +28,13 @@ class rcube_html_page
 {
     protected $scripts_path = '';
     protected $script_files = array();
+    protected $css_files = array();
     protected $scripts = array();
     protected $charset = RCMAIL_CHARSET;
 
     protected $script_tag_file = "<script type=\"text/javascript\" src=\"%s\"></script>\n";
     protected $script_tag  =  "<script type=\"text/javascript\">\n/* <![CDATA[ */\n%s\n/* ]]> */\n</script>";
+    protected $link_css_file = "<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\" />\n";
     protected $default_template = "<html>\n<head><title></title></head>\n<body></body>\n</html>";
 
     protected $title = '';
@@ -61,6 +63,9 @@ class rcube_html_page
         if (in_array($file, $sa_files)) {
             return;
         }
+
+        $sa_files[] = $file;
+
         if (!is_array($this->script_files[$position])) {
             $this->script_files[$position] = array();
         }
@@ -82,6 +87,16 @@ class rcube_html_page
         }
     }
 
+    /**
+     * Link an external css file
+     *
+     * @param string File URL
+     */
+    public function include_css($file)
+    {
+        $this->css_files[] = $file;
+    }
+
     /**
      * Add HTML code to the page header
      *
@@ -163,52 +178,53 @@ class rcube_html_page
         }
 
         // replace specialchars in content
-        $__page_title = Q($this->title, 'show', FALSE);
-        $__page_header = $__page_body = $__page_footer = '';
+        $page_title  = Q($this->title, 'show', FALSE);
+        $page_header = '';
+        $page_footer = '';
 
         // include meta tag with charset
         if (!empty($this->charset)) {
             if (!headers_sent()) {
                 header('Content-Type: text/html; charset=' . $this->charset);
             }
-            $__page_header = '<meta http-equiv="content-type"';
-            $__page_header.= ' content="text/html; charset=';
-            $__page_header.= $this->charset . '" />'."\n";
+            $page_header = '<meta http-equiv="content-type"';
+            $page_header.= ' content="text/html; charset=';
+            $page_header.= $this->charset . '" />'."\n";
         }
 
         // definition of the code to be placed in the document header and footer
         if (is_array($this->script_files['head'])) {
             foreach ($this->script_files['head'] as $file) {
-                $__page_header .= sprintf($this->script_tag_file, $file);
+                $page_header .= sprintf($this->script_tag_file, $file);
             }
         }
 
         $head_script = $this->scripts['head_top'] . $this->scripts['head'];
         if (!empty($head_script)) {
-            $__page_header .= sprintf($this->script_tag, $head_script);
+            $page_header .= sprintf($this->script_tag, $head_script);
         }
 
         if (!empty($this->header)) {
-            $__page_header .= $this->header;
+            $page_header .= $this->header;
         }
 
         if (is_array($this->script_files['foot'])) {
             foreach ($this->script_files['foot'] as $file) {
-                $__page_footer .= sprintf($this->script_tag_file, $file);
+                $page_footer .= sprintf($this->script_tag_file, $file);
             }
         }
 
         if (!empty($this->scripts['foot'])) {
-            $__page_footer .= sprintf($this->script_tag, $this->scripts['foot']);
+            $page_footer .= sprintf($this->script_tag, $this->scripts['foot']);
         }
 
         if (!empty($this->footer)) {
-            $__page_footer .= $this->footer;
+            $page_footer .= $this->footer;
         }
 
         // find page header
         if ($hpos = stripos($output, '</head>')) {
-            $__page_header .= "\n";
+            $page_header .= "\n";
         }
         else {
             if (!is_numeric($hpos)) {
@@ -220,49 +236,43 @@ class rcube_html_page
                 }
                 $hpos++;
             }
-            $__page_header = "<head>\n<title>$__page_title</title>\n$__page_header\n</head>\n";
+            $page_header = "<head>\n<title>$page_title</title>\n$page_header\n</head>\n";
         }
 
         // add page hader
         if ($hpos) {
-            $output = substr($output,0,$hpos) . $__page_header . substr($output,$hpos,strlen($output));
+            $output = substr($output,0,$hpos) . $page_header . substr($output,$hpos,strlen($output));
         }
         else {
-            $output = $__page_header . $output;
+            $output = $page_header . $output;
         }
 
-        // find page body
-        if ($bpos = stripos($output, '<body')) {
-            while ($output[$bpos] != '>') {
-                $bpos++;
-            }
-            $bpos++;
-        }
-        else {
-            $bpos = stripos($output, '</head>')+7;
-        }
-
-        // add page body
-        if ($bpos && $__page_body) {
-            $output = substr($output,0,$bpos) . "\n$__page_body\n" . substr($output,$bpos,strlen($output));
-        }
-
-        // find and add page footer
+        // add page footer
         if (($fpos = strripos($output, '</body>')) || ($fpos = strripos($output, '</html>'))) {
-            $output = substr($output, 0, $fpos) . "$__page_footer\n" . substr($output, $fpos);
+            $output = substr($output, 0, $fpos) . "$page_footer\n" . substr($output, $fpos);
         }
         else {
-            $output .= "\n".$__page_footer;
+            $output .= "\n".$page_footer;
         }
 
-        // reset those global vars
-        $__page_header = $__page_footer = '';
+        // add css files in head, before scripts, for speed up with parallel downloads
+        if (!empty($this->css_files) && 
+            (($pos = stripos($output, '<script ')) || ($pos = stripos($output, '</head>')))
+        ) {
+            $css = '';
+            foreach ($this->css_files as $file) {
+                $css .= sprintf($this->link_css_file, $file);
+            }
+            $output = substr($output, 0, $pos) . $css . substr($output, $pos);
+        }
 
            $this->base_path = $base_path;
+
         // correct absolute paths in images and other tags
            // add timestamp to .js and .css filename
-        $output = preg_replace_callback('!(src|href|background)=(["\']?)([a-z0-9/_.-]+)(["\'\s>])!i',
-           array($this, 'file_callback'), $output);
+        $output = preg_replace_callback(
+            '!(src|href|background)=(["\']?)([a-z0-9/_.-]+)(["\'\s>])!i',
+               array($this, 'file_callback'), $output);
         $output = str_replace('$__skin_path', $base_path, $output);
 
         if ($this->charset != RCMAIL_CHARSET)
index e22bbfc579a99956fd91d7008a96d916e93c7ee3..9b65846bfa7184db218690a03ba5dbb3d55b05d3 100644 (file)
@@ -16,7 +16,7 @@
  | Author: Aleksander Machniak <alec@alec.pl>                            |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_imap.php 4389 2011-01-04 11:16:54Z alec $
+ $Id: rcube_imap.php 4516 2011-02-09 12:46:46Z alec $
 
 */
 
@@ -148,9 +148,18 @@ class rcube_imap
 
         $this->options['port'] = $port;
 
-        if ($this->options['debug'])
+        if ($this->options['debug']) {
             $this->conn->setDebug(true, array($this, 'debug_handler'));
 
+            $this->options['ident'] = array(
+                'name' => 'Roundcube Webmail',
+                'version' => RCMAIL_VERSION,
+                'php' => PHP_VERSION,
+                'os' => PHP_OS,
+                'command' => $_SERVER['REQUEST_URI'],
+            );
+        }
+
         $attempt = 0;
         do {
             $data = rcmail::get_instance()->plugins->exec_hook('imap_connect',
@@ -2053,7 +2062,7 @@ class rcube_imap
                 return false;
         }
 
-        $struct = &$this->_structure_part($structure);
+        $struct = &$this->_structure_part($structure, 0, '', $headers);
         $struct->headers = get_object_vars($headers);
 
         // don't trust given content-type
@@ -2185,6 +2194,11 @@ class rcube_imap
                 $struct->charset = $struct->ctype_parameters['charset'];
         }
 
+        // #1487700: workaround for lack of charset in malformed structure
+        if (empty($struct->charset) && !empty($mime_headers) && $mime_headers->charset) {
+            $struct->charset = $mime_headers->charset;
+        }
+
         // read content encoding
         if (!empty($part[5]) && $part[5]!='NIL') {
             $struct->encoding = strtolower($part[5]);
@@ -2233,7 +2247,11 @@ class rcube_imap
                 $mime_headers = $this->conn->fetchPartHeader(
                     $this->mailbox, $this->_msg_id, false, $struct->mime_id);
             }
-            $struct->headers = $this->_parse_headers($mime_headers) + $struct->headers;
+
+            if (is_string($mime_headers))
+                $struct->headers = $this->_parse_headers($mime_headers) + $struct->headers;
+            else if (is_object($mime_headers))
+                $struct->headers = get_object_vars($mime_headers) + $struct->headers;
 
             // get real content-type of message/rfc822
             if ($struct->mimetype == 'message/rfc822') {
@@ -4691,10 +4709,13 @@ class rcube_imap
     private function _parse_address_list($str, $decode=true)
     {
         // remove any newlines and carriage returns before
-        $a = rcube_explode_quoted_string('[,;]', preg_replace( "/[\r\n]/", " ", $str));
+        $str = preg_replace('/\r?\n(\s|\t)?/', ' ', $str);
+
+        // extract list items, remove comments
+        $str = self::explode_header_string(',;', $str, true);
         $result = array();
 
-        foreach ($a as $key => $val) {
+        foreach ($str as $key => $val) {
             $name    = '';
             $address = '';
             $val     = trim($val);
@@ -4735,6 +4756,81 @@ class rcube_imap
     }
 
 
+    /**
+     * Explodes header (e.g. address-list) string into array of strings
+     * using specified separator characters with proper handling
+     * of quoted-strings and comments (RFC2822)
+     *
+     * @param string $separator       String containing separator characters
+     * @param string $str             Header string
+     * @param bool   $remove_comments Enable to remove comments
+     *
+     * @return array Header items
+     */
+    static function explode_header_string($separator, $str, $remove_comments=false)
+    {
+        $length  = strlen($str);
+        $result  = array();
+        $quoted  = false;
+        $comment = 0;
+        $out     = '';
+
+        for ($i=0; $i<$length; $i++) {
+            // we're inside a quoted string
+            if ($quoted) {
+                if ($str[$i] == '"') {
+                    $quoted = false;
+                }
+                else if ($str[$i] == '\\') {
+                    if ($comment <= 0) {
+                        $out .= '\\';
+                    }
+                    $i++;
+                }
+            }
+            // we're inside a comment string
+            else if ($comment > 0) {
+                    if ($str[$i] == ')') {
+                        $comment--;
+                    }
+                    else if ($str[$i] == '(') {
+                        $comment++;
+                    }
+                    else if ($str[$i] == '\\') {
+                        $i++;
+                    }
+                    continue;
+            }
+            // separator, add to result array
+            else if (strpos($separator, $str[$i]) !== false) {
+                    if ($out) {
+                        $result[] = $out;
+                    }
+                    $out = '';
+                    continue;
+            }
+            // start of quoted string
+            else if ($str[$i] == '"') {
+                    $quoted = true;
+            }
+            // start of comment
+            else if ($remove_comments && $str[$i] == '(') {
+                    $comment++;
+            }
+
+            if ($comment <= 0) {
+                $out .= $str[$i];
+            }
+        }
+
+        if ($out && $comment <= 0) {
+            $result[] = $out;
+        }
+
+        return $result;
+    }
+
+
     /**
      * This is our own debug handler for the IMAP connection
      * @access public
index 0fa4d806c0f2bb34b36f33f4a8f546aaae605003..18f1f5da8f00101abc7439b2f68fa76d4f7024f0 100644 (file)
@@ -21,7 +21,7 @@
  | Author: Ryo Chijiiwa <Ryo@IlohaMail.org>                              |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_imap_generic.php 4399 2011-01-08 08:37:55Z alec $
+ $Id: rcube_imap_generic.php 4516 2011-02-09 12:46:46Z alec $
 
 */
 
@@ -759,6 +759,11 @@ class rcube_imap_generic
             }
         }
 
+        // Send ID info
+        if (!empty($this->prefs['ident']) && $this->getCapability('ID')) {
+            $this->id($this->prefs['ident']);
+        }
+
         $auth_methods = array();
         $result       = null;
 
@@ -1157,6 +1162,44 @@ class rcube_imap_generic
         return false;
     }
 
+    /**
+     * Executes ID command (RFC2971)
+     *
+     * @param array $items Client identification information key/value hash
+     *
+     * @return array Server identification information key/value hash
+     * @access public
+     * @since 0.6
+     */
+    function id($items=array())
+    {
+        if (is_array($items) && !empty($items)) {
+            foreach ($items as $key => $value) {
+                $args[] = $this->escape($key);
+                $args[] = $this->escape($value);
+            }
+        }
+
+        list($code, $response) = $this->execute('ID', array(
+            !empty($args) ? '(' . implode(' ', (array) $args) . ')' : $this->escape(null)
+        ));
+
+
+        if ($code == self::ERROR_OK && preg_match('/\* ID /i', $response)) {
+            $response = substr($response, 5); // remove prefix "* ID "
+            $items    = $this->tokenizeResponse($response);
+            $result   = null;
+
+            for ($i=0, $len=count($items); $i<$len; $i += 2) {
+                $result[$items[$i]] = $items[$i+1];
+            }
+
+            return $result;
+        }
+
+        return false;
+    }
+
     function sort($mailbox, $field, $add='', $is_uid=FALSE, $encoding = 'US-ASCII')
     {
         $field = strtoupper($field);
@@ -1494,7 +1537,7 @@ class rcube_imap_generic
                 // INTERNALDATE "16-Nov-2008 21:08:46 +0100" BODYSTRUCTURE (...)
                 // BODY[HEADER.FIELDS ...
 
-                if (preg_match('/^\* [0-9]+ FETCH \((.*) BODY/s', $line, $matches)) {
+                if (preg_match('/^\* [0-9]+ FETCH \((.*) BODY/sU', $line, $matches)) {
                     $str = $matches[1];
 
                     // swap parents with quotes, then explode
@@ -1531,7 +1574,7 @@ class rcube_imap_generic
 
                     // BODYSTRUCTURE
                     if ($bodystr) {
-                        while (!preg_match('/ BODYSTRUCTURE (.*) BODY\[HEADER.FIELDS/s', $line, $m)) {
+                        while (!preg_match('/ BODYSTRUCTURE (.*) BODY\[HEADER.FIELDS/sU', $line, $m)) {
                             $line2 = $this->readLine(1024);
                             $line .= $this->multLine($line2, true);
                         }
@@ -1631,7 +1674,7 @@ class rcube_imap_generic
                         break;
                         case 'content-type':
                             $ctype_parts = preg_split('/[; ]/', $string);
-                            $result[$id]->ctype = array_shift($ctype_parts);
+                            $result[$id]->ctype = strtolower(array_shift($ctype_parts));
                             if (preg_match('/charset\s*=\s*"?([a-z0-9\-\.\_]+)"?/i', $string, $regs)) {
                                 $result[$id]->charset = $regs[1];
                             }
@@ -3284,10 +3327,11 @@ class rcube_imap_generic
         else if ($string === '') {
             return '""';
         }
+        // need quoted-string? find special chars: SP, CTL, (, ), {, %, *, ", \, ]
+        // plus [ character as a workaround for DBMail's bug (#1487766)
         else if ($force_quotes ||
-            preg_match('/([\x00-\x20\x28-\x29\x7B\x25\x2A\x22\x5C\x5D\x7F]+)/', $string)
+            preg_match('/([\x00-\x20\x28-\x29\x7B\x25\x2A\x22\x5B\x5C\x5D\x7F]+)/', $string)
         ) {
-            // string: special chars: SP, CTL, (, ), {, %, *, ", \, ]
             return '"' . strtr($string, array('"'=>'\\"', '\\' => '\\\\')) . '"';
         }
 
index dcc6a190fd69e1d937f8336b0e2aba01baaed11e..51879a3153ced6278a14eb0ff5edc01611d4656d 100644 (file)
@@ -14,7 +14,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_ldap.php 4021 2010-09-30 07:28:51Z alec $
+ $Id: rcube_ldap.php 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -99,7 +99,7 @@ class rcube_ldap extends rcube_addressbook
 
     foreach ($this->prop['hosts'] as $host)
     {
-      $host = idn_to_ascii(rcube_parse_host($host));
+      $host = rcube_idn_to_ascii(rcube_parse_host($host));
       $this->_debug("C: Connect [$host".($this->prop['port'] ? ':'.$this->prop['port'] : '')."]");
 
       if ($lc = @ldap_connect($host, $this->prop['port']))
index f28d94d82ed52d00b1097e9ba3da73dd3dbc79d4..2f862b79ac6896399137576566384481d02624e4 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_message.php 4288 2010-11-29 09:54:15Z alec $
+ $Id: rcube_message.php 4516 2011-02-09 12:46:46Z alec $
 
 */
 
@@ -478,10 +478,21 @@ class rcube_message
                         if (!empty($mail_part->filename))
                             $this->attachments[] = $mail_part;
                     }
-                    // is a regular attachment (content-type name regexp according to RFC4288.4.2)
+                    // regular attachment with valid content type
+                    // (content-type name regexp according to RFC4288.4.2)
                     else if (preg_match('/^[a-z0-9!#$&.+^_-]+\/[a-z0-9!#$&.+^_-]+$/i', $part_mimetype)) {
                         if (!$mail_part->filename)
                             $mail_part->filename = 'Part '.$mail_part->mime_id;
+
+                        $this->attachments[] = $mail_part;
+                    }
+                    // attachment with invalid content type
+                    // replace malformed content type with application/octet-stream (#1487767)
+                    else if ($mail_part->filename) {
+                        $mail_part->ctype_primary   = 'application';
+                        $mail_part->ctype_secondary = 'octet-stream';
+                        $mail_part->mimetype        = 'application/octet-stream';
+
                         $this->attachments[] = $mail_part;
                     }
                 }
@@ -506,6 +517,16 @@ class rcube_message
                     ) {
                         $this->attachments[] = $inline_object;
                     }
+                    // MS Outlook sometimes also adds non-image attachments as related
+                    // We'll add all such attachments to the attachments list
+                    // Warning: some browsers support pdf in <img/>
+                    // @TODO: we should fetch HTML body and find attachment's content-id
+                    // to handle also image attachments without reference in the body
+                    if (!empty($inline_object->filename)
+                        && !preg_match('/^image\/(gif|jpe?g|png|tiff|bmp|svg)/', $inline_object->mimetype)
+                    ) {
+                        $this->attachments[] = $inline_object;
+                    }
                 }
 
                 // add replace array to each content part
index 7eec2dc1434ce27f45063c2b207af6cd7a163b17..68697469f53b278771ea25cc4154c2c68dca8e9d 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_plugin_api.php 4154 2010-10-29 08:42:28Z alec $
+ $Id: rcube_plugin_api.php 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -395,7 +395,7 @@ class rcube_plugin_api
   {
     if ($this->output->type == 'html') {
       $src = $this->resource_url($fn);
-      $this->output->add_header(html::tag('link', array('rel' => "stylesheet", 'type' => "text/css", 'href' => $src)));
+      $this->output->include_css($src);
     }
   }
   
@@ -437,4 +437,3 @@ class rcube_plugin_api
   }
 
 }
-
index 4137b3714e47783e9cc8a0f33775c2aad43118b5..59ce42379432faf2db4ec6b0d13dcd9bda176808 100644 (file)
@@ -154,6 +154,8 @@ class rcube_session
       sprintf("DELETE FROM %s WHERE sess_id = ?", get_table_name('session')),
       $key);
 
+    if ($key == $this->key)
+        $this->vars = false;
     return true;
   }
 
index f55f84c9969af63e536f7827dceb7f158ecedad4..ff62c8c090cc8588ffb7ea8f4e46bb404cef0a7a 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_shared.inc 4232 2010-11-18 10:34:10Z alec $
+ $Id: rcube_shared.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -700,7 +700,7 @@ if (!function_exists('idn_to_utf8'))
             $loaded = true;
         }
 
-        if ($idn && $domain && preg_match('/(^|@|\.)xn--/i', $domain)) {
+        if ($idn && $domain && preg_match('/(^|\.)xn--/i', $domain)) {
             try {
                 $domain = $idn->decode($domain);
             }
index b3db9d22955d275d4c39df9b034ba4b47c80342e..e795bc48f33197d779bb92520e29eb13fb31d07c 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_smtp.php 4123 2010-10-22 19:16:45Z alec $
+ $Id: rcube_smtp.php 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -101,7 +101,7 @@ class rcube_smtp
       $helo_host = 'localhost';
 
     // IDNA Support
-    $smtp_host = idn_to_ascii($smtp_host);
+    $smtp_host = rcube_idn_to_ascii($smtp_host);
 
     $this->conn = new Net_SMTP($smtp_host, $smtp_port, $helo_host);
 
@@ -132,8 +132,9 @@ class rcube_smtp
     if ($smtp_user && $smtp_pass)
     {
       // IDNA Support
-      if (strpos($smtp_user, '@'))
-        $smtp_user = idn_to_ascii($smtp_user);
+      if (strpos($smtp_user, '@')) {
+        $smtp_user = rcube_idn_to_ascii($smtp_user);
+      }
 
       $result = $this->conn->auth($smtp_user, $smtp_pass, $smtp_auth_type, $use_tls, $smtp_authz);
 
index 201bde511e45f773da8d8f80c4eadc9c348383c5..fc11b73632ae49041acc008eff81fb097ea08e5e 100755 (executable)
@@ -16,7 +16,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_template.php 4404 2011-01-12 10:26:32Z alec $
+ $Id: rcube_template.php 4509 2011-02-09 10:51:50Z thomasb $
 
  */
 
@@ -1031,7 +1031,7 @@ class rcube_template extends rcube_html_page
             $username = $this->app->user->get_username();
         }
 
-        return idn_to_utf8($username);
+        return rcube_idn_to_utf8($username);
     }
 
 
@@ -1229,8 +1229,8 @@ class rcube_template extends rcube_html_page
             'UTF-8'        => 'UTF-8 ('.rcube_label('unicode').')',
             'US-ASCII'     => 'ASCII ('.rcube_label('english').')',
             'ISO-8859-1'   => 'ISO-8859-1 ('.rcube_label('westerneuropean').')',
-            'ISO-8859-2'   => 'ISO-8895-2 ('.rcube_label('easterneuropean').')',
-            'ISO-8859-4'   => 'ISO-8895-4 ('.rcube_label('baltic').')',
+            'ISO-8859-2'   => 'ISO-8859-2 ('.rcube_label('easterneuropean').')',
+            'ISO-8859-4'   => 'ISO-8859-4 ('.rcube_label('baltic').')',
             'ISO-8859-5'   => 'ISO-8859-5 ('.rcube_label('cyrillic').')',
             'ISO-8859-6'   => 'ISO-8859-6 ('.rcube_label('arabic').')',
             'ISO-8859-7'   => 'ISO-8859-7 ('.rcube_label('greek').')',
index c58f06f12dd520a43e65e5a11a070e9988e95075..6eb3961211272796c6978290e4ae31cc822f9afb 100644 (file)
@@ -17,7 +17,7 @@ if(this.env.address_sources&&this.env.address_sources[this.env.source]&&!this.en
 "folder-size",true);parent.rcmail.env.messagecount=this.env.messagecount;parent.rcmail.enable_command("purge",this.env.messagecount);$("input[type='text']").first().select()}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(e){a.identity_select(e)});this.identity_list.init();this.identity_list.focus();this.env.iid&&this.identity_list.highlight_row(this.env.iid)}else if(this.gui_objects.sectionslist){this.sections_list=
 new rcube_list_widget(this.gui_objects.sectionslist,{multiselect:false,draggable:false,keyboard:false});this.sections_list.addEventListener("select",function(e){a.section_select(e)});this.sections_list.init();this.sections_list.focus()}else this.gui_objects.subscriptionlist&&this.init_subscription_list();break;case "login":b=$("#rcmloginuser");b.bind("keyup",function(e){return rcmail.login_user_keyup(e)});b.val()==""?b.focus():$("#rcmloginpwd").focus();$("#rcmlogintz").val((new Date).getTimezoneOffset()/
 -60);$("form").submit(function(){$("input[type=submit]",this).attr("disabled",true);rcmail.display_message("","loading")});this.enable_command("login",true)}this.loaded=true;this.pending_message&&this.display_message(this.pending_message[0],this.pending_message[1]);if(this.gui_objects.folderlist)this.gui_containers.foldertray=$(this.gui_objects.folderlist);this.triggerEvent("init",{task:this.task,action:this.env.action});for(var d in this.onloads)if(typeof this.onloads[d]=="string")eval(this.onloads[d]);
-else typeof this.onloads[d]=="function"&&this.onloads[d]();this.start_keepalive()}};this.command=function(a,b,d){d&&d.blur&&d.blur();if(this.busy)return false;if(!this.commands[a]){this.is_framed()&&parent.rcmail.command(a,b);return false}if(this.task=="mail"&&this.env.action=="compose"&&$.inArray(a,this.env.compose_commands)<0)if(this.cmp_hash!=this.compose_field_hash()&&!confirm(this.get_label("notsentwarning")))return false;if(typeof this.command_handlers[a]=="function"){a=this.command_handlers[a](b,
+else if(typeof this.onloads[d]=="function")this.onloads[d]();this.start_keepalive()}};this.command=function(a,b,d){d&&d.blur&&d.blur();if(this.busy)return false;if(!this.commands[a]){this.is_framed()&&parent.rcmail.command(a,b);return false}if(this.task=="mail"&&this.env.action=="compose"&&$.inArray(a,this.env.compose_commands)<0)if(this.cmp_hash!=this.compose_field_hash()&&!confirm(this.get_label("notsentwarning")))return false;if(typeof this.command_handlers[a]=="function"){a=this.command_handlers[a](b,
 d);return a!==null?a:d?false:true}else if(typeof this.command_handlers[a]=="string"){a=window[this.command_handlers[a]](b,d);return a!==null?a:d?false:true}this.triggerEvent("actionbefore",{props:b,action:a});var e=this.triggerEvent("before"+a,b);if(typeof e!="undefined")if(e===false)return false;else b=e;switch(a){case "login":this.gui_objects.loginform&&this.gui_objects.loginform.submit();break;case "mail":case "addressbook":case "settings":case "logout":this.switch_task(a);break;case "permaurl":if(d&&
 d.href&&d.target)return true;else if(this.env.permaurl)parent.location.href=this.env.permaurl;break;case "menu-open":case "menu-save":this.triggerEvent(a,{props:b});return false;case "open":var f;if(f=this.get_single_uid()){d.href="?_task="+this.env.task+"&_action=show&_mbox="+urlencode(this.env.mailbox)+"&_uid="+f;return true}break;case "list":if(this.task=="mail"){if(!this.env.search_request||b&&b!=this.env.mailbox)this.reset_qsearch();this.list_mailbox(b);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||b!=this.env.source)this.reset_qsearch();this.list_contacts(b);this.enable_command("add","import",this.env.address_sources&&!this.env.address_sources[this.env.source].readonly)}break;case "load-headers":this.load_headers(d);break;case "sort":var g=b;f=this.env.sort_col==g?this.env.sort_order=="ASC"?"DESC":"ASC":"ASC";this.set_list_sorting(g,f);this.list_mailbox("",
@@ -36,14 +36,14 @@ self.clearTimeout(this.save_timer);f=this.gui_objects.messageform;g=this.set_bus
 urlencode(this.env.mailbox);if(a=="reply-all")e+="&_all="+(!b&&this.commands["reply-list"]?"list":"all");else if(a=="reply-list")e+="&_all=list";this.goto_url("compose",e,true)}break;case "forward":if(f=this.get_single_uid())this.goto_url("compose","_forward_uid="+f+"&_mbox="+urlencode(this.env.mailbox),true);break;case "print":if(f=this.get_single_uid()){l.printwin=window.open(this.env.comm_path+"&_action=print&_uid="+f+"&_mbox="+urlencode(this.env.mailbox)+(this.env.safemode?"&_safe=1":""));if(this.printwin){window.setTimeout(function(){l.printwin.focus()},
 20);this.env.action!="show"&&this.mark_message("read",f)}}break;case "viewsource":if(f=this.get_single_uid()){l.sourcewin=window.open(this.env.comm_path+"&_action=viewsource&_uid="+f+"&_mbox="+urlencode(this.env.mailbox));this.sourcewin&&window.setTimeout(function(){l.sourcewin.focus()},20)}break;case "download":if(f=this.get_single_uid())this.goto_url("viewsource","&_uid="+f+"&_mbox="+urlencode(this.env.mailbox)+"&_save=1");break;case "search":if(!b&&this.gui_objects.qsearchbox)b=this.gui_objects.qsearchbox.value;
 if(b){this.qsearch(b);break}case "reset-search":f=this.env.search_request;this.reset_qsearch();if(f&&this.env.mailbox)this.list_mailbox(this.env.mailbox);else f&&this.task=="addressbook"&&this.list_contacts(this.env.source,this.env.group);break;case "listgroup":this.list_contacts(b.source,b.id);break;case "import":if(this.env.action=="import"&&this.gui_objects.importform){if((f=document.getElementById("rcmimportfile"))&&!f.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",this.env.source?"_target="+urlencode(this.env.source)+"&":"");break;case "export":if(this.contact_list.rowcount>0){f=this.env.source?"_source="+urlencode(this.env.source)+"&":"";if(this.env.search_request)f+="_search="+this.env.search_request;this.goto_url("export",f)}break;case "preferences":this.goto_url("");break;case "identities":this.goto_url("settings/identities");break;case "folders":this.goto_url("settings/folders");
-break;default:f=a.replace(/-/g,"_");this[f]&&typeof this[f]=="function"&&this[f](b)}this.triggerEvent("after"+a,b);this.triggerEvent("actionafter",{props:b,action:a});return d?false:true};this.enable_command=function(){for(var a=Array.prototype.slice.call(arguments),b=a.pop(),d,e=0;e<a.length;e++){d=a[e];if(typeof d==="string"){this.commands[d]=b;this.set_button(d,b?"act":"pas")}else for(var f in d)a.push(d[f])}};this.set_busy=function(a,b,d){if(a&&b){d=this.get_label(b);if(d==b)d="Loading...";d=
-this.display_message(d,"loading")}else!a&&d&&this.hide_message(d);this.busy=a;this.gui_objects.editform&&this.lock_form(this.gui_objects.editform,a);this.request_timer&&clearTimeout(this.request_timer);if(a&&this.env.request_timeout)this.request_timer=window.setTimeout(function(){l.request_timed_out()},this.env.request_timeout*1E3);return d};this.gettext=this.get_label=function(a,b){return b&&this.labels[b+"."+a]?this.labels[b+"."+a]:this.labels[a]?this.labels[a]:a};this.switch_task=function(a){if(!(this.task===
-a&&a!="mail")){var b=this.get_task_url(a);if(a=="mail")b+="&_mbox=INBOX";this.redirect(b)}};this.get_task_url=function(a,b){if(!b)b=this.env.comm_path;return b.replace(/_task=[a-z]+/,"_task="+a)};this.request_timed_out=function(){this.set_busy(false);this.display_message("Request timed out!","error")};this.reload=function(a){if(this.is_framed())parent.rcmail.reload(a);else if(a)window.setTimeout(function(){rcmail.reload()},a);else if(window.location)location.href=this.env.comm_path+(this.env.action?
-"&_action="+this.env.action:"")};this.add_url=function(a,b,d){d=urlencode(d);if(/(\?.*)$/.test(a)){var e=RegExp.$1,f=RegExp("((\\?|&)"+RegExp.escape(b)+"=[^&]*)");if(f.test(e))e=e.replace(f,RegExp.$2+b+"="+d);else e+="&"+b+"="+d;return a.replace(/(\?.*)$/,e)}else return a+"?"+b+"="+d};this.is_framed=function(){return this.env.framed&&parent.rcmail};this.drag_menu=function(a,b){var d=rcube_event.get_modifier(a),e=$("#"+this.gui_objects.message_dragmenu);if(e&&d==SHIFT_KEY&&this.commands.copy){d=rcube_event.get_mouse_pos(a);
-this.env.drag_target=b;e.css({top:d.y-10+"px",left:d.x-10+"px"}).show();return true}return false};this.drag_menu_action=function(a){var b=$("#"+this.gui_objects.message_dragmenu);b&&b.hide();this.command(a,this.env.drag_target);this.env.drag_target=null};this.drag_start=function(a){var b=this.task=="mail"?this.env.mailboxes:this.env.contactfolders;this.drag_active=true;this.preview_timer&&clearTimeout(this.preview_timer);this.preview_read_timer&&clearTimeout(this.preview_read_timer);if(this.gui_objects.folderlist&&
-b){this.initialBodyScrollTop=bw.ie?0:window.pageYOffset;this.initialListScrollTop=this.gui_objects.folderlist.parentNode.scrollTop;var d,e;a=$(this.gui_objects.folderlist);d=a.offset();this.env.folderlist_coords={x1:d.left,y1:d.top,x2:d.left+a.width(),y2:d.top+a.height()};this.env.folder_coords=[];for(var f in b)if(a=this.get_folder_li(f))if(e=a.firstChild.offsetHeight){d=$(a.firstChild).offset();this.env.folder_coords[f]={x1:d.left,y1:d.top,x2:d.left+a.firstChild.offsetWidth,y2:d.top+e,on:0}}}};
-this.drag_end=function(){this.drag_active=false;this.env.last_folder_target=null;if(this.folder_auto_timer){window.clearTimeout(this.folder_auto_timer);this.folder_auto_expand=this.folder_auto_timer=null}if(this.gui_objects.folderlist&&this.env.folder_coords)for(var a in this.env.folder_coords)this.env.folder_coords[a].on&&$(this.get_folder_li(a)).removeClass("droptarget")};this.drag_move=function(a){if(this.gui_objects.folderlist&&this.env.folder_coords){var b=-(this.initialListScrollTop-this.gui_objects.folderlist.parentNode.scrollTop)-
+this.set_busy(true,"importwait");this.lock_form(this.gui_objects.importform,true)}else this.goto_url("import",this.env.source?"_target="+urlencode(this.env.source)+"&":"");break;case "export":if(this.contact_list.rowcount>0){f=this.env.source?"_source="+urlencode(this.env.source)+"&":"";if(this.env.search_request)f+="_search="+this.env.search_request;this.goto_url("export",f)}break;case "preferences":case "identities":case "folders":this.goto_url("settings/"+a);break;default:f=a.replace(/-/g,"_");
+if(this[f]&&typeof this[f]=="function")this[f](b)}this.triggerEvent("after"+a,b);this.triggerEvent("actionafter",{props:b,action:a});return d?false:true};this.enable_command=function(){for(var a=Array.prototype.slice.call(arguments),b=a.pop(),d,e=0;e<a.length;e++){d=a[e];if(typeof d==="string"){this.commands[d]=b;this.set_button(d,b?"act":"pas")}else for(var f in d)a.push(d[f])}};this.set_busy=function(a,b,d){if(a&&b){d=this.get_label(b);if(d==b)d="Loading...";d=this.display_message(d,"loading")}else!a&&
+d&&this.hide_message(d);this.busy=a;this.gui_objects.editform&&this.lock_form(this.gui_objects.editform,a);this.request_timer&&clearTimeout(this.request_timer);if(a&&this.env.request_timeout)this.request_timer=window.setTimeout(function(){l.request_timed_out()},this.env.request_timeout*1E3);return d};this.gettext=this.get_label=function(a,b){return b&&this.labels[b+"."+a]?this.labels[b+"."+a]:this.labels[a]?this.labels[a]:a};this.switch_task=function(a){if(!(this.task===a&&a!="mail")){var b=this.get_task_url(a);
+if(a=="mail")b+="&_mbox=INBOX";this.redirect(b)}};this.get_task_url=function(a,b){if(!b)b=this.env.comm_path;return b.replace(/_task=[a-z]+/,"_task="+a)};this.request_timed_out=function(){this.set_busy(false);this.display_message("Request timed out!","error")};this.reload=function(a){if(this.is_framed())parent.rcmail.reload(a);else if(a)window.setTimeout(function(){rcmail.reload()},a);else if(window.location)location.href=this.env.comm_path+(this.env.action?"&_action="+this.env.action:"")};this.add_url=
+function(a,b,d){d=urlencode(d);if(/(\?.*)$/.test(a)){var e=RegExp.$1,f=RegExp("((\\?|&)"+RegExp.escape(b)+"=[^&]*)");if(f.test(e))e=e.replace(f,RegExp.$2+b+"="+d);else e+="&"+b+"="+d;return a.replace(/(\?.*)$/,e)}else return a+"?"+b+"="+d};this.is_framed=function(){return this.env.framed&&parent.rcmail};this.drag_menu=function(a,b){var d=rcube_event.get_modifier(a),e=$("#"+this.gui_objects.message_dragmenu);if(e&&d==SHIFT_KEY&&this.commands.copy){d=rcube_event.get_mouse_pos(a);this.env.drag_target=
+b;e.css({top:d.y-10+"px",left:d.x-10+"px"}).show();return true}return false};this.drag_menu_action=function(a){var b=$("#"+this.gui_objects.message_dragmenu);b&&b.hide();this.command(a,this.env.drag_target);this.env.drag_target=null};this.drag_start=function(a){var b=this.task=="mail"?this.env.mailboxes:this.env.contactfolders;this.drag_active=true;this.preview_timer&&clearTimeout(this.preview_timer);this.preview_read_timer&&clearTimeout(this.preview_read_timer);if(this.gui_objects.folderlist&&b){this.initialBodyScrollTop=
+bw.ie?0:window.pageYOffset;this.initialListScrollTop=this.gui_objects.folderlist.parentNode.scrollTop;var d,e;a=$(this.gui_objects.folderlist);d=a.offset();this.env.folderlist_coords={x1:d.left,y1:d.top,x2:d.left+a.width(),y2:d.top+a.height()};this.env.folder_coords=[];for(var f in b)if(a=this.get_folder_li(f))if(e=a.firstChild.offsetHeight){d=$(a.firstChild).offset();this.env.folder_coords[f]={x1:d.left,y1:d.top,x2:d.left+a.firstChild.offsetWidth,y2:d.top+e,on:0}}}};this.drag_end=function(){this.drag_active=
+false;this.env.last_folder_target=null;if(this.folder_auto_timer){window.clearTimeout(this.folder_auto_timer);this.folder_auto_expand=this.folder_auto_timer=null}if(this.gui_objects.folderlist&&this.env.folder_coords)for(var a in this.env.folder_coords)this.env.folder_coords[a].on&&$(this.get_folder_li(a)).removeClass("droptarget")};this.drag_move=function(a){if(this.gui_objects.folderlist&&this.env.folder_coords){var b=-(this.initialListScrollTop-this.gui_objects.folderlist.parentNode.scrollTop)-
 (bw.ie?-document.documentElement.scrollTop:this.initialBodyScrollTop),d,e,f;d="draglayernormal";if(this.contact_list&&this.contact_list.draglayer)f=this.contact_list.draglayer.attr("class");a=rcube_event.get_mouse_pos(a);e=this.env.folderlist_coords;a.y+=b;if(a.x<e.x1||a.x>=e.x2||a.y<e.y1||a.y>=e.y2){if(this.env.last_folder_target){$(this.get_folder_li(this.env.last_folder_target)).removeClass("droptarget");this.env.folder_coords[this.env.last_folder_target].on=0;this.env.last_folder_target=null}}else for(var g in this.env.folder_coords){e=
 this.env.folder_coords[g];if(a.x>=e.x1&&a.x<e.x2&&a.y>=e.y1&&a.y<e.y2)if(b=this.check_droptarget(g)){d=this.get_folder_li(g);e=$(d.getElementsByTagName("div")[0]);if(e.hasClass("collapsed")){this.folder_auto_timer&&window.clearTimeout(this.folder_auto_timer);this.folder_auto_expand=g;this.folder_auto_timer=window.setTimeout(function(){rcmail.command("collapse-folder",rcmail.folder_auto_expand);rcmail.drag_start(null)},1E3)}else if(this.folder_auto_timer){window.clearTimeout(this.folder_auto_timer);
 this.folder_auto_expand=this.folder_auto_timer=null}$(d).addClass("droptarget");this.env.folder_coords[g].on=1;this.env.last_folder_target=g;d="draglayer"+(b>1?"copy":"normal")}else this.env.last_folder_target=null;else if(e.on){$(this.get_folder_li(g)).removeClass("droptarget");this.env.folder_coords[g].on=0}}d!=f&&this.contact_list&&this.contact_list.draglayer&&this.contact_list.draglayer.attr("class",d)}};this.collapse_folder=function(a){var b=this.get_folder_li(a),d=$(b.getElementsByTagName("div")[0]);
@@ -59,23 +59,23 @@ function(a){var b,d=a.list.tHead.rows[0].cells;this.env.coltypes=[];for(a=0;a<d.
 d=false;if(this.task=="mail")b=this.env.mailboxes[a]&&this.env.mailboxes[a].id!=this.env.mailbox&&!this.env.mailboxes[a].virtual;else if(this.task=="settings")b=a!=this.env.mailbox;else if(this.task=="addressbook")if(a!=this.env.source&&this.env.contactfolders[a])if(this.env.contactfolders[a].type=="group"){d=this.env.contactfolders[a].source;b=this.env.contactfolders[a].id!=this.env.group&&!this.env.contactfolders[d].readonly;d=d!=this.env.source}else{b=!this.env.contactfolders[a].readonly;d=true}return b?
 d?2:1:0};this.init_message_row=function(a){var b,d=this,e=a.uid,f=(this.env.status_col!=null?"status":"msg")+"icn"+a.uid;e&&this.env.messages[e]&&$.extend(a,this.env.messages[e]);if(a.icon=document.getElementById(f)){a.icon._row=a.obj;a.icon.onmousedown=function(g){d.command("toggle_status",this);rcube_event.cancel(g)}}a.msgicon=this.env.status_col!=null?document.getElementById("msgicn"+a.uid):a.icon;if(this.env.flagged_col!=null&&(a.flagicon=document.getElementById("flagicn"+a.uid))){a.flagicon._row=
 a.obj;a.flagicon.onmousedown=function(g){d.command("toggle_flag",this);rcube_event.cancel(g)}}if(!a.depth&&a.has_children&&(b=document.getElementById("rcmexpando"+a.uid))){a.expando=b;b.onmousedown=function(g){return d.expand_message_row(g,e)}}this.triggerEvent("insertrow",{uid:e,row:a})};this.add_message_row=function(a,b,d,e){if(!this.gui_objects.messagelist||!this.message_list)return false;this.env.messages[a]||(this.env.messages[a]={});$.extend(this.env.messages[a],{deleted:d.deleted?1:0,replied:d.replied?
-1:0,unread:d.unread?1:0,forwarded:d.forwarded?1:0,flagged:d.flagged?1:0,has_children:d.has_children?1:0,depth:d.depth?d.depth:0,unread_children:d.unread_children?d.unread_children:0,parent_uid:d.parent_uid?d.parent_uid:0,selected:this.select_all_mode||this.message_list.in_selection(a),ml:d.ml?1:0,ctype:d.ctype,flags:d.extra_flags});var f,g=expando="",h=this.message_list;f=h.rows;var k=this.env.messages[a],j="message"+(this.gui_objects.messagelist.tBodies[0].rows.length%2?" even":" odd")+(d.unread?
-" unread":"")+(d.deleted?" deleted":"")+(d.flagged?" flagged":"")+(d.unread_children&&!d.unread&&!this.env.autoexpand_threads?" unroot":"")+(k.selected?" selected":""),m=document.createElement("tr"),n=document.createElement("td");m.id="rcmrow"+a;m.className=j;j="msgicon";if(this.env.status_col===null){j+=" status";if(d.deleted)j+=" deleted";else if(d.unread)j+=" unread";else if(d.unread_children>0)j+=" unreadchildren"}if(d.replied)j+=" replied";if(d.forwarded)j+=" forwarded";k.selected&&!h.in_selection(a)&&
-h.selection.push(a);if(this.env.threading){n=k.depth*15;if(k.depth)if(f[k.parent_uid]&&f[k.parent_uid].expanded===false||(this.env.autoexpand_threads==0||this.env.autoexpand_threads==2)&&(!f[k.parent_uid]||!f[k.parent_uid].expanded)){m.style.display="none";k.expanded=false}else k.expanded=true;else if(k.has_children)if(typeof k.expanded=="undefined"&&(this.env.autoexpand_threads==1||this.env.autoexpand_threads==2&&k.unread_children))k.expanded=true;if(n)g+='<span id="rcmtab'+a+'" class="branch" style="width:'+
-n+'px;">&nbsp;&nbsp;</span>';if(k.has_children&&!k.depth)expando='<div id="rcmexpando'+a+'" class="'+(k.expanded?"expanded":"collapsed")+'">&nbsp;&nbsp;</div>'}g+='<span id="msgicn'+a+'" class="'+j+'">&nbsp;</span>';if(!bw.ie&&b.subject){n=d.mbox==this.env.drafts_mailbox?"_draft_uid":"_uid";b.subject='<a href="./?_task=mail&_action='+(d.mbox==this.env.drafts_mailbox?"compose":"show")+"&_mbox="+urlencode(d.mbox)+"&"+n+"="+a+'" onclick="return rcube_event.cancel(event)">'+b.subject+"</a>"}for(var o in this.env.coltypes){f=
-this.env.coltypes[o];n=document.createElement("td");n.className=String(f).toLowerCase();if(f=="flag"){j=d.flagged?"flagged":"unflagged";f='<span id="flagicn'+a+'" class="'+j+'">&nbsp;</span>'}else if(f=="attachment")f=/application\/|multipart\/m/.test(d.ctype)?'<span class="attachment">&nbsp;</span>':/multipart\/report/.test(d.ctype)?'<span class="report">&nbsp;</span>':"&nbsp;";else if(f=="status"){j=d.deleted?"deleted":d.unread?"unread":d.unread_children>0?"unreadchildren":"msgicon";f='<span id="statusicn'+
-a+'" class="'+j+'">&nbsp;</span>'}else f=f=="threads"?expando:f=="subject"?g+b[f]:b[f];n.innerHTML=f;m.appendChild(n)}h.insert_row(m,e);if(e&&this.env.pagesize&&h.rowcount>this.env.pagesize){a=h.get_last_row();h.remove_row(a);h.clear_selection(a)}};this.set_list_sorting=function(a,b){$("#rcm"+this.env.sort_col).removeClass("sorted"+this.env.sort_order.toUpperCase());a&&$("#rcm"+a).addClass("sorted"+b);this.env.sort_col=a;this.env.sort_order=b};this.set_list_options=function(a,b,d,e){var f,g="";if(typeof b==
-"undefined")b=this.env.sort_col;if(!d)d=this.env.sort_order;if(this.env.sort_col!=b||this.env.sort_order!=d){f=1;this.set_list_sorting(b,d)}if(this.env.threading!=e){f=1;g+="&_threads="+e}if(a&&a.length){var h,k,j=[],m=this.env.coltypes;for(e=0;e<m.length;e++){k=m[e]=="to"?"from":m[e];h=$.inArray(k,a);if(h!=-1){j.push(k);delete a[h]}}for(e=0;e<a.length;e++)a[e]&&j.push(a[e]);if(j.join()!=m.join()){f=1;g+="&_cols="+j.join(",")}}f&&this.list_mailbox("","",b+"_"+d,g)};this.show_message=function(a,b,
-d){if(a){var e=window,f=d?"preview":"show",g="&_action="+f+"&_uid="+a+"&_mbox="+urlencode(this.env.mailbox);if(d&&this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){e=window.frames[this.env.contentframe];g+="&_framed=1"}if(b)g+="&_safe=1";if(this.env.search_request)g+="&_search="+this.env.search_request;if(f=="preview"&&String(e.location.href).indexOf(g)>=0)this.show_contentframe(true);else{if(!this.env.frame_lock)(this.is_framed()?parent.rcmail:this).env.frame_lock=this.set_busy(true,
-"loading");e.location.href=this.env.comm_path+g;if(f=="preview"&&this.message_list&&this.message_list.rows[a]&&this.message_list.rows[a].unread&&this.env.preview_pane_mark_read>=0)this.preview_read_timer=window.setTimeout(function(){l.set_message(a,"unread",false);l.update_thread_root(a,"read");if(l.env.unread_counts[l.env.mailbox]){l.env.unread_counts[l.env.mailbox]-=1;l.set_unread_count(l.env.mailbox,l.env.unread_counts[l.env.mailbox],l.env.mailbox=="INBOX")}l.env.preview_pane_mark_read>0&&l.http_post("mark",
-"_uid="+a+"&_flag=read&_quiet=1")},this.env.preview_pane_mark_read*1E3)}}};this.show_contentframe=function(a){var b,d;if(this.env.contentframe&&(b=$("#"+this.env.contentframe))&&b.length)if(!a&&(d=window.frames[this.env.contentframe])){if(d.location&&d.location.href.indexOf(this.env.blankpage)<0)d.location.href=this.env.blankpage}else if(!bw.safari&&!bw.konq)b[a?"show":"hide"]();!a&&this.busy&&this.set_busy(false,null,this.env.frame_lock)};this.list_page=function(a){if(a=="next")a=this.env.current_page+
-1;else if(a=="last")a=this.env.pagecount;else if(a=="prev"&&this.env.current_page>1)a=this.env.current_page-1;else if(a=="first"&&this.env.current_page>1)a=1;if(a>0&&a<=this.env.pagecount){this.env.current_page=a;if(this.task=="mail")this.list_mailbox(this.env.mailbox,a);else this.task=="addressbook"&&this.list_contacts(this.env.source,this.env.group,a)}};this.filter_mailbox=function(a){var b,d=this.set_busy(true,"searching");if(this.gui_objects.qsearchbox)b=this.gui_objects.qsearchbox.value;this.clear_message_list();
-this.env.current_page=1;this.http_request("search","_filter="+a+(b?"&_q="+urlencode(b):"")+(this.env.mailbox?"&_mbox="+urlencode(this.env.mailbox):""),d)};this.list_mailbox=function(a,b,d,e){var f="",g=window;a||(a=this.env.mailbox?this.env.mailbox:"INBOX");if(e)f+=e;if(d)f+="&_sort="+d;if(this.env.search_request)f+="&_search="+this.env.search_request;if(this.env.mailbox!=a){b=1;this.env.current_page=b;this.select_all_mode=false}this.clear_message_list();if(a!=this.env.mailbox||a==this.env.mailbox&&
-!b&&!d)f+="&_refresh=1";this.select_folder(a,this.env.mailbox);this.env.mailbox=a;if(this.gui_objects.messagelist)this.list_mailbox_remote(a,b,f);else{if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){g=window.frames[this.env.contentframe];f+="&_framed=1"}if(a){this.set_busy(true,"loading");g.location.href=this.env.comm_path+"&_mbox="+urlencode(a)+(b?"&_page="+b:"")+f}}};this.clear_message_list=function(){this.env.messages={};this.last_selected=0;this.show_contentframe(false);
-this.message_list&&this.message_list.clear(true)};this.list_mailbox_remote=function(a,b,d){this.message_list.clear();a="_mbox="+urlencode(a)+(b?"&_page="+b:"");b=this.set_busy(true,"loading");this.http_request("list",a+d,b)};this.update_selection=function(){var a=this.message_list.selection,b=this.message_list.rows,d,e=[];for(d in a)b[a[d]]&&e.push(a[d]);this.message_list.selection=e};this.expand_unread=function(){for(var a,b=this.gui_objects.messagelist.tBodies[0].firstChild;b;){if(b.nodeType==1&&
-(a=this.message_list.rows[b.uid])&&a.unread_children){this.message_list.expand_all(a);this.set_unread_children(a.uid)}b=b.nextSibling}return false};this.expand_message_row=function(a,b){var d=this.message_list.rows[b];d.expanded=!d.expanded;this.set_unread_children(b);d.expanded=!d.expanded;this.message_list.expand_row(a,b)};this.expand_threads=function(){if(!(!this.env.threading||!this.env.autoexpand_threads||!this.message_list))switch(this.env.autoexpand_threads){case 2:this.expand_unread();break;
-case 1:this.message_list.expand_all()}};this.init_threads=function(a){for(var b=0,d=a.length;b<d;b++)this.add_tree_icons(a[b]);this.expand_threads()};this.add_tree_icons=function(a){var b,d,e,f,g=[],h=[],k,j=this.message_list.rows;for(k=a?j[a]?j[a].obj:null:this.message_list.list.tBodies[0].firstChild;k;){if(k.nodeType==1&&(d=j[k.uid]))if(d.depth){for(b=g.length-1;b>=0;b--){e=g[b].length;if(e>d.depth){f=e-d.depth;g[b][f]&2||(g[b][f]=g[b][f]?g[b][f]+2:2)}else if(e==d.depth)g[b][0]&2||(g[b][0]+=2);
-if(d.depth>e)break}g.push(Array(d.depth));g[g.length-1][0]=1;h.push(d.uid)}else{if(g.length){for(b in g)this.set_tree_icons(h[b],g[b]);g=[];h=[]}if(a&&k!=j[a].obj)break}k=k.nextSibling}if(g.length)for(b in g)this.set_tree_icons(h[b],g[b])};this.set_tree_icons=function(a,b){var d,e=[],f="",g=b.length;for(d=0;d<g;d++)if(b[d]>2)e.push({"class":"l3",width:15});else if(b[d]>1)e.push({"class":"l2",width:15});else if(b[d]>0)e.push({"class":"l1",width:15});else if(e.length&&!e[e.length-1]["class"])e[e.length-
+1:0,unread:d.unread?1:0,forwarded:d.forwarded?1:0,flagged:d.flagged?1:0,has_children:d.has_children?1:0,depth:d.depth?d.depth:0,unread_children:d.unread_children?d.unread_children:0,parent_uid:d.parent_uid?d.parent_uid:0,selected:this.select_all_mode||this.message_list.in_selection(a),ml:d.ml?1:0,ctype:d.ctype,flags:d.extra_flags});var f,g=expando="",h=this.message_list,k=h.rows;f=this.env.messages[a];var j="message"+(this.gui_objects.messagelist.tBodies[0].rows.length%2?" even":" odd")+(d.unread?
+" unread":"")+(d.deleted?" deleted":"")+(d.flagged?" flagged":"")+(d.unread_children&&!d.unread&&!this.env.autoexpand_threads?" unroot":"")+(f.selected?" selected":""),m=document.createElement("tr"),n=document.createElement("td");m.id="rcmrow"+a;m.className=j;j="msgicon";if(this.env.status_col===null){j+=" status";if(d.deleted)j+=" deleted";else if(d.unread)j+=" unread";else if(d.unread_children>0)j+=" unreadchildren"}if(d.replied)j+=" replied";if(d.forwarded)j+=" forwarded";f.selected&&!h.in_selection(a)&&
+h.selection.push(a);if(this.env.threading){n=f.depth*15;if(f.depth)if(k[f.parent_uid]&&k[f.parent_uid].expanded===false||(this.env.autoexpand_threads==0||this.env.autoexpand_threads==2)&&(!k[f.parent_uid]||!k[f.parent_uid].expanded)){m.style.display="none";f.expanded=false}else f.expanded=true;else if(f.has_children)if(typeof f.expanded=="undefined"&&(this.env.autoexpand_threads==1||this.env.autoexpand_threads==2&&f.unread_children))f.expanded=true;if(n)g+='<span id="rcmtab'+a+'" class="branch" style="width:'+
+n+'px;">&nbsp;&nbsp;</span>';if(f.has_children&&!f.depth)expando='<div id="rcmexpando'+a+'" class="'+(f.expanded?"expanded":"collapsed")+'">&nbsp;&nbsp;</div>'}g+='<span id="msgicn'+a+'" class="'+j+'">&nbsp;</span>';if(!bw.ie&&b.subject){n=d.mbox==this.env.drafts_mailbox?"_draft_uid":"_uid";b.subject='<a href="./?_task=mail&_action='+(d.mbox==this.env.drafts_mailbox?"compose":"show")+"&_mbox="+urlencode(d.mbox)+"&"+n+"="+a+'" onclick="return rcube_event.cancel(event)" onmouseover="rcube_webmail.long_subject_title(this,'+
+(f.depth+1)+')">'+b.subject+"</a>"}for(var o in this.env.coltypes){f=this.env.coltypes[o];n=document.createElement("td");n.className=String(f).toLowerCase();if(f=="flag"){j=d.flagged?"flagged":"unflagged";f='<span id="flagicn'+a+'" class="'+j+'">&nbsp;</span>'}else if(f=="attachment")f=/application\/|multipart\/m/.test(d.ctype)?'<span class="attachment">&nbsp;</span>':/multipart\/report/.test(d.ctype)?'<span class="report">&nbsp;</span>':"&nbsp;";else if(f=="status"){j=d.deleted?"deleted":d.unread?
+"unread":d.unread_children>0?"unreadchildren":"msgicon";f='<span id="statusicn'+a+'" class="'+j+'">&nbsp;</span>'}else f=f=="threads"?expando:f=="subject"?g+b[f]:b[f];n.innerHTML=f;m.appendChild(n)}h.insert_row(m,e);if(e&&this.env.pagesize&&h.rowcount>this.env.pagesize){a=h.get_last_row();h.remove_row(a);h.clear_selection(a)}};this.set_list_sorting=function(a,b){$("#rcm"+this.env.sort_col).removeClass("sorted"+this.env.sort_order.toUpperCase());a&&$("#rcm"+a).addClass("sorted"+b);this.env.sort_col=
+a;this.env.sort_order=b};this.set_list_options=function(a,b,d,e){var f,g="";if(typeof b=="undefined")b=this.env.sort_col;if(!d)d=this.env.sort_order;if(this.env.sort_col!=b||this.env.sort_order!=d){f=1;this.set_list_sorting(b,d)}if(this.env.threading!=e){f=1;g+="&_threads="+e}if(a&&a.length){var h,k,j=[],m=this.env.coltypes;for(e=0;e<m.length;e++){k=m[e]=="to"?"from":m[e];h=$.inArray(k,a);if(h!=-1){j.push(k);delete a[h]}}for(e=0;e<a.length;e++)a[e]&&j.push(a[e]);if(j.join()!=m.join()){f=1;g+="&_cols="+
+j.join(",")}}f&&this.list_mailbox("","",b+"_"+d,g)};this.show_message=function(a,b,d){if(a){var e=window,f=d?"preview":"show",g="&_action="+f+"&_uid="+a+"&_mbox="+urlencode(this.env.mailbox);if(d&&this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){e=window.frames[this.env.contentframe];g+="&_framed=1"}if(b)g+="&_safe=1";if(this.env.search_request)g+="&_search="+this.env.search_request;if(f=="preview"&&String(e.location.href).indexOf(g)>=0)this.show_contentframe(true);else{if(!this.env.frame_lock)(this.is_framed()?
+parent.rcmail:this).env.frame_lock=this.set_busy(true,"loading");e.location.href=this.env.comm_path+g;if(f=="preview"&&this.message_list&&this.message_list.rows[a]&&this.message_list.rows[a].unread&&this.env.preview_pane_mark_read>=0)this.preview_read_timer=window.setTimeout(function(){l.set_message(a,"unread",false);l.update_thread_root(a,"read");if(l.env.unread_counts[l.env.mailbox]){l.env.unread_counts[l.env.mailbox]-=1;l.set_unread_count(l.env.mailbox,l.env.unread_counts[l.env.mailbox],l.env.mailbox==
+"INBOX")}l.env.preview_pane_mark_read>0&&l.http_post("mark","_uid="+a+"&_flag=read&_quiet=1")},this.env.preview_pane_mark_read*1E3)}}};this.show_contentframe=function(a){var b,d;if(this.env.contentframe&&(b=$("#"+this.env.contentframe))&&b.length)if(!a&&(d=window.frames[this.env.contentframe])){if(d.location&&d.location.href.indexOf(this.env.blankpage)<0)d.location.href=this.env.blankpage}else if(!bw.safari&&!bw.konq)b[a?"show":"hide"]();!a&&this.busy&&this.set_busy(false,null,this.env.frame_lock)};
+this.list_page=function(a){if(a=="next")a=this.env.current_page+1;else if(a=="last")a=this.env.pagecount;else if(a=="prev"&&this.env.current_page>1)a=this.env.current_page-1;else if(a=="first"&&this.env.current_page>1)a=1;if(a>0&&a<=this.env.pagecount){this.env.current_page=a;if(this.task=="mail")this.list_mailbox(this.env.mailbox,a);else this.task=="addressbook"&&this.list_contacts(this.env.source,this.env.group,a)}};this.filter_mailbox=function(a){var b,d=this.set_busy(true,"searching");if(this.gui_objects.qsearchbox)b=
+this.gui_objects.qsearchbox.value;this.clear_message_list();this.env.current_page=1;this.http_request("search","_filter="+a+(b?"&_q="+urlencode(b):"")+(this.env.mailbox?"&_mbox="+urlencode(this.env.mailbox):""),d)};this.list_mailbox=function(a,b,d,e){var f="",g=window;a||(a=this.env.mailbox?this.env.mailbox:"INBOX");if(e)f+=e;if(d)f+="&_sort="+d;if(this.env.search_request)f+="&_search="+this.env.search_request;if(this.env.mailbox!=a){b=1;this.env.current_page=b;this.select_all_mode=false}this.clear_message_list();
+if(a!=this.env.mailbox||a==this.env.mailbox&&!b&&!d)f+="&_refresh=1";this.select_folder(a,this.env.mailbox);this.env.mailbox=a;if(this.gui_objects.messagelist)this.list_mailbox_remote(a,b,f);else{if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){g=window.frames[this.env.contentframe];f+="&_framed=1"}if(a){this.set_busy(true,"loading");g.location.href=this.env.comm_path+"&_mbox="+urlencode(a)+(b?"&_page="+b:"")+f}}};this.clear_message_list=function(){this.env.messages=
+{};this.last_selected=0;this.show_contentframe(false);this.message_list&&this.message_list.clear(true)};this.list_mailbox_remote=function(a,b,d){this.message_list.clear();a="_mbox="+urlencode(a)+(b?"&_page="+b:"");b=this.set_busy(true,"loading");this.http_request("list",a+d,b)};this.update_selection=function(){var a=this.message_list.selection,b=this.message_list.rows,d,e=[];for(d in a)b[a[d]]&&e.push(a[d]);this.message_list.selection=e};this.expand_unread=function(){for(var a,b=this.gui_objects.messagelist.tBodies[0].firstChild;b;){if(b.nodeType==
+1&&(a=this.message_list.rows[b.uid])&&a.unread_children){this.message_list.expand_all(a);this.set_unread_children(a.uid)}b=b.nextSibling}return false};this.expand_message_row=function(a,b){var d=this.message_list.rows[b];d.expanded=!d.expanded;this.set_unread_children(b);d.expanded=!d.expanded;this.message_list.expand_row(a,b)};this.expand_threads=function(){if(!(!this.env.threading||!this.env.autoexpand_threads||!this.message_list))switch(this.env.autoexpand_threads){case 2:this.expand_unread();
+break;case 1:this.message_list.expand_all()}};this.init_threads=function(a){for(var b=0,d=a.length;b<d;b++)this.add_tree_icons(a[b]);this.expand_threads()};this.add_tree_icons=function(a){var b,d,e,f,g=[],h=[],k,j=this.message_list.rows;for(k=a?j[a]?j[a].obj:null:this.message_list.list.tBodies[0].firstChild;k;){if(k.nodeType==1&&(d=j[k.uid]))if(d.depth){for(b=g.length-1;b>=0;b--){e=g[b].length;if(e>d.depth){f=e-d.depth;g[b][f]&2||(g[b][f]=g[b][f]?g[b][f]+2:2)}else if(e==d.depth)g[b][0]&2||(g[b][0]+=
+2);if(d.depth>e)break}g.push(Array(d.depth));g[g.length-1][0]=1;h.push(d.uid)}else{if(g.length){for(b in g)this.set_tree_icons(h[b],g[b]);g=[];h=[]}if(a&&k!=j[a].obj)break}k=k.nextSibling}if(g.length)for(b in g)this.set_tree_icons(h[b],g[b])};this.set_tree_icons=function(a,b){var d,e=[],f="",g=b.length;for(d=0;d<g;d++)if(b[d]>2)e.push({"class":"l3",width:15});else if(b[d]>1)e.push({"class":"l2",width:15});else if(b[d]>0)e.push({"class":"l1",width:15});else if(e.length&&!e[e.length-1]["class"])e[e.length-
 1].width+=15;else e.push({"class":null,width:15});for(d=e.length-1;d>=0;d--)f+=e[d]["class"]?'<div class="tree '+e[d]["class"]+'" />':'<div style="width:'+e[d].width+'px" />';f&&$("#rcmtab"+a).html(f)};this.update_thread_root=function(a,b){if(this.env.threading){var d=this.message_list.find_root(a);if(a!=d){var e=this.message_list.rows[d];if(b=="read"&&e.unread_children)e.unread_children--;else if(b=="unread"&&e.has_children)e.unread_children=e.unread_children?e.unread_children+1:1;else return;this.set_message_icon(d);
 this.set_unread_children(d)}}};this.update_thread=function(a){if(!this.env.threading)return 0;var b,d=0,e=this.message_list.rows,f=e[a],g=e[a].depth,h=[];if(f.depth){if(f.unread){a=this.message_list.find_root(a);e[a].unread_children--;this.set_unread_children(a)}}else d--;a=f.parent_uid;for(f=f.obj.nextSibling;f;){if(f.nodeType==1&&(b=e[f.uid])){if(!b.depth||b.depth<=g)break;b.depth--;$("#rcmtab"+b.uid).width(b.depth*15).html("");if(b.depth){if(b.depth==g)b.parent_uid=a;b.unread&&h.length&&h[h.length-
 1].unread_children++}else{d++;b.parent_uid=0;if(b.has_children){$("#rcmrow"+b.uid+" .leaf:first").attr("id","rcmexpando"+b.uid).attr("class",b.obj.style.display!="none"?"expanded":"collapsed").bind("mousedown",{uid:b.uid,p:this},function(k){return k.data.p.expand_message_row(k,k.data.uid)});b.unread_children=0;h.push(b)}b.obj.style.display=="none"&&$(b.obj).show()}}f=f.nextSibling}for(b=0;b<h.length;b++)this.set_unread_children(h[b].uid);return d};this.delete_excessive_thread_rows=function(){for(var a=
@@ -87,11 +87,11 @@ this.set_message_icon(a)};this.set_unread_children=function(a){a=this.message_li
 "");if(this.env.action=="show")b=this.set_busy(true,"movingmessage");else this.show_contentframe(false);this.enable_command(this.env.message_commands,false);this._with_selected_messages("moveto",b,a)}};this.delete_messages=function(){var a=this.message_list?$.merge([],this.message_list.get_selection()):[];if(this.env.uid||a.length){for(var b,d=0,e=a.length;d<e;d++){b=a[d];this.message_list.rows[b].has_children&&!this.message_list.rows[b].expanded&&this.message_list.select_childs(b)}if(this.env.flag_for_deletion){this.mark_message("delete");
 return false}else if(!this.env.trash_mailbox||this.env.mailbox==this.env.trash_mailbox)this.permanently_remove_messages();else if(this.message_list&&this.message_list.shiftkey)confirm(this.get_label("deletemessagesconfirm"))&&this.permanently_remove_messages();else this.move_messages(this.env.trash_mailbox);return true}};this.permanently_remove_messages=function(){if(!(!this.env.uid&&(!this.message_list||!this.message_list.get_selection().length))){this.show_contentframe(false);this._with_selected_messages("delete",
 false,"&_from="+(this.env.action?this.env.action:""))}};this._with_selected_messages=function(a,b,d){var e=[],f=0;if(this.env.uid)e[0]=this.env.uid;else{var g,h,k,j=[],m=this.message_list.get_selection();g=0;for(len=m.length;g<len;g++){h=m[g];e.push(h);if(this.env.threading){f+=this.update_thread(h);k=this.message_list.find_root(h);k!=h&&$.inArray(k,j)<0&&j.push(k)}this.message_list.remove_row(h,this.env.display_next&&g==m.length-1)}this.env.display_next||this.message_list.clear_selection();g=0;for(len=
-j.length;g<len;g++)this.add_tree_icons(j[g])}if(this.env.search_request)d+="&_search="+this.env.search_request;if(this.env.display_next&&this.env.next_uid)d+="&_next_uid="+this.env.next_uid;if(f<0)d+="&_count="+f*-1;else f>0&&this.delete_excessive_thread_rows();d+="&_uid="+this.uids_to_list(e);if(!b){b=a=="moveto"?"movingmessage":"deletingmessage";b=this.display_message(this.get_label(b),"loading")}this.http_post(a,"_mbox="+urlencode(this.env.mailbox)+d,b)};this.mark_message=function(a,b){var d=[],
-e=[],f,g,h;h=this.message_list?this.message_list.get_selection():[];if(b)d[0]=b;else if(this.env.uid)d[0]=this.env.uid;else if(this.message_list){g=0;for(f=h.length;g<f;g++)d.push(h[g])}if(this.message_list){g=0;for(f=d.length;g<f;g++){h=d[g];if(a=="read"&&this.message_list.rows[h].unread||a=="unread"&&!this.message_list.rows[h].unread||a=="delete"&&!this.message_list.rows[h].deleted||a=="undelete"&&this.message_list.rows[h].deleted||a=="flagged"&&!this.message_list.rows[h].flagged||a=="unflagged"&&
-this.message_list.rows[h].flagged)e.push(h)}}else e=d;if(e.length||this.select_all_mode)switch(a){case "read":case "unread":this.toggle_read_status(a,e);break;case "delete":case "undelete":this.toggle_delete_status(e);break;case "flagged":case "unflagged":this.toggle_flagged_status(a,d)}};this.toggle_read_status=function(a,b){for(var d=0;d<b.length;d++)this.set_message(b[d],"unread",a=="unread"?true:false);d="_uid="+this.uids_to_list(b)+"&_flag="+a;var e=this.display_message(this.get_label("markingmessage"),
-"loading");if(this.env.search_request)d+="&_search="+this.env.search_request;this.http_post("mark",d,e);for(d=0;d<b.length;d++)this.update_thread_root(b[d],a)};this.toggle_flagged_status=function(a,b){for(var d=0;d<b.length;d++)this.set_message(b[d],"flagged",a=="flagged"?true:false);d="_uid="+this.uids_to_list(b)+"&_flag="+a;var e=this.display_message(this.get_label("markingmessage"),"loading");if(this.env.search_request)d+="&_search="+this.env.search_request;this.http_post("mark",d,e)};this.toggle_delete_status=
-function(a){var b=this.message_list?this.message_list.rows:[];if(a.length==1){!b.length||b[a[0]]&&!b[a[0]].deleted?this.flag_as_deleted(a):this.flag_as_undeleted(a);return true}for(var d,e=true,f=0,g=a.length;f<g;f++){d=a[f];if(b[d]&&!b[d].deleted){e=false;break}}e?this.flag_as_undeleted(a):this.flag_as_deleted(a);return true};this.flag_as_undeleted=function(a){for(var b=0,d=a.length;b<d;b++)this.set_message(a[b],"deleted",false);a="_uid="+this.uids_to_list(a)+"&_flag=undelete";b=this.display_message(this.get_label("markingmessage"),
+j.length;g<len;g++)this.add_tree_icons(j[g])}if(this.env.search_request)d+="&_search="+this.env.search_request;if(this.env.display_next&&this.env.next_uid)d+="&_next_uid="+this.env.next_uid;if(f<0)d+="&_count="+f*-1;else f>0&&this.delete_excessive_thread_rows();d+="&_uid="+this.uids_to_list(e);b||(b=this.display_message(this.get_label(a=="moveto"?"movingmessage":"deletingmessage"),"loading"));this.http_post(a,"_mbox="+urlencode(this.env.mailbox)+d,b)};this.mark_message=function(a,b){var d=[],e=[],
+f,g,h;h=this.message_list?this.message_list.get_selection():[];if(b)d[0]=b;else if(this.env.uid)d[0]=this.env.uid;else if(this.message_list){g=0;for(f=h.length;g<f;g++)d.push(h[g])}if(this.message_list){g=0;for(f=d.length;g<f;g++){h=d[g];if(a=="read"&&this.message_list.rows[h].unread||a=="unread"&&!this.message_list.rows[h].unread||a=="delete"&&!this.message_list.rows[h].deleted||a=="undelete"&&this.message_list.rows[h].deleted||a=="flagged"&&!this.message_list.rows[h].flagged||a=="unflagged"&&this.message_list.rows[h].flagged)e.push(h)}}else e=
+d;if(e.length||this.select_all_mode)switch(a){case "read":case "unread":this.toggle_read_status(a,e);break;case "delete":case "undelete":this.toggle_delete_status(e);break;case "flagged":case "unflagged":this.toggle_flagged_status(a,d)}};this.toggle_read_status=function(a,b){for(var d=0;d<b.length;d++)this.set_message(b[d],"unread",a=="unread"?true:false);d="_uid="+this.uids_to_list(b)+"&_flag="+a;var e=this.display_message(this.get_label("markingmessage"),"loading");if(this.env.search_request)d+=
+"&_search="+this.env.search_request;this.http_post("mark",d,e);for(d=0;d<b.length;d++)this.update_thread_root(b[d],a)};this.toggle_flagged_status=function(a,b){for(var d=0;d<b.length;d++)this.set_message(b[d],"flagged",a=="flagged"?true:false);d="_uid="+this.uids_to_list(b)+"&_flag="+a;var e=this.display_message(this.get_label("markingmessage"),"loading");if(this.env.search_request)d+="&_search="+this.env.search_request;this.http_post("mark",d,e)};this.toggle_delete_status=function(a){var b=this.message_list?
+this.message_list.rows:[];if(a.length==1){!b.length||b[a[0]]&&!b[a[0]].deleted?this.flag_as_deleted(a):this.flag_as_undeleted(a);return true}for(var d,e=true,f=0,g=a.length;f<g;f++){d=a[f];if(b[d]&&!b[d].deleted){e=false;break}}e?this.flag_as_undeleted(a):this.flag_as_deleted(a);return true};this.flag_as_undeleted=function(a){for(var b=0,d=a.length;b<d;b++)this.set_message(a[b],"deleted",false);a="_uid="+this.uids_to_list(a)+"&_flag=undelete";b=this.display_message(this.get_label("markingmessage"),
 "loading");if(this.env.search_request)a+="&_search="+this.env.search_request;this.http_post("mark",a,b);return true};this.flag_as_deleted=function(a){var b="",d=[];b=this.message_list?this.message_list.rows:[];for(var e=0,f=0,g=a.length;f<g;f++){uid=a[f];if(b[uid]){if(b[uid].unread)d[d.length]=uid;if(this.env.skip_deleted){e+=this.update_thread(uid);this.message_list.remove_row(uid,this.env.display_next&&f==this.message_list.selection.length-1)}else this.set_message(uid,"deleted",true)}}if(this.env.skip_deleted&&
 this.message_list){this.env.display_next||this.message_list.clear_selection();e<0||e>0&&this.delete_excessive_thread_rows()}b="&_from="+(this.env.action?this.env.action:"");lock=this.display_message(this.get_label("markingmessage"),"loading");if(d.length)b+="&_ruid="+this.uids_to_list(d);if(this.env.skip_deleted)if(this.env.display_next&&this.env.next_uid)b+="&_next_uid="+this.env.next_uid;if(this.env.search_request)b+="&_search="+this.env.search_request;this.http_post("mark","_uid="+this.uids_to_list(a)+
 "&_flag=delete"+b,lock);return true};this.flag_deleted_as_read=function(a){for(var b=this.message_list?this.message_list.rows:[],d=String(a).split(","),e=0;e<d.length;e++){a=d[e];b[a]&&this.set_message(a,"unread",false)}};this.uids_to_list=function(a){return this.select_all_mode?"*":a.join(",")};this.expunge_mailbox=function(a){var b=false,d="_mbox="+urlencode(a);if(a==this.env.mailbox){b=this.set_busy(true,"loading");d+="&_reload=1"}this.http_post("expunge",d,b)};this.purge_mailbox=function(a){var b=
@@ -118,7 +118,7 @@ return false};this.add_contact=function(a){a&&this.http_post("addcontact","_addr
 function(a,b){this.display_message(b,a);window.setTimeout(function(){l.list_mailbox()},500)};this.ksearch_keydown=function(a,b){this.ksearch_timer&&clearTimeout(this.ksearch_timer);var d;d=rcube_event.get_keycode(a);var e=rcube_event.get_modifier(a);switch(d){case 38:case 40:if(!this.ksearch_pane)break;e=d==38?1:0;d=document.getElementById("rcmksearchSelected");if(!d)d=this.ksearch_pane.__ul.firstChild;if(d)this.ksearch_select(e?d.previousSibling:d.nextSibling);return rcube_event.cancel(a);case 9:if(e==
 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(a);case 27:this.ksearch_hide();break;case 37:case 39:if(e!=SHIFT_KEY)return}this.ksearch_timer=window.setTimeout(function(){l.ksearch_get_results()},200);this.ksearch_input=b;return true};this.ksearch_select=function(a){var b=$("#rcmksearchSelected");b[0]&&a&&b.removeAttr("id").removeClass("selected");if(a){$(a).attr("id",
 "rcmksearchSelected").addClass("selected");this.ksearch_selected=a._rcm_id}};this.insert_recipient=function(a){if(this.env.contacts[a]&&this.ksearch_input){var b=this.ksearch_input.value,d=this.get_caret_pos(this.ksearch_input);d=b.lastIndexOf(this.ksearch_value,d);var e="",f=b.substring(0,d);b=b.substring(d+this.ksearch_value.length,b.length);if(typeof this.env.contacts[a]=="object"&&this.env.contacts[a].id){e+=this.env.contacts[a].name+", ";this.group2expand=$.extend({},this.env.contacts[a]);this.group2expand.input=
-this.ksearch_input;this.http_request("group-expand","_source="+urlencode(this.env.contacts[a].source)+"&_gid="+urlencode(this.env.contacts[a].id),false)}else if(typeof this.env.contacts[a]=="string")e=this.env.contacts[a]+", ";this.ksearch_input.value=f+e+b;d=d+e.length;this.ksearch_input.setSelectionRange&&this.ksearch_input.setSelectionRange(d,d)}};this.replace_group_recipients=function(a,b){if(this.group2expand&&this.group2expand.id==a){this.group2expand.input.value=this.group2expand.input.value.replace(this.group2expand.name,
+this.ksearch_input;this.http_request("group-expand","_source="+urlencode(this.env.contacts[a].source)+"&_gid="+urlencode(this.env.contacts[a].id),false)}else if(typeof this.env.contacts[a]=="string")e=this.env.contacts[a]+", ";this.ksearch_input.value=f+e+b;d+=e.length;this.ksearch_input.setSelectionRange&&this.ksearch_input.setSelectionRange(d,d)}};this.replace_group_recipients=function(a,b){if(this.group2expand&&this.group2expand.id==a){this.group2expand.input.value=this.group2expand.input.value.replace(this.group2expand.name,
 b);this.group2expand=null}};this.ksearch_get_results=function(){var a=this.ksearch_input?this.ksearch_input.value:null;if(a!==null){this.ksearch_pane&&this.ksearch_pane.is(":visible")&&this.ksearch_pane.hide();var b=this.get_caret_pos(this.ksearch_input),d=a.lastIndexOf(",",b-1);a=a.substring(d+1,b);b=this.env.autocomplete_min_length;a=$.trim(a);if(a!=this.ksearch_value)if(a.length<b){if(!this.env.acinfo){a=this.get_label("autocompletechars");a=a.replace("$min",b);this.env.acinfo=this.display_message(a)}}else{this.env.acinfo&&
 a.length==b&&this.hide_message(this.env.acinfo);b=this.ksearch_value;this.ksearch_value=a;if(a.length)if(!(b&&b.length&&this.env.contacts&&!this.env.contacts.length&&a.indexOf(b)==0)){b=this.display_message(this.get_label("searching"),"loading");this.http_post("autocomplete","_search="+urlencode(a),b)}}}};this.ksearch_query_results=function(a,b){if(!(this.ksearch_value&&b!=this.ksearch_value)){this.env.contacts=a?a:[];this.ksearch_display_results(this.env.contacts)}};this.ksearch_display_results=
 function(a){if(a.length&&this.ksearch_input&&this.ksearch_value){var b,d,e,f=this.ksearch_value;if(!this.ksearch_pane){b=$("<ul>");this.ksearch_pane=$("<div>").attr("id","rcmKSearchpane").css({position:"absolute","z-index":3E4}).append(b).appendTo(document.body);this.ksearch_pane.__ul=b[0]}b=this.ksearch_pane.__ul;b.innerHTML="";for(i=0;i<a.length;i++){e=typeof a[i]=="object"?a[i].name:a[i];d=document.createElement("LI");d.innerHTML=e.replace(RegExp("("+RegExp.escape(f)+")","ig"),"##$1%%").replace(/</g,
@@ -130,57 +130,58 @@ window.frames[this.env.contentframe];e="&_framed=1"}if(b)e+="&_gid="+b;if(d)e+="
 this.env.source=a;if(this.env.group=b)d+="&_gid="+b;if(this.env.search_request)d+="&_search="+this.env.search_request;this.http_request("list",d,e)};this.load_contact=function(a,b,d){var e="",f=window;if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){e="&_framed=1";f=window.frames[this.env.contentframe];this.show_contentframe(true)}else if(d)return false;if(b&&(a||b=="add")&&!this.drag_active){if(this.env.group)e+="&_gid="+urlencode(this.env.group);this.set_busy(true);
 f.location.href=this.env.comm_path+"&_action="+b+"&_source="+urlencode(this.env.source)+"&_cid="+urlencode(a)+e}return true};this.copy_contact=function(a,b){a||(a=this.contact_list.get_selection().join(","));if(b.type=="group"&&b.source==this.env.source)this.http_post("group-addmembers","_cid="+urlencode(a)+"&_source="+urlencode(this.env.source)+"&_gid="+urlencode(b.id));else if(b.type=="group"&&!this.env.address_sources[b.source].readonly)this.http_post("copy","_cid="+urlencode(a)+"&_source="+urlencode(this.env.source)+
 "&_to="+urlencode(b.source)+"&_togid="+urlencode(b.id)+(this.env.group?"&_gid="+urlencode(this.env.group):""));else if(b.id!=this.env.source&&a&&this.env.address_sources[b.id]&&!this.env.address_sources[b.id].readonly)this.http_post("copy","_cid="+urlencode(a)+"&_source="+urlencode(this.env.source)+"&_to="+urlencode(b.id)+(this.env.group?"&_gid="+urlencode(this.env.group):""))};this.delete_contacts=function(){var a=this.contact_list.get_selection();if((a.length||this.env.cid)&&confirm(this.get_label("deletecontactconfirm"))){var b,
-d=[],e="";if(this.env.cid)d.push(this.env.cid);else{for(var f=0;f<a.length;f++){b=a[f];d.push(b);this.contact_list.remove_row(b,f==a.length-1)}a.length==1&&this.show_contentframe(false)}if(this.env.search_request)e+="&_search="+this.env.search_request;this.http_post("delete","_cid="+urlencode(d.join(","))+"&_source="+urlencode(this.env.source)+"&_from="+(this.env.action?this.env.action:"")+e);return true}};this.update_contact_row=function(a,b,d){var e;if(this.contact_list.rows[a]&&(e=this.contact_list.rows[a].obj)){for(var f=
-0;f<b.length;f++)e.cells[f]&&$(e.cells[f]).html(b[f]);if(d){e.id="rcmrow"+d;this.contact_list.remove_row(a);this.contact_list.init_row(e);this.contact_list.selection[0]=d;e.style.display=""}return true}return false};this.add_contact_row=function(a,b){if(!this.gui_objects.contactslist||!this.gui_objects.contactslist.tBodies[0])return false;var d=this.gui_objects.contactslist.tBodies[0].rows.length%2,e=document.createElement("tr");e.id="rcmrow"+a;e.className="contact "+(d?"even":"odd");if(this.contact_list.in_selection(a))e.className+=
-" selected";for(var f in b){col=document.createElement("td");col.className=String(f).toLowerCase();col.innerHTML=b[f];e.appendChild(col)}this.contact_list.insert_row(e);this.enable_command("export",this.contact_list.rowcount>0)};this.group_create=function(){if(this.gui_objects.folderlist&&this.env.address_sources[this.env.source].groups){if(!this.name_input){this.name_input=$("<input>").attr("type","text");this.name_input.bind("keydown",function(a){return rcmail.add_input_keydown(a)});this.name_input_li=
-$("<li>").addClass("contactgroup").append(this.name_input);this.name_input_li.insertAfter(this.get_folder_li(this.env.source))}this.name_input.select().focus()}};this.group_rename=function(){if(this.env.group&&this.gui_objects.folderlist){if(!this.name_input){this.enable_command("list","listgroup",false);this.name_input=$("<input>").attr("type","text").val(this.env.contactgroups["G"+this.env.source+this.env.group].name);this.name_input.bind("keydown",function(d){return rcmail.add_input_keydown(d)});
-this.env.group_renaming=true;var a,b=this.get_folder_li(this.env.source+this.env.group,"rcmliG");if(b&&(a=b.firstChild))$(a).hide().before(this.name_input)}this.name_input.select().focus()}};this.group_delete=function(){this.env.group&&this.http_post("group-delete","_source="+urlencode(this.env.source)+"&_gid="+urlencode(this.env.group),true)};this.remove_group_item=function(a){var b,d="G"+a.source+a.id;if(b=this.get_folder_li(d)){this.triggerEvent("group_delete",{source:a.source,id:a.id,li:b});b.parentNode.removeChild(b);
-delete this.env.contactfolders[d];delete this.env.contactgroups[d]}this.list_contacts(a.source,0)};this.add_input_keydown=function(a){a=rcube_event.get_keycode(a);if(a==13){if(a=this.name_input.val()){var b=this.set_busy(true,"loading");this.env.group_renaming?this.http_post("group-rename","_source="+urlencode(this.env.source)+"&_gid="+urlencode(this.env.group)+"&_name="+urlencode(a),b):this.http_post("group-create","_source="+urlencode(this.env.source)+"&_name="+urlencode(a),b)}return false}else a==
-27&&this.reset_add_input();return true};this.reset_add_input=function(){if(this.name_input){if(this.env.group_renaming){this.name_input.parent().children().last().show();this.env.group_renaming=false}this.name_input.remove();this.name_input_li&&this.name_input_li.remove();this.name_input=this.name_input_li=null}this.enable_command("list","listgroup",true)};this.insert_contact_group=function(a){this.reset_add_input();a.type="group";var b="G"+a.source+a.id;this.env.contactfolders[b]=this.env.contactgroups[b]=
-a;var d=$("<a>").attr("href","#").bind("click",function(){return rcmail.command("listgroup",a,this)}).html(a.name);b=$("<li>").attr("id","rcmli"+b).addClass("contactgroup").append(d).insertAfter(this.get_folder_li(a.source));this.triggerEvent("group_insert",{id:a.id,source:a.source,name:a.name,li:b[0]})};this.update_contact_group=function(a){this.reset_add_input();var b="G"+a.source+a.id,d,e=this.get_folder_li(b);if(e&&(d=e.firstChild)&&d.tagName.toLowerCase()=="a")d.innerHTML=a.name;this.env.contactfolders[b].name=
-this.env.contactgroups[b].name=a.name;this.triggerEvent("group_update",{id:a.id,source:a.source,name:a.name,li:e[0]})};this.init_subscription_list=function(){var a=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(b){a.subscription_select(b)});this.subscription_list.addEventListener("dragstart",function(){a.drag_active=true});this.subscription_list.addEventListener("dragend",
-function(b){a.subscription_move_folder(b)});this.subscription_list.row_init=function(b){b.obj.onmouseover=function(){a.focus_subscription(b.id)};b.obj.onmouseout=function(){a.unfocus_subscription(b.id)}};this.subscription_list.init()};this.section_select=function(a){if(a=a.get_single_selection()){var b="",d=window;this.set_busy(true);if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){b="&_framed=1";d=window.frames[this.env.contentframe]}d.location.href=this.env.comm_path+
-"&_action=edit-prefs&_section="+a+b}return true};this.identity_select=function(a){if(a=a.get_single_selection())this.load_identity(a,"edit-identity")};this.load_identity=function(a,b){if(b=="edit-identity"&&(!a||a==this.env.iid))return false;var d="",e=window;if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){d="&_framed=1";e=window.frames[this.env.contentframe];document.getElementById(this.env.contentframe).style.visibility="inherit"}if(b&&(a||b=="add-identity")){this.set_busy(true);
-e.location.href=this.env.comm_path+"&_action="+b+"&_iid="+a+d}return true};this.delete_identity=function(a){var b=this.identity_list.get_selection();if(b.length||this.env.iid){a||(a=this.env.iid?this.env.iid:b[0]);this.goto_url("delete-identity","_iid="+a+"&_token="+this.env.request_token,true);return true}};this.focus_subscription=function(a){var b,d,e=RegExp.escape(this.env.delimiter),f=RegExp("["+e+"]?[^"+e+"]+$");if(this.drag_active&&this.env.mailbox&&(b=document.getElementById(a)))if(this.env.subscriptionrows[a]&&
-(d=this.env.subscriptionrows[a][0])){if(this.check_droptarget(d)&&!this.env.subscriptionrows[this.get_folder_row_id(this.env.mailbox)][2]&&d!=this.env.mailbox.replace(f,"")&&!d.match(RegExp("^"+RegExp.escape(this.env.mailbox+this.env.delimiter)))){this.set_env("dstfolder",d);$(b).addClass("droptarget")}}else if(this.env.mailbox.match(RegExp(e))){this.set_env("dstfolder",this.env.delimiter);$(this.subscription_list.frame).addClass("droptarget")}};this.unfocus_subscription=function(a){var b=$("#"+a);
-this.set_env("dstfolder",null);this.env.subscriptionrows[a]&&b[0]?b.removeClass("droptarget"):$(this.subscription_list.frame).removeClass("droptarget")};this.subscription_select=function(a){var b,d;if(a&&(b=a.get_single_selection())&&(d=this.env.subscriptionrows["rcmrow"+b])){this.set_env("mailbox",d[0]);this.show_folder(d[0]);this.enable_command("delete-folder",!d[2])}else{this.env.mailbox=null;this.show_contentframe(false);this.enable_command("delete-folder","purge",false)}};this.subscription_move_folder=
-function(){var a=RegExp.escape(this.env.delimiter),b=RegExp("["+a+"]?[^"+a+"]+$");if(this.env.mailbox&&this.env.dstfolder&&this.env.dstfolder!=this.env.mailbox&&this.env.dstfolder!=this.env.mailbox.replace(b,"")){b=RegExp("[^"+a+"]*["+a+"]","g");a=this.set_busy(true,"foldermoving");b=this.env.mailbox.replace(b,"");b=this.env.dstfolder==this.env.delimiter?b:this.env.dstfolder+this.env.delimiter+b;this.http_post("rename-folder","_folder_oldname="+urlencode(this.env.mailbox)+"&_folder_newname="+urlencode(b),
-a)}this.drag_active=false;this.unfocus_subscription(this.get_folder_row_id(this.env.dstfolder))};this.create_folder=function(){this.show_folder("",this.env.mailbox)};this.delete_folder=function(a){if((a=this.env.subscriptionrows[this.get_folder_row_id(a?a:this.env.mailbox)][0])&&confirm(this.get_label("deletefolderconfirm"))){var b=this.set_busy(true,"folderdeleting");this.http_post("delete-folder","_mbox="+urlencode(a),b)}};this.add_folder_row=function(a,b,d,e){if(!this.gui_objects.subscriptionlist)return false;
-var f,g;for(g in this.env.subscriptionrows)if(this.env.subscriptionrows[g]!=null&&!this.env.subscriptionrows[g][2]){f=g;break}var h;g=this.gui_objects.subscriptionlist.tBodies[0];var k="rcmrow"+(g.childNodes.length+1),j=this.subscription_list.get_single_selection();if(d&&d.id)f=k=d.id;if(!k||!f||!(h=document.getElementById(f))){this.goto_url("folders");return false}f=this.clone_table_row(h);f.id=k;e&&(e=this.get_folder_row_id(e))?g.insertBefore(f,document.getElementById(e)):g.appendChild(f);d&&g.removeChild(d);
-this.env.subscriptionrows[f.id]=[a,b,0];f.cells[0].innerHTML=b;if(!d){f.cells[1].innerHTML="*";$('input[name="_subscribed[]"]',f).val(a).attr("checked",true)}this.init_subscription_list();j&&document.getElementById("rcmrow"+j)&&this.subscription_list.select_row(j);document.getElementById(k).scrollIntoView&&document.getElementById(k).scrollIntoView()};this.replace_folder_row=function(a,b,d,e){a=this.get_folder_row_id(a);a=document.getElementById(a);this.add_folder_row(b,d,a,e)};this.remove_folder_row=
-function(a){var b;if((a=this.get_folder_row_id(a))&&(b=document.getElementById(a)))b.style.display="none"};this.subscribe=function(a){if(a){var b=this.display_message(this.get_label("foldersubscribing"),"loading");this.http_post("subscribe","_mbox="+urlencode(a),b)}};this.unsubscribe=function(a){if(a){var b=this.display_message(this.get_label("folderunsubscribing"),"loading");this.http_post("unsubscribe","_mbox="+urlencode(a),b)}};this.get_folder_row_id=function(a){for(var b in this.env.subscriptionrows)if(this.env.subscriptionrows[b]&&
-this.env.subscriptionrows[b][0]==a)break;return b};this.clone_table_row=function(a){for(var b,d,e=document.createElement("tr"),f=0;f<a.cells.length;f++){b=a.cells[f];d=document.createElement("td");if(b.className)d.className=b.className;b.align&&d.setAttribute("align",b.align);d.innerHTML=b.innerHTML;e.appendChild(d)}return e};this.show_folder=function(a,b,d){var e=window;a="&_action=edit-folder&_mbox="+urlencode(a);if(b)a+="&_path="+urlencode(b);if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){e=
-window.frames[this.env.contentframe];a+="&_framed=1"}if(String(e.location.href).indexOf(a)>=0&&!d)this.show_contentframe(true);else{if(!this.env.frame_lock)(parent.rcmail?parent.rcmail:this).env.frame_lock=this.set_busy(true,"loading");e.location.href=this.env.comm_path+a}};this.folder_size=function(a){var b=this.set_busy(true,"loading");this.http_post("folder-size","_mbox="+urlencode(a),b)};this.folder_size_update=function(a){$("#folder-size").replaceWith(a)};this.set_page_buttons=function(){this.enable_command("nextpage",
-"lastpage",this.env.pagecount>this.env.current_page);this.enable_command("previouspage","firstpage",this.env.current_page>1)};this.init_buttons=function(){for(var a in this.buttons)if(typeof a=="string")for(var b=0;b<this.buttons[a].length;b++){var d=this.buttons[a][b],e=document.getElementById(d.id);if(e){var f=false;if(d.type=="image"){e=e.parentNode;f=true}e._command=a;e._id=d.id;if(d.sel){e.onmousedown=function(){return rcmail.button_sel(this._command,this._id)};e.onmouseup=function(){return rcmail.button_out(this._command,
-this._id)};if(f)(new Image).src=d.sel}if(d.over){e.onmouseover=function(){return rcmail.button_over(this._command,this._id)};e.onmouseout=function(){return rcmail.button_out(this._command,this._id)};if(f)(new Image).src=d.over}}}};this.set_button=function(a,b){var d,e,f=this.buttons[a];if(!f||!f.length)return false;for(var g=0;g<f.length;g++){d=f[g];if((e=document.getElementById(d.id))&&d.type=="image"&&!d.status){d.pas=e._original_src?e._original_src:e.src;if(e.runtimeStyle&&e.runtimeStyle.filter&&
-e.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/))d.pas=RegExp.$1}else if(e&&!d.status)d.pas=String(e.className);if(e&&d.type=="image"&&d[b]){d.status=b;e.src=d[b]}else if(e&&typeof d[b]!="undefined"){d.status=b;e.className=d[b]}if(e&&d.type=="input"){d.status=b;e.disabled=!b}}};this.set_alttext=function(a,b){if(this.buttons[a]&&this.buttons[a].length)for(var d,e,f,g=0;g<this.buttons[a].length;g++){d=this.buttons[a][g];e=document.getElementById(d.id);if(d.type=="image"&&e){e.setAttribute("alt",
-this.get_label(b));if((f=e.parentNode)&&f.tagName.toLowerCase()=="a")f.setAttribute("title",this.get_label(b))}else e&&e.setAttribute("title",this.get_label(b))}};this.button_over=function(a,b){var d,e,f=this.buttons[a];if(!f||!f.length)return false;for(var g=0;g<f.length;g++){d=f[g];if(d.id==b&&d.status=="act")if((e=document.getElementById(d.id))&&d.over)if(d.type=="image")e.src=d.over;else e.className=d.over}};this.button_sel=function(a,b){var d,e,f=this.buttons[a];if(f&&f.length)for(var g=0;g<
-f.length;g++){d=f[g];if(d.id==b&&d.status=="act"){if((e=document.getElementById(d.id))&&d.sel)if(d.type=="image")e.src=d.sel;else e.className=d.sel;this.buttons_sel[b]=a}}};this.button_out=function(a,b){var d,e,f=this.buttons[a];if(f&&f.length)for(var g=0;g<f.length;g++){d=f[g];if(d.id==b&&d.status=="act")if((e=document.getElementById(d.id))&&d.act)if(d.type=="image")e.src=d.act;else e.className=d.act}};this.set_pagetitle=function(a){if(a&&document.title)document.title=a};this.display_message=function(a,
-b){if(this.is_framed())return parent.rcmail.display_message(a,b);if(!this.gui_objects.message){if(b!="loading")this.pending_message=[a,b];return false}b=b?b:"notice";var d=this,e=a,f=b+(new Date).getTime(),g=this.message_time*(b=="error"||b=="warning"?2:1);if(b=="loading"){e="loading";g=this.env.request_timeout*1E3;a||(a=this.get_label("loading"))}if(this.messages[e]){this.messages[e].obj&&this.messages[e].obj.html(a);b=="loading"&&this.messages[e].labels.push({id:f,msg:a});this.messages[e].elements.push(f);
-window.setTimeout(function(){d.hide_message(f,b=="loading")},g);return f}var h=$("<div>").addClass(b).html(a).data("key",e);$(this.gui_objects.message).append(h).show();this.messages[e]={obj:h,elements:[f]};if(b=="loading")this.messages[e].labels=[{id:f,msg:a}];else h.click(function(){return d.hide_message(h)});window.setTimeout(function(){d.hide_message(f,b=="loading")},g);return f};this.hide_message=function(a,b){if(this.is_framed())return parent.rcmail.hide_message(a,b);var d,e,f,g,h=this.messages;
-if(typeof a=="object"){$(a)[b?"fadeOut":"hide"]();g=$(a).data("key");this.messages[g]&&delete this.messages[g]}else for(d in h)for(e in h[d].elements)if(h[d]&&h[d].elements[e]==a){h[d].elements.splice(e,1);if(h[d].elements.length){if(d=="loading")for(f in h[d].labels){if(h[d].labels[f].id==a)delete h[d].labels[f];else g=h[d].labels[f].msg;h[d].obj.html(g)}}else{h[d].obj[b?"fadeOut":"hide"]();delete h[d]}}};this.select_folder=function(a,b,d){if(this.gui_objects.folderlist){var e;if(e=this.get_folder_li(b,
-d))$(e).removeClass("selected").removeClass("unfocused");if(e=this.get_folder_li(a,d))$(e).removeClass("unfocused").addClass("selected");this.triggerEvent("selectfolder",{folder:a,old:b,prefix:d})}};this.get_folder_li=function(a,b){b||(b="rcmli");if(this.gui_objects.folderlist){a=String(a).replace(this.identifier_expr,"_");return document.getElementById(b+a)}return null};this.set_message_coltypes=function(a,b){this.env.coltypes=a;var d=this.gui_objects.messagelist?this.gui_objects.messagelist.tHead:
-null,e,f,g,h;if(d){if(b){f=document.createElement("thead");g=document.createElement("tr");c=0;for(h=b.length;c<h;c++){e=document.createElement("td");e.innerHTML=b[c].html;if(b[c].id)e.id=b[c].id;if(b[c].className)e.className=b[c].className;g.appendChild(e)}f.appendChild(g);d.parentNode.replaceChild(f,d)}g=0;for(h=this.env.coltypes.length;g<h;g++){f=this.env.coltypes[g];if((e=d.rows[0].cells[g])&&(f=="from"||f=="to")){e.id="rcm"+f;if(e.firstChild&&e.firstChild.tagName.toLowerCase()=="a"){e=e.firstChild;
-e.onclick=function(){return rcmail.command("sort",this.__col,this)};e.__col=f}e.innerHTML=this.get_label(f)}}}this.env.subject_col=null;this.env.flagged_col=null;this.env.status_col=null;if((g=$.inArray("subject",this.env.coltypes))>=0){this.set_env("subject_col",g);if(this.message_list)this.message_list.subject_col=g}if((g=$.inArray("flag",this.env.coltypes))>=0)this.set_env("flagged_col",g);if((g=$.inArray("status",this.env.coltypes))>=0)this.set_env("status_col",g);this.message_list.init_header()};
-this.set_rowcount=function(a){$(this.gui_objects.countdisplay).html(a);this.set_page_buttons()};this.set_mailboxname=function(a){if(this.gui_objects.mailboxname&&a)this.gui_objects.mailboxname.innerHTML=a};this.set_quota=function(a){if(a&&this.gui_objects.quotadisplay)typeof a=="object"&&a.type=="image"?this.percent_indicator(this.gui_objects.quotadisplay,a):$(this.gui_objects.quotadisplay).html(a)};this.set_unread_count=function(a,b,d){if(!this.gui_objects.mailboxlist)return false;this.env.unread_counts[a]=
-b;this.set_unread_count_display(a,d)};this.set_unread_count_display=function(a,b){var d,e,f,g,h,k;if(f=this.get_folder_li(a)){g=this.env.unread_counts[a]?this.env.unread_counts[a]:0;e=f.getElementsByTagName("a")[0];d=/\s+\([0-9]+\)$/i;h=0;if((k=f.getElementsByTagName("div")[0])&&k.className.match(/collapsed/))for(var j in this.env.unread_counts)if(j.indexOf(a+this.env.delimiter)==0)h+=this.env.unread_counts[j];if(g&&e.innerHTML.match(d))e.innerHTML=e.innerHTML.replace(d," ("+g+")");else if(g)e.innerHTML+=
-" ("+g+")";else e.innerHTML=e.innerHTML.replace(d,"");d=RegExp(RegExp.escape(this.env.delimiter)+"[^"+RegExp.escape(this.env.delimiter)+"]+$");a.match(d)&&this.set_unread_count_display(a.replace(d,""),false);g+h>0?$(f).addClass("unread"):$(f).removeClass("unread")}d=/^\([0-9]+\)\s+/i;if(b&&document.title){e="";e=String(document.title);e=g&&e.match(d)?e.replace(d,"("+g+") "):g?"("+g+") "+e:e.replace(d,"");this.set_pagetitle(e)}};this.new_message_focus=function(){this.env.framed&&window.parent?window.parent.focus():
-window.focus()};this.toggle_prefer_html=function(a){var b;if(b=document.getElementById("rcmfd_addrbook_show_images"))b.disabled=!a.checked};this.toggle_preview_pane=function(a){var b;if(b=document.getElementById("rcmfd_preview_pane_mark_read"))b.disabled=!a.checked};this.set_headers=function(a){this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&a&&$(this.gui_objects.all_headers_box).html(a).show()};this.load_headers=function(a){if(!(!this.gui_objects.all_headers_row||!this.gui_objects.all_headers_box||
-!this.env.uid)){$(a).removeClass("show-headers").addClass("hide-headers");$(this.gui_objects.all_headers_row).show();a.onclick=function(){rcmail.hide_headers(a)};this.gui_objects.all_headers_box.innerHTML||this.http_post("headers","_uid="+this.env.uid,this.display_message(this.get_label("loading"),"loading"))}};this.hide_headers=function(a){if(this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box){$(a).removeClass("hide-headers").addClass("show-headers");$(this.gui_objects.all_headers_row).hide();
-a.onclick=function(){rcmail.load_headers(a)}}};this.percent_indicator=function(a,b){if(!b||!a)return false;var d=b.width?b.width:this.env.indicator_width?this.env.indicator_width:100,e=b.height?b.height:this.env.indicator_height?this.env.indicator_height:14,f=b.percent?Math.abs(parseInt(b.percent)):0,g=parseInt(f/100*d),h=$(a).position();h.top=Math.max(0,h.top);this.env.indicator_width=d;this.env.indicator_height=e;if(g>d){g=d;f=100}if(b.title)b.title=this.get_label("quota")+": "+b.title;var k=$("<div>");
-k.css({position:"absolute",top:h.top,left:h.left,width:d+"px",height:e+"px",zIndex:100,lineHeight:e+"px"}).attr("title",b.title).addClass("quota_text").html(f+"%");var j=$("<div>");j.css({position:"absolute",top:h.top+1,left:h.left+1,width:g+"px",height:e+"px",zIndex:99});g=$("<div>");g.css({position:"absolute",top:h.top+1,left:h.left+1,width:d+"px",height:e+"px",zIndex:98}).addClass("quota_bg");if(f>=80){k.addClass(" quota_text_high");j.addClass("quota_high")}else if(f>=55){k.addClass(" quota_text_mid");
-j.addClass("quota_mid")}else{k.addClass(" quota_text_normal");j.addClass("quota_low")}$(a).html("").append(j).append(g).append(k);$("#quotaimg").attr("title",b.title)};this.html2plain=function(a,b){var d=this,e=this.set_busy(true,"converting");console.log("HTTP POST: ?_task=utils&_action=html2text");$.ajax({type:"POST",url:"?_task=utils&_action=html2text",data:a,contentType:"application/octet-stream",error:function(f,g,h){d.http_error(f,g,h,e)},success:function(f){d.set_busy(false,null,e);$(document.getElementById(b)).val(f);
-console.log(f)}})};this.plain2html=function(a,b){var d=this.set_busy(true,"converting");$(document.getElementById(b)).val("<pre>"+a+"</pre>");this.set_busy(false,null,d)};this.redirect=function(a,b){if(b||b===null)this.set_busy(true);if(this.env.framed&&window.parent)parent.location.href=a;else location.href=a};this.goto_url=function(a,b,d){var e=this.env.comm_path;b=b?"&"+b:"";if(a.match(/([a-z]+)\/([a-z-_]+)/)){a=RegExp.$2;e=e.replace(/\_task=[a-z]+/,"_task="+RegExp.$1)}this.redirect(e+"&_action="+
-a+b,d)};this.http_request=function(a,b,d){var e=this.env.comm_path;if(a.match(/([a-z]+)\/([a-z-_]+)/)){a=RegExp.$2;e=e.replace(/\_task=[a-z]+/,"_task="+RegExp.$1)}var f=this.triggerEvent("request"+a,b);if(typeof f!="undefined")if(f===false)return false;else b=f;e+="&_remote=1&_action="+a+(b?"&":"")+b;console.log("HTTP GET: "+e);$.ajax({type:"GET",url:e,data:{_unlock:d?d:0},dataType:"json",success:function(g){l.http_response(g)},error:function(g,h,k){rcmail.http_error(g,h,k,d)}})};this.http_post=function(a,
-b,d){var e=this.env.comm_path;if(a.match(/([a-z]+)\/([a-z-_]+)/)){a=RegExp.$2;e=e.replace(/\_task=[a-z]+/,"_task="+RegExp.$1)}e+="&_action="+a;if(b&&typeof b=="object"){b._remote=1;b._unlock=d?d:0}else b+=(b?"&":"")+"_remote=1"+(d?"&_unlock="+d:"");a=this.triggerEvent("request"+a,b);if(typeof a!="undefined")if(a===false)return false;else b=a;console.log("HTTP POST: "+e);$.ajax({type:"POST",url:e,data:b,dataType:"json",success:function(f){l.http_response(f)},error:function(f,g,h){rcmail.http_error(f,
-g,h,d)}})};this.http_response=function(a){if(a){a.unlock&&this.set_busy(false);this.triggerEvent("responsebefore",{response:a});this.triggerEvent("responsebefore"+a.action,{response:a});a.env&&this.set_env(a.env);if(typeof a.texts=="object")for(var b in a.texts)typeof a.texts[b]=="string"&&this.add_label(b,a.texts[b]);if(a.exec){console.log(a.exec);eval(a.exec)}if(a.callbacks&&a.callbacks.length)for(b=0;b<a.callbacks.length;b++)this.triggerEvent(a.callbacks[b][0],a.callbacks[b][1]);switch(a.action){case "delete":if(this.task==
-"addressbook"){b=this.contact_list.get_selection();this.enable_command("compose",b&&this.contact_list.rows[b]);this.enable_command("delete","edit",b&&this.contact_list.rows[b]&&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.enable_command(this.env.message_commands,true);this.env.list_post||this.enable_command("reply-list",false)}else this.task==
-"addressbook"&&this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount});case "purge":case "expunge":if(this.task=="mail"){if(!this.env.messagecount){this.env.contentframe&&this.show_contentframe(false);this.enable_command(this.env.message_commands,"purge","expunge","select-all","select-none","sort","expand-all","expand-unread","collapse-all",false)}this.message_list&&this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:this.message_list.rowcount})}break;
-case "check-recent":case "getunread":case "search":case "list":if(this.task=="mail"){this.enable_command("show","expunge","select-all","select-none","sort",this.env.messagecount>0);this.enable_command("purge",this.purge_mailbox_test());this.enable_command("expand-all","expand-unread","collapse-all",this.env.threading&&this.env.messagecount);if(a.action=="list"||a.action=="search"){this.msglist_select(this.message_list);this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:this.message_list.rowcount})}}else if(this.task==
-"addressbook"){this.enable_command("export",this.contact_list&&this.contact_list.rowcount>0);if(a.action=="list"||a.action=="search"){this.enable_command("group-create",this.env.address_sources[this.env.source].groups&&!this.env.address_sources[this.env.source].readonly);this.enable_command("group-rename","group-delete",this.env.address_sources[this.env.source].groups&&this.env.group&&!this.env.address_sources[this.env.source].readonly);this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount})}}}a.unlock&&
-this.hide_message(a.unlock);this.triggerEvent("responseafter",{response:a});this.triggerEvent("responseafter"+a.action,{response:a})}};this.http_error=function(a,b,d,e){b=a.statusText;this.set_busy(false,null,e);a.abort();b&&this.display_message(this.get_label("servererror")+" ("+b+")","error")};this.start_keepalive=function(){this._int&&clearInterval(this._int);if(this.env.keep_alive&&!this.env.framed&&this.task=="mail"&&this.gui_objects.mailboxlist)this._int=setInterval(function(){l.check_for_recent(false)},
-this.env.keep_alive*1E3);else if(this.env.keep_alive&&!this.env.framed&&this.task!="login"&&this.env.action!="print")this._int=setInterval(function(){l.send_keep_alive()},this.env.keep_alive*1E3)};this.send_keep_alive=function(){this.http_request("keep-alive","_t="+(new Date).getTime())};this.check_for_recent=function(a){if(!this.busy){var b,d="_t="+(new Date).getTime()+"&_mbox="+urlencode(this.env.mailbox);if(a){b=this.set_busy(true,"checkingmail");d+="&_refresh=1";this.start_keepalive()}if(this.gui_objects.messagelist)d+=
-"&_list=1";if(this.gui_objects.quotadisplay)d+="&_quota=1";if(this.env.search_request)d+="&_search="+this.env.search_request;this.http_request("check-recent",d,b)}};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(a){if(typeof a.selectionEnd!="undefined")return a.selectionEnd;
-else if(document.selection&&document.selection.createRange){var b=document.selection.createRange();if(b.parentElement()!=a)return 0;var d=b.duplicate();a.tagName=="TEXTAREA"?d.moveToElementText(a):d.expand("textedit");d.setEndPoint("EndToStart",b);b=d.text.length;return b<=a.value.length?b:-1}else return a.value.length};this.set_caret_pos=function(a,b){if(a.setSelectionRange)a.setSelectionRange(b,b);else if(a.createTextRange){var d=a.createTextRange();d.collapse(true);d.moveEnd("character",b);d.moveStart("character",
-b);d.select()}};this.lock_form=function(a,b){if(a&&a.elements){var d,e,f;if(b)this.disabled_form_elements=[];d=0;for(e=a.elements.length;d<e;d++){f=a.elements[d];if(f.type!="hidden")if(b&&f.disabled)this.disabled_form_elements.push(f);else if(b||$.inArray(f,this.disabled_form_elements)<0)f.disabled=b}}}}rcube_webmail.prototype.addEventListener=rcube_event_engine.prototype.addEventListener;rcube_webmail.prototype.removeEventListener=rcube_event_engine.prototype.removeEventListener;
+d=[],e="";if(this.env.cid)d.push(this.env.cid);else{for(var f=0;f<a.length;f++){b=a[f];d.push(b);this.contact_list.remove_row(b,f==a.length-1)}a.length==1&&this.show_contentframe(false)}if(this.env.group)e+="&_gid="+urlencode(this.env.group);if(this.env.search_request)e+="&_search="+this.env.search_request;this.http_post("delete","_cid="+urlencode(d.join(","))+"&_source="+urlencode(this.env.source)+"&_from="+(this.env.action?this.env.action:"")+e);return true}};this.update_contact_row=function(a,
+b,d){var e;if(this.contact_list.rows[a]&&(e=this.contact_list.rows[a].obj)){for(var f=0;f<b.length;f++)e.cells[f]&&$(e.cells[f]).html(b[f]);if(d){e.id="rcmrow"+d;this.contact_list.remove_row(a);this.contact_list.init_row(e);this.contact_list.selection[0]=d;e.style.display=""}return true}return false};this.add_contact_row=function(a,b){if(!this.gui_objects.contactslist||!this.gui_objects.contactslist.tBodies[0])return false;var d=this.gui_objects.contactslist.tBodies[0].rows.length%2,e=document.createElement("tr");
+e.id="rcmrow"+a;e.className="contact "+(d?"even":"odd");if(this.contact_list.in_selection(a))e.className+=" selected";for(var f in b){col=document.createElement("td");col.className=String(f).toLowerCase();col.innerHTML=b[f];e.appendChild(col)}this.contact_list.insert_row(e);this.enable_command("export",this.contact_list.rowcount>0)};this.group_create=function(){if(this.gui_objects.folderlist&&this.env.address_sources[this.env.source].groups){if(!this.name_input){this.name_input=$("<input>").attr("type",
+"text");this.name_input.bind("keydown",function(a){return rcmail.add_input_keydown(a)});this.name_input_li=$("<li>").addClass("contactgroup").append(this.name_input);this.name_input_li.insertAfter(this.get_folder_li(this.env.source))}this.name_input.select().focus()}};this.group_rename=function(){if(this.env.group&&this.gui_objects.folderlist){if(!this.name_input){this.enable_command("list","listgroup",false);this.name_input=$("<input>").attr("type","text").val(this.env.contactgroups["G"+this.env.source+
+this.env.group].name);this.name_input.bind("keydown",function(d){return rcmail.add_input_keydown(d)});this.env.group_renaming=true;var a,b=this.get_folder_li(this.env.source+this.env.group,"rcmliG");if(b&&(a=b.firstChild))$(a).hide().before(this.name_input)}this.name_input.select().focus()}};this.group_delete=function(){this.env.group&&this.http_post("group-delete","_source="+urlencode(this.env.source)+"&_gid="+urlencode(this.env.group),true)};this.remove_group_item=function(a){var b,d="G"+a.source+
+a.id;if(b=this.get_folder_li(d)){this.triggerEvent("group_delete",{source:a.source,id:a.id,li:b});b.parentNode.removeChild(b);delete this.env.contactfolders[d];delete this.env.contactgroups[d]}this.list_contacts(a.source,0)};this.add_input_keydown=function(a){a=rcube_event.get_keycode(a);if(a==13){if(a=this.name_input.val()){var b=this.set_busy(true,"loading");this.env.group_renaming?this.http_post("group-rename","_source="+urlencode(this.env.source)+"&_gid="+urlencode(this.env.group)+"&_name="+urlencode(a),
+b):this.http_post("group-create","_source="+urlencode(this.env.source)+"&_name="+urlencode(a),b)}return false}else a==27&&this.reset_add_input();return true};this.reset_add_input=function(){if(this.name_input){if(this.env.group_renaming){this.name_input.parent().children().last().show();this.env.group_renaming=false}this.name_input.remove();this.name_input_li&&this.name_input_li.remove();this.name_input=this.name_input_li=null}this.enable_command("list","listgroup",true)};this.insert_contact_group=
+function(a){this.reset_add_input();a.type="group";var b="G"+a.source+a.id;this.env.contactfolders[b]=this.env.contactgroups[b]=a;var d=$("<a>").attr("href","#").bind("click",function(){return rcmail.command("listgroup",a,this)}).html(a.name);b=$("<li>").attr("id","rcmli"+b).addClass("contactgroup").append(d).insertAfter(this.get_folder_li(a.source));this.triggerEvent("group_insert",{id:a.id,source:a.source,name:a.name,li:b[0]})};this.update_contact_group=function(a){this.reset_add_input();var b="G"+
+a.source+a.id,d,e=this.get_folder_li(b);if(e&&(d=e.firstChild)&&d.tagName.toLowerCase()=="a")d.innerHTML=a.name;this.env.contactfolders[b].name=this.env.contactgroups[b].name=a.name;this.triggerEvent("group_update",{id:a.id,source:a.source,name:a.name,li:e[0]})};this.init_subscription_list=function(){var a=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(b){a.subscription_select(b)});this.subscription_list.addEventListener("dragstart",function(){a.drag_active=true});this.subscription_list.addEventListener("dragend",function(b){a.subscription_move_folder(b)});this.subscription_list.row_init=function(b){b.obj.onmouseover=function(){a.focus_subscription(b.id)};b.obj.onmouseout=function(){a.unfocus_subscription(b.id)}};this.subscription_list.init()};this.section_select=function(a){if(a=a.get_single_selection()){var b="",d=window;this.set_busy(true);
+if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){b="&_framed=1";d=window.frames[this.env.contentframe]}d.location.href=this.env.comm_path+"&_action=edit-prefs&_section="+a+b}return true};this.identity_select=function(a){if(a=a.get_single_selection())this.load_identity(a,"edit-identity")};this.load_identity=function(a,b){if(b=="edit-identity"&&(!a||a==this.env.iid))return false;var d="",e=window;if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){d=
+"&_framed=1";e=window.frames[this.env.contentframe];document.getElementById(this.env.contentframe).style.visibility="inherit"}if(b&&(a||b=="add-identity")){this.set_busy(true);e.location.href=this.env.comm_path+"&_action="+b+"&_iid="+a+d}return true};this.delete_identity=function(a){var b=this.identity_list.get_selection();if(b.length||this.env.iid){a||(a=this.env.iid?this.env.iid:b[0]);this.goto_url("delete-identity","_iid="+a+"&_token="+this.env.request_token,true);return true}};this.focus_subscription=
+function(a){var b,d,e=RegExp.escape(this.env.delimiter),f=RegExp("["+e+"]?[^"+e+"]+$");if(this.drag_active&&this.env.mailbox&&(b=document.getElementById(a)))if(this.env.subscriptionrows[a]&&(d=this.env.subscriptionrows[a][0])){if(this.check_droptarget(d)&&!this.env.subscriptionrows[this.get_folder_row_id(this.env.mailbox)][2]&&d!=this.env.mailbox.replace(f,"")&&!d.match(RegExp("^"+RegExp.escape(this.env.mailbox+this.env.delimiter)))){this.set_env("dstfolder",d);$(b).addClass("droptarget")}}else if(this.env.mailbox.match(RegExp(e))){this.set_env("dstfolder",
+this.env.delimiter);$(this.subscription_list.frame).addClass("droptarget")}};this.unfocus_subscription=function(a){var b=$("#"+a);this.set_env("dstfolder",null);this.env.subscriptionrows[a]&&b[0]?b.removeClass("droptarget"):$(this.subscription_list.frame).removeClass("droptarget")};this.subscription_select=function(a){var b,d;if(a&&(b=a.get_single_selection())&&(d=this.env.subscriptionrows["rcmrow"+b])){this.set_env("mailbox",d[0]);this.show_folder(d[0]);this.enable_command("delete-folder",!d[2])}else{this.env.mailbox=
+null;this.show_contentframe(false);this.enable_command("delete-folder","purge",false)}};this.subscription_move_folder=function(){var a=RegExp.escape(this.env.delimiter),b;if(this.env.mailbox&&this.env.dstfolder&&this.env.dstfolder!=this.env.mailbox&&this.env.dstfolder!=this.env.mailbox.replace(RegExp("["+a+"]?[^"+a+"]+$"),"")){b=RegExp("[^"+a+"]*["+a+"]","g");a=this.set_busy(true,"foldermoving");b=this.env.mailbox.replace(b,"");b=this.env.dstfolder==this.env.delimiter?b:this.env.dstfolder+this.env.delimiter+
+b;this.http_post("rename-folder","_folder_oldname="+urlencode(this.env.mailbox)+"&_folder_newname="+urlencode(b),a)}this.drag_active=false;this.unfocus_subscription(this.get_folder_row_id(this.env.dstfolder))};this.create_folder=function(){this.show_folder("",this.env.mailbox)};this.delete_folder=function(a){if((a=this.env.subscriptionrows[this.get_folder_row_id(a?a:this.env.mailbox)][0])&&confirm(this.get_label("deletefolderconfirm"))){var b=this.set_busy(true,"folderdeleting");this.http_post("delete-folder",
+"_mbox="+urlencode(a),b)}};this.add_folder_row=function(a,b,d,e){if(!this.gui_objects.subscriptionlist)return false;var f,g;for(g in this.env.subscriptionrows)if(this.env.subscriptionrows[g]!=null&&!this.env.subscriptionrows[g][2]){f=g;break}var h;g=this.gui_objects.subscriptionlist.tBodies[0];var k="rcmrow"+(g.childNodes.length+1),j=this.subscription_list.get_single_selection();if(d&&d.id)f=k=d.id;if(!k||!f||!(h=document.getElementById(f))){this.goto_url("folders");return false}f=this.clone_table_row(h);
+f.id=k;e&&(e=this.get_folder_row_id(e))?g.insertBefore(f,document.getElementById(e)):g.appendChild(f);d&&g.removeChild(d);this.env.subscriptionrows[f.id]=[a,b,0];f.cells[0].innerHTML=b;if(!d){f.cells[1].innerHTML="*";$('input[name="_subscribed[]"]',f).val(a).attr("checked",true)}this.init_subscription_list();j&&document.getElementById("rcmrow"+j)&&this.subscription_list.select_row(j);document.getElementById(k).scrollIntoView&&document.getElementById(k).scrollIntoView()};this.replace_folder_row=function(a,
+b,d,e){a=this.get_folder_row_id(a);a=document.getElementById(a);this.add_folder_row(b,d,a,e)};this.remove_folder_row=function(a){var b;if((a=this.get_folder_row_id(a))&&(b=document.getElementById(a)))b.style.display="none"};this.subscribe=function(a){if(a){var b=this.display_message(this.get_label("foldersubscribing"),"loading");this.http_post("subscribe","_mbox="+urlencode(a),b)}};this.unsubscribe=function(a){if(a){var b=this.display_message(this.get_label("folderunsubscribing"),"loading");this.http_post("unsubscribe",
+"_mbox="+urlencode(a),b)}};this.get_folder_row_id=function(a){for(var b in this.env.subscriptionrows)if(this.env.subscriptionrows[b]&&this.env.subscriptionrows[b][0]==a)break;return b};this.clone_table_row=function(a){for(var b,d,e=document.createElement("tr"),f=0;f<a.cells.length;f++){b=a.cells[f];d=document.createElement("td");if(b.className)d.className=b.className;b.align&&d.setAttribute("align",b.align);d.innerHTML=b.innerHTML;e.appendChild(d)}return e};this.show_folder=function(a,b,d){var e=
+window;a="&_action=edit-folder&_mbox="+urlencode(a);if(b)a+="&_path="+urlencode(b);if(this.env.contentframe&&window.frames&&window.frames[this.env.contentframe]){e=window.frames[this.env.contentframe];a+="&_framed=1"}if(String(e.location.href).indexOf(a)>=0&&!d)this.show_contentframe(true);else{if(!this.env.frame_lock)(parent.rcmail?parent.rcmail:this).env.frame_lock=this.set_busy(true,"loading");e.location.href=this.env.comm_path+a}};this.disable_subscription=function(a){(a=this.get_folder_row_id(a))&&
+$('input[name="_subscribed[]"]',$("#"+a)).attr("disabled",true)};this.folder_size=function(a){var b=this.set_busy(true,"loading");this.http_post("folder-size","_mbox="+urlencode(a),b)};this.folder_size_update=function(a){$("#folder-size").replaceWith(a)};this.set_page_buttons=function(){this.enable_command("nextpage","lastpage",this.env.pagecount>this.env.current_page);this.enable_command("previouspage","firstpage",this.env.current_page>1)};this.init_buttons=function(){for(var a in this.buttons)if(typeof a==
+"string")for(var b=0;b<this.buttons[a].length;b++){var d=this.buttons[a][b],e=document.getElementById(d.id);if(e){var f=false;if(d.type=="image"){e=e.parentNode;f=true}e._command=a;e._id=d.id;if(d.sel){e.onmousedown=function(){return rcmail.button_sel(this._command,this._id)};e.onmouseup=function(){return rcmail.button_out(this._command,this._id)};if(f)(new Image).src=d.sel}if(d.over){e.onmouseover=function(){return rcmail.button_over(this._command,this._id)};e.onmouseout=function(){return rcmail.button_out(this._command,
+this._id)};if(f)(new Image).src=d.over}}}};this.set_button=function(a,b){var d,e,f=this.buttons[a];if(!f||!f.length)return false;for(var g=0;g<f.length;g++){d=f[g];if((e=document.getElementById(d.id))&&d.type=="image"&&!d.status){d.pas=e._original_src?e._original_src:e.src;if(e.runtimeStyle&&e.runtimeStyle.filter&&e.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/))d.pas=RegExp.$1}else if(e&&!d.status)d.pas=String(e.className);if(e&&d.type=="image"&&d[b]){d.status=b;e.src=d[b]}else if(e&&typeof d[b]!=
+"undefined"){d.status=b;e.className=d[b]}if(e&&d.type=="input"){d.status=b;e.disabled=!b}}};this.set_alttext=function(a,b){if(this.buttons[a]&&this.buttons[a].length)for(var d,e,f,g=0;g<this.buttons[a].length;g++){d=this.buttons[a][g];e=document.getElementById(d.id);if(d.type=="image"&&e){e.setAttribute("alt",this.get_label(b));if((f=e.parentNode)&&f.tagName.toLowerCase()=="a")f.setAttribute("title",this.get_label(b))}else e&&e.setAttribute("title",this.get_label(b))}};this.button_over=function(a,
+b){var d,e,f=this.buttons[a];if(!f||!f.length)return false;for(var g=0;g<f.length;g++){d=f[g];if(d.id==b&&d.status=="act")if((e=document.getElementById(d.id))&&d.over)if(d.type=="image")e.src=d.over;else e.className=d.over}};this.button_sel=function(a,b){var d,e,f=this.buttons[a];if(f&&f.length)for(var g=0;g<f.length;g++){d=f[g];if(d.id==b&&d.status=="act"){if((e=document.getElementById(d.id))&&d.sel)if(d.type=="image")e.src=d.sel;else e.className=d.sel;this.buttons_sel[b]=a}}};this.button_out=function(a,
+b){var d,e,f=this.buttons[a];if(f&&f.length)for(var g=0;g<f.length;g++){d=f[g];if(d.id==b&&d.status=="act")if((e=document.getElementById(d.id))&&d.act)if(d.type=="image")e.src=d.act;else e.className=d.act}};this.set_pagetitle=function(a){if(a&&document.title)document.title=a};this.display_message=function(a,b){if(this.is_framed())return parent.rcmail.display_message(a,b);if(!this.gui_objects.message){if(b!="loading")this.pending_message=[a,b];return false}b=b?b:"notice";var d=this,e=a,f=b+(new Date).getTime(),
+g=this.message_time*(b=="error"||b=="warning"?2:1);if(b=="loading"){e="loading";g=this.env.request_timeout*1E3;a||(a=this.get_label("loading"))}if(this.messages[e]){this.messages[e].obj&&this.messages[e].obj.html(a);b=="loading"&&this.messages[e].labels.push({id:f,msg:a});this.messages[e].elements.push(f);window.setTimeout(function(){d.hide_message(f,b=="loading")},g);return f}var h=$("<div>").addClass(b).html(a).data("key",e);$(this.gui_objects.message).append(h).show();this.messages[e]={obj:h,elements:[f]};
+if(b=="loading")this.messages[e].labels=[{id:f,msg:a}];else h.click(function(){return d.hide_message(h)});window.setTimeout(function(){d.hide_message(f,b=="loading")},g);return f};this.hide_message=function(a,b){if(this.is_framed())return parent.rcmail.hide_message(a,b);var d,e,f,g,h=this.messages;if(typeof a=="object"){$(a)[b?"fadeOut":"hide"]();g=$(a).data("key");this.messages[g]&&delete this.messages[g]}else for(d in h)for(e in h[d].elements)if(h[d]&&h[d].elements[e]==a){h[d].elements.splice(e,
+1);if(h[d].elements.length){if(d=="loading")for(f in h[d].labels){if(h[d].labels[f].id==a)delete h[d].labels[f];else g=h[d].labels[f].msg;h[d].obj.html(g)}}else{h[d].obj[b?"fadeOut":"hide"]();delete h[d]}}};this.select_folder=function(a,b,d){if(this.gui_objects.folderlist){var e;if(e=this.get_folder_li(b,d))$(e).removeClass("selected").removeClass("unfocused");if(e=this.get_folder_li(a,d))$(e).removeClass("unfocused").addClass("selected");this.triggerEvent("selectfolder",{folder:a,old:b,prefix:d})}};
+this.get_folder_li=function(a,b){b||(b="rcmli");if(this.gui_objects.folderlist){a=String(a).replace(this.identifier_expr,"_");return document.getElementById(b+a)}return null};this.set_message_coltypes=function(a,b){this.env.coltypes=a;var d=this.gui_objects.messagelist?this.gui_objects.messagelist.tHead:null,e,f,g,h;if(d){if(b){f=document.createElement("thead");g=document.createElement("tr");c=0;for(h=b.length;c<h;c++){e=document.createElement("td");e.innerHTML=b[c].html;if(b[c].id)e.id=b[c].id;if(b[c].className)e.className=
+b[c].className;g.appendChild(e)}f.appendChild(g);d.parentNode.replaceChild(f,d);d=f}g=0;for(h=this.env.coltypes.length;g<h;g++){f=this.env.coltypes[g];if((e=d.rows[0].cells[g])&&(f=="from"||f=="to")){e.id="rcm"+f;if(e.firstChild&&e.firstChild.tagName.toLowerCase()=="a"){e=e.firstChild;e.onclick=function(){return rcmail.command("sort",this.__col,this)};e.__col=f}e.innerHTML=this.get_label(f)}}}this.env.subject_col=null;this.env.flagged_col=null;this.env.status_col=null;if((g=$.inArray("subject",this.env.coltypes))>=
+0){this.set_env("subject_col",g);if(this.message_list)this.message_list.subject_col=g}if((g=$.inArray("flag",this.env.coltypes))>=0)this.set_env("flagged_col",g);if((g=$.inArray("status",this.env.coltypes))>=0)this.set_env("status_col",g);this.message_list.init_header()};this.set_rowcount=function(a){$(this.gui_objects.countdisplay).html(a);this.set_page_buttons()};this.set_mailboxname=function(a){if(this.gui_objects.mailboxname&&a)this.gui_objects.mailboxname.innerHTML=a};this.set_quota=function(a){if(a&&
+this.gui_objects.quotadisplay)typeof a=="object"&&a.type=="image"?this.percent_indicator(this.gui_objects.quotadisplay,a):$(this.gui_objects.quotadisplay).html(a)};this.set_unread_count=function(a,b,d){if(!this.gui_objects.mailboxlist)return false;this.env.unread_counts[a]=b;this.set_unread_count_display(a,d)};this.set_unread_count_display=function(a,b){var d,e,f,g,h,k;if(f=this.get_folder_li(a)){g=this.env.unread_counts[a]?this.env.unread_counts[a]:0;e=f.getElementsByTagName("a")[0];d=/\s+\([0-9]+\)$/i;
+h=0;if((k=f.getElementsByTagName("div")[0])&&k.className.match(/collapsed/))for(var j in this.env.unread_counts)if(j.indexOf(a+this.env.delimiter)==0)h+=this.env.unread_counts[j];if(g&&e.innerHTML.match(d))e.innerHTML=e.innerHTML.replace(d," ("+g+")");else if(g)e.innerHTML+=" ("+g+")";else e.innerHTML=e.innerHTML.replace(d,"");d=RegExp(RegExp.escape(this.env.delimiter)+"[^"+RegExp.escape(this.env.delimiter)+"]+$");a.match(d)&&this.set_unread_count_display(a.replace(d,""),false);g+h>0?$(f).addClass("unread"):
+$(f).removeClass("unread")}d=/^\([0-9]+\)\s+/i;if(b&&document.title){e="";e=String(document.title);e=g&&e.match(d)?e.replace(d,"("+g+") "):g?"("+g+") "+e:e.replace(d,"");this.set_pagetitle(e)}};this.new_message_focus=function(){this.env.framed&&window.parent?window.parent.focus():window.focus()};this.toggle_prefer_html=function(a){var b;if(b=document.getElementById("rcmfd_addrbook_show_images"))b.disabled=!a.checked};this.toggle_preview_pane=function(a){var b;if(b=document.getElementById("rcmfd_preview_pane_mark_read"))b.disabled=
+!a.checked};this.set_headers=function(a){this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&a&&$(this.gui_objects.all_headers_box).html(a).show()};this.load_headers=function(a){if(!(!this.gui_objects.all_headers_row||!this.gui_objects.all_headers_box||!this.env.uid)){$(a).removeClass("show-headers").addClass("hide-headers");$(this.gui_objects.all_headers_row).show();a.onclick=function(){rcmail.hide_headers(a)};this.gui_objects.all_headers_box.innerHTML||this.http_post("headers","_uid="+
+this.env.uid,this.display_message(this.get_label("loading"),"loading"))}};this.hide_headers=function(a){if(this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box){$(a).removeClass("hide-headers").addClass("show-headers");$(this.gui_objects.all_headers_row).hide();a.onclick=function(){rcmail.load_headers(a)}}};this.percent_indicator=function(a,b){if(!b||!a)return false;var d=b.width?b.width:this.env.indicator_width?this.env.indicator_width:100,e=b.height?b.height:this.env.indicator_height?
+this.env.indicator_height:14,f=b.percent?Math.abs(parseInt(b.percent)):0,g=parseInt(f/100*d),h=$(a).position();h.top=Math.max(0,h.top);this.env.indicator_width=d;this.env.indicator_height=e;if(g>d){g=d;f=100}if(b.title)b.title=this.get_label("quota")+": "+b.title;var k=$("<div>");k.css({position:"absolute",top:h.top,left:h.left,width:d+"px",height:e+"px",zIndex:100,lineHeight:e+"px"}).attr("title",b.title).addClass("quota_text").html(f+"%");var j=$("<div>");j.css({position:"absolute",top:h.top+1,
+left:h.left+1,width:g+"px",height:e+"px",zIndex:99});g=$("<div>");g.css({position:"absolute",top:h.top+1,left:h.left+1,width:d+"px",height:e+"px",zIndex:98}).addClass("quota_bg");if(f>=80){k.addClass(" quota_text_high");j.addClass("quota_high")}else if(f>=55){k.addClass(" quota_text_mid");j.addClass("quota_mid")}else{k.addClass(" quota_text_normal");j.addClass("quota_low")}$(a).html("").append(j).append(g).append(k);$("#quotaimg").attr("title",b.title)};this.html2plain=function(a,b){var d=this,e=
+this.set_busy(true,"converting");console.log("HTTP POST: ?_task=utils&_action=html2text");$.ajax({type:"POST",url:"?_task=utils&_action=html2text",data:a,contentType:"application/octet-stream",error:function(f,g,h){d.http_error(f,g,h,e)},success:function(f){d.set_busy(false,null,e);$(document.getElementById(b)).val(f);console.log(f)}})};this.plain2html=function(a,b){var d=this.set_busy(true,"converting");$(document.getElementById(b)).val("<pre>"+a+"</pre>");this.set_busy(false,null,d)};this.redirect=
+function(a,b){if(b||b===null)this.set_busy(true);if(this.env.framed&&window.parent)parent.location.href=a;else location.href=a};this.goto_url=function(a,b,d){var e=this.env.comm_path;b=b?"&"+b:"";if(a.match(/([a-z]+)\/([a-z-_]+)/)){a=RegExp.$2;e=e.replace(/\_task=[a-z]+/,"_task="+RegExp.$1)}this.redirect(e+"&_action="+a+b,d)};this.http_request=function(a,b,d){var e=this.env.comm_path;if(a.match(/([a-z]+)\/([a-z-_]+)/)){a=RegExp.$2;e=e.replace(/\_task=[a-z]+/,"_task="+RegExp.$1)}var f=this.triggerEvent("request"+
+a,b);if(typeof f!="undefined")if(f===false)return false;else b=f;e+="&_remote=1&_action="+a+(b?"&":"")+b;console.log("HTTP GET: "+e);$.ajax({type:"GET",url:e,data:{_unlock:d?d:0},dataType:"json",success:function(g){l.http_response(g)},error:function(g,h,k){rcmail.http_error(g,h,k,d)}})};this.http_post=function(a,b,d){var e=this.env.comm_path;if(a.match(/([a-z]+)\/([a-z-_]+)/)){a=RegExp.$2;e=e.replace(/\_task=[a-z]+/,"_task="+RegExp.$1)}e+="&_action="+a;if(b&&typeof b=="object"){b._remote=1;b._unlock=
+d?d:0}else b+=(b?"&":"")+"_remote=1"+(d?"&_unlock="+d:"");a=this.triggerEvent("request"+a,b);if(typeof a!="undefined")if(a===false)return false;else b=a;console.log("HTTP POST: "+e);$.ajax({type:"POST",url:e,data:b,dataType:"json",success:function(f){l.http_response(f)},error:function(f,g,h){rcmail.http_error(f,g,h,d)}})};this.http_response=function(a){if(a){a.unlock&&this.set_busy(false);this.triggerEvent("responsebefore",{response:a});this.triggerEvent("responsebefore"+a.action,{response:a});a.env&&
+this.set_env(a.env);if(typeof a.texts=="object")for(var b in a.texts)typeof a.texts[b]=="string"&&this.add_label(b,a.texts[b]);if(a.exec){console.log(a.exec);eval(a.exec)}if(a.callbacks&&a.callbacks.length)for(b=0;b<a.callbacks.length;b++)this.triggerEvent(a.callbacks[b][0],a.callbacks[b][1]);switch(a.action){case "delete":if(this.task=="addressbook"){b=this.contact_list.get_selection();this.enable_command("compose",b&&this.contact_list.rows[b]);this.enable_command("delete","edit",b&&this.contact_list.rows[b]&&
+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.enable_command(this.env.message_commands,true);this.env.list_post||this.enable_command("reply-list",false)}else this.task=="addressbook"&&this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount});case "purge":case "expunge":if(this.task=="mail"){if(!this.env.messagecount){this.env.contentframe&&
+this.show_contentframe(false);this.enable_command(this.env.message_commands,"purge","expunge","select-all","select-none","sort","expand-all","expand-unread","collapse-all",false)}this.message_list&&this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:this.message_list.rowcount})}break;case "check-recent":case "getunread":case "search":case "list":if(this.task=="mail"){this.enable_command("show","expunge","select-all","select-none","sort",this.env.messagecount>0);this.enable_command("purge",
+this.purge_mailbox_test());this.enable_command("expand-all","expand-unread","collapse-all",this.env.threading&&this.env.messagecount);if(a.action=="list"||a.action=="search"){this.msglist_select(this.message_list);this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:this.message_list.rowcount})}}else if(this.task=="addressbook"){this.enable_command("export",this.contact_list&&this.contact_list.rowcount>0);if(a.action=="list"||a.action=="search"){this.enable_command("group-create",this.env.address_sources[this.env.source].groups&&
+!this.env.address_sources[this.env.source].readonly);this.enable_command("group-rename","group-delete",this.env.address_sources[this.env.source].groups&&this.env.group&&!this.env.address_sources[this.env.source].readonly);this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount})}}}a.unlock&&this.hide_message(a.unlock);this.triggerEvent("responseafter",{response:a});this.triggerEvent("responseafter"+a.action,{response:a})}};this.http_error=function(a,b,d,e){b=a.statusText;
+this.set_busy(false,null,e);a.abort();b&&this.display_message(this.get_label("servererror")+" ("+b+")","error")};this.start_keepalive=function(){this._int&&clearInterval(this._int);if(this.env.keep_alive&&!this.env.framed&&this.task=="mail"&&this.gui_objects.mailboxlist)this._int=setInterval(function(){l.check_for_recent(false)},this.env.keep_alive*1E3);else if(this.env.keep_alive&&!this.env.framed&&this.task!="login"&&this.env.action!="print")this._int=setInterval(function(){l.send_keep_alive()},
+this.env.keep_alive*1E3)};this.send_keep_alive=function(){this.http_request("keep-alive","_t="+(new Date).getTime())};this.check_for_recent=function(a){if(!this.busy){var b,d="_t="+(new Date).getTime()+"&_mbox="+urlencode(this.env.mailbox);if(a){b=this.set_busy(true,"checkingmail");d+="&_refresh=1";this.start_keepalive()}if(this.gui_objects.messagelist)d+="&_list=1";if(this.gui_objects.quotadisplay)d+="&_quota=1";if(this.env.search_request)d+="&_search="+this.env.search_request;this.http_request("check-recent",
+d,b)}};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(a){if(typeof a.selectionEnd!="undefined")return a.selectionEnd;else if(document.selection&&document.selection.createRange){var b=document.selection.createRange();if(b.parentElement()!=a)return 0;var d=b.duplicate();
+a.tagName=="TEXTAREA"?d.moveToElementText(a):d.expand("textedit");d.setEndPoint("EndToStart",b);b=d.text.length;return b<=a.value.length?b:-1}else return a.value.length};this.set_caret_pos=function(a,b){if(a.setSelectionRange)a.setSelectionRange(b,b);else if(a.createTextRange){var d=a.createTextRange();d.collapse(true);d.moveEnd("character",b);d.moveStart("character",b);d.select()}};this.lock_form=function(a,b){if(a&&a.elements){var d,e,f;if(b)this.disabled_form_elements=[];d=0;for(e=a.elements.length;d<
+e;d++){f=a.elements[d];if(f.type!="hidden")if(b&&f.disabled)this.disabled_form_elements.push(f);else if(b||$.inArray(f,this.disabled_form_elements)<0)f.disabled=b}}}}rcube_webmail.long_subject_title=function(l,a){if(!l.title){var b=$(l);if(b.width()+a*15>b.parent().width())l.title=b.html()}};rcube_webmail.prototype.addEventListener=rcube_event_engine.prototype.addEventListener;rcube_webmail.prototype.removeEventListener=rcube_event_engine.prototype.removeEventListener;
 rcube_webmail.prototype.triggerEvent=rcube_event_engine.prototype.triggerEvent;
index 4379b21b1dbbfb839cf9c0d385114ff9b9142ab4..45dac5e6504f417e462e2a3580f2d86375eaf59d 100644 (file)
@@ -14,7 +14,7 @@
  | Requires: jquery.js, common.js, list.js                               |
  +-----------------------------------------------------------------------+
 
-  $Id: app.js 4400 2011-01-09 08:24:39Z alec $
+  $Id: app.js 4469 2011-01-29 14:55:12Z thomasb $
 */
 
 
@@ -1006,15 +1006,9 @@ function rcube_webmail()
 
       // user settings commands
       case 'preferences':
-        this.goto_url('');
-        break;
-
       case 'identities':
-        this.goto_url('settings/identities');
-        break;
-
       case 'folders':
-        this.goto_url('settings/folders');
+        this.goto_url('settings/' + command);
         break;
 
       // unified command call (command name == function name)
@@ -1701,7 +1695,7 @@ function rcube_webmail()
       var action = flags.mbox == this.env.drafts_mailbox ? 'compose' : 'show';
       var uid_param = flags.mbox == this.env.drafts_mailbox ? '_draft_uid' : '_uid';
       cols.subject = '<a href="./?_task=mail&_action='+action+'&_mbox='+urlencode(flags.mbox)+'&'+uid_param+'='+uid+'"'+
-        ' onclick="return rcube_event.cancel(event)">'+cols.subject+'</a>';
+        ' onclick="return rcube_event.cancel(event)" onmouseover="rcube_webmail.long_subject_title(this,'+(message.depth+1)+')">'+cols.subject+'</a>';
     }
 
     // add each submitted col
@@ -3777,6 +3771,9 @@ function rcube_webmail()
         this.show_contentframe(false);
     }
 
+    if (this.env.group)
+      qs += '&_gid='+urlencode(this.env.group);
+
     // also send search request to get the right records from the next page
     if (this.env.search_request) 
       qs += '&_search='+this.env.search_request;
@@ -4309,6 +4306,14 @@ function rcube_webmail()
     }
   };
 
+  // disables subscription checkbox (for protected folder)
+  this.disable_subscription = function(folder)
+  {
+    var id = this.get_folder_row_id(folder);
+    if (id)
+      $('input[name="_subscribed[]"]', $('#'+id)).attr('disabled', true);
+  };
+
   this.folder_size = function(folder)
   {
     var lock = this.set_busy(true, 'loading');
@@ -4666,6 +4671,7 @@ function rcube_webmail()
         }
         th.appendChild(tr);
         thead.parentNode.replaceChild(th, thead);
+        thead = th;
       }
 
       for (n=0, len=this.env.coltypes.length; n<len; n++) {
@@ -5288,6 +5294,17 @@ function rcube_webmail()
 
 }  // end object rcube_webmail
 
+
+// some static methods
+rcube_webmail.long_subject_title = function(elem, indent)
+{
+  if (!elem.title) {
+    var $elem = $(elem);
+    if ($elem.width() + indent * 15 > $elem.parent().width())
+      elem.title = $elem.html();
+  }
+};
+
 // copy event engine prototype
 rcube_webmail.prototype.addEventListener = rcube_event_engine.prototype.addEventListener;
 rcube_webmail.prototype.removeEventListener = rcube_event_engine.prototype.removeEventListener;
index 0f32b4bd6821802d6ee5e4fee6dbd1eda8325108..7f068b4a37100d3f468d26fa069e55cdbac4267e 100644 (file)
@@ -15,10 +15,11 @@ a;if(this._events&&this._events[a]&&!this._event_exec){this._event_exec=true;for
 function rcube_layer(a,b){this.name=a;this.create=function(c){var d=c.x?c.x:0,e=c.y?c.y:0,f=c.width,g=c.height,i=c.zindex,j=c.vis;c=c.parent;var h=document.createElement("DIV");with(h){a=this.name;with(style){position="absolute";visibility=j?j==2?"inherit":"visible":"hidden";left=d+"px";top=e+"px";if(f)width=f.toString().match(/\%$/)?f:f+"px";if(g)height=g.toString().match(/\%$/)?g:g+"px";if(i)zIndex=i}}c?c.appendChild(h):document.body.appendChild(h);this.elm=h};if(b!=null){this.create(b);this.name=
 this.elm.id}else this.elm=document.getElementById(a);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.move=function(c,d){this.x=c;this.y=d;this.css.left=Math.round(this.x)+"px";this.css.top=Math.round(this.y)+"px"};this.resize=
 function(c,d){this.css.width=c+"px";this.css.height=d+"px";this.width=c;this.height=d};this.show=function(c){if(c==1){this.css.visibility="visible";this.visible=true}else if(c==2){this.css.visibility="inherit";this.visible=true}else{this.css.visibility="hidden";this.visible=false}};this.write=function(c){this.elm.innerHTML=c}}
-function rcube_check_email(a,b){if(a&&window.RegExp)return(b?RegExp("(^|<|[,;s\n])([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22))*\\x40([^@\\x2e]+\\x2e)+[a-z]{2,}($|>|[,;s\n])","i"):RegExp("^([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22))*\\x40([^@\\x2e]+\\x2e)+[a-z]{2,}$",
+function rcube_check_email(a,b){if(a&&window.RegExp)return(b?RegExp("(^|<|[,;s\n])((([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22))*\\x40([^@\\x2e]+\\x2e)+([a-z]{2,}|xn--[a-z0-9]{2,}))|(mailtest\\x40(\\u0645\\u062b\\u0627\\u0644\\x2e\\u0625\\u062e\\u062a\\u0628\\u0627\\u0631|\\u4f8b\\u5b50\\x2e\\u6d4b\\u8bd5|\\u4f8b\\u5b50\\x2e\\u6e2c\\u8a66|\\u03c0\\u03b1\\u03c1\\u03ac\\u03b4\\u03b5\\u03b9\\u03b3\\u03bc\\u03b1\\x2e\\u03b4\\u03bf\\u03ba\\u03b9\\u03bc\\u03ae|\\u0909\\u0926\\u093e\\u0939\\u0930\\u0923\\x2e\\u092a\\u0930\\u0940\\u0915\\u094d\\u0937\\u093e|\\u4f8b\\u3048\\x2e\\u30c6\\u30b9\\u30c8|\\uc2e4\\ub840\\x2e\\ud14c\\uc2a4\\ud2b8|\\u0645\\u062b\\u0627\\u0644\\x2e\\u0622\\u0632\\u0645\\u0627\\u06cc\\u0634\u06cc|\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\\x2e\\u0438\\u0441\\u043f\\u044b\\u0442\\u0430\\u043d\\u0438\\u0435|\\u0b89\\u0ba4\\u0bbe\\u0bb0\\u0ba3\\u0bae\\u0bcd\\x2e\\u0baa\\u0bb0\\u0bbf\\u0b9f\\u0bcd\\u0b9a\\u0bc8|\\u05d1\\u05f2\\u05b7\\u05e9\\u05e4\\u05bc\\u05d9\\u05dc\\x2e\\u05d8\\u05e2\\u05e1\\u05d8)))($|>|[,;s\n])","i"):
+RegExp("^((([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22))*\\x40([^@\\x2e]+\\x2e)+([a-z]{2,}|xn--[a-z0-9]{2,}))|(mailtest\\x40(\\u0645\\u062b\\u0627\\u0644\\x2e\\u0625\\u062e\\u062a\\u0628\\u0627\\u0631|\\u4f8b\\u5b50\\x2e\\u6d4b\\u8bd5|\\u4f8b\\u5b50\\x2e\\u6e2c\\u8a66|\\u03c0\\u03b1\\u03c1\\u03ac\\u03b4\\u03b5\\u03b9\\u03b3\\u03bc\\u03b1\\x2e\\u03b4\\u03bf\\u03ba\\u03b9\\u03bc\\u03ae|\\u0909\\u0926\\u093e\\u0939\\u0930\\u0923\\x2e\\u092a\\u0930\\u0940\\u0915\\u094d\\u0937\\u093e|\\u4f8b\\u3048\\x2e\\u30c6\\u30b9\\u30c8|\\uc2e4\\ub840\\x2e\\ud14c\\uc2a4\\ud2b8|\\u0645\\u062b\\u0627\\u0644\\x2e\\u0622\\u0632\\u0645\\u0627\\u06cc\\u0634\u06cc|\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\\x2e\\u0438\\u0441\\u043f\\u044b\\u0442\\u0430\\u043d\\u0438\\u0435|\\u0b89\\u0ba4\\u0bbe\\u0bb0\\u0ba3\\u0bae\\u0bcd\\x2e\\u0baa\\u0bb0\\u0bbf\\u0b9f\\u0bcd\\u0b9a\\u0bc8|\\u05d1\\u05f2\\u05b7\\u05e9\\u05e4\\u05bc\\u05d9\\u05dc\\x2e\\u05d8\\u05e2\\u05e1\\u05d8)))$",
 "i")).test(a)?true:false;return false}function rcube_clone_object(a){var b={},c;for(c in a)b[c]=a[c]&&typeof a[c]=="object"?clone_object(a[c]):a[c];return b}function urlencode(a){return window.encodeURIComponent?encodeURIComponent(a):escape(a)}
 function rcube_find_object(a,b){var c,d;b||(b=document);if(b.getElementsByName&&(c=b.getElementsByName(a)))d=c[0];if(!d&&b.getElementById)d=b.getElementById(a);if(!d&&b.all)d=b.all[a];if(!d&&b.images.length)d=b.images[a];if(!d&&b.forms.length)for(c=0;c<b.forms.length;c++)if(b.forms[c].name==a)d=b.forms[c];else if(b.forms[c].elements[a])d=b.forms[c].elements[a];if(!d&&b.layers){if(b.layers[a])d=b.layers[a];for(c=0;!d&&c<b.layers.length;c++)d=rcube_find_object(a,b.layers[c].document)}return d}
 function rcube_mouse_is_over(a,b){var c=rcube_event.get_mouse_pos(a),d=$(b).offset();return c.x>=d.left&&c.x<d.left+b.offsetWidth&&c.y>=d.top&&c.y<d.top+b.offsetHeight}function setCookie(a,b,c,d,e,f){a=a+"="+escape(b)+(c?"; expires="+c.toGMTString():"")+(d?"; path="+d:"")+(e?"; domain="+e:"")+(f?"; secure":"");document.cookie=a}
-function getCookie(a){var b=document.cookie;a=a+"=";var c=b.indexOf("; "+a);if(c==-1){c=b.indexOf(a);if(c!=0)return null}else c+=2;var d=document.cookie.indexOf(";",c);if(d==-1)d=b.length;return unescape(b.substring(c+a.length,d))}roundcube_browser.prototype.set_cookie=setCookie;roundcube_browser.prototype.get_cookie=getCookie;
+function getCookie(a){var b=document.cookie;a+="=";var c=b.indexOf("; "+a);if(c==-1){c=b.indexOf(a);if(c!=0)return null}else c+=2;var d=document.cookie.indexOf(";",c);if(d==-1)d=b.length;return unescape(b.substring(c+a.length,d))}roundcube_browser.prototype.set_cookie=setCookie;roundcube_browser.prototype.get_cookie=getCookie;
 function rcube_console(){this.log=function(a){var b=rcube_find_object("dbgconsole");if(b){a+=a.charAt(a.length-1)=="\n"?"--------------------------------------\n":"\n--------------------------------------\n";if(bw.konq){b.innerText+=a;b.value=b.innerText}else b.value+=a}};this.reset=function(){var a=rcube_find_object("dbgconsole");if(a)a.innerText=a.value=""}}var bw=new roundcube_browser;bw.set_html_class();window.console||(console=new rcube_console);
 RegExp.escape=function(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")};if(bw.ie){document._getElementById=document.getElementById;document.getElementById=function(a){var b=0,c=document._getElementById(a);if(c&&c.id!=a)for(;(c=document.all[b])&&c.id!=a;)b++;return c}};
index 5bc2ae62f4eec52f8672bf0bab2dd476c51207e1..3c7b8c3730a46d9380d39d9550f135a0eb5eca4f 100644 (file)
@@ -10,7 +10,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
  
- $Id: common.js 4166 2010-11-02 09:27:03Z alec $
+ $Id: common.js 4509 2011-02-09 10:51:50Z thomasb $
 */
 
 // Constants
@@ -493,11 +493,27 @@ function rcube_check_email(input, inline)
       // So, e-mail address should be validated also on server side after idn_to_ascii() use
       //domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d',
       //sub_domain = '('+atom+'|'+domain_literal+')',
-      domain = '([^@\\x2e]+\\x2e)+[a-z]{2,}',
+      // allow punycode in last domain part for ICANN test domains
+      domain = '([^@\\x2e]+\\x2e)+([a-z]{2,}|xn--[a-z0-9]{2,})',
+      // ICANN e-mail test (http://idn.icann.org/E-mail_test)
+      icann_domains = [
+        '\\u0645\\u062b\\u0627\\u0644\\x2e\\u0625\\u062e\\u062a\\u0628\\u0627\\u0631',
+        '\\u4f8b\\u5b50\\x2e\\u6d4b\\u8bd5',
+        '\\u4f8b\\u5b50\\x2e\\u6e2c\\u8a66',
+        '\\u03c0\\u03b1\\u03c1\\u03ac\\u03b4\\u03b5\\u03b9\\u03b3\\u03bc\\u03b1\\x2e\\u03b4\\u03bf\\u03ba\\u03b9\\u03bc\\u03ae',
+        '\\u0909\\u0926\\u093e\\u0939\\u0930\\u0923\\x2e\\u092a\\u0930\\u0940\\u0915\\u094d\\u0937\\u093e',
+        '\\u4f8b\\u3048\\x2e\\u30c6\\u30b9\\u30c8',
+        '\\uc2e4\\ub840\\x2e\\ud14c\\uc2a4\\ud2b8',
+        '\\u0645\\u062b\\u0627\\u0644\\x2e\\u0622\\u0632\\u0645\\u0627\\u06cc\\u0634\u06cc',
+        '\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\\x2e\\u0438\\u0441\\u043f\\u044b\\u0442\\u0430\\u043d\\u0438\\u0435',
+        '\\u0b89\\u0ba4\\u0bbe\\u0bb0\\u0ba3\\u0bae\\u0bcd\\x2e\\u0baa\\u0bb0\\u0bbf\\u0b9f\\u0bcd\\u0b9a\\u0bc8',
+        '\\u05d1\\u05f2\\u05b7\\u05e9\\u05e4\\u05bc\\u05d9\\u05dc\\x2e\\u05d8\\u05e2\\u05e1\\u05d8'
+      ],
+      icann_addr = 'mailtest\\x40('+icann_domains.join('|')+')',
       word = '('+atom+'|'+quoted_string+')',
       delim = '[,;\s\n]',
       local_part = word+'(\\x2e'+word+')*',
-      addr_spec = local_part+'\\x40'+domain,
+      addr_spec = '(('+local_part+'\\x40'+domain+')|('+icann_addr+'))',
       reg1 = inline ? new RegExp('(^|<|'+delim+')'+addr_spec+'($|>|'+delim+')', 'i') : new RegExp('^'+addr_spec+'$', 'i');
 
     return reg1.test(input) ? true : false;
index 12a5941a05caf8730415c90f896aa10883bc31d5..a9b93de4fe803ccba2c4c15f92d725ded829f0a6 100755 (executable)
@@ -42,8 +42,8 @@ image_align_right:"H\u00F6ger",
 link_title:"Infoga/redigera l\u00E4nk",\r
 link_url:"L\u00E4nkens URL",\r
 link_target:"M\u00E5l",\r
-link_target_same:"\u00D6\u0096ppna l\u00E4nken i samma f\u00F6nster",\r
-link_target_blank:"\u00D6\u0096ppna l\u00E4nken i ett nytt f\u00F6nster",\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
index ced9747950bddec88d26dcc0c37fd3fe34e74e5d..f49c5ab75ef9812a66bf6359410ed059c33e815a 100644 (file)
-(function(m){var o=/^\s*|\s*$/g,q={majorVersion:"3",minorVersion:"3.7",releaseDate:"2010-06-10",_init:function(){function k(v){if(v.src&&/tiny_mce(|_gzip|_jquery|_prototype)(_dev|_src)?.js/.test(v.src)){if(/_(src|dev)\.js/g.test(v.src))j.suffix="_src";if((r=v.src.indexOf("?"))!=-1)j.query=v.src.substring(r+1);j.baseURL=v.src.substring(0,v.src.lastIndexOf("/"));if(l&&j.baseURL.indexOf("://")==-1&&j.baseURL.indexOf("/")!==0)j.baseURL=l+j.baseURL;return j.baseURL}return null}var j=this,b=document,g=
-navigator,d=g.userAgent,l,r,u;j.isOpera=m.opera&&opera.buildNumber;j.isWebKit=/WebKit/.test(d);j.isIE=!j.isWebKit&&!j.isOpera&&/MSIE/gi.test(d)&&/Explorer/gi.test(g.appName);j.isIE6=j.isIE&&/MSIE [56]/.test(d);j.isGecko=!j.isWebKit&&/Gecko/.test(d);j.isMac=d.indexOf("Mac")!=-1;j.isAir=/adobeair/i.test(d);j.isIDevice=/(iPad|iPhone)/.test(d);if(m.tinyMCEPreInit){j.suffix=tinyMCEPreInit.suffix;j.baseURL=tinyMCEPreInit.base;j.query=tinyMCEPreInit.query}else{j.suffix="";d=b.getElementsByTagName("base");
-for(g=0;g<d.length;g++)if(u=d[g].href){if(/^https?:\/\/[^\/]+$/.test(u))u+="/";l=u?u.match(/.*\//)[0]:""}d=b.getElementsByTagName("script");for(g=0;g<d.length;g++)if(k(d[g]))return;if(b=b.getElementsByTagName("head")[0]){d=b.getElementsByTagName("script");for(g=0;g<d.length;g++)if(k(d[g]))break}}},is:function(k,j){if(!j)return k!==void 0;if(j=="array"&&k.hasOwnProperty&&k instanceof Array)return true;return typeof k==j},each:function(k,j,b){var g,d;if(!k)return 0;b=b||k;if(k.length!==void 0){g=0;
-for(d=k.length;g<d;g++)if(j.call(b,k[g],g,k)===false)return 0}else for(g in k)if(k.hasOwnProperty(g))if(j.call(b,k[g],g,k)===false)return 0;return 1},map:function(k,j){var b=[];q.each(k,function(g){b.push(j(g))});return b},grep:function(k,j){var b=[];q.each(k,function(g){if(!j||j(g))b.push(g)});return b},inArray:function(k,j){var b,g;if(k){b=0;for(g=k.length;b<g;b++)if(k[b]===j)return b}return-1},extend:function(k,j){var b,g,d=arguments;b=1;for(g=d.length;b<g;b++){j=d[b];q.each(j,function(l,r){if(l!==
-void 0)k[r]=l})}return k},trim:function(k){return(k?""+k:"").replace(o,"")},create:function(k,j){var b,g,d,l,r,u=0;k=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(k);d=k[3].match(/(^|\.)(\w+)$/i)[2];g=this.createNS(k[3].replace(/\.\w+$/,""));if(!g[d])if(k[2]=="static"){g[d]=j;this.onCreate&&this.onCreate(k[2],k[3],g[d])}else{if(!j[d]){j[d]=function(){};u=1}g[d]=j[d];this.extend(g[d].prototype,j);if(k[5]){b=this.resolve(k[5]).prototype;l=k[5].match(/\.(\w+)$/i)[1];r=g[d];g[d]=u?function(){return b[l].apply(this,
-arguments)}:function(){this.parent=b[l];return r.apply(this,arguments)};g[d].prototype[d]=g[d];this.each(b,function(v,f){g[d].prototype[f]=b[f]});this.each(j,function(v,f){if(b[f])g[d].prototype[f]=function(){this.parent=b[f];return v.apply(this,arguments)};else if(f!=d)g[d].prototype[f]=v})}this.each(j["static"],function(v,f){g[d][f]=v});this.onCreate&&this.onCreate(k[2],k[3],g[d].prototype)}},walk:function(k,j,b,g){g=g||this;if(k){if(b)k=k[b];q.each(k,function(d,l){if(j.call(g,d,l,b)===false)return false;
-q.walk(d,j,b,g)})}},createNS:function(k,j){var b,g;j=j||m;k=k.split(".");for(b=0;b<k.length;b++){g=k[b];j[g]||(j[g]={});j=j[g]}return j},resolve:function(k,j){var b,g;j=j||m;k=k.split(".");b=0;for(g=k.length;b<g;b++){j=j[k[b]];if(!j)break}return j},addUnload:function(k,j){var b=this;k={func:k,scope:j||this};if(b.unloads)b.unloads.push(k);else{var g=function(){var l=b.unloads,r,u;if(l){for(u in l)(r=l[u])&&r.func&&r.func.call(r.scope,1);if(m.detachEvent){m.detachEvent("onbeforeunload",d);m.detachEvent("onunload",
-g)}else m.removeEventListener&&m.removeEventListener("unload",g,false);b.unloads=w=g=0;m.CollectGarbage&&CollectGarbage()}},d=function(){var l=document;if(l.readyState=="interactive"){var r=function(){l.detachEvent("onstop",r);g&&g();l=0};l&&l.attachEvent("onstop",r);m.setTimeout(function(){l&&l.detachEvent("onstop",r)},0)}};if(m.attachEvent){m.attachEvent("onunload",g);m.attachEvent("onbeforeunload",d)}else m.addEventListener&&m.addEventListener("unload",g,false);b.unloads=[k]}return k},removeUnload:function(k){var j=
-this.unloads,b=null;q.each(j,function(g,d){if(g&&g.func==k){j.splice(d,1);b=k;return false}});return b},explode:function(k,j){return k?q.map(k.split(j||","),q.trim):k},_addVer:function(k){var j;if(!this.query)return k;j=(k.indexOf("?")==-1?"?":"&")+this.query;if(k.indexOf("#")==-1)return k+j;return k.replace("#",j+"#")}};q._init();m.tinymce=m.tinyMCE=q})(window);
-tinymce.create("tinymce.util.Dispatcher",{scope:null,listeners:null,Dispatcher:function(m){this.scope=m||this;this.listeners=[]},add:function(m,o){this.listeners.push({cb:m,scope:o||this.scope});return m},addToTop:function(m,o){this.listeners.unshift({cb:m,scope:o||this.scope});return m},remove:function(m){var o=this.listeners,q=null;tinymce.each(o,function(k,j){if(m==k.cb){q=m;o.splice(j,1);return false}});return q},dispatch:function(){var m,o=arguments,q,k=this.listeners;for(q=0;q<k.length;q++){m=
-k[q];m=m.cb.apply(m.scope,o);if(m===false)break}return m}});
-(function(){var m=tinymce.each;tinymce.create("tinymce.util.URI",{URI:function(o,q){var k=this,j;o=tinymce.trim(o);q=k.settings=q||{};if(/^(mailto|tel|news|javascript|about|data):/i.test(o)||/^\s*#/.test(o))k.source=o;else{if(o.indexOf("/")===0&&o.indexOf("//")!==0)o=(q.base_uri?q.base_uri.protocol||"http":"http")+"://mce_host"+o;/^\w*:?\/\//.test(o)||(o=(q.base_uri.protocol||"http")+"://mce_host"+k.toAbsPath(q.base_uri.path,o));o=o.replace(/@@/g,"(mce_at)");o=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(o);
-m(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(b,g){var d=o[g];if(d)d=d.replace(/\(mce_at\)/g,"@@");k[b]=d});if(j=q.base_uri){if(!k.protocol)k.protocol=j.protocol;if(!k.userInfo)k.userInfo=j.userInfo;if(!k.port&&k.host=="mce_host")k.port=j.port;if(!k.host||k.host=="mce_host")k.host=j.host;k.source=""}}},setPath:function(o){o=/^(.*?)\/?(\w+)?$/.exec(o);this.path=o[0];this.directory=o[1];this.file=o[2];this.source=
+(function(l){var o=/^\s*|\s*$/g,q={majorVersion:"3",minorVersion:"3.7",releaseDate:"2010-06-10",_init:function(){function k(v){if(v.src&&/tiny_mce(|_gzip|_jquery|_prototype)(_dev|_src)?.js/.test(v.src)){if(/_(src|dev)\.js/g.test(v.src))j.suffix="_src";if((r=v.src.indexOf("?"))!=-1)j.query=v.src.substring(r+1);j.baseURL=v.src.substring(0,v.src.lastIndexOf("/"));if(n&&j.baseURL.indexOf("://")==-1&&j.baseURL.indexOf("/")!==0)j.baseURL=n+j.baseURL;return j.baseURL}return null}var j=this,b=document,g=
+navigator,d=g.userAgent,n,r,u;j.isOpera=l.opera&&opera.buildNumber;j.isWebKit=/WebKit/.test(d);j.isIE=!j.isWebKit&&!j.isOpera&&/MSIE/gi.test(d)&&/Explorer/gi.test(g.appName);j.isIE6=j.isIE&&/MSIE [56]/.test(d);j.isGecko=!j.isWebKit&&/Gecko/.test(d);j.isMac=d.indexOf("Mac")!=-1;j.isAir=/adobeair/i.test(d);j.isIDevice=/(iPad|iPhone)/.test(d);if(l.tinyMCEPreInit){j.suffix=tinyMCEPreInit.suffix;j.baseURL=tinyMCEPreInit.base;j.query=tinyMCEPreInit.query}else{j.suffix="";d=b.getElementsByTagName("base");
+for(g=0;g<d.length;g++)if(u=d[g].href){if(/^https?:\/\/[^\/]+$/.test(u))u+="/";n=u?u.match(/.*\//)[0]:""}d=b.getElementsByTagName("script");for(g=0;g<d.length;g++)if(k(d[g]))return;if(b=b.getElementsByTagName("head")[0]){d=b.getElementsByTagName("script");for(g=0;g<d.length;g++)if(k(d[g]))break}}},is:function(k,j){if(!j)return k!==void 0;if(j=="array"&&k.hasOwnProperty&&k instanceof Array)return true;return typeof k==j},each:function(k,j,b){var g,d;if(!k)return 0;b=b||k;if(k.length!==void 0){g=0;
+for(d=k.length;g<d;g++)if(j.call(b,k[g],g,k)===false)return 0}else for(g in k)if(k.hasOwnProperty(g))if(j.call(b,k[g],g,k)===false)return 0;return 1},map:function(k,j){var b=[];q.each(k,function(g){b.push(j(g))});return b},grep:function(k,j){var b=[];q.each(k,function(g){if(!j||j(g))b.push(g)});return b},inArray:function(k,j){var b,g;if(k){b=0;for(g=k.length;b<g;b++)if(k[b]===j)return b}return-1},extend:function(k,j){var b,g,d=arguments;b=1;for(g=d.length;b<g;b++){j=d[b];q.each(j,function(n,r){if(n!==
+void 0)k[r]=n})}return k},trim:function(k){return(k?""+k:"").replace(o,"")},create:function(k,j){var b,g,d,n,r,u=0;k=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(k);d=k[3].match(/(^|\.)(\w+)$/i)[2];g=this.createNS(k[3].replace(/\.\w+$/,""));if(!g[d])if(k[2]=="static"){g[d]=j;if(this.onCreate)this.onCreate(k[2],k[3],g[d])}else{if(!j[d]){j[d]=function(){};u=1}g[d]=j[d];this.extend(g[d].prototype,j);if(k[5]){b=this.resolve(k[5]).prototype;n=k[5].match(/\.(\w+)$/i)[1];r=g[d];g[d]=u?function(){return b[n].apply(this,
+arguments)}:function(){this.parent=b[n];return r.apply(this,arguments)};g[d].prototype[d]=g[d];this.each(b,function(v,f){g[d].prototype[f]=b[f]});this.each(j,function(v,f){if(b[f])g[d].prototype[f]=function(){this.parent=b[f];return v.apply(this,arguments)};else if(f!=d)g[d].prototype[f]=v})}this.each(j["static"],function(v,f){g[d][f]=v});if(this.onCreate)this.onCreate(k[2],k[3],g[d].prototype)}},walk:function(k,j,b,g){g=g||this;if(k){if(b)k=k[b];q.each(k,function(d,n){if(j.call(g,d,n,b)===false)return false;
+q.walk(d,j,b,g)})}},createNS:function(k,j){var b,g;j=j||l;k=k.split(".");for(b=0;b<k.length;b++){g=k[b];j[g]||(j[g]={});j=j[g]}return j},resolve:function(k,j){var b,g;j=j||l;k=k.split(".");b=0;for(g=k.length;b<g;b++){j=j[k[b]];if(!j)break}return j},addUnload:function(k,j){var b=this;k={func:k,scope:j||this};if(b.unloads)b.unloads.push(k);else{var g=function(){var n=b.unloads,r,u;if(n){for(u in n)(r=n[u])&&r.func&&r.func.call(r.scope,1);if(l.detachEvent){l.detachEvent("onbeforeunload",d);l.detachEvent("onunload",
+g)}else l.removeEventListener&&l.removeEventListener("unload",g,false);b.unloads=w=g=0;l.CollectGarbage&&CollectGarbage()}},d=function(){var n=document;if(n.readyState=="interactive"){var r=function(){n.detachEvent("onstop",r);g&&g();n=0};n&&n.attachEvent("onstop",r);l.setTimeout(function(){n&&n.detachEvent("onstop",r)},0)}};if(l.attachEvent){l.attachEvent("onunload",g);l.attachEvent("onbeforeunload",d)}else l.addEventListener&&l.addEventListener("unload",g,false);b.unloads=[k]}return k},removeUnload:function(k){var j=
+this.unloads,b=null;q.each(j,function(g,d){if(g&&g.func==k){j.splice(d,1);b=k;return false}});return b},explode:function(k,j){return k?q.map(k.split(j||","),q.trim):k},_addVer:function(k){var j;if(!this.query)return k;j=(k.indexOf("?")==-1?"?":"&")+this.query;if(k.indexOf("#")==-1)return k+j;return k.replace("#",j+"#")}};q._init();l.tinymce=l.tinyMCE=q})(window);
+tinymce.create("tinymce.util.Dispatcher",{scope:null,listeners:null,Dispatcher:function(l){this.scope=l||this;this.listeners=[]},add:function(l,o){this.listeners.push({cb:l,scope:o||this.scope});return l},addToTop:function(l,o){this.listeners.unshift({cb:l,scope:o||this.scope});return l},remove:function(l){var o=this.listeners,q=null;tinymce.each(o,function(k,j){if(l==k.cb){q=l;o.splice(j,1);return false}});return q},dispatch:function(){var l,o=arguments,q,k=this.listeners;for(q=0;q<k.length;q++){l=
+k[q];l=l.cb.apply(l.scope,o);if(l===false)break}return l}});
+(function(){var l=tinymce.each;tinymce.create("tinymce.util.URI",{URI:function(o,q){var k=this,j;o=tinymce.trim(o);q=k.settings=q||{};if(/^(mailto|tel|news|javascript|about|data):/i.test(o)||/^\s*#/.test(o))k.source=o;else{if(o.indexOf("/")===0&&o.indexOf("//")!==0)o=(q.base_uri?q.base_uri.protocol||"http":"http")+"://mce_host"+o;/^\w*:?\/\//.test(o)||(o=(q.base_uri.protocol||"http")+"://mce_host"+k.toAbsPath(q.base_uri.path,o));o=o.replace(/@@/g,"(mce_at)");o=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(o);
+l(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(b,g){var d=o[g];if(d)d=d.replace(/\(mce_at\)/g,"@@");k[b]=d});if(j=q.base_uri){if(!k.protocol)k.protocol=j.protocol;if(!k.userInfo)k.userInfo=j.userInfo;if(!k.port&&k.host=="mce_host")k.port=j.port;if(!k.host||k.host=="mce_host")k.host=j.host;k.source=""}}},setPath:function(o){o=/^(.*?)\/?(\w+)?$/.exec(o);this.path=o[0];this.directory=o[1];this.file=o[2];this.source=
 "";this.getURI()},toRelative:function(o){var q;if(o==="./")return o;o=new tinymce.util.URI(o,{base_uri:this});if(o.host!="mce_host"&&this.host!=o.host&&o.host||this.port!=o.port||this.protocol!=o.protocol)return o.getURI();q=this.toRelPath(this.path,o.path);if(o.query)q+="?"+o.query;if(o.anchor)q+="#"+o.anchor;return q},toAbsolute:function(o,q){o=new tinymce.util.URI(o,{base_uri:this});return o.getURI(this.host==o.host&&this.protocol==o.protocol?q:0)},toRelPath:function(o,q){var k,j=0,b="",g,d;o=
-o.substring(0,o.lastIndexOf("/"));o=o.split("/");k=q.split("/");if(o.length>=k.length){g=0;for(d=o.length;g<d;g++)if(g>=k.length||o[g]!=k[g]){j=g+1;break}}if(o.length<k.length){g=0;for(d=k.length;g<d;g++)if(g>=o.length||o[g]!=k[g]){j=g+1;break}}if(j==1)return q;g=0;for(d=o.length-(j-1);g<d;g++)b+="../";g=j-1;for(d=k.length;g<d;g++)b+=g!=j-1?"/"+k[g]:k[g];return b},toAbsPath:function(o,q){var k,j=0,b=[],g;g=/\/$/.test(q)?"/":"";o=o.split("/");q=q.split("/");m(o,function(d){d&&b.push(d)});o=b;k=q.length-
+o.substring(0,o.lastIndexOf("/"));o=o.split("/");k=q.split("/");if(o.length>=k.length){g=0;for(d=o.length;g<d;g++)if(g>=k.length||o[g]!=k[g]){j=g+1;break}}if(o.length<k.length){g=0;for(d=k.length;g<d;g++)if(g>=o.length||o[g]!=k[g]){j=g+1;break}}if(j==1)return q;g=0;for(d=o.length-(j-1);g<d;g++)b+="../";g=j-1;for(d=k.length;g<d;g++)b+=g!=j-1?"/"+k[g]:k[g];return b},toAbsPath:function(o,q){var k,j=0,b=[],g;g=/\/$/.test(q)?"/":"";o=o.split("/");q=q.split("/");l(o,function(d){d&&b.push(d)});o=b;k=q.length-
 1;for(b=[];k>=0;k--)if(!(q[k].length==0||q[k]=="."))if(q[k]=="..")j++;else if(j>0)j--;else b.push(q[k]);k=o.length-j;k=k<=0?b.reverse().join("/"):o.slice(0,k).join("/")+"/"+b.reverse().join("/");if(k.indexOf("/")!==0)k="/"+k;if(g&&k.lastIndexOf("/")!==k.length-1)k+=g;return k},getURI:function(o){var q;if(!this.source||o){q="";if(!o){if(this.protocol)q+=this.protocol+"://";if(this.userInfo)q+=this.userInfo+"@";if(this.host)q+=this.host;if(this.port)q+=":"+this.port}if(this.path)q+=this.path;if(this.query)q+=
 "?"+this.query;if(this.anchor)q+="#"+this.anchor;this.source=q}return this.source}})})();
-(function(){var m=tinymce.each;tinymce.create("static tinymce.util.Cookie",{getHash:function(o){o=this.get(o);var q;o&&m(o.split("&"),function(k){k=k.split("=");q=q||{};q[unescape(k[0])]=unescape(k[1])});return q},setHash:function(o,q,k,j,b,g){var d="";m(q,function(l,r){d+=(!d?"":"&")+escape(r)+"="+escape(l)});this.set(o,d,k,j,b,g)},get:function(o){var q=document.cookie,k=o+"=",j;if(q){j=q.indexOf("; "+k);if(j==-1){j=q.indexOf(k);if(j!=0)return null}else j+=2;o=q.indexOf(";",j);if(o==-1)o=q.length;
+(function(){var l=tinymce.each;tinymce.create("static tinymce.util.Cookie",{getHash:function(o){o=this.get(o);var q;o&&l(o.split("&"),function(k){k=k.split("=");q=q||{};q[unescape(k[0])]=unescape(k[1])});return q},setHash:function(o,q,k,j,b,g){var d="";l(q,function(n,r){d+=(!d?"":"&")+escape(r)+"="+escape(n)});this.set(o,d,k,j,b,g)},get:function(o){var q=document.cookie,k=o+"=",j;if(q){j=q.indexOf("; "+k);if(j==-1){j=q.indexOf(k);if(j!=0)return null}else j+=2;o=q.indexOf(";",j);if(o==-1)o=q.length;
 return unescape(q.substring(j+k.length,o))}},set:function(o,q,k,j,b,g){document.cookie=o+"="+escape(q)+(k?"; expires="+k.toGMTString():"")+(j?"; path="+escape(j):"")+(b?"; domain="+b:"")+(g?"; secure":"")},remove:function(o,q){var k=new Date;k.setTime(k.getTime()-1E3);this.set(o,"",k,q,k)}})})();
-tinymce.create("static tinymce.util.JSON",{serialize:function(m){var o,q,k=tinymce.util.JSON.serialize,j;if(m==null)return"null";j=typeof m;if(j=="string"){q="\u0008b\tt\nn\u000cf\rr\"\"''\\\\";return'"'+m.replace(/([\u0080-\uFFFF\x00-\x1f\"])/g,function(b,g){o=q.indexOf(g);if(o+1)return"\\"+q.charAt(o+1);b=g.charCodeAt().toString(16);return"\\u"+"0000".substring(b.length)+b})+'"'}if(j=="object"){if(m.hasOwnProperty&&m instanceof Array){o=0;for(q="[";o<m.length;o++)q+=(o>0?",":"")+k(m[o]);return q+
-"]"}q="{";for(o in m)q+=typeof m[o]!="function"?(q.length>1?',"':'"')+o+'":'+k(m[o]):"";return q+"}"}return""+m},parse:function(m){try{return eval("("+m+")")}catch(o){}}});
-tinymce.create("static tinymce.util.XHR",{send:function(m){function o(g){q=0;try{q=new ActiveXObject(g)}catch(d){}return q}var q,k=window,j=0;m.scope=m.scope||this;m.success_scope=m.success_scope||m.scope;m.error_scope=m.error_scope||m.scope;m.async=m.async===false?false:true;m.data=m.data||"";if(q=k.XMLHttpRequest?new XMLHttpRequest:o("Microsoft.XMLHTTP")||o("Msxml2.XMLHTTP")){q.overrideMimeType&&q.overrideMimeType(m.content_type);q.open(m.type||(m.data?"POST":"GET"),m.url,m.async);m.content_type&&
-q.setRequestHeader("Content-Type",m.content_type);q.setRequestHeader("X-Requested-With","XMLHttpRequest");q.send(m.data);var b=function(){if(!m.async||q.readyState==4||j++>1E4){if(m.success&&j<1E4&&q.status==200)m.success.call(m.success_scope,""+q.responseText,q,m);else if(m.error)m.error.call(m.error_scope,j>1E4?"TIMED_OUT":"GENERAL",q,m);q=null}else k.setTimeout(b,10)};if(!m.async)return b();k.setTimeout(b,10)}}});
-(function(){var m=tinymce.extend,o=tinymce.util.JSON,q=tinymce.util.XHR;tinymce.create("tinymce.util.JSONRequest",{JSONRequest:function(k){this.settings=m({},k);this.count=0},send:function(k){var j=k.error,b=k.success;k=m(this.settings,k);k.success=function(g,d){g=o.parse(g);if(typeof g=="undefined")g={error:"JSON Parse error."};g.error?j.call(k.error_scope||k.scope,g.error,d):b.call(k.success_scope||k.scope,g.result)};k.error=function(g,d){j.call(k.error_scope||k.scope,g,d)};k.data=o.serialize({id:k.id||
+tinymce.create("static tinymce.util.JSON",{serialize:function(l){var o,q,k=tinymce.util.JSON.serialize,j;if(l==null)return"null";j=typeof l;if(j=="string"){q="\u0008b\tt\nn\u000cf\rr\"\"''\\\\";return'"'+l.replace(/([\u0080-\uFFFF\x00-\x1f\"])/g,function(b,g){o=q.indexOf(g);if(o+1)return"\\"+q.charAt(o+1);b=g.charCodeAt().toString(16);return"\\u"+"0000".substring(b.length)+b})+'"'}if(j=="object"){if(l.hasOwnProperty&&l instanceof Array){o=0;for(q="[";o<l.length;o++)q+=(o>0?",":"")+k(l[o]);return q+
+"]"}q="{";for(o in l)q+=typeof l[o]!="function"?(q.length>1?',"':'"')+o+'":'+k(l[o]):"";return q+"}"}return""+l},parse:function(l){try{return eval("("+l+")")}catch(o){}}});
+tinymce.create("static tinymce.util.XHR",{send:function(l){function o(g){q=0;try{q=new ActiveXObject(g)}catch(d){}return q}var q,k=window,j=0;l.scope=l.scope||this;l.success_scope=l.success_scope||l.scope;l.error_scope=l.error_scope||l.scope;l.async=l.async===false?false:true;l.data=l.data||"";if(q=k.XMLHttpRequest?new XMLHttpRequest:o("Microsoft.XMLHTTP")||o("Msxml2.XMLHTTP")){q.overrideMimeType&&q.overrideMimeType(l.content_type);q.open(l.type||(l.data?"POST":"GET"),l.url,l.async);l.content_type&&
+q.setRequestHeader("Content-Type",l.content_type);q.setRequestHeader("X-Requested-With","XMLHttpRequest");q.send(l.data);var b=function(){if(!l.async||q.readyState==4||j++>1E4){if(l.success&&j<1E4&&q.status==200)l.success.call(l.success_scope,""+q.responseText,q,l);else if(l.error)l.error.call(l.error_scope,j>1E4?"TIMED_OUT":"GENERAL",q,l);q=null}else k.setTimeout(b,10)};if(!l.async)return b();k.setTimeout(b,10)}}});
+(function(){var l=tinymce.extend,o=tinymce.util.JSON,q=tinymce.util.XHR;tinymce.create("tinymce.util.JSONRequest",{JSONRequest:function(k){this.settings=l({},k);this.count=0},send:function(k){var j=k.error,b=k.success;k=l(this.settings,k);k.success=function(g,d){g=o.parse(g);if(typeof g=="undefined")g={error:"JSON Parse error."};g.error?j.call(k.error_scope||k.scope,g.error,d):b.call(k.success_scope||k.scope,g.result)};k.error=function(g,d){j.call(k.error_scope||k.scope,g,d)};k.data=o.serialize({id:k.id||
 "c"+this.count++,method:k.method,params:k.params});k.content_type="application/json";q.send(k)},"static":{sendRPC:function(k){return(new tinymce.util.JSONRequest).send(k)}}})})();
-(function(m){function o(c){var i={},a;c=c.split(",");for(a=c.length;a>=0;a--)i[c[a]]=1;return i}var q=m.each,k=m.is,j=m.isWebKit,b=m.isIE,g=/^(H[1-6R]|P|DIV|ADDRESS|PRE|FORM|T(ABLE|BODY|HEAD|FOOT|H|R|D)|LI|OL|UL|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|MENU|ISINDEX|SAMP)$/,d=o("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),l=o("src,href,style,coords,shape"),r={"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"},u=/[<>&\"]/g,v=
-/^([a-z0-9],?)+$/i,f=/<(\w+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)(\s*\/?)>/g,e=/(\w+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;m.create("tinymce.dom.DOMUtils",{doc:null,root:null,files:null,pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",
-type:"type"},DOMUtils:function(c,i){var a=this;a.doc=c;a.win=window;a.files={};a.cssFlicker=false;a.counter=0;a.boxModel=!m.isIE||c.compatMode=="CSS1Compat";a.stdMode=c.documentMode===8;a.settings=i=m.extend({keep_values:false,hex_colors:1,process_html:1},i);if(m.isIE6)try{c.execCommand("BackgroundImageCache",false,true)}catch(h){a.cssFlicker=true}if(i.valid_styles){a._styles={};q(i.valid_styles,function(n,p){a._styles[p]=m.explode(n)})}m.addUnload(a.destroy,a)},getRoot:function(){var c=this.settings;
+(function(l){function o(c){var i={},a;c=c.split(",");for(a=c.length;a>=0;a--)i[c[a]]=1;return i}var q=l.each,k=l.is,j=l.isWebKit,b=l.isIE,g=/^(H[1-6R]|P|DIV|ADDRESS|PRE|FORM|T(ABLE|BODY|HEAD|FOOT|H|R|D)|LI|OL|UL|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|MENU|ISINDEX|SAMP)$/,d=o("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected"),n=o("src,href,style,coords,shape"),r={"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"},u=/[<>&\"]/g,v=
+/^([a-z0-9],?)+$/i,f=/<(\w+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)(\s*\/?)>/g,e=/(\w+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;l.create("tinymce.dom.DOMUtils",{doc:null,root:null,files:null,pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",
+type:"type"},DOMUtils:function(c,i){var a=this;a.doc=c;a.win=window;a.files={};a.cssFlicker=false;a.counter=0;a.boxModel=!l.isIE||c.compatMode=="CSS1Compat";a.stdMode=c.documentMode===8;a.settings=i=l.extend({keep_values:false,hex_colors:1,process_html:1},i);if(l.isIE6)try{c.execCommand("BackgroundImageCache",false,true)}catch(h){a.cssFlicker=true}if(i.valid_styles){a._styles={};q(i.valid_styles,function(m,p){a._styles[p]=l.explode(m)})}l.addUnload(a.destroy,a)},getRoot:function(){var c=this.settings;
 return c&&this.get(c.root_element)||this.doc.body},getViewPort:function(c){var i;c=!c?this.win:c;i=c.document;i=this.boxModel?i.documentElement:i.body;return{x:c.pageXOffset||i.scrollLeft,y:c.pageYOffset||i.scrollTop,w:c.innerWidth||i.clientWidth,h:c.innerHeight||i.clientHeight}},getRect:function(c){var i;c=this.get(c);i=this.getPos(c);c=this.getSize(c);return{x:i.x,y:i.y,w:c.w,h:c.h}},getSize:function(c){var i,a;c=this.get(c);i=this.getStyle(c,"width");a=this.getStyle(c,"height");if(i.indexOf("px")===
--1)i=0;if(a.indexOf("px")===-1)a=0;return{w:parseInt(i)||c.offsetWidth||c.clientWidth,h:parseInt(a)||c.offsetHeight||c.clientHeight}},getParent:function(c,i,a){return this.getParents(c,i,a,false)},getParents:function(c,i,a,h){var n=this,p,t=n.settings,s=[];c=n.get(c);h=h===undefined;if(t.strict_root)a=a||n.getRoot();if(k(i,"string")){p=i;i=i==="*"?function(x){return x.nodeType==1}:function(x){return n.is(x,p)}}for(;c;){if(c==a||!c.nodeType||c.nodeType===9)break;if(!i||i(c))if(h)s.push(c);else return c;
-c=c.parentNode}return h?s:null},get:function(c){var i;if(c&&this.doc&&typeof c=="string"){i=c;if((c=this.doc.getElementById(c))&&c.id!==i)return this.doc.getElementsByName(i)[1]}return c},getNext:function(c,i){return this._findSib(c,i,"nextSibling")},getPrev:function(c,i){return this._findSib(c,i,"previousSibling")},select:function(c,i){return m.dom.Sizzle(c,this.get(i)||this.get(this.settings.root_element)||this.doc,[])},is:function(c,i){var a;if(c.length===undefined){if(i==="*")return c.nodeType==
-1;if(v.test(i)){i=i.toLowerCase().split(/,/);c=c.nodeName.toLowerCase();for(a=i.length-1;a>=0;a--)if(i[a]==c)return true;return false}}return m.dom.Sizzle.matches(i,c.nodeType?[c]:c).length>0},add:function(c,i,a,h,n){var p=this;return this.run(c,function(t){var s;s=k(i,"string")?p.doc.createElement(i):i;p.setAttribs(s,a);if(h)h.nodeType?s.appendChild(h):p.setHTML(s,h);return!n?t.appendChild(s):s})},create:function(c,i,a){return this.add(this.doc.createElement(c),c,i,a,1)},createHTML:function(c,i,
-a){var h="",n;h+="<"+c;for(n in i)if(i.hasOwnProperty(n))h+=" "+n+'="'+this.encode(i[n])+'"';if(m.is(a))return h+">"+a+"</"+c+">";return h+" />"},remove:function(c,i){return this.run(c,function(a){var h,n;h=a.parentNode;if(!h)return null;if(i)for(;n=a.firstChild;)!m.isIE||n.nodeType!==3||n.nodeValue?h.insertBefore(n,a):a.removeChild(n);return h.removeChild(a)})},setStyle:function(c,i,a){var h=this;return h.run(c,function(n){var p;p=n.style;i=i.replace(/-(\D)/g,function(t,s){return s.toUpperCase()});
-if(h.pixelStyles.test(i)&&(m.is(a,"number")||/^[\-0-9\.]+$/.test(a)))a+="px";switch(i){case "opacity":if(b){p.filter=a===""?"":"alpha(opacity="+a*100+")";if(!c.currentStyle||!c.currentStyle.hasLayout)p.display="inline-block"}p[i]=p["-moz-opacity"]=p["-khtml-opacity"]=a||"";break;case "float":b?p.styleFloat=a:p.cssFloat=a;break;default:p[i]=a||""}h.settings.update_styles&&h.setAttrib(n,"_mce_style")})},getStyle:function(c,i,a){c=this.get(c);if(!c)return false;if(this.doc.defaultView&&a){i=i.replace(/[A-Z]/g,
-function(n){return"-"+n});try{return this.doc.defaultView.getComputedStyle(c,null).getPropertyValue(i)}catch(h){return null}}i=i.replace(/-(\D)/g,function(n,p){return p.toUpperCase()});if(i=="float")i=b?"styleFloat":"cssFloat";if(c.currentStyle&&a)return c.currentStyle[i];return c.style[i]},setStyles:function(c,i){var a=this,h=a.settings,n;n=h.update_styles;h.update_styles=0;q(i,function(p,t){a.setStyle(c,t,p)});h.update_styles=n;h.update_styles&&a.setAttrib(c,h.cssText)},setAttrib:function(c,i,a){var h=
-this;if(c&&i){if(h.settings.strict)i=i.toLowerCase();return this.run(c,function(n){var p=h.settings;switch(i){case "style":if(!k(a,"string")){q(a,function(t,s){h.setStyle(n,s,t)});return}if(p.keep_values)a&&!h._isRes(a)?n.setAttribute("_mce_style",a,2):n.removeAttribute("_mce_style",2);n.style.cssText=a;break;case "class":n.className=a||"";break;case "src":case "href":if(p.keep_values){if(p.url_converter)a=p.url_converter.call(p.url_converter_scope||h,a,i,n);h.setAttrib(n,"_mce_"+i,a,2)}break;case "shape":n.setAttribute("_mce_style",
-a)}k(a)&&a!==null&&a.length!==0?n.setAttribute(i,""+a,2):n.removeAttribute(i,2)})}},setAttribs:function(c,i){var a=this;return this.run(c,function(h){q(i,function(n,p){a.setAttrib(h,p,n)})})},getAttrib:function(c,i,a){var h;c=this.get(c);if(!c||c.nodeType!==1)return false;k(a)||(a="");if(/^(src|href|style|coords|shape)$/.test(i))if(h=c.getAttribute("_mce_"+i))return h;if(b&&this.props[i])h=(h=c[this.props[i]])&&h.nodeValue?h.nodeValue:h;h||(h=c.getAttribute(i,2));if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(i)){if(c[this.props[i]]===
+-1)i=0;if(a.indexOf("px")===-1)a=0;return{w:parseInt(i)||c.offsetWidth||c.clientWidth,h:parseInt(a)||c.offsetHeight||c.clientHeight}},getParent:function(c,i,a){return this.getParents(c,i,a,false)},getParents:function(c,i,a,h){var m=this,p,t=m.settings,s=[];c=m.get(c);h=h===undefined;if(t.strict_root)a=a||m.getRoot();if(k(i,"string")){p=i;i=i==="*"?function(x){return x.nodeType==1}:function(x){return m.is(x,p)}}for(;c;){if(c==a||!c.nodeType||c.nodeType===9)break;if(!i||i(c))if(h)s.push(c);else return c;
+c=c.parentNode}return h?s:null},get:function(c){var i;if(c&&this.doc&&typeof c=="string"){i=c;if((c=this.doc.getElementById(c))&&c.id!==i)return this.doc.getElementsByName(i)[1]}return c},getNext:function(c,i){return this._findSib(c,i,"nextSibling")},getPrev:function(c,i){return this._findSib(c,i,"previousSibling")},select:function(c,i){return l.dom.Sizzle(c,this.get(i)||this.get(this.settings.root_element)||this.doc,[])},is:function(c,i){var a;if(c.length===undefined){if(i==="*")return c.nodeType==
+1;if(v.test(i)){i=i.toLowerCase().split(/,/);c=c.nodeName.toLowerCase();for(a=i.length-1;a>=0;a--)if(i[a]==c)return true;return false}}return l.dom.Sizzle.matches(i,c.nodeType?[c]:c).length>0},add:function(c,i,a,h,m){var p=this;return this.run(c,function(t){var s;s=k(i,"string")?p.doc.createElement(i):i;p.setAttribs(s,a);if(h)h.nodeType?s.appendChild(h):p.setHTML(s,h);return!m?t.appendChild(s):s})},create:function(c,i,a){return this.add(this.doc.createElement(c),c,i,a,1)},createHTML:function(c,i,
+a){var h="",m;h+="<"+c;for(m in i)if(i.hasOwnProperty(m))h+=" "+m+'="'+this.encode(i[m])+'"';if(l.is(a))return h+">"+a+"</"+c+">";return h+" />"},remove:function(c,i){return this.run(c,function(a){var h,m;h=a.parentNode;if(!h)return null;if(i)for(;m=a.firstChild;)!l.isIE||m.nodeType!==3||m.nodeValue?h.insertBefore(m,a):a.removeChild(m);return h.removeChild(a)})},setStyle:function(c,i,a){var h=this;return h.run(c,function(m){var p;p=m.style;i=i.replace(/-(\D)/g,function(t,s){return s.toUpperCase()});
+if(h.pixelStyles.test(i)&&(l.is(a,"number")||/^[\-0-9\.]+$/.test(a)))a+="px";switch(i){case "opacity":if(b){p.filter=a===""?"":"alpha(opacity="+a*100+")";if(!c.currentStyle||!c.currentStyle.hasLayout)p.display="inline-block"}p[i]=p["-moz-opacity"]=p["-khtml-opacity"]=a||"";break;case "float":b?p.styleFloat=a:p.cssFloat=a;break;default:p[i]=a||""}h.settings.update_styles&&h.setAttrib(m,"_mce_style")})},getStyle:function(c,i,a){c=this.get(c);if(!c)return false;if(this.doc.defaultView&&a){i=i.replace(/[A-Z]/g,
+function(m){return"-"+m});try{return this.doc.defaultView.getComputedStyle(c,null).getPropertyValue(i)}catch(h){return null}}i=i.replace(/-(\D)/g,function(m,p){return p.toUpperCase()});if(i=="float")i=b?"styleFloat":"cssFloat";if(c.currentStyle&&a)return c.currentStyle[i];return c.style[i]},setStyles:function(c,i){var a=this,h=a.settings,m;m=h.update_styles;h.update_styles=0;q(i,function(p,t){a.setStyle(c,t,p)});h.update_styles=m;h.update_styles&&a.setAttrib(c,h.cssText)},setAttrib:function(c,i,a){var h=
+this;if(c&&i){if(h.settings.strict)i=i.toLowerCase();return this.run(c,function(m){var p=h.settings;switch(i){case "style":if(!k(a,"string")){q(a,function(t,s){h.setStyle(m,s,t)});return}if(p.keep_values)a&&!h._isRes(a)?m.setAttribute("_mce_style",a,2):m.removeAttribute("_mce_style",2);m.style.cssText=a;break;case "class":m.className=a||"";break;case "src":case "href":if(p.keep_values){if(p.url_converter)a=p.url_converter.call(p.url_converter_scope||h,a,i,m);h.setAttrib(m,"_mce_"+i,a,2)}break;case "shape":m.setAttribute("_mce_style",
+a)}k(a)&&a!==null&&a.length!==0?m.setAttribute(i,""+a,2):m.removeAttribute(i,2)})}},setAttribs:function(c,i){var a=this;return this.run(c,function(h){q(i,function(m,p){a.setAttrib(h,p,m)})})},getAttrib:function(c,i,a){var h;c=this.get(c);if(!c||c.nodeType!==1)return false;k(a)||(a="");if(/^(src|href|style|coords|shape)$/.test(i))if(h=c.getAttribute("_mce_"+i))return h;if(b&&this.props[i])h=(h=c[this.props[i]])&&h.nodeValue?h.nodeValue:h;h||(h=c.getAttribute(i,2));if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(i)){if(c[this.props[i]]===
 true&&h==="")return i;return h?i:""}if(c.nodeName==="FORM"&&c.getAttributeNode(i))return c.getAttributeNode(i).nodeValue;if(i==="style")if(h=h||c.style.cssText){h=this.serializeStyle(this.parseStyle(h),c.nodeName);this.settings.keep_values&&!this._isRes(h)&&c.setAttribute("_mce_style",h)}if(j&&i==="class"&&h)h=h.replace(/(apple|webkit)\-[a-z\-]+/gi,"");if(b)switch(i){case "rowspan":case "colspan":if(h===1)h="";break;case "size":if(h==="+0"||h===20||h===0)h="";break;case "width":case "height":case "vspace":case "checked":case "disabled":case "readonly":if(h===
-0)h="";break;case "hspace":if(h===-1)h="";break;case "maxlength":case "tabindex":if(h===32768||h===2147483647||h==="32768")h="";break;case "multiple":case "compact":case "noshade":case "nowrap":if(h===65535)return i;return a;case "shape":h=h.toLowerCase();break;default:if(i.indexOf("on")===0&&h)h=(""+h).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1")}return h!==undefined&&h!==null&&h!==""?""+h:a},getPos:function(c,i){var a=0,h=0,n=this.doc;c=this.get(c);i=i||n.body;if(c){if(b&&!this.stdMode){c=
-c.getBoundingClientRect();h=this.boxModel?n.documentElement:n.body;a=this.getStyle(this.select("html")[0],"borderWidth");a=(a=="medium"||this.boxModel&&!this.isIE6)&&2||a;c.top+=this.win.self!=this.win.top?2:0;return{x:c.left+h.scrollLeft-a,y:c.top+h.scrollTop-a}}for(n=c;n&&n!=i&&n.nodeType;){a+=n.offsetLeft||0;h+=n.offsetTop||0;n=n.offsetParent}for(n=c.parentNode;n&&n!=i&&n.nodeType;){a-=n.scrollLeft||0;h-=n.scrollTop||0;n=n.parentNode}}return{x:a,y:h}},parseStyle:function(c){function i(p,t,s){var x,
-y;if(x=n[p+"-top"+t]){y=n[p+"-right"+t];if(x==y){x=n[p+"-bottom"+t];if(y==x){y=n[p+"-left"+t];if(x==y){n[s]=y;delete n[p+"-top"+t];delete n[p+"-right"+t];delete n[p+"-bottom"+t];delete n[p+"-left"+t]}}}}}var a=this,h=a.settings,n={};if(!c)return n;c=c.replace(/&(#?[a-z0-9]+);/g,"&$1_MCE_SEMI_");q(c.split(";"),function(p){var t,s=[];if(p){p=p.replace(/_MCE_SEMI_/g,";");p=p.replace(/url\([^\)]+\)/g,function(x){s.push(x);return"url("+s.length+")"});p=p.split(":");t=m.trim(p[1]);t=t.replace(/url\(([^\)]+)\)/g,
-function(x,y){return s[parseInt(y)-1]});t=t.replace(/rgb\([^\)]+\)/g,function(x){return a.toHex(x)});if(h.url_converter)t=t.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(x,y){return"url("+h.url_converter.call(h.url_converter_scope||a,a.decode(y),"style",null)+")"});n[m.trim(p[0]).toLowerCase()]=t}});i("border","","border");i("border","-width","border-width");i("border","-color","border-color");i("border","-style","border-style");i("padding","","padding");i("margin","","margin");(function(p,
-t,s,x){var y;if(y=n[t])if(y=n[s])if(y=n[x]){n[p]=n[t]+" "+n[s]+" "+n[x];delete n[t];delete n[s];delete n[x]}})("border","border-width","border-style","border-color");if(b)if(n.border=="medium none")n.border="";return n},serializeStyle:function(c,i){function a(n,p){if(p&&n)if(p.indexOf("-")!==0){switch(p){case "font-weight":if(n==700)n="bold";break;case "color":case "background-color":n=n.toLowerCase()}h+=(h?" ":"")+p+": "+n+";"}}var h="";if(i&&this._styles){q(this._styles["*"],function(n){a(c[n],
-n)});q(this._styles[i.toLowerCase()],function(n){a(c[n],n)})}else q(c,a);return h},loadCSS:function(c){var i=this,a=i.doc,h;c||(c="");h=i.select("head")[0];q(c.split(","),function(n){var p;if(!i.files[n]){i.files[n]=true;p=i.create("link",{rel:"stylesheet",href:m._addVer(n)});if(b&&a.documentMode)p.onload=function(){a.recalc();p.onload=null};h.appendChild(p)}})},addClass:function(c,i){return this.run(c,function(a){var h;if(!i)return 0;if(this.hasClass(a,i))return a.className;h=this.removeClass(a,
-i);return a.className=(h!=""?h+" ":"")+i})},removeClass:function(c,i){var a=this,h;return a.run(c,function(n){var p;if(a.hasClass(n,i)){h||(h=RegExp("(^|\\s+)"+i+"(\\s+|$)","g"));p=n.className.replace(h," ");p=m.trim(p!=" "?p:"");n.className=p;if(!p){n.removeAttribute("class");n.removeAttribute("className")}return p}return n.className})},hasClass:function(c,i){c=this.get(c);if(!c||!i)return false;return(" "+c.className+" ").indexOf(" "+i+" ")!==-1},show:function(c){return this.setStyle(c,"display",
-"block")},hide:function(c){return this.setStyle(c,"display","none")},isHidden:function(c){c=this.get(c);return!c||c.style.display=="none"||this.getStyle(c,"display")=="none"},uniqueId:function(c){return(!c?"mce_":c)+this.counter++},setHTML:function(c,i){var a=this;return this.run(c,function(h){var n,p,t,s,x;i=a.processHTML(i);if(b){var y=function(){for(;h.firstChild;)h.firstChild.removeNode();try{h.innerHTML="<br />"+i;h.removeChild(h.firstChild)}catch(D){n=a.create("div");n.innerHTML="<br />"+i;
-q(n.childNodes,function(B,M){M&&h.appendChild(B)})}};if(a.settings.fix_ie_paragraphs)i=i.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi,'<p$1 _mce_keep="true">&nbsp;</p>');y();if(a.settings.fix_ie_paragraphs){t=h.getElementsByTagName("p");p=t.length-1;for(n=0;p>=0;p--){s=t[p];if(!s.hasChildNodes()){if(!s._mce_keep){n=1;break}s.removeAttribute("_mce_keep")}}}if(n){i=i.replace(/<p ([^>]+)>|<p>/ig,'<div $1 _mce_tmp="1">');i=i.replace(/<\/p>/gi,"</div>");y();if(a.settings.fix_ie_paragraphs){t=h.getElementsByTagName("DIV");
-for(p=t.length-1;p>=0;p--){s=t[p];if(s._mce_tmp){x=a.doc.createElement("p");s.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(D,B){var M;if(B!=="_mce_tmp"){M=s.getAttribute(B);if(!M&&B==="class")M=s.className;x.setAttribute(B,M)}});for(n=0;n<s.childNodes.length;n++)x.appendChild(s.childNodes[n].cloneNode(true));s.swapNode(x)}}}}}else h.innerHTML=i;return i})},processHTML:function(c){var i=this,a=i.settings,h=[];if(!a.process_html)return c;if(b){c=c.replace(/&apos;/g,"&#39;");c=c.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\"\']?(false|0)[\"\']?/gi,
-"")}c=c.replace(/<a( )([^>]+)\/>|<a\/>/gi,"<a$1$2></a>");if(a.keep_values){if(/<script|noscript|style/i.test(c)){var n=function(p){p=p.replace(/(<!--\[CDATA\[|\]\]--\>)/g,"\n");p=p.replace(/^[\r\n]*|[\r\n]*$/g,"");p=p.replace(/^\s*(\/\/\s*<!--|\/\/\s*<!\[CDATA\[|<!--|<!\[CDATA\[)[\r\n]*/g,"");return p=p.replace(/\s*(\/\/\s*\]\]>|\/\/\s*--\>|\]\]>|--\>|\]\]--\>)\s*$/g,"")};c=c.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/gi,function(p,t,s){t||(t=' type="text/javascript"');t=t.replace(/src=\"([^\"]+)\"?/i,
-function(x,y){if(a.url_converter)y=i.encode(a.url_converter.call(a.url_converter_scope||i,i.decode(y),"src","script"));return'_mce_src="'+y+'"'});if(m.trim(s)){h.push(n(s));s="<!--\nMCE_SCRIPT:"+(h.length-1)+"\n// --\>"}return"<mce:script"+t+">"+s+"</mce:script>"});c=c.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/gi,function(p,t,s){if(s){h.push(n(s));s="<!--\nMCE_SCRIPT:"+(h.length-1)+"\n--\>"}return"<mce:style"+t+">"+s+"</mce:style><style "+t+' _mce_bogus="1">'+s+"</style>"});c=c.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g,
-function(p,t,s){return"<mce:noscript"+t+"><!--"+i.encode(s).replace(/--/g,"&#45;&#45;")+"--\></mce:noscript>"})}c=c.replace(/<!\[CDATA\[([\s\S]+)\]\]>/g,"<!--[CDATA[$1]]--\>");c=function(p){return p.replace(f,function(t,s,x,y){return"<"+s+x.replace(e,function(D,B,M,X,C){B=B.toLowerCase();M=M||X||C||"";if(d[B]){if(M==="false"||M==="0")return;return B+'="'+B+'"'}if(l[B]&&x.indexOf("_mce_"+B)==-1){D=i.decode(M);if(a.url_converter&&(B=="src"||B=="href"))D=a.url_converter.call(a.url_converter_scope||i,
-D,B,s);if(B=="style")D=i.serializeStyle(i.parseStyle(D),B);return B+'="'+M+'" _mce_'+B+'="'+i.encode(D)+'"'}return D})+y+">"})}(c);c=c.replace(/MCE_SCRIPT:([0-9]+)/g,function(p,t){return h[t]})}return c},getOuterHTML:function(c){var i;c=this.get(c);if(!c)return null;if(c.outerHTML!==undefined)return c.outerHTML;i=(c.ownerDocument||this.doc).createElement("body");i.appendChild(c.cloneNode(true));return i.innerHTML},setOuterHTML:function(c,i,a){function h(p,t,s){s=s.createElement("body");s.innerHTML=
-t;for(t=s.lastChild;t;){n.insertAfter(t.cloneNode(true),p);t=t.previousSibling}n.remove(p)}var n=this;return this.run(c,function(p){p=n.get(p);if(p.nodeType==1){a=a||p.ownerDocument||n.doc;if(b)try{if(b&&p.nodeType==1)p.outerHTML=i;else h(p,i,a)}catch(t){h(p,i,a)}else h(p,i,a)}})},decode:function(c){var i,a;if(/&[\w#]+;/.test(c)){i=this.doc.createElement("div");i.innerHTML=c;i=i.firstChild;a="";if(i){do a+=i.nodeValue;while(i=i.nextSibling)}return a||c}return c},encode:function(c){return(""+c).replace(u,
-function(i){return r[i]})},insertAfter:function(c,i){i=this.get(i);return this.run(c,function(a){var h,n;h=i.parentNode;(n=i.nextSibling)?h.insertBefore(a,n):h.appendChild(a);return a})},isBlock:function(c){if(c.nodeType&&c.nodeType!==1)return false;c=c.nodeName||c;return g.test(c)},replace:function(c,i,a){if(k(i,"array"))c=c.cloneNode(true);return this.run(i,function(h){a&&q(m.grep(h.childNodes),function(n){c.appendChild(n)});return h.parentNode.replaceChild(c,h)})},rename:function(c,i){var a=this,
-h;if(c.nodeName!=i.toUpperCase()){h=a.create(i);q(a.getAttribs(c),function(n){a.setAttrib(h,n.nodeName,a.getAttrib(c,n.nodeName))});a.replace(h,c,1)}return h||c},findCommonAncestor:function(c,i){for(var a=c,h;a;){for(h=i;h&&a!=h;)h=h.parentNode;if(a==h)break;a=a.parentNode}if(!a&&c.ownerDocument)return c.ownerDocument.documentElement;return a},toHex:function(c){function i(h){h=parseInt(h).toString(16);return h.length>1?h:"0"+h}var a=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(c);
-if(a)return c="#"+i(a[1])+i(a[2])+i(a[3]);return c},getClasses:function(){function c(t){q(t.imports,function(s){c(s)});q(t.cssRules||t.rules,function(s){switch(s.type||1){case 1:s.selectorText&&q(s.selectorText.split(","),function(x){x=x.replace(/^\s*|\s*$|^\s\./g,"");if(!(/\.mce/.test(x)||!/\.[\w\-]+$/.test(x))){n=x;x=x.replace(/.*\.([a-z0-9_\-]+).*/i,"$1");if(!(h&&!(x=h(x,n))))if(!a[x]){i.push({"class":x});a[x]=1}}});break;case 3:c(s.styleSheet)}})}var i=[],a={},h=this.settings.class_filter,n;if(this.classes)return this.classes;
-try{q(this.doc.styleSheets,c)}catch(p){}if(i.length>0)this.classes=i;return i},run:function(c,i,a){var h=this,n;if(h.doc&&typeof c==="string")c=h.get(c);if(!c)return false;a=a||this;if(!c.nodeType&&(c.length||c.length===0)){n=[];q(c,function(p,t){if(p){if(typeof p=="string")p=h.doc.getElementById(p);n.push(i.call(a,p,t))}});return n}return i.call(a,c)},getAttribs:function(c){var i;c=this.get(c);if(!c)return[];if(b){i=[];if(c.nodeName=="OBJECT")return c.attributes;c.nodeName==="OPTION"&&this.getAttrib(c,
-"selected")&&i.push({specified:1,nodeName:"selected"});c.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(a){i.push({specified:1,nodeName:a})});return i}return c.attributes},destroy:function(c){this.events&&this.events.destroy();this.win=this.doc=this.root=this.events=null;c||m.removeUnload(this.destroy)},createRng:function(){var c=this.doc;return c.createRange?c.createRange():new m.dom.Range(this)},nodeIndex:function(c,i){var a=
-0,h,n;if(c){h=c.nodeType;for(c=c.previousSibling;c;c=c.previousSibling){n=c.nodeType;if(i&&n==3)if(n==h||!c.nodeValue.length)continue;a++;h=n}}return a},split:function(c,i,a){function h(x){var y,D=x.childNodes;if(!(x.nodeType==1&&x.getAttribute("_mce_type")=="bookmark")){for(y=D.length-1;y>=0;y--)h(D[y]);if(x.nodeType!=9){if(x.nodeType==3&&x.nodeValue.length>0)return;if(x.nodeType==1){D=x.childNodes;D.length==1&&D[0]&&D[0].nodeType==1&&D[0].getAttribute("_mce_type")=="bookmark"&&x.parentNode.insertBefore(D[0],
-x);if(D.length||/^(br|hr|input|img)$/i.test(x.nodeName))return}n.remove(x)}return x}}var n=this,p=n.createRng(),t,s;if(c&&i){p.setStart(c.parentNode,n.nodeIndex(c));p.setEnd(i.parentNode,n.nodeIndex(i));t=p.extractContents();p=n.createRng();p.setStart(i.parentNode,n.nodeIndex(i)+1);p.setEnd(c.parentNode,n.nodeIndex(c)+1);p=p.extractContents();s=c.parentNode;s.insertBefore(h(t),c);a?s.replaceChild(a,i):s.insertBefore(i,c);s.insertBefore(h(p),c);n.remove(c);return a||i}},bind:function(c,i,a,h){if(!this.events)this.events=
-new m.dom.EventUtils;return this.events.add(c,i,a,h||this)},unbind:function(c,i,a){if(!this.events)this.events=new m.dom.EventUtils;return this.events.remove(c,i,a)},_findSib:function(c,i,a){var h=this,n=i;if(c){if(k(n,"string"))n=function(p){return h.is(p,i)};for(c=c[a];c;c=c[a])if(n(c))return c}return null},_isRes:function(c){return/^(top|left|bottom|right|width|height)/i.test(c)||/;\s*(top|left|bottom|right|width|height)/i.test(c)}});m.DOM=new m.dom.DOMUtils(document,{process_html:0})})(tinymce);
-(function(m){function o(q){function k(C,E){r(t,C,E)}function j(C,E){r(s,C,E)}function b(C){k(C.parentNode,X(C))}function g(C){j(C.parentNode,X(C)+1)}function d(C,E){var A;if(C.nodeType==3)return C;if(E<0)return C;for(A=C.firstChild;A&&E>0;){--E;A=A.nextSibling}if(A)return A;return C}function l(C,E,A,K){var H,W;if(C==A){if(E==K)return 0;if(E<K)return-1;return 1}for(H=A;H&&H.parentNode!=C;)H=H.parentNode;if(H){W=0;for(A=C.firstChild;A!=H&&W<E;){W++;A=A.nextSibling}if(E<=W)return-1;return 1}for(H=C;H&&
-H.parentNode!=A;)H=H.parentNode;if(H){W=0;for(A=A.firstChild;A!=H&&W<K;){W++;A=A.nextSibling}if(W<K)return-1;return 1}E=q.findCommonAncestor(C,A);for(C=C;C&&C.parentNode!=E;)C=C.parentNode;C||(C=E);for(K=A;K&&K.parentNode!=E;)K=K.parentNode;K||(K=E);if(C==K)return 0;for(A=E.firstChild;A;){if(A==C)return-1;if(A==K)return 1;A=A.nextSibling}}function r(C,E,A){if(C){a[y]=E;a[x]=A}else{a[D]=E;a[B]=A}for(E=a[D];E.parentNode;)E=E.parentNode;for(A=a[y];A.parentNode;)A=A.parentNode;if(A==E)l(a[y],a[x],a[D],
-a[B])>0&&a.collapse(C);else a.collapse(C);a.collapsed=a[y]==a[D]&&a[x]==a[B];a.commonAncestorContainer=q.findCommonAncestor(a[y],a[D])}function u(C){var E,A=0,K=0,H;if(a[y]==a[D])return v(C);E=a[D];for(H=E.parentNode;H;E=H,H=H.parentNode){if(H==a[y]){var W=E;C=C;E=void 0;H=void 0;A=void 0;K=void 0;H=void 0;if(C!=p)E=h.createDocumentFragment();H=f(W,C);E&&E.appendChild(H);A=X(W)-a[x];if(!(A<=0))for(H=W.previousSibling;A>0;){K=H.previousSibling;H=i(H,C);E&&E.insertBefore(H,E.firstChild);--A;H=K}if(C!=
-n){a.setEndBefore(W);a.collapse(s)}C=E;return C}++A}E=a[y];for(H=E.parentNode;H;E=H,H=H.parentNode){if(H==a[D]){W=E;C=C;E=void 0;A=void 0;H=void 0;A=void 0;K=void 0;H=void 0;if(C!=p)E=h.createDocumentFragment();H=e(W,C);E&&E.appendChild(H);A=X(W);++A;A=a[B]-A;for(H=W.nextSibling;A>0;){K=H.nextSibling;H=i(H,C);E&&E.appendChild(H);--A;H=K}if(C!=n){a.setStartAfter(W);a.collapse(t)}return E}++K}K=K-A;for(E=a[y];K>0;){E=E.parentNode;K--}for(A=a[D];K<0;){A=A.parentNode;K++}K=E.parentNode;for(H=A.parentNode;K!=
-H;K=K.parentNode,H=H.parentNode){E=K;A=H}E=E;A=A;var V;if(C!=p)W=h.createDocumentFragment();V=e(E,C);W&&W.appendChild(V);K=X(E);H=X(A);++K;K=H-K;for(V=E.nextSibling;K>0;){H=V.nextSibling;V=i(V,C);W&&W.appendChild(V);V=H;--K}V=f(A,C);W&&W.appendChild(V);if(C!=n){a.setStartAfter(E);a.collapse(t)}return W}function v(C){var E,A,K,H;if(C!=p)E=h.createDocumentFragment();if(a[x]==a[B])return E;if(a[y].nodeType==3){A=a[y].nodeValue;A=A.substring(a[x],a[B]);if(C!=n){a[y].deleteData(a[x],a[B]-a[x]);a.collapse(t)}if(C==
-p)return;E.appendChild(h.createTextNode(A));return E}K=d(a[y],a[x]);for(A=a[B]-a[x];A>0;){H=K.nextSibling;K=i(K,C);E&&E.appendChild(K);--A;K=H}C!=n&&a.collapse(t);return E}function f(C,E){var A=d(a[D],a[B]-1),K,H,W,V=A!=a[D];if(A==C)return c(A,V,s,E);K=A.parentNode;for(H=c(K,s,s,E);K;){for(;A;){W=A.previousSibling;A=c(A,V,s,E);E!=p&&H.insertBefore(A,H.firstChild);V=t;A=W}if(K==C)return H;A=K.previousSibling;K=K.parentNode;W=c(K,s,s,E);E!=p&&W.appendChild(H);H=W}}function e(C,E){var A=d(a[y],a[x]),
-K=A!=a[y],H,W,V;if(A==C)return c(A,K,t,E);H=A.parentNode;for(W=c(H,s,t,E);H;){for(;A;){V=A.nextSibling;A=c(A,K,t,E);E!=p&&W.appendChild(A);K=t;A=V}if(H==C)return W;A=H.nextSibling;H=H.parentNode;V=c(H,s,t,E);E!=p&&V.appendChild(W);W=V}}function c(C,E,A,K){var H;if(E)return i(C,K);if(C.nodeType==3){E=C.nodeValue;if(A){H=a[x];A=E.substring(H);E=E.substring(0,H)}else{H=a[B];A=E.substring(0,H);E=E.substring(H)}if(K!=n)C.nodeValue=E;if(K==p)return;C=C.cloneNode(s);C.nodeValue=A;return C}if(K!=p)return C.cloneNode(s)}
-function i(C,E){if(E!=p)return E==n?C.cloneNode(t):C;C.parentNode.removeChild(C)}var a=this,h=q.doc,n=1,p=2,t=true,s=false,x="startOffset",y="startContainer",D="endContainer",B="endOffset",M=tinymce.extend,X=q.nodeIndex;M(a,{startContainer:h,startOffset:0,endContainer:h,endOffset:0,collapsed:t,commonAncestorContainer:h,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:k,setEnd:j,setStartBefore:b,setStartAfter:function(C){k(C.parentNode,X(C)+1)},setEndBefore:function(C){j(C.parentNode,
-X(C))},setEndAfter:g,collapse:function(C){if(C){a[D]=a[y];a[B]=a[x]}else{a[y]=a[D];a[x]=a[B]}a.collapsed=t},selectNode:function(C){b(C);g(C)},selectNodeContents:function(C){k(C,0);j(C,C.nodeType===1?C.childNodes.length:C.nodeValue.length)},compareBoundaryPoints:function(C){var E=a[y],A=a[x],K=a[D],H=a[B];if(C===0)return l(E,A,E,A);if(C===1)return l(E,A,K,H);if(C===2)return l(K,H,K,H);if(C===3)return l(K,H,E,A)},deleteContents:function(){u(p)},extractContents:function(){return u(0)},cloneContents:function(){return u(n)},
-insertNode:function(C){var E=this[y],A=this[x],K;if((E.nodeType===3||E.nodeType===4)&&E.nodeValue)if(A)if(A>=E.nodeValue.length)q.insertAfter(C,E);else{A=E.splitText(A);E.parentNode.insertBefore(C,A)}else E.parentNode.insertBefore(C,E);else{if(E.childNodes.length>0)K=E.childNodes[A];K?E.insertBefore(C,K):E.appendChild(C)}},surroundContents:function(C){var E=a.extractContents();a.insertNode(C);C.appendChild(E);a.selectNode(C)},cloneRange:function(){return M(new o(q),{startContainer:a[y],startOffset:a[x],
-endContainer:a[D],endOffset:a[B],collapsed:a.collapsed,commonAncestorContainer:a.commonAncestorContainer})}})}m.Range=o})(tinymce.dom);
-(function(){tinymce.dom.TridentSelection=function(m){function o(){function b(r){var u,v,f,e=0,c,i,a,h;f=g.duplicate();f.collapse(r);u=j.create("a");a=f.parentElement();if(a.hasChildNodes()){a.appendChild(u);f.moveToElementText(u);h=g.compareEndPoints(r?"StartToStart":"EndToEnd",f);if(h>0){d[r?"setStartAfter":"setEndAfter"](a);j.remove(u)}else{v=tinymce.grep(a.childNodes);for(c=v.length-1;e<=c;){i=Math.floor((e+c)/2);a.insertBefore(u,v[i]);f.moveToElementText(u);h=g.compareEndPoints(r?"StartToStart":
-"EndToEnd",f);if(h>0)e=i+1;else if(h<0)c=i-1;else{found=true;break}}v=h>0||i==0?u.nextSibling:u.previousSibling;if(v.nodeType==1){j.remove(u);f=j.nodeIndex(v);v=v.parentNode;if(!r||i>0)f++}else{if(h>0||i==0){f.setEndPoint(r?"StartToStart":"EndToEnd",g);f=f.text.length}else{f.setEndPoint(r?"StartToStart":"EndToEnd",g);f=v.nodeValue.length-f.text.length}j.remove(u)}d[r?"setStart":"setEnd"](v,f)}}else d[r?"setStart":"setEnd"](a,0)}var g=m.getRng(),d=j.createRng(),l;l=g.item?g.item(0):g.parentElement();
-if(l.ownerDocument!=j.doc)return d;if(g.item||!l.hasChildNodes()){d.setStart(l.parentNode,j.nodeIndex(l));d.setEnd(d.startContainer,d.startOffset+1);return d}l=m.isCollapsed();b(true);l||b();return d}var q,k,j=m.dom;this.addRange=function(b){var g,d,l=m.dom.doc;d=l.body;var r,u,v,f,e,c;this.destroy();r=b.startContainer;u=b.startOffset;v=b.endContainer;f=b.endOffset;d.createTextRange();if(r==l||v==l){g=d.createTextRange();g.collapse();g.select()}else{if(r.nodeType==1&&r.hasChildNodes()){g=r.childNodes.length-
+0)h="";break;case "hspace":if(h===-1)h="";break;case "maxlength":case "tabindex":if(h===32768||h===2147483647||h==="32768")h="";break;case "multiple":case "compact":case "noshade":case "nowrap":if(h===65535)return i;return a;case "shape":h=h.toLowerCase();break;default:if(i.indexOf("on")===0&&h)h=(""+h).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1")}return h!==undefined&&h!==null&&h!==""?""+h:a},getPos:function(c,i){var a=0,h=0,m=this.doc;c=this.get(c);i=i||m.body;if(c){if(b&&!this.stdMode){c=
+c.getBoundingClientRect();h=this.boxModel?m.documentElement:m.body;a=this.getStyle(this.select("html")[0],"borderWidth");a=(a=="medium"||this.boxModel&&!this.isIE6)&&2||a;c.top+=this.win.self!=this.win.top?2:0;return{x:c.left+h.scrollLeft-a,y:c.top+h.scrollTop-a}}for(m=c;m&&m!=i&&m.nodeType;){a+=m.offsetLeft||0;h+=m.offsetTop||0;m=m.offsetParent}for(m=c.parentNode;m&&m!=i&&m.nodeType;){a-=m.scrollLeft||0;h-=m.scrollTop||0;m=m.parentNode}}return{x:a,y:h}},parseStyle:function(c){function i(p,t,s){var x,
+y;if(x=m[p+"-top"+t]){y=m[p+"-right"+t];if(x==y){x=m[p+"-bottom"+t];if(y==x){y=m[p+"-left"+t];if(x==y){m[s]=y;delete m[p+"-top"+t];delete m[p+"-right"+t];delete m[p+"-bottom"+t];delete m[p+"-left"+t]}}}}}var a=this,h=a.settings,m={};if(!c)return m;c=c.replace(/&(#?[a-z0-9]+);/g,"&$1_MCE_SEMI_");q(c.split(";"),function(p){var t,s=[];if(p){p=p.replace(/_MCE_SEMI_/g,";");p=p.replace(/url\([^\)]+\)/g,function(x){s.push(x);return"url("+s.length+")"});p=p.split(":");t=l.trim(p[1]);t=t.replace(/url\(([^\)]+)\)/g,
+function(x,y){return s[parseInt(y)-1]});t=t.replace(/rgb\([^\)]+\)/g,function(x){return a.toHex(x)});if(h.url_converter)t=t.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(x,y){return"url("+h.url_converter.call(h.url_converter_scope||a,a.decode(y),"style",null)+")"});m[l.trim(p[0]).toLowerCase()]=t}});i("border","","border");i("border","-width","border-width");i("border","-color","border-color");i("border","-style","border-style");i("padding","","padding");i("margin","","margin");(function(p,
+t,s,x){var y;if(y=m[t])if(y=m[s])if(y=m[x]){m[p]=m[t]+" "+m[s]+" "+m[x];delete m[t];delete m[s];delete m[x]}})("border","border-width","border-style","border-color");if(b)if(m.border=="medium none")m.border="";return m},serializeStyle:function(c,i){function a(m,p){if(p&&m)if(p.indexOf("-")!==0){switch(p){case "font-weight":if(m==700)m="bold";break;case "color":case "background-color":m=m.toLowerCase()}h+=(h?" ":"")+p+": "+m+";"}}var h="";if(i&&this._styles){q(this._styles["*"],function(m){a(c[m],
+m)});q(this._styles[i.toLowerCase()],function(m){a(c[m],m)})}else q(c,a);return h},loadCSS:function(c){var i=this,a=i.doc,h;c||(c="");h=i.select("head")[0];q(c.split(","),function(m){var p;if(!i.files[m]){i.files[m]=true;p=i.create("link",{rel:"stylesheet",href:l._addVer(m)});if(b&&a.documentMode)p.onload=function(){a.recalc();p.onload=null};h.appendChild(p)}})},addClass:function(c,i){return this.run(c,function(a){var h;if(!i)return 0;if(this.hasClass(a,i))return a.className;h=this.removeClass(a,
+i);return a.className=(h!=""?h+" ":"")+i})},removeClass:function(c,i){var a=this,h;return a.run(c,function(m){var p;if(a.hasClass(m,i)){h||(h=RegExp("(^|\\s+)"+i+"(\\s+|$)","g"));p=m.className.replace(h," ");p=l.trim(p!=" "?p:"");m.className=p;if(!p){m.removeAttribute("class");m.removeAttribute("className")}return p}return m.className})},hasClass:function(c,i){c=this.get(c);if(!c||!i)return false;return(" "+c.className+" ").indexOf(" "+i+" ")!==-1},show:function(c){return this.setStyle(c,"display",
+"block")},hide:function(c){return this.setStyle(c,"display","none")},isHidden:function(c){c=this.get(c);return!c||c.style.display=="none"||this.getStyle(c,"display")=="none"},uniqueId:function(c){return(!c?"mce_":c)+this.counter++},setHTML:function(c,i){var a=this;return this.run(c,function(h){var m,p,t,s,x;i=a.processHTML(i);if(b){var y=function(){for(;h.firstChild;)h.firstChild.removeNode();try{h.innerHTML="<br />"+i;h.removeChild(h.firstChild)}catch(C){m=a.create("div");m.innerHTML="<br />"+i;
+q(m.childNodes,function(A,M){M&&h.appendChild(A)})}};if(a.settings.fix_ie_paragraphs)i=i.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi,'<p$1 _mce_keep="true">&nbsp;</p>');y();if(a.settings.fix_ie_paragraphs){t=h.getElementsByTagName("p");p=t.length-1;for(m=0;p>=0;p--){s=t[p];if(!s.hasChildNodes()){if(!s._mce_keep){m=1;break}s.removeAttribute("_mce_keep")}}}if(m){i=i.replace(/<p ([^>]+)>|<p>/ig,'<div $1 _mce_tmp="1">');i=i.replace(/<\/p>/gi,"</div>");y();if(a.settings.fix_ie_paragraphs){t=h.getElementsByTagName("DIV");
+for(p=t.length-1;p>=0;p--){s=t[p];if(s._mce_tmp){x=a.doc.createElement("p");s.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(C,A){var M;if(A!=="_mce_tmp"){M=s.getAttribute(A);if(!M&&A==="class")M=s.className;x.setAttribute(A,M)}});for(m=0;m<s.childNodes.length;m++)x.appendChild(s.childNodes[m].cloneNode(true));s.swapNode(x)}}}}}else h.innerHTML=i;return i})},processHTML:function(c){var i=this,a=i.settings,h=[];if(!a.process_html)return c;if(b){c=c.replace(/&apos;/g,"&#39;");c=c.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\"\']?(false|0)[\"\']?/gi,
+"")}c=c.replace(/<a( )([^>]+)\/>|<a\/>/gi,"<a$1$2></a>");if(a.keep_values){if(/<script|noscript|style/i.test(c)){var m=function(p){p=p.replace(/(<\!--\[CDATA\[|\]\]--\>)/g,"\n");p=p.replace(/^[\r\n]*|[\r\n]*$/g,"");p=p.replace(/^\s*(\/\/\s*<\!--|\/\/\s*<!\[CDATA\[|<\!--|<!\[CDATA\[)[\r\n]*/g,"");return p=p.replace(/\s*(\/\/\s*\]\]>|\/\/\s*--\>|\]\]>|--\>|\]\]--\>)\s*$/g,"")};c=c.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/gi,function(p,t,s){t||(t=' type="text/javascript"');t=t.replace(/src=\"([^\"]+)\"?/i,
+function(x,y){if(a.url_converter)y=i.encode(a.url_converter.call(a.url_converter_scope||i,i.decode(y),"src","script"));return'_mce_src="'+y+'"'});if(l.trim(s)){h.push(m(s));s="<\!--\nMCE_SCRIPT:"+(h.length-1)+"\n// --\>"}return"<mce:script"+t+">"+s+"</mce:script>"});c=c.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/gi,function(p,t,s){if(s){h.push(m(s));s="<\!--\nMCE_SCRIPT:"+(h.length-1)+"\n--\>"}return"<mce:style"+t+">"+s+"</mce:style><style "+t+' _mce_bogus="1">'+s+"</style>"});c=c.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g,
+function(p,t,s){return"<mce:noscript"+t+"><\!--"+i.encode(s).replace(/--/g,"&#45;&#45;")+"--\></mce:noscript>"})}c=c.replace(/<!\[CDATA\[([\s\S]+)\]\]>/g,"<\!--[CDATA[$1]]--\>");c=function(p){return p.replace(f,function(t,s,x,y){return"<"+s+x.replace(e,function(C,A,M,X,E){A=A.toLowerCase();M=M||X||E||"";if(d[A]){if(M==="false"||M==="0")return;return A+'="'+A+'"'}if(n[A]&&x.indexOf("_mce_"+A)==-1){C=i.decode(M);if(a.url_converter&&(A=="src"||A=="href"))C=a.url_converter.call(a.url_converter_scope||
+i,C,A,s);if(A=="style")C=i.serializeStyle(i.parseStyle(C),A);return A+'="'+M+'" _mce_'+A+'="'+i.encode(C)+'"'}return C})+y+">"})}(c);c=c.replace(/MCE_SCRIPT:([0-9]+)/g,function(p,t){return h[t]})}return c},getOuterHTML:function(c){var i;c=this.get(c);if(!c)return null;if(c.outerHTML!==undefined)return c.outerHTML;i=(c.ownerDocument||this.doc).createElement("body");i.appendChild(c.cloneNode(true));return i.innerHTML},setOuterHTML:function(c,i,a){function h(p,t,s){s=s.createElement("body");s.innerHTML=
+t;for(t=s.lastChild;t;){m.insertAfter(t.cloneNode(true),p);t=t.previousSibling}m.remove(p)}var m=this;return this.run(c,function(p){p=m.get(p);if(p.nodeType==1){a=a||p.ownerDocument||m.doc;if(b)try{if(b&&p.nodeType==1)p.outerHTML=i;else h(p,i,a)}catch(t){h(p,i,a)}else h(p,i,a)}})},decode:function(c){var i,a;if(/&[\w#]+;/.test(c)){i=this.doc.createElement("div");i.innerHTML=c;i=i.firstChild;a="";if(i){do a+=i.nodeValue;while(i=i.nextSibling)}return a||c}return c},encode:function(c){return(""+c).replace(u,
+function(i){return r[i]})},insertAfter:function(c,i){i=this.get(i);return this.run(c,function(a){var h,m;h=i.parentNode;(m=i.nextSibling)?h.insertBefore(a,m):h.appendChild(a);return a})},isBlock:function(c){if(c.nodeType&&c.nodeType!==1)return false;c=c.nodeName||c;return g.test(c)},replace:function(c,i,a){if(k(i,"array"))c=c.cloneNode(true);return this.run(i,function(h){a&&q(l.grep(h.childNodes),function(m){c.appendChild(m)});return h.parentNode.replaceChild(c,h)})},rename:function(c,i){var a=this,
+h;if(c.nodeName!=i.toUpperCase()){h=a.create(i);q(a.getAttribs(c),function(m){a.setAttrib(h,m.nodeName,a.getAttrib(c,m.nodeName))});a.replace(h,c,1)}return h||c},findCommonAncestor:function(c,i){for(var a=c,h;a;){for(h=i;h&&a!=h;)h=h.parentNode;if(a==h)break;a=a.parentNode}if(!a&&c.ownerDocument)return c.ownerDocument.documentElement;return a},toHex:function(c){function i(h){h=parseInt(h).toString(16);return h.length>1?h:"0"+h}var a=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(c);
+if(a)c="#"+i(a[1])+i(a[2])+i(a[3]);return c},getClasses:function(){function c(t){q(t.imports,function(s){c(s)});q(t.cssRules||t.rules,function(s){switch(s.type||1){case 1:s.selectorText&&q(s.selectorText.split(","),function(x){x=x.replace(/^\s*|\s*$|^\s\./g,"");if(!(/\.mce/.test(x)||!/\.[\w\-]+$/.test(x))){m=x;x=x.replace(/.*\.([a-z0-9_\-]+).*/i,"$1");if(!(h&&!(x=h(x,m))))if(!a[x]){i.push({"class":x});a[x]=1}}});break;case 3:c(s.styleSheet)}})}var i=[],a={},h=this.settings.class_filter,m;if(this.classes)return this.classes;
+try{q(this.doc.styleSheets,c)}catch(p){}if(i.length>0)this.classes=i;return i},run:function(c,i,a){var h=this,m;if(h.doc&&typeof c==="string")c=h.get(c);if(!c)return false;a=a||this;if(!c.nodeType&&(c.length||c.length===0)){m=[];q(c,function(p,t){if(p){if(typeof p=="string")p=h.doc.getElementById(p);m.push(i.call(a,p,t))}});return m}return i.call(a,c)},getAttribs:function(c){var i;c=this.get(c);if(!c)return[];if(b){i=[];if(c.nodeName=="OBJECT")return c.attributes;c.nodeName==="OPTION"&&this.getAttrib(c,
+"selected")&&i.push({specified:1,nodeName:"selected"});c.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(a){i.push({specified:1,nodeName:a})});return i}return c.attributes},destroy:function(c){this.events&&this.events.destroy();this.win=this.doc=this.root=this.events=null;c||l.removeUnload(this.destroy)},createRng:function(){var c=this.doc;return c.createRange?c.createRange():new l.dom.Range(this)},nodeIndex:function(c,i){var a=
+0,h,m;if(c){h=c.nodeType;for(c=c.previousSibling;c;c=c.previousSibling){m=c.nodeType;if(i&&m==3)if(m==h||!c.nodeValue.length)continue;a++;h=m}}return a},split:function(c,i,a){function h(x){var y,C=x.childNodes;if(!(x.nodeType==1&&x.getAttribute("_mce_type")=="bookmark")){for(y=C.length-1;y>=0;y--)h(C[y]);if(x.nodeType!=9){if(x.nodeType==3&&x.nodeValue.length>0)return;if(x.nodeType==1){C=x.childNodes;C.length==1&&C[0]&&C[0].nodeType==1&&C[0].getAttribute("_mce_type")=="bookmark"&&x.parentNode.insertBefore(C[0],
+x);if(C.length||/^(br|hr|input|img)$/i.test(x.nodeName))return}m.remove(x)}return x}}var m=this,p=m.createRng(),t,s;if(c&&i){p.setStart(c.parentNode,m.nodeIndex(c));p.setEnd(i.parentNode,m.nodeIndex(i));t=p.extractContents();p=m.createRng();p.setStart(i.parentNode,m.nodeIndex(i)+1);p.setEnd(c.parentNode,m.nodeIndex(c)+1);p=p.extractContents();s=c.parentNode;s.insertBefore(h(t),c);a?s.replaceChild(a,i):s.insertBefore(i,c);s.insertBefore(h(p),c);m.remove(c);return a||i}},bind:function(c,i,a,h){if(!this.events)this.events=
+new l.dom.EventUtils;return this.events.add(c,i,a,h||this)},unbind:function(c,i,a){if(!this.events)this.events=new l.dom.EventUtils;return this.events.remove(c,i,a)},_findSib:function(c,i,a){var h=this,m=i;if(c){if(k(m,"string"))m=function(p){return h.is(p,i)};for(c=c[a];c;c=c[a])if(m(c))return c}return null},_isRes:function(c){return/^(top|left|bottom|right|width|height)/i.test(c)||/;\s*(top|left|bottom|right|width|height)/i.test(c)}});l.DOM=new l.dom.DOMUtils(document,{process_html:0})})(tinymce);
+(function(l){function o(q){function k(E,D){r(t,E,D)}function j(E,D){r(s,E,D)}function b(E){k(E.parentNode,X(E))}function g(E){j(E.parentNode,X(E)+1)}function d(E,D){var B;if(E.nodeType==3)return E;if(D<0)return E;for(B=E.firstChild;B&&D>0;){--D;B=B.nextSibling}if(B)return B;return E}function n(E,D,B,K){var H,W;if(E==B){if(D==K)return 0;if(D<K)return-1;return 1}for(H=B;H&&H.parentNode!=E;)H=H.parentNode;if(H){W=0;for(B=E.firstChild;B!=H&&W<D;){W++;B=B.nextSibling}if(D<=W)return-1;return 1}for(H=E;H&&
+H.parentNode!=B;)H=H.parentNode;if(H){W=0;for(B=B.firstChild;B!=H&&W<K;){W++;B=B.nextSibling}if(W<K)return-1;return 1}for(D=q.findCommonAncestor(E,B);E&&E.parentNode!=D;)E=E.parentNode;E||(E=D);for(K=B;K&&K.parentNode!=D;)K=K.parentNode;K||(K=D);if(E==K)return 0;for(B=D.firstChild;B;){if(B==E)return-1;if(B==K)return 1;B=B.nextSibling}}function r(E,D,B){if(E){a[y]=D;a[x]=B}else{a[C]=D;a[A]=B}for(D=a[C];D.parentNode;)D=D.parentNode;for(B=a[y];B.parentNode;)B=B.parentNode;if(B==D)n(a[y],a[x],a[C],a[A])>
+0&&a.collapse(E);else a.collapse(E);a.collapsed=a[y]==a[C]&&a[x]==a[A];a.commonAncestorContainer=q.findCommonAncestor(a[y],a[C])}function u(E){var D,B=0,K=0,H;if(a[y]==a[C])return v(E);D=a[C];for(H=D.parentNode;H;D=H,H=H.parentNode){if(H==a[y]){var W=D;D=void 0;H=void 0;B=void 0;K=void 0;H=void 0;if(E!=p)D=h.createDocumentFragment();H=f(W,E);D&&D.appendChild(H);B=X(W)-a[x];if(!(B<=0))for(H=W.previousSibling;B>0;){K=H.previousSibling;H=i(H,E);D&&D.insertBefore(H,D.firstChild);--B;H=K}if(E!=m){a.setEndBefore(W);
+a.collapse(s)}E=D;return E}++B}D=a[y];for(H=D.parentNode;H;D=H,H=H.parentNode){if(H==a[C]){W=D;D=void 0;B=void 0;H=void 0;B=void 0;K=void 0;H=void 0;if(E!=p)D=h.createDocumentFragment();H=e(W,E);D&&D.appendChild(H);B=X(W);++B;B=a[A]-B;for(H=W.nextSibling;B>0;){K=H.nextSibling;H=i(H,E);D&&D.appendChild(H);--B;H=K}if(E!=m){a.setStartAfter(W);a.collapse(t)}return D}++K}K-=B;for(D=a[y];K>0;){D=D.parentNode;K--}for(B=a[C];K<0;){B=B.parentNode;K++}K=D.parentNode;for(H=B.parentNode;K!=H;K=K.parentNode,H=
+H.parentNode){D=K;B=H}var V;if(E!=p)W=h.createDocumentFragment();V=e(D,E);W&&W.appendChild(V);K=X(D);H=X(B);++K;K=H-K;for(V=D.nextSibling;K>0;){H=V.nextSibling;V=i(V,E);W&&W.appendChild(V);V=H;--K}V=f(B,E);W&&W.appendChild(V);if(E!=m){a.setStartAfter(D);a.collapse(t)}return W}function v(E){var D,B,K,H;if(E!=p)D=h.createDocumentFragment();if(a[x]==a[A])return D;if(a[y].nodeType==3){B=a[y].nodeValue;B=B.substring(a[x],a[A]);if(E!=m){a[y].deleteData(a[x],a[A]-a[x]);a.collapse(t)}if(E==p)return;D.appendChild(h.createTextNode(B));
+return D}K=d(a[y],a[x]);for(B=a[A]-a[x];B>0;){H=K.nextSibling;K=i(K,E);D&&D.appendChild(K);--B;K=H}E!=m&&a.collapse(t);return D}function f(E,D){var B=d(a[C],a[A]-1),K,H,W,V=B!=a[C];if(B==E)return c(B,V,s,D);K=B.parentNode;for(H=c(K,s,s,D);K;){for(;B;){W=B.previousSibling;B=c(B,V,s,D);D!=p&&H.insertBefore(B,H.firstChild);V=t;B=W}if(K==E)return H;B=K.previousSibling;K=K.parentNode;W=c(K,s,s,D);D!=p&&W.appendChild(H);H=W}}function e(E,D){var B=d(a[y],a[x]),K=B!=a[y],H,W,V;if(B==E)return c(B,K,t,D);H=
+B.parentNode;for(W=c(H,s,t,D);H;){for(;B;){V=B.nextSibling;B=c(B,K,t,D);D!=p&&W.appendChild(B);K=t;B=V}if(H==E)return W;B=H.nextSibling;H=H.parentNode;V=c(H,s,t,D);D!=p&&V.appendChild(W);W=V}}function c(E,D,B,K){var H;if(D)return i(E,K);if(E.nodeType==3){D=E.nodeValue;if(B){H=a[x];B=D.substring(H);D=D.substring(0,H)}else{H=a[A];B=D.substring(0,H);D=D.substring(H)}if(K!=m)E.nodeValue=D;if(K==p)return;E=E.cloneNode(s);E.nodeValue=B;return E}if(K!=p)return E.cloneNode(s)}function i(E,D){if(D!=p)return D==
+m?E.cloneNode(t):E;E.parentNode.removeChild(E)}var a=this,h=q.doc,m=1,p=2,t=true,s=false,x="startOffset",y="startContainer",C="endContainer",A="endOffset",M=tinymce.extend,X=q.nodeIndex;M(a,{startContainer:h,startOffset:0,endContainer:h,endOffset:0,collapsed:t,commonAncestorContainer:h,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:k,setEnd:j,setStartBefore:b,setStartAfter:function(E){k(E.parentNode,X(E)+1)},setEndBefore:function(E){j(E.parentNode,X(E))},setEndAfter:g,collapse:function(E){if(E){a[C]=
+a[y];a[A]=a[x]}else{a[y]=a[C];a[x]=a[A]}a.collapsed=t},selectNode:function(E){b(E);g(E)},selectNodeContents:function(E){k(E,0);j(E,E.nodeType===1?E.childNodes.length:E.nodeValue.length)},compareBoundaryPoints:function(E){var D=a[y],B=a[x],K=a[C],H=a[A];if(E===0)return n(D,B,D,B);if(E===1)return n(D,B,K,H);if(E===2)return n(K,H,K,H);if(E===3)return n(K,H,D,B)},deleteContents:function(){u(p)},extractContents:function(){return u(0)},cloneContents:function(){return u(m)},insertNode:function(E){var D=
+this[y],B=this[x],K;if((D.nodeType===3||D.nodeType===4)&&D.nodeValue)if(B)if(B>=D.nodeValue.length)q.insertAfter(E,D);else{B=D.splitText(B);D.parentNode.insertBefore(E,B)}else D.parentNode.insertBefore(E,D);else{if(D.childNodes.length>0)K=D.childNodes[B];K?D.insertBefore(E,K):D.appendChild(E)}},surroundContents:function(E){var D=a.extractContents();a.insertNode(E);E.appendChild(D);a.selectNode(E)},cloneRange:function(){return M(new o(q),{startContainer:a[y],startOffset:a[x],endContainer:a[C],endOffset:a[A],
+collapsed:a.collapsed,commonAncestorContainer:a.commonAncestorContainer})}})}l.Range=o})(tinymce.dom);
+(function(){tinymce.dom.TridentSelection=function(l){function o(){function b(r){var u,v,f,e=0,c,i,a,h;f=g.duplicate();f.collapse(r);u=j.create("a");a=f.parentElement();if(a.hasChildNodes()){a.appendChild(u);f.moveToElementText(u);h=g.compareEndPoints(r?"StartToStart":"EndToEnd",f);if(h>0){d[r?"setStartAfter":"setEndAfter"](a);j.remove(u)}else{v=tinymce.grep(a.childNodes);for(c=v.length-1;e<=c;){i=Math.floor((e+c)/2);a.insertBefore(u,v[i]);f.moveToElementText(u);h=g.compareEndPoints(r?"StartToStart":
+"EndToEnd",f);if(h>0)e=i+1;else if(h<0)c=i-1;else{found=true;break}}v=h>0||i==0?u.nextSibling:u.previousSibling;if(v.nodeType==1){j.remove(u);f=j.nodeIndex(v);v=v.parentNode;if(!r||i>0)f++}else{if(h>0||i==0){f.setEndPoint(r?"StartToStart":"EndToEnd",g);f=f.text.length}else{f.setEndPoint(r?"StartToStart":"EndToEnd",g);f=v.nodeValue.length-f.text.length}j.remove(u)}d[r?"setStart":"setEnd"](v,f)}}else d[r?"setStart":"setEnd"](a,0)}var g=l.getRng(),d=j.createRng(),n;n=g.item?g.item(0):g.parentElement();
+if(n.ownerDocument!=j.doc)return d;if(g.item||!n.hasChildNodes()){d.setStart(n.parentNode,j.nodeIndex(n));d.setEnd(d.startContainer,d.startOffset+1);return d}n=l.isCollapsed();b(true);n||b();return d}var q,k,j=l.dom;this.addRange=function(b){var g,d,n=l.dom.doc;d=n.body;var r,u,v,f,e,c;this.destroy();r=b.startContainer;u=b.startOffset;v=b.endContainer;f=b.endOffset;d.createTextRange();if(r==n||v==n){g=d.createTextRange();g.collapse();g.select()}else{if(r.nodeType==1&&r.hasChildNodes()){g=r.childNodes.length-
 1;if(u>g){e=1;r=r.childNodes[g]}else r=r.childNodes[u];if(r.nodeType==3)u=0}if(v.nodeType==1&&v.hasChildNodes()){g=v.childNodes.length-1;if(f==0){c=1;v=v.childNodes[0]}else{v=v.childNodes[Math.min(g,f-1)];if(v.nodeType==3)f=v.nodeValue.length}}if(r==v&&r.nodeType==1){if(/^(IMG|TABLE)$/.test(r.nodeName)&&u!=f){g=d.createControlRange();g.addElement(r)}else{g=d.createTextRange();if(!r.hasChildNodes()&&r.canHaveHTML)r.innerHTML="\ufeff";g.moveToElementText(r);if(r.innerHTML=="\ufeff"){g.collapse(true);
-r.removeChild(r.firstChild)}}u==f&&g.collapse(f<=b.endContainer.childNodes.length-1);g.select();g.scrollIntoView()}else{g=d.createTextRange();b=l.createElement("span");b.innerHTML=" ";if(r.nodeType==3){e?j.insertAfter(b,r):r.parentNode.insertBefore(b,r);g.moveToElementText(b);b.parentNode.removeChild(b);u>0&&g.move("character",u)}else{g.moveToElementText(r);e&&g.collapse(false)}if(r==v&&r.nodeType==3)try{g.moveEnd("character",f-u);g.select();g.scrollIntoView()}catch(i){}else{d=d.createTextRange();
-if(v.nodeType==3){v.parentNode.insertBefore(b,v);d.moveToElementText(b);b.parentNode.removeChild(b);d.move("character",f);g.setEndPoint("EndToStart",d)}else{d.moveToElementText(v);d.collapse(!!c);g.setEndPoint("EndToEnd",d)}g.select();g.scrollIntoView()}}}};this.getRangeAt=function(){if(!q||!tinymce.dom.RangeUtils.compareRanges(k,m.getRng())){q=o();k=m.getRng()}return q};this.destroy=function(){k=q=null};m.dom.boxModel&&function(){function b(f,e){var c=r.createTextRange();try{c.moveToPoint(f,e)}catch(i){c=
-null}return c}function g(f){if(f.button){if(f=b(f.x,f.y)){f.compareEndPoints("StartToStart",v)>0?f.setEndPoint("StartToStart",v):f.setEndPoint("EndToEnd",v);f.select()}}else d()}function d(){j.unbind(l,"mouseup",d);j.unbind(l,"mousemove",g);u=0}var l=j.doc,r=l.body,u,v;l.documentElement.unselectable=true;j.bind(l,"mousedown",function(f){if(f.target.nodeName==="HTML"){u&&d();u=1;if(v=b(f.x,f.y)){j.bind(l,"mouseup",d);j.bind(l,"mousemove",g);v.select()}}})}()}})();
-(function(){function m(a,h,n,p,t,s){t=0;for(var x=p.length;t<x;t++){var y=p[t];if(y){y=y[a];for(var D=false;y;){if(y.sizcache===n){D=p[y.sizset];break}if(y.nodeType===1&&!s){y.sizcache=n;y.sizset=t}if(y.nodeName.toLowerCase()===h){D=y;break}y=y[a]}p[t]=D}}}function o(a,h,n,p,t,s){t=0;for(var x=p.length;t<x;t++){var y=p[t];if(y){y=y[a];for(var D=false;y;){if(y.sizcache===n){D=p[y.sizset];break}if(y.nodeType===1){if(!s){y.sizcache=n;y.sizset=t}if(typeof h!=="string"){if(y===h){D=true;break}}else if(d.filter(h,
-[y]).length>0){D=y;break}}y=y[a]}p[t]=D}}}var q=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,k=0,j=Object.prototype.toString,b=false,g=true;[0,0].sort(function(){g=false;return 0});var d=function(a,h,n,p){n=n||[];var t=h=h||document;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!a||typeof a!=="string")return n;var s=[],x,y,D,B,M=true,X=d.isXML(h),C=a,E;do{q.exec("");if(x=q.exec(C)){C=x[3];s.push(x[1]);if(x[2]){B=
-x[3];break}}}while(x);if(s.length>1&&r.exec(a))if(s.length===2&&l.relative[s[0]])y=i(s[0]+s[1],h);else for(y=l.relative[s[0]]?[h]:d(s.shift(),h);s.length;){a=s.shift();if(l.relative[a])a+=s.shift();y=i(a,y)}else{if(!p&&s.length>1&&h.nodeType===9&&!X&&l.match.ID.test(s[0])&&!l.match.ID.test(s[s.length-1])){x=d.find(s.shift(),h,X);h=x.expr?d.filter(x.expr,x.set)[0]:x.set[0]}if(h){x=p?{expr:s.pop(),set:f(p)}:d.find(s.pop(),s.length===1&&(s[0]==="~"||s[0]==="+")&&h.parentNode?h.parentNode:h,X);y=x.expr?
-d.filter(x.expr,x.set):x.set;if(s.length>0)D=f(y);else M=false;for(;s.length;){x=E=s.pop();if(l.relative[E])x=s.pop();else E="";if(x==null)x=h;l.relative[E](D,x,X)}}else D=[]}D||(D=y);D||d.error(E||a);if(j.call(D)==="[object Array]")if(M)if(h&&h.nodeType===1)for(a=0;D[a]!=null;a++){if(D[a]&&(D[a]===true||D[a].nodeType===1&&d.contains(h,D[a])))n.push(y[a])}else for(a=0;D[a]!=null;a++)D[a]&&D[a].nodeType===1&&n.push(y[a]);else n.push.apply(n,D);else f(D,n);if(B){d(B,t,n,p);d.uniqueSort(n)}return n};
-d.uniqueSort=function(a){if(c){b=g;a.sort(c);if(b)for(var h=1;h<a.length;h++)a[h]===a[h-1]&&a.splice(h--,1)}return a};d.matches=function(a,h){return d(a,null,null,h)};d.find=function(a,h,n){var p;if(!a)return[];for(var t=0,s=l.order.length;t<s;t++){var x=l.order[t],y;if(y=l.leftMatch[x].exec(a)){var D=y[1];y.splice(1,1);if(D.substr(D.length-1)!=="\\"){y[1]=(y[1]||"").replace(/\\/g,"");p=l.find[x](y,h,n);if(p!=null){a=a.replace(l.match[x],"");break}}}}p||(p=h.getElementsByTagName("*"));return{set:p,
-expr:a}};d.filter=function(a,h,n,p){for(var t=a,s=[],x=h,y,D,B=h&&h[0]&&d.isXML(h[0]);a&&h.length;){for(var M in l.filter)if((y=l.leftMatch[M].exec(a))!=null&&y[2]){var X=l.filter[M],C,E;E=y[1];D=false;y.splice(1,1);if(E.substr(E.length-1)!=="\\"){if(x===s)s=[];if(l.preFilter[M])if(y=l.preFilter[M](y,x,n,s,p,B)){if(y===true)continue}else D=C=true;if(y)for(var A=0;(E=x[A])!=null;A++)if(E){C=X(E,y,A,x);var K=p^!!C;if(n&&C!=null)if(K)D=true;else x[A]=false;else if(K){s.push(E);D=true}}if(C!==undefined){n||
-(x=s);a=a.replace(l.match[M],"");if(!D)return[];break}}}if(a===t)if(D==null)d.error(a);else break;t=a}return x};d.error=function(a){throw"Syntax error, unrecognized expression: "+a;};var l=d.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
-POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")}},relative:{"+":function(a,h){var n=typeof h==="string",p=n&&!/\W/.test(h);n=n&&!p;if(p)h=h.toLowerCase();p=0;for(var t=a.length,s;p<t;p++)if(s=a[p]){for(;(s=s.previousSibling)&&s.nodeType!==1;);a[p]=n||s&&s.nodeName.toLowerCase()===
-h?s||false:s===h}n&&d.filter(h,a,true)},">":function(a,h){var n=typeof h==="string",p,t=0,s=a.length;if(n&&!/\W/.test(h))for(h=h.toLowerCase();t<s;t++){if(p=a[t]){n=p.parentNode;a[t]=n.nodeName.toLowerCase()===h?n:false}}else{for(;t<s;t++)if(p=a[t])a[t]=n?p.parentNode:p.parentNode===h;n&&d.filter(h,a,true)}},"":function(a,h,n){var p=k++,t=o,s;if(typeof h==="string"&&!/\W/.test(h)){s=h=h.toLowerCase();t=m}t("parentNode",h,p,a,s,n)},"~":function(a,h,n){var p=k++,t=o,s;if(typeof h==="string"&&!/\W/.test(h)){s=
-h=h.toLowerCase();t=m}t("previousSibling",h,p,a,s,n)}},find:{ID:function(a,h,n){if(typeof h.getElementById!=="undefined"&&!n)return(a=h.getElementById(a[1]))?[a]:[]},NAME:function(a,h){if(typeof h.getElementsByName!=="undefined"){for(var n=[],p=h.getElementsByName(a[1]),t=0,s=p.length;t<s;t++)p[t].getAttribute("name")===a[1]&&n.push(p[t]);return n.length===0?null:n}},TAG:function(a,h){return h.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,h,n,p,t,s){a=" "+a[1].replace(/\\/g,"")+" ";if(s)return a;
-s=0;for(var x;(x=h[s])!=null;s++)if(x)if(t^(x.className&&(" "+x.className+" ").replace(/[\t\n]/g," ").indexOf(a)>=0))n||p.push(x);else if(n)h[s]=false;return false},ID:function(a){return a[1].replace(/\\/g,"")},TAG:function(a){return a[1].toLowerCase()},CHILD:function(a){if(a[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=h[1]+(h[2]||1)-0;a[3]=h[3]-0}a[0]=k++;return a},ATTR:function(a,h,n,p,t,s){h=a[1].replace(/\\/g,
-"");if(!s&&l.attrMap[h])a[1]=l.attrMap[h];if(a[2]==="~=")a[4]=" "+a[4]+" ";return a},PSEUDO:function(a,h,n,p,t){if(a[1]==="not")if((q.exec(a[3])||"").length>1||/^\w/.test(a[3]))a[3]=d(a[3],null,null,h);else{a=d.filter(a[3],h,n,true^t);n||p.push.apply(p,a);return false}else if(l.match.POS.test(a[0])||l.match.CHILD.test(a[0]))return true;return a},POS:function(a){a.unshift(true);return a}},filters:{enabled:function(a){return a.disabled===false&&a.type!=="hidden"},disabled:function(a){return a.disabled===
-true},checked:function(a){return a.checked===true},selected:function(a){return a.selected===true},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,h,n){return!!d(n[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.type},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===
-a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,h){return h===0},last:function(a,h,n,p){return h===p.length-1},even:function(a,h){return h%2===0},odd:function(a,h){return h%2===1},lt:function(a,h,n){return h<n[3]-0},gt:function(a,h,n){return h>n[3]-0},nth:function(a,h,n){return n[3]-
-0===h},eq:function(a,h,n){return n[3]-0===h}},filter:{PSEUDO:function(a,h,n,p){var t=h[1],s=l.filters[t];if(s)return s(a,n,h,p);else if(t==="contains")return(a.textContent||a.innerText||d.getText([a])||"").indexOf(h[3])>=0;else if(t==="not"){h=h[3];n=0;for(p=h.length;n<p;n++)if(h[n]===a)return false;return true}else d.error("Syntax error, unrecognized expression: "+t)},CHILD:function(a,h){var n=h[1],p=a;switch(n){case "only":case "first":for(;p=p.previousSibling;)if(p.nodeType===1)return false;if(n===
-"first")return true;p=a;case "last":for(;p=p.nextSibling;)if(p.nodeType===1)return false;return true;case "nth":n=h[2];var t=h[3];if(n===1&&t===0)return true;var s=h[0],x=a.parentNode;if(x&&(x.sizcache!==s||!a.nodeIndex)){var y=0;for(p=x.firstChild;p;p=p.nextSibling)if(p.nodeType===1)p.nodeIndex=++y;x.sizcache=s}p=a.nodeIndex-t;return n===0?p===0:p%n===0&&p/n>=0}},ID:function(a,h){return a.nodeType===1&&a.getAttribute("id")===h},TAG:function(a,h){return h==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===
-h},CLASS:function(a,h){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(a,h){var n=h[1];n=l.attrHandle[n]?l.attrHandle[n](a):a[n]!=null?a[n]:a.getAttribute(n);var p=n+"",t=h[2],s=h[4];return n==null?t==="!=":t==="="?p===s:t==="*="?p.indexOf(s)>=0:t==="~="?(" "+p+" ").indexOf(s)>=0:!s?p&&n!==false:t==="!="?p!==s:t==="^="?p.indexOf(s)===0:t==="$="?p.substr(p.length-s.length)===s:t==="|="?p===s||p.substr(0,s.length+1)===s+"-":false},POS:function(a,h,n,p){var t=l.setFilters[h[2]];
-if(t)return t(a,n,h,p)}}},r=l.match.POS,u=function(a,h){return"\\"+(h-0+1)},v;for(v in l.match){l.match[v]=RegExp(l.match[v].source+/(?![^\[]*\])(?![^\(]*\))/.source);l.leftMatch[v]=RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[v].source.replace(/\\(\d+)/g,u))}var f=function(a,h){a=Array.prototype.slice.call(a,0);if(h){h.push.apply(h,a);return h}return a};try{Array.prototype.slice.call(document.documentElement.childNodes,0)}catch(e){f=function(a,h){var n=h||[],p=0;if(j.call(a)==="[object Array]")Array.prototype.push.apply(n,
-a);else if(typeof a.length==="number")for(var t=a.length;p<t;p++)n.push(a[p]);else for(;a[p];p++)n.push(a[p]);return n}}var c;if(document.documentElement.compareDocumentPosition)c=function(a,h){if(!a.compareDocumentPosition||!h.compareDocumentPosition){if(a==h)b=true;return a.compareDocumentPosition?-1:1}var n=a.compareDocumentPosition(h)&4?-1:a===h?0:1;if(n===0)b=true;return n};else if("sourceIndex"in document.documentElement)c=function(a,h){if(!a.sourceIndex||!h.sourceIndex){if(a==h)b=true;return a.sourceIndex?
--1:1}var n=a.sourceIndex-h.sourceIndex;if(n===0)b=true;return n};else if(document.createRange)c=function(a,h){if(!a.ownerDocument||!h.ownerDocument){if(a==h)b=true;return a.ownerDocument?-1:1}var n=a.ownerDocument.createRange(),p=h.ownerDocument.createRange();n.setStart(a,0);n.setEnd(a,0);p.setStart(h,0);p.setEnd(h,0);n=n.compareBoundaryPoints(Range.START_TO_END,p);if(n===0)b=true;return n};d.getText=function(a){for(var h="",n,p=0;a[p];p++){n=a[p];if(n.nodeType===3||n.nodeType===4)h+=n.nodeValue;
-else if(n.nodeType!==8)h+=d.getText(n.childNodes)}return h};(function(){var a=document.createElement("div"),h="script"+(new Date).getTime();a.innerHTML="<a name='"+h+"'/>";var n=document.documentElement;n.insertBefore(a,n.firstChild);if(document.getElementById(h)){l.find.ID=function(p,t,s){if(typeof t.getElementById!=="undefined"&&!s)return(t=t.getElementById(p[1]))?t.id===p[1]||typeof t.getAttributeNode!=="undefined"&&t.getAttributeNode("id").nodeValue===p[1]?[t]:undefined:[]};l.filter.ID=function(p,
-t){var s=typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id");return p.nodeType===1&&s&&s.nodeValue===t}}n.removeChild(a);n=a=null})();(function(){var a=document.createElement("div");a.appendChild(document.createComment(""));if(a.getElementsByTagName("*").length>0)l.find.TAG=function(h,n){var p=n.getElementsByTagName(h[1]);if(h[1]==="*"){for(var t=[],s=0;p[s];s++)p[s].nodeType===1&&t.push(p[s]);p=t}return p};a.innerHTML="<a href='#'></a>";if(a.firstChild&&typeof a.firstChild.getAttribute!==
-"undefined"&&a.firstChild.getAttribute("href")!=="#")l.attrHandle.href=function(h){return h.getAttribute("href",2)};a=null})();document.querySelectorAll&&function(){var a=d,h=document.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){d=function(p,t,s,x){t=t||document;if(!x&&t.nodeType===9&&!d.isXML(t))try{return f(t.querySelectorAll(p),s)}catch(y){}return a(p,t,s,x)};for(var n in a)d[n]=a[n];h=null}}();(function(){var a=document.createElement("div");
-a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!a.getElementsByClassName||a.getElementsByClassName("e").length===0)){a.lastChild.className="e";if(a.getElementsByClassName("e").length!==1){l.order.splice(1,0,"CLASS");l.find.CLASS=function(h,n,p){if(typeof n.getElementsByClassName!=="undefined"&&!p)return n.getElementsByClassName(h[1])};a=null}}})();d.contains=document.compareDocumentPosition?function(a,h){return!!(a.compareDocumentPosition(h)&16)}:function(a,h){return a!==h&&
-(a.contains?a.contains(h):true)};d.isXML=function(a){return(a=(a?a.ownerDocument||a:0).documentElement)?a.nodeName!=="HTML":false};var i=function(a,h){for(var n=[],p="",t,s=h.nodeType?[h]:h;t=l.match.PSEUDO.exec(a);){p+=t[0];a=a.replace(l.match.PSEUDO,"")}a=l.relative[a]?a+"*":a;t=0;for(var x=s.length;t<x;t++)d(a,s[t],n);return d.filter(p,n)};window.tinymce.dom.Sizzle=d})();
-(function(m){var o=m.each,q=m.DOM,k=m.isIE,j;m.create("tinymce.dom.EventUtils",{EventUtils:function(){this.inits=[];this.events=[]},add:function(b,g,d,l){var r,u=this,v=u.events,f;if(g instanceof Array){f=[];o(g,function(e){f.push(u.add(b,e,d,l))});return f}if(b&&b.hasOwnProperty&&b instanceof Array){f=[];o(b,function(e){e=q.get(e);f.push(u.add(e,g,d,l))});return f}if(b=q.get(b)){r=function(e){if(!u.disabled){if((e=e||window.event)&&k){if(!e.target)e.target=e.srcElement;m.extend(e,u._stoppers)}if(!l)return d(e);
-return d.call(l,e)}};if(g=="unload"){m.unloads.unshift({func:r});return r}if(g=="init"){u.domLoaded?r():u.inits.push(r);return r}v.push({obj:b,name:g,func:d,cfunc:r,scope:l});u._add(b,g,r);return d}},remove:function(b,g,d){var l=this,r=l.events,u=false,v;if(b&&b.hasOwnProperty&&b instanceof Array){v=[];o(b,function(f){f=q.get(f);v.push(l.remove(f,g,d))});return v}b=q.get(b);o(r,function(f,e){if(f.obj==b&&f.name==g&&(!d||f.func==d||f.cfunc==d)){r.splice(e,1);l._remove(b,g,f.cfunc);u=true;return false}});
-return u},clear:function(b){var g=this.events,d,l;if(b){b=q.get(b);for(d=g.length-1;d>=0;d--){l=g[d];if(l.obj===b){this._remove(l.obj,l.name,l.cfunc);l.obj=l.cfunc=null;g.splice(d,1)}}}},cancel:function(b){if(!b)return false;this.stop(b);return this.prevent(b)},stop:function(b){if(b.stopPropagation)b.stopPropagation();else b.cancelBubble=true;return false},prevent:function(b){if(b.preventDefault)b.preventDefault();else b.returnValue=false;return false},destroy:function(){var b=this;o(b.events,function(g){b._remove(g.obj,
-g.name,g.cfunc);g.obj=g.cfunc=null});b.events=[];b=null},_add:function(b,g,d){if(b.attachEvent)b.attachEvent("on"+g,d);else if(b.addEventListener)b.addEventListener(g,d,false);else b["on"+g]=d},_remove:function(b,g,d){if(b)try{if(b.detachEvent)b.detachEvent("on"+g,d);else if(b.removeEventListener)b.removeEventListener(g,d,false);else b["on"+g]=null}catch(l){}},_pageInit:function(){if(!this.domLoaded){this.domLoaded=true;o(this.inits,function(b){b()});this.inits=[]}},_wait:function(b){var g=this,d=
-b.document;if(b.tinyMCE_GZ&&tinyMCE_GZ.loaded)g.domLoaded=1;else{if(d.attachEvent){d.attachEvent("onreadystatechange",function(){if(d.readyState==="complete"){d.detachEvent("onreadystatechange",arguments.callee);g._pageInit(b)}});d.documentElement.doScroll&&b==b.top&&function(){if(!g.domLoaded){try{d.documentElement.doScroll("left")}catch(l){setTimeout(arguments.callee,0);return}g._pageInit(b)}}()}else d.addEventListener&&g._add(b,"DOMContentLoaded",function(){g._pageInit(b)});g._add(b,"load",function(){g._pageInit(b)})}},
-_stoppers:{preventDefault:function(){this.returnValue=false},stopPropagation:function(){this.cancelBubble=true}}});j=m.dom.Event=new m.dom.EventUtils;j._wait(window);m.addUnload(function(){j.destroy()})})(tinymce);
-(function(m){m.dom.Element=function(o,q){var k=this,j;k.settings=q=q||{};k.id=o;k.dom=j=q.dom||m.DOM;m.isIE||j.get(k.id);m.each("getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get".split(/,/),function(b){k[b]=function(){var g=[o],d;for(d=0;d<arguments.length;d++)g.push(arguments[d]);g=j[b].apply(j,g);k.update(b);return g}});m.extend(k,{on:function(b,g,d){return m.dom.Event.add(k.id,
-b,g,d)},getXY:function(){return{x:parseInt(k.getStyle("left")),y:parseInt(k.getStyle("top"))}},getSize:function(){var b=j.get(k.id);return{w:parseInt(k.getStyle("width")||b.clientWidth),h:parseInt(k.getStyle("height")||b.clientHeight)}},moveTo:function(b,g){k.setStyles({left:b,top:g})},moveBy:function(b,g){var d=k.getXY();k.moveTo(d.x+b,d.y+g)},resizeTo:function(b,g){k.setStyles({width:b,height:g})},resizeBy:function(b,g){var d=k.getSize();k.resizeTo(d.w+b,d.h+g)},update:function(b){if(m.isIE6&&q.blocker){b=
+r.removeChild(r.firstChild)}}u==f&&g.collapse(f<=b.endContainer.childNodes.length-1);g.select();g.scrollIntoView()}else{g=d.createTextRange();b=n.createElement("span");b.innerHTML=" ";if(r.nodeType==3){e?j.insertAfter(b,r):r.parentNode.insertBefore(b,r);g.moveToElementText(b);b.parentNode.removeChild(b);u>0&&g.move("character",u)}else{g.moveToElementText(r);e&&g.collapse(false)}if(r==v&&r.nodeType==3)try{g.moveEnd("character",f-u);g.select();g.scrollIntoView()}catch(i){}else{d=d.createTextRange();
+if(v.nodeType==3){v.parentNode.insertBefore(b,v);d.moveToElementText(b);b.parentNode.removeChild(b);d.move("character",f);g.setEndPoint("EndToStart",d)}else{d.moveToElementText(v);d.collapse(!!c);g.setEndPoint("EndToEnd",d)}g.select();g.scrollIntoView()}}}};this.getRangeAt=function(){if(!q||!tinymce.dom.RangeUtils.compareRanges(k,l.getRng())){q=o();k=l.getRng()}return q};this.destroy=function(){k=q=null};l.dom.boxModel&&function(){function b(f,e){var c=r.createTextRange();try{c.moveToPoint(f,e)}catch(i){c=
+null}return c}function g(f){if(f.button){if(f=b(f.x,f.y)){f.compareEndPoints("StartToStart",v)>0?f.setEndPoint("StartToStart",v):f.setEndPoint("EndToEnd",v);f.select()}}else d()}function d(){j.unbind(n,"mouseup",d);j.unbind(n,"mousemove",g);u=0}var n=j.doc,r=n.body,u,v;n.documentElement.unselectable=true;j.bind(n,"mousedown",function(f){if(f.target.nodeName==="HTML"){u&&d();u=1;if(v=b(f.x,f.y)){j.bind(n,"mouseup",d);j.bind(n,"mousemove",g);v.select()}}})}()}})();
+(function(){function l(a,h,m,p,t,s){t=0;for(var x=p.length;t<x;t++){var y=p[t];if(y){y=y[a];for(var C=false;y;){if(y.sizcache===m){C=p[y.sizset];break}if(y.nodeType===1&&!s){y.sizcache=m;y.sizset=t}if(y.nodeName.toLowerCase()===h){C=y;break}y=y[a]}p[t]=C}}}function o(a,h,m,p,t,s){t=0;for(var x=p.length;t<x;t++){var y=p[t];if(y){y=y[a];for(var C=false;y;){if(y.sizcache===m){C=p[y.sizset];break}if(y.nodeType===1){if(!s){y.sizcache=m;y.sizset=t}if(typeof h!=="string"){if(y===h){C=true;break}}else if(d.filter(h,
+[y]).length>0){C=y;break}}y=y[a]}p[t]=C}}}var q=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,k=0,j=Object.prototype.toString,b=false,g=true;[0,0].sort(function(){g=false;return 0});var d=function(a,h,m,p){m=m||[];var t=h=h||document;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!a||typeof a!=="string")return m;var s=[],x,y,C,A,M=true,X=d.isXML(h),E=a,D;do{q.exec("");if(x=q.exec(E)){E=x[3];s.push(x[1]);if(x[2]){A=
+x[3];break}}}while(x);if(s.length>1&&r.exec(a))if(s.length===2&&n.relative[s[0]])y=i(s[0]+s[1],h);else for(y=n.relative[s[0]]?[h]:d(s.shift(),h);s.length;){a=s.shift();if(n.relative[a])a+=s.shift();y=i(a,y)}else{if(!p&&s.length>1&&h.nodeType===9&&!X&&n.match.ID.test(s[0])&&!n.match.ID.test(s[s.length-1])){x=d.find(s.shift(),h,X);h=x.expr?d.filter(x.expr,x.set)[0]:x.set[0]}if(h){x=p?{expr:s.pop(),set:f(p)}:d.find(s.pop(),s.length===1&&(s[0]==="~"||s[0]==="+")&&h.parentNode?h.parentNode:h,X);y=x.expr?
+d.filter(x.expr,x.set):x.set;if(s.length>0)C=f(y);else M=false;for(;s.length;){x=D=s.pop();if(n.relative[D])x=s.pop();else D="";if(x==null)x=h;n.relative[D](C,x,X)}}else C=[]}C||(C=y);C||d.error(D||a);if(j.call(C)==="[object Array]")if(M)if(h&&h.nodeType===1)for(a=0;C[a]!=null;a++){if(C[a]&&(C[a]===true||C[a].nodeType===1&&d.contains(h,C[a])))m.push(y[a])}else for(a=0;C[a]!=null;a++)C[a]&&C[a].nodeType===1&&m.push(y[a]);else m.push.apply(m,C);else f(C,m);if(A){d(A,t,m,p);d.uniqueSort(m)}return m};
+d.uniqueSort=function(a){if(c){b=g;a.sort(c);if(b)for(var h=1;h<a.length;h++)a[h]===a[h-1]&&a.splice(h--,1)}return a};d.matches=function(a,h){return d(a,null,null,h)};d.find=function(a,h,m){var p;if(!a)return[];for(var t=0,s=n.order.length;t<s;t++){var x=n.order[t],y;if(y=n.leftMatch[x].exec(a)){var C=y[1];y.splice(1,1);if(C.substr(C.length-1)!=="\\"){y[1]=(y[1]||"").replace(/\\/g,"");p=n.find[x](y,h,m);if(p!=null){a=a.replace(n.match[x],"");break}}}}p||(p=h.getElementsByTagName("*"));return{set:p,
+expr:a}};d.filter=function(a,h,m,p){for(var t=a,s=[],x=h,y,C,A=h&&h[0]&&d.isXML(h[0]);a&&h.length;){for(var M in n.filter)if((y=n.leftMatch[M].exec(a))!=null&&y[2]){var X=n.filter[M],E,D;D=y[1];C=false;y.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(x===s)s=[];if(n.preFilter[M])if(y=n.preFilter[M](y,x,m,s,p,A)){if(y===true)continue}else C=E=true;if(y)for(var B=0;(D=x[B])!=null;B++)if(D){E=X(D,y,B,x);var K=p^!!E;if(m&&E!=null)if(K)C=true;else x[B]=false;else if(K){s.push(D);C=true}}if(E!==undefined){m||
+(x=s);a=a.replace(n.match[M],"");if(!C)return[];break}}}if(a===t)if(C==null)d.error(a);else break;t=a}return x};d.error=function(a){throw"Syntax error, unrecognized expression: "+a;};var n=d.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
+POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")}},relative:{"+":function(a,h){var m=typeof h==="string",p=m&&!/\W/.test(h);m=m&&!p;if(p)h=h.toLowerCase();p=0;for(var t=a.length,s;p<t;p++)if(s=a[p]){for(;(s=s.previousSibling)&&s.nodeType!==1;);a[p]=m||s&&s.nodeName.toLowerCase()===
+h?s||false:s===h}m&&d.filter(h,a,true)},">":function(a,h){var m=typeof h==="string",p,t=0,s=a.length;if(m&&!/\W/.test(h))for(h=h.toLowerCase();t<s;t++){if(p=a[t]){m=p.parentNode;a[t]=m.nodeName.toLowerCase()===h?m:false}}else{for(;t<s;t++)if(p=a[t])a[t]=m?p.parentNode:p.parentNode===h;m&&d.filter(h,a,true)}},"":function(a,h,m){var p=k++,t=o,s;if(typeof h==="string"&&!/\W/.test(h)){s=h=h.toLowerCase();t=l}t("parentNode",h,p,a,s,m)},"~":function(a,h,m){var p=k++,t=o,s;if(typeof h==="string"&&!/\W/.test(h)){s=
+h=h.toLowerCase();t=l}t("previousSibling",h,p,a,s,m)}},find:{ID:function(a,h,m){if(typeof h.getElementById!=="undefined"&&!m)return(a=h.getElementById(a[1]))?[a]:[]},NAME:function(a,h){if(typeof h.getElementsByName!=="undefined"){for(var m=[],p=h.getElementsByName(a[1]),t=0,s=p.length;t<s;t++)p[t].getAttribute("name")===a[1]&&m.push(p[t]);return m.length===0?null:m}},TAG:function(a,h){return h.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,h,m,p,t,s){a=" "+a[1].replace(/\\/g,"")+" ";if(s)return a;
+s=0;for(var x;(x=h[s])!=null;s++)if(x)if(t^(x.className&&(" "+x.className+" ").replace(/[\t\n]/g," ").indexOf(a)>=0))m||p.push(x);else if(m)h[s]=false;return false},ID:function(a){return a[1].replace(/\\/g,"")},TAG:function(a){return a[1].toLowerCase()},CHILD:function(a){if(a[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=h[1]+(h[2]||1)-0;a[3]=h[3]-0}a[0]=k++;return a},ATTR:function(a,h,m,p,t,s){h=a[1].replace(/\\/g,
+"");if(!s&&n.attrMap[h])a[1]=n.attrMap[h];if(a[2]==="~=")a[4]=" "+a[4]+" ";return a},PSEUDO:function(a,h,m,p,t){if(a[1]==="not")if((q.exec(a[3])||"").length>1||/^\w/.test(a[3]))a[3]=d(a[3],null,null,h);else{a=d.filter(a[3],h,m,true^t);m||p.push.apply(p,a);return false}else if(n.match.POS.test(a[0])||n.match.CHILD.test(a[0]))return true;return a},POS:function(a){a.unshift(true);return a}},filters:{enabled:function(a){return a.disabled===false&&a.type!=="hidden"},disabled:function(a){return a.disabled===
+true},checked:function(a){return a.checked===true},selected:function(a){return a.selected===true},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,h,m){return!!d(m[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.type},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===
+a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,h){return h===0},last:function(a,h,m,p){return h===p.length-1},even:function(a,h){return h%2===0},odd:function(a,h){return h%2===1},lt:function(a,h,m){return h<m[3]-0},gt:function(a,h,m){return h>m[3]-0},nth:function(a,h,m){return m[3]-
+0===h},eq:function(a,h,m){return m[3]-0===h}},filter:{PSEUDO:function(a,h,m,p){var t=h[1],s=n.filters[t];if(s)return s(a,m,h,p);else if(t==="contains")return(a.textContent||a.innerText||d.getText([a])||"").indexOf(h[3])>=0;else if(t==="not"){h=h[3];m=0;for(p=h.length;m<p;m++)if(h[m]===a)return false;return true}else d.error("Syntax error, unrecognized expression: "+t)},CHILD:function(a,h){var m=h[1],p=a;switch(m){case "only":case "first":for(;p=p.previousSibling;)if(p.nodeType===1)return false;if(m===
+"first")return true;p=a;case "last":for(;p=p.nextSibling;)if(p.nodeType===1)return false;return true;case "nth":m=h[2];var t=h[3];if(m===1&&t===0)return true;var s=h[0],x=a.parentNode;if(x&&(x.sizcache!==s||!a.nodeIndex)){var y=0;for(p=x.firstChild;p;p=p.nextSibling)if(p.nodeType===1)p.nodeIndex=++y;x.sizcache=s}p=a.nodeIndex-t;return m===0?p===0:p%m===0&&p/m>=0}},ID:function(a,h){return a.nodeType===1&&a.getAttribute("id")===h},TAG:function(a,h){return h==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===
+h},CLASS:function(a,h){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(a,h){var m=h[1];m=n.attrHandle[m]?n.attrHandle[m](a):a[m]!=null?a[m]:a.getAttribute(m);var p=m+"",t=h[2],s=h[4];return m==null?t==="!=":t==="="?p===s:t==="*="?p.indexOf(s)>=0:t==="~="?(" "+p+" ").indexOf(s)>=0:!s?p&&m!==false:t==="!="?p!==s:t==="^="?p.indexOf(s)===0:t==="$="?p.substr(p.length-s.length)===s:t==="|="?p===s||p.substr(0,s.length+1)===s+"-":false},POS:function(a,h,m,p){var t=n.setFilters[h[2]];
+if(t)return t(a,m,h,p)}}},r=n.match.POS,u=function(a,h){return"\\"+(h-0+1)},v;for(v in n.match){n.match[v]=RegExp(n.match[v].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[v]=RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[v].source.replace(/\\(\d+)/g,u))}var f=function(a,h){a=Array.prototype.slice.call(a,0);if(h){h.push.apply(h,a);return h}return a};try{Array.prototype.slice.call(document.documentElement.childNodes,0)}catch(e){f=function(a,h){var m=h||[],p=0;if(j.call(a)==="[object Array]")Array.prototype.push.apply(m,
+a);else if(typeof a.length==="number")for(var t=a.length;p<t;p++)m.push(a[p]);else for(;a[p];p++)m.push(a[p]);return m}}var c;if(document.documentElement.compareDocumentPosition)c=function(a,h){if(!a.compareDocumentPosition||!h.compareDocumentPosition){if(a==h)b=true;return a.compareDocumentPosition?-1:1}var m=a.compareDocumentPosition(h)&4?-1:a===h?0:1;if(m===0)b=true;return m};else if("sourceIndex"in document.documentElement)c=function(a,h){if(!a.sourceIndex||!h.sourceIndex){if(a==h)b=true;return a.sourceIndex?
+-1:1}var m=a.sourceIndex-h.sourceIndex;if(m===0)b=true;return m};else if(document.createRange)c=function(a,h){if(!a.ownerDocument||!h.ownerDocument){if(a==h)b=true;return a.ownerDocument?-1:1}var m=a.ownerDocument.createRange(),p=h.ownerDocument.createRange();m.setStart(a,0);m.setEnd(a,0);p.setStart(h,0);p.setEnd(h,0);m=m.compareBoundaryPoints(Range.START_TO_END,p);if(m===0)b=true;return m};d.getText=function(a){for(var h="",m,p=0;a[p];p++){m=a[p];if(m.nodeType===3||m.nodeType===4)h+=m.nodeValue;
+else if(m.nodeType!==8)h+=d.getText(m.childNodes)}return h};(function(){var a=document.createElement("div"),h="script"+(new Date).getTime();a.innerHTML="<a name='"+h+"'/>";var m=document.documentElement;m.insertBefore(a,m.firstChild);if(document.getElementById(h)){n.find.ID=function(p,t,s){if(typeof t.getElementById!=="undefined"&&!s)return(t=t.getElementById(p[1]))?t.id===p[1]||typeof t.getAttributeNode!=="undefined"&&t.getAttributeNode("id").nodeValue===p[1]?[t]:undefined:[]};n.filter.ID=function(p,
+t){var s=typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id");return p.nodeType===1&&s&&s.nodeValue===t}}m.removeChild(a);m=a=null})();(function(){var a=document.createElement("div");a.appendChild(document.createComment(""));if(a.getElementsByTagName("*").length>0)n.find.TAG=function(h,m){var p=m.getElementsByTagName(h[1]);if(h[1]==="*"){for(var t=[],s=0;p[s];s++)p[s].nodeType===1&&t.push(p[s]);p=t}return p};a.innerHTML="<a href='#'></a>";if(a.firstChild&&typeof a.firstChild.getAttribute!==
+"undefined"&&a.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};a=null})();document.querySelectorAll&&function(){var a=d,h=document.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){d=function(p,t,s,x){t=t||document;if(!x&&t.nodeType===9&&!d.isXML(t))try{return f(t.querySelectorAll(p),s)}catch(y){}return a(p,t,s,x)};for(var m in a)d[m]=a[m];h=null}}();(function(){var a=document.createElement("div");
+a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!a.getElementsByClassName||a.getElementsByClassName("e").length===0)){a.lastChild.className="e";if(a.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,m,p){if(typeof m.getElementsByClassName!=="undefined"&&!p)return m.getElementsByClassName(h[1])};a=null}}})();d.contains=document.compareDocumentPosition?function(a,h){return!!(a.compareDocumentPosition(h)&16)}:function(a,h){return a!==h&&
+(a.contains?a.contains(h):true)};d.isXML=function(a){return(a=(a?a.ownerDocument||a:0).documentElement)?a.nodeName!=="HTML":false};var i=function(a,h){for(var m=[],p="",t,s=h.nodeType?[h]:h;t=n.match.PSEUDO.exec(a);){p+=t[0];a=a.replace(n.match.PSEUDO,"")}a=n.relative[a]?a+"*":a;t=0;for(var x=s.length;t<x;t++)d(a,s[t],m);return d.filter(p,m)};window.tinymce.dom.Sizzle=d})();
+(function(l){var o=l.each,q=l.DOM,k=l.isIE,j;l.create("tinymce.dom.EventUtils",{EventUtils:function(){this.inits=[];this.events=[]},add:function(b,g,d,n){var r,u=this,v=u.events,f;if(g instanceof Array){f=[];o(g,function(e){f.push(u.add(b,e,d,n))});return f}if(b&&b.hasOwnProperty&&b instanceof Array){f=[];o(b,function(e){e=q.get(e);f.push(u.add(e,g,d,n))});return f}if(b=q.get(b)){r=function(e){if(!u.disabled){if((e=e||window.event)&&k){if(!e.target)e.target=e.srcElement;l.extend(e,u._stoppers)}if(!n)return d(e);
+return d.call(n,e)}};if(g=="unload"){l.unloads.unshift({func:r});return r}if(g=="init"){u.domLoaded?r():u.inits.push(r);return r}v.push({obj:b,name:g,func:d,cfunc:r,scope:n});u._add(b,g,r);return d}},remove:function(b,g,d){var n=this,r=n.events,u=false,v;if(b&&b.hasOwnProperty&&b instanceof Array){v=[];o(b,function(f){f=q.get(f);v.push(n.remove(f,g,d))});return v}b=q.get(b);o(r,function(f,e){if(f.obj==b&&f.name==g&&(!d||f.func==d||f.cfunc==d)){r.splice(e,1);n._remove(b,g,f.cfunc);u=true;return false}});
+return u},clear:function(b){var g=this.events,d,n;if(b){b=q.get(b);for(d=g.length-1;d>=0;d--){n=g[d];if(n.obj===b){this._remove(n.obj,n.name,n.cfunc);n.obj=n.cfunc=null;g.splice(d,1)}}}},cancel:function(b){if(!b)return false;this.stop(b);return this.prevent(b)},stop:function(b){if(b.stopPropagation)b.stopPropagation();else b.cancelBubble=true;return false},prevent:function(b){if(b.preventDefault)b.preventDefault();else b.returnValue=false;return false},destroy:function(){var b=this;o(b.events,function(g){b._remove(g.obj,
+g.name,g.cfunc);g.obj=g.cfunc=null});b.events=[];b=null},_add:function(b,g,d){if(b.attachEvent)b.attachEvent("on"+g,d);else if(b.addEventListener)b.addEventListener(g,d,false);else b["on"+g]=d},_remove:function(b,g,d){if(b)try{if(b.detachEvent)b.detachEvent("on"+g,d);else if(b.removeEventListener)b.removeEventListener(g,d,false);else b["on"+g]=null}catch(n){}},_pageInit:function(){if(!this.domLoaded){this.domLoaded=true;o(this.inits,function(b){b()});this.inits=[]}},_wait:function(b){var g=this,d=
+b.document;if(b.tinyMCE_GZ&&tinyMCE_GZ.loaded)g.domLoaded=1;else{if(d.attachEvent){d.attachEvent("onreadystatechange",function(){if(d.readyState==="complete"){d.detachEvent("onreadystatechange",arguments.callee);g._pageInit(b)}});d.documentElement.doScroll&&b==b.top&&function(){if(!g.domLoaded){try{d.documentElement.doScroll("left")}catch(n){setTimeout(arguments.callee,0);return}g._pageInit(b)}}()}else d.addEventListener&&g._add(b,"DOMContentLoaded",function(){g._pageInit(b)});g._add(b,"load",function(){g._pageInit(b)})}},
+_stoppers:{preventDefault:function(){this.returnValue=false},stopPropagation:function(){this.cancelBubble=true}}});j=l.dom.Event=new l.dom.EventUtils;j._wait(window);l.addUnload(function(){j.destroy()})})(tinymce);
+(function(l){l.dom.Element=function(o,q){var k=this,j;k.settings=q=q||{};k.id=o;k.dom=j=q.dom||l.DOM;l.isIE||j.get(k.id);l.each("getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get".split(/,/),function(b){k[b]=function(){var g=[o],d;for(d=0;d<arguments.length;d++)g.push(arguments[d]);g=j[b].apply(j,g);k.update(b);return g}});l.extend(k,{on:function(b,g,d){return l.dom.Event.add(k.id,
+b,g,d)},getXY:function(){return{x:parseInt(k.getStyle("left")),y:parseInt(k.getStyle("top"))}},getSize:function(){var b=j.get(k.id);return{w:parseInt(k.getStyle("width")||b.clientWidth),h:parseInt(k.getStyle("height")||b.clientHeight)}},moveTo:function(b,g){k.setStyles({left:b,top:g})},moveBy:function(b,g){var d=k.getXY();k.moveTo(d.x+b,d.y+g)},resizeTo:function(b,g){k.setStyles({width:b,height:g})},resizeBy:function(b,g){var d=k.getSize();k.resizeTo(d.w+b,d.h+g)},update:function(b){if(l.isIE6&&q.blocker){b=
 b||"";if(!(b.indexOf("get")===0||b.indexOf("has")===0||b.indexOf("is")===0))if(b=="remove")j.remove(k.blocker);else{if(k.blocker)b=j.get(k.blocker);else{k.blocker=j.uniqueId();b=j.add(q.container||j.getRoot(),"iframe",{id:k.blocker,style:"position:absolute;",frameBorder:0,src:'javascript:""'});j.setStyle(b,"opacity",0)}j.setStyles(b,{left:k.getStyle("left",1),top:k.getStyle("top",1),width:k.getStyle("width",1),height:k.getStyle("height",1),display:k.getStyle("display",1),zIndex:parseInt(k.getStyle("zIndex",
 1)||0)-1})}}}})}})(tinymce);
-(function(m){var o=m.is,q=m.isIE,k=m.each;m.create("tinymce.dom.Selection",{Selection:function(j,b,g){var d=this;d.dom=j;d.win=b;d.serializer=g;k(["onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent"],function(l){d[l]=new m.util.Dispatcher(d)});if(!d.win.getSelection)d.tridentSel=new m.dom.TridentSelection(d);m.addUnload(d.destroy,d)},getContent:function(j){var b=this.getRng(),g=this.dom.create("body"),d=this.getSel(),l,r;j=j||{};l=r="";j.get=true;j.format=j.format||"html";this.onBeforeGetContent.dispatch(this,
-j);if(j.format=="text")return this.isCollapsed()?"":b.text||(d.toString?d.toString():"");if(b.cloneContents)(b=b.cloneContents())&&g.appendChild(b);else g.innerHTML=o(b.item)||o(b.htmlText)?b.item?b.item(0).outerHTML:b.htmlText:b.toString();if(/^\s/.test(g.innerHTML))l=" ";if(/\s+$/.test(g.innerHTML))r=" ";j.getInner=true;j.content=this.isCollapsed()?"":l+this.serializer.serialize(g,j)+r;this.onGetContent.dispatch(this,j);return j.content},setContent:function(j,b){var g=this.getRng(),d,l=this.win.document;
-b=b||{format:"html"};b.set=true;b.content=this.dom.processHTML(j);this.onBeforeSetContent.dispatch(this,b);j=b.content;if(g.insertNode){j+='<span id="__caret">_</span>';if(g.startContainer==l&&g.endContainer==l)l.body.innerHTML=j;else{g.deleteContents();if(l.body.childNodes.length==0)l.body.innerHTML=j;else g.insertNode(g.createContextualFragment(j))}d=this.dom.get("__caret");g=l.createRange();g.setStartBefore(d);g.setEndBefore(d);this.setRng(g);this.dom.remove("__caret")}else{if(g.item){l.execCommand("Delete",
+(function(l){var o=l.is,q=l.isIE,k=l.each;l.create("tinymce.dom.Selection",{Selection:function(j,b,g){var d=this;d.dom=j;d.win=b;d.serializer=g;k(["onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent"],function(n){d[n]=new l.util.Dispatcher(d)});if(!d.win.getSelection)d.tridentSel=new l.dom.TridentSelection(d);l.addUnload(d.destroy,d)},getContent:function(j){var b=this.getRng(),g=this.dom.create("body"),d=this.getSel(),n,r;j=j||{};n=r="";j.get=true;j.format=j.format||"html";this.onBeforeGetContent.dispatch(this,
+j);if(j.format=="text")return this.isCollapsed()?"":b.text||(d.toString?d.toString():"");if(b.cloneContents)(b=b.cloneContents())&&g.appendChild(b);else g.innerHTML=o(b.item)||o(b.htmlText)?b.item?b.item(0).outerHTML:b.htmlText:b.toString();if(/^\s/.test(g.innerHTML))n=" ";if(/\s+$/.test(g.innerHTML))r=" ";j.getInner=true;j.content=this.isCollapsed()?"":n+this.serializer.serialize(g,j)+r;this.onGetContent.dispatch(this,j);return j.content},setContent:function(j,b){var g=this.getRng(),d,n=this.win.document;
+b=b||{format:"html"};b.set=true;b.content=this.dom.processHTML(j);this.onBeforeSetContent.dispatch(this,b);j=b.content;if(g.insertNode){j+='<span id="__caret">_</span>';if(g.startContainer==n&&g.endContainer==n)n.body.innerHTML=j;else{g.deleteContents();if(n.body.childNodes.length==0)n.body.innerHTML=j;else g.insertNode(g.createContextualFragment(j))}d=this.dom.get("__caret");g=n.createRange();g.setStartBefore(d);g.setEndBefore(d);this.setRng(g);this.dom.remove("__caret")}else{if(g.item){n.execCommand("Delete",
 false,null);g=this.getRng()}g.pasteHTML(j)}this.onSetContent.dispatch(this,b)},getStart:function(){var j=this.getRng(),b,g;if(j.duplicate||j.item){if(j.item)return j.item(0);b=j.duplicate();b.collapse(1);b=b.parentElement();for(j=g=j.parentElement();g=g.parentNode;)if(g==b){b=j;break}if(b&&b.nodeName=="BODY")return b.firstChild||b}else{b=j.startContainer;if(b.nodeType==1&&b.hasChildNodes())b=b.childNodes[Math.min(b.childNodes.length-1,j.startOffset)];if(b&&b.nodeType==3)return b.parentNode}return b},
-getEnd:function(){var j=this.getRng(),b;if(j.duplicate||j.item){if(j.item)return j.item(0);j=j.duplicate();j.collapse(0);if((b=j.parentElement())&&b.nodeName=="BODY")return b.lastChild||b}else{b=j.endContainer;j=j.endOffset;if(b.nodeType==1&&b.hasChildNodes())b=b.childNodes[j>0?j-1:j];if(b&&b.nodeType==3)return b.parentNode}return b},getBookmark:function(j,b){function g(c,i){var a=0;k(l.select(c),function(h,n){if(h==i)a=n});return a}var d=this,l=d.dom,r,u,v,f,e;if(j==2)return function(){function c(n,
-p){var t=n[p?"startContainer":"endContainer"],s=n[p?"startOffset":"endOffset"],x=[],y,D=0;if(t.nodeType==3){if(b)for(y=t.previousSibling;y&&y.nodeType==3;y=y.previousSibling)s+=y.nodeValue.length;x.push(s)}else{y=t.childNodes;if(s>=y.length&&y.length){D=1;s=Math.max(0,y.length-1)}x.push(d.dom.nodeIndex(y[s],b)+D)}for(;t&&t!=a;t=t.parentNode)x.push(d.dom.nodeIndex(t,b));return x}var i=d.getRng(true),a=l.getRoot(),h={};h.start=c(i,true);if(!d.isCollapsed())h.end=c(i);return h}();if(j)return{rng:d.getRng()};
-r=d.getRng();v=l.uniqueId();f=tinyMCE.activeEditor.selection.isCollapsed();if(r.duplicate||r.item)if(r.item){e=r.item(0);u=e.nodeName;return{name:u,index:g(u,e)}}else{u=r.duplicate();r.collapse();r.pasteHTML('<span _mce_type="bookmark" id="'+v+'_start" style="overflow:hidden;line-height:0px">\ufeff</span>');if(!f){u.collapse(false);u.pasteHTML('<span _mce_type="bookmark" id="'+v+'_end" style="overflow:hidden;line-height:0px">\ufeff</span>')}}else{e=d.getNode();u=e.nodeName;if(u=="IMG")return{name:u,
-index:g(u,e)};u=r.cloneRange();if(!f){u.collapse(false);u.insertNode(l.create("span",{_mce_type:"bookmark",id:v+"_end",style:"overflow:hidden;line-height:0px"},"\ufeff"))}r.collapse(true);r.insertNode(l.create("span",{_mce_type:"bookmark",id:v+"_start",style:"overflow:hidden;line-height:0px"},"\ufeff"))}d.moveToBookmark({id:v,keep:1});return{id:v}},moveToBookmark:function(j){var b=this.dom,g,d,l,r,u,v;this.tridentSel&&this.tridentSel.destroy();if(j)if(j.start){g=b.createRng();d=b.getRoot();var f=
-function(c){var i=j[c?"start":"end"],a,h,n;if(i){h=d;for(a=i.length-1;a>=1;a--){n=h.childNodes;if(n.length)h=n[i[a]]}c?g.setStart(h,i[0]):g.setEnd(h,i[0])}};f(true);f();this.setRng(g)}else if(j.id){f=function(c){var i=b.get(j.id+"_"+c),a,h,n;n=j.keep;if(i){a=i.parentNode;if(c=="start"){if(n){a=i.firstChild;h=1}else h=b.nodeIndex(i);l=r=a;u=v=h}else{if(n){a=i.firstChild;h=1}else h=b.nodeIndex(i);r=a;v=h}if(!n){n=i.previousSibling;a=i.nextSibling;for(k(m.grep(i.childNodes),function(p){if(p.nodeType==
-3)p.nodeValue=p.nodeValue.replace(/\uFEFF/g,"")});i=b.get(j.id+"_"+c);)b.remove(i,1);if(n&&a&&n.nodeType==a.nodeType&&n.nodeType==3){h=n.nodeValue.length;n.appendData(a.nodeValue);b.remove(a);if(c=="start"){l=r=n;u=v=h}else{r=n;v=h}}}}};var e=function(c){if(!q&&b.isBlock(c)&&!c.innerHTML)c.innerHTML='<br _mce_bogus="1" />';return c};f("start");f("end");g=b.createRng();g.setStart(e(l),u);g.setEnd(e(r),v);this.setRng(g)}else if(j.name)this.select(b.select(j.name)[j.index]);else j.rng&&this.setRng(j.rng)},
-select:function(j,b){var g=this.dom,d=g.createRng();g=g.nodeIndex(j);d.setStart(j.parentNode,g);d.setEnd(j.parentNode,g+1);if(b){g=function(l,r){var u=new m.dom.TreeWalker(l,l);do{if(l.nodeType==3&&m.trim(l.nodeValue).length!=0){r?d.setStart(l,0):d.setEnd(l,l.nodeValue.length);break}if(l.nodeName=="BR"){r?d.setStartBefore(l):d.setEndBefore(l);break}}while(l=r?u.next():u.prev())};g(j,1);g(j)}this.setRng(d);return j},isCollapsed:function(){var j=this.getRng(),b=this.getSel();if(!j||j.item)return false;
+getEnd:function(){var j=this.getRng(),b;if(j.duplicate||j.item){if(j.item)return j.item(0);j=j.duplicate();j.collapse(0);if((b=j.parentElement())&&b.nodeName=="BODY")return b.lastChild||b}else{b=j.endContainer;j=j.endOffset;if(b.nodeType==1&&b.hasChildNodes())b=b.childNodes[j>0?j-1:j];if(b&&b.nodeType==3)return b.parentNode}return b},getBookmark:function(j,b){function g(c,i){var a=0;k(n.select(c),function(h,m){if(h==i)a=m});return a}var d=this,n=d.dom,r,u,v,f,e;if(j==2)return function(){function c(m,
+p){var t=m[p?"startContainer":"endContainer"],s=m[p?"startOffset":"endOffset"],x=[],y,C=0;if(t.nodeType==3){if(b)for(y=t.previousSibling;y&&y.nodeType==3;y=y.previousSibling)s+=y.nodeValue.length;x.push(s)}else{y=t.childNodes;if(s>=y.length&&y.length){C=1;s=Math.max(0,y.length-1)}x.push(d.dom.nodeIndex(y[s],b)+C)}for(;t&&t!=a;t=t.parentNode)x.push(d.dom.nodeIndex(t,b));return x}var i=d.getRng(true),a=n.getRoot(),h={};h.start=c(i,true);if(!d.isCollapsed())h.end=c(i);return h}();if(j)return{rng:d.getRng()};
+r=d.getRng();v=n.uniqueId();f=tinyMCE.activeEditor.selection.isCollapsed();if(r.duplicate||r.item)if(r.item){e=r.item(0);u=e.nodeName;return{name:u,index:g(u,e)}}else{u=r.duplicate();r.collapse();r.pasteHTML('<span _mce_type="bookmark" id="'+v+'_start" style="overflow:hidden;line-height:0px">\ufeff</span>');if(!f){u.collapse(false);u.pasteHTML('<span _mce_type="bookmark" id="'+v+'_end" style="overflow:hidden;line-height:0px">\ufeff</span>')}}else{e=d.getNode();u=e.nodeName;if(u=="IMG")return{name:u,
+index:g(u,e)};u=r.cloneRange();if(!f){u.collapse(false);u.insertNode(n.create("span",{_mce_type:"bookmark",id:v+"_end",style:"overflow:hidden;line-height:0px"},"\ufeff"))}r.collapse(true);r.insertNode(n.create("span",{_mce_type:"bookmark",id:v+"_start",style:"overflow:hidden;line-height:0px"},"\ufeff"))}d.moveToBookmark({id:v,keep:1});return{id:v}},moveToBookmark:function(j){var b=this.dom,g,d,n,r,u,v;this.tridentSel&&this.tridentSel.destroy();if(j)if(j.start){g=b.createRng();d=b.getRoot();var f=
+function(c){var i=j[c?"start":"end"],a,h,m;if(i){h=d;for(a=i.length-1;a>=1;a--){m=h.childNodes;if(m.length)h=m[i[a]]}c?g.setStart(h,i[0]):g.setEnd(h,i[0])}};f(true);f();this.setRng(g)}else if(j.id){f=function(c){var i=b.get(j.id+"_"+c),a,h,m;m=j.keep;if(i){a=i.parentNode;if(c=="start"){if(m){a=i.firstChild;h=1}else h=b.nodeIndex(i);n=r=a;u=v=h}else{if(m){a=i.firstChild;h=1}else h=b.nodeIndex(i);r=a;v=h}if(!m){m=i.previousSibling;a=i.nextSibling;for(k(l.grep(i.childNodes),function(p){if(p.nodeType==
+3)p.nodeValue=p.nodeValue.replace(/\uFEFF/g,"")});i=b.get(j.id+"_"+c);)b.remove(i,1);if(m&&a&&m.nodeType==a.nodeType&&m.nodeType==3){h=m.nodeValue.length;m.appendData(a.nodeValue);b.remove(a);if(c=="start"){n=r=m;u=v=h}else{r=m;v=h}}}}};var e=function(c){if(!q&&b.isBlock(c)&&!c.innerHTML)c.innerHTML='<br _mce_bogus="1" />';return c};f("start");f("end");g=b.createRng();g.setStart(e(n),u);g.setEnd(e(r),v);this.setRng(g)}else if(j.name)this.select(b.select(j.name)[j.index]);else j.rng&&this.setRng(j.rng)},
+select:function(j,b){var g=this.dom,d=g.createRng();g=g.nodeIndex(j);d.setStart(j.parentNode,g);d.setEnd(j.parentNode,g+1);if(b){g=function(n,r){var u=new l.dom.TreeWalker(n,n);do{if(n.nodeType==3&&l.trim(n.nodeValue).length!=0){r?d.setStart(n,0):d.setEnd(n,n.nodeValue.length);break}if(n.nodeName=="BR"){r?d.setStartBefore(n):d.setEndBefore(n);break}}while(n=r?u.next():u.prev())};g(j,1);g(j)}this.setRng(d);return j},isCollapsed:function(){var j=this.getRng(),b=this.getSel();if(!j||j.item)return false;
 if(j.compareEndPoints)return j.compareEndPoints("StartToEnd",j)===0;return!b||j.collapsed},collapse:function(j){var b=this.getRng(),g;if(b.item){g=b.item(0);b=this.win.document.body.createTextRange();b.moveToElementText(g)}b.collapse(!!j);this.setRng(b)},getSel:function(){var j=this.win;return j.getSelection?j.getSelection():j.document.selection},getRng:function(j){var b,g;if(j&&this.tridentSel)return this.tridentSel.getRangeAt(0);try{if(b=this.getSel())g=b.rangeCount>0?b.getRangeAt(0):b.createRange?
 b.createRange():this.win.document.createRange()}catch(d){}g||(g=this.win.document.createRange?this.win.document.createRange():this.win.document.body.createTextRange());if(this.selectedRange&&this.explicitRange)if(g.compareBoundaryPoints(g.START_TO_START,this.selectedRange)===0&&g.compareBoundaryPoints(g.END_TO_END,this.selectedRange)===0)g=this.explicitRange;else this.explicitRange=this.selectedRange=null;return g},setRng:function(j){var b;if(this.tridentSel)if(j.cloneRange)this.tridentSel.addRange(j);
 else try{j.select()}catch(g){}else if(b=this.getSel()){this.explicitRange=j;b.removeAllRanges();b.addRange(j);this.selectedRange=b.getRangeAt(0)}},setNode:function(j){this.setContent(this.dom.getOuterHTML(j));return j},getNode:function(){var j=this.getRng(),b=this.getSel(),g;if(j.setStart){if(!j)return this.dom.getRoot();g=j.commonAncestorContainer;if(!j.collapsed){if(j.startContainer==j.endContainer)if(j.startOffset-j.endOffset<2)if(j.startContainer.hasChildNodes())g=j.startContainer.childNodes[j.startOffset];
-if(m.isWebKit&&b.anchorNode&&b.anchorNode.nodeType==1)return b.anchorNode.childNodes[b.anchorOffset]}if(g&&g.nodeType==3)return g.parentNode;return g}return j.item?j.item(0):j.parentElement()},getSelectedBlocks:function(j,b){var g=this.dom,d,l,r,u=[];d=g.getParent(j||this.getStart(),g.isBlock);l=g.getParent(b||this.getEnd(),g.isBlock);d&&u.push(d);if(d&&l&&d!=l)for(r=d;(r=r.nextSibling)&&r!=l;)g.isBlock(r)&&u.push(r);l&&d!=l&&u.push(l);return u},destroy:function(j){this.win=null;this.tridentSel&&
-this.tridentSel.destroy();j||m.removeUnload(this.destroy)}})})(tinymce);
-(function(m){m.create("tinymce.dom.XMLWriter",{node:null,XMLWriter:function(){this.doc=function(){var o=document.implementation;if(!o||!o.createDocument){try{return new ActiveXObject("MSXML2.DOMDocument")}catch(q){}try{return new ActiveXObject("Microsoft.XmlDom")}catch(k){}}else return o.createDocument("","",null)}();this.valid=m.isOpera||m.isWebKit;this.reset()},reset:function(){var o=this.doc;o.firstChild&&o.removeChild(o.firstChild);this.node=o.appendChild(o.createElement("html"))},writeStartElement:function(o){this.node=
+if(l.isWebKit&&b.anchorNode&&b.anchorNode.nodeType==1)return b.anchorNode.childNodes[b.anchorOffset]}if(g&&g.nodeType==3)return g.parentNode;return g}return j.item?j.item(0):j.parentElement()},getSelectedBlocks:function(j,b){var g=this.dom,d,n,r,u=[];d=g.getParent(j||this.getStart(),g.isBlock);n=g.getParent(b||this.getEnd(),g.isBlock);d&&u.push(d);if(d&&n&&d!=n)for(r=d;(r=r.nextSibling)&&r!=n;)g.isBlock(r)&&u.push(r);n&&d!=n&&u.push(n);return u},destroy:function(j){this.win=null;this.tridentSel&&
+this.tridentSel.destroy();j||l.removeUnload(this.destroy)}})})(tinymce);
+(function(l){l.create("tinymce.dom.XMLWriter",{node:null,XMLWriter:function(){this.doc=function(){var o=document.implementation;if(!o||!o.createDocument){try{return new ActiveXObject("MSXML2.DOMDocument")}catch(q){}try{return new ActiveXObject("Microsoft.XmlDom")}catch(k){}}else return o.createDocument("","",null)}();this.valid=l.isOpera||l.isWebKit;this.reset()},reset:function(){var o=this.doc;o.firstChild&&o.removeChild(o.firstChild);this.node=o.appendChild(o.createElement("html"))},writeStartElement:function(o){this.node=
 this.node.appendChild(this.doc.createElement(o))},writeAttribute:function(o,q){if(this.valid)q=q.replace(/>/g,"%MCGT%");this.node.setAttribute(o,q)},writeEndElement:function(){this.node=this.node.parentNode},writeFullEndElement:function(){var o=this.node;o.appendChild(this.doc.createTextNode(""));this.node=o.parentNode},writeText:function(o){if(this.valid)o=o.replace(/>/g,"%MCGT%");this.node.appendChild(this.doc.createTextNode(o))},writeCDATA:function(o){this.node.appendChild(this.doc.createCDATASection(o))},
-writeComment:function(o){if(m.isIE)o=o.replace(/^\-|\-$/g," ");this.node.appendChild(this.doc.createComment(o.replace(/\-\-/g," ")))},getContent:function(){var o;o=this.doc.xml||(new XMLSerializer).serializeToString(this.doc);o=o.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g,"");o=o.replace(/ ?\/>/g," />");if(this.valid)o=o.replace(/\%MCGT%/g,"&gt;");return o}})})(tinymce);
-(function(m){m.create("tinymce.dom.StringWriter",{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(o){this.settings=m.extend({indent_char:" ",indentation:0},o);this.reset()},reset:function(){this.str=this.indent="";this.tags=[];this.count=0},writeStartElement:function(o){this._writeAttributesEnd();this.writeRaw("<"+o);this.tags.push(o);this.inAttr=true;this.count++;this.elementCount=this.count},writeAttribute:function(o,q){this.writeRaw(" "+this.encode(o)+'="'+this.encode(q)+
+writeComment:function(o){if(l.isIE)o=o.replace(/^\-|\-$/g," ");this.node.appendChild(this.doc.createComment(o.replace(/\-\-/g," ")))},getContent:function(){var o;o=this.doc.xml||(new XMLSerializer).serializeToString(this.doc);o=o.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g,"");o=o.replace(/ ?\/>/g," />");if(this.valid)o=o.replace(/\%MCGT%/g,"&gt;");return o}})})(tinymce);
+(function(l){l.create("tinymce.dom.StringWriter",{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(o){this.settings=l.extend({indent_char:" ",indentation:0},o);this.reset()},reset:function(){this.str=this.indent="";this.tags=[];this.count=0},writeStartElement:function(o){this._writeAttributesEnd();this.writeRaw("<"+o);this.tags.push(o);this.inAttr=true;this.count++;this.elementCount=this.count},writeAttribute:function(o,q){this.writeRaw(" "+this.encode(o)+'="'+this.encode(q)+
 '"')},writeEndElement:function(){var o;if(this.tags.length>0){o=this.tags.pop();this._writeAttributesEnd(1)&&this.writeRaw("</"+o+">");this.settings.indentation>0&&this.writeRaw("\n")}},writeFullEndElement:function(){if(this.tags.length>0){this._writeAttributesEnd();this.writeRaw("</"+this.tags.pop()+">");this.settings.indentation>0&&this.writeRaw("\n")}},writeText:function(o){this._writeAttributesEnd();this.writeRaw(this.encode(o));this.count++},writeCDATA:function(o){this._writeAttributesEnd();
-this.writeRaw("<![CDATA["+o+"]]\>");this.count++},writeComment:function(o){this._writeAttributesEnd();this.writeRaw("<!-- "+o+"--\>");this.count++},writeRaw:function(o){this.str+=o},encode:function(o){return o.replace(/[<>&"]/g,function(q){switch(q){case "<":return"&lt;";case ">":return"&gt;";case "&":return"&amp;";case '"':return"&quot;"}return q})},getContent:function(){return this.str},_writeAttributesEnd:function(o){if(this.inAttr){this.inAttr=false;if(o&&this.elementCount==this.count){this.writeRaw(" />");
+this.writeRaw("<![CDATA["+o+"]]\>");this.count++},writeComment:function(o){this._writeAttributesEnd();this.writeRaw("<\!-- "+o+"--\>");this.count++},writeRaw:function(o){this.str+=o},encode:function(o){return o.replace(/[<>&"]/g,function(q){switch(q){case "<":return"&lt;";case ">":return"&gt;";case "&":return"&amp;";case '"':return"&quot;"}return q})},getContent:function(){return this.str},_writeAttributesEnd:function(o){if(this.inAttr){this.inAttr=false;if(o&&this.elementCount==this.count){this.writeRaw(" />");
 return false}this.writeRaw(">");return true}}})})(tinymce);
-(function(m){function o(d){return d.replace(/([?+*])/g,".$1")}var q=m.extend,k=m.each,j=m.util.Dispatcher,b=m.isIE,g=m.isGecko;m.create("tinymce.dom.Serializer",{Serializer:function(d){var l=this;l.key=0;l.onPreProcess=new j(l);l.onPostProcess=new j(l);try{l.writer=new m.dom.XMLWriter}catch(r){l.writer=new m.dom.StringWriter}l.settings=d=q({dom:m.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(_mce_|_moz_|sizset|sizcache)/,closed:/^(br|hr|input|meta|img|link|param|area)$/,entity_encoding:"named",
+(function(l){function o(d){return d.replace(/([?+*])/g,".$1")}var q=l.extend,k=l.each,j=l.util.Dispatcher,b=l.isIE,g=l.isGecko;l.create("tinymce.dom.Serializer",{Serializer:function(d){var n=this;n.key=0;n.onPreProcess=new j(n);n.onPostProcess=new j(n);try{n.writer=new l.dom.XMLWriter}catch(r){n.writer=new l.dom.StringWriter}n.settings=d=q({dom:l.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(_mce_|_moz_|sizset|sizcache)/,closed:/^(br|hr|input|meta|img|link|param|area)$/,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,invalid_elements:0,fix_table_elements:1,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,apply_source_formatting:0,indent_mode:"simple",indent_char:"\t",indent_levels:1,remove_linebreaks:1,remove_redundant_brs:1,element_format:"xhtml"},d);l.dom=d.dom;l.schema=d.schema;if(d.entity_encoding=="named"&&!d.entities)d.entity_encoding="raw";d.remove_redundant_brs&&l.onPostProcess.add(function(u,v){v.content=
-v.content.replace(/(<br \/>\s*)+<\/(p|h[1-6]|div|li)>/gi,function(f,e,c){if(/^<br \/>\s*<\//.test(f))return"</"+c+">";return f})});d.element_format=="html"&&l.onPostProcess.add(function(u,v){v.content=v.content.replace(/<([^>]+) \/>/g,"<$1>")});d.fix_list_elements&&l.onPreProcess.add(function(u,v){function f(s,x){for(var y=x.split(","),D;(s=s.previousSibling)!=null;)for(D=0;D<y.length;D++)if(s.nodeName==y[D])return s;return null}var e,c,i=["ol","ul"],a,h,n,p=/^(OL|UL)$/,t;for(c=0;c<i.length;c++){e=
-l.dom.select(i[c],v.node);for(a=0;a<e.length;a++){h=e[a];n=h.parentNode;if(p.test(n.nodeName))if(t=f(h,"LI"))t.appendChild(h);else{t=l.dom.create("li");t.innerHTML="&nbsp;";t.appendChild(h);n.insertBefore(t,n.firstChild)}}}});d.fix_table_elements&&l.onPreProcess.add(function(u,v){if(!m.isOpera||opera.buildNumber()>=1767)k(l.dom.select("p table",v.node).reverse(),function(f){var e=l.dom.getParent(f.parentNode,"table,p");if(e.nodeName!="TABLE")try{l.dom.split(e,f)}catch(c){}})})},setEntities:function(d){var l,
-r={},u;if(!this.entityLookup){d=d.split(",");for(l=0;l<d.length;l+=2){u=d[l];if(!(u==34||u==38||u==60||u==62)){r[String.fromCharCode(d[l])]=d[l+1];parseInt(d[l]).toString(16)}}this.entityLookup=r}},setRules:function(d){this._setup();this.rules={};this.wildRules=[];this.validElements={};return this.addRules(d)},addRules:function(d){var l=this,r;if(d){l._setup();k(d.split(","),function(u){u=u.split(/\[|\]/);var v=u[0].split("/"),f,e,c,i=[];if(r)e=m.extend([],r.attribs);u.length>1&&k(u[1].split("|"),
-function(a){var h={},n;e=e||[];a=a.replace(/::/g,"~");a=/^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(a);a[2]=a[2].replace(/~/g,":");if(a[1]=="!"){f=f||[];f.push(a[2])}if(a[1]=="-")for(n=0;n<e.length;n++)if(e[n].name==a[2]){e.splice(n,1);return}switch(a[3]){case "=":h.defaultVal=a[4]||"";break;case ":":h.forcedVal=a[4];break;case "<":h.validVals=a[4].split("?")}if(/[*.?]/.test(a[2])){c=c||[];h.nameRE=RegExp("^"+o(a[2])+"$");c.push(h)}else{h.name=a[2];e.push(h)}i.push(a[2])});k(v,function(a,h){var n=
-a.charAt(0),p=1,t={};if(r){if(r.noEmpty)t.noEmpty=r.noEmpty;if(r.fullEnd)t.fullEnd=r.fullEnd;if(r.padd)t.padd=r.padd}switch(n){case "-":t.noEmpty=true;break;case "+":t.fullEnd=true;break;case "#":t.padd=true;break;default:p=0}v[h]=a=a.substring(p);l.validElements[a]=1;if(/[*.?]/.test(v[0])){t.nameRE=RegExp("^"+o(v[0])+"$");l.wildRules=l.wildRules||{};l.wildRules.push(t)}else{t.name=v[0];if(v[0]=="@")r=t;l.rules[a]=t}t.attribs=e;if(f)t.requiredAttribs=f;if(c){a="";k(i,function(s){if(a)a+="|";a+="("+
-o(s)+")"});t.validAttribsRE=RegExp("^"+a.toLowerCase()+"$");t.wildAttribs=c}})});d="";k(l.validElements,function(u,v){if(d)d+="|";if(v!="@")d+=v});l.validElementsRE=RegExp("^("+o(d.toLowerCase())+")$")}},findRule:function(d){var l=this.rules,r;this._setup();if(l=l[d])return l;l=this.wildRules;for(r=0;r<l.length;r++)if(l[r].nameRE.test(d))return l[r];return null},findAttribRule:function(d,l){var r,u=d.wildAttribs;for(r=0;r<u.length;r++)if(u[r].nameRE.test(l))return u[r];return null},serialize:function(d,
-l){var r=this,u,v,f,e;r._setup();l=l||{};l.format=l.format||"html";r.processObj=l;if(b){e=[];k(d.getElementsByTagName("option"),function(c){c=r.dom.getAttrib(c,"selected");e.push(c?c:null)})}d=d.cloneNode(true);b&&k(d.getElementsByTagName("option"),function(c,i){r.dom.setAttrib(c,"selected",e[i])});f=d.ownerDocument.implementation;if(f.createHTMLDocument&&m.isOpera&&opera.buildNumber()>=1767){u=f.createHTMLDocument("");k(d.nodeName=="BODY"?d.childNodes:[d],function(c){u.body.appendChild(u.importNode(c,
-true))});d=d.nodeName!="BODY"?u.body.firstChild:u.body;v=r.dom.doc;r.dom.doc=u}r.key=""+(parseInt(r.key)+1);if(!l.no_events){l.node=d;r.onPreProcess.dispatch(r,l)}r.writer.reset();r._info=l;r._serializeNode(d,l.getInner);l.content=r.writer.getContent();if(v)r.dom.doc=v;l.no_events||r.onPostProcess.dispatch(r,l);r._postProcess(l);l.node=null;return m.trim(l.content)},_postProcess:function(d){var l=this,r=l.settings,u=d.content,v;if(d.format=="html"){v=l._protect({content:u,patterns:[{pattern:/(<script[^>]*>)(.*?)(<\/script>)/g},
-{pattern:/(<noscript[^>]*>)(.*?)(<\/noscript>)/g},{pattern:/(<style[^>]*>)(.*?)(<\/style>)/g},{pattern:/(<pre[^>]*>)(.*?)(<\/pre>)/g,encode:1},{pattern:/(<!--\[CDATA\[)(.*?)(\]\]--\>)/g}]});u=v.content;if(r.entity_encoding!=="raw")u=l._encode(u);if(!d.set){u=u.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g,r.entity_encoding=="numeric"?"<p$1>&#160;</p>":"<p$1>&nbsp;</p>");if(r.remove_linebreaks){u=u.replace(/\r?\n|\r/g," ");u=u.replace(/(<[^>]+>)\s+/g,"$1 ");u=u.replace(/\s+(<\/[^>]+>)/g," $1");u=u.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g,
+valid_elements:"*[*]",extended_valid_elements:0,invalid_elements:0,fix_table_elements:1,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,apply_source_formatting:0,indent_mode:"simple",indent_char:"\t",indent_levels:1,remove_linebreaks:1,remove_redundant_brs:1,element_format:"xhtml"},d);n.dom=d.dom;n.schema=d.schema;if(d.entity_encoding=="named"&&!d.entities)d.entity_encoding="raw";d.remove_redundant_brs&&n.onPostProcess.add(function(u,v){v.content=
+v.content.replace(/(<br \/>\s*)+<\/(p|h[1-6]|div|li)>/gi,function(f,e,c){if(/^<br \/>\s*<\//.test(f))return"</"+c+">";return f})});d.element_format=="html"&&n.onPostProcess.add(function(u,v){v.content=v.content.replace(/<([^>]+) \/>/g,"<$1>")});d.fix_list_elements&&n.onPreProcess.add(function(u,v){function f(s,x){for(var y=x.split(","),C;(s=s.previousSibling)!=null;)for(C=0;C<y.length;C++)if(s.nodeName==y[C])return s;return null}var e,c,i=["ol","ul"],a,h,m,p=/^(OL|UL)$/,t;for(c=0;c<i.length;c++){e=
+n.dom.select(i[c],v.node);for(a=0;a<e.length;a++){h=e[a];m=h.parentNode;if(p.test(m.nodeName))if(t=f(h,"LI"))t.appendChild(h);else{t=n.dom.create("li");t.innerHTML="&nbsp;";t.appendChild(h);m.insertBefore(t,m.firstChild)}}}});d.fix_table_elements&&n.onPreProcess.add(function(u,v){if(!l.isOpera||opera.buildNumber()>=1767)k(n.dom.select("p table",v.node).reverse(),function(f){var e=n.dom.getParent(f.parentNode,"table,p");if(e.nodeName!="TABLE")try{n.dom.split(e,f)}catch(c){}})})},setEntities:function(d){var n,
+r={},u;if(!this.entityLookup){d=d.split(",");for(n=0;n<d.length;n+=2){u=d[n];if(!(u==34||u==38||u==60||u==62)){r[String.fromCharCode(d[n])]=d[n+1];parseInt(d[n]).toString(16)}}this.entityLookup=r}},setRules:function(d){this._setup();this.rules={};this.wildRules=[];this.validElements={};return this.addRules(d)},addRules:function(d){var n=this,r;if(d){n._setup();k(d.split(","),function(u){u=u.split(/\[|\]/);var v=u[0].split("/"),f,e,c,i=[];if(r)e=l.extend([],r.attribs);u.length>1&&k(u[1].split("|"),
+function(a){var h={},m;e=e||[];a=a.replace(/::/g,"~");a=/^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(a);a[2]=a[2].replace(/~/g,":");if(a[1]=="!"){f=f||[];f.push(a[2])}if(a[1]=="-")for(m=0;m<e.length;m++)if(e[m].name==a[2]){e.splice(m,1);return}switch(a[3]){case "=":h.defaultVal=a[4]||"";break;case ":":h.forcedVal=a[4];break;case "<":h.validVals=a[4].split("?")}if(/[*.?]/.test(a[2])){c=c||[];h.nameRE=RegExp("^"+o(a[2])+"$");c.push(h)}else{h.name=a[2];e.push(h)}i.push(a[2])});k(v,function(a,h){var m=
+a.charAt(0),p=1,t={};if(r){if(r.noEmpty)t.noEmpty=r.noEmpty;if(r.fullEnd)t.fullEnd=r.fullEnd;if(r.padd)t.padd=r.padd}switch(m){case "-":t.noEmpty=true;break;case "+":t.fullEnd=true;break;case "#":t.padd=true;break;default:p=0}v[h]=a=a.substring(p);n.validElements[a]=1;if(/[*.?]/.test(v[0])){t.nameRE=RegExp("^"+o(v[0])+"$");n.wildRules=n.wildRules||{};n.wildRules.push(t)}else{t.name=v[0];if(v[0]=="@")r=t;n.rules[a]=t}t.attribs=e;if(f)t.requiredAttribs=f;if(c){a="";k(i,function(s){if(a)a+="|";a+="("+
+o(s)+")"});t.validAttribsRE=RegExp("^"+a.toLowerCase()+"$");t.wildAttribs=c}})});d="";k(n.validElements,function(u,v){if(d)d+="|";if(v!="@")d+=v});n.validElementsRE=RegExp("^("+o(d.toLowerCase())+")$")}},findRule:function(d){var n=this.rules,r;this._setup();if(n=n[d])return n;n=this.wildRules;for(r=0;r<n.length;r++)if(n[r].nameRE.test(d))return n[r];return null},findAttribRule:function(d,n){var r,u=d.wildAttribs;for(r=0;r<u.length;r++)if(u[r].nameRE.test(n))return u[r];return null},serialize:function(d,
+n){var r=this,u,v,f,e;r._setup();n=n||{};n.format=n.format||"html";r.processObj=n;if(b){e=[];k(d.getElementsByTagName("option"),function(c){c=r.dom.getAttrib(c,"selected");e.push(c?c:null)})}d=d.cloneNode(true);b&&k(d.getElementsByTagName("option"),function(c,i){r.dom.setAttrib(c,"selected",e[i])});f=d.ownerDocument.implementation;if(f.createHTMLDocument&&l.isOpera&&opera.buildNumber()>=1767){u=f.createHTMLDocument("");k(d.nodeName=="BODY"?d.childNodes:[d],function(c){u.body.appendChild(u.importNode(c,
+true))});d=d.nodeName!="BODY"?u.body.firstChild:u.body;v=r.dom.doc;r.dom.doc=u}r.key=""+(parseInt(r.key)+1);if(!n.no_events){n.node=d;r.onPreProcess.dispatch(r,n)}r.writer.reset();r._info=n;r._serializeNode(d,n.getInner);n.content=r.writer.getContent();if(v)r.dom.doc=v;n.no_events||r.onPostProcess.dispatch(r,n);r._postProcess(n);n.node=null;return l.trim(n.content)},_postProcess:function(d){var n=this,r=n.settings,u=d.content,v;if(d.format=="html"){v=n._protect({content:u,patterns:[{pattern:/(<script[^>]*>)(.*?)(<\/script>)/g},
+{pattern:/(<noscript[^>]*>)(.*?)(<\/noscript>)/g},{pattern:/(<style[^>]*>)(.*?)(<\/style>)/g},{pattern:/(<pre[^>]*>)(.*?)(<\/pre>)/g,encode:1},{pattern:/(<\!--\[CDATA\[)(.*?)(\]\]--\>)/g}]});u=v.content;if(r.entity_encoding!=="raw")u=n._encode(u);if(!d.set){u=u.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g,r.entity_encoding=="numeric"?"<p$1>&#160;</p>":"<p$1>&nbsp;</p>");if(r.remove_linebreaks){u=u.replace(/\r?\n|\r/g," ");u=u.replace(/(<[^>]+>)\s+/g,"$1 ");u=u.replace(/\s+(<\/[^>]+>)/g," $1");u=u.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>");u=u.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>");u=u.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(r.apply_source_formatting&&r.indent_mode=="simple"){u=u.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g,"\n<$1$2$3>\n");u=u.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g,
-"\n<$1$2>");u=u.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g,"</$1>\n");u=u.replace(/\n\n/g,"\n")}}u=l._unprotect(u,v);u=u.replace(/<!--\[CDATA\[([\s\S]+)\]\]--\>/g,"<![CDATA[$1]]\>");if(r.entity_encoding=="raw")u=u.replace(/<p>&nbsp;<\/p>|<p([^>]+)>&nbsp;<\/p>/g,"<p$1>\u00a0</p>");u=u.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g,function(f,e,c){return"<noscript"+e+">"+l.dom.decode(c.replace(/<!--|--\>/g,""))+"</noscript>"})}d.content=u},_serializeNode:function(d,
-l){var r=this.settings,u=this.writer,v,f,e,c,i,a,h,n,p,t,s,x,y;if(!r.node_filter||r.node_filter(d))switch(d.nodeType){case 1:if(d.hasAttribute?d.hasAttribute("_mce_bogus"):d.getAttribute("_mce_bogus"))return;t=x=false;v=d.hasChildNodes();n=d.getAttribute("_mce_name")||d.nodeName.toLowerCase();if(y=d.getAttribute("_mce_type"))if(this._info.cleanup)x=1;else return;if(b)if(d.scopeName!=="HTML"&&d.scopeName!=="html")n=d.scopeName+":"+n;if(n.indexOf("mce:")===0)n=n.substring(4);if(!x)if(!this.validElementsRE||
-!this.validElementsRE.test(n)||this.invalidElementsRE&&this.invalidElementsRE.test(n)||l){t=true;break}if(b){if(r.fix_content_duplication){if(d._mce_serialized==this.key)return;d._mce_serialized=this.key}if(n.charAt(0)=="/")n=n.substring(1)}else if(g)if(d.nodeName==="BR"&&d.getAttribute("type")=="_moz")return;if(r.validate_children){if(this.elementName&&!this.schema.isValid(this.elementName,n)){t=true;break}this.elementName=n}p=this.findRule(n);if(!p){t=true;break}n=p.name||n;s=r.closed.test(n);if(!v&&
-p.noEmpty||b&&!n){t=true;break}if(p.requiredAttribs){i=p.requiredAttribs;for(e=i.length-1;e>=0;e--)if(this.dom.getAttrib(d,i[e])!=="")break;if(e==-1){t=true;break}}u.writeStartElement(n);if(p.attribs){e=0;a=p.attribs;for(c=a.length;e<c;e++){i=a[e];h=this._getAttrib(d,i);h!==null&&u.writeAttribute(i.name,h)}}if(p.validAttribsRE){a=this.dom.getAttribs(d);for(e=a.length-1;e>-1;e--){i=a[e];if(i.specified){i=i.nodeName.toLowerCase();if(!(r.invalid_attrs.test(i)||!p.validAttribsRE.test(i))){c=this.findAttribRule(p,
-i);h=this._getAttrib(d,c,i);h!==null&&u.writeAttribute(i,h)}}}}y&&x&&u.writeAttribute("_mce_type",y);if(n==="script"&&m.trim(d.innerHTML)){u.writeText("// ");u.writeCDATA(d.innerHTML.replace(/<!--|--\>|<\[CDATA\[|\]\]>/g,""));v=false;break}if(p.padd)if(v&&(f=d.firstChild)&&f.nodeType===1&&d.childNodes.length===1){if(f.hasAttribute?f.hasAttribute("_mce_bogus"):f.getAttribute("_mce_bogus"))u.writeText("\u00a0")}else v||u.writeText("\u00a0");break;case 3:if(r.validate_children&&this.elementName&&!this.schema.isValid(this.elementName,
-"#text"))return;return u.writeText(d.nodeValue);case 4:return u.writeCDATA(d.nodeValue);case 8:return u.writeComment(d.nodeValue)}else if(d.nodeType==1)v=d.hasChildNodes();if(v&&!s)for(f=d.firstChild;f;){this._serializeNode(f);this.elementName=n;f=f.nextSibling}t||(s?u.writeEndElement():u.writeFullEndElement())},_protect:function(d){function l(v){return v.replace(/[\r\n\\]/g,function(f){if(f==="\n")return"\\n";else if(f==="\\")return"\\\\";return"\\r"})}function r(v){return v.replace(/\\[\\rn]/g,
-function(f){if(f==="\\n")return"\n";else if(f==="\\\\")return"\\";return"\r"})}var u=this;d.items=d.items||[];k(d.patterns,function(v){d.content=r(l(d.content).replace(v.pattern,function(f,e,c,i){c=r(c);if(v.encode)c=u._encode(c);d.items.push(c);return e+"<!--mce:"+(d.items.length-1)+"--\>"+i}))});return d},_unprotect:function(d,l){d=d.replace(/\<!--mce:([0-9]+)--\>/g,function(r,u){return l.items[parseInt(u)]});l.items=[];return d},_encode:function(d){var l=this.settings,r;if(l.entity_encoding!==
-"raw"){if(l.entity_encoding.indexOf("named")!=-1){this.setEntities(l.entities);r=this.entityLookup;d=d.replace(/[\u007E-\uFFFF]/g,function(u){var v;if(v=r[u])u="&"+v+";";return u})}if(l.entity_encoding.indexOf("numeric")!=-1)d=d.replace(/[\u007E-\uFFFF]/g,function(u){return"&#"+u.charCodeAt(0)+";"})}return d},_setup:function(){var d=this.settings;if(!this.done){this.done=1;this.setRules(d.valid_elements);this.addRules(d.extended_valid_elements);if(d.invalid_elements)this.invalidElementsRE=RegExp("^("+
-o(d.invalid_elements.replace(/,/g,"|").toLowerCase())+")$");if(d.attrib_value_filter)this.attribValueFilter=d.attribValueFilter}},_getAttrib:function(d,l,r){var u;r=r||l.name;if(l.forcedVal&&(u=l.forcedVal)){if(u==="{$uid}")return this.dom.uniqueId();return u}u=this.dom.getAttrib(d,r);switch(r){case "rowspan":case "colspan":if(u=="1")u=""}if(this.attribValueFilter)u=this.attribValueFilter(r,u,d);if(l.validVals){for(d=l.validVals.length-1;d>=0;d--)if(u==l.validVals[d])break;if(d==-1)return null}if(u===
-""&&typeof l.defaultVal!="undefined"){u=l.defaultVal;if(u==="{$uid}")return this.dom.uniqueId();return u}else if(r=="class"&&this.processObj.get)u=u.replace(/\s?mceItem\w+\s?/g,"");if(u==="")return null;return u}})})(tinymce);
-(function(m){m.dom.ScriptLoader=function(){function o(d,l){function r(){u.remove(c);if(v)v.onreadystatechange=v.onload=v=null;l()}var u=m.DOM,v,f,e,c;c=u.uniqueId();if(m.isIE6){f=new m.util.URI(d);e=location;if(f.host==e.hostname&&f.port==e.port&&f.protocol+":"==e.protocol){m.util.XHR.send({url:m._addVer(f.getURI()),success:function(i){var a=u.create("script",{type:"text/javascript"});a.text=i;document.getElementsByTagName("head")[0].appendChild(a);u.remove(a);r()}});return}}v=u.create("script",{id:c,
-type:"text/javascript",src:m._addVer(d)});v.onload=r;v.onreadystatechange=function(){var i=v.readyState;if(i=="complete"||i=="loaded")r()};(document.getElementsByTagName("head")[0]||document.body).appendChild(v)}var q={},k=[],j={},b=[],g=0;this.isDone=function(d){return q[d]==2};this.markDone=function(d){q[d]=2};this.add=this.load=function(d,l,r){if(q[d]==void 0){k.push(d);q[d]=0}if(l){j[d]||(j[d]=[]);j[d].push({func:l,scope:r||this})}};this.loadQueue=function(d,l){this.loadScripts(k,d,l)};this.loadScripts=
-function(d,l,r){function u(f){m.each(j[f],function(e){e.func.call(e.scope)});j[f]=void 0}var v;b.push({func:l,scope:r||this});v=function(){var f=m.grep(d);d.length=0;m.each(f,function(e){if(q[e]==2)u(e);else if(q[e]!=1){q[e]=1;g++;o(e,function(){q[e]=2;g--;u(e);v()})}});if(!g){m.each(b,function(e){e.func.call(e.scope)});b.length=0}};v()}};m.ScriptLoader=new m.dom.ScriptLoader})(tinymce);
-tinymce.dom.TreeWalker=function(m,o){function q(j,b,g,d){if(j){if(!d&&j[b])return j[b];if(j!=o){if(b=j[g])return b;for(j=j.parentNode;j&&j!=o;j=j.parentNode)if(b=j[g])return b}}}var k=m;this.current=function(){return k};this.next=function(j){return k=q(k,"firstChild","nextSibling",j)};this.prev=function(j){return k=q(k,"lastChild","lastSibling",j)}};
-(function(){var m={};(function(o,q){function k(b){return b.replace(/[A-Z]+/g,function(g){return k(o[g])})}for(var j in o)if(o.hasOwnProperty(j))o[j]=k(o[j]);k(q).replace(/#/g,"#text").replace(/(\w+)\[([^\]]+)\]/g,function(b,g,d){var l={};d=d.split(/\|/);for(b=d.length-1;b>=0;b--)l[d[b]]=1;m[g]=l})})({Z:"#|H|K|N|O|P",Y:"#|X|form|R|Q",X:"p|T|div|U|W|isindex|fieldset|table",W:"pre|hr|blockquote|address|center|noframes",U:"ul|ol|dl|menu|dir",ZC:"#|p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",
+"\n<$1$2>");u=u.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g,"</$1>\n");u=u.replace(/\n\n/g,"\n")}}u=n._unprotect(u,v);u=u.replace(/<\!--\[CDATA\[([\s\S]+)\]\]--\>/g,"<![CDATA[$1]]\>");if(r.entity_encoding=="raw")u=u.replace(/<p>&nbsp;<\/p>|<p([^>]+)>&nbsp;<\/p>/g,"<p$1>\u00a0</p>");u=u.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g,function(f,e,c){return"<noscript"+e+">"+n.dom.decode(c.replace(/<\!--|--\>/g,""))+"</noscript>"})}d.content=u},_serializeNode:function(d,
+n){var r=this.settings,u=this.writer,v,f,e,c,i,a,h,m,p,t,s,x,y;if(!r.node_filter||r.node_filter(d))switch(d.nodeType){case 1:if(d.hasAttribute?d.hasAttribute("_mce_bogus"):d.getAttribute("_mce_bogus"))return;t=x=false;v=d.hasChildNodes();m=d.getAttribute("_mce_name")||d.nodeName.toLowerCase();if(y=d.getAttribute("_mce_type"))if(this._info.cleanup)x=1;else return;if(b)if(d.scopeName!=="HTML"&&d.scopeName!=="html")m=d.scopeName+":"+m;if(m.indexOf("mce:")===0)m=m.substring(4);if(!x)if(!this.validElementsRE||
+!this.validElementsRE.test(m)||this.invalidElementsRE&&this.invalidElementsRE.test(m)||n){t=true;break}if(b){if(r.fix_content_duplication){if(d._mce_serialized==this.key)return;d._mce_serialized=this.key}if(m.charAt(0)=="/")m=m.substring(1)}else if(g)if(d.nodeName==="BR"&&d.getAttribute("type")=="_moz")return;if(r.validate_children){if(this.elementName&&!this.schema.isValid(this.elementName,m)){t=true;break}this.elementName=m}p=this.findRule(m);if(!p){t=true;break}m=p.name||m;s=r.closed.test(m);if(!v&&
+p.noEmpty||b&&!m){t=true;break}if(p.requiredAttribs){i=p.requiredAttribs;for(e=i.length-1;e>=0;e--)if(this.dom.getAttrib(d,i[e])!=="")break;if(e==-1){t=true;break}}u.writeStartElement(m);if(p.attribs){e=0;a=p.attribs;for(c=a.length;e<c;e++){i=a[e];h=this._getAttrib(d,i);h!==null&&u.writeAttribute(i.name,h)}}if(p.validAttribsRE){a=this.dom.getAttribs(d);for(e=a.length-1;e>-1;e--){i=a[e];if(i.specified){i=i.nodeName.toLowerCase();if(!(r.invalid_attrs.test(i)||!p.validAttribsRE.test(i))){c=this.findAttribRule(p,
+i);h=this._getAttrib(d,c,i);h!==null&&u.writeAttribute(i,h)}}}}y&&x&&u.writeAttribute("_mce_type",y);if(m==="script"&&l.trim(d.innerHTML)){u.writeText("// ");u.writeCDATA(d.innerHTML.replace(/<\!--|--\>|<\[CDATA\[|\]\]>/g,""));v=false;break}if(p.padd)if(v&&(f=d.firstChild)&&f.nodeType===1&&d.childNodes.length===1){if(f.hasAttribute?f.hasAttribute("_mce_bogus"):f.getAttribute("_mce_bogus"))u.writeText("\u00a0")}else v||u.writeText("\u00a0");break;case 3:if(r.validate_children&&this.elementName&&!this.schema.isValid(this.elementName,
+"#text"))return;return u.writeText(d.nodeValue);case 4:return u.writeCDATA(d.nodeValue);case 8:return u.writeComment(d.nodeValue)}else if(d.nodeType==1)v=d.hasChildNodes();if(v&&!s)for(f=d.firstChild;f;){this._serializeNode(f);this.elementName=m;f=f.nextSibling}t||(s?u.writeEndElement():u.writeFullEndElement())},_protect:function(d){function n(v){return v.replace(/[\r\n\\]/g,function(f){if(f==="\n")return"\\n";else if(f==="\\")return"\\\\";return"\\r"})}function r(v){return v.replace(/\\[\\rn]/g,
+function(f){if(f==="\\n")return"\n";else if(f==="\\\\")return"\\";return"\r"})}var u=this;d.items=d.items||[];k(d.patterns,function(v){d.content=r(n(d.content).replace(v.pattern,function(f,e,c,i){c=r(c);if(v.encode)c=u._encode(c);d.items.push(c);return e+"<\!--mce:"+(d.items.length-1)+"--\>"+i}))});return d},_unprotect:function(d,n){d=d.replace(/\<\!--mce:([0-9]+)--\>/g,function(r,u){return n.items[parseInt(u)]});n.items=[];return d},_encode:function(d){var n=this.settings,r;if(n.entity_encoding!==
+"raw"){if(n.entity_encoding.indexOf("named")!=-1){this.setEntities(n.entities);r=this.entityLookup;d=d.replace(/[\u007E-\uFFFF]/g,function(u){var v;if(v=r[u])u="&"+v+";";return u})}if(n.entity_encoding.indexOf("numeric")!=-1)d=d.replace(/[\u007E-\uFFFF]/g,function(u){return"&#"+u.charCodeAt(0)+";"})}return d},_setup:function(){var d=this.settings;if(!this.done){this.done=1;this.setRules(d.valid_elements);this.addRules(d.extended_valid_elements);if(d.invalid_elements)this.invalidElementsRE=RegExp("^("+
+o(d.invalid_elements.replace(/,/g,"|").toLowerCase())+")$");if(d.attrib_value_filter)this.attribValueFilter=d.attribValueFilter}},_getAttrib:function(d,n,r){var u;r=r||n.name;if(n.forcedVal&&(u=n.forcedVal)){if(u==="{$uid}")return this.dom.uniqueId();return u}u=this.dom.getAttrib(d,r);switch(r){case "rowspan":case "colspan":if(u=="1")u=""}if(this.attribValueFilter)u=this.attribValueFilter(r,u,d);if(n.validVals){for(d=n.validVals.length-1;d>=0;d--)if(u==n.validVals[d])break;if(d==-1)return null}if(u===
+""&&typeof n.defaultVal!="undefined"){u=n.defaultVal;if(u==="{$uid}")return this.dom.uniqueId();return u}else if(r=="class"&&this.processObj.get)u=u.replace(/\s?mceItem\w+\s?/g,"");if(u==="")return null;return u}})})(tinymce);
+(function(l){l.dom.ScriptLoader=function(){function o(d,n){function r(){u.remove(c);if(v)v.onreadystatechange=v.onload=v=null;n()}var u=l.DOM,v,f,e,c;c=u.uniqueId();if(l.isIE6){f=new l.util.URI(d);e=location;if(f.host==e.hostname&&f.port==e.port&&f.protocol+":"==e.protocol){l.util.XHR.send({url:l._addVer(f.getURI()),success:function(i){var a=u.create("script",{type:"text/javascript"});a.text=i;document.getElementsByTagName("head")[0].appendChild(a);u.remove(a);r()}});return}}v=u.create("script",{id:c,
+type:"text/javascript",src:l._addVer(d)});v.onload=r;v.onreadystatechange=function(){var i=v.readyState;if(i=="complete"||i=="loaded")r()};(document.getElementsByTagName("head")[0]||document.body).appendChild(v)}var q={},k=[],j={},b=[],g=0;this.isDone=function(d){return q[d]==2};this.markDone=function(d){q[d]=2};this.add=this.load=function(d,n,r){if(q[d]==void 0){k.push(d);q[d]=0}if(n){j[d]||(j[d]=[]);j[d].push({func:n,scope:r||this})}};this.loadQueue=function(d,n){this.loadScripts(k,d,n)};this.loadScripts=
+function(d,n,r){function u(f){l.each(j[f],function(e){e.func.call(e.scope)});j[f]=void 0}var v;b.push({func:n,scope:r||this});v=function(){var f=l.grep(d);d.length=0;l.each(f,function(e){if(q[e]==2)u(e);else if(q[e]!=1){q[e]=1;g++;o(e,function(){q[e]=2;g--;u(e);v()})}});if(!g){l.each(b,function(e){e.func.call(e.scope)});b.length=0}};v()}};l.ScriptLoader=new l.dom.ScriptLoader})(tinymce);
+tinymce.dom.TreeWalker=function(l,o){function q(j,b,g,d){if(j){if(!d&&j[b])return j[b];if(j!=o){if(b=j[g])return b;for(j=j.parentNode;j&&j!=o;j=j.parentNode)if(b=j[g])return b}}}var k=l;this.current=function(){return k};this.next=function(j){return k=q(k,"firstChild","nextSibling",j)};this.prev=function(j){return k=q(k,"lastChild","lastSibling",j)}};
+(function(){var l={};(function(o,q){function k(b){return b.replace(/[A-Z]+/g,function(g){return k(o[g])})}for(var j in o)if(o.hasOwnProperty(j))o[j]=k(o[j]);k(q).replace(/#/g,"#text").replace(/(\w+)\[([^\]]+)\]/g,function(b,g,d){var n={};d=d.split(/\|/);for(b=d.length-1;b>=0;b--)n[d[b]]=1;l[g]=n})})({Z:"#|H|K|N|O|P",Y:"#|X|form|R|Q",X:"p|T|div|U|W|isindex|fieldset|table",W:"pre|hr|blockquote|address|center|noframes",U:"ul|ol|dl|menu|dir",ZC:"#|p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",
 T:"h1|h2|h3|h4|h5|h6",ZB:"#|X|S|Q",S:"R|P",ZA:"#|a|G|J|M|O|P",R:"#|a|H|K|N|O",Q:"noscript|P",P:"ins|del|script",O:"input|select|textarea|label|button",N:"M|L",M:"em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym",L:"sub|sup",K:"J|I",J:"tt|i|b|u|s|strike",I:"big|small|font|basefont",H:"G|F",G:"br|span|bdo",F:"object|applet|img|map|iframe"},"script[]style[]object[#|param|X|form|a|H|K|N|O|Q]param[]p[S]a[Z]br[]span[S]bdo[S]applet[#|param|X|form|a|H|K|N|O|Q]h1[S]img[]map[X|form|Q|area]h2[S]iframe[#|X|form|a|H|K|N|O|Q]h3[S]tt[S]i[S]b[S]u[S]s[S]strike[S]big[S]small[S]font[S]basefont[]em[S]strong[S]dfn[S]code[S]q[S]samp[S]kbd[S]var[S]cite[S]abbr[S]acronym[S]sub[S]sup[S]input[]select[optgroup|option]optgroup[option]option[]textarea[]label[S]button[#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[S]ins[#|X|form|a|H|K|N|O|Q]h5[S]del[#|X|form|a|H|K|N|O|Q]h6[S]div[#|X|form|a|H|K|N|O|Q]ul[li]li[#|X|form|a|H|K|N|O|Q]ol[li]dl[dt|dd]dt[S]dd[#|X|form|a|H|K|N|O|Q]menu[li]dir[li]pre[ZA]hr[]blockquote[#|X|form|a|H|K|N|O|Q]address[S|p]center[#|X|form|a|H|K|N|O|Q]noframes[#|X|form|a|H|K|N|O|Q]isindex[]fieldset[#|legend|X|form|a|H|K|N|O|Q]legend[S]table[caption|col|colgroup|thead|tfoot|tbody|tr]caption[S]col[]colgroup[col]thead[tr]tr[th|td]th[#|X|form|a|H|K|N|O|Q]form[#|X|a|H|K|N|O|Q]noscript[#|X|form|a|H|K|N|O|Q]td[#|X|form|a|H|K|N|O|Q]tfoot[tr]tbody[tr]area[]base[]body[#|X|form|a|H|K|N|O|Q]");
-tinymce.dom.Schema=function(){this.isValid=function(o,q){var k=m[o];return!!(k&&(!q||k[q]))}}})();
-(function(m){m.dom.RangeUtils=function(o){this.walk=function(q,k){function j(i,a,h){for(var n=[];i&&i!=h;i=i[a])n.push(i);return n}function b(i,a){do{if(i.parentNode==a)return i;i=i.parentNode}while(i)}function g(i,a,h){var n=h?"nextSibling":"previousSibling";v=i;for(f=v.parentNode;v&&v!=a;v=f){f=v.parentNode;e=j(v==i?v:v[n],n);if(e.length){h||e.reverse();k(e)}}}var d=q.startContainer,l=q.startOffset,r=q.endContainer,u=q.endOffset,v,f,e,c;c=o.select("td.mceSelected,th.mceSelected");if(c.length>0)m.each(c,
-function(i){k([i])});else{if(d.nodeType==1&&d.hasChildNodes())d=d.childNodes[l];if(r.nodeType==1&&r.hasChildNodes())r=r.childNodes[Math.min(l==u?u:u-1,r.childNodes.length-1)];u=o.findCommonAncestor(d,r);if(d==r)return k([d]);for(v=d;v;v=v.parentNode){if(v==r)return g(d,u,true);if(v==u)break}for(v=r;v;v=v.parentNode){if(v==d)return g(r,u);if(v==u)break}l=b(d,u)||d;u=b(r,u)||r;g(d,l,true);e=j(l==d?l:l.nextSibling,"nextSibling",u==r?u.nextSibling:u);e.length&&k(e);g(r,u)}}};m.dom.RangeUtils.compareRanges=
+tinymce.dom.Schema=function(){this.isValid=function(o,q){var k=l[o];return!!(k&&(!q||k[q]))}}})();
+(function(l){l.dom.RangeUtils=function(o){this.walk=function(q,k){function j(i,a,h){for(var m=[];i&&i!=h;i=i[a])m.push(i);return m}function b(i,a){do{if(i.parentNode==a)return i;i=i.parentNode}while(i)}function g(i,a,h){var m=h?"nextSibling":"previousSibling";v=i;for(f=v.parentNode;v&&v!=a;v=f){f=v.parentNode;e=j(v==i?v:v[m],m);if(e.length){h||e.reverse();k(e)}}}var d=q.startContainer,n=q.startOffset,r=q.endContainer,u=q.endOffset,v,f,e,c;c=o.select("td.mceSelected,th.mceSelected");if(c.length>0)l.each(c,
+function(i){k([i])});else{if(d.nodeType==1&&d.hasChildNodes())d=d.childNodes[n];if(r.nodeType==1&&r.hasChildNodes())r=r.childNodes[Math.min(n==u?u:u-1,r.childNodes.length-1)];u=o.findCommonAncestor(d,r);if(d==r)return k([d]);for(v=d;v;v=v.parentNode){if(v==r)return g(d,u,true);if(v==u)break}for(v=r;v;v=v.parentNode){if(v==d)return g(r,u);if(v==u)break}n=b(d,u)||d;u=b(r,u)||r;g(d,n,true);e=j(n==d?n:n.nextSibling,"nextSibling",u==r?u.nextSibling:u);e.length&&k(e);g(r,u)}}};l.dom.RangeUtils.compareRanges=
 function(o,q){if(o&&q)if(o.item||o.duplicate){if(o.item&&q.item&&o.item(0)===q.item(0))return true;if(o.isEqual&&q.isEqual&&q.isEqual(o))return true}else return o.startContainer==q.startContainer&&o.startOffset==q.startOffset;return false}})(tinymce);
-(function(m){var o=m.DOM,q=m.is;m.create("tinymce.ui.Control",{Control:function(k,j){this.id=k;this.settings=j=j||{};this.rendered=false;this.onRender=new m.util.Dispatcher(this);this.classPrefix="";this.scope=j.scope||this;this.active=this.disabled=0},setDisabled:function(k){var j;if(k!=this.disabled){if((j=o.get(this.id))&&this.settings.unavailable_prefix)if(k){this.prevTitle=j.title;j.title=this.settings.unavailable_prefix+": "+j.title}else j.title=this.prevTitle;this.setState("Disabled",k);this.setState("Enabled",
+(function(l){var o=l.DOM,q=l.is;l.create("tinymce.ui.Control",{Control:function(k,j){this.id=k;this.settings=j=j||{};this.rendered=false;this.onRender=new l.util.Dispatcher(this);this.classPrefix="";this.scope=j.scope||this;this.active=this.disabled=0},setDisabled:function(k){var j;if(k!=this.disabled){if((j=o.get(this.id))&&this.settings.unavailable_prefix)if(k){this.prevTitle=j.title;j.title=this.settings.unavailable_prefix+": "+j.title}else j.title=this.prevTitle;this.setState("Disabled",k);this.setState("Enabled",
 !k);this.disabled=k}},isDisabled:function(){return this.disabled},setActive:function(k){if(k!=this.active){this.setState("Active",k);this.active=k}},isActive:function(){return this.active},setState:function(k,j){var b=o.get(this.id);k=this.classPrefix+k;j?o.addClass(b,k):o.removeClass(b,k)},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(k){o.setHTML(k,this.renderHTML())},postRender:function(){var k;if(q(this.disabled)){k=this.disabled;this.disabled=-1;this.setDisabled(k)}if(q(this.active)){k=
-this.active;this.active=-1;this.setActive(k)}},remove:function(){o.remove(this.id);this.destroy()},destroy:function(){m.dom.Event.clear(this.id)}})})(tinymce);tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{Container:function(m,o){this.parent(m,o);this.controls=[];this.lookup={}},add:function(m){this.lookup[m.id]=m;this.controls.push(m);return m},get:function(m){return this.lookup[m]}});
-tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{Separator:function(m,o){this.parent(m,o);this.classPrefix="mceSeparator"},renderHTML:function(){return tinymce.DOM.createHTML("span",{"class":this.classPrefix})}});
-(function(m){var o=m.is;m.create("tinymce.ui.MenuItem:tinymce.ui.Control",{MenuItem:function(q,k){this.parent(q,k);this.classPrefix="mceMenuItem"},setSelected:function(q){this.setState("Selected",q);this.selected=q},isSelected:function(){return this.selected},postRender:function(){this.parent();o(this.selected)&&this.setSelected(this.selected)}})})(tinymce);
-(function(m){var o=m.DOM,q=m.walk;m.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{Menu:function(k,j){this.parent(k,j);this.items={};this.collapsed=false;this.menuCount=0;this.onAddItem=new m.util.Dispatcher(this)},expand:function(k){k&&q(this,function(j){j.expand&&j.expand()},"items",this);this.collapsed=false},collapse:function(k){k&&q(this,function(j){j.collapse&&j.collapse()},"items",this);this.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(k){k.settings||(k=new m.ui.MenuItem(k.id||
-o.uniqueId(),k));this.onAddItem.dispatch(this,k);return this.items[k.id]=k},addSeparator:function(){return this.add({separator:true})},addMenu:function(k){k.collapse||(k=this.createMenu(k));this.menuCount++;return this.add(k)},hasMenus:function(){return this.menuCount!==0},remove:function(k){delete this.items[k.id]},removeAll:function(){q(this,function(k){k.removeAll?k.removeAll():k.remove();k.destroy()},"items",this);this.items={}},createMenu:function(k){k=new m.ui.Menu(k.id||o.uniqueId(),k);k.onAddItem.add(this.onAddItem.dispatch,
+this.active;this.active=-1;this.setActive(k)}},remove:function(){o.remove(this.id);this.destroy()},destroy:function(){l.dom.Event.clear(this.id)}})})(tinymce);tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{Container:function(l,o){this.parent(l,o);this.controls=[];this.lookup={}},add:function(l){this.lookup[l.id]=l;this.controls.push(l);return l},get:function(l){return this.lookup[l]}});
+tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{Separator:function(l,o){this.parent(l,o);this.classPrefix="mceSeparator"},renderHTML:function(){return tinymce.DOM.createHTML("span",{"class":this.classPrefix})}});
+(function(l){var o=l.is;l.create("tinymce.ui.MenuItem:tinymce.ui.Control",{MenuItem:function(q,k){this.parent(q,k);this.classPrefix="mceMenuItem"},setSelected:function(q){this.setState("Selected",q);this.selected=q},isSelected:function(){return this.selected},postRender:function(){this.parent();o(this.selected)&&this.setSelected(this.selected)}})})(tinymce);
+(function(l){var o=l.DOM,q=l.walk;l.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{Menu:function(k,j){this.parent(k,j);this.items={};this.collapsed=false;this.menuCount=0;this.onAddItem=new l.util.Dispatcher(this)},expand:function(k){k&&q(this,function(j){j.expand&&j.expand()},"items",this);this.collapsed=false},collapse:function(k){k&&q(this,function(j){j.collapse&&j.collapse()},"items",this);this.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(k){k.settings||(k=new l.ui.MenuItem(k.id||
+o.uniqueId(),k));this.onAddItem.dispatch(this,k);return this.items[k.id]=k},addSeparator:function(){return this.add({separator:true})},addMenu:function(k){k.collapse||(k=this.createMenu(k));this.menuCount++;return this.add(k)},hasMenus:function(){return this.menuCount!==0},remove:function(k){delete this.items[k.id]},removeAll:function(){q(this,function(k){k.removeAll?k.removeAll():k.remove();k.destroy()},"items",this);this.items={}},createMenu:function(k){k=new l.ui.Menu(k.id||o.uniqueId(),k);k.onAddItem.add(this.onAddItem.dispatch,
 this.onAddItem);return k}})})(tinymce);
-(function(m){var o=m.is,q=m.DOM,k=m.each,j=m.dom.Event,b=m.dom.Element;m.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{DropMenu:function(g,d){d=d||{};d.container=d.container||q.doc.body;d.offset_x=d.offset_x||0;d.offset_y=d.offset_y||0;d.vp_offset_x=d.vp_offset_x||0;d.vp_offset_y=d.vp_offset_y||0;if(o(d.icons)&&!d.icons)d["class"]+=" mceNoIcons";this.parent(g,d);this.onShowMenu=new m.util.Dispatcher(this);this.onHideMenu=new m.util.Dispatcher(this);this.classPrefix="mceMenu"},createMenu:function(g){var d=
-this.settings;g.container=g.container||d.container;g.parent=this;g.constrain=g.constrain||d.constrain;g["class"]=g["class"]||d["class"];g.vp_offset_x=g.vp_offset_x||d.vp_offset_x;g.vp_offset_y=g.vp_offset_y||d.vp_offset_y;g=new m.ui.DropMenu(g.id||q.uniqueId(),g);g.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return g},update:function(){var g=this.settings,d=q.get("menu_"+this.id+"_tbl"),l=q.get("menu_"+this.id+"_co"),r,u;r=g.max_width?Math.min(d.clientWidth,g.max_width):d.clientWidth;u=
-g.max_height?Math.min(d.clientHeight,g.max_height):d.clientHeight;q.boxModel?this.element.setStyles({width:r,height:u}):this.element.setStyles({width:r+2,height:u+2});g.max_width&&q.setStyle(l,"width",r);if(g.max_height){q.setStyle(l,"height",u);d.clientHeight<g.max_height&&q.setStyle(l,"overflow","hidden")}},showMenu:function(g,d,l){var r=this,u=r.settings,v,f=q.getViewPort(),e,c,i,a,h=r.classPrefix;r.collapse(1);if(!r.isMenuVisible){if(r.rendered)v=q.get("menu_"+r.id);else{v=q.add(r.settings.container,
-r.renderNode());k(r.items,function(n){n.postRender()});r.element=new b("menu_"+r.id,{blocker:1,container:u.container})}m.isOpera||q.setStyles(v,{left:-65535,top:-65535});q.show(v);r.update();g+=u.offset_x||0;d+=u.offset_y||0;f.w-=4;f.h-=4;if(u.constrain){e=v.clientWidth-2;c=v.clientHeight-2;i=f.x+f.w;f=f.y+f.h;if(g+u.vp_offset_x+e>i)g=l?l-e:Math.max(0,i-u.vp_offset_x-e);if(d+u.vp_offset_y+c>f)d=Math.max(0,f-u.vp_offset_y-c)}q.setStyles(v,{left:g,top:d});r.element.update();r.isMenuVisible=1;r.mouseClickFunc=
-j.add(v,"click",function(n){var p;if((n=n.target)&&(n=q.getParent(n,"tr"))&&!q.hasClass(n,h+"ItemSub")){p=r.items[n.id];if(!p.isDisabled()){for(a=r;a;){a.hideMenu&&a.hideMenu();a=a.settings.parent}p.settings.onclick&&p.settings.onclick(n);return j.cancel(n)}}});if(r.hasMenus())r.mouseOverFunc=j.add(v,"mouseover",function(n){var p;if((n=n.target)&&(n=q.getParent(n,"tr"))){p=r.items[n.id];r.lastMenu&&r.lastMenu.collapse(1);if(!p.isDisabled())if(n&&q.hasClass(n,h+"ItemSub")){n=q.getRect(n);p.showMenu(n.x+
-n.w-2,n.y-2,n.x);r.lastMenu=p;q.addClass(q.get(p.id).firstChild,h+"ItemActive")}}});r.onShowMenu.dispatch(r);if(u.keyboard_focus){j.add(v,"keydown",r._keyHandler,r);q.select("a","menu_"+r.id)[0].focus();r._focusIdx=0}}},hideMenu:function(g){var d=q.get("menu_"+this.id);if(this.isMenuVisible){j.remove(d,"mouseover",this.mouseOverFunc);j.remove(d,"click",this.mouseClickFunc);j.remove(d,"keydown",this._keyHandler);q.hide(d);this.isMenuVisible=0;g||this.collapse(1);this.element&&this.element.hide();if(g=
+(function(l){var o=l.is,q=l.DOM,k=l.each,j=l.dom.Event,b=l.dom.Element;l.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{DropMenu:function(g,d){d=d||{};d.container=d.container||q.doc.body;d.offset_x=d.offset_x||0;d.offset_y=d.offset_y||0;d.vp_offset_x=d.vp_offset_x||0;d.vp_offset_y=d.vp_offset_y||0;if(o(d.icons)&&!d.icons)d["class"]+=" mceNoIcons";this.parent(g,d);this.onShowMenu=new l.util.Dispatcher(this);this.onHideMenu=new l.util.Dispatcher(this);this.classPrefix="mceMenu"},createMenu:function(g){var d=
+this.settings;g.container=g.container||d.container;g.parent=this;g.constrain=g.constrain||d.constrain;g["class"]=g["class"]||d["class"];g.vp_offset_x=g.vp_offset_x||d.vp_offset_x;g.vp_offset_y=g.vp_offset_y||d.vp_offset_y;g=new l.ui.DropMenu(g.id||q.uniqueId(),g);g.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return g},update:function(){var g=this.settings,d=q.get("menu_"+this.id+"_tbl"),n=q.get("menu_"+this.id+"_co"),r,u;r=g.max_width?Math.min(d.clientWidth,g.max_width):d.clientWidth;u=
+g.max_height?Math.min(d.clientHeight,g.max_height):d.clientHeight;q.boxModel?this.element.setStyles({width:r,height:u}):this.element.setStyles({width:r+2,height:u+2});g.max_width&&q.setStyle(n,"width",r);if(g.max_height){q.setStyle(n,"height",u);d.clientHeight<g.max_height&&q.setStyle(n,"overflow","hidden")}},showMenu:function(g,d,n){var r=this,u=r.settings,v,f=q.getViewPort(),e,c,i,a,h=r.classPrefix;r.collapse(1);if(!r.isMenuVisible){if(r.rendered)v=q.get("menu_"+r.id);else{v=q.add(r.settings.container,
+r.renderNode());k(r.items,function(m){m.postRender()});r.element=new b("menu_"+r.id,{blocker:1,container:u.container})}l.isOpera||q.setStyles(v,{left:-65535,top:-65535});q.show(v);r.update();g+=u.offset_x||0;d+=u.offset_y||0;f.w-=4;f.h-=4;if(u.constrain){e=v.clientWidth-2;c=v.clientHeight-2;i=f.x+f.w;f=f.y+f.h;if(g+u.vp_offset_x+e>i)g=n?n-e:Math.max(0,i-u.vp_offset_x-e);if(d+u.vp_offset_y+c>f)d=Math.max(0,f-u.vp_offset_y-c)}q.setStyles(v,{left:g,top:d});r.element.update();r.isMenuVisible=1;r.mouseClickFunc=
+j.add(v,"click",function(m){var p;if((m=m.target)&&(m=q.getParent(m,"tr"))&&!q.hasClass(m,h+"ItemSub")){p=r.items[m.id];if(!p.isDisabled()){for(a=r;a;){a.hideMenu&&a.hideMenu();a=a.settings.parent}if(p.settings.onclick)p.settings.onclick(m);return j.cancel(m)}}});if(r.hasMenus())r.mouseOverFunc=j.add(v,"mouseover",function(m){var p;if((m=m.target)&&(m=q.getParent(m,"tr"))){p=r.items[m.id];r.lastMenu&&r.lastMenu.collapse(1);if(!p.isDisabled())if(m&&q.hasClass(m,h+"ItemSub")){m=q.getRect(m);p.showMenu(m.x+
+m.w-2,m.y-2,m.x);r.lastMenu=p;q.addClass(q.get(p.id).firstChild,h+"ItemActive")}}});r.onShowMenu.dispatch(r);if(u.keyboard_focus){j.add(v,"keydown",r._keyHandler,r);q.select("a","menu_"+r.id)[0].focus();r._focusIdx=0}}},hideMenu:function(g){var d=q.get("menu_"+this.id);if(this.isMenuVisible){j.remove(d,"mouseover",this.mouseOverFunc);j.remove(d,"click",this.mouseClickFunc);j.remove(d,"keydown",this._keyHandler);q.hide(d);this.isMenuVisible=0;g||this.collapse(1);this.element&&this.element.hide();if(g=
 q.get(this.id))q.removeClass(g.firstChild,this.classPrefix+"ItemActive");this.onHideMenu.dispatch(this)}},add:function(g){var d;g=this.parent(g);if(this.isRendered&&(d=q.get("menu_"+this.id)))this._add(q.select("tbody",d)[0],g);return g},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){q.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=q.get("menu_"+this.id);j.remove(g,"mouseover",this.mouseOverFunc);j.remove(g,"click",this.mouseClickFunc);this.element&&
-this.element.remove();q.remove(g)},renderNode:function(){var g=this,d=g.settings,l,r,u;u=q.create("div",{id:"menu_"+g.id,"class":d["class"],style:"position:absolute;left:0;top:0;z-index:200000"});r=q.add(u,"div",{id:"menu_"+g.id+"_co","class":g.classPrefix+(d["class"]?" "+d["class"]:"")});g.element=new b("menu_"+g.id,{blocker:1,container:d.container});d.menu_line&&q.add(r,"span",{"class":g.classPrefix+"Line"});d=q.add(r,"table",{id:"menu_"+g.id+"_tbl",border:0,cellPadding:0,cellSpacing:0});l=q.add(d,
-"tbody");k(g.items,function(v){g._add(l,v)});g.rendered=true;return u},_keyHandler:function(g){function d(r){r=l._focusIdx+r;var u=q.select("a","menu_"+l.id)[r];if(u){l._focusIdx=r;u.focus()}}var l=this;switch(g.keyCode){case 38:d(-1);break;case 40:d(1);break;case 27:return this.hideMenu()}},_add:function(g,d){var l,r=d.settings,u,v,f=this.classPrefix;if(r.separator){u=q.add(g,"tr",{id:d.id,"class":f+"ItemSeparator"});q.add(u,"td",{"class":f+"ItemSeparator"});if(l=u.previousSibling)q.addClass(l,"mceLast")}else{l=
-u=q.add(g,"tr",{id:d.id,"class":f+"Item "+f+"ItemEnabled"});l=v=q.add(l,"td");l=q.add(l,"a",{href:"javascript:;",onclick:"return false;",onmousedown:"return false;"});q.addClass(v,r["class"]);v=q.add(l,"span",{"class":"mceIcon"+(r.icon?" mce_"+r.icon:"")});r.icon_src&&q.add(v,"img",{src:r.icon_src});l=q.add(l,r.element||"span",{"class":"mceText",title:d.settings.title},d.settings.title);d.settings.style&&q.setAttrib(l,"style",d.settings.style);g.childNodes.length==1&&q.addClass(u,"mceFirst");if((l=
-u.previousSibling)&&q.hasClass(l,f+"ItemSeparator"))q.addClass(u,"mceFirst");d.collapse&&q.addClass(u,f+"ItemSub");if(l=u.previousSibling)q.removeClass(l,"mceLast");q.addClass(u,"mceLast")}}})})(tinymce);
-(function(m){var o=m.DOM;m.create("tinymce.ui.Button:tinymce.ui.Control",{Button:function(q,k){this.parent(q,k);this.classPrefix="mceButton"},renderHTML:function(){var q=this.classPrefix,k=this.settings,j,b;b=o.encode(k.label||"");j='<a id="'+this.id+'" href="javascript:;" class="'+q+" "+q+"Enabled "+k["class"]+(b?" "+q+"Labeled":"")+'" onmousedown="return false;" onclick="return false;" title="'+o.encode(k.title)+'">';j+=k.image?'<img class="mceIcon" src="'+k.image+'" />'+b+"</a>":'<span class="mceIcon '+
-k["class"]+'"></span>'+(b?'<span class="'+q+'Label">'+b+"</span>":"")+"</a>";return j},postRender:function(){var q=this,k=q.settings;m.dom.Event.add(q.id,"click",function(j){if(!q.isDisabled())return k.onclick.call(k.scope,j)})}})})(tinymce);
-(function(m){var o=m.DOM,q=m.dom.Event,k=m.each,j=m.util.Dispatcher;m.create("tinymce.ui.ListBox:tinymce.ui.Control",{ListBox:function(b,g){this.parent(b,g);this.items=[];this.onChange=new j(this);this.onPostRender=new j(this);this.onAdd=new j(this);this.onRenderMenu=new m.util.Dispatcher(this);this.classPrefix="mceListBox"},select:function(b){var g=this,d,l;if(b==undefined)return g.selectByIndex(-1);l=b&&b.call?b:function(r){return r==b};if(b!=g.selectedValue){k(g.items,function(r,u){if(l(r.value)){d=
-1;g.selectByIndex(u);return false}});d||g.selectByIndex(-1)}},selectByIndex:function(b){var g,d;if(b!=this.selectedIndex){g=o.get(this.id+"_text");if(d=this.items[b]){this.selectedValue=d.value;this.selectedIndex=b;o.setHTML(g,o.encode(d.title));o.removeClass(g,"mceTitle")}else{o.setHTML(g,o.encode(this.settings.title));o.addClass(g,"mceTitle");this.selectedValue=this.selectedIndex=null}}},add:function(b,g,d){d=d||{};d=m.extend(d,{title:b,value:g});this.items.push(d);this.onAdd.dispatch(this,d)},
+this.element.remove();q.remove(g)},renderNode:function(){var g=this,d=g.settings,n,r,u;u=q.create("div",{id:"menu_"+g.id,"class":d["class"],style:"position:absolute;left:0;top:0;z-index:200000"});r=q.add(u,"div",{id:"menu_"+g.id+"_co","class":g.classPrefix+(d["class"]?" "+d["class"]:"")});g.element=new b("menu_"+g.id,{blocker:1,container:d.container});d.menu_line&&q.add(r,"span",{"class":g.classPrefix+"Line"});d=q.add(r,"table",{id:"menu_"+g.id+"_tbl",border:0,cellPadding:0,cellSpacing:0});n=q.add(d,
+"tbody");k(g.items,function(v){g._add(n,v)});g.rendered=true;return u},_keyHandler:function(g){function d(r){r=n._focusIdx+r;var u=q.select("a","menu_"+n.id)[r];if(u){n._focusIdx=r;u.focus()}}var n=this;switch(g.keyCode){case 38:d(-1);break;case 40:d(1);break;case 27:return this.hideMenu()}},_add:function(g,d){var n,r=d.settings,u,v,f=this.classPrefix;if(r.separator){u=q.add(g,"tr",{id:d.id,"class":f+"ItemSeparator"});q.add(u,"td",{"class":f+"ItemSeparator"});if(n=u.previousSibling)q.addClass(n,"mceLast")}else{n=
+u=q.add(g,"tr",{id:d.id,"class":f+"Item "+f+"ItemEnabled"});n=v=q.add(n,"td");n=q.add(n,"a",{href:"javascript:;",onclick:"return false;",onmousedown:"return false;"});q.addClass(v,r["class"]);v=q.add(n,"span",{"class":"mceIcon"+(r.icon?" mce_"+r.icon:"")});r.icon_src&&q.add(v,"img",{src:r.icon_src});n=q.add(n,r.element||"span",{"class":"mceText",title:d.settings.title},d.settings.title);d.settings.style&&q.setAttrib(n,"style",d.settings.style);g.childNodes.length==1&&q.addClass(u,"mceFirst");if((n=
+u.previousSibling)&&q.hasClass(n,f+"ItemSeparator"))q.addClass(u,"mceFirst");d.collapse&&q.addClass(u,f+"ItemSub");if(n=u.previousSibling)q.removeClass(n,"mceLast");q.addClass(u,"mceLast")}}})})(tinymce);
+(function(l){var o=l.DOM;l.create("tinymce.ui.Button:tinymce.ui.Control",{Button:function(q,k){this.parent(q,k);this.classPrefix="mceButton"},renderHTML:function(){var q=this.classPrefix,k=this.settings,j,b;b=o.encode(k.label||"");j='<a id="'+this.id+'" href="javascript:;" class="'+q+" "+q+"Enabled "+k["class"]+(b?" "+q+"Labeled":"")+'" onmousedown="return false;" onclick="return false;" title="'+o.encode(k.title)+'">';j+=k.image?'<img class="mceIcon" src="'+k.image+'" />'+b+"</a>":'<span class="mceIcon '+
+k["class"]+'"></span>'+(b?'<span class="'+q+'Label">'+b+"</span>":"")+"</a>";return j},postRender:function(){var q=this,k=q.settings;l.dom.Event.add(q.id,"click",function(j){if(!q.isDisabled())return k.onclick.call(k.scope,j)})}})})(tinymce);
+(function(l){var o=l.DOM,q=l.dom.Event,k=l.each,j=l.util.Dispatcher;l.create("tinymce.ui.ListBox:tinymce.ui.Control",{ListBox:function(b,g){this.parent(b,g);this.items=[];this.onChange=new j(this);this.onPostRender=new j(this);this.onAdd=new j(this);this.onRenderMenu=new l.util.Dispatcher(this);this.classPrefix="mceListBox"},select:function(b){var g=this,d,n;if(b==undefined)return g.selectByIndex(-1);n=b&&b.call?b:function(r){return r==b};if(b!=g.selectedValue){k(g.items,function(r,u){if(n(r.value)){d=
+1;g.selectByIndex(u);return false}});d||g.selectByIndex(-1)}},selectByIndex:function(b){var g,d;if(b!=this.selectedIndex){g=o.get(this.id+"_text");if(d=this.items[b]){this.selectedValue=d.value;this.selectedIndex=b;o.setHTML(g,o.encode(d.title));o.removeClass(g,"mceTitle")}else{o.setHTML(g,o.encode(this.settings.title));o.addClass(g,"mceTitle");this.selectedValue=this.selectedIndex=null}}},add:function(b,g,d){d=d||{};d=l.extend(d,{title:b,value:g});this.items.push(d);this.onAdd.dispatch(this,d)},
 getLength:function(){return this.items.length},renderHTML:function(){var b="";b=this.settings;var g=this.classPrefix;b='<table id="'+this.id+'" cellpadding="0" cellspacing="0" class="'+g+" "+g+"Enabled"+(b["class"]?" "+b["class"]:"")+'"><tbody><tr>';b+="<td>"+o.createHTML("a",{id:this.id+"_text",href:"javascript:;","class":"mceText",onclick:"return false;",onmousedown:"return false;"},o.encode(this.settings.title))+"</td>";b+="<td>"+o.createHTML("a",{id:this.id+"_open",tabindex:-1,href:"javascript:;",
-"class":"mceOpen",onclick:"return false;",onmousedown:"return false;"},"<span></span>")+"</td>";b+="</tr></tbody></table>";return b},showMenu:function(){var b=this,g,d=o.get(this.id),l;if(!(b.isDisabled()||b.items.length==0)){if(b.menu&&b.menu.isMenuVisible)return b.hideMenu();if(!b.isMenuRendered){b.renderMenu();b.isMenuRendered=true}o.getPos(this.settings.menu_container);g=o.getPos(d);l=b.menu;l.settings.offset_x=g.x;l.settings.offset_y=g.y;l.settings.keyboard_focus=!m.isOpera;b.oldID&&l.items[b.oldID].setSelected(0);
-k(b.items,function(r){if(r.value===b.selectedValue){l.items[r.id].setSelected(1);b.oldID=r.id}});l.showMenu(0,d.clientHeight);q.add(o.doc,"mousedown",b.hideMenu,b);o.addClass(b.id,b.classPrefix+"Selected")}},hideMenu:function(b){if(this.menu&&this.menu.isMenuVisible)if(!(b&&b.type=="mousedown"&&(b.target.id==this.id+"_text"||b.target.id==this.id+"_open")))if(!b||!o.getParent(b.target,".mceMenu")){o.removeClass(this.id,this.classPrefix+"Selected");q.remove(o.doc,"mousedown",this.hideMenu,this);this.menu.hideMenu()}},
+"class":"mceOpen",onclick:"return false;",onmousedown:"return false;"},"<span></span>")+"</td>";b+="</tr></tbody></table>";return b},showMenu:function(){var b=this,g,d=o.get(this.id),n;if(!(b.isDisabled()||b.items.length==0)){if(b.menu&&b.menu.isMenuVisible)return b.hideMenu();if(!b.isMenuRendered){b.renderMenu();b.isMenuRendered=true}o.getPos(this.settings.menu_container);g=o.getPos(d);n=b.menu;n.settings.offset_x=g.x;n.settings.offset_y=g.y;n.settings.keyboard_focus=!l.isOpera;b.oldID&&n.items[b.oldID].setSelected(0);
+k(b.items,function(r){if(r.value===b.selectedValue){n.items[r.id].setSelected(1);b.oldID=r.id}});n.showMenu(0,d.clientHeight);q.add(o.doc,"mousedown",b.hideMenu,b);o.addClass(b.id,b.classPrefix+"Selected")}},hideMenu:function(b){if(this.menu&&this.menu.isMenuVisible)if(!(b&&b.type=="mousedown"&&(b.target.id==this.id+"_text"||b.target.id==this.id+"_open")))if(!b||!o.getParent(b.target,".mceMenu")){o.removeClass(this.id,this.classPrefix+"Selected");q.remove(o.doc,"mousedown",this.hideMenu,this);this.menu.hideMenu()}},
 renderMenu:function(){var b=this,g;g=b.settings.control_manager.createDropMenu(b.id+"_menu",{menu_line:1,"class":b.classPrefix+"Menu mceNoIcons",max_width:150,max_height:150});g.onHideMenu.add(b.hideMenu,b);g.add({title:b.settings.title,"class":"mceMenuItemTitle",onclick:function(){b.settings.onselect("")!==false&&b.select("")}});k(b.items,function(d){if(d.value===undefined)g.add({title:d.title,"class":"mceMenuItemTitle",onclick:function(){b.settings.onselect("")!==false&&b.select("")}});else{d.id=
-o.uniqueId();d.onclick=function(){b.settings.onselect(d.value)!==false&&b.select(d.value)};g.add(d)}});b.onRenderMenu.dispatch(b,g);b.menu=g},postRender:function(){var b=this,g=b.classPrefix;q.add(b.id,"click",b.showMenu,b);q.add(b.id+"_text","focus",function(){if(!b._focused)b.keyDownHandler=q.add(b.id+"_text","keydown",function(d){var l=-1,r,u=d.keyCode;k(b.items,function(v,f){if(b.selectedValue==v.value)l=f});if(u==38)r=b.items[l-1];else if(u==40)r=b.items[l+1];else if(u==13){r=b.selectedValue;
-b.selectedValue=null;b.settings.onselect(r);return q.cancel(d)}if(r){b.hideMenu();b.select(r.value)}});b._focused=1});q.add(b.id+"_text","blur",function(){q.remove(b.id+"_text","keydown",b.keyDownHandler);b._focused=0});if(m.isIE6||!o.boxModel){q.add(b.id,"mouseover",function(){o.hasClass(b.id,g+"Disabled")||o.addClass(b.id,g+"Hover")});q.add(b.id,"mouseout",function(){o.hasClass(b.id,g+"Disabled")||o.removeClass(b.id,g+"Hover")})}b.onPostRender.dispatch(b,o.get(b.id))},destroy:function(){this.parent();
+o.uniqueId();d.onclick=function(){b.settings.onselect(d.value)!==false&&b.select(d.value)};g.add(d)}});b.onRenderMenu.dispatch(b,g);b.menu=g},postRender:function(){var b=this,g=b.classPrefix;q.add(b.id,"click",b.showMenu,b);q.add(b.id+"_text","focus",function(){if(!b._focused)b.keyDownHandler=q.add(b.id+"_text","keydown",function(d){var n=-1,r,u=d.keyCode;k(b.items,function(v,f){if(b.selectedValue==v.value)n=f});if(u==38)r=b.items[n-1];else if(u==40)r=b.items[n+1];else if(u==13){r=b.selectedValue;
+b.selectedValue=null;b.settings.onselect(r);return q.cancel(d)}if(r){b.hideMenu();b.select(r.value)}});b._focused=1});q.add(b.id+"_text","blur",function(){q.remove(b.id+"_text","keydown",b.keyDownHandler);b._focused=0});if(l.isIE6||!o.boxModel){q.add(b.id,"mouseover",function(){o.hasClass(b.id,g+"Disabled")||o.addClass(b.id,g+"Hover")});q.add(b.id,"mouseout",function(){o.hasClass(b.id,g+"Disabled")||o.removeClass(b.id,g+"Hover")})}b.onPostRender.dispatch(b,o.get(b.id))},destroy:function(){this.parent();
 q.clear(this.id+"_text");q.clear(this.id+"_open")}})})(tinymce);
-(function(m){var o=m.DOM,q=m.dom.Event,k=m.each;m.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{NativeListBox:function(j,b){this.parent(j,b);this.classPrefix="mceNativeListBox"},setDisabled:function(j){o.get(this.id).disabled=j},isDisabled:function(){return o.get(this.id).disabled},select:function(j){var b=this,g,d;if(j==undefined)return b.selectByIndex(-1);d=j&&j.call?j:function(l){return l==j};if(j!=b.selectedValue){k(b.items,function(l,r){if(d(l.value)){g=1;b.selectByIndex(r);return false}});
+(function(l){var o=l.DOM,q=l.dom.Event,k=l.each;l.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{NativeListBox:function(j,b){this.parent(j,b);this.classPrefix="mceNativeListBox"},setDisabled:function(j){o.get(this.id).disabled=j},isDisabled:function(){return o.get(this.id).disabled},select:function(j){var b=this,g,d;if(j==undefined)return b.selectByIndex(-1);d=j&&j.call?j:function(n){return n==j};if(j!=b.selectedValue){k(b.items,function(n,r){if(d(n.value)){g=1;b.selectByIndex(r);return false}});
 g||b.selectByIndex(-1)}},selectByIndex:function(j){o.get(this.id).selectedIndex=j+1;this.selectedValue=this.items[j]?this.items[j].value:null},add:function(j,b,g){g=g||{};g.value=b;this.isRendered()&&o.add(o.get(this.id),"option",g,j);j={title:j,value:b,attribs:g};this.items.push(j);this.onAdd.dispatch(this,j)},getLength:function(){return this.items.length},renderHTML:function(){var j;j=o.createHTML("option",{value:""},"-- "+this.settings.title+" --");k(this.items,function(b){j+=o.createHTML("option",
-{value:b.value},b.title)});return j=o.createHTML("select",{id:this.id,"class":"mceNativeListBox"},j)},postRender:function(){function j(g){if((g=b.items[g.target.selectedIndex-1])&&(g=g.value)){b.onChange.dispatch(b,g);b.settings.onselect&&b.settings.onselect(g)}}var b=this;b.rendered=true;q.add(b.id,"change",j);q.add(b.id,"keydown",function(g){var d;q.remove(b.id,"change",void 0);d=q.add(b.id,"blur",function(){q.add(b.id,"change",j);q.remove(b.id,"blur",d)});if(g.keyCode==13||g.keyCode==32){j(g);
+{value:b.value},b.title)});return j=o.createHTML("select",{id:this.id,"class":"mceNativeListBox"},j)},postRender:function(){function j(g){if((g=b.items[g.target.selectedIndex-1])&&(g=g.value)){b.onChange.dispatch(b,g);if(b.settings.onselect)b.settings.onselect(g)}}var b=this;b.rendered=true;q.add(b.id,"change",j);q.add(b.id,"keydown",function(g){var d;q.remove(b.id,"change",void 0);d=q.add(b.id,"blur",function(){q.add(b.id,"change",j);q.remove(b.id,"blur",d)});if(g.keyCode==13||g.keyCode==32){j(g);
 return q.cancel(g)}});b.onPostRender.dispatch(b,o.get(b.id))}})})(tinymce);
-(function(m){var o=m.DOM,q=m.dom.Event;m.create("tinymce.ui.MenuButton:tinymce.ui.Button",{MenuButton:function(k,j){this.parent(k,j);this.onRenderMenu=new m.util.Dispatcher(this);j.menu_container=j.menu_container||o.doc.body},showMenu:function(){var k,j=o.get(this.id),b;if(!this.isDisabled()){if(!this.isMenuRendered){this.renderMenu();this.isMenuRendered=true}if(this.isMenuVisible)return this.hideMenu();o.getPos(this.settings.menu_container);k=o.getPos(j);b=this.menu;b.settings.offset_x=k.x;b.settings.offset_y=
+(function(l){var o=l.DOM,q=l.dom.Event;l.create("tinymce.ui.MenuButton:tinymce.ui.Button",{MenuButton:function(k,j){this.parent(k,j);this.onRenderMenu=new l.util.Dispatcher(this);j.menu_container=j.menu_container||o.doc.body},showMenu:function(){var k,j=o.get(this.id),b;if(!this.isDisabled()){if(!this.isMenuRendered){this.renderMenu();this.isMenuRendered=true}if(this.isMenuVisible)return this.hideMenu();o.getPos(this.settings.menu_container);k=o.getPos(j);b=this.menu;b.settings.offset_x=k.x;b.settings.offset_y=
 k.y;b.settings.vp_offset_x=k.x;b.settings.vp_offset_y=k.y;b.settings.keyboard_focus=this._focused;b.showMenu(0,j.clientHeight);q.add(o.doc,"mousedown",this.hideMenu,this);this.setState("Selected",1);this.isMenuVisible=1}},renderMenu:function(){var k;k=this.settings.control_manager.createDropMenu(this.id+"_menu",{menu_line:1,"class":this.classPrefix+"Menu",icons:this.settings.icons});k.onHideMenu.add(this.hideMenu,this);this.onRenderMenu.dispatch(this,k);this.menu=k},hideMenu:function(k){var j=this;
-if(!(k&&k.type=="mousedown"&&o.getParent(k.target,function(b){return b.id===j.id||b.id===j.id+"_open"}))){if(!k||!o.getParent(k.target,".mceMenu")){j.setState("Selected",0);q.remove(o.doc,"mousedown",j.hideMenu,j);j.menu&&j.menu.hideMenu()}j.isMenuVisible=0}},postRender:function(){var k=this,j=k.settings;q.add(k.id,"click",function(){if(!k.isDisabled()){j.onclick&&j.onclick(k.value);k.showMenu()}})}})})(tinymce);
-(function(m){var o=m.DOM,q=m.dom.Event;m.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{SplitButton:function(k,j){this.parent(k,j);this.classPrefix="mceSplitButton"},renderHTML:function(){var k,j=this.settings,b;k="<tbody><tr>";b=j.image?o.createHTML("img ",{src:j.image,"class":"mceAction "+j["class"]}):o.createHTML("span",{"class":"mceAction "+j["class"]},"");k+="<td>"+o.createHTML("a",{id:this.id+"_action",href:"javascript:;","class":"mceAction "+j["class"],onclick:"return false;",onmousedown:"return false;",
+if(!(k&&k.type=="mousedown"&&o.getParent(k.target,function(b){return b.id===j.id||b.id===j.id+"_open"}))){if(!k||!o.getParent(k.target,".mceMenu")){j.setState("Selected",0);q.remove(o.doc,"mousedown",j.hideMenu,j);j.menu&&j.menu.hideMenu()}j.isMenuVisible=0}},postRender:function(){var k=this,j=k.settings;q.add(k.id,"click",function(){if(!k.isDisabled()){if(j.onclick)j.onclick(k.value);k.showMenu()}})}})})(tinymce);
+(function(l){var o=l.DOM,q=l.dom.Event;l.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{SplitButton:function(k,j){this.parent(k,j);this.classPrefix="mceSplitButton"},renderHTML:function(){var k,j=this.settings,b;k="<tbody><tr>";b=j.image?o.createHTML("img ",{src:j.image,"class":"mceAction "+j["class"]}):o.createHTML("span",{"class":"mceAction "+j["class"]},"");k+="<td>"+o.createHTML("a",{id:this.id+"_action",href:"javascript:;","class":"mceAction "+j["class"],onclick:"return false;",onmousedown:"return false;",
 title:j.title},b)+"</td>";b=o.createHTML("span",{"class":"mceOpen "+j["class"]});k+="<td>"+o.createHTML("a",{id:this.id+"_open",href:"javascript:;","class":"mceOpen "+j["class"],onclick:"return false;",onmousedown:"return false;",title:j.title},b)+"</td>";k+="</tr></tbody>";return o.createHTML("table",{id:this.id,"class":"mceSplitButton mceSplitButtonEnabled "+j["class"],cellpadding:"0",cellspacing:"0",onmousedown:"return false;",title:j.title},k)},postRender:function(){var k=this,j=k.settings;j.onclick&&
-q.add(k.id+"_action","click",function(){k.isDisabled()||j.onclick(k.value)});q.add(k.id+"_open","click",k.showMenu,k);q.add(k.id+"_open","focus",function(){k._focused=1});q.add(k.id+"_open","blur",function(){k._focused=0});if(m.isIE6||!o.boxModel){q.add(k.id,"mouseover",function(){o.hasClass(k.id,"mceSplitButtonDisabled")||o.addClass(k.id,"mceSplitButtonHover")});q.add(k.id,"mouseout",function(){o.hasClass(k.id,"mceSplitButtonDisabled")||o.removeClass(k.id,"mceSplitButtonHover")})}},destroy:function(){this.parent();
+q.add(k.id+"_action","click",function(){if(!k.isDisabled())j.onclick(k.value)});q.add(k.id+"_open","click",k.showMenu,k);q.add(k.id+"_open","focus",function(){k._focused=1});q.add(k.id+"_open","blur",function(){k._focused=0});if(l.isIE6||!o.boxModel){q.add(k.id,"mouseover",function(){o.hasClass(k.id,"mceSplitButtonDisabled")||o.addClass(k.id,"mceSplitButtonHover")});q.add(k.id,"mouseout",function(){o.hasClass(k.id,"mceSplitButtonDisabled")||o.removeClass(k.id,"mceSplitButtonHover")})}},destroy:function(){this.parent();
 q.clear(this.id+"_action");q.clear(this.id+"_open")}})})(tinymce);
-(function(m){var o=m.DOM,q=m.dom.Event,k=m.is,j=m.each;m.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{ColorSplitButton:function(b,g){this.parent(b,g);this.settings=g=m.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"},
-this.settings);this.onShowMenu=new m.util.Dispatcher(this);this.onHideMenu=new m.util.Dispatcher(this);this.value=g.default_color},showMenu:function(){var b=this,g,d;if(!b.isDisabled()){if(!b.isMenuRendered){b.renderMenu();b.isMenuRendered=true}if(b.isMenuVisible)return b.hideMenu();g=o.get(b.id);o.show(b.id+"_menu");o.addClass(g,"mceSplitButtonSelected");d=o.getPos(g);o.setStyles(b.id+"_menu",{left:d.x,top:d.y+g.clientHeight,zIndex:2E5});g=0;q.add(o.doc,"mousedown",b.hideMenu,b);b.onShowMenu.dispatch(b);
-if(b._focused){b._keyHandler=q.add(b.id+"_menu","keydown",function(l){l.keyCode==27&&b.hideMenu()});o.select("a",b.id+"_menu")[0].focus()}b.isMenuVisible=1}},hideMenu:function(b){var g=this;if(!(b&&b.type=="mousedown"&&o.getParent(b.target,function(d){return d.id===g.id+"_open"}))){if(!b||!o.getParent(b.target,".mceSplitButtonMenu")){o.removeClass(g.id,"mceSplitButtonSelected");q.remove(o.doc,"mousedown",g.hideMenu,g);q.remove(g.id+"_menu","keydown",g._keyHandler);o.hide(g.id+"_menu")}g.onHideMenu.dispatch(g);
-g.isMenuVisible=0}},renderMenu:function(){var b=this,g,d=0,l=b.settings,r,u,v,f;f=o.add(l.menu_container,"div",{id:b.id+"_menu","class":l.menu_class+" "+l["class"],style:"position:absolute;left:0;top:-1000px;"});g=o.add(f,"div",{"class":l["class"]+" mceSplitButtonMenu"});o.add(g,"span",{"class":"mceMenuLine"});r=o.add(g,"table",{"class":"mceColorSplitMenu"});u=o.add(r,"tbody");d=0;j(k(l.colors,"array")?l.colors:l.colors.split(","),function(e){e=e.replace(/^#/,"");if(!d--){v=o.add(u,"tr");d=l.grid_width-
-1}r=o.add(v,"td");r=o.add(r,"a",{href:"javascript:;",style:{backgroundColor:"#"+e},_mce_color:"#"+e})});if(l.more_colors_func){r=o.add(u,"tr");r=o.add(r,"td",{colspan:l.grid_width,"class":"mceMoreColors"});r=o.add(r,"a",{id:b.id+"_more",href:"javascript:;",onclick:"return false;","class":"mceMoreColors"},l.more_colors_title);q.add(r,"click",function(e){l.more_colors_func.call(l.more_colors_scope||this);return q.cancel(e)})}o.addClass(g,"mceColorSplitMenu");q.add(b.id+"_menu","click",function(e){var c;
+(function(l){var o=l.DOM,q=l.dom.Event,k=l.is,j=l.each;l.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{ColorSplitButton:function(b,g){this.parent(b,g);this.settings=g=l.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"},
+this.settings);this.onShowMenu=new l.util.Dispatcher(this);this.onHideMenu=new l.util.Dispatcher(this);this.value=g.default_color},showMenu:function(){var b=this,g,d;if(!b.isDisabled()){if(!b.isMenuRendered){b.renderMenu();b.isMenuRendered=true}if(b.isMenuVisible)return b.hideMenu();g=o.get(b.id);o.show(b.id+"_menu");o.addClass(g,"mceSplitButtonSelected");d=o.getPos(g);o.setStyles(b.id+"_menu",{left:d.x,top:d.y+g.clientHeight,zIndex:2E5});g=0;q.add(o.doc,"mousedown",b.hideMenu,b);b.onShowMenu.dispatch(b);
+if(b._focused){b._keyHandler=q.add(b.id+"_menu","keydown",function(n){n.keyCode==27&&b.hideMenu()});o.select("a",b.id+"_menu")[0].focus()}b.isMenuVisible=1}},hideMenu:function(b){var g=this;if(!(b&&b.type=="mousedown"&&o.getParent(b.target,function(d){return d.id===g.id+"_open"}))){if(!b||!o.getParent(b.target,".mceSplitButtonMenu")){o.removeClass(g.id,"mceSplitButtonSelected");q.remove(o.doc,"mousedown",g.hideMenu,g);q.remove(g.id+"_menu","keydown",g._keyHandler);o.hide(g.id+"_menu")}g.onHideMenu.dispatch(g);
+g.isMenuVisible=0}},renderMenu:function(){var b=this,g,d=0,n=b.settings,r,u,v,f;f=o.add(n.menu_container,"div",{id:b.id+"_menu","class":n.menu_class+" "+n["class"],style:"position:absolute;left:0;top:-1000px;"});g=o.add(f,"div",{"class":n["class"]+" mceSplitButtonMenu"});o.add(g,"span",{"class":"mceMenuLine"});r=o.add(g,"table",{"class":"mceColorSplitMenu"});u=o.add(r,"tbody");d=0;j(k(n.colors,"array")?n.colors:n.colors.split(","),function(e){e=e.replace(/^#/,"");if(!d--){v=o.add(u,"tr");d=n.grid_width-
+1}r=o.add(v,"td");r=o.add(r,"a",{href:"javascript:;",style:{backgroundColor:"#"+e},_mce_color:"#"+e})});if(n.more_colors_func){r=o.add(u,"tr");r=o.add(r,"td",{colspan:n.grid_width,"class":"mceMoreColors"});r=o.add(r,"a",{id:b.id+"_more",href:"javascript:;",onclick:"return false;","class":"mceMoreColors"},n.more_colors_title);q.add(r,"click",function(e){n.more_colors_func.call(n.more_colors_scope||this);return q.cancel(e)})}o.addClass(g,"mceColorSplitMenu");q.add(b.id+"_menu","click",function(e){var c;
 e=e.target;if(e.nodeName=="A"&&(c=e.getAttribute("_mce_color")))b.setColor(c);return q.cancel(e)});return f},setColor:function(b){o.setStyle(this.id+"_preview","backgroundColor",b);this.value=b;this.hideMenu();this.settings.onselect(b)},postRender:function(){var b=this.id;this.parent();o.add(b+"_action","div",{id:b+"_preview","class":"mceColorPreview"});o.setStyle(this.id+"_preview","backgroundColor",this.value)},destroy:function(){this.parent();q.clear(this.id+"_menu");q.clear(this.id+"_more");o.remove(this.id+
 "_menu")}})})(tinymce);
-tinymce.create("tinymce.ui.Toolbar:tinymce.ui.Container",{renderHTML:function(){var m="",o,q,k=tinymce.DOM,j=this.settings,b,g,d,l;l=this.controls;for(b=0;b<l.length;b++){q=l[b];g=l[b-1];d=l[b+1];if(b===0){o="mceToolbarStart";if(q.Button)o+=" mceToolbarStartButton";else if(q.SplitButton)o+=" mceToolbarStartSplitButton";else if(q.ListBox)o+=" mceToolbarStartListBox";m+=k.createHTML("td",{"class":o},k.createHTML("span",null,"<!-- IE --\>"))}if(g&&q.ListBox)if(g.Button||g.SplitButton)m+=k.createHTML("td",
-{"class":"mceToolbarEnd"},k.createHTML("span",null,"<!-- IE --\>"));m+=k.stdMode?'<td style="position: relative">'+q.renderHTML()+"</td>":"<td>"+q.renderHTML()+"</td>";if(d&&q.ListBox)if(d.Button||d.SplitButton)m+=k.createHTML("td",{"class":"mceToolbarStart"},k.createHTML("span",null,"<!-- IE --\>"))}o="mceToolbarEnd";if(q.Button)o+=" mceToolbarEndButton";else if(q.SplitButton)o+=" mceToolbarEndSplitButton";else if(q.ListBox)o+=" mceToolbarEndListBox";m+=k.createHTML("td",{"class":o},k.createHTML("span",
-null,"<!-- IE --\>"));return k.createHTML("table",{id:this.id,"class":"mceToolbar"+(j["class"]?" "+j["class"]:""),cellpadding:"0",cellspacing:"0",align:this.settings.align||""},"<tbody><tr>"+m+"</tr></tbody>")}});
-(function(m){m.create("tinymce.AddOnManager",{items:[],urls:{},lookup:{},onAdd:new m.util.Dispatcher(this),get:function(o){return this.lookup[o]},requireLangPack:function(o){var q=m.settings;q&&q.language&&m.ScriptLoader.add(this.urls[o]+"/langs/"+q.language+".js")},add:function(o,q){this.items.push(q);this.lookup[o]=q;this.onAdd.dispatch(this,o,q);return q},load:function(o,q,k,j){if(!this.urls[o]){if(q.indexOf("/")!=0&&q.indexOf("://")==-1)q=m.baseURL+"/"+q;this.urls[o]=q.substring(0,q.lastIndexOf("/"));
-m.ScriptLoader.add(q,k,j)}}});m.PluginManager=new m.AddOnManager;m.ThemeManager=new m.AddOnManager})(tinymce);
-(function(m){var o=m.each,q=m.extend,k=m.DOM,j=m.dom.Event,b=m.explode,g=m.util.Dispatcher,d=0;m.documentBaseURL=window.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");/[\/\\]$/.test(m.documentBaseURL)||(m.documentBaseURL+="/");m.baseURL=(new m.util.URI(m.documentBaseURL)).toAbsolute(m.baseURL);m.baseURI=new m.util.URI(m.baseURL);m.onBeforeUnload=new g(m);j.add(window,"beforeunload",function(l){m.onBeforeUnload.dispatch(m,l)});m.onAddEditor=new g(m);m.onRemoveEditor=new g(m);m.EditorManager=
-q(m,{editors:[],i18n:{},activeEditor:null,init:function(l){function r(c,i,a){var h=c[i];if(h){if(m.is(h,"string")){a=(a=h.replace(/\.\w+$/,""))?m.resolve(a):0;h=m.resolve(h)}return h.apply(a||this,Array.prototype.slice.call(arguments,2))}}var u=this,v,f=[],e;l=q({theme:"simple",language:"en"},l);u.settings=l;j.add(document,"init",function(){var c,i;r(l,"onpageload");switch(l.mode){case "exact":c=l.elements||"";c.length>0&&o(b(c),function(a){if(k.get(a)){e=new m.Editor(a,l);f.push(e);e.render(1)}else o(document.forms,
-function(h){o(h.elements,function(n){if(n.name===a){a="mce_editor_"+d++;k.setAttrib(n,"id",a);e=new m.Editor(a,l);f.push(e);e.render(1)}})})});break;case "textareas":case "specific_textareas":o(k.select("textarea"),function(a){if(!(l.editor_deselector&&(l.editor_deselector.constructor===RegExp?l.editor_deselector.test(a.className):k.hasClass(a,l.editor_deselector))))if(!l.editor_selector||(l.editor_selector.constructor===RegExp?l.editor_selector.test(a.className):k.hasClass(a,l.editor_selector))){v=
-k.get(a.name);if(!a.id&&!v)a.id=a.name;if(!a.id||u.get(a.id))a.id=k.uniqueId();e=new m.Editor(a.id,l);f.push(e);e.render(1)}})}if(l.oninit){c=i=0;o(f,function(a){i++;if(a.initialized)c++;else a.onInit.add(function(){c++;c==i&&r(l,"oninit")});c==i&&r(l,"oninit")})}})},get:function(l){if(l===void 0)return this.editors;return this.editors[l]},getInstanceById:function(l){return this.get(l)},add:function(l){var r=this.editors;r[l.id]=l;r.push(l);this._setActive(l);this.onAddEditor.dispatch(this,l);return l},
-remove:function(l){var r,u=this.editors;if(!u[l.id])return null;delete u[l.id];for(r=0;r<u.length;r++)if(u[r]==l){u.splice(r,1);break}this.activeEditor==l&&this._setActive(u[0]);l.destroy();this.onRemoveEditor.dispatch(this,l);return l},execCommand:function(l,r,u){var v=this.get(u),f;switch(l){case "mceFocus":v.focus();return true;case "mceAddEditor":case "mceAddControl":this.get(u)||(new m.Editor(u,this.settings)).render();return true;case "mceAddFrameControl":f=u.window;f.tinyMCE=tinyMCE;f.tinymce=
-m;m.DOM.doc=f.document;m.DOM.win=f;v=new m.Editor(u.element_id,u);v.render();if(m.isIE){var e=function(){v.destroy();f.detachEvent("onunload",e);f=f.tinyMCE=f.tinymce=null};f.attachEvent("onunload",e)}u.page_window=null;return true;case "mceRemoveEditor":case "mceRemoveControl":v&&v.remove();return true;case "mceToggleEditor":if(!v){this.execCommand("mceAddControl",0,u);return true}v.isHidden()?v.show():v.hide();return true}if(this.activeEditor)return this.activeEditor.execCommand(l,r,u);return false},
-execInstanceCommand:function(l,r,u,v){if(l=this.get(l))return l.execCommand(r,u,v);return false},triggerSave:function(){o(this.editors,function(l){l.save()})},addI18n:function(l,r){var u=this.i18n;m.is(l,"string")?o(r,function(v,f){u[l+"."+f]=v}):o(l,function(v,f){o(v,function(e,c){o(e,function(i,a){if(c==="common")u[f+"."+a]=i;else u[f+"."+c+"."+a]=i})})})},_setActive:function(l){this.selectedInstance=this.activeEditor=l}})})(tinymce);
-(function(m){var o=m.DOM,q=m.dom.Event,k=m.extend,j=m.util.Dispatcher,b=m.each,g=m.isGecko,d=m.isIE,l=m.is,r=m.ThemeManager,u=m.PluginManager,v=m.explode;m.create("tinymce.Editor",{Editor:function(f,e){var c=this;c.id=c.editorId=f;c.execCommands={};c.queryStateCommands={};c.queryValueCommands={};c.isNotDirty=false;c.plugins={};b(["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(i){c[i]=new j(c)});c.settings=e=k({id:f,language:"en",docs_language:"en",theme:"simple",skin:"default",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:m.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:m.isIE6?'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">':"<!DOCTYPE>",visual_table_class:"mceItemTable",visual:1,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",
+tinymce.create("tinymce.ui.Toolbar:tinymce.ui.Container",{renderHTML:function(){var l="",o,q,k=tinymce.DOM,j=this.settings,b,g,d,n;n=this.controls;for(b=0;b<n.length;b++){q=n[b];g=n[b-1];d=n[b+1];if(b===0){o="mceToolbarStart";if(q.Button)o+=" mceToolbarStartButton";else if(q.SplitButton)o+=" mceToolbarStartSplitButton";else if(q.ListBox)o+=" mceToolbarStartListBox";l+=k.createHTML("td",{"class":o},k.createHTML("span",null,"<\!-- IE --\>"))}if(g&&q.ListBox)if(g.Button||g.SplitButton)l+=k.createHTML("td",
+{"class":"mceToolbarEnd"},k.createHTML("span",null,"<\!-- IE --\>"));l+=k.stdMode?'<td style="position: relative">'+q.renderHTML()+"</td>":"<td>"+q.renderHTML()+"</td>";if(d&&q.ListBox)if(d.Button||d.SplitButton)l+=k.createHTML("td",{"class":"mceToolbarStart"},k.createHTML("span",null,"<\!-- IE --\>"))}o="mceToolbarEnd";if(q.Button)o+=" mceToolbarEndButton";else if(q.SplitButton)o+=" mceToolbarEndSplitButton";else if(q.ListBox)o+=" mceToolbarEndListBox";l+=k.createHTML("td",{"class":o},k.createHTML("span",
+null,"<\!-- IE --\>"));return k.createHTML("table",{id:this.id,"class":"mceToolbar"+(j["class"]?" "+j["class"]:""),cellpadding:"0",cellspacing:"0",align:this.settings.align||""},"<tbody><tr>"+l+"</tr></tbody>")}});
+(function(l){l.create("tinymce.AddOnManager",{items:[],urls:{},lookup:{},onAdd:new l.util.Dispatcher(this),get:function(o){return this.lookup[o]},requireLangPack:function(o){var q=l.settings;q&&q.language&&l.ScriptLoader.add(this.urls[o]+"/langs/"+q.language+".js")},add:function(o,q){this.items.push(q);this.lookup[o]=q;this.onAdd.dispatch(this,o,q);return q},load:function(o,q,k,j){if(!this.urls[o]){if(q.indexOf("/")!=0&&q.indexOf("://")==-1)q=l.baseURL+"/"+q;this.urls[o]=q.substring(0,q.lastIndexOf("/"));
+l.ScriptLoader.add(q,k,j)}}});l.PluginManager=new l.AddOnManager;l.ThemeManager=new l.AddOnManager})(tinymce);
+(function(l){var o=l.each,q=l.extend,k=l.DOM,j=l.dom.Event,b=l.explode,g=l.util.Dispatcher,d=0;l.documentBaseURL=window.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");/[\/\\]$/.test(l.documentBaseURL)||(l.documentBaseURL+="/");l.baseURL=(new l.util.URI(l.documentBaseURL)).toAbsolute(l.baseURL);l.baseURI=new l.util.URI(l.baseURL);l.onBeforeUnload=new g(l);j.add(window,"beforeunload",function(n){l.onBeforeUnload.dispatch(l,n)});l.onAddEditor=new g(l);l.onRemoveEditor=new g(l);l.EditorManager=
+q(l,{editors:[],i18n:{},activeEditor:null,init:function(n){function r(c,i,a){var h=c[i];if(h){if(l.is(h,"string")){a=(a=h.replace(/\.\w+$/,""))?l.resolve(a):0;h=l.resolve(h)}return h.apply(a||this,Array.prototype.slice.call(arguments,2))}}var u=this,v,f=[],e;n=q({theme:"simple",language:"en"},n);u.settings=n;j.add(document,"init",function(){var c,i;r(n,"onpageload");switch(n.mode){case "exact":c=n.elements||"";c.length>0&&o(b(c),function(a){if(k.get(a)){e=new l.Editor(a,n);f.push(e);e.render(1)}else o(document.forms,
+function(h){o(h.elements,function(m){if(m.name===a){a="mce_editor_"+d++;k.setAttrib(m,"id",a);e=new l.Editor(a,n);f.push(e);e.render(1)}})})});break;case "textareas":case "specific_textareas":o(k.select("textarea"),function(a){if(!(n.editor_deselector&&(n.editor_deselector.constructor===RegExp?n.editor_deselector.test(a.className):k.hasClass(a,n.editor_deselector))))if(!n.editor_selector||(n.editor_selector.constructor===RegExp?n.editor_selector.test(a.className):k.hasClass(a,n.editor_selector))){v=
+k.get(a.name);if(!a.id&&!v)a.id=a.name;if(!a.id||u.get(a.id))a.id=k.uniqueId();e=new l.Editor(a.id,n);f.push(e);e.render(1)}})}if(n.oninit){c=i=0;o(f,function(a){i++;if(a.initialized)c++;else a.onInit.add(function(){c++;c==i&&r(n,"oninit")});c==i&&r(n,"oninit")})}})},get:function(n){if(n===void 0)return this.editors;return this.editors[n]},getInstanceById:function(n){return this.get(n)},add:function(n){var r=this.editors;r[n.id]=n;r.push(n);this._setActive(n);this.onAddEditor.dispatch(this,n);return n},
+remove:function(n){var r,u=this.editors;if(!u[n.id])return null;delete u[n.id];for(r=0;r<u.length;r++)if(u[r]==n){u.splice(r,1);break}this.activeEditor==n&&this._setActive(u[0]);n.destroy();this.onRemoveEditor.dispatch(this,n);return n},execCommand:function(n,r,u){var v=this.get(u),f;switch(n){case "mceFocus":v.focus();return true;case "mceAddEditor":case "mceAddControl":this.get(u)||(new l.Editor(u,this.settings)).render();return true;case "mceAddFrameControl":f=u.window;f.tinyMCE=tinyMCE;f.tinymce=
+l;l.DOM.doc=f.document;l.DOM.win=f;v=new l.Editor(u.element_id,u);v.render();if(l.isIE){var e=function(){v.destroy();f.detachEvent("onunload",e);f=f.tinyMCE=f.tinymce=null};f.attachEvent("onunload",e)}u.page_window=null;return true;case "mceRemoveEditor":case "mceRemoveControl":v&&v.remove();return true;case "mceToggleEditor":if(!v){this.execCommand("mceAddControl",0,u);return true}v.isHidden()?v.show():v.hide();return true}if(this.activeEditor)return this.activeEditor.execCommand(n,r,u);return false},
+execInstanceCommand:function(n,r,u,v){if(n=this.get(n))return n.execCommand(r,u,v);return false},triggerSave:function(){o(this.editors,function(n){n.save()})},addI18n:function(n,r){var u=this.i18n;l.is(n,"string")?o(r,function(v,f){u[n+"."+f]=v}):o(n,function(v,f){o(v,function(e,c){o(e,function(i,a){if(c==="common")u[f+"."+a]=i;else u[f+"."+c+"."+a]=i})})})},_setActive:function(n){this.selectedInstance=this.activeEditor=n}})})(tinymce);
+(function(l){var o=l.DOM,q=l.dom.Event,k=l.extend,j=l.util.Dispatcher,b=l.each,g=l.isGecko,d=l.isIE,n=l.is,r=l.ThemeManager,u=l.PluginManager,v=l.explode;l.create("tinymce.Editor",{Editor:function(f,e){var c=this;c.id=c.editorId=f;c.execCommands={};c.queryStateCommands={};c.queryValueCommands={};c.isNotDirty=false;c.plugins={};b(["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(i){c[i]=new j(c)});c.settings=e=k({id:f,language:"en",docs_language:"en",theme:"simple",skin:"default",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:l.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:l.isIE6?'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">':"<!DOCTYPE>",visual_table_class:"mceItemTable",visual:1,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,-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big",
-hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:"30px",keep_styles:1,fix_table_elements:1,inline_styles:1,convert_fonts_to_spans:true},e);c.documentBaseURI=new m.util.URI(e.document_base_url||m.documentBaseURL,{base_uri:tinyMCE.baseURI});c.baseURI=m.baseURI;c.execCallback("setup",c)},render:function(){var f=this,e=f.settings,c=f.id,i=m.ScriptLoader;if(q.domLoaded){tinyMCE.settings=e;if(f.getElement())if(!m.isIDevice){!/TEXTAREA|INPUT/i.test(f.getElement().nodeName)&&
-e.hidden_input&&o.getParent(c,"form")&&o.insertAfter(o.create("input",{type:"hidden",name:c}),c);if(m.WindowManager)f.windowManager=new m.WindowManager(f);e.encoding=="xml"&&f.onGetContent.add(function(a,h){if(h.save)h.content=o.encode(h.content)});e.add_form_submit_trigger&&f.onSubmit.addToTop(function(){if(f.initialized){f.save();f.isNotDirty=1}});if(e.add_unload_trigger)f._beforeUnload=tinyMCE.onBeforeUnload.add(function(){f.initialized&&!f.destroyed&&!f.isHidden()&&f.save({format:"raw",no_events:true})});
-m.addUnload(f.destroy,f);e.submit_patch&&f.onBeforeRenderUI.add(function(){var a=f.getElement().form;if(a)if(!a._mceOldSubmit){if(!a.submit.nodeType&&!a.submit.length){f.formElement=a;a._mceOldSubmit=a.submit;a.submit=function(){m.triggerSave();f.isNotDirty=1;return f.formElement._mceOldSubmit(f.formElement)}}a=null}});(function(){e.language&&i.add(m.baseURL+"/langs/"+e.language+".js");e.theme&&e.theme.charAt(0)!="-"&&!r.urls[e.theme]&&r.load(e.theme,"themes/"+e.theme+"/editor_template"+m.suffix+
-".js");b(v(e.plugins),function(a){a&&a.charAt(0)!="-"&&!u.urls[a]&&a!="safari"&&u.load(a,"plugins/"+a+"/editor_plugin"+m.suffix+".js")});i.loadQueue(function(){f.removed||f.init()})})()}}else q.add(document,"init",function(){f.render()})},init:function(){var f=this,e=f.settings,c,i,a=f.getElement(),h,n,p;m.add(f);if(e.theme){e.theme=e.theme.replace(/-/,"");h=r.get(e.theme);f.theme=new h;if(f.theme.init&&e.init_theme)f.theme.init(f,r.urls[e.theme]||m.documentBaseURL.replace(/\/$/,""))}b(v(e.plugins.replace(/\-/g,
-"")),function(t){var s=u.get(t),x=u.urls[t]||m.documentBaseURL.replace(/\/$/,"");if(s){s=new s(f,x);f.plugins[t]=s;s.init&&s.init(f,x)}});if(e.popup_css!==false)e.popup_css=e.popup_css?f.documentBaseURI.toAbsolute(e.popup_css):f.baseURI.toAbsolute("themes/"+e.theme+"/skins/"+e.skin+"/dialog.css");if(e.popup_css_add)e.popup_css+=","+f.documentBaseURI.toAbsolute(e.popup_css_add);f.controlManager=new m.ControlManager(f);if(e.custom_undo_redo){f.onBeforeExecCommand.add(function(t,s,x,y,D){if(s!="Undo"&&
-s!="Redo"&&s!="mceRepaint"&&(!D||!D.skip_undo))f.undoManager.hasUndo()||f.undoManager.add()});f.onExecCommand.add(function(t,s,x,y,D){if(s!="Undo"&&s!="Redo"&&s!="mceRepaint"&&(!D||!D.skip_undo))f.undoManager.add()})}f.onExecCommand.add(function(t,s){/^(FontName|FontSize)$/.test(s)||f.nodeChanged()});if(g){p=function(t,s){if(!s||!s.initial)f.execCommand("mceRepaint")};f.onUndo.add(p);f.onRedo.add(p);f.onSetContent.add(p)}f.onBeforeRenderUI.dispatch(f,f.controlManager);if(e.render_ui){c=e.width||a.style.width||
-a.offsetWidth;i=e.height||a.style.height||a.offsetHeight;f.orgDisplay=a.style.display;p=/^[0-9\.]+(|px)$/i;if(p.test(""+c))c=Math.max(parseInt(c)+(h.deltaWidth||0),100);if(p.test(""+i))i=Math.max(parseInt(i)+(h.deltaHeight||0),100);h=f.theme.renderUI({targetNode:a,width:c,height:i,deltaWidth:e.delta_width,deltaHeight:e.delta_height});f.editorContainer=h.editorContainer}if(document.domain&&location.hostname!=document.domain)m.relaxedDomain=document.domain;o.setStyles(h.sizeContainer||h.editorContainer,
-{width:c,height:i});i=(h.iframeHeight||i)+(typeof i=="number"?h.deltaHeight||0:"");if(i<100)i=100;f.iframeHTML=e.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml">';if(e.document_base_url!=m.documentBaseURL)f.iframeHTML+='<base href="'+f.documentBaseURI.getURI()+'" />';f.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';if(m.relaxedDomain)f.iframeHTML+='<script type="text/javascript">document.domain = "'+
-m.relaxedDomain+'";<\/script>';c=e.body_id||"tinymce";if(c.indexOf("=")!=-1){c=f.getParam("body_id","","hash");c=c[f.id]||c}e=e.body_class||"";if(e.indexOf("=")!=-1){e=f.getParam("body_class","","hash");e=e[f.id]||""}f.iframeHTML+='</head><body id="'+c+'" class="mceContentBody '+e+'"></body></html>';if(m.relaxedDomain)if(d||m.isOpera&&parseFloat(opera.version())>=9.5)n='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+f.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';
-else if(m.isOpera)n='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()';o.add(h.iframeContainer,"iframe",{id:f.id+"_ifr",src:n||'javascript:""',frameBorder:"0",style:{width:"100%",height:i}});f.contentAreaContainer=h.iframeContainer;o.get(h.editorContainer).style.display=f.orgDisplay;o.get(f.id).style.display="none";if(!d||!m.relaxedDomain)f.setupIframe();a=h=null},setupIframe:function(){var f=this,e=f.settings;o.get(f.id);var c=f.getDoc(),
-i;if(!d||!m.relaxedDomain){c.open();c.write(f.iframeHTML);c.close()}if(!d)try{if(!e.readonly)c.designMode="On"}catch(a){}if(d){i=f.getBody();o.hide(i);if(!e.readonly)i.contentEditable=true;o.show(i)}f.dom=new m.dom.DOMUtils(f.getDoc(),{keep_values:true,url_converter:f.convertURL,url_converter_scope:f,hex_colors:e.force_hex_style_colors,class_filter:e.class_filter,update_styles:1,fix_ie_paragraphs:1,valid_styles:e.valid_styles});f.schema=new m.dom.Schema;f.serializer=new m.dom.Serializer(k(e,{valid_elements:e.verify_html===
-false?"*[*]":e.valid_elements,dom:f.dom,schema:f.schema}));f.selection=new m.dom.Selection(f.dom,f.getWin(),f.serializer);f.formatter=new m.Formatter(this);f.formatter.register({alignleft:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"left"}},{selector:"img,table",styles:{"float":"left"}}],aligncenter:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"center"}},{selector:"img",styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",
+hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:"30px",keep_styles:1,fix_table_elements:1,inline_styles:1,convert_fonts_to_spans:true},e);c.documentBaseURI=new l.util.URI(e.document_base_url||l.documentBaseURL,{base_uri:tinyMCE.baseURI});c.baseURI=l.baseURI;c.execCallback("setup",c)},render:function(){var f=this,e=f.settings,c=f.id,i=l.ScriptLoader;if(q.domLoaded){tinyMCE.settings=e;if(f.getElement())if(!l.isIDevice){!/TEXTAREA|INPUT/i.test(f.getElement().nodeName)&&
+e.hidden_input&&o.getParent(c,"form")&&o.insertAfter(o.create("input",{type:"hidden",name:c}),c);if(l.WindowManager)f.windowManager=new l.WindowManager(f);e.encoding=="xml"&&f.onGetContent.add(function(a,h){if(h.save)h.content=o.encode(h.content)});e.add_form_submit_trigger&&f.onSubmit.addToTop(function(){if(f.initialized){f.save();f.isNotDirty=1}});if(e.add_unload_trigger)f._beforeUnload=tinyMCE.onBeforeUnload.add(function(){f.initialized&&!f.destroyed&&!f.isHidden()&&f.save({format:"raw",no_events:true})});
+l.addUnload(f.destroy,f);e.submit_patch&&f.onBeforeRenderUI.add(function(){var a=f.getElement().form;if(a)if(!a._mceOldSubmit){if(!a.submit.nodeType&&!a.submit.length){f.formElement=a;a._mceOldSubmit=a.submit;a.submit=function(){l.triggerSave();f.isNotDirty=1;return f.formElement._mceOldSubmit(f.formElement)}}a=null}});(function(){e.language&&i.add(l.baseURL+"/langs/"+e.language+".js");e.theme&&e.theme.charAt(0)!="-"&&!r.urls[e.theme]&&r.load(e.theme,"themes/"+e.theme+"/editor_template"+l.suffix+
+".js");b(v(e.plugins),function(a){a&&a.charAt(0)!="-"&&!u.urls[a]&&a!="safari"&&u.load(a,"plugins/"+a+"/editor_plugin"+l.suffix+".js")});i.loadQueue(function(){f.removed||f.init()})})()}}else q.add(document,"init",function(){f.render()})},init:function(){var f=this,e=f.settings,c,i,a=f.getElement(),h,m,p;l.add(f);if(e.theme){e.theme=e.theme.replace(/-/,"");h=r.get(e.theme);f.theme=new h;if(f.theme.init&&e.init_theme)f.theme.init(f,r.urls[e.theme]||l.documentBaseURL.replace(/\/$/,""))}b(v(e.plugins.replace(/\-/g,
+"")),function(t){var s=u.get(t),x=u.urls[t]||l.documentBaseURL.replace(/\/$/,"");if(s){s=new s(f,x);f.plugins[t]=s;s.init&&s.init(f,x)}});if(e.popup_css!==false)e.popup_css=e.popup_css?f.documentBaseURI.toAbsolute(e.popup_css):f.baseURI.toAbsolute("themes/"+e.theme+"/skins/"+e.skin+"/dialog.css");if(e.popup_css_add)e.popup_css+=","+f.documentBaseURI.toAbsolute(e.popup_css_add);f.controlManager=new l.ControlManager(f);if(e.custom_undo_redo){f.onBeforeExecCommand.add(function(t,s,x,y,C){if(s!="Undo"&&
+s!="Redo"&&s!="mceRepaint"&&(!C||!C.skip_undo))f.undoManager.hasUndo()||f.undoManager.add()});f.onExecCommand.add(function(t,s,x,y,C){if(s!="Undo"&&s!="Redo"&&s!="mceRepaint"&&(!C||!C.skip_undo))f.undoManager.add()})}f.onExecCommand.add(function(t,s){/^(FontName|FontSize)$/.test(s)||f.nodeChanged()});if(g){p=function(t,s){if(!s||!s.initial)f.execCommand("mceRepaint")};f.onUndo.add(p);f.onRedo.add(p);f.onSetContent.add(p)}f.onBeforeRenderUI.dispatch(f,f.controlManager);if(e.render_ui){c=e.width||a.style.width||
+a.offsetWidth;i=e.height||a.style.height||a.offsetHeight;f.orgDisplay=a.style.display;p=/^[0-9\.]+(|px)$/i;if(p.test(""+c))c=Math.max(parseInt(c)+(h.deltaWidth||0),100);if(p.test(""+i))i=Math.max(parseInt(i)+(h.deltaHeight||0),100);h=f.theme.renderUI({targetNode:a,width:c,height:i,deltaWidth:e.delta_width,deltaHeight:e.delta_height});f.editorContainer=h.editorContainer}if(document.domain&&location.hostname!=document.domain)l.relaxedDomain=document.domain;o.setStyles(h.sizeContainer||h.editorContainer,
+{width:c,height:i});i=(h.iframeHeight||i)+(typeof i=="number"?h.deltaHeight||0:"");if(i<100)i=100;f.iframeHTML=e.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml">';if(e.document_base_url!=l.documentBaseURL)f.iframeHTML+='<base href="'+f.documentBaseURI.getURI()+'" />';f.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';if(l.relaxedDomain)f.iframeHTML+='<script type="text/javascript">document.domain = "'+
+l.relaxedDomain+'";<\/script>';c=e.body_id||"tinymce";if(c.indexOf("=")!=-1){c=f.getParam("body_id","","hash");c=c[f.id]||c}e=e.body_class||"";if(e.indexOf("=")!=-1){e=f.getParam("body_class","","hash");e=e[f.id]||""}f.iframeHTML+='</head><body id="'+c+'" class="mceContentBody '+e+'"></body></html>';if(l.relaxedDomain)if(d||l.isOpera&&parseFloat(opera.version())>=9.5)m='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+f.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';
+else if(l.isOpera)m='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()';o.add(h.iframeContainer,"iframe",{id:f.id+"_ifr",src:m||'javascript:""',frameBorder:"0",style:{width:"100%",height:i}});f.contentAreaContainer=h.iframeContainer;o.get(h.editorContainer).style.display=f.orgDisplay;o.get(f.id).style.display="none";if(!d||!l.relaxedDomain)f.setupIframe();a=h=null},setupIframe:function(){var f=this,e=f.settings;o.get(f.id);var c=f.getDoc(),
+i;if(!d||!l.relaxedDomain){c.open();c.write(f.iframeHTML);c.close()}if(!d)try{if(!e.readonly)c.designMode="On"}catch(a){}if(d){i=f.getBody();o.hide(i);if(!e.readonly)i.contentEditable=true;o.show(i)}f.dom=new l.dom.DOMUtils(f.getDoc(),{keep_values:true,url_converter:f.convertURL,url_converter_scope:f,hex_colors:e.force_hex_style_colors,class_filter:e.class_filter,update_styles:1,fix_ie_paragraphs:1,valid_styles:e.valid_styles});f.schema=new l.dom.Schema;f.serializer=new l.dom.Serializer(k(e,{valid_elements:e.verify_html===
+false?"*[*]":e.valid_elements,dom:f.dom,schema:f.schema}));f.selection=new l.dom.Selection(f.dom,f.getWin(),f.serializer);f.formatter=new l.Formatter(this);f.formatter.register({alignleft:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"left"}},{selector:"img,table",styles:{"float":"left"}}],aligncenter:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"center"}},{selector:"img",styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",
 styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"right"}},{selector:"img,table",styles:{"float":"right"}}],alignfull:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"justify"}}],bold:[{inline:"strong"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b"}],italic:[{inline:"em"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i"}],underline:[{inline:"span",styles:{textDecoration:"underline"},
 exact:true},{inline:"u"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:true},{inline:"u"}],forecolor:{inline:"span",styles:{color:"%value"}},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"}},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},removeformat:[{selector:"b,strong,em,i,font,u,strike",
-remove:"all",split:true,expand:false,block_expand:true,deep:true},{selector:"span",attributes:["style","class"],remove:"empty",split:true,expand:false,deep:true},{selector:"*",attributes:["style","class"],split:false,expand:false,deep:true}]});b("p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp".split(/\s/),function(t){f.formatter.register(t,{block:t,remove:"all"})});f.formatter.register(f.settings.formats);f.undoManager=new m.UndoManager(f);f.undoManager.onAdd.add(function(t,s){if(!s.initial)return f.onChange.dispatch(f,
-s,t)});f.undoManager.onUndo.add(function(t,s){return f.onUndo.dispatch(f,s,t)});f.undoManager.onRedo.add(function(t,s){return f.onRedo.dispatch(f,s,t)});f.forceBlocks=new m.ForceBlocks(f,{forced_root_block:e.forced_root_block});f.editorCommands=new m.EditorCommands(f);f.serializer.onPreProcess.add(function(t,s){return f.onPreProcess.dispatch(f,s,t)});f.serializer.onPostProcess.add(function(t,s){return f.onPostProcess.dispatch(f,s,t)});f.onPreInit.dispatch(f);if(!e.gecko_spellcheck)f.getBody().spellcheck=
+remove:"all",split:true,expand:false,block_expand:true,deep:true},{selector:"span",attributes:["style","class"],remove:"empty",split:true,expand:false,deep:true},{selector:"*",attributes:["style","class"],split:false,expand:false,deep:true}]});b("p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp".split(/\s/),function(t){f.formatter.register(t,{block:t,remove:"all"})});f.formatter.register(f.settings.formats);f.undoManager=new l.UndoManager(f);f.undoManager.onAdd.add(function(t,s){if(!s.initial)return f.onChange.dispatch(f,
+s,t)});f.undoManager.onUndo.add(function(t,s){return f.onUndo.dispatch(f,s,t)});f.undoManager.onRedo.add(function(t,s){return f.onRedo.dispatch(f,s,t)});f.forceBlocks=new l.ForceBlocks(f,{forced_root_block:e.forced_root_block});f.editorCommands=new l.EditorCommands(f);f.serializer.onPreProcess.add(function(t,s){return f.onPreProcess.dispatch(f,s,t)});f.serializer.onPostProcess.add(function(t,s){return f.onPostProcess.dispatch(f,s,t)});f.onPreInit.dispatch(f);if(!e.gecko_spellcheck)f.getBody().spellcheck=
 0;e.readonly||f._addEvents();f.controlManager.onPostRender.dispatch(f,f.controlManager);f.onPostRender.dispatch(f);if(e.directionality)f.getBody().dir=e.directionality;if(e.nowrap)f.getBody().style.whiteSpace="nowrap";if(e.custom_elements){var h=function(t,s){b(v(e.custom_elements),function(x){var y;if(x.indexOf("~")===0){x=x.substring(1);y="span"}else y="div";s.content=s.content.replace(RegExp("<("+x+")([^>]*)>","g"),"<"+y+' _mce_name="$1"$2>');s.content=s.content.replace(RegExp("</("+x+")>","g"),
 "</"+y+">")})};f.onBeforeSetContent.add(h);f.onPostProcess.add(function(t,s){s.set&&h(t,s)})}e.handle_node_change_callback&&f.onNodeChange.add(function(t,s,x){f.execCallback("handle_node_change_callback",f.id,x,-1,-1,true,f.selection.isCollapsed())});e.save_callback&&f.onSaveContent.add(function(t,s){var x=f.execCallback("save_callback",f.id,s.content,f.getBody());if(x)s.content=x});e.onchange_callback&&f.onChange.add(function(t,s){f.execCallback("onchange_callback",f,s)});e.convert_newlines_to_brs&&
 f.onBeforeSetContent.add(function(t,s){if(s.initial)s.content=s.content.replace(/\r?\n/g,"<br />")});e.fix_nesting&&d&&f.onBeforeSetContent.add(function(t,s){s.content=f._fixNesting(s.content)});e.preformatted&&f.onPostProcess.add(function(t,s){s.content=s.content.replace(/^\s*<pre.*?>/,"");s.content=s.content.replace(/<\/pre>\s*$/,"");if(s.set)s.content='<pre class="mceItemHidden">'+s.content+"</pre>"});if(e.verify_css_classes)f.serializer.attribValueFilter=function(t,s){var x,y;if(t=="class"){if(!f.classesRE){y=
-f.dom.getClasses();if(y.length>0){x="";b(y,function(D){x+=(x?"|":"")+D["class"]});f.classesRE=RegExp("("+x+")","gi")}}return!f.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(s)||f.classesRE.test(s)?s:""}return s};if(e.cleanup_callback){f.onBeforeSetContent.add(function(t,s){s.content=f.execCallback("cleanup_callback","insert_to_editor",s.content,s)});f.onPreProcess.add(function(t,s){s.set&&f.execCallback("cleanup_callback","insert_to_editor_dom",s.node,s);s.get&&f.execCallback("cleanup_callback",
+f.dom.getClasses();if(y.length>0){x="";b(y,function(C){x+=(x?"|":"")+C["class"]});f.classesRE=RegExp("("+x+")","gi")}}return!f.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(s)||f.classesRE.test(s)?s:""}return s};if(e.cleanup_callback){f.onBeforeSetContent.add(function(t,s){s.content=f.execCallback("cleanup_callback","insert_to_editor",s.content,s)});f.onPreProcess.add(function(t,s){s.set&&f.execCallback("cleanup_callback","insert_to_editor_dom",s.node,s);s.get&&f.execCallback("cleanup_callback",
 "get_from_editor_dom",s.node,s)});f.onPostProcess.add(function(t,s){if(s.set)s.content=f.execCallback("cleanup_callback","insert_to_editor",s.content,s);if(s.get)s.content=f.execCallback("cleanup_callback","get_from_editor",s.content,s)})}e.save_callback&&f.onGetContent.add(function(t,s){if(s.save)s.content=f.execCallback("save_callback",f.id,s.content,f.getBody())});e.handle_event_callback&&f.onEvent.add(function(t,s,x){f.execCallback("handle_event_callback",s,t,x)===false&&q.cancel(s)});f.onSetContent.add(function(){f.addVisual(f.getBody())});
-e.padd_empty_editor&&f.onPostProcess.add(function(t,s){s.content=s.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")});if(g){var n=function(t){b(t.dom.select("a"),function(s){var x=s.parentNode;t.dom.isBlock(x)&&x.lastChild===s&&t.dom.add(x,"br",{_mce_bogus:1})})};f.onExecCommand.add(function(t,s){s==="CreateLink"&&n(t)});f.onSetContent.add(f.selection.onSetContent.add(n));if(!e.readonly)try{c.designMode="Off";c.designMode="On"}catch(p){}}setTimeout(function(){if(!f.removed){f.load({initial:true,
-format:e.cleanup_on_startup?"html":"raw"});f.startContent=f.getContent({format:"raw"});f.initialized=true;f.onInit.dispatch(f);f.execCallback("setupcontent_callback",f.id,f.getBody(),f.getDoc());f.execCallback("init_instance_callback",f);f.focus(true);f.nodeChanged({initial:1});e.content_css&&m.each(v(e.content_css),function(t){f.dom.loadCSS(f.documentBaseURI.toAbsolute(t))});e.auto_focus&&setTimeout(function(){var t=m.get(e.auto_focus);t.selection.select(t.getBody(),1);t.selection.collapse(1);t.getWin().focus()},
-100)}},1)},focus:function(f){var e;e=this.settings.content_editable;var c,i=this.getDoc();if(!f){f=this.selection.getRng();if(f.item)c=f.item(0);e||this.getWin().focus();if(c&&c.ownerDocument==i){f=i.body.createControlRange();f.addElement(c);f.select()}}if(m.activeEditor!=this){if((e=m.activeEditor)!=null)e.onDeactivate.dispatch(e,this);this.onActivate.dispatch(this,e)}m._setActive(this)},execCallback:function(f){var e=this.settings[f],c;if(e){if(this.callbackLookup&&(c=this.callbackLookup[f])){e=
-c.func;c=c.scope}if(l(e,"string")){c=(c=e.replace(/\.\w+$/,""))?m.resolve(c):0;e=m.resolve(e);this.callbackLookup=this.callbackLookup||{};this.callbackLookup[f]={func:e,scope:c}}return e.apply(c||this,Array.prototype.slice.call(arguments,1))}},translate:function(f){var e=this.settings.language||"en",c=m.i18n;if(!f)return"";return c[e+"."+f]||f.replace(/{\#([^}]+)\}/g,function(i,a){return c[e+"."+a]||"{#"+a+"}"})},getLang:function(f,e){return m.i18n[(this.settings.language||"en")+"."+f]||(l(e)?e:"{#"+
-f+"}")},getParam:function(f,e,c){var i=m.trim;f=l(this.settings[f])?this.settings[f]:e;var a;if(c==="hash"){a={};if(l(f,"string"))b(f.indexOf("=")>0?f.split(/[;,](?![^=;,]*(?:[;,]|$))/):f.split(","),function(h){h=h.split("=");if(h.length>1)a[i(h[0])]=i(h[1]);else a[i(h[0])]=i(h)});else a=f;return a}return f},nodeChanged:function(f){var e=this.selection,c=(d?e.getNode():e.getStart())||this.getBody();if(this.initialized){f=f||{};c=d&&c.ownerDocument!=this.getDoc()?this.getBody():c;f.parents=[];this.dom.getParent(c,
+e.padd_empty_editor&&f.onPostProcess.add(function(t,s){s.content=s.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")});if(g){var m=function(t){b(t.dom.select("a"),function(s){var x=s.parentNode;t.dom.isBlock(x)&&x.lastChild===s&&t.dom.add(x,"br",{_mce_bogus:1})})};f.onExecCommand.add(function(t,s){s==="CreateLink"&&m(t)});f.onSetContent.add(f.selection.onSetContent.add(m));if(!e.readonly)try{c.designMode="Off";c.designMode="On"}catch(p){}}setTimeout(function(){if(!f.removed){f.load({initial:true,
+format:e.cleanup_on_startup?"html":"raw"});f.startContent=f.getContent({format:"raw"});f.initialized=true;f.onInit.dispatch(f);f.execCallback("setupcontent_callback",f.id,f.getBody(),f.getDoc());f.execCallback("init_instance_callback",f);f.focus(true);f.nodeChanged({initial:1});e.content_css&&l.each(v(e.content_css),function(t){f.dom.loadCSS(f.documentBaseURI.toAbsolute(t))});e.auto_focus&&setTimeout(function(){var t=l.get(e.auto_focus);t.selection.select(t.getBody(),1);t.selection.collapse(1);t.getWin().focus()},
+100)}},1)},focus:function(f){var e;e=this.settings.content_editable;var c,i=this.getDoc();if(!f){f=this.selection.getRng();if(f.item)c=f.item(0);e||this.getWin().focus();if(c&&c.ownerDocument==i){f=i.body.createControlRange();f.addElement(c);f.select()}}if(l.activeEditor!=this){if((e=l.activeEditor)!=null)e.onDeactivate.dispatch(e,this);this.onActivate.dispatch(this,e)}l._setActive(this)},execCallback:function(f){var e=this.settings[f],c;if(e){if(this.callbackLookup&&(c=this.callbackLookup[f])){e=
+c.func;c=c.scope}if(n(e,"string")){c=(c=e.replace(/\.\w+$/,""))?l.resolve(c):0;e=l.resolve(e);this.callbackLookup=this.callbackLookup||{};this.callbackLookup[f]={func:e,scope:c}}return e.apply(c||this,Array.prototype.slice.call(arguments,1))}},translate:function(f){var e=this.settings.language||"en",c=l.i18n;if(!f)return"";return c[e+"."+f]||f.replace(/{\#([^}]+)\}/g,function(i,a){return c[e+"."+a]||"{#"+a+"}"})},getLang:function(f,e){return l.i18n[(this.settings.language||"en")+"."+f]||(n(e)?e:"{#"+
+f+"}")},getParam:function(f,e,c){var i=l.trim;f=n(this.settings[f])?this.settings[f]:e;var a;if(c==="hash"){a={};if(n(f,"string"))b(f.indexOf("=")>0?f.split(/[;,](?![^=;,]*(?:[;,]|$))/):f.split(","),function(h){h=h.split("=");if(h.length>1)a[i(h[0])]=i(h[1]);else a[i(h[0])]=i(h)});else a=f;return a}return f},nodeChanged:function(f){var e=this.selection,c=(d?e.getNode():e.getStart())||this.getBody();if(this.initialized){f=f||{};c=d&&c.ownerDocument!=this.getDoc()?this.getBody():c;f.parents=[];this.dom.getParent(c,
 function(i){if(i.nodeName=="BODY")return true;f.parents.push(i)});this.onNodeChange.dispatch(this,f?f.controlManager||this.controlManager:this.controlManager,c,e.isCollapsed(),f)}},addButton:function(f,e){this.buttons=this.buttons||{};this.buttons[f]=e},addCommand:function(f,e,c){this.execCommands[f]={func:e,scope:c||this}},addQueryStateHandler:function(f,e,c){this.queryStateCommands[f]={func:e,scope:c||this}},addQueryValueHandler:function(f,e,c){this.queryValueCommands[f]={func:e,scope:c||this}},
-addShortcut:function(f,e,c,i){var a=this,h;if(!a.settings.custom_shortcuts)return false;a.shortcuts=a.shortcuts||{};if(l(c,"string")){h=c;c=function(){a.execCommand(h,false,null)}}if(l(c,"object")){h=c;c=function(){a.execCommand(h[0],h[1],h[2])}}b(v(f),function(n){var p={func:c,scope:i||this,desc:e,alt:false,ctrl:false,shift:false};b(v(n,"+"),function(t){switch(t){case "alt":case "ctrl":case "shift":p[t]=true;break;default:p.charCode=t.charCodeAt(0);p.keyCode=t.toUpperCase().charCodeAt(0)}});a.shortcuts[(p.ctrl?
-"ctrl":"")+","+(p.alt?"alt":"")+","+(p.shift?"shift":"")+","+p.keyCode]=p});return true},execCommand:function(f,e,c,i){var a=this,h=0,n;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(f)&&(!i||!i.skip_focus))a.focus();n={};a.onBeforeExecCommand.dispatch(a,f,e,c,n);if(n.terminate)return false;if(a.execCallback("execcommand_callback",a.id,a.selection.getNode(),f,e,c)){a.onExecCommand.dispatch(a,f,e,c,i);return true}if(n=a.execCommands[f]){n=n.func.call(n.scope,
-e,c);if(n!==true){a.onExecCommand.dispatch(a,f,e,c,i);return n}}b(a.plugins,function(p){if(p.execCommand&&p.execCommand(f,e,c)){a.onExecCommand.dispatch(a,f,e,c,i);h=1;return false}});if(h)return true;if(a.theme&&a.theme.execCommand&&a.theme.execCommand(f,e,c)){a.onExecCommand.dispatch(a,f,e,c,i);return true}if(m.GlobalCommands.execCommand(a,f,e,c)){a.onExecCommand.dispatch(a,f,e,c,i);return true}if(a.editorCommands.execCommand(f,e,c)){a.onExecCommand.dispatch(a,f,e,c,i);return true}a.getDoc().execCommand(f,
-e,c);a.onExecCommand.dispatch(a,f,e,c,i)},queryCommandState:function(f){var e;if(!this._isHidden()){if(e=this.queryStateCommands[f]){e=e.func.call(e.scope);if(e!==true)return e}e=this.editorCommands.queryCommandState(f);if(e!==-1)return e;try{return this.getDoc().queryCommandState(f)}catch(c){}}},queryCommandValue:function(f){var e;if(!this._isHidden()){if(e=this.queryValueCommands[f]){e=e.func.call(e.scope);if(e!==true)return e}e=this.editorCommands.queryCommandValue(f);if(l(e))return e;try{return this.getDoc().queryCommandValue(f)}catch(c){}}},
-show:function(){o.show(this.getContainer());o.hide(this.id);this.load()},hide:function(){var f=this.getDoc();d&&f&&f.execCommand("SelectAll");this.save();o.hide(this.getContainer());o.setStyle(this.id,"display",this.orgDisplay)},isHidden:function(){return!o.isHidden(this.id)},setProgressState:function(f,e,c){this.onSetProgressState.dispatch(this,f,e,c);return f},load:function(f){var e=this.getElement(),c;if(e){f=f||{};f.load=true;c=this.setContent(l(e.value)?e.value:e.innerHTML,f);f.element=e;f.no_events||
+addShortcut:function(f,e,c,i){var a=this,h;if(!a.settings.custom_shortcuts)return false;a.shortcuts=a.shortcuts||{};if(n(c,"string")){h=c;c=function(){a.execCommand(h,false,null)}}if(n(c,"object")){h=c;c=function(){a.execCommand(h[0],h[1],h[2])}}b(v(f),function(m){var p={func:c,scope:i||this,desc:e,alt:false,ctrl:false,shift:false};b(v(m,"+"),function(t){switch(t){case "alt":case "ctrl":case "shift":p[t]=true;break;default:p.charCode=t.charCodeAt(0);p.keyCode=t.toUpperCase().charCodeAt(0)}});a.shortcuts[(p.ctrl?
+"ctrl":"")+","+(p.alt?"alt":"")+","+(p.shift?"shift":"")+","+p.keyCode]=p});return true},execCommand:function(f,e,c,i){var a=this,h=0,m;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(f)&&(!i||!i.skip_focus))a.focus();m={};a.onBeforeExecCommand.dispatch(a,f,e,c,m);if(m.terminate)return false;if(a.execCallback("execcommand_callback",a.id,a.selection.getNode(),f,e,c)){a.onExecCommand.dispatch(a,f,e,c,i);return true}if(m=a.execCommands[f]){m=m.func.call(m.scope,
+e,c);if(m!==true){a.onExecCommand.dispatch(a,f,e,c,i);return m}}b(a.plugins,function(p){if(p.execCommand&&p.execCommand(f,e,c)){a.onExecCommand.dispatch(a,f,e,c,i);h=1;return false}});if(h)return true;if(a.theme&&a.theme.execCommand&&a.theme.execCommand(f,e,c)){a.onExecCommand.dispatch(a,f,e,c,i);return true}if(l.GlobalCommands.execCommand(a,f,e,c)){a.onExecCommand.dispatch(a,f,e,c,i);return true}if(a.editorCommands.execCommand(f,e,c)){a.onExecCommand.dispatch(a,f,e,c,i);return true}a.getDoc().execCommand(f,
+e,c);a.onExecCommand.dispatch(a,f,e,c,i)},queryCommandState:function(f){var e;if(!this._isHidden()){if(e=this.queryStateCommands[f]){e=e.func.call(e.scope);if(e!==true)return e}e=this.editorCommands.queryCommandState(f);if(e!==-1)return e;try{return this.getDoc().queryCommandState(f)}catch(c){}}},queryCommandValue:function(f){var e;if(!this._isHidden()){if(e=this.queryValueCommands[f]){e=e.func.call(e.scope);if(e!==true)return e}e=this.editorCommands.queryCommandValue(f);if(n(e))return e;try{return this.getDoc().queryCommandValue(f)}catch(c){}}},
+show:function(){o.show(this.getContainer());o.hide(this.id);this.load()},hide:function(){var f=this.getDoc();d&&f&&f.execCommand("SelectAll");this.save();o.hide(this.getContainer());o.setStyle(this.id,"display",this.orgDisplay)},isHidden:function(){return!o.isHidden(this.id)},setProgressState:function(f,e,c){this.onSetProgressState.dispatch(this,f,e,c);return f},load:function(f){var e=this.getElement(),c;if(e){f=f||{};f.load=true;c=this.setContent(n(e.value)?e.value:e.innerHTML,f);f.element=e;f.no_events||
 this.onLoadContent.dispatch(this,f);f.element=null;return c}},save:function(f){var e=this,c=e.getElement(),i;if(c&&e.initialized){f=f||{};f.save=true;if(!f.no_events){e.undoManager.typing=0;e.undoManager.add()}f.element=c;i=f.content=e.getContent(f);f.no_events||e.onSaveContent.dispatch(e,f);i=f.content;if(/TEXTAREA|INPUT/i.test(c.nodeName))c.value=i;else{c.innerHTML=i;if(c=o.getParent(e.id,"form"))b(c.elements,function(a){if(a.name==e.id){a.value=i;return false}})}f.element=c=null;return i}},setContent:function(f,
-e){e=e||{};e.format=e.format||"html";e.set=true;e.content=f;e.no_events||this.onBeforeSetContent.dispatch(this,e);if(!m.isIE&&(f.length===0||/^\s+$/.test(f))){e.content=this.dom.setHTML(this.getBody(),'<br _mce_bogus="1" />');e.format="raw"}e.content=this.dom.setHTML(this.getBody(),m.trim(e.content));if(e.format!="raw"&&this.settings.cleanup){e.getInner=true;e.content=this.dom.setHTML(this.getBody(),this.serializer.serialize(this.getBody(),e))}e.no_events||this.onSetContent.dispatch(this,e);return e.content},
-getContent:function(f){var e;f=f||{};f.format=f.format||"html";f.get=true;f.no_events||this.onBeforeGetContent.dispatch(this,f);if(f.format!="raw"&&this.settings.cleanup){f.getInner=true;e=this.serializer.serialize(this.getBody(),f)}else e=this.getBody().innerHTML;e=e.replace(/^\s*|\s*$/g,"");f.content=e;f.no_events||this.onGetContent.dispatch(this,f);return f.content},isDirty:function(){return m.trim(this.startContent)!=m.trim(this.getContent({format:"raw",no_events:1}))&&!this.isNotDirty},getContainer:function(){if(!this.container)this.container=
+e){e=e||{};e.format=e.format||"html";e.set=true;e.content=f;e.no_events||this.onBeforeSetContent.dispatch(this,e);if(!l.isIE&&(f.length===0||/^\s+$/.test(f))){e.content=this.dom.setHTML(this.getBody(),'<br _mce_bogus="1" />');e.format="raw"}e.content=this.dom.setHTML(this.getBody(),l.trim(e.content));if(e.format!="raw"&&this.settings.cleanup){e.getInner=true;e.content=this.dom.setHTML(this.getBody(),this.serializer.serialize(this.getBody(),e))}e.no_events||this.onSetContent.dispatch(this,e);return e.content},
+getContent:function(f){var e;f=f||{};f.format=f.format||"html";f.get=true;f.no_events||this.onBeforeGetContent.dispatch(this,f);if(f.format!="raw"&&this.settings.cleanup){f.getInner=true;e=this.serializer.serialize(this.getBody(),f)}else e=this.getBody().innerHTML;e=e.replace(/^\s*|\s*$/g,"");f.content=e;f.no_events||this.onGetContent.dispatch(this,f);return f.content},isDirty:function(){return l.trim(this.startContent)!=l.trim(this.getContent({format:"raw",no_events:1}))&&!this.isNotDirty},getContainer:function(){if(!this.container)this.container=
 o.get(this.editorContainer||this.id+"_parent");return this.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return o.get(this.settings.content_element||this.id)},getWin:function(){var f;if(!this.contentWindow)if(f=o.get(this.id+"_ifr"))this.contentWindow=f.contentWindow;return this.contentWindow},getDoc:function(){var f;if(!this.contentDocument)if(f=this.getWin())this.contentDocument=f.document;return this.contentDocument},getBody:function(){return this.bodyElement||
-this.getDoc().body},convertURL:function(f,e,c){var i=this.settings;if(i.urlconverter_callback)return this.execCallback("urlconverter_callback",f,c,true,e);if(!i.convert_urls||c&&c.nodeName=="LINK"||f.indexOf("file:")===0)return f;if(i.relative_urls)return this.documentBaseURI.toRelative(f);return f=this.documentBaseURI.toAbsolute(f,i.remove_script_host)},addVisual:function(f){var e=this,c=e.settings;f=f||e.getBody();if(!l(e.hasVisual))e.hasVisual=c.visual;b(e.dom.select("table,a",f),function(i){var a;
+this.getDoc().body},convertURL:function(f,e,c){var i=this.settings;if(i.urlconverter_callback)return this.execCallback("urlconverter_callback",f,c,true,e);if(!i.convert_urls||c&&c.nodeName=="LINK"||f.indexOf("file:")===0)return f;if(i.relative_urls)return this.documentBaseURI.toRelative(f);return f=this.documentBaseURI.toAbsolute(f,i.remove_script_host)},addVisual:function(f){var e=this,c=e.settings;f=f||e.getBody();if(!n(e.hasVisual))e.hasVisual=c.visual;b(e.dom.select("table,a",f),function(i){var a;
 switch(i.nodeName){case "TABLE":a=e.dom.getAttrib(i,"border");if(!a||a=="0")e.hasVisual?e.dom.addClass(i,c.visual_table_class):e.dom.removeClass(i,c.visual_table_class);break;case "A":if(a=e.dom.getAttrib(i,"name"))e.hasVisual?e.dom.addClass(i,"mceItemAnchor"):e.dom.removeClass(i,"mceItemAnchor")}});e.onVisualAid.dispatch(e,f,e.hasVisual)},remove:function(){var f=this.getContainer();this.removed=1;this.hide();this.execCallback("remove_instance_callback",this);this.onRemove.dispatch(this);this.onExecCommand.listeners=
-[];m.remove(this);o.remove(f)},destroy:function(f){if(!this.destroyed){if(!f){m.removeUnload(this.destroy);tinyMCE.onBeforeUnload.remove(this._beforeUnload);this.theme&&this.theme.destroy&&this.theme.destroy();this.controlManager.destroy();this.selection.destroy();this.dom.destroy();if(!this.settings.content_editable){q.clear(this.getWin());q.clear(this.getDoc())}q.clear(this.getBody());q.clear(this.formElement)}if(this.formElement){this.formElement.submit=this.formElement._mceOldSubmit;this.formElement._mceOldSubmit=
+[];l.remove(this);o.remove(f)},destroy:function(f){if(!this.destroyed){if(!f){l.removeUnload(this.destroy);tinyMCE.onBeforeUnload.remove(this._beforeUnload);this.theme&&this.theme.destroy&&this.theme.destroy();this.controlManager.destroy();this.selection.destroy();this.dom.destroy();if(!this.settings.content_editable){q.clear(this.getWin());q.clear(this.getDoc())}q.clear(this.getBody());q.clear(this.formElement)}if(this.formElement){this.formElement.submit=this.formElement._mceOldSubmit;this.formElement._mceOldSubmit=
 null}this.contentAreaContainer=this.formElement=this.container=this.settings.content_element=this.bodyElement=this.contentDocument=this.contentWindow=null;if(this.selection)this.selection=this.selection.win=this.selection.dom=this.selection.dom.doc=null;this.destroyed=1}},_addEvents:function(){function f(p,t){if(!e.removed)if(e.onEvent.dispatch(e,p,t)!==false)e[a[p.fakeType||p.type]].dispatch(e,p,t)}var e=this,c,i=e.settings,a={mouseup:"onMouseUp",mousedown:"onMouseDown",click:"onClick",keyup:"onKeyUp",
-keydown:"onKeyDown",keypress:"onKeyPress",submit:"onSubmit",reset:"onReset",contextmenu:"onContextMenu",dblclick:"onDblClick",paste:"onPaste"};b(a,function(p,t){switch(t){case "contextmenu":m.isOpera?e.dom.bind(e.getBody(),"mousedown",function(s){if(s.ctrlKey){s.fakeType="contextmenu";f(s)}}):e.dom.bind(e.getBody(),t,f);break;case "paste":e.dom.bind(e.getBody(),t,function(s){f(s)});break;case "submit":case "reset":e.dom.bind(e.getElement().form||o.getParent(e.id,"form"),t,f);break;default:e.dom.bind(i.content_editable?
-e.getBody():e.getDoc(),t,f)}});e.dom.bind(i.content_editable?e.getBody():g?e.getDoc():e.getWin(),"focus",function(){e.focus(true)});m.isGecko&&e.dom.bind(e.getDoc(),"DOMNodeInserted",function(p){var t;p=p.target;if(p.nodeType===1&&p.nodeName==="IMG"&&(t=p.getAttribute("_mce_src")))p.src=e.documentBaseURI.toAbsolute(t)});if(g){c=function(){var p=this.getDoc(),t=this.settings;if(g&&!t.readonly){if(this._isHidden())try{if(!t.content_editable)p.designMode="On"}catch(s){}try{p.execCommand("styleWithCSS",
-0,false)}catch(x){if(!this._isHidden())try{p.execCommand("useCSS",0,true)}catch(y){}}if(!t.table_inline_editing)try{p.execCommand("enableInlineTableEditing",false,false)}catch(D){}if(!t.object_resizing)try{p.execCommand("enableObjectResizing",false,false)}catch(B){}}};e.onBeforeExecCommand.add(c);e.onMouseDown.add(c)}m.isWebKit&&e.onClick.add(function(p,t){t=t.target;if(t.nodeName=="IMG"||t.nodeName=="A"&&e.dom.hasClass(t,"mceItemAnchor"))e.selection.getSel().setBaseAndExtent(t,0,t,1)});e.onMouseUp.add(e.nodeChanged);
-e.onKeyUp.add(function(p,t){var s=t.keyCode;if(s>=33&&s<=36||s>=37&&s<=40||s==13||s==45||s==46||s==8||m.isMac&&(s==91||s==93)||t.ctrlKey)e.nodeChanged()});e.onReset.add(function(){e.setContent(e.startContent,{format:"raw"})});if(i.custom_shortcuts){if(i.custom_undo_redo_keyboard_shortcuts){e.addShortcut("ctrl+z",e.getLang("undo_desc"),"Undo");e.addShortcut("ctrl+y",e.getLang("redo_desc"),"Redo")}e.addShortcut("ctrl+b",e.getLang("bold_desc"),"Bold");e.addShortcut("ctrl+i",e.getLang("italic_desc"),
-"Italic");e.addShortcut("ctrl+u",e.getLang("underline_desc"),"Underline");for(c=1;c<=6;c++)e.addShortcut("ctrl+"+c,"",["FormatBlock",false,"h"+c]);e.addShortcut("ctrl+7","",["FormatBlock",false,"<p>"]);e.addShortcut("ctrl+8","",["FormatBlock",false,"<div>"]);e.addShortcut("ctrl+9","",["FormatBlock",false,"<address>"]);var h=function(p){var t=null;if(!p.altKey&&!p.ctrlKey&&!p.metaKey)return t;b(e.shortcuts,function(s){if(!(m.isMac&&s.ctrl!=p.metaKey))if(!(!m.isMac&&s.ctrl!=p.ctrlKey))if(s.alt==p.altKey)if(s.shift==
-p.shiftKey)if(p.keyCode==s.keyCode||p.charCode&&p.charCode==s.charCode){t=s;return false}});return t};e.onKeyUp.add(function(p,t){if(h(t))return q.cancel(t)});e.onKeyPress.add(function(p,t){if(h(t))return q.cancel(t)});e.onKeyDown.add(function(p,t){var s=h(t);if(s){s.func.call(s.scope);return q.cancel(t)}})}if(m.isIE){e.dom.bind(e.getDoc(),"controlselect",function(p){var t=e.resizeInfo;p=p.target;if(p.nodeName==="IMG"){t&&e.dom.unbind(t.node,t.ev,t.cb);if(e.dom.hasClass(p,"mceItemNoResize")){ev="resizestart";
+keydown:"onKeyDown",keypress:"onKeyPress",submit:"onSubmit",reset:"onReset",contextmenu:"onContextMenu",dblclick:"onDblClick",paste:"onPaste"};b(a,function(p,t){switch(t){case "contextmenu":l.isOpera?e.dom.bind(e.getBody(),"mousedown",function(s){if(s.ctrlKey){s.fakeType="contextmenu";f(s)}}):e.dom.bind(e.getBody(),t,f);break;case "paste":e.dom.bind(e.getBody(),t,function(s){f(s)});break;case "submit":case "reset":e.dom.bind(e.getElement().form||o.getParent(e.id,"form"),t,f);break;default:e.dom.bind(i.content_editable?
+e.getBody():e.getDoc(),t,f)}});e.dom.bind(i.content_editable?e.getBody():g?e.getDoc():e.getWin(),"focus",function(){e.focus(true)});l.isGecko&&e.dom.bind(e.getDoc(),"DOMNodeInserted",function(p){var t;p=p.target;if(p.nodeType===1&&p.nodeName==="IMG"&&(t=p.getAttribute("_mce_src")))p.src=e.documentBaseURI.toAbsolute(t)});if(g){c=function(){var p=this.getDoc(),t=this.settings;if(g&&!t.readonly){if(this._isHidden())try{if(!t.content_editable)p.designMode="On"}catch(s){}try{p.execCommand("styleWithCSS",
+0,false)}catch(x){if(!this._isHidden())try{p.execCommand("useCSS",0,true)}catch(y){}}if(!t.table_inline_editing)try{p.execCommand("enableInlineTableEditing",false,false)}catch(C){}if(!t.object_resizing)try{p.execCommand("enableObjectResizing",false,false)}catch(A){}}};e.onBeforeExecCommand.add(c);e.onMouseDown.add(c)}l.isWebKit&&e.onClick.add(function(p,t){t=t.target;if(t.nodeName=="IMG"||t.nodeName=="A"&&e.dom.hasClass(t,"mceItemAnchor"))e.selection.getSel().setBaseAndExtent(t,0,t,1)});e.onMouseUp.add(e.nodeChanged);
+e.onKeyUp.add(function(p,t){var s=t.keyCode;if(s>=33&&s<=36||s>=37&&s<=40||s==13||s==45||s==46||s==8||l.isMac&&(s==91||s==93)||t.ctrlKey)e.nodeChanged()});e.onReset.add(function(){e.setContent(e.startContent,{format:"raw"})});if(i.custom_shortcuts){if(i.custom_undo_redo_keyboard_shortcuts){e.addShortcut("ctrl+z",e.getLang("undo_desc"),"Undo");e.addShortcut("ctrl+y",e.getLang("redo_desc"),"Redo")}e.addShortcut("ctrl+b",e.getLang("bold_desc"),"Bold");e.addShortcut("ctrl+i",e.getLang("italic_desc"),
+"Italic");e.addShortcut("ctrl+u",e.getLang("underline_desc"),"Underline");for(c=1;c<=6;c++)e.addShortcut("ctrl+"+c,"",["FormatBlock",false,"h"+c]);e.addShortcut("ctrl+7","",["FormatBlock",false,"<p>"]);e.addShortcut("ctrl+8","",["FormatBlock",false,"<div>"]);e.addShortcut("ctrl+9","",["FormatBlock",false,"<address>"]);var h=function(p){var t=null;if(!p.altKey&&!p.ctrlKey&&!p.metaKey)return t;b(e.shortcuts,function(s){if(!(l.isMac&&s.ctrl!=p.metaKey))if(!(!l.isMac&&s.ctrl!=p.ctrlKey))if(s.alt==p.altKey)if(s.shift==
+p.shiftKey)if(p.keyCode==s.keyCode||p.charCode&&p.charCode==s.charCode){t=s;return false}});return t};e.onKeyUp.add(function(p,t){if(h(t))return q.cancel(t)});e.onKeyPress.add(function(p,t){if(h(t))return q.cancel(t)});e.onKeyDown.add(function(p,t){var s=h(t);if(s){s.func.call(s.scope);return q.cancel(t)}})}if(l.isIE){e.dom.bind(e.getDoc(),"controlselect",function(p){var t=e.resizeInfo;p=p.target;if(p.nodeName==="IMG"){t&&e.dom.unbind(t.node,t.ev,t.cb);if(e.dom.hasClass(p,"mceItemNoResize")){ev="resizestart";
 t=e.dom.bind(p,"resizestart",q.cancel,q)}else{ev="resizeend";t=e.dom.bind(p,ev,function(s){var x;s=s.target;if(x=e.dom.getStyle(s,"width")){e.dom.setAttrib(s,"width",x.replace(/[^0-9%]+/g,""));e.dom.setStyle(s,"width","")}if(x=e.dom.getStyle(s,"height")){e.dom.setAttrib(s,"height",x.replace(/[^0-9%]+/g,""));e.dom.setStyle(s,"height","")}})}t=e.resizeInfo={node:p,ev:ev,cb:t}}});e.onKeyDown.add(function(p,t){switch(t.keyCode){case 8:if(e.selection.getRng().item){p.dom.remove(e.selection.getRng().item(0));
-return q.cancel(t)}}})}m.isOpera&&e.onClick.add(function(p,t){q.prevent(t)});if(i.custom_undo_redo){var n=function(){e.undoManager.typing=0;e.undoManager.add()};e.dom.bind(e.getDoc(),"focusout",function(){!e.removed&&e.undoManager.typing&&n()});e.onKeyUp.add(function(p,t){if(t.keyCode>=33&&t.keyCode<=36||t.keyCode>=37&&t.keyCode<=40||t.keyCode==13||t.keyCode==45||t.ctrlKey)n()});e.onKeyDown.add(function(p,t){var s,x,y,D;if(d&&t.keyCode==46){s=e.selection.getRng();if(s.parentElement){y=s.parentElement();
-x=s.duplicate();x.moveToElementText(y);x.setEndPoint("EndToEnd",s);D=x.text.length;if(t.ctrlKey){s.moveEnd("word",1);s.select()}e.selection.getSel().clear();if(s.parentElement()==y){try{y.innerHTML=y.innerHTML}catch(B){}x.moveToElementText(y);x.collapse();x.move("character",D);x.select()}t.preventDefault();return}}if(t.keyCode>=33&&t.keyCode<=36||t.keyCode>=37&&t.keyCode<=40||t.keyCode==13||t.keyCode==45)e.undoManager.typing&&n();else if(!e.undoManager.typing){e.undoManager.add();e.undoManager.typing=
-1}});e.onMouseDown.add(function(){e.undoManager.typing&&n()})}},_isHidden:function(){var f;if(!g)return 0;f=this.selection.getSel();return!f||!f.rangeCount||f.rangeCount==0},_fixNesting:function(f){var e=[],c;f=f.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(i,a,h){if(a==="/"){if(!e.length)return"";if(h!==e[e.length-1].tag){for(c=e.length-1;c>=0;c--)if(e[c].tag===h){e[c].close=1;break}return""}else{e.pop();if(e.length&&e[e.length-1].close){i=i+"</"+e[e.length-1].tag+">";e.pop()}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(h))return i;
+return q.cancel(t)}}})}l.isOpera&&e.onClick.add(function(p,t){q.prevent(t)});if(i.custom_undo_redo){var m=function(){e.undoManager.typing=0;e.undoManager.add()};e.dom.bind(e.getDoc(),"focusout",function(){!e.removed&&e.undoManager.typing&&m()});e.onKeyUp.add(function(p,t){if(t.keyCode>=33&&t.keyCode<=36||t.keyCode>=37&&t.keyCode<=40||t.keyCode==13||t.keyCode==45||t.ctrlKey)m()});e.onKeyDown.add(function(p,t){var s,x,y,C;if(d&&t.keyCode==46){s=e.selection.getRng();if(s.parentElement){y=s.parentElement();
+x=s.duplicate();x.moveToElementText(y);x.setEndPoint("EndToEnd",s);C=x.text.length;if(t.ctrlKey){s.moveEnd("word",1);s.select()}e.selection.getSel().clear();if(s.parentElement()==y){try{y.innerHTML=y.innerHTML}catch(A){}x.moveToElementText(y);x.collapse();x.move("character",C);x.select()}t.preventDefault();return}}if(t.keyCode>=33&&t.keyCode<=36||t.keyCode>=37&&t.keyCode<=40||t.keyCode==13||t.keyCode==45)e.undoManager.typing&&m();else if(!e.undoManager.typing){e.undoManager.add();e.undoManager.typing=
+1}});e.onMouseDown.add(function(){e.undoManager.typing&&m()})}},_isHidden:function(){var f;if(!g)return 0;f=this.selection.getSel();return!f||!f.rangeCount||f.rangeCount==0},_fixNesting:function(f){var e=[],c;f=f.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(i,a,h){if(a==="/"){if(!e.length)return"";if(h!==e[e.length-1].tag){for(c=e.length-1;c>=0;c--)if(e[c].tag===h){e[c].close=1;break}return""}else{e.pop();if(e.length&&e[e.length-1].close){i=i+"</"+e[e.length-1].tag+">";e.pop()}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(h))return i;
 if(/\/>$/.test(i))return i;e.push({tag:h})}return i});for(c=e.length-1;c>=0;c--)f+="</"+e[c].tag+">";return f}})})(tinymce);
-(function(m){var o=m.each,q=false;m.EditorCommands=function(k){function j(e){var c;e=e.toLowerCase();if(c=u.state[e])return c(e);return-1}function b(e,c){c=c||"exec";o(e,function(i,a){o(a.toLowerCase().split(","),function(h){u[c][h]=i})})}function g(e,c,i){if(c===void 0)c=q;if(i===void 0)i=null;return k.getDoc().execCommand(e,c,i)}function d(e,c){k.formatter.toggle(e,c?{value:c}:void 0)}var l=k.dom,r=k.selection,u={state:{},exec:{},value:{}},v=k.settings,f;m.extend(this,{execCommand:function(e,c,
-i){var a;e=e.toLowerCase();if(a=u.exec[e]){a(e,c,i);return true}return q},queryCommandState:j,queryCommandValue:function(e){var c;e=e.toLowerCase();if(c=u.value[e])return c(e);return q},addCommands:b});b({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){k.undoManager.add()},"Cut,Copy,Paste":function(e){var c=k.getDoc(),i;try{g(e)}catch(a){i=true}if(i||!c.queryCommandSupported(e))m.isGecko?k.windowManager.confirm(k.getLang("clipboard_msg"),function(h){h&&
-open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}):k.windowManager.alert(k.getLang("clipboard_no_support"))},unlink:function(e){r.isCollapsed()&&r.select(r.getNode());g(e);r.collapse(q)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var c=e.substring(7);o("left,center,right,full".split(","),function(i){c!=i&&k.formatter.remove("align"+i)});d("align"+c)},"InsertUnorderedList,InsertOrderedList":function(e){var c;g(e);if(e=l.getParent(r.getNode(),"ol,ul")){c=
-e.parentNode;if(/^(H[1-6]|P|ADDRESS|PRE)$/.test(c.nodeName)){f=r.getBookmark(void 0);l.split(c,e);r.moveToBookmark(f)}}},"Bold,Italic,Underline,Strikethrough":function(e){d(e)},"ForeColor,HiliteColor,FontName":function(e,c,i){d(e,i)},FontSize:function(e,c,i){var a;if(i>=1&&i<=7){a=m.explode(v.font_size_style_values);i=(c=m.explode(v.font_size_classes))?c[i-1]||i:a[i-1]||i}d(e,i)},RemoveFormat:function(e){k.formatter.remove(e)},mceBlockQuote:function(){d("blockquote")},FormatBlock:function(e,c,i){return d(i)},
-mceCleanup:function(){var e=r.getBookmark();k.setContent(k.getContent({cleanup:true}),{cleanup:true});r.moveToBookmark(e)},mceRemoveNode:function(e,c,i){e=i||r.getNode();if(e!=k.getBody()){f=r.getBookmark(void 0);k.dom.remove(e,true);r.moveToBookmark(f)}},mceSelectNodeDepth:function(e,c,i){var a=0;l.getParent(r.getNode(),function(h){if(h.nodeType==1&&a++==i){r.select(h);return q}},k.getBody())},mceSelectNode:function(e,c,i){r.select(i)},mceInsertContent:function(e,c,i){r.setContent(i)},mceInsertRawHTML:function(e,
-c,i){r.setContent("tiny_mce_marker");k.setContent(k.getContent().replace(/tiny_mce_marker/g,i))},mceSetContent:function(e,c,i){k.setContent(i)},"Indent,Outdent":function(e){var c,i,a;c=v.indentation;i=/[a-z%]+$/i.exec(c);c=parseInt(c);!j("InsertUnorderedList")&&!j("InsertOrderedList")?o(r.getSelectedBlocks(),function(h){if(e=="outdent"){a=Math.max(0,parseInt(h.style.paddingLeft||0)-c);l.setStyle(h,"paddingLeft",a?a+i:"")}else l.setStyle(h,"paddingLeft",parseInt(h.style.paddingLeft||0)+c+i)}):g(e)},
-mceRepaint:function(){if(m.isGecko)try{f=r.getBookmark(true);r.getSel()&&r.getSel().selectAllChildren(k.getBody());r.collapse(true);r.moveToBookmark(f)}catch(e){}},mceToggleFormat:function(e,c,i){k.formatter.toggle(i)},InsertHorizontalRule:function(){r.setContent("<hr />")},mceToggleVisualAid:function(){k.hasVisual=!k.hasVisual;k.addVisual()},mceReplaceContent:function(e,c,i){r.setContent(i.replace(/\{\$selection\}/g,r.getContent({format:"text"})))},mceInsertLink:function(e,c,i){e=l.getParent(r.getNode(),
-"a");if(m.is(i,"string"))i={href:i};if(e)i.href?l.setAttribs(e,i):k.dom.remove(e,true);else{g("CreateLink",q,"javascript:mctmp(0);");o(l.select("a[href=javascript:mctmp(0);]"),function(a){l.setAttribs(a,i)})}},selectAll:function(){var e=l.getRoot(),c=l.createRng();c.setStart(e,0);c.setEnd(e,e.childNodes.length);k.selection.setRng(c)}});b({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){e="align"+e.substring(7);return k.formatter.match(e)},"Bold,Italic,Underline,Strikethrough":function(e){return k.formatter.match(e)},
-mceBlockQuote:function(){return k.formatter.match("blockquote")},Outdent:function(){var e;if(v.inline_styles){if((e=l.getParent(r.getStart(),l.isBlock))&&parseInt(e.style.paddingLeft)>0)return true;if((e=l.getParent(r.getEnd(),l.isBlock))&&parseInt(e.style.paddingLeft)>0)return true}return j("InsertUnorderedList")||j("InsertOrderedList")||!v.inline_styles&&!!l.getParent(r.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){return l.getParent(r.getNode(),e=="insertunorderedlist"?
-"UL":"OL")}},"state");b({"FontSize,FontName":function(e){var c=0,i;if(i=l.getParent(r.getNode(),"span"))c=e=="fontsize"?i.style.fontSize:i.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase();return c}},"value");v.custom_undo_redo&&b({Undo:function(){k.undoManager.undo()},Redo:function(){k.undoManager.redo()}})}})(tinymce);
-(function(m){var o=m.util.Dispatcher;m.UndoManager=function(q){var k,j=0,b=[];return k={typing:0,onAdd:new o(k),onUndo:new o(k),onRedo:new o(k),add:function(g){var d;d=q.settings;var l;g=g||{};g.content=m.trim(q.getContent({format:"raw",no_events:1}));if((l=b[j])&&l.content==g.content)if(j>0||b.length==1)return null;if(d.custom_undo_redo_levels)if(b.length>d.custom_undo_redo_levels){for(d=0;d<b.length-1;d++)b[d]=b[d+1];b.length--;j=b.length}g.bookmark=q.selection.getBookmark(2,true);if(j<b.length-
+(function(l){var o=l.each,q=false;l.EditorCommands=function(k){function j(e){var c;e=e.toLowerCase();if(c=u.state[e])return c(e);return-1}function b(e,c){c=c||"exec";o(e,function(i,a){o(a.toLowerCase().split(","),function(h){u[c][h]=i})})}function g(e,c,i){if(c===void 0)c=q;if(i===void 0)i=null;return k.getDoc().execCommand(e,c,i)}function d(e,c){k.formatter.toggle(e,c?{value:c}:void 0)}var n=k.dom,r=k.selection,u={state:{},exec:{},value:{}},v=k.settings,f;l.extend(this,{execCommand:function(e,c,
+i){var a;e=e.toLowerCase();if(a=u.exec[e]){a(e,c,i);return true}return q},queryCommandState:j,queryCommandValue:function(e){var c;e=e.toLowerCase();if(c=u.value[e])return c(e);return q},addCommands:b});b({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){k.undoManager.add()},"Cut,Copy,Paste":function(e){var c=k.getDoc(),i;try{g(e)}catch(a){i=true}if(i||!c.queryCommandSupported(e))l.isGecko?k.windowManager.confirm(k.getLang("clipboard_msg"),function(h){h&&
+open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}):k.windowManager.alert(k.getLang("clipboard_no_support"))},unlink:function(e){r.isCollapsed()&&r.select(r.getNode());g(e);r.collapse(q)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var c=e.substring(7);o("left,center,right,full".split(","),function(i){c!=i&&k.formatter.remove("align"+i)});d("align"+c)},"InsertUnorderedList,InsertOrderedList":function(e){var c;g(e);if(e=n.getParent(r.getNode(),"ol,ul")){c=
+e.parentNode;if(/^(H[1-6]|P|ADDRESS|PRE)$/.test(c.nodeName)){f=r.getBookmark(void 0);n.split(c,e);r.moveToBookmark(f)}}},"Bold,Italic,Underline,Strikethrough":function(e){d(e)},"ForeColor,HiliteColor,FontName":function(e,c,i){d(e,i)},FontSize:function(e,c,i){var a;if(i>=1&&i<=7){a=l.explode(v.font_size_style_values);i=(c=l.explode(v.font_size_classes))?c[i-1]||i:a[i-1]||i}d(e,i)},RemoveFormat:function(e){k.formatter.remove(e)},mceBlockQuote:function(){d("blockquote")},FormatBlock:function(e,c,i){return d(i)},
+mceCleanup:function(){var e=r.getBookmark();k.setContent(k.getContent({cleanup:true}),{cleanup:true});r.moveToBookmark(e)},mceRemoveNode:function(e,c,i){e=i||r.getNode();if(e!=k.getBody()){f=r.getBookmark(void 0);k.dom.remove(e,true);r.moveToBookmark(f)}},mceSelectNodeDepth:function(e,c,i){var a=0;n.getParent(r.getNode(),function(h){if(h.nodeType==1&&a++==i){r.select(h);return q}},k.getBody())},mceSelectNode:function(e,c,i){r.select(i)},mceInsertContent:function(e,c,i){r.setContent(i)},mceInsertRawHTML:function(e,
+c,i){r.setContent("tiny_mce_marker");k.setContent(k.getContent().replace(/tiny_mce_marker/g,i))},mceSetContent:function(e,c,i){k.setContent(i)},"Indent,Outdent":function(e){var c,i,a;c=v.indentation;i=/[a-z%]+$/i.exec(c);c=parseInt(c);!j("InsertUnorderedList")&&!j("InsertOrderedList")?o(r.getSelectedBlocks(),function(h){if(e=="outdent"){a=Math.max(0,parseInt(h.style.paddingLeft||0)-c);n.setStyle(h,"paddingLeft",a?a+i:"")}else n.setStyle(h,"paddingLeft",parseInt(h.style.paddingLeft||0)+c+i)}):g(e)},
+mceRepaint:function(){if(l.isGecko)try{f=r.getBookmark(true);r.getSel()&&r.getSel().selectAllChildren(k.getBody());r.collapse(true);r.moveToBookmark(f)}catch(e){}},mceToggleFormat:function(e,c,i){k.formatter.toggle(i)},InsertHorizontalRule:function(){r.setContent("<hr />")},mceToggleVisualAid:function(){k.hasVisual=!k.hasVisual;k.addVisual()},mceReplaceContent:function(e,c,i){r.setContent(i.replace(/\{\$selection\}/g,r.getContent({format:"text"})))},mceInsertLink:function(e,c,i){e=n.getParent(r.getNode(),
+"a");if(l.is(i,"string"))i={href:i};if(e)i.href?n.setAttribs(e,i):k.dom.remove(e,true);else{g("CreateLink",q,"javascript:mctmp(0);");o(n.select("a[href=javascript:mctmp(0);]"),function(a){n.setAttribs(a,i)})}},selectAll:function(){var e=n.getRoot(),c=n.createRng();c.setStart(e,0);c.setEnd(e,e.childNodes.length);k.selection.setRng(c)}});b({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){e="align"+e.substring(7);return k.formatter.match(e)},"Bold,Italic,Underline,Strikethrough":function(e){return k.formatter.match(e)},
+mceBlockQuote:function(){return k.formatter.match("blockquote")},Outdent:function(){var e;if(v.inline_styles){if((e=n.getParent(r.getStart(),n.isBlock))&&parseInt(e.style.paddingLeft)>0)return true;if((e=n.getParent(r.getEnd(),n.isBlock))&&parseInt(e.style.paddingLeft)>0)return true}return j("InsertUnorderedList")||j("InsertOrderedList")||!v.inline_styles&&!!n.getParent(r.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){return n.getParent(r.getNode(),e=="insertunorderedlist"?
+"UL":"OL")}},"state");b({"FontSize,FontName":function(e){var c=0,i;if(i=n.getParent(r.getNode(),"span"))c=e=="fontsize"?i.style.fontSize:i.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase();return c}},"value");v.custom_undo_redo&&b({Undo:function(){k.undoManager.undo()},Redo:function(){k.undoManager.redo()}})}})(tinymce);
+(function(l){var o=l.util.Dispatcher;l.UndoManager=function(q){var k,j=0,b=[];return k={typing:0,onAdd:new o(k),onUndo:new o(k),onRedo:new o(k),add:function(g){var d;d=q.settings;var n;g=g||{};g.content=l.trim(q.getContent({format:"raw",no_events:1}));if((n=b[j])&&n.content==g.content)if(j>0||b.length==1)return null;if(d.custom_undo_redo_levels)if(b.length>d.custom_undo_redo_levels){for(d=0;d<b.length-1;d++)b[d]=b[d+1];b.length--;j=b.length}g.bookmark=q.selection.getBookmark(2,true);if(j<b.length-
 1)if(j==0)b=[];else b.length=j+1;b.push(g);j=b.length-1;k.onAdd.dispatch(k,g);q.isNotDirty=0;return g},undo:function(){var g;if(k.typing){k.add();k.typing=0}if(j>0){g=b[--j];q.setContent(g.content,{format:"raw"});q.selection.moveToBookmark(g.bookmark);k.onUndo.dispatch(k,g)}return g},redo:function(){var g;if(j<b.length-1){g=b[++j];q.setContent(g.content,{format:"raw"});q.selection.moveToBookmark(g.bookmark);k.onRedo.dispatch(k,g)}return g},clear:function(){b=[];j=k.typing=0},hasUndo:function(){return j>
 0||k.typing},hasRedo:function(){return j<b.length-1}}}})(tinymce);
-(function(m){function o(v,f){var e=f.ownerDocument.createRange();e.setStart(v.endContainer,v.endOffset);e.setEndAfter(f);return e.cloneContents().textContent.length==0}function q(v){v=v.innerHTML;v=v.replace(/<(img|hr|table|input|select|textarea)[ \>]/gi,"-");v=v.replace(/<[^>]+>/g,"");return v.replace(/[ \u00a0\t\r\n]+/g,"")==""}function k(v,f,e){var c;if(q(e)){c=f.getParent(e,"ul,ol");if(!f.getParent(c.parentNode,"ul,ol")){f.split(c,e);c=f.create("p",0,'<br _mce_bogus="1" />');f.replace(c,e);v.select(c,
-1)}return u}return r}var j=m.dom.Event,b=m.isIE,g=m.isGecko,d=m.isOpera,l=m.each,r=true,u=false;m.create("tinymce.ForceBlocks",{ForceBlocks:function(v){function f(a,h){if(d)h.content=h.content.replace(e.reOpera,"</"+i+">");h.content=h.content.replace(e.rePadd,"<"+i+"$1$2$3$4$5$6>\u00a0</"+i+">");if(!b&&!d&&h.set){h.content=h.content.replace(e.reNbsp2BR1,"<"+i+"$1$2><br /></"+i+">");h.content=h.content.replace(e.reNbsp2BR2,"<"+i+"$1$2><br /></"+i+">")}else h.content=h.content.replace(e.reBR2Nbsp,"<"+
+(function(l){function o(v,f){var e=f.ownerDocument.createRange();e.setStart(v.endContainer,v.endOffset);e.setEndAfter(f);return e.cloneContents().textContent.length==0}function q(v){v=v.innerHTML;v=v.replace(/<(img|hr|table|input|select|textarea)[ \>]/gi,"-");v=v.replace(/<[^>]+>/g,"");return v.replace(/[ \u00a0\t\r\n]+/g,"")==""}function k(v,f,e){var c;if(q(e)){c=f.getParent(e,"ul,ol");if(!f.getParent(c.parentNode,"ul,ol")){f.split(c,e);c=f.create("p",0,'<br _mce_bogus="1" />');f.replace(c,e);v.select(c,
+1)}return u}return r}var j=l.dom.Event,b=l.isIE,g=l.isGecko,d=l.isOpera,n=l.each,r=true,u=false;l.create("tinymce.ForceBlocks",{ForceBlocks:function(v){function f(a,h){if(d)h.content=h.content.replace(e.reOpera,"</"+i+">");h.content=h.content.replace(e.rePadd,"<"+i+"$1$2$3$4$5$6>\u00a0</"+i+">");if(!b&&!d&&h.set){h.content=h.content.replace(e.reNbsp2BR1,"<"+i+"$1$2><br /></"+i+">");h.content=h.content.replace(e.reNbsp2BR2,"<"+i+"$1$2><br /></"+i+">")}else h.content=h.content.replace(e.reBR2Nbsp,"<"+
 i+"$1$2>\u00a0</"+i+">")}var e=this,c=v.settings,i;e.editor=v;e.dom=v.dom;i=(c.forced_root_block||"p").toLowerCase();c.element=i.toUpperCase();v.onPreInit.add(e.setup,e);e.reOpera=RegExp("(\\u00a0|&#160;|&nbsp;)</"+i+">","gi");e.rePadd=RegExp("<p( )([^>]+)><\\/p>|<p( )([^>]+)\\/>|<p( )([^>]+)>\\s+<\\/p>|<p><\\/p>|<p\\/>|<p>\\s+<\\/p>".replace(/p/g,i),"gi");e.reNbsp2BR1=RegExp("<p( )([^>]+)>[\\s\\u00a0]+<\\/p>|<p>[\\s\\u00a0]+<\\/p>".replace(/p/g,i),"gi");e.reNbsp2BR2=RegExp("<%p()([^>]+)>(&nbsp;|&#160;)<\\/%p>|<%p>(&nbsp;|&#160;)<\\/%p>".replace(/%p/g,
 i),"gi");e.reBR2Nbsp=RegExp("<p( )([^>]+)>\\s*<br \\/>\\s*<\\/p>|<p>\\s*<br \\/>\\s*<\\/p>".replace(/p/g,i),"gi");v.onBeforeSetContent.add(f);v.onPostProcess.add(f);if(c.forced_root_block){v.onInit.add(e.forceRoots,e);v.onSetContent.add(e.forceRoots,e);v.onBeforeGetContent.add(e.forceRoots,e)}},setup:function(){var v=this,f=v.editor,e=f.settings,c=f.dom,i=f.selection;if(e.forced_root_block){f.onBeforeExecCommand.add(v.forceRoots,v);f.onKeyUp.add(v.forceRoots,v);f.onPreProcess.add(v.forceRoots,v)}e.force_br_newlines&&
-b&&f.onKeyPress.add(function(a,h){var n;if(h.keyCode==13&&i.getNode().nodeName!="LI"){i.setContent('<br id="__" /> ',{format:"raw"});n=c.get("__");n.removeAttribute("id");i.select(n);i.collapse();return j.cancel(h)}});if(e.force_p_newlines){if(b){m.addUnload(function(){v._previousFormats=0});f.onKeyPress.add(function(a,h){v._previousFormats=0;if(h.keyCode==13&&!h.shiftKey&&a.selection.isCollapsed()&&e.keep_styles){var n;var p=a.selection.getStart(),t,s,x;do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(p.nodeName)){if(t){s=
-p.cloneNode(false);s.appendChild(t);t=s}else t=x=p.cloneNode(false);t.removeAttribute("id")}while(p=p.parentNode);if(t)n={wrapper:t,inner:x};v._previousFormats=n}});f.onKeyUp.add(function(a,h){if(h.keyCode==13&&!h.shiftKey){var n=a.selection.getStart(),p=v._previousFormats;if(!n.hasChildNodes())if(n=c.getParent(n,c.isBlock)){n.innerHTML="";if(v._previousFormats){n.appendChild(p.wrapper);p.inner.innerHTML="\ufeff"}else n.innerHTML="\ufeff";i.select(n,1);a.getDoc().execCommand("Delete",false,null)}}})}else f.onKeyPress.add(function(a,
-h){h.keyCode==13&&!h.shiftKey&&!v.insertPara(h)&&j.cancel(h)});g&&f.onKeyDown.add(function(a,h){if((h.keyCode==8||h.keyCode==46)&&!h.shiftKey)v.backspaceDelete(h,h.keyCode==8)})}m.isWebKit&&f.onKeyPress.add(function(a,h){if(h.keyCode==13&&(h.shiftKey||e.force_br_newlines&&!c.getParent(i.getNode(),"h1,h2,h3,h4,h5,h6,ol,ul"))){var n=i.getRng(),p,t=c.create("div",null," "),s=c.getViewPort(a.getWin()).h;n.insertNode(p=c.create("br"));n.setStartAfter(p);n.setEndAfter(p);i.setRng(n);if(i.getSel().focusNode==
-p.previousSibling){i.select(c.insertAfter(c.doc.createTextNode("\u00a0"),p));i.collapse(r)}c.insertAfter(t,p);n=c.getPos(t).y;c.remove(t);n>s&&a.getWin().scrollTo(0,n);j.cancel(h)}});f.onPreProcess.add(function(a,h){l(c.select("p,h1,h2,h3,h4,h5,h6,div",h.node),function(n){q(n)&&l(c.select("span,em,strong,b,i",h.node),function(p){if(!p.hasChildNodes()){p.appendChild(a.getDoc().createTextNode("\u00a0"));return u}})})});if(b)if(e.element!="P"){f.onKeyPress.add(function(){v.lastElm=i.getNode().nodeName});
-f.onKeyUp.add(function(a,h){var n;n=i.getNode();if(a.getBody().childNodes.length===1&&n.nodeName=="P"){n=c.rename(n,e.element);i.select(n);i.collapse();a.nodeChanged()}else if(h.keyCode==13&&!h.shiftKey&&v.lastElm!="P")if(n=c.getParent(n,"p")){c.rename(n,e.element);a.nodeChanged()}})}},find:function(v,f,e){for(var c=this.editor.getDoc().createTreeWalker(v,4,null,u),i=-1;v=c.nextNode();){i++;if(f==0&&v==e)return i;if(f==1&&i==e)return v}return-1},forceRoots:function(v){v=this.editor;var f=v.getBody(),
-e=v.getDoc(),c=v.selection,i=c.getSel(),a=c.getRng(),h=-2,n,p,t,s,x,y=f.childNodes,D,B,M;for(D=y.length-1;D>=0;D--){x=y[D];if(x.nodeType===1&&x.getAttribute("_mce_type"))s=null;else if(x.nodeType===3||!this.dom.isBlock(x)&&x.nodeType!==8&&!/^(script|mce:script|style|mce:style)$/i.test(x.nodeName))if(s)s.hasChildNodes()?s.insertBefore(x,s.firstChild):s.appendChild(x);else{if(x.nodeType!=3||/[^\s]/g.test(x.nodeValue)){if(h==-2&&a)if(b){if(a.item){s=e.body.createTextRange();s.moveToElementText(a.item(0));
-a=s}s=e.body.createTextRange();s.moveToElementText(f);s.collapse(1);h=s.move("character",-16777215)*-1;s=a.duplicate();s.collapse(1);n=s.move("character",-16777215)*-1;s=a.duplicate();s.collapse(0);s=s.move("character",-16777215)*-1-n;h=n-h;n=s}else if(a.startContainer.nodeType==1&&(B=a.startContainer.childNodes[a.startOffset])&&B.nodeType==1){M=B.getAttribute("id");B.setAttribute("id","__mce")}else if(v.dom.getParent(a.startContainer,function(C){return C===f})){p=a.startOffset;t=a.endOffset;h=this.find(f,
-0,a.startContainer);n=this.find(f,0,a.endContainer)}s=v.dom.create(v.settings.forced_root_block);x.parentNode.replaceChild(s,x);s.appendChild(x)}}else s=null}if(h!=-2)if(b)try{a=i.createRange();a.moveToElementText(f);a.collapse(1);a.moveStart("character",h);a.moveEnd("character",n);a.select()}catch(X){}else{s=f.getElementsByTagName(v.settings.element)[0];a=e.createRange();h!=-1?a.setStart(this.find(f,1,h),p):a.setStart(s,0);n!=-1?a.setEnd(this.find(f,1,n),t):a.setEnd(s,0);if(i){i.removeAllRanges();
-i.addRange(a)}}else if(!b&&(B=v.dom.get("__mce"))){M?B.setAttribute("id",M):B.removeAttribute("id");a=e.createRange();a.setStartBefore(B);a.setEndBefore(B);c.setRng(a)}},getParentBlock:function(v){var f=this.dom;return f.getParent(v,f.isBlock)},insertPara:function(){function v(V,aa){var ea=[],Z,z;V.innerHTML="";if(i.keep_styles){z=aa;do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(z.nodeName)){Z=z.cloneNode(u);e.setAttrib(Z,"id","");ea.push(Z)}while(z=z.parentNode)}if(ea.length>0){z=ea.length-1;
-for(Z=V;z>=0;z--)Z=Z.appendChild(ea[z]);ea[0].innerHTML=d?"&nbsp;":"<br />";return ea[0]}else V.innerHTML=d?"&nbsp;":"<br />"}var f=this.editor,e=f.dom,c=f.getDoc(),i=f.settings,a=f.selection.getSel(),h=a.getRangeAt(0),n=c.body,p,t,s,x,y,D,B,M,X,C,E,A,K=e.getViewPort(f.getWin()),H;p=c.createRange();p.setStart(a.anchorNode,a.anchorOffset);p.collapse(r);t=c.createRange();t.setStart(a.focusNode,a.focusOffset);t.collapse(r);x=(s=p.compareBoundaryPoints(p.START_TO_END,t)<0)?a.anchorNode:a.focusNode;y=
-s?a.anchorOffset:a.focusOffset;D=s?a.focusNode:a.anchorNode;s=s?a.focusOffset:a.anchorOffset;if(x===D&&/^(TD|TH)$/.test(x.nodeName)){x.firstChild.nodeName=="BR"&&e.remove(x.firstChild);if(x.childNodes.length==0)f.dom.add(x,i.element,null,"<br />");else{A=x.innerHTML;x.innerHTML="";f.dom.add(x,i.element,null,A)}M=f.dom.add(x,i.element,null,"<br />");h=c.createRange();h.selectNodeContents(M);h.collapse(1);f.selection.setRng(h);return u}if(x==n&&D==n&&n.firstChild&&f.dom.isBlock(n.firstChild)){x=D=x.firstChild;
-y=s=0;p=c.createRange();p.setStart(x,0);t=c.createRange();t.setStart(D,0)}x=x.nodeName=="HTML"?c.body:x;x=x.nodeName=="BODY"?x.firstChild:x;D=D.nodeName=="HTML"?c.body:D;D=D.nodeName=="BODY"?D.firstChild:D;B=this.getParentBlock(x);M=this.getParentBlock(D);X=B?B.nodeName:i.element;if(A=this.dom.getParent(B,"li,pre")){if(A.nodeName=="LI")return k(f.selection,this.dom,A);return r}if(B&&(B.nodeName=="CAPTION"||/absolute|relative|fixed/gi.test(e.getStyle(B,"position",1)))){X=i.element;B=null}if(M&&(M.nodeName==
-"CAPTION"||/absolute|relative|fixed/gi.test(e.getStyle(B,"position",1)))){X=i.element;M=null}if(/(TD|TABLE|TH|CAPTION)/.test(X)||B&&X=="DIV"&&/left|right/gi.test(e.getStyle(B,"float",1))){X=i.element;B=M=null}C=B&&B.nodeName==X?B.cloneNode(0):f.dom.create(X);M=M&&M.nodeName==X?M.cloneNode(0):f.dom.create(X);M.removeAttribute("id");if(/^(H[1-6])$/.test(X)&&o(h,B))M=f.dom.create(i.element);A=B=x;do{if(A==n||A.nodeType==9||this.dom.isBlock(A)||/(TD|TABLE|TH|CAPTION)/.test(A.nodeName))break;B=A}while(A=
-A.previousSibling?A.previousSibling:A.parentNode);A=E=D;do{if(A==n||A.nodeType==9||this.dom.isBlock(A)||/(TD|TABLE|TH|CAPTION)/.test(A.nodeName))break;E=A}while(A=A.nextSibling?A.nextSibling:A.parentNode);B.nodeName==X?p.setStart(B,0):p.setStartBefore(B);p.setEnd(x,y);C.appendChild(p.cloneContents()||c.createTextNode(""));try{t.setEndAfter(E)}catch(W){}t.setStart(D,s);M.appendChild(t.cloneContents()||c.createTextNode(""));h=c.createRange();if(!B.previousSibling&&B.parentNode.nodeName==X)h.setStartBefore(B.parentNode);
-else p.startContainer.nodeName==X&&p.startOffset==0?h.setStartBefore(p.startContainer):h.setStart(p.startContainer,p.startOffset);!E.nextSibling&&E.parentNode.nodeName==X?h.setEndAfter(E.parentNode):h.setEnd(t.endContainer,t.endOffset);h.deleteContents();d&&f.getWin().scrollTo(0,K.y);if(C.firstChild&&C.firstChild.nodeName==X)C.innerHTML=C.firstChild.innerHTML;if(M.firstChild&&M.firstChild.nodeName==X)M.innerHTML=M.firstChild.innerHTML;if(q(C))C.innerHTML="<br />";if(q(M))H=v(M,D);if(d&&parseFloat(opera.version())<
-9.5){h.insertNode(C);h.insertNode(M)}else{h.insertNode(M);h.insertNode(C)}M.normalize();C.normalize();h=c.createRange();h.selectNodeContents(g?c.createTreeWalker(H||M,NodeFilter.SHOW_TEXT,null,u).nextNode()||H||M:H||M);h.collapse(1);a.removeAllRanges();a.addRange(h);c=f.dom.getPos(M).y;a=M.clientHeight;if(c<K.y||c+a>K.y+K.h)f.getWin().scrollTo(0,c<K.y?c:c-K.h+25);return u},backspaceDelete:function(v,f){var e=this.editor,c=e.getBody(),i,a=e.selection,h=a.getRng(),n=h.startContainer,p;if(!f&&h.collapsed&&
-n.nodeType==1&&h.startOffset==n.childNodes.length){p=new m.dom.TreeWalker(n.lastChild,n);for(i=n.lastChild;i;i=p.prev())if(i.nodeType==3){h.setStart(i,i.nodeValue.length);h.collapse(true);a.setRng(h);return}}if(n&&e.dom.isBlock(n)&&!/^(TD|TH)$/.test(n.nodeName)&&f)if(n.childNodes.length==0||n.childNodes.length==1&&n.firstChild.nodeName=="BR"){for(i=n;(i=i.previousSibling)&&!e.dom.isBlock(i););if(i){if(n!=c.firstChild){for(c=e.dom.doc.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,u);h=c.nextNode();)i=
-h;h=e.getDoc().createRange();h.setStart(i,i.nodeValue?i.nodeValue.length:0);h.setEnd(i,i.nodeValue?i.nodeValue.length:0);a.setRng(h);e.dom.remove(n)}return j.cancel(v)}}}})})(tinymce);
-(function(m){var o=m.dom.Event,q=m.each,k=m.extend;m.create("tinymce.ControlManager",{ControlManager:function(j,b){var g=this;b=b||{};g.editor=j;g.controls={};g.onAdd=new m.util.Dispatcher(g);g.onPostRender=new m.util.Dispatcher(g);g.prefix=b.prefix||j.id+"_";g._cls={};g.onPostRender.add(function(){q(g.controls,function(d){d.postRender()})})},get:function(j){return this.controls[this.prefix+j]||this.controls[j]},setActive:function(j,b){var g=null;if(g=this.get(j))g.setActive(b);return g},setDisabled:function(j,
-b){var g=null;if(g=this.get(j))g.setDisabled(b);return g},add:function(j){if(j){this.controls[j.id]=j;this.onAdd.dispatch(j,this)}return j},createControl:function(j){var b,g=this,d=g.editor;q(d.plugins,function(l){if(l.createControl)if(b=l.createControl(j,g))return false});switch(j){case "|":case "separator":return g.createSeparator()}if(!b&&d.buttons&&(b=d.buttons[j]))return g.createButton(j,b);return g.add(b)},createDropMenu:function(j,b,g){var d=this.editor,l,r,u;b=k({"class":"mceDropDown",constrain:d.settings.constrain_menus},
-b);b["class"]=b["class"]+" "+d.getParam("skin")+"Skin";if(u=d.getParam("skin_variant"))b["class"]+=" "+d.getParam("skin")+"Skin"+u.substring(0,1).toUpperCase()+u.substring(1);j=this.prefix+j;l=this.controls[j]=new (g||this._cls.dropmenu||m.ui.DropMenu)(j,b);l.onAddItem.add(function(v,f){var e=f.settings;e.title=d.getLang(e.title,e.title);if(!e.onclick)e.onclick=function(){if(e.cmd)d.execCommand(e.cmd,e.ui||false,e.value)}});d.onRemove.add(function(){l.destroy()});if(m.isIE){l.onShowMenu.add(function(){d.focus();
-r=d.selection.getBookmark(1)});l.onHideMenu.add(function(){if(r){d.selection.moveToBookmark(r);r=0}})}return this.add(l)},createListBox:function(j,b,g){var d=this.editor;if(this.get(j))return null;b.title=d.translate(b.title);b.scope=b.scope||d;if(!b.onselect)b.onselect=function(l){d.execCommand(b.cmd,b.ui||false,l||b.value)};b=k({title:b.title,"class":"mce_"+j,scope:b.scope,control_manager:this},b);j=this.prefix+j;if(d.settings.use_native_selects)g=new m.ui.NativeListBox(j,b);else{g=g||this._cls.listbox||
-m.ui.ListBox;g=new g(j,b)}this.controls[j]=g;m.isWebKit&&g.onPostRender.add(function(l,r){o.add(r,"mousedown",function(){d.bookmark=d.selection.getBookmark(1)});o.add(r,"focus",function(){d.selection.moveToBookmark(d.bookmark);d.bookmark=null})});g.hideMenu&&d.onMouseDown.add(g.hideMenu,g);return this.add(g)},createButton:function(j,b,g){var d=this.editor;if(this.get(j))return null;b.title=d.translate(b.title);b.label=d.translate(b.label);b.scope=b.scope||d;if(!b.onclick&&!b.menu_button)b.onclick=
-function(){d.execCommand(b.cmd,b.ui||false,b.value)};b=k({title:b.title,"class":"mce_"+j,unavailable_prefix:d.getLang("unavailable",""),scope:b.scope,control_manager:this},b);j=this.prefix+j;if(b.menu_button){g=g||this._cls.menubutton||m.ui.MenuButton;j=new g(j,b);d.onMouseDown.add(j.hideMenu,j)}else{g=this._cls.button||m.ui.Button;j=new g(j,b)}return this.add(j)},createMenuButton:function(j,b,g){b=b||{};b.menu_button=1;return this.createButton(j,b,g)},createSplitButton:function(j,b,g){var d=this.editor;
-if(this.get(j))return null;b.title=d.translate(b.title);b.scope=b.scope||d;if(!b.onclick)b.onclick=function(l){d.execCommand(b.cmd,b.ui||false,l||b.value)};if(!b.onselect)b.onselect=function(l){d.execCommand(b.cmd,b.ui||false,l||b.value)};b=k({title:b.title,"class":"mce_"+j,scope:b.scope,control_manager:this},b);j=this.prefix+j;j=this.add(new (g||this._cls.splitbutton||m.ui.SplitButton)(j,b));d.onMouseDown.add(j.hideMenu,j);return j},createColorSplitButton:function(j,b,g){var d=this.editor,l,r;if(this.get(j))return null;
-b.title=d.translate(b.title);b.scope=b.scope||d;if(!b.onclick)b.onclick=function(u){if(m.isIE)r=d.selection.getBookmark(1);d.execCommand(b.cmd,b.ui||false,u||b.value)};if(!b.onselect)b.onselect=function(u){d.execCommand(b.cmd,b.ui||false,u||b.value)};b=k({title:b.title,"class":"mce_"+j,menu_class:d.getParam("skin")+"Skin",scope:b.scope,more_colors_title:d.getLang("more_colors")},b);j=this.prefix+j;l=new (g||this._cls.colorsplitbutton||m.ui.ColorSplitButton)(j,b);d.onMouseDown.add(l.hideMenu,l);d.onRemove.add(function(){l.destroy()});
-if(m.isIE){l.onShowMenu.add(function(){d.focus();r=d.selection.getBookmark(1)});l.onHideMenu.add(function(){if(r){d.selection.moveToBookmark(r);r=0}})}return this.add(l)},createToolbar:function(j,b,g){j=this.prefix+j;b=new (g||this._cls.toolbar||m.ui.Toolbar)(j,b);if(this.get(j))return null;return this.add(b)},createSeparator:function(j){return new (j||this._cls.separator||m.ui.Separator)},setControlType:function(j,b){return this._cls[j.toLowerCase()]=b},destroy:function(){q(this.controls,function(j){j.destroy()});
+b&&f.onKeyPress.add(function(a,h){var m;if(h.keyCode==13&&i.getNode().nodeName!="LI"){i.setContent('<br id="__" /> ',{format:"raw"});m=c.get("__");m.removeAttribute("id");i.select(m);i.collapse();return j.cancel(h)}});if(e.force_p_newlines){if(b){l.addUnload(function(){v._previousFormats=0});f.onKeyPress.add(function(a,h){v._previousFormats=0;if(h.keyCode==13&&!h.shiftKey&&a.selection.isCollapsed()&&e.keep_styles){var m;var p=a.selection.getStart(),t,s,x;do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(p.nodeName)){if(t){s=
+p.cloneNode(false);s.appendChild(t);t=s}else t=x=p.cloneNode(false);t.removeAttribute("id")}while(p=p.parentNode);if(t)m={wrapper:t,inner:x};v._previousFormats=m}});f.onKeyUp.add(function(a,h){if(h.keyCode==13&&!h.shiftKey){var m=a.selection.getStart(),p=v._previousFormats;if(!m.hasChildNodes())if(m=c.getParent(m,c.isBlock)){m.innerHTML="";if(v._previousFormats){m.appendChild(p.wrapper);p.inner.innerHTML="\ufeff"}else m.innerHTML="\ufeff";i.select(m,1);a.getDoc().execCommand("Delete",false,null)}}})}else f.onKeyPress.add(function(a,
+h){h.keyCode==13&&!h.shiftKey&&!v.insertPara(h)&&j.cancel(h)});g&&f.onKeyDown.add(function(a,h){if((h.keyCode==8||h.keyCode==46)&&!h.shiftKey)v.backspaceDelete(h,h.keyCode==8)})}l.isWebKit&&f.onKeyPress.add(function(a,h){if(h.keyCode==13&&(h.shiftKey||e.force_br_newlines&&!c.getParent(i.getNode(),"h1,h2,h3,h4,h5,h6,ol,ul"))){var m=i.getRng(),p,t=c.create("div",null," "),s=c.getViewPort(a.getWin()).h;m.insertNode(p=c.create("br"));m.setStartAfter(p);m.setEndAfter(p);i.setRng(m);if(i.getSel().focusNode==
+p.previousSibling){i.select(c.insertAfter(c.doc.createTextNode("\u00a0"),p));i.collapse(r)}c.insertAfter(t,p);m=c.getPos(t).y;c.remove(t);m>s&&a.getWin().scrollTo(0,m);j.cancel(h)}});f.onPreProcess.add(function(a,h){n(c.select("p,h1,h2,h3,h4,h5,h6,div",h.node),function(m){q(m)&&n(c.select("span,em,strong,b,i",h.node),function(p){if(!p.hasChildNodes()){p.appendChild(a.getDoc().createTextNode("\u00a0"));return u}})})});if(b)if(e.element!="P"){f.onKeyPress.add(function(){v.lastElm=i.getNode().nodeName});
+f.onKeyUp.add(function(a,h){var m;m=i.getNode();if(a.getBody().childNodes.length===1&&m.nodeName=="P"){m=c.rename(m,e.element);i.select(m);i.collapse();a.nodeChanged()}else if(h.keyCode==13&&!h.shiftKey&&v.lastElm!="P")if(m=c.getParent(m,"p")){c.rename(m,e.element);a.nodeChanged()}})}},find:function(v,f,e){for(var c=this.editor.getDoc().createTreeWalker(v,4,null,u),i=-1;v=c.nextNode();){i++;if(f==0&&v==e)return i;if(f==1&&i==e)return v}return-1},forceRoots:function(v){v=this.editor;var f=v.getBody(),
+e=v.getDoc(),c=v.selection,i=c.getSel(),a=c.getRng(),h=-2,m,p,t,s,x,y=f.childNodes,C,A,M;for(C=y.length-1;C>=0;C--){x=y[C];if(x.nodeType===1&&x.getAttribute("_mce_type"))s=null;else if(x.nodeType===3||!this.dom.isBlock(x)&&x.nodeType!==8&&!/^(script|mce:script|style|mce:style)$/i.test(x.nodeName))if(s)s.hasChildNodes()?s.insertBefore(x,s.firstChild):s.appendChild(x);else{if(x.nodeType!=3||/[^\s]/g.test(x.nodeValue)){if(h==-2&&a)if(b){if(a.item){s=e.body.createTextRange();s.moveToElementText(a.item(0));
+a=s}s=e.body.createTextRange();s.moveToElementText(f);s.collapse(1);h=s.move("character",-16777215)*-1;s=a.duplicate();s.collapse(1);m=s.move("character",-16777215)*-1;s=a.duplicate();s.collapse(0);s=s.move("character",-16777215)*-1-m;h=m-h;m=s}else if(a.startContainer.nodeType==1&&(A=a.startContainer.childNodes[a.startOffset])&&A.nodeType==1){M=A.getAttribute("id");A.setAttribute("id","__mce")}else if(v.dom.getParent(a.startContainer,function(E){return E===f})){p=a.startOffset;t=a.endOffset;h=this.find(f,
+0,a.startContainer);m=this.find(f,0,a.endContainer)}s=v.dom.create(v.settings.forced_root_block);x.parentNode.replaceChild(s,x);s.appendChild(x)}}else s=null}if(h!=-2)if(b)try{a=i.createRange();a.moveToElementText(f);a.collapse(1);a.moveStart("character",h);a.moveEnd("character",m);a.select()}catch(X){}else{s=f.getElementsByTagName(v.settings.element)[0];a=e.createRange();h!=-1?a.setStart(this.find(f,1,h),p):a.setStart(s,0);m!=-1?a.setEnd(this.find(f,1,m),t):a.setEnd(s,0);if(i){i.removeAllRanges();
+i.addRange(a)}}else if(!b&&(A=v.dom.get("__mce"))){M?A.setAttribute("id",M):A.removeAttribute("id");a=e.createRange();a.setStartBefore(A);a.setEndBefore(A);c.setRng(a)}},getParentBlock:function(v){var f=this.dom;return f.getParent(v,f.isBlock)},insertPara:function(){function v(V,aa){var ea=[],Z,z;V.innerHTML="";if(i.keep_styles){z=aa;do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(z.nodeName)){Z=z.cloneNode(u);e.setAttrib(Z,"id","");ea.push(Z)}while(z=z.parentNode)}if(ea.length>0){z=ea.length-1;
+for(Z=V;z>=0;z--)Z=Z.appendChild(ea[z]);ea[0].innerHTML=d?"&nbsp;":"<br />";return ea[0]}else V.innerHTML=d?"&nbsp;":"<br />"}var f=this.editor,e=f.dom,c=f.getDoc(),i=f.settings,a=f.selection.getSel(),h=a.getRangeAt(0),m=c.body,p,t,s,x,y,C,A,M,X,E,D,B,K=e.getViewPort(f.getWin()),H;p=c.createRange();p.setStart(a.anchorNode,a.anchorOffset);p.collapse(r);t=c.createRange();t.setStart(a.focusNode,a.focusOffset);t.collapse(r);x=(s=p.compareBoundaryPoints(p.START_TO_END,t)<0)?a.anchorNode:a.focusNode;y=
+s?a.anchorOffset:a.focusOffset;C=s?a.focusNode:a.anchorNode;s=s?a.focusOffset:a.anchorOffset;if(x===C&&/^(TD|TH)$/.test(x.nodeName)){x.firstChild.nodeName=="BR"&&e.remove(x.firstChild);if(x.childNodes.length==0)f.dom.add(x,i.element,null,"<br />");else{B=x.innerHTML;x.innerHTML="";f.dom.add(x,i.element,null,B)}M=f.dom.add(x,i.element,null,"<br />");h=c.createRange();h.selectNodeContents(M);h.collapse(1);f.selection.setRng(h);return u}if(x==m&&C==m&&m.firstChild&&f.dom.isBlock(m.firstChild)){x=C=x.firstChild;
+y=s=0;p=c.createRange();p.setStart(x,0);t=c.createRange();t.setStart(C,0)}x=x.nodeName=="HTML"?c.body:x;x=x.nodeName=="BODY"?x.firstChild:x;C=C.nodeName=="HTML"?c.body:C;C=C.nodeName=="BODY"?C.firstChild:C;A=this.getParentBlock(x);M=this.getParentBlock(C);X=A?A.nodeName:i.element;if(B=this.dom.getParent(A,"li,pre")){if(B.nodeName=="LI")return k(f.selection,this.dom,B);return r}if(A&&(A.nodeName=="CAPTION"||/absolute|relative|fixed/gi.test(e.getStyle(A,"position",1)))){X=i.element;A=null}if(M&&(M.nodeName==
+"CAPTION"||/absolute|relative|fixed/gi.test(e.getStyle(A,"position",1)))){X=i.element;M=null}if(/(TD|TABLE|TH|CAPTION)/.test(X)||A&&X=="DIV"&&/left|right/gi.test(e.getStyle(A,"float",1))){X=i.element;A=M=null}E=A&&A.nodeName==X?A.cloneNode(0):f.dom.create(X);M=M&&M.nodeName==X?M.cloneNode(0):f.dom.create(X);M.removeAttribute("id");if(/^(H[1-6])$/.test(X)&&o(h,A))M=f.dom.create(i.element);B=A=x;do{if(B==m||B.nodeType==9||this.dom.isBlock(B)||/(TD|TABLE|TH|CAPTION)/.test(B.nodeName))break;A=B}while(B=
+B.previousSibling?B.previousSibling:B.parentNode);B=D=C;do{if(B==m||B.nodeType==9||this.dom.isBlock(B)||/(TD|TABLE|TH|CAPTION)/.test(B.nodeName))break;D=B}while(B=B.nextSibling?B.nextSibling:B.parentNode);A.nodeName==X?p.setStart(A,0):p.setStartBefore(A);p.setEnd(x,y);E.appendChild(p.cloneContents()||c.createTextNode(""));try{t.setEndAfter(D)}catch(W){}t.setStart(C,s);M.appendChild(t.cloneContents()||c.createTextNode(""));h=c.createRange();if(!A.previousSibling&&A.parentNode.nodeName==X)h.setStartBefore(A.parentNode);
+else p.startContainer.nodeName==X&&p.startOffset==0?h.setStartBefore(p.startContainer):h.setStart(p.startContainer,p.startOffset);!D.nextSibling&&D.parentNode.nodeName==X?h.setEndAfter(D.parentNode):h.setEnd(t.endContainer,t.endOffset);h.deleteContents();d&&f.getWin().scrollTo(0,K.y);if(E.firstChild&&E.firstChild.nodeName==X)E.innerHTML=E.firstChild.innerHTML;if(M.firstChild&&M.firstChild.nodeName==X)M.innerHTML=M.firstChild.innerHTML;if(q(E))E.innerHTML="<br />";if(q(M))H=v(M,C);if(d&&parseFloat(opera.version())<
+9.5){h.insertNode(E);h.insertNode(M)}else{h.insertNode(M);h.insertNode(E)}M.normalize();E.normalize();h=c.createRange();h.selectNodeContents(g?c.createTreeWalker(H||M,NodeFilter.SHOW_TEXT,null,u).nextNode()||H||M:H||M);h.collapse(1);a.removeAllRanges();a.addRange(h);c=f.dom.getPos(M).y;a=M.clientHeight;if(c<K.y||c+a>K.y+K.h)f.getWin().scrollTo(0,c<K.y?c:c-K.h+25);return u},backspaceDelete:function(v,f){var e=this.editor,c=e.getBody(),i,a=e.selection,h=a.getRng(),m=h.startContainer,p;if(!f&&h.collapsed&&
+m.nodeType==1&&h.startOffset==m.childNodes.length){p=new l.dom.TreeWalker(m.lastChild,m);for(i=m.lastChild;i;i=p.prev())if(i.nodeType==3){h.setStart(i,i.nodeValue.length);h.collapse(true);a.setRng(h);return}}if(m&&e.dom.isBlock(m)&&!/^(TD|TH)$/.test(m.nodeName)&&f)if(m.childNodes.length==0||m.childNodes.length==1&&m.firstChild.nodeName=="BR"){for(i=m;(i=i.previousSibling)&&!e.dom.isBlock(i););if(i){if(m!=c.firstChild){for(c=e.dom.doc.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,u);h=c.nextNode();)i=
+h;h=e.getDoc().createRange();h.setStart(i,i.nodeValue?i.nodeValue.length:0);h.setEnd(i,i.nodeValue?i.nodeValue.length:0);a.setRng(h);e.dom.remove(m)}return j.cancel(v)}}}})})(tinymce);
+(function(l){var o=l.dom.Event,q=l.each,k=l.extend;l.create("tinymce.ControlManager",{ControlManager:function(j,b){var g=this;b=b||{};g.editor=j;g.controls={};g.onAdd=new l.util.Dispatcher(g);g.onPostRender=new l.util.Dispatcher(g);g.prefix=b.prefix||j.id+"_";g._cls={};g.onPostRender.add(function(){q(g.controls,function(d){d.postRender()})})},get:function(j){return this.controls[this.prefix+j]||this.controls[j]},setActive:function(j,b){var g=null;if(g=this.get(j))g.setActive(b);return g},setDisabled:function(j,
+b){var g=null;if(g=this.get(j))g.setDisabled(b);return g},add:function(j){if(j){this.controls[j.id]=j;this.onAdd.dispatch(j,this)}return j},createControl:function(j){var b,g=this,d=g.editor;q(d.plugins,function(n){if(n.createControl)if(b=n.createControl(j,g))return false});switch(j){case "|":case "separator":return g.createSeparator()}if(!b&&d.buttons&&(b=d.buttons[j]))return g.createButton(j,b);return g.add(b)},createDropMenu:function(j,b,g){var d=this.editor,n,r,u;b=k({"class":"mceDropDown",constrain:d.settings.constrain_menus},
+b);b["class"]=b["class"]+" "+d.getParam("skin")+"Skin";if(u=d.getParam("skin_variant"))b["class"]+=" "+d.getParam("skin")+"Skin"+u.substring(0,1).toUpperCase()+u.substring(1);j=this.prefix+j;n=this.controls[j]=new (g||this._cls.dropmenu||l.ui.DropMenu)(j,b);n.onAddItem.add(function(v,f){var e=f.settings;e.title=d.getLang(e.title,e.title);if(!e.onclick)e.onclick=function(){if(e.cmd)d.execCommand(e.cmd,e.ui||false,e.value)}});d.onRemove.add(function(){n.destroy()});if(l.isIE){n.onShowMenu.add(function(){d.focus();
+r=d.selection.getBookmark(1)});n.onHideMenu.add(function(){if(r){d.selection.moveToBookmark(r);r=0}})}return this.add(n)},createListBox:function(j,b,g){var d=this.editor;if(this.get(j))return null;b.title=d.translate(b.title);b.scope=b.scope||d;if(!b.onselect)b.onselect=function(n){d.execCommand(b.cmd,b.ui||false,n||b.value)};b=k({title:b.title,"class":"mce_"+j,scope:b.scope,control_manager:this},b);j=this.prefix+j;if(d.settings.use_native_selects)g=new l.ui.NativeListBox(j,b);else{g=g||this._cls.listbox||
+l.ui.ListBox;g=new g(j,b)}this.controls[j]=g;l.isWebKit&&g.onPostRender.add(function(n,r){o.add(r,"mousedown",function(){d.bookmark=d.selection.getBookmark(1)});o.add(r,"focus",function(){d.selection.moveToBookmark(d.bookmark);d.bookmark=null})});g.hideMenu&&d.onMouseDown.add(g.hideMenu,g);return this.add(g)},createButton:function(j,b,g){var d=this.editor;if(this.get(j))return null;b.title=d.translate(b.title);b.label=d.translate(b.label);b.scope=b.scope||d;if(!b.onclick&&!b.menu_button)b.onclick=
+function(){d.execCommand(b.cmd,b.ui||false,b.value)};b=k({title:b.title,"class":"mce_"+j,unavailable_prefix:d.getLang("unavailable",""),scope:b.scope,control_manager:this},b);j=this.prefix+j;if(b.menu_button){g=g||this._cls.menubutton||l.ui.MenuButton;j=new g(j,b);d.onMouseDown.add(j.hideMenu,j)}else{g=this._cls.button||l.ui.Button;j=new g(j,b)}return this.add(j)},createMenuButton:function(j,b,g){b=b||{};b.menu_button=1;return this.createButton(j,b,g)},createSplitButton:function(j,b,g){var d=this.editor;
+if(this.get(j))return null;b.title=d.translate(b.title);b.scope=b.scope||d;if(!b.onclick)b.onclick=function(n){d.execCommand(b.cmd,b.ui||false,n||b.value)};if(!b.onselect)b.onselect=function(n){d.execCommand(b.cmd,b.ui||false,n||b.value)};b=k({title:b.title,"class":"mce_"+j,scope:b.scope,control_manager:this},b);j=this.prefix+j;j=this.add(new (g||this._cls.splitbutton||l.ui.SplitButton)(j,b));d.onMouseDown.add(j.hideMenu,j);return j},createColorSplitButton:function(j,b,g){var d=this.editor,n,r;if(this.get(j))return null;
+b.title=d.translate(b.title);b.scope=b.scope||d;if(!b.onclick)b.onclick=function(u){if(l.isIE)r=d.selection.getBookmark(1);d.execCommand(b.cmd,b.ui||false,u||b.value)};if(!b.onselect)b.onselect=function(u){d.execCommand(b.cmd,b.ui||false,u||b.value)};b=k({title:b.title,"class":"mce_"+j,menu_class:d.getParam("skin")+"Skin",scope:b.scope,more_colors_title:d.getLang("more_colors")},b);j=this.prefix+j;n=new (g||this._cls.colorsplitbutton||l.ui.ColorSplitButton)(j,b);d.onMouseDown.add(n.hideMenu,n);d.onRemove.add(function(){n.destroy()});
+if(l.isIE){n.onShowMenu.add(function(){d.focus();r=d.selection.getBookmark(1)});n.onHideMenu.add(function(){if(r){d.selection.moveToBookmark(r);r=0}})}return this.add(n)},createToolbar:function(j,b,g){j=this.prefix+j;b=new (g||this._cls.toolbar||l.ui.Toolbar)(j,b);if(this.get(j))return null;return this.add(b)},createSeparator:function(j){return new (j||this._cls.separator||l.ui.Separator)},setControlType:function(j,b){return this._cls[j.toLowerCase()]=b},destroy:function(){q(this.controls,function(j){j.destroy()});
 this.controls=null}})})(tinymce);
-(function(m){var o=m.util.Dispatcher,q=m.each,k=m.isIE,j=m.isOpera;m.create("tinymce.WindowManager",{WindowManager:function(b){this.editor=b;this.onOpen=new o(this);this.onClose=new o(this);this.params={};this.features={}},open:function(b,g){var d="",l=this.editor.settings.dialog_type=="modal",r,u,v;v=m.DOM.getViewPort();b=b||{};g=g||{};u=j?v.w:screen.width;v=j?v.h:screen.height;b.name=b.name||"mc_"+(new Date).getTime();b.width=parseInt(b.width||320);b.height=parseInt(b.height||240);b.resizable=true;
-b.left=b.left||parseInt(u/2)-b.width/2;b.top=b.top||parseInt(v/2)-b.height/2;g.inline=false;g.mce_width=b.width;g.mce_height=b.height;g.mce_auto_focus=b.auto_focus;if(l)if(k){b.center=true;b.help=false;b.dialogWidth=b.width+"px";b.dialogHeight=b.height+"px";b.scroll=b.scrollbars||false}q(b,function(e,c){if(m.is(e,"boolean"))e=e?"yes":"no";/^(name|url)$/.test(c)||(d+=k&&l?(d?";":"")+c+":"+e:(d?",":"")+c+"="+e)});this.features=b;this.params=g;this.onOpen.dispatch(this,b,g);u=b.url||b.file;u=m._addVer(u);
-try{if(k&&l){r=1;window.showModalDialog(u,window,d)}else r=window.open(u,b.name,d)}catch(f){}r||alert(this.editor.getLang("popup_blocked"))},close:function(b){b.close();this.onClose.dispatch(this)},createInstance:function(b,g,d,l,r,u){return new (m.resolve(b))(g,d,l,r,u)},confirm:function(b,g,d,l){l=l||window;g.call(d||this,l.confirm(this._decode(this.editor.getLang(b,b))))},alert:function(b,g,d,l){l=l||window;l.alert(this._decode(this.editor.getLang(b,b)));if(g)g.call(d||this)},resizeBy:function(b,
-g,d){d.resizeBy(b,g)},_decode:function(b){return m.DOM.decode(b).replace(/\\n/g,"\n")}})})(tinymce);
-(function(m){m.GlobalCommands=new function(){function o(b,g,d,l){if(typeof g=="string")g=[g];m.each(g,function(r){b[r.toLowerCase()]={func:d,scope:l}})}var q={},k={},j={};m.extend(this,{add:function(b,g,d){o(q,b,g,d)},addQueryStateHandler:function(b,g,d){o(k,b,g,d)},addQueryValueHandler:function(b,g,d){o(j,b,g,d)},execCommand:function(b,g,d,l,r){if(g=q[g.toLowerCase()])if(g.func.call(b||g.scope,d,l,r)!==false)return true},queryCommandValue:function(){if(cmd=j[cmd.toLowerCase()])return cmd.func.call(scope||
+(function(l){var o=l.util.Dispatcher,q=l.each,k=l.isIE,j=l.isOpera;l.create("tinymce.WindowManager",{WindowManager:function(b){this.editor=b;this.onOpen=new o(this);this.onClose=new o(this);this.params={};this.features={}},open:function(b,g){var d="",n=this.editor.settings.dialog_type=="modal",r,u,v;v=l.DOM.getViewPort();b=b||{};g=g||{};u=j?v.w:screen.width;v=j?v.h:screen.height;b.name=b.name||"mc_"+(new Date).getTime();b.width=parseInt(b.width||320);b.height=parseInt(b.height||240);b.resizable=true;
+b.left=b.left||parseInt(u/2)-b.width/2;b.top=b.top||parseInt(v/2)-b.height/2;g.inline=false;g.mce_width=b.width;g.mce_height=b.height;g.mce_auto_focus=b.auto_focus;if(n)if(k){b.center=true;b.help=false;b.dialogWidth=b.width+"px";b.dialogHeight=b.height+"px";b.scroll=b.scrollbars||false}q(b,function(e,c){if(l.is(e,"boolean"))e=e?"yes":"no";/^(name|url)$/.test(c)||(d+=k&&n?(d?";":"")+c+":"+e:(d?",":"")+c+"="+e)});this.features=b;this.params=g;this.onOpen.dispatch(this,b,g);u=b.url||b.file;u=l._addVer(u);
+try{if(k&&n){r=1;window.showModalDialog(u,window,d)}else r=window.open(u,b.name,d)}catch(f){}r||alert(this.editor.getLang("popup_blocked"))},close:function(b){b.close();this.onClose.dispatch(this)},createInstance:function(b,g,d,n,r,u){return new (l.resolve(b))(g,d,n,r,u)},confirm:function(b,g,d,n){g.call(d||this,(n||window).confirm(this._decode(this.editor.getLang(b,b))))},alert:function(b,g,d,n){(n||window).alert(this._decode(this.editor.getLang(b,b)));if(g)g.call(d||this)},resizeBy:function(b,g,
+d){d.resizeBy(b,g)},_decode:function(b){return l.DOM.decode(b).replace(/\\n/g,"\n")}})})(tinymce);
+(function(l){l.GlobalCommands=new function(){function o(b,g,d,n){if(typeof g=="string")g=[g];l.each(g,function(r){b[r.toLowerCase()]={func:d,scope:n}})}var q={},k={},j={};l.extend(this,{add:function(b,g,d){o(q,b,g,d)},addQueryStateHandler:function(b,g,d){o(k,b,g,d)},addQueryValueHandler:function(b,g,d){o(j,b,g,d)},execCommand:function(b,g,d,n,r){if(g=q[g.toLowerCase()])if(g.func.call(b||g.scope,d,n,r)!==false)return true},queryCommandValue:function(){if(cmd=j[cmd.toLowerCase()])return cmd.func.call(scope||
 cmd.scope,ui,value,args)},queryCommandState:function(){if(cmd=k[cmd.toLowerCase()])return cmd.func.call(scope||cmd.scope,ui,value,args)}})}})(tinymce);
-(function(m){m.Formatter=function(o){function q(z){return z.nodeType===1&&(z.face==="mceinline"||z.style.fontFamily==="mceinline")}function k(z){return z?y[z]:y}function j(z,F){if(z)if(typeof z!=="string")D(z,function(G,I){j(I,G)});else{F=F.length?F:[F];D(F,function(G){if(G.deep===ea)G.deep=!G.selector;if(G.split===ea)G.split=!G.selector||G.inline;if(G.remove===ea&&G.selector&&!G.inline)G.remove="none";if(G.selector&&G.inline){G.mixed=true;G.block_expand=true}if(typeof G.classes==="string")G.classes=
-G.classes.split(/\s+/)});y[z]=F}}function b(z,F,G){function I(O){var P=O.startContainer,J=O.startOffset;if(P.nodeType==1||P.nodeValue==="")if(P=P.nodeType==1?P.childNodes[J]:P){P=new X(P,P.parentNode);for(J=P.current();J;J=P.next())if(J.nodeType==3&&!e(J)){O.setStart(J,0);break}}return O}function T(O,P){P=P||N;if(O){D(P.styles,function(J,Q){B.setStyle(O,Q,f(J,F))});D(P.attributes,function(J,Q){B.setAttrib(O,Q,f(J,F))});D(P.classes,function(J){J=f(J,F);B.hasClass(O,J)||B.addClass(O,J)})}}function L(O){var P=
-[],J,Q;J=N.inline||N.block;Q=B.create(J);T(Q);C.walk(O,function(R){function ca(Y){var ba=Y.nodeName.toLowerCase(),da=Y.parentNode.nodeName.toLowerCase(),fa;if(u(ba,"br")){$=0;N.block&&B.remove(Y)}else if(N.wrapper&&d(Y,z,F))$=0;else if(N.block&&!N.wrapper&&/^(h[1-6]|p|div|pre|address|dl|dt|dd)$/.test(ba)){Y=B.rename(Y,J);T(Y);P.push(Y);$=0}else{if(N.selector){D(U,function(ga){if(B.is(Y,ga.selector)&&!q(Y)){T(Y,ga);fa=true}});if(!N.inline||fa){$=0;return}}if(E(J,ba)&&E(da,J)){if(!$){$=Q.cloneNode(V);
-Y.parentNode.insertBefore($,Y);P.push($)}$.appendChild(Y)}else{$=0;D(m.grep(Y.childNodes),ca);$=0}}}var $;D(R,ca)});D(P,function(R){function ca(Y){var ba,da;D(Y.childNodes,function(fa){if(fa.nodeType==1&&!p(fa)&&!q(fa)){ba=fa;return V}});if(ba&&r(ba,N)){da=ba.cloneNode(V);T(da);B.replace(da,Y,aa);B.remove(ba,1)}return da||Y}var $;$=function(Y){var ba=0;D(Y.childNodes,function(da){!e(da)&&!p(da)&&ba++});return ba}(R);if($===0)B.remove(R,1);else if(N.inline||N.wrapper){if(!N.exact&&$===1)R=ca(R);D(U,
-function(Y){D(B.select(Y.inline,R),function(ba){a(Y,F,ba,Y.exact?ba:null)})});if(d(R.parentNode,z,F)){B.remove(R,1);R=0;return aa}N.merge_with_parents&&B.getParent(R.parentNode,function(Y){if(d(Y,z,F)){B.remove(R,1);R=0;return aa}});if(R){R=t(n(R),R);R=t(R,n(R,aa))}}})}var U=k(z),N=U[0],S;if(N)if(G){S=B.createRng();S.setStartBefore(G);S.setEndAfter(G);L(i(S,U))}else if(!M.isCollapsed()||!N.inline){G=M.getBookmark();L(i(M.getRng(aa),U));M.moveToBookmark(G);M.setRng(I(M.getRng(aa)));o.nodeChanged()}else x("apply",
-z,F)}function g(z,F,G){function I(J){var Q,R,ca;Q=m.grep(J.childNodes);R=0;for(ca=S.length;R<ca;R++)if(a(S[R],F,J,J))break;if(O.deep){R=0;for(ca=Q.length;R<ca;R++)I(Q[R])}}function T(J){var Q;D(B.getParents(J.parentNode,void 0,B.getRoot()).reverse(),function(R){var ca;if(!Q&&R.id!="_start"&&R.id!="_end")if((ca=d(R,z,F))&&ca.split!==false)Q=R});return Q}function L(J,Q,R,ca){var $,Y,ba,da,fa,ga;if(J){ga=J.parentNode;for($=Q.parentNode;$&&$!=ga;$=$.parentNode){Y=$.cloneNode(V);for(fa=0;fa<S.length;fa++)if(a(S[fa],
-F,Y,Y)){Y=0;break}if(Y){ba&&Y.appendChild(ba);da||(da=Y);ba=Y}}if(ca&&(!O.mixed||!A(J)))Q=B.split(J,Q);if(ba){R.parentNode.insertBefore(ba,R);da.appendChild(R)}}return Q}function U(J){var Q=B.get(J?"_start":"_end"),R=Q[J?"firstChild":"lastChild"];if(p(R))R=R[J?"firstChild":"lastChild"];B.remove(Q,true);return R}function N(J){var Q,R;J=i(J,S,aa);if(O.split){Q=s(J,aa);R=s(J);if(Q!=R){Q=c(Q,"span",{id:"_start",_mce_type:"bookmark"});R=c(R,"span",{id:"_end",_mce_type:"bookmark"});L(T(Q),Q,Q,true);L(T(R),
-R,R,true);Q=U(aa);R=U()}else Q=R=L(T(Q),Q,Q,true);J.startContainer=Q.parentNode;J.startOffset=H(Q);J.endContainer=R.parentNode;J.endOffset=H(R)+1}C.walk(J,function(ca){D(ca,function($){I($)})})}var S=k(z),O=S[0],P;if(G){P=B.createRng();P.setStartBefore(G);P.setEndAfter(G);N(P)}else if(!M.isCollapsed()||!O.inline){G=M.getBookmark();N(M.getRng(aa));M.moveToBookmark(G);o.nodeChanged()}else x("remove",z,F)}function d(z,F,G,I){function T(N,S,O){var P,J,Q=S[O];if(Q)if(Q.length===ea)for(P in Q){if(Q.hasOwnProperty(P)){J=
-O==="attributes"?B.getAttrib(N,P):v(N,P);if(I&&!J&&!S.exact)return;if((!I||S.exact)&&!u(J,f(Q[P],G)))return}}else for(P=0;P<Q.length;P++)if(O==="attributes"?B.getAttrib(N,Q[P]):v(N,Q[P]))break;return S}var L=k(F),U;if(L&&z)for(U=0;U<L.length;U++){F=L[U];if(r(z,F)&&T(z,F,"attributes")&&T(z,F,"styles")){if(L=F.classes)for(U=0;U<L.length;U++)if(!B.hasClass(z,L[U]))return;return F}}}function l(z,F,G){function I(L){L=B.getParent(L,function(U){return!!d(U,z,F,true)});return d(L,z,F)}var T;if(G)return I(G);
-if(M.isCollapsed()){for(G=Z.apply.length-1;G>=0;G--)if(Z.apply[G].name==z)return true;for(G=Z.remove.length-1;G>=0;G--)if(Z.remove[G].name==z)return false;return I(M.getNode())}G=M.getNode();if(I(G))return aa;T=M.getStart();if(T!=G)if(I(T))return aa;return V}function r(z,F){if(u(z,F.inline))return aa;if(u(z,F.block))return aa;if(F.selector)return B.is(z,F.selector)}function u(z,F){z=z||"";F=F||"";z=""+(z.nodeName||z);F=""+(F.nodeName||F);return z.toLowerCase()==F.toLowerCase()}function v(z,F){var G=
-B.getStyle(z,F);if(F=="color"||F=="backgroundColor")G=B.toHex(G);if(F=="fontWeight"&&G==700)G="bold";return""+G}function f(z,F){if(typeof z!="string")z=z(F);else if(F)z=z.replace(/%(\w+)/g,function(G,I){return F[I]||G});return z}function e(z){return z&&z.nodeType===3&&/^([\s\r\n]+|)$/.test(z.nodeValue)}function c(z,F,G){F=B.create(F,G);z.parentNode.insertBefore(F,z);F.appendChild(z);return F}function i(z,F){function G(O,P,J,Q){var R;for(Q=Q||B.getRoot();;){R=O.parentNode;if(R==Q||!F[0].block_expand&&
-A(R))break;for(N=R[P];N&&N!=O;N=N[J]){if(N.nodeType==1&&!p(N))return O;if(N.nodeType==3&&!e(N))return O}O=O.parentNode}return O}var I=z.startContainer,T=z.startOffset,L=z.endContainer,U=z.endOffset,N,S;if(I.nodeType==1&&I.hasChildNodes()){S=I.childNodes.length-1;I=I.childNodes[T>S?S:T];if(I.nodeType==3)T=0}if(L.nodeType==1&&L.hasChildNodes()){S=L.childNodes.length-1;L=L.childNodes[U>S?S:U-1];if(L.nodeType==3)U=L.nodeValue.length}if(p(I.parentNode))I=I.parentNode;if(p(I))I=I.nextSibling||I;if(p(L.parentNode))L=
-L.parentNode;if(p(L))L=L.previousSibling||L;if(F[0].inline||F[0].block_expand){I=G(I,"firstChild","nextSibling");L=G(L,"lastChild","previousSibling")}if(F[0].selector&&F[0].expand!==V&&!F[0].inline){S=function(O,P){var J,Q,R;if(O.nodeType==3&&O.nodeValue.length==0&&O[P])O=O[P];J=B.getParents(O,void 0,B.getRoot());for(Q=0;Q<J.length;Q++)for(R=0;R<F.length;R++)if(B.is(J[Q],F[R].selector))return J[Q];return O};I=S(I,"previousSibling");L=S(L,"nextSibling")}if(F[0].block||F[0].selector){S=function(O,P){var J;
-F[0].wrapper||(J=B.getParent(O,F[0].block));J||(J=B.getParent(O.nodeType==3?O.parentNode:O,A));if(J&&F[0].wrapper)J=B.getParents(J,"ul,ol",B.getRoot()).reverse()[0]||J;if(!J)for(J=O;J[P]&&!A(J[P]);){J=J[P];if(u(J,"br"))break}return J||O};I=S(I,"previousSibling");L=S(L,"nextSibling");if(F[0].block){A(I)||(I=G(I,"firstChild","nextSibling"));A(L)||(L=G(L,"lastChild","previousSibling"))}}if(I.nodeType==1){T=H(I);I=I.parentNode}if(L.nodeType==1){U=H(L)+1;L=L.parentNode}return{startContainer:I,startOffset:T,
-endContainer:L,endOffset:U}}function a(z,F,G,I){var T,L,U;if(!r(G,z))return V;if(z.remove!="all"){D(z.styles,function(N,S){N=f(N,F);if(typeof S==="number"){S=N;I=0}if(!I||u(v(I,S),N))B.setStyle(G,S,"");U=1});if(U&&B.getAttrib(G,"style")==""){G.removeAttribute("style");G.removeAttribute("_mce_style")}D(z.attributes,function(N,S){var O;N=f(N,F);if(typeof S==="number"){S=N;I=0}if(!I||u(B.getAttrib(I,S),N)){if(S=="class")if(N=B.getAttrib(G,S)){O="";D(N.split(/\s+/),function(P){if(/mce\w+/.test(P))O+=
-(O?" ":"")+P});if(O){B.setAttrib(G,S,O);return}}S=="class"&&G.removeAttribute("className");W.test(S)&&G.removeAttribute("_mce_"+S);G.removeAttribute(S)}});D(z.classes,function(N){N=f(N,F);if(!I||B.hasClass(I,N))B.removeClass(G,N)});L=B.getAttribs(G);for(T=0;T<L.length;T++)if(L[T].nodeName.indexOf("_")!==0)return V}if(z.remove!="none"){h(G,z);return aa}}function h(z,F){var G=z.parentNode,I;if(F.block)if(K){if(G==B.getRoot())if(!F.list_block||!u(z,F.list_block))D(m.grep(z.childNodes),function(L){if(E(K,
-L.nodeName.toLowerCase()))if(I)I.appendChild(L);else I=c(L,K);else I=0})}else{var T=function(L,U,N){L=n(L,U,N);return!L||L.nodeName=="BR"||A(L)};if(A(z)&&!A(G)){!T(z,V)&&!T(z.firstChild,aa,1)&&z.insertBefore(B.create("br"),z.firstChild);!T(z,aa)&&!T(z.lastChild,V,1)&&z.appendChild(B.create("br"))}}F.selector&&F.inline&&!u(F.inline,z)||B.remove(z,1)}function n(z,F,G){if(z){F=F?"nextSibling":"previousSibling";for(z=G?z:z[F];z;z=z[F])if(z.nodeType==1||!e(z))return z}}function p(z){return z&&z.nodeType==
-1&&z.getAttribute("_mce_type")=="bookmark"}function t(z,F){function G(L,U){function N(O){var P={};D(B.getAttribs(O),function(J){J=J.nodeName.toLowerCase();if(J.indexOf("_")!==0&&J!=="style")P[J]=B.getAttrib(O,J)});return P}function S(O,P){var J,Q;for(Q in O)if(O.hasOwnProperty(Q)){J=P[Q];if(J===ea)return V;if(O[Q]!=J)return V;delete P[Q]}for(Q in P)if(P.hasOwnProperty(Q))return V;return aa}if(L.nodeName!=U.nodeName)return V;if(!S(N(L),N(U)))return V;if(!S(B.parseStyle(B.getAttrib(L,"style")),B.parseStyle(B.getAttrib(U,
-"style"))))return V;return aa}var I,T;if(z&&F){T=function(L,U){for(I=L;I;I=I[U]){if(I.nodeType==3&&!e(I))break;if(I.nodeType==1&&!p(I))return I}return L};z=T(z,"previousSibling");F=T(F,"nextSibling");if(G(z,F)){for(I=z.nextSibling;I&&I!=F;){T=I;I=I.nextSibling;z.appendChild(T)}B.remove(F);D(m.grep(F.childNodes),function(L){z.appendChild(L)});return z}}return F}function s(z,F){var G,I,T;G=z[F?"startContainer":"endContainer"];I=z[F?"startOffset":"endOffset"];if(G.nodeType==1){T=G.childNodes.length-
-1;!F&&I&&I--;G=G.childNodes[I>T?T:I]}return G}function x(z,F,G){function I(){return Z.apply.length||Z.remove.length}function T(N){D(Z.apply.reverse(),function(S){b(S.name,S.vars,N)});D(Z.remove.reverse(),function(S){g(S.name,S.vars,N)});B.remove(N,1);Z.apply=[];Z.remove=[]}var L=Z[z],U=Z[z=="apply"?"remove":"apply"];for(z=L.length-1;z>=0;z--)if(L[z].name==F)return;L.push({name:F,vars:G});for(z=U.length-1;z>=0;z--)U[z].name==F&&U.splice(z,1);if(I()){o.getDoc().execCommand("FontName",false,"mceinline");
-Z.lastRng=M.getRng();D(B.select("font,span"),function(N){var S;if(q(N)){S=M.getBookmark();T(N);M.moveToBookmark(S);o.nodeChanged()}});if(!Z.isListening&&I()){Z.isListening=true;D("onKeyDown,onKeyUp,onKeyPress,onMouseUp".split(","),function(N){o[N].addToTop(function(S,O){if(I()&&!m.dom.RangeUtils.compareRanges(Z.lastRng,M.getRng())){D(B.select("font,span"),function(P){var J;if(q(P))if(J=P.firstChild){T(P);P=B.createRng();P.setStart(J,J.nodeValue.length);P.setEnd(J,J.nodeValue.length);M.setRng(P);S.nodeChanged()}else B.remove(P)});
-if(O.type=="keyup"||O.type=="mouseup"){Z.apply=[];Z.remove=[]}}})})}}}var y={},D=m.each,B=o.dom,M=o.selection,X=m.dom.TreeWalker,C=new m.dom.RangeUtils(B),E=o.schema.isValid,A=B.isBlock,K=o.settings.forced_root_block,H=B.nodeIndex,W=/^(src|href|style)$/,V=false,aa=true,ea,Z={apply:[],remove:[]};m.extend(this,{get:k,register:j,apply:b,remove:g,toggle:function(z,F,G){l(z,F,G)?g(z,F,G):b(z,F,G)},match:l,matchAll:function(z,F){var G,I=[],T={},L,U;if(M.isCollapsed()){for(L=0;L<z.length;L++)for(G=Z.remove.length-
-1;G>=0;G--){U=z[L];if(Z.remove[G].name==U){T[U]=true;break}}for(G=Z.apply.length-1;G>=0;G--)for(L=0;L<z.length;L++){U=z[L];if(!T[U]&&Z.apply[G].name==U){T[U]=true;I.push(U)}}}G=M.getStart();B.getParent(G,function(N){var S,O;for(S=0;S<z.length;S++){O=z[S];if(!T[O]&&d(N,O,F)){T[O]=true;I.push(O)}}});return I},matchNode:d,canApply:function(z){z=k(z);var F,G,I,T;if(z){F=M.getStart();F=B.getParents(F,void 0,B.getRoot());for(I=z.length-1;I>=0;I--){T=z[I].selector;if(!T)return aa;for(G=F.length-1;G>=0;G--)if(B.is(F[G],
+(function(l){l.Formatter=function(o){function q(z){return z.nodeType===1&&(z.face==="mceinline"||z.style.fontFamily==="mceinline")}function k(z){return z?y[z]:y}function j(z,F){if(z)if(typeof z!=="string")C(z,function(G,I){j(I,G)});else{F=F.length?F:[F];C(F,function(G){if(G.deep===ea)G.deep=!G.selector;if(G.split===ea)G.split=!G.selector||G.inline;if(G.remove===ea&&G.selector&&!G.inline)G.remove="none";if(G.selector&&G.inline){G.mixed=true;G.block_expand=true}if(typeof G.classes==="string")G.classes=
+G.classes.split(/\s+/)});y[z]=F}}function b(z,F,G){function I(O){var P=O.startContainer,J=O.startOffset;if(P.nodeType==1||P.nodeValue==="")if(P=P.nodeType==1?P.childNodes[J]:P){P=new X(P,P.parentNode);for(J=P.current();J;J=P.next())if(J.nodeType==3&&!e(J)){O.setStart(J,0);break}}return O}function T(O,P){P=P||N;if(O){C(P.styles,function(J,Q){A.setStyle(O,Q,f(J,F))});C(P.attributes,function(J,Q){A.setAttrib(O,Q,f(J,F))});C(P.classes,function(J){J=f(J,F);A.hasClass(O,J)||A.addClass(O,J)})}}function L(O){var P=
+[],J,Q;J=N.inline||N.block;Q=A.create(J);T(Q);E.walk(O,function(R){function ca(Y){var ba=Y.nodeName.toLowerCase(),da=Y.parentNode.nodeName.toLowerCase(),fa;if(u(ba,"br")){$=0;N.block&&A.remove(Y)}else if(N.wrapper&&d(Y,z,F))$=0;else if(N.block&&!N.wrapper&&/^(h[1-6]|p|div|pre|address|dl|dt|dd)$/.test(ba)){Y=A.rename(Y,J);T(Y);P.push(Y);$=0}else{if(N.selector){C(U,function(ga){if(A.is(Y,ga.selector)&&!q(Y)){T(Y,ga);fa=true}});if(!N.inline||fa){$=0;return}}if(D(J,ba)&&D(da,J)){if(!$){$=Q.cloneNode(V);
+Y.parentNode.insertBefore($,Y);P.push($)}$.appendChild(Y)}else{$=0;C(l.grep(Y.childNodes),ca);$=0}}}var $;C(R,ca)});C(P,function(R){function ca(Y){var ba,da;C(Y.childNodes,function(fa){if(fa.nodeType==1&&!p(fa)&&!q(fa)){ba=fa;return V}});if(ba&&r(ba,N)){da=ba.cloneNode(V);T(da);A.replace(da,Y,aa);A.remove(ba,1)}return da||Y}var $;$=function(Y){var ba=0;C(Y.childNodes,function(da){!e(da)&&!p(da)&&ba++});return ba}(R);if($===0)A.remove(R,1);else if(N.inline||N.wrapper){if(!N.exact&&$===1)R=ca(R);C(U,
+function(Y){C(A.select(Y.inline,R),function(ba){a(Y,F,ba,Y.exact?ba:null)})});if(d(R.parentNode,z,F)){A.remove(R,1);R=0;return aa}N.merge_with_parents&&A.getParent(R.parentNode,function(Y){if(d(Y,z,F)){A.remove(R,1);R=0;return aa}});if(R){R=t(m(R),R);R=t(R,m(R,aa))}}})}var U=k(z),N=U[0],S;if(N)if(G){S=A.createRng();S.setStartBefore(G);S.setEndAfter(G);L(i(S,U))}else if(!M.isCollapsed()||!N.inline){G=M.getBookmark();L(i(M.getRng(aa),U));M.moveToBookmark(G);M.setRng(I(M.getRng(aa)));o.nodeChanged()}else x("apply",
+z,F)}function g(z,F,G){function I(J){var Q,R,ca;Q=l.grep(J.childNodes);R=0;for(ca=S.length;R<ca;R++)if(a(S[R],F,J,J))break;if(O.deep){R=0;for(ca=Q.length;R<ca;R++)I(Q[R])}}function T(J){var Q;C(A.getParents(J.parentNode,void 0,A.getRoot()).reverse(),function(R){var ca;if(!Q&&R.id!="_start"&&R.id!="_end")if((ca=d(R,z,F))&&ca.split!==false)Q=R});return Q}function L(J,Q,R,ca){var $,Y,ba,da,fa,ga;if(J){ga=J.parentNode;for($=Q.parentNode;$&&$!=ga;$=$.parentNode){Y=$.cloneNode(V);for(fa=0;fa<S.length;fa++)if(a(S[fa],
+F,Y,Y)){Y=0;break}if(Y){ba&&Y.appendChild(ba);da||(da=Y);ba=Y}}if(ca&&(!O.mixed||!B(J)))Q=A.split(J,Q);if(ba){R.parentNode.insertBefore(ba,R);da.appendChild(R)}}return Q}function U(J){var Q=A.get(J?"_start":"_end"),R=Q[J?"firstChild":"lastChild"];if(p(R))R=R[J?"firstChild":"lastChild"];A.remove(Q,true);return R}function N(J){var Q,R;J=i(J,S,aa);if(O.split){Q=s(J,aa);R=s(J);if(Q!=R){Q=c(Q,"span",{id:"_start",_mce_type:"bookmark"});R=c(R,"span",{id:"_end",_mce_type:"bookmark"});L(T(Q),Q,Q,true);L(T(R),
+R,R,true);Q=U(aa);R=U()}else Q=R=L(T(Q),Q,Q,true);J.startContainer=Q.parentNode;J.startOffset=H(Q);J.endContainer=R.parentNode;J.endOffset=H(R)+1}E.walk(J,function(ca){C(ca,function($){I($)})})}var S=k(z),O=S[0],P;if(G){P=A.createRng();P.setStartBefore(G);P.setEndAfter(G);N(P)}else if(!M.isCollapsed()||!O.inline){G=M.getBookmark();N(M.getRng(aa));M.moveToBookmark(G);o.nodeChanged()}else x("remove",z,F)}function d(z,F,G,I){function T(N,S,O){var P,J,Q=S[O];if(Q)if(Q.length===ea)for(P in Q){if(Q.hasOwnProperty(P)){J=
+O==="attributes"?A.getAttrib(N,P):v(N,P);if(I&&!J&&!S.exact)return;if((!I||S.exact)&&!u(J,f(Q[P],G)))return}}else for(P=0;P<Q.length;P++)if(O==="attributes"?A.getAttrib(N,Q[P]):v(N,Q[P]))break;return S}var L=k(F),U;if(L&&z)for(U=0;U<L.length;U++){F=L[U];if(r(z,F)&&T(z,F,"attributes")&&T(z,F,"styles")){if(L=F.classes)for(U=0;U<L.length;U++)if(!A.hasClass(z,L[U]))return;return F}}}function n(z,F,G){function I(L){L=A.getParent(L,function(U){return!!d(U,z,F,true)});return d(L,z,F)}var T;if(G)return I(G);
+if(M.isCollapsed()){for(G=Z.apply.length-1;G>=0;G--)if(Z.apply[G].name==z)return true;for(G=Z.remove.length-1;G>=0;G--)if(Z.remove[G].name==z)return false;return I(M.getNode())}G=M.getNode();if(I(G))return aa;T=M.getStart();if(T!=G)if(I(T))return aa;return V}function r(z,F){if(u(z,F.inline))return aa;if(u(z,F.block))return aa;if(F.selector)return A.is(z,F.selector)}function u(z,F){z=z||"";F=F||"";z=""+(z.nodeName||z);F=""+(F.nodeName||F);return z.toLowerCase()==F.toLowerCase()}function v(z,F){var G=
+A.getStyle(z,F);if(F=="color"||F=="backgroundColor")G=A.toHex(G);if(F=="fontWeight"&&G==700)G="bold";return""+G}function f(z,F){if(typeof z!="string")z=z(F);else if(F)z=z.replace(/%(\w+)/g,function(G,I){return F[I]||G});return z}function e(z){return z&&z.nodeType===3&&/^([\s\r\n]+|)$/.test(z.nodeValue)}function c(z,F,G){F=A.create(F,G);z.parentNode.insertBefore(F,z);F.appendChild(z);return F}function i(z,F){function G(O,P,J,Q){var R;for(Q=Q||A.getRoot();;){R=O.parentNode;if(R==Q||!F[0].block_expand&&
+B(R))break;for(N=R[P];N&&N!=O;N=N[J]){if(N.nodeType==1&&!p(N))return O;if(N.nodeType==3&&!e(N))return O}O=O.parentNode}return O}var I=z.startContainer,T=z.startOffset,L=z.endContainer,U=z.endOffset,N,S;if(I.nodeType==1&&I.hasChildNodes()){S=I.childNodes.length-1;I=I.childNodes[T>S?S:T];if(I.nodeType==3)T=0}if(L.nodeType==1&&L.hasChildNodes()){S=L.childNodes.length-1;L=L.childNodes[U>S?S:U-1];if(L.nodeType==3)U=L.nodeValue.length}if(p(I.parentNode))I=I.parentNode;if(p(I))I=I.nextSibling||I;if(p(L.parentNode))L=
+L.parentNode;if(p(L))L=L.previousSibling||L;if(F[0].inline||F[0].block_expand){I=G(I,"firstChild","nextSibling");L=G(L,"lastChild","previousSibling")}if(F[0].selector&&F[0].expand!==V&&!F[0].inline){S=function(O,P){var J,Q,R;if(O.nodeType==3&&O.nodeValue.length==0&&O[P])O=O[P];J=A.getParents(O,void 0,A.getRoot());for(Q=0;Q<J.length;Q++)for(R=0;R<F.length;R++)if(A.is(J[Q],F[R].selector))return J[Q];return O};I=S(I,"previousSibling");L=S(L,"nextSibling")}if(F[0].block||F[0].selector){S=function(O,P){var J;
+F[0].wrapper||(J=A.getParent(O,F[0].block));J||(J=A.getParent(O.nodeType==3?O.parentNode:O,B));if(J&&F[0].wrapper)J=A.getParents(J,"ul,ol",A.getRoot()).reverse()[0]||J;if(!J)for(J=O;J[P]&&!B(J[P]);){J=J[P];if(u(J,"br"))break}return J||O};I=S(I,"previousSibling");L=S(L,"nextSibling");if(F[0].block){B(I)||(I=G(I,"firstChild","nextSibling"));B(L)||(L=G(L,"lastChild","previousSibling"))}}if(I.nodeType==1){T=H(I);I=I.parentNode}if(L.nodeType==1){U=H(L)+1;L=L.parentNode}return{startContainer:I,startOffset:T,
+endContainer:L,endOffset:U}}function a(z,F,G,I){var T,L,U;if(!r(G,z))return V;if(z.remove!="all"){C(z.styles,function(N,S){N=f(N,F);if(typeof S==="number"){S=N;I=0}if(!I||u(v(I,S),N))A.setStyle(G,S,"");U=1});if(U&&A.getAttrib(G,"style")==""){G.removeAttribute("style");G.removeAttribute("_mce_style")}C(z.attributes,function(N,S){var O;N=f(N,F);if(typeof S==="number"){S=N;I=0}if(!I||u(A.getAttrib(I,S),N)){if(S=="class")if(N=A.getAttrib(G,S)){O="";C(N.split(/\s+/),function(P){if(/mce\w+/.test(P))O+=
+(O?" ":"")+P});if(O){A.setAttrib(G,S,O);return}}S=="class"&&G.removeAttribute("className");W.test(S)&&G.removeAttribute("_mce_"+S);G.removeAttribute(S)}});C(z.classes,function(N){N=f(N,F);if(!I||A.hasClass(I,N))A.removeClass(G,N)});L=A.getAttribs(G);for(T=0;T<L.length;T++)if(L[T].nodeName.indexOf("_")!==0)return V}if(z.remove!="none"){h(G,z);return aa}}function h(z,F){var G=z.parentNode,I;if(F.block)if(K){if(G==A.getRoot())if(!F.list_block||!u(z,F.list_block))C(l.grep(z.childNodes),function(L){if(D(K,
+L.nodeName.toLowerCase()))if(I)I.appendChild(L);else I=c(L,K);else I=0})}else{var T=function(L,U,N){L=m(L,U,N);return!L||L.nodeName=="BR"||B(L)};if(B(z)&&!B(G)){!T(z,V)&&!T(z.firstChild,aa,1)&&z.insertBefore(A.create("br"),z.firstChild);!T(z,aa)&&!T(z.lastChild,V,1)&&z.appendChild(A.create("br"))}}F.selector&&F.inline&&!u(F.inline,z)||A.remove(z,1)}function m(z,F,G){if(z){F=F?"nextSibling":"previousSibling";for(z=G?z:z[F];z;z=z[F])if(z.nodeType==1||!e(z))return z}}function p(z){return z&&z.nodeType==
+1&&z.getAttribute("_mce_type")=="bookmark"}function t(z,F){function G(L,U){function N(O){var P={};C(A.getAttribs(O),function(J){J=J.nodeName.toLowerCase();if(J.indexOf("_")!==0&&J!=="style")P[J]=A.getAttrib(O,J)});return P}function S(O,P){var J,Q;for(Q in O)if(O.hasOwnProperty(Q)){J=P[Q];if(J===ea)return V;if(O[Q]!=J)return V;delete P[Q]}for(Q in P)if(P.hasOwnProperty(Q))return V;return aa}if(L.nodeName!=U.nodeName)return V;if(!S(N(L),N(U)))return V;if(!S(A.parseStyle(A.getAttrib(L,"style")),A.parseStyle(A.getAttrib(U,
+"style"))))return V;return aa}var I,T;if(z&&F){T=function(L,U){for(I=L;I;I=I[U]){if(I.nodeType==3&&!e(I))break;if(I.nodeType==1&&!p(I))return I}return L};z=T(z,"previousSibling");F=T(F,"nextSibling");if(G(z,F)){for(I=z.nextSibling;I&&I!=F;){T=I;I=I.nextSibling;z.appendChild(T)}A.remove(F);C(l.grep(F.childNodes),function(L){z.appendChild(L)});return z}}return F}function s(z,F){var G,I,T;G=z[F?"startContainer":"endContainer"];I=z[F?"startOffset":"endOffset"];if(G.nodeType==1){T=G.childNodes.length-
+1;!F&&I&&I--;G=G.childNodes[I>T?T:I]}return G}function x(z,F,G){function I(){return Z.apply.length||Z.remove.length}function T(N){C(Z.apply.reverse(),function(S){b(S.name,S.vars,N)});C(Z.remove.reverse(),function(S){g(S.name,S.vars,N)});A.remove(N,1);Z.apply=[];Z.remove=[]}var L=Z[z],U=Z[z=="apply"?"remove":"apply"];for(z=L.length-1;z>=0;z--)if(L[z].name==F)return;L.push({name:F,vars:G});for(z=U.length-1;z>=0;z--)U[z].name==F&&U.splice(z,1);if(I()){o.getDoc().execCommand("FontName",false,"mceinline");
+Z.lastRng=M.getRng();C(A.select("font,span"),function(N){var S;if(q(N)){S=M.getBookmark();T(N);M.moveToBookmark(S);o.nodeChanged()}});if(!Z.isListening&&I()){Z.isListening=true;C("onKeyDown,onKeyUp,onKeyPress,onMouseUp".split(","),function(N){o[N].addToTop(function(S,O){if(I()&&!l.dom.RangeUtils.compareRanges(Z.lastRng,M.getRng())){C(A.select("font,span"),function(P){var J;if(q(P))if(J=P.firstChild){T(P);P=A.createRng();P.setStart(J,J.nodeValue.length);P.setEnd(J,J.nodeValue.length);M.setRng(P);S.nodeChanged()}else A.remove(P)});
+if(O.type=="keyup"||O.type=="mouseup"){Z.apply=[];Z.remove=[]}}})})}}}var y={},C=l.each,A=o.dom,M=o.selection,X=l.dom.TreeWalker,E=new l.dom.RangeUtils(A),D=o.schema.isValid,B=A.isBlock,K=o.settings.forced_root_block,H=A.nodeIndex,W=/^(src|href|style)$/,V=false,aa=true,ea,Z={apply:[],remove:[]};l.extend(this,{get:k,register:j,apply:b,remove:g,toggle:function(z,F,G){n(z,F,G)?g(z,F,G):b(z,F,G)},match:n,matchAll:function(z,F){var G,I=[],T={},L,U;if(M.isCollapsed()){for(L=0;L<z.length;L++)for(G=Z.remove.length-
+1;G>=0;G--){U=z[L];if(Z.remove[G].name==U){T[U]=true;break}}for(G=Z.apply.length-1;G>=0;G--)for(L=0;L<z.length;L++){U=z[L];if(!T[U]&&Z.apply[G].name==U){T[U]=true;I.push(U)}}}G=M.getStart();A.getParent(G,function(N){var S,O;for(S=0;S<z.length;S++){O=z[S];if(!T[O]&&d(N,O,F)){T[O]=true;I.push(O)}}});return I},matchNode:d,canApply:function(z){z=k(z);var F,G,I,T;if(z){F=M.getStart();F=A.getParents(F,void 0,A.getRoot());for(I=z.length-1;I>=0;I--){T=z[I].selector;if(!T)return aa;for(G=F.length-1;G>=0;G--)if(A.is(F[G],
 T))return aa}}return V}})}})(tinymce);
-tinymce.onAddEditor.add(function(m,o){var q,k,j,b=o.settings;if(b.inline_styles){k=m.explode(b.font_size_style_values);var g=function(l,r){j.replace(j.create("span",{style:r}),l,1)};q={font:function(l,r){g(r,{backgroundColor:r.style.backgroundColor,color:r.color,fontFamily:r.face,fontSize:k[parseInt(r.size)-1]})},u:function(l,r){g(r,{textDecoration:"underline"})},strike:function(l,r){g(r,{textDecoration:"line-through"})}};var d=function(l,r){j=l.dom;b.convert_fonts_to_spans&&m.each(j.select("font,u,strike",
+tinymce.onAddEditor.add(function(l,o){var q,k,j,b=o.settings;if(b.inline_styles){k=l.explode(b.font_size_style_values);var g=function(n,r){j.replace(j.create("span",{style:r}),n,1)};q={font:function(n,r){g(r,{backgroundColor:r.style.backgroundColor,color:r.color,fontFamily:r.face,fontSize:k[parseInt(r.size)-1]})},u:function(n,r){g(r,{textDecoration:"underline"})},strike:function(n,r){g(r,{textDecoration:"line-through"})}};var d=function(n,r){j=n.dom;b.convert_fonts_to_spans&&l.each(j.select("font,u,strike",
 r.node),function(u){q[u.nodeName.toLowerCase()](o.dom,u)})};o.onPreProcess.add(d);o.onInit.add(function(){o.selection.onSetContent.add(d)})}});
index 7f49fec283000286c418883ccfddfc41071bf600..0f8dc7ee614863ec35cf0fd5f638d8b19510c973 100644 (file)
@@ -75,6 +75,7 @@
  * - changed $ignore_elements behaviour
  * - added RFC2397 support
  * - base URL support
+ * - invalid HTML comments removal before parsing
  */
 
 class washtml
@@ -271,6 +272,9 @@ class washtml
     else
       $this->config['base_url'] = '';
 
+    // Remove invalid HTML comments (#1487759)
+    $html = preg_replace('/<!--[^->]*>/', '', $html);
+
     @$node->loadHTML($html);
     return $this->dumpHtml($node);
   }
index ce515e2d424b0b5f1e110dffd2a5e9e6228d439d..3d609e33ad03ec35090d8d7337ce45855cde2d48 100644 (file)
@@ -36,11 +36,12 @@ $labels['to'] = 'Kimə';
 $labels['cc'] = 'Nüsxə';
 $labels['bcc'] = 'Gizli';
 $labels['replyto'] = 'Cavabla';
+$labels['followupto'] = 'İzlə';
 $labels['date'] = 'Tarix';
 $labels['size'] = 'Ölçü';
 $labels['priority'] = 'Vaciblik';
 $labels['organization'] = 'Təşkilat';
-$labels['reply-to'] = 'Cavab ünvanı';
+$labels['readstatus'] = 'Statusu oxu';
 $labels['mailboxlist'] = 'Qovluqlar';
 $labels['messagesfromto'] = '$count mesajdan $from - $to arası mesajlar';
 $labels['threadsfromto'] = 'Müzakirə: $from - $to Toplam: $count';
@@ -95,6 +96,8 @@ $labels['checkmail'] = 'Gələnləri yoxla';
 $labels['writenewmessage'] = 'Yeni məktub';
 $labels['replytomessage'] = 'Göndərənə cavabla';
 $labels['replytoallmessage'] = 'Hamıya cavabla';
+$labels['replyall'] = 'Hamıya cavab';
+$labels['replylist'] = 'Cavab siyahısı';
 $labels['forwardmessage'] = 'Yönəlt';
 $labels['deletemessage'] = 'Sil';
 $labels['movemessagetotrash'] = 'Məktubu səbətə köçür';
@@ -149,7 +152,6 @@ $labels['listmode'] = 'Görünüş rejimi';
 $labels['folderactions'] = 'Qovluq işləri...';
 $labels['compact'] = 'Sıx';
 $labels['empty'] = 'Boşalt';
-$labels['purge'] = 'Təmizlə';
 $labels['quota'] = 'Disk istifadəsi';
 $labels['unknown'] = 'naməlum';
 $labels['unlimited'] = 'limitsiz';
@@ -167,6 +169,8 @@ $labels['addattachment'] = 'Fayl əlavə et';
 $labels['charset'] = 'Kodlaşdırma';
 $labels['editortype'] = 'Redaktor';
 $labels['returnreceipt'] = 'Cavab sorğusu';
+$labels['dsn'] = 'Çatdırılma statusu haqda bildiriş';
+$labels['editidents'] = 'İdentifikasiyanı dəyiş';
 $labels['checkspelling'] = 'Orfoqrafiyanı yoxla';
 $labels['resumeediting'] = 'Redaktəni davam et';
 $labels['revertto'] = 'Dəyişiklikləri ləğv et';
@@ -190,6 +194,7 @@ $labels['maxuploadsize'] = 'Faylın maksimal ölçüsü: $size';
 $labels['addcc'] = 'Kopya əlavə et';
 $labels['addbcc'] = 'Gizli kopya əlavə et';
 $labels['addreplyto'] = 'Yönəltmə əlavə et';
+$labels['addfollowupto'] = '"İzlə" əlavə et';
 $labels['mdnrequest'] = 'Məktubu göndərən onu oxuduğunuz haqda sorğu almaq istəyir. Göndərilsin?';
 $labels['receiptread'] = 'Oxunulma haqda soğru';
 $labels['yourmessage'] = 'Bu məktubunuzun oxunulduğu haqda sorğudur';
@@ -197,14 +202,45 @@ $labels['receiptnote'] = 'Bu sorğu yalnız qəbul edilən tərəfindən məktub
 $labels['name'] = 'Göstərilən ad';
 $labels['firstname'] = 'Adı';
 $labels['surname'] = 'Soyadı';
+$labels['middlename'] = 'Orta adı';
+$labels['nameprefix'] = 'Prefiks';
+$labels['namesuffix'] = 'Suffiks';
+$labels['nickname'] = 'Ləqəb';
+$labels['jobtitle'] = 'Vəzifə';
+$labels['department'] = 'Departament';
+$labels['gender'] = 'Cins';
+$labels['maidenname'] = 'Qız adı';
 $labels['email'] = 'E-Poçt';
+$labels['phone'] = 'Telefon';
+$labels['address'] = 'Ünvan';
+$labels['street'] = 'Küçə';
+$labels['locality'] = 'Şəhər';
+$labels['zipcode'] = 'ZIP kod';
+$labels['region'] = 'Region';
+$labels['country'] = 'Ölkə';
+$labels['birthday'] = 'Ad günü';
+$labels['anniversary'] = 'İldönümü';
+$labels['website'] = 'Vebsayt';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Qeydlər';
+$labels['male'] = 'kişi';
+$labels['female'] = 'qadın';
+$labels['manager'] = 'Menecer';
+$labels['assistant'] = 'Assistent';
+$labels['spouse'] = 'Ər-arvad';
+$labels['addfield'] = 'Sahə əlavə et';
 $labels['addcontact'] = 'Ünvanlara əlavə et';
 $labels['editcontact'] = 'Ünvanı redaktə et';
 $labels['contacts'] = 'Əlaqələr';
+$labels['contactproperties'] = 'Kontakt xüsusiyyətləri';
+$labels['personalinfo'] = 'Şəxsi məlumat';
 $labels['edit'] = 'Redaktə et';
 $labels['cancel'] = 'Ləğv et';
 $labels['save'] = 'Saxla';
 $labels['delete'] = 'Sil';
+$labels['rename'] = 'Adlandır';
+$labels['addphoto'] = 'Əlavə et';
+$labels['replacephoto'] = 'Adı dəyiş';
 $labels['newcontact'] = 'Yeni ünvan kartı əlavə et';
 $labels['deletecontact'] = 'Seçilmiş ünvanları sil';
 $labels['composeto'] = 'Seçilmiş ünvanlara məktub yaz';
@@ -248,6 +284,7 @@ $labels['pagesize'] = 'Səhifədə sətrlər';
 $labels['signature'] = 'İmza';
 $labels['dstactive'] = 'Yay vaxtı';
 $labels['htmleditor'] = 'HTML-də mesaj yaz';
+$labels['htmlonreply'] = 'yalnız HTML mesajlar ilə cavab';
 $labels['htmlsignature'] = 'HTML imza';
 $labels['previewpane'] = 'Prevyu paneli göstər';
 $labels['skin'] = 'İnterfeys stili';
@@ -259,6 +296,8 @@ $labels['mailboxview'] = 'Poçt qutusunun görünüşü';
 $labels['mdnrequests'] = 'Göndərilmə bildirişi';
 $labels['askuser'] = 'göndərilmə zamanı istifadəçidən soruş';
 $labels['autosend'] = 'avtomatik göndər';
+$labels['autosendknown'] = 'kontaktlarıma qəbz yolla. Əks halda soruş';
+$labels['autosendknownignore'] = 'kontaktlarıma qəbz yolla. Əks halda iqnor et';
 $labels['ignore'] = 'iqnor';
 $labels['readwhendeleted'] = 'Məktubu siləndə oxunmuş kimi qeyd et';
 $labels['flagfordeletion'] = 'Silmə əvəzi silinmə işarəsilə qeyd et';
@@ -303,6 +342,9 @@ $labels['abovequote'] = 'sitatdan əvvəl';
 $labels['insertsignature'] = 'İmza əlavə et';
 $labels['previewpanemarkread'] = 'Baxılmış şəkilləri oxunmuş kimi qeyd et';
 $labels['afternseconds'] = '$n saniyədən sonra';
+$labels['reqmdn'] = 'Hər zaman çatdırılma bildirişini istə';
+$labels['reqdsn'] = 'Hər zaman çatıdrılma haqda statusu istə';
+$labels['replysamefolder'] = 'Cavab mesajları üçün saxlanılan yer';
 $labels['folder'] = 'Qovluq';
 $labels['folders'] = 'Qovluqlar';
 $labels['foldername'] = 'Qovluq adı';
@@ -312,6 +354,13 @@ $labels['create'] = 'Yarad';
 $labels['createfolder'] = 'Yeni qovluq yarad';
 $labels['managefolders'] = 'Qovluqlarla iş';
 $labels['specialfolders'] = 'Xüsusi qovluqlar';
+$labels['properties'] = 'Xüsusiyyətlər';
+$labels['folderproperties'] = 'Qovluq xüsusiyyətləri';
+$labels['parentfolder'] = 'Ana qovluq';
+$labels['location'] = 'Yerləşmə';
+$labels['info'] = 'Məlumat';
+$labels['getfoldersize'] = 'Qovluq ölçüsünü öyrənmək üçün vur';
+$labels['changesubscription'] = 'Abunəni dəyişmək üçün vurun';
 $labels['sortby'] = 'Çeşidlə';
 $labels['sortasc'] = 'Azdan çoxa';
 $labels['sortdesc'] = 'Çoxdan aza';
index dcef7c5436a81ecced745b125aaee931cf05f5e6..950be1a73bcbc974c88d0ce5f263220316092a73 100644 (file)
@@ -21,6 +21,9 @@ $messages['cookiesdisabled'] = 'Sizin brauzer kukiləri qəbul etmir';
 $messages['sessionerror'] = 'Sizin sessiya köhnəlib';
 $messages['imaperror'] = 'IMAP serverlə bağlantı alınmadı';
 $messages['servererror'] = 'Server xətası!';
+$messages['servererrormsg'] = 'Server xətası: $msg';
+$messages['errorreadonly'] = 'Əməliyyatı etmək mümkün deyil. Qovluq yalnız oxunuş üçündür.';
+$messages['errornoperm'] = 'Əməliyyatı etmək mümkün deyil. Giriş qadağandır.';
 $messages['invalidrequest'] = 'Səhv sorğu! Məlumat yaddaşda qalmadı.';
 $messages['nomessagesfound'] = 'Poçt qutusunda məktub tapılmadı';
 $messages['loggedout'] = 'Çıxış uğurlu oldu. Sağ olun!';
@@ -54,6 +57,8 @@ $messages['deletefolderconfirm'] = 'Bu qovluğu silməyə əminsiniz?';
 $messages['purgefolderconfirm'] = 'Bu qovluqdakı bütün məktubları silməyə əminsiniz?';
 $messages['folderdeleting'] = 'Qovluğ silinir...';
 $messages['foldermoving'] = 'Qovluq köçürülür...';
+$messages['foldersubscribing'] = 'Qovluğa abunə...';
+$messages['folderunsubscribing'] = 'Qovluğa abunədən çıx...';
 $messages['formincomplete'] = 'Bütün sətrlər doldurulmayıb';
 $messages['noemailwarning'] = 'Lütfən, düzgün e-poçt ünvanı daxil edin';
 $messages['nonamewarning'] = 'Lütfən, ad daxil edin';
@@ -73,6 +78,10 @@ $messages['searching'] = 'Axtarılır...';
 $messages['checking'] = 'Yoxlanılır...';
 $messages['nospellerrors'] = 'Orfoqrafik səhvlət tapılmadı';
 $messages['folderdeleted'] = 'Qovluq uğurla silindi';
+$messages['foldersubscribed'] = 'Qovluq uğurla abunə oldu';
+$messages['folderunsubscribed'] = 'Qovluq uğurla abunədən çıxdı';
+$messages['folderpurged'] = 'Qovluq uğurla təmizləndi';
+$messages['folderexpunged'] = 'Qovluq uğurla sıxıldı';
 $messages['deletedsuccessfully'] = 'Silindi';
 $messages['converting'] = 'Məktubun formatlaşması silinir...';
 $messages['messageopenerror'] = 'Məktubu serverdən yükləmək alınmır';
@@ -84,6 +93,8 @@ $messages['sourceisreadonly'] = 'Verilən ünvanlar mənbəyi yalnız oxunmaq ü
 $messages['errorsavingcontact'] = 'Əlaqəni ünvanda saxlamaq mümkün deyil';
 $messages['movingmessage'] = 'Məktub köçürülür...';
 $messages['copyingmessage'] = 'Məktub kopyalanır...';
+$messages['deletingmessage'] = 'Məktub(lar) silinir...';
+$messages['markingmessage'] = 'Məktub(lar) işarələnir...';
 $messages['receiptsent'] = 'Oxunulma haqda bildiriş göndərildi';
 $messages['errorsendingreceipt'] = 'Oxunulma haqda bildiriş göndərilmədi';
 $messages['nodeletelastidentity'] = 'Siz bu kimliyi silə bilməzsiniz. Bu axırıncıdır. ';
@@ -104,10 +115,26 @@ $messages['smtpautherror'] = 'SMTP Error ($code): İdentifikasiya xətası';
 $messages['smtpfromerror'] = 'SMTP Error ($code): Göndərəni səlavə etmək mümkün deyil - "$from" ($msg)';
 $messages['smtptoerror'] = 'SMTP Error ($code): Qəbul edəni əlavə etmək mümkün deyil - "$to" ($msg)';
 $messages['smtprecipientserror'] = 'SMTP Error ($code): Qəbul edənlərin siyahısını emal etmək mümkün deyil';
+$messages['smtpdsnerror'] = 'SMTP xəta: çatdırılma haqda bildiriş dəstəyi yoxdur';
 $messages['smtperror'] = 'SMTP Error ($code): $msg';
 $messages['emailformaterror'] = 'Səhv ünvan: $email';
 $messages['toomanyrecipients'] = 'Qəbul edənlər həddindən artıq çoxdur. Lütfən, $max qədər azaldın.';
 $messages['maxgroupmembersreached'] = 'Qrupun ölçüsü imkan verilən maksimumdan artıqdır - $max';
 $messages['internalerror'] = 'Daxili xəta baş verdi. Lütfən, bir daha cəhd edin';
+$messages['contactdelerror'] = 'Kontak(lar)ı silmək alınmadı';
+$messages['contactdeleted'] = 'Kontak(lar) uğurla silindi';
+$messages['groupdeleted'] = 'Qrup silindi';
+$messages['grouprenamed'] = 'Qrupun adı dəyişdirildi';
+$messages['groupcreated'] = 'Qrup yaradıldı';
+$messages['messagedeleted'] = 'Məktub(lar) uğurla silindi';
+$messages['messagemoved'] = 'Məktub(lar) uğurla köçürüldü';
+$messages['messagecopied'] = 'Məktub(lar) uğurla kopyalandı';
+$messages['messagemarked'] = 'Məktub(lar) uğurla işarələndi';
+$messages['autocompletechars'] = 'Avtokomplektasiya üçün $min işarə daxil edin';
+$messages['namecannotbeempty'] = 'Ad boş ola bilməz';
+$messages['nametoolong'] = 'Ad çox uzundur';
+$messages['folderupdated'] = 'Qovluq yeniləndi';
+$messages['foldercreated'] = 'Qovluq yaradıldı';
+$messages['invalidimageformat'] = 'Şəkil formatı düzgün deyil';
 
 ?>
index 3b06fc280d4131b2f6ddc5c45e16275edfa68a06..fc79811be87cd82b209faae9a9475b3fbf02bc48 100644 (file)
@@ -14,7 +14,7 @@
 |   Nickolay Bunev <just4nick@gmail.com>                                |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4345 2010-12-17 14:28:38Z thomasb $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -45,9 +45,6 @@ $labels['size'] = 'Размер';
 $labels['priority'] = 'Приоритет';
 $labels['organization'] = 'Организация';
 $labels['readstatus'] = 'Статут (прочетено/непрочетено)';
-$labels['reply-to'] = 'Отговор до';
-$labels['mail-reply-to'] = 'Отговор към';
-$labels['mail-followup-to'] = 'Препращане към';
 $labels['mailboxlist'] = 'Папки';
 $labels['messagesfromto'] = 'Съобщения $from до $to от $count';
 $labels['threadsfromto'] = 'Съобщения $from до $to от $count';
@@ -158,7 +155,6 @@ $labels['listmode'] = 'Кратък списък';
 $labels['folderactions'] = 'Десйтвия за папки...';
 $labels['compact'] = 'Свий';
 $labels['empty'] = 'Изпразни';
-$labels['purge'] = 'Изчисти';
 $labels['quota'] = 'Използвано място';
 $labels['unknown'] = 'няма информация';
 $labels['unlimited'] = 'няма ограничение';
@@ -209,15 +205,45 @@ $labels['receiptnote'] = 'Забележка: Тази разписка потв
 $labels['name'] = 'Кратко име';
 $labels['firstname'] = 'Име';
 $labels['surname'] = 'Фамилия';
+$labels['middlename'] = 'Презиме';
+$labels['nameprefix'] = 'Представка (Титла)';
+$labels['namesuffix'] = 'Наставка (Титла)';
+$labels['nickname'] = 'Прякор';
+$labels['jobtitle'] = 'Длъжност';
+$labels['department'] = 'Отдел';
+$labels['gender'] = 'Пол';
+$labels['maidenname'] = 'Бащино име';
 $labels['email'] = 'E-Mail';
+$labels['phone'] = 'Телефон';
+$labels['address'] = 'Адрес';
+$labels['street'] = 'Улица';
+$labels['locality'] = 'Град';
+$labels['zipcode'] = 'Пощенски код';
+$labels['region'] = 'Област';
+$labels['country'] = 'Държава';
+$labels['birthday'] = 'Рожден ден';
+$labels['anniversary'] = 'Годишнина';
+$labels['website'] = 'Уебсайт';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Бележки';
+$labels['male'] = 'Мъж';
+$labels['female'] = 'Жена';
+$labels['manager'] = 'Мениджър';
+$labels['assistant'] = 'Асистент';
+$labels['spouse'] = 'Съпруг (а)';
+$labels['addfield'] = 'Добави поле';
 $labels['addcontact'] = 'Добави';
 $labels['editcontact'] = 'Редактирай';
 $labels['contacts'] = 'Контакти';
 $labels['contactproperties'] = 'Свойства на контакт';
+$labels['personalinfo'] = 'Лична информация';
 $labels['edit'] = 'Редактирай';
 $labels['cancel'] = 'Отказ';
 $labels['save'] = 'Запиши';
 $labels['delete'] = 'Изтрий';
+$labels['rename'] = 'Преименувай';
+$labels['addphoto'] = 'Добави';
+$labels['replacephoto'] = 'Замени';
 $labels['newcontact'] = 'Нов контакт';
 $labels['deletecontact'] = 'Изтрий маркираните контакти';
 $labels['composeto'] = 'Напиши писмо до';
@@ -279,7 +305,7 @@ $labels['ignore'] = 'Отхвърли';
 $labels['readwhendeleted'] = 'Отбележи като прочетено при изтриване';
 $labels['flagfordeletion'] = 'Отбележи съобщението за изтриване';
 $labels['skipdeleted'] = 'Не показвай изтритите съобщения';
-$labels['deletealways'] = 'При неуспешн преместване на съобщение в Кошчето, да се изтрие';
+$labels['deletealways'] = 'При неуспешно преместване на съобщение в Кошчето, да се изтрие';
 $labels['showremoteimages'] = 'Покажи блокираните изображения';
 $labels['fromknownsenders'] = 'Oт познати изпращачи';
 $labels['always'] = 'Винаги';
@@ -321,6 +347,7 @@ $labels['previewpanemarkread'] = 'Маркиране на прегледанит
 $labels['afternseconds'] = 'след $n секунди';
 $labels['reqmdn'] = 'Винаги връщай обратна разписка';
 $labels['reqdsn'] = 'Винаги изисквай отговор при доставка на съобщение';
+$labels['replysamefolder'] = 'Постави отговора в папката на съобщението, на което се отговаря';
 $labels['folder'] = 'Папка';
 $labels['folders'] = 'Папки';
 $labels['foldername'] = 'Име на папката';
@@ -330,6 +357,13 @@ $labels['create'] = 'Създай';
 $labels['createfolder'] = 'Направи нова папка';
 $labels['managefolders'] = 'Настройки на папките';
 $labels['specialfolders'] = 'Служебни папки';
+$labels['properties'] = 'Свойства';
+$labels['folderproperties'] = 'Свойства на папката';
+$labels['parentfolder'] = 'Родителска папка';
+$labels['location'] = 'Местоположение';
+$labels['info'] = 'Информация';
+$labels['getfoldersize'] = 'Щракни за големина на папката';
+$labels['changesubscription'] = 'Щракни за промяна на абонамент';
 $labels['sortby'] = 'Сортирай по';
 $labels['sortasc'] = 'Сортирай възходящо';
 $labels['sortdesc'] = 'Сортирай низходящо';
index 3f6df84adcc40a0cfa5fe602cd1a3f9f1114a70d..242869a1d406fce4a537fbdcab0d9711156acdda 100644 (file)
@@ -14,7 +14,7 @@
 |        Nickolay Bunev <just4nick@gmail.com>                                                          |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4304 2010-12-03 10:58:40Z alec $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -25,6 +25,8 @@ $messages['sessionerror'] = 'Невалидна или изтекла сесия
 $messages['imaperror'] = 'Неуспешно свързване към IMAP сървъра';
 $messages['servererror'] = 'Грешка!';
 $messages['servererrormsg'] = 'Сървърна грешка: $msg';
+$messages['errorreadonly'] = 'Операцията не може да бъде изпълнена. Папката е с права само за четене';
+$messages['errornoperm'] = 'Операцията не може да бъде изпълнена. Отказани права за достъп';
 $messages['invalidrequest'] = 'Невалидна заявка! Данните не са съхранени.';
 $messages['nomessagesfound'] = 'Няма съобщения';
 $messages['loggedout'] = 'Довиждане!';
@@ -58,6 +60,8 @@ $messages['deletefolderconfirm'] = 'Искате ли да изтриете та
 $messages['purgefolderconfirm'] = 'Искате ли да изтриете всички писма в тази папка?';
 $messages['folderdeleting'] = 'Изтриване на папка...';
 $messages['foldermoving'] = 'Преместване на папка...';
+$messages['foldersubscribing'] = 'Абониране...';
+$messages['folderunsubscribing'] = 'Отписване на папка...';
 $messages['formincomplete'] = 'Не сте попълнили всички полета';
 $messages['noemailwarning'] = 'Моля, въведете валиден e-mail адрес';
 $messages['nonamewarning'] = 'Моля, въведете име';
@@ -77,6 +81,10 @@ $messages['searching'] = 'Търсене...';
 $messages['checking'] = 'Проверка...';
 $messages['nospellerrors'] = 'Не са открити правописни грешки';
 $messages['folderdeleted'] = 'Папката е изтрита';
+$messages['foldersubscribed'] = 'Абонирането успешно';
+$messages['folderunsubscribed'] = 'Отписването успешно';
+$messages['folderpurged'] = 'Папката е изпразнена';
+$messages['folderexpunged'] = 'Уплътняването успешно';
 $messages['deletedsuccessfully'] = 'Изтриването е успешно';
 $messages['converting'] = 'Премахване форматирането на писмото...';
 $messages['messageopenerror'] = 'Писмото не може да бъде заредено от сървъра';
@@ -126,5 +134,10 @@ $messages['messagemoved'] = 'Съобщението беше преместен
 $messages['messagecopied'] = 'Съобщението беше копирано';
 $messages['messagemarked'] = 'Съобщението беше маркирано';
 $messages['autocompletechars'] = 'Въведете минимум $min знака, за да започне автоматичното попълване';
+$messages['namecannotbeempty'] = 'Полето за име не може да бъде празно';
+$messages['nametoolong'] = 'Името е прекалено дълго';
+$messages['folderupdated'] = 'Папката е обновена';
+$messages['foldercreated'] = 'Папката е създадена';
+$messages['invalidimageformat'] = 'Невалиден формат на изображението';
 
 ?>
index 50d7688fbbdc9b2b4e6dfe349aa39c2aca3f10b9..4ce08666d3f42ffb272ef78d9d94e129c460cb11 100644 (file)
@@ -14,7 +14,7 @@
 |         Søren Aggeboe <soren@aggeboe.dk>                              |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4345 2010-12-17 14:28:38Z thomasb $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -39,11 +39,12 @@ $labels['to'] = 'Modtager';
 $labels['cc'] = 'Kopi til';
 $labels['bcc'] = 'BCC';
 $labels['replyto'] = 'Svar til';
+$labels['followupto'] = 'Følg-op til';
 $labels['date'] = 'Dato';
 $labels['size'] = 'Størrelse';
 $labels['priority'] = 'Prioritet';
 $labels['organization'] = 'Organisation';
-$labels['reply-to'] = 'Svar til';
+$labels['readstatus'] = 'Læst status';
 $labels['mailboxlist'] = 'Mapper';
 $labels['messagesfromto'] = 'Besked $from til $to af $count';
 $labels['threadsfromto'] = 'Tråd $from til $to af $count';
@@ -98,6 +99,8 @@ $labels['checkmail'] = 'Se efter nye beskeder';
 $labels['writenewmessage'] = 'Skriv en ny besked';
 $labels['replytomessage'] = 'Svar på denne besked';
 $labels['replytoallmessage'] = 'Svar til alle modtagere';
+$labels['replyall'] = 'Svar alle';
+$labels['replylist'] = 'Svar til listen';
 $labels['forwardmessage'] = 'Videresend denne besked';
 $labels['deletemessage'] = 'Slet besked';
 $labels['movemessagetotrash'] = 'Flyt besked til skrald';
@@ -149,14 +152,15 @@ $labels['listcolumns'] = 'Vist kolonne';
 $labels['listsorting'] = 'Sorterings kolonne';
 $labels['listorder'] = 'Sorter efter';
 $labels['listmode'] = 'Listevisningsmode';
+$labels['folderactions'] = 'Mappe handlinger...';
 $labels['compact'] = 'Ryd op';
 $labels['empty'] = 'Tøm';
-$labels['purge'] = 'Udrens';
 $labels['quota'] = 'Disk forbrug';
 $labels['unknown'] = 'ukendt';
 $labels['unlimited'] = 'ubegrænset';
 $labels['quicksearch'] = 'Hurtigsøgning';
 $labels['resetsearch'] = 'Nulstil søgning';
+$labels['searchmod'] = 'Søgeparametere';
 $labels['msgtext'] = 'Hele beskeden';
 $labels['openinextwin'] = 'Åbn i nyt vindue';
 $labels['emlsave'] = 'Download (.eml)';
@@ -168,12 +172,15 @@ $labels['addattachment'] = 'Vedhæft en fil';
 $labels['charset'] = 'Tegnsæt';
 $labels['editortype'] = 'Tekstbehandler';
 $labels['returnreceipt'] = 'Anmod om kvittering';
+$labels['dsn'] = 'Notifikation om leveringstatus';
+$labels['editidents'] = 'Ret identiteter';
 $labels['checkspelling'] = 'Stavekontrol';
 $labels['resumeediting'] = 'Genoptag redigering';
 $labels['revertto'] = 'Vend tilbage til';
 $labels['attachments'] = 'Vedhæftninger';
 $labels['upload'] = 'Upload';
 $labels['close'] = 'Luk';
+$labels['messageoptions'] = 'Besked muligheder...';
 $labels['low'] = 'Lav';
 $labels['lowest'] = 'Lavest';
 $labels['normal'] = 'Normal';
@@ -190,6 +197,7 @@ $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['addfollowupto'] = 'Tilføj følg-op adresse';
 $labels['mdnrequest'] = 'Afsenderen af denne besked har bedt om at modtage en bekræftelse når du læser beskeden. Vil du sende kvittering for læsning?';
 $labels['receiptread'] = 'Send kvittering for læsning';
 $labels['yourmessage'] = 'Dette er en kvittering for at din besked er blevet vist';
@@ -197,13 +205,42 @@ $labels['receiptnote'] = 'Bemærk: Denne kvittering bekræfter udelukkende at be
 $labels['name'] = 'Vist navn';
 $labels['firstname'] = 'Fornavn';
 $labels['surname'] = 'Efternavn';
+$labels['middlename'] = 'Mellemnavn';
+$labels['nickname'] = 'Alias/Kaldenavn';
+$labels['jobtitle'] = 'Job titel';
+$labels['department'] = 'Afdeling';
+$labels['gender'] = 'Køn';
+$labels['maidenname'] = 'Pigenavn';
 $labels['email'] = 'E-mail';
+$labels['phone'] = 'Telefon';
+$labels['address'] = 'Adresse';
+$labels['street'] = 'Vejnavn';
+$labels['locality'] = 'By';
+$labels['zipcode'] = 'Postnr.';
+$labels['region'] = 'Område/region';
+$labels['country'] = 'Land';
+$labels['birthday'] = 'Fødselsdag';
+$labels['anniversary'] = 'Jubilæum';
+$labels['website'] = 'Hjemmeside';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Noter';
+$labels['male'] = 'Mand';
+$labels['female'] = 'Kvinde';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistent';
+$labels['spouse'] = 'Ægtefælle';
+$labels['addfield'] = 'Tilføj felt...';
 $labels['addcontact'] = 'Tilføj en ny kontakt';
 $labels['editcontact'] = 'Redigér kontakt';
+$labels['contacts'] = 'Kontakter';
+$labels['contactproperties'] = 'Kontakt egenskaber';
 $labels['edit'] = 'Redigér';
 $labels['cancel'] = 'Afbryd';
 $labels['save'] = 'Gem';
 $labels['delete'] = 'Slet';
+$labels['rename'] = 'Omdøb';
+$labels['addphoto'] = 'Tilføj';
+$labels['replacephoto'] = 'Erstat';
 $labels['newcontact'] = 'Opret nyt kontaktkort';
 $labels['deletecontact'] = 'Slet valgte kontakter';
 $labels['composeto'] = 'Skriv brev til';
@@ -247,6 +284,7 @@ $labels['pagesize'] = 'Rækker per side';
 $labels['signature'] = 'Signatur';
 $labels['dstactive'] = 'Sommertid';
 $labels['htmleditor'] = 'Skriv HTML-besked';
+$labels['htmlonreply'] = 'kun når jeg besvarer HTML-beskeder';
 $labels['htmlsignature'] = 'HTML-signatur';
 $labels['previewpane'] = 'Forhåndsvisning';
 $labels['skin'] = 'Interface skin';
@@ -258,6 +296,8 @@ $labels['mailboxview'] = 'Mailbox visning';
 $labels['mdnrequests'] = 'Kvitteringer';
 $labels['askuser'] = 'spørg brugeren';
 $labels['autosend'] = 'send automatisk';
+$labels['autosendknown'] = 'send automatisk til mine kontakter, ellers spørg mig';
+$labels['autosendknownignore'] = 'send automatisk til mine kontakter, ellers ignorér';
 $labels['ignore'] = 'ignorér';
 $labels['readwhendeleted'] = 'Markér beskeden som læst ved sletning';
 $labels['flagfordeletion'] = 'Markér beskeden til sletning istedet for at slette';
@@ -302,6 +342,9 @@ $labels['abovequote'] = 'over det citerede';
 $labels['insertsignature'] = 'Indsæt signatur';
 $labels['previewpanemarkread'] = 'Markér forhåndsviste beskeder som læst';
 $labels['afternseconds'] = 'efter $n sekunder';
+$labels['reqmdn'] = 'Bed altid om at få besked om læsning';
+$labels['reqdsn'] = 'Bed altid om at få en status på levering';
+$labels['replysamefolder'] = 'Placer svar til en besked i samme mappe som beskeden der besvares';
 $labels['folder'] = 'Mappe';
 $labels['folders'] = 'Mapper';
 $labels['foldername'] = 'Mappenavn';
@@ -311,6 +354,13 @@ $labels['create'] = 'Opret';
 $labels['createfolder'] = 'Opret ny mappe';
 $labels['managefolders'] = 'Administrér mapper';
 $labels['specialfolders'] = 'Specielle mapper';
+$labels['properties'] = 'Egenskaber';
+$labels['folderproperties'] = 'Mappe egenskaber';
+$labels['parentfolder'] = 'Mappe et niveau op';
+$labels['location'] = 'Placering';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Klik for at hente mappestørrelse';
+$labels['changesubscription'] = 'Klik for at ændre abonnement';
 $labels['sortby'] = 'Sortér efter';
 $labels['sortasc'] = 'Ældste først';
 $labels['sortdesc'] = 'Nyeste først';
index 2762dda8f50ed266072145523b2a2993262c69f4..e347a5643f8115c8ca434da300cf72a8b5d972f7 100644 (file)
@@ -14,7 +14,7 @@
 |         Søren Aggeboe <soren@aggeboe.dk>                              |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4304 2010-12-03 10:58:40Z alec $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -24,6 +24,9 @@ $messages['cookiesdisabled'] = 'Din browser accepterer ikke cookies';
 $messages['sessionerror'] = 'Din session er ugyldig eller udløbet';
 $messages['imaperror'] = 'Forbindelse til IMAP serveren fejlede';
 $messages['servererror'] = 'Server fejl!';
+$messages['servererrormsg'] = 'Server fejl: $msg';
+$messages['errorreadonly'] = 'Kunne ikke udføre den ønskede handling. Mappen er skrivebeskyttet';
+$messages['errornoperm'] = 'Kunne ikke udføre den ønskede handling. Adgang nægtet';
 $messages['invalidrequest'] = 'Ugyldig forespørgsel! Ingen data blev gemt.';
 $messages['nomessagesfound'] = 'Der blev ikke fundet nogen beskeder i denne postkasse';
 $messages['loggedout'] = 'Du er nu logget af webmail. Farvel så længe!';
@@ -57,6 +60,8 @@ $messages['deletefolderconfirm'] = 'Vil du virkelig slette den valgte mappe';
 $messages['purgefolderconfirm'] = 'Vil du virkelig slette alle beskeder i denne mappe?';
 $messages['folderdeleting'] = 'Sletter mappen...';
 $messages['foldermoving'] = 'Flytter mappen...';
+$messages['foldersubscribing'] = 'Abonnere på mappen...';
+$messages['folderunsubscribing'] = 'Fjerner abonnement på mappen...';
 $messages['formincomplete'] = 'Formularen var ikke fuldstændig fyldt ud';
 $messages['noemailwarning'] = 'Indtast venligst en gyldig e-mail adresse';
 $messages['nonamewarning'] = 'Angiv venligst et navn';
@@ -76,6 +81,10 @@ $messages['searching'] = 'Søger...';
 $messages['checking'] = 'Tjekker...';
 $messages['nospellerrors'] = 'Ingen stavefejl fundet';
 $messages['folderdeleted'] = 'Mappen er slettet';
+$messages['foldersubscribed'] = 'Mappe abonnement oprettet';
+$messages['folderunsubscribed'] = 'Mappe abonnement opsagt';
+$messages['folderpurged'] = 'Mappen er tømt';
+$messages['folderexpunged'] = 'Mappen er blevet optimeret';
 $messages['deletedsuccessfully'] = 'Slettet';
 $messages['converting'] = 'Fjerner formatering fra besked...';
 $messages['messageopenerror'] = 'Beskeden kunne ikke hentes fra serveren';
@@ -87,6 +96,8 @@ $messages['sourceisreadonly'] = 'Denne adressekilde er kun til læsning';
 $messages['errorsavingcontact'] = 'Kunne ikke gemme kontakt adressen';
 $messages['movingmessage'] = 'Flytter besked...';
 $messages['copyingmessage'] = 'Kopierer besked...';
+$messages['deletingmessage'] = 'Sletter besked(er)...';
+$messages['markingmessage'] = 'Markerer besked(er)...';
 $messages['receiptsent'] = 'Kvittering for læsning er sendt';
 $messages['errorsendingreceipt'] = 'Kvitteringen kunne ikke sendes';
 $messages['nodeletelastidentity'] = 'Du kan ikke slette denne identitet, da det er den eneste der er tilbage.';
@@ -107,9 +118,26 @@ $messages['smtpautherror'] = 'SMTP fejl ($code): Autenticering fejlede';
 $messages['smtpfromerror'] = 'SMTP fejl ($code): Kunne ikke afsende som "$from" ($msg)';
 $messages['smtptoerror'] = 'SMTP fejl ($code): Kunne ikke tilføje modtageren "$to" ($msg)';
 $messages['smtprecipientserror'] = 'SMTP fejl: kan ikke fortolke listen af modtagere';
+$messages['smtpdsnerror'] = 'SMTP fejl: Ingen understøttelse af leveringsnotifikation';
 $messages['smtperror'] = 'SMTP fejl: $msg';
 $messages['emailformaterror'] = 'Ugyldig email-adresse: $email';
 $messages['toomanyrecipients'] = 'For mange modtagere. Reducer antallet af modtagere til $max';
 $messages['maxgroupmembersreached'] = 'Antallet af gruppemedlemmer overstiger maksimum på $max';
+$messages['internalerror'] = 'Der opstod en intern fejl - prøv venligst igen';
+$messages['contactdelerror'] = 'Kunne ikke slette kontakt(er)';
+$messages['contactdeleted'] = 'Kontakt(er) slettet';
+$messages['groupdeleted'] = 'Gruppen er slettet';
+$messages['grouprenamed'] = 'Gruppen er omdøbt';
+$messages['groupcreated'] = 'Gruppen er oprettet';
+$messages['messagedeleted'] = 'Besked(er) slettet';
+$messages['messagemoved'] = 'Besked(er) flyttet';
+$messages['messagecopied'] = 'Besked(er) kopieret';
+$messages['messagemarked'] = 'Besked(er) markeret';
+$messages['autocompletechars'] = 'Du skal min. indtaste $min for at benytte autoopslag';
+$messages['namecannotbeempty'] = 'Navnet kan ikke været tomt';
+$messages['nametoolong'] = 'Navnet er for langt';
+$messages['folderupdated'] = 'Mappen er opdateret';
+$messages['foldercreated'] = 'Mappen er oprettet';
+$messages['invalidimageformat'] = 'Ikke et gyldigt billedformat';
 
 ?>
index 86483d86441f49a1d29f2f256e2c49ebc8d33069..a50634c499728bd854e45564bf105a782206a34b 100644 (file)
@@ -13,7 +13,7 @@
 | Author: Marcel Schlesinger <info@marcel-schlesinger.de>               |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4346 2010-12-17 14:36:47Z thomasb $
+@version $Id: labels.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -44,9 +44,6 @@ $labels['size'] = 'Größe';
 $labels['priority'] = 'Priorität';
 $labels['organization'] = 'Organisation';
 $labels['readstatus'] = 'Gelesen/Ungelesen';
-$labels['reply-to'] = 'Antwort an';
-$labels['mail-reply-to'] = 'Mail-Reply-To';
-$labels['mail-followup-to'] = 'Mail-Followup-To';
 $labels['mailboxlist'] = 'Ordner';
 $labels['messagesfromto'] = 'Nachrichten $from bis $to von $count';
 $labels['threadsfromto'] = 'Konversationen $from bis $to von $count';
@@ -157,7 +154,6 @@ $labels['listmode'] = 'Anzeigemodus';
 $labels['folderactions'] = 'Ordneraktionen...';
 $labels['compact'] = 'Packen';
 $labels['empty'] = 'Leeren';
-$labels['purge'] = 'Bereinigen';
 $labels['quota'] = 'Speicherplatz';
 $labels['unknown'] = 'unbekannt';
 $labels['unlimited'] = 'unbegrenzt';
@@ -201,22 +197,52 @@ $labels['addcc'] = 'Cc hinzufügen';
 $labels['addbcc'] = 'Bcc hinzufügen';
 $labels['addreplyto'] = 'Antwortadresse hinzufügen';
 $labels['addfollowupto'] = 'Followup-To hinzufügen';
-$labels['mdnrequest'] = 'Der Sender dieser Nachricht möchte gerne eine Lesebestätigung. Wollen Sie dieses bestätigen?';
+$labels['mdnrequest'] = 'Der Sender dieser Nachricht möchte gerne eine Empfangsbestätigung. Wollen Sie dieses bestätigen?';
 $labels['receiptread'] = 'Empfangsbestätigung (gelesen)';
 $labels['yourmessage'] = 'Dies ist eine Empfangsbestätigung für Ihre Nachricht';
 $labels['receiptnote'] = 'Hinweis: Der Empfänger hat den Empfang der Nachricht bestätigt. Dies ist keine Garantie, dass die Nachricht gelesen und verstanden wurde.';
 $labels['name'] = 'Angezeigter Name';
 $labels['firstname'] = 'Vorname';
 $labels['surname'] = 'Nachname';
+$labels['middlename'] = 'zweiter  Vorname';
+$labels['nameprefix'] = 'Anrede';
+$labels['namesuffix'] = 'Namenszusatz';
+$labels['nickname'] = 'Spitzname';
+$labels['jobtitle'] = 'Berufsbezeichnung';
+$labels['department'] = 'Firma';
+$labels['gender'] = 'Geschlecht';
+$labels['maidenname'] = 'Mädchenname';
 $labels['email'] = 'E-Mail';
+$labels['phone'] = 'Telefon';
+$labels['address'] = 'Adresse';
+$labels['street'] = 'Straße';
+$labels['locality'] = 'Ort';
+$labels['zipcode'] = 'PLZ';
+$labels['region'] = 'Region';
+$labels['country'] = 'Land';
+$labels['birthday'] = 'Geburtstag';
+$labels['anniversary'] = 'Jahrestag';
+$labels['website'] = 'Webseite';
+$labels['instantmessenger'] = 'IM-Adresse';
+$labels['notes'] = 'Notizen';
+$labels['male'] = 'männlich';
+$labels['female'] = 'weiblich';
+$labels['manager'] = 'Vorgesetze(r)';
+$labels['assistant'] = 'Assistent';
+$labels['spouse'] = 'Partner/in';
+$labels['addfield'] = 'Feld hinzufügen...';
 $labels['addcontact'] = 'Kontakt hinzufügen';
 $labels['editcontact'] = 'Kontakt bearbeiten';
 $labels['contacts'] = 'Kontakte';
 $labels['contactproperties'] = 'Kontaktdaten';
+$labels['personalinfo'] = 'Persönliche Informationen';
 $labels['edit'] = 'Bearbeiten';
 $labels['cancel'] = 'Abbrechen';
 $labels['save'] = 'Speichern';
 $labels['delete'] = 'Löschen';
+$labels['rename'] = 'umbenennen';
+$labels['addphoto'] = 'Kontaktbild hinzufügen';
+$labels['replacephoto'] = 'Bild ändern';
 $labels['newcontact'] = 'Neuen Kontakt erstellen';
 $labels['deletecontact'] = 'Gewählte Kontakte löschen';
 $labels['composeto'] = 'Nachricht verfassen';
@@ -271,8 +297,8 @@ $labels['serversettings'] = 'Server-Einstellungen';
 $labels['mailboxview'] = 'Mailbox-Ansicht';
 $labels['mdnrequests'] = 'Empfangsbestätigung senden';
 $labels['askuser'] = 'immer fragen';
-$labels['autosend'] = 'Lesebestätigung automatisch senden';
-$labels['autosendknown'] = 'Lesebestätigung nur an meine Kontakte senden';
+$labels['autosend'] = 'automatisch senden';
+$labels['autosendknown'] = 'nur an meine Kontakte senden';
 $labels['autosendknownignore'] = 'für bekannte Absender, sonst ignorieren';
 $labels['ignore'] = 'ignorieren';
 $labels['readwhendeleted'] = 'Beim Löschen als gelesen markieren';
index 5ba65be6ddc51dccea460391b1d90bfcd5a536fd..5dd56e0913958e5388c6eb8b57f4494cac45a1cd 100644 (file)
@@ -13,7 +13,7 @@
 | Author: Marcel Schlesinger <info@marcel-schlesinger.de>               |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4345 2010-12-17 14:28:38Z thomasb $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -24,6 +24,8 @@ $messages['sessionerror'] = 'Ihre Session ist ungültig oder abgelaufen';
 $messages['imaperror'] = 'Keine Verbindung zum IMAP-Server';
 $messages['servererror'] = 'Serverfehler!';
 $messages['servererrormsg'] = 'Serverfehler: $msg';
+$messages['errorreadonly'] = 'Die Aktion nicht ausgeführt werden. Der Ordner ist schreibgeschützt.';
+$messages['errornoperm'] = 'Die Aktion nicht ausgeführt werden. Zugriff verweigert.';
 $messages['invalidrequest'] = 'Ungültige Anfrage! Es wurden keine Daten gespeichert.';
 $messages['nomessagesfound'] = 'Keine Nachrichten in diesem Ordner';
 $messages['loggedout'] = 'Sie haben Ihre Session erfolgreich beendet. Auf Wiedersehen!';
@@ -135,7 +137,6 @@ $messages['namecannotbeempty'] = 'Der Name darf nicht leer sein';
 $messages['nametoolong'] = 'Der Name ist zu lang';
 $messages['folderupdated'] = 'Der Ordner wurde erfolgreich aktualisiert';
 $messages['foldercreated'] = 'Der Ordner wurde erfolgreich erstellt';
-$messages['errorreadonly'] = 'Die Aktion nicht ausgeführt werden. Der Ordner ist schreibgeschützt.';
-$messages['errornoperm'] = 'Die Aktion nicht ausgeführt werden. Zugriff verweigert.';
+$messages['invalidimageformat'] = 'Kein gültiges Bildformat';
 
 ?>
index ed367d0f3f0d9909b82b0c64a00b5252a57c1f60..b453fced772aa85096e8823bd3d82391693b6f70 100644 (file)
@@ -15,7 +15,7 @@
 |         Maximilien Cuony <theglu@theglu.org>                          |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4345 2010-12-17 14:28:38Z thomasb $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -40,12 +40,12 @@ $labels['to'] = 'À';
 $labels['cc'] = 'Cc';
 $labels['bcc'] = 'Cci';
 $labels['replyto'] = 'Répondre à';
+$labels['followupto'] = 'Faire suivre à';
 $labels['date'] = 'Date';
 $labels['size'] = 'Taille';
 $labels['priority'] = 'Priorité';
 $labels['organization'] = 'Organisation';
 $labels['readstatus'] = 'Status de lecture';
-$labels['reply-to'] = 'Répondre à';
 $labels['mailboxlist'] = 'Dossiers';
 $labels['messagesfromto'] = 'Messages de $from à $to sur $count';
 $labels['threadsfromto'] = 'Fil de $from à $to sur $count';
@@ -156,7 +156,6 @@ $labels['listmode'] = 'Mode d\'affichage de la liste';
 $labels['folderactions'] = 'Actions du dossier';
 $labels['compact'] = 'Compacter';
 $labels['empty'] = 'Vider';
-$labels['purge'] = 'Purger';
 $labels['quota'] = 'Occupation disque';
 $labels['unknown'] = 'inconnue';
 $labels['unlimited'] = 'illimitée';
@@ -199,6 +198,7 @@ $labels['maxuploadsize'] = 'La taille maximum autorisée pour un fichier est $si
 $labels['addcc'] = 'Ajouter Cc';
 $labels['addbcc'] = 'Ajouter Cci';
 $labels['addreplyto'] = 'Ajouter Répondre à';
+$labels['addfollowupto'] = 'Ajouter Faire suivre à';
 $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 (lu)';
 $labels['yourmessage'] = 'Ceci est un accusé de réception pour votre message';
@@ -215,6 +215,7 @@ $labels['edit'] = 'Modifier';
 $labels['cancel'] = 'Annuler';
 $labels['save'] = 'Sauvegarder';
 $labels['delete'] = 'Supprimer';
+$labels['rename'] = 'Renommer';
 $labels['newcontact'] = 'Créer un nouveau contact';
 $labels['deletecontact'] = 'Supprimer les contacts sélectionnés';
 $labels['composeto'] = 'Écrire un message à';
index e8dca4e7063e6f5a084cc86a19381360dbf0bccd..9900d7ecb0e029b8933c2954dc8be4df01760b55 100644 (file)
@@ -15,7 +15,7 @@
 |         Maximilien Cuony <theglu@theglu.org>                          |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4304 2010-12-03 10:58:40Z alec $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -26,6 +26,8 @@ $messages['sessionerror'] = 'Votre session est invalide ou a expiré';
 $messages['imaperror'] = 'Erreur de connexion au serveur IMAP';
 $messages['servererror'] = 'Erreur Serveur !';
 $messages['servererrormsg'] = 'Erreur du serveur: $msg';
+$messages['errorreadonly'] = 'Impossible d\'effectuer cette opération. Le dossier est en lecture seule';
+$messages['errornoperm'] = 'Impossible d\'effectuer cette opération. Permission refusée';
 $messages['invalidrequest'] = 'Requête invalide ! Aucune donnée n\'a été sauvegardée.';
 $messages['nomessagesfound'] = 'Aucun message trouvé dans cette boîte aux lettres';
 $messages['loggedout'] = 'Vous venez de vous déconnecter avec succès. Au revoir !';
@@ -59,6 +61,8 @@ $messages['deletefolderconfirm'] = 'Voulez-vous vraiment effacer ce dossier ?';
 $messages['purgefolderconfirm'] = 'Voulez-vous vraiment effacer tous les messages de ce dossier ?';
 $messages['folderdeleting'] = 'Suppression du dossier...';
 $messages['foldermoving'] = 'Déplacement du dossier...';
+$messages['foldersubscribing'] = 'Inscription du dossier...';
+$messages['folderunsubscribing'] = 'Désinscription 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';
@@ -78,6 +82,10 @@ $messages['searching'] = 'En cours de recherche...';
 $messages['checking'] = 'Vérification...';
 $messages['nospellerrors'] = 'Aucune faute trouvée';
 $messages['folderdeleted'] = 'Dossier effacé';
+$messages['foldersubscribed'] = 'Le dossier a bien été inscrit';
+$messages['folderunsubscribed'] = 'Le dossier a bien été désinscrit';
+$messages['folderpurged'] = 'Le dossier a bien été vidé';
+$messages['folderexpunged'] = 'Le dossier a bien été comptacté';
 $messages['deletedsuccessfully'] = 'Supprimé(s) avec succès';
 $messages['converting'] = 'Suppression de la mise en forme...';
 $messages['messageopenerror'] = 'Impossible de charger le message depuis serveur';
@@ -127,5 +135,9 @@ $messages['messagemoved'] = 'Les messages ont bien été déplacés';
 $messages['messagecopied'] = 'Les messages ont bien été copiés';
 $messages['messagemarked'] = 'Les messages ont bien été marqués';
 $messages['autocompletechars'] = 'Entrez au moins $min caractères pour l\'auto-complétion';
+$messages['namecannotbeempty'] = 'Le nom ne peut pas être vide';
+$messages['nametoolong'] = 'Le nom est trop long';
+$messages['folderupdated'] = 'Le dossier a bien été mis à jour';
+$messages['foldercreated'] = 'Le dossier a bien été créé';
 
 ?>
index 61f27f769ae1109d52b46ef5f88e4f4d7d48c109..02ea0cf30b1efa75d2f63dd6623492ed65f0de44 100644 (file)
@@ -152,7 +152,6 @@ $labels['listmode'] = 'אופן הצגת רשימה';
 $labels['folderactions'] = 'פעולות על תיקים';
 $labels['compact'] = 'פינוי שטח לא מנוצל';
 $labels['empty'] = 'ריקון';
-$labels['purge'] = 'מחיקה';
 $labels['quota'] = 'ניצול קיבולת';
 $labels['unknown'] = 'לא ידוע';
 $labels['unlimited'] = 'ללא הגבלה';
@@ -203,15 +202,45 @@ $labels['receiptnote'] = 'הערה: האישור אינו מבטיח שהנמע
 $labels['name'] = 'שם להצגה';
 $labels['firstname'] = 'שם פרטי';
 $labels['surname'] = 'שם משפחה';
+$labels['middlename'] = 'שם אמצעי';
+$labels['nameprefix'] = 'קידומת';
+$labels['namesuffix'] = 'סיומת';
+$labels['nickname'] = 'שם חיבה';
+$labels['jobtitle'] = 'תפקיד באירגון';
+$labels['department'] = 'מחלקה';
+$labels['gender'] = 'מגדר';
+$labels['maidenname'] = 'שם משפחה לפני נישואין';
 $labels['email'] = 'כתובת דוא"ל';
+$labels['phone'] = 'מספר טלפון';
+$labels['address'] = 'כתובת';
+$labels['street'] = 'רחוב';
+$labels['locality'] = 'עיר';
+$labels['zipcode'] = 'מיקוד';
+$labels['region'] = 'אישור';
+$labels['country'] = 'מדינה';
+$labels['birthday'] = 'יום הולדת';
+$labels['anniversary'] = 'יום נישואין';
+$labels['website'] = 'אתר אינטרנט';
+$labels['instantmessenger'] = 'כינוי בצ\'ט';
+$labels['notes'] = 'הערות';
+$labels['male'] = 'זכר';
+$labels['female'] = 'נקבה';
+$labels['manager'] = 'מנהל/ת';
+$labels['assistant'] = 'עוזר/ת';
+$labels['spouse'] = 'בן/בת זוג';
+$labels['addfield'] = 'הוסף שדה';
 $labels['addcontact'] = 'הוספת איש קשר';
 $labels['editcontact'] = 'עריכת איש קשר';
 $labels['contacts'] = 'אנשי קשר';
 $labels['contactproperties'] = 'מאפייני איש קשר';
+$labels['personalinfo'] = 'מידע אישי';
 $labels['edit'] = 'עריכה';
 $labels['cancel'] = 'ביטול';
 $labels['save'] = 'שמירה';
 $labels['delete'] = 'מחיקה';
+$labels['rename'] = 'שינוי שם';
+$labels['addphoto'] = 'הוספה';
+$labels['replacephoto'] = 'החלפה';
 $labels['newcontact'] = 'איש קשר חדש';
 $labels['deletecontact'] = 'מחיקת אנשי קשר מסומנים';
 $labels['composeto'] = 'יצירת הודעה אל';
index 9dd3c872b53d9feabbcef52c3b2e41baceb0454d..000fcb9575e147f97442f1e2f5b285ca745e22e1 100644 (file)
@@ -136,5 +136,6 @@ $messages['namecannotbeempty'] = 'השם אינו יכול להיות ריק';
 $messages['nametoolong'] = 'השם ארוך מדי';
 $messages['folderupdated'] = 'התיק עודכן בהצלחה';
 $messages['foldercreated'] = 'התיק נוצר בהצלחה';
+$messages['invalidimageformat'] = 'פורמט תמונה לא חוקי';
 
 ?>
index ee195430d2f36b0b820ff74a891ea84b16705330..8e94ae5c937a563b5dfe04d03afdf2f29537fdee 100644 (file)
@@ -15,7 +15,7 @@
 |         Barnabas Bona <bsi at hosember dot hu>                        |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4368 2010-12-27 08:51:22Z yllar $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -49,7 +49,7 @@ $labels['readstatus'] = 'Olvasott';
 $labels['mailboxlist'] = 'Mappák';
 $labels['messagesfromto'] = 'Üzenetek: $from - $to / $count';
 $labels['threadsfromto'] = 'Témák ($from - $to, összesen $count)';
-$labels['messagenrof'] = '$nr / $coun t üzenet';
+$labels['messagenrof'] = '$nr / $count üzenet';
 $labels['copy'] = 'Másolás';
 $labels['move'] = 'Áthelyezés';
 $labels['moveto'] = 'áthelyezés...';
index 66dab9822e30ef753410e717a5238aa6896a1efd..24c28450a92f0849f9f78bfb3771e4d5b577f61f 100644 (file)
@@ -14,7 +14,7 @@
 |         Yusef Maali <contact@yusefmaali.net>                          |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4386 2011-01-04 08:35:46Z yllar $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -37,13 +37,14 @@ $labels['subject'] = 'Oggetto';
 $labels['from'] = 'Mittente';
 $labels['to'] = 'Destinatario';
 $labels['cc'] = 'Cc';
-$labels['bcc'] = 'Bcn';
+$labels['bcc'] = 'Bcc';
 $labels['replyto'] = 'Rispondi a';
 $labels['followupto'] = 'Followup-To';
 $labels['date'] = 'Data';
 $labels['size'] = 'Dimensione';
 $labels['priority'] = 'Priorità';
 $labels['organization'] = 'Società';
+$labels['readstatus'] = 'Visualizza lo stato';
 $labels['mailboxlist'] = 'Cartelle';
 $labels['messagesfromto'] = 'Messaggi da $from a $to di $count';
 $labels['threadsfromto'] = 'Thread da $from a $to di $count';
@@ -97,7 +98,7 @@ $labels['today'] = 'Oggi';
 $labels['checkmail'] = 'Controlla nuovi messaggi';
 $labels['writenewmessage'] = 'Scrivi un nuovo messaggio';
 $labels['replytomessage'] = 'Rispondi al mittente';
-$labels['replytoallmessage'] = 'Rispondi a tutti o alla mailing list';
+$labels['replytoallmessage'] = 'Rispondi a l mittente e ai destinatari';
 $labels['replyall'] = 'Rispondi a tutti';
 $labels['replylist'] = 'Rispondi alla mailing list';
 $labels['forwardmessage'] = 'Inoltra il messaggio';
@@ -204,7 +205,33 @@ $labels['receiptnote'] = 'Nota: questa Ricevuta di ritorno attesta solamente che
 $labels['name'] = 'Nome visualizzato';
 $labels['firstname'] = 'Nome';
 $labels['surname'] = 'Cognome';
+$labels['middlename'] = 'Secondo nome';
+$labels['nameprefix'] = 'Prefisso';
+$labels['namesuffix'] = 'Suffisso';
+$labels['nickname'] = 'Soprannome';
+$labels['jobtitle'] = 'Titolo';
+$labels['department'] = 'Dipartimento';
+$labels['gender'] = 'Sesso';
+$labels['maidenname'] = 'Cognome da nubile';
 $labels['email'] = 'E-Mail';
+$labels['phone'] = 'Telefono';
+$labels['address'] = 'Indirizzo';
+$labels['street'] = 'Via';
+$labels['locality'] = 'Città';
+$labels['zipcode'] = 'CAP';
+$labels['region'] = 'Regione';
+$labels['country'] = 'Stato';
+$labels['birthday'] = 'Compleanno';
+$labels['anniversary'] = 'Anniversario';
+$labels['website'] = 'Sito web';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Note';
+$labels['male'] = 'maschio';
+$labels['female'] = 'femmina';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistente';
+$labels['spouse'] = 'Coniuge';
+$labels['addfield'] = 'Aggiungi campo...';
 $labels['addcontact'] = 'Aggiungi contatto alla rubrica';
 $labels['editcontact'] = 'Modifica contatto';
 $labels['contacts'] = 'Contatti';
@@ -214,6 +241,8 @@ $labels['cancel'] = 'Annulla';
 $labels['save'] = 'Salva';
 $labels['delete'] = 'Elimina';
 $labels['rename'] = 'Rinomina';
+$labels['addphoto'] = 'Aggiungi';
+$labels['replacephoto'] = 'Sostituisci';
 $labels['newcontact'] = 'Crea un nuovo contatto';
 $labels['deletecontact'] = 'Elimina i contatti selezionati';
 $labels['composeto'] = 'Invia email a';
@@ -330,6 +359,7 @@ $labels['specialfolders'] = 'Cartelle Speciali';
 $labels['properties'] = 'Proprietà';
 $labels['folderproperties'] = 'Proprietà cartella';
 $labels['parentfolder'] = 'Cartella padre';
+$labels['location'] = 'Ubicazione';
 $labels['info'] = 'Informazioni';
 $labels['getfoldersize'] = 'Click per la dimensione della cartella';
 $labels['changesubscription'] = 'Click per cambiare sottoscrizione';
@@ -360,3 +390,5 @@ $labels['korean'] = 'Coreano';
 $labels['chinese'] = 'Cinese';
 
 ?>
+
+
index dade2fe30a69ad5c887bcb1468e33c77f477910a..3e35787fdcebeb3a629e5ca78e3169140084fbbf 100644 (file)
@@ -14,7 +14,7 @@
 |         Yusef Maali <contact@yusefmaali.net>                          |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4386 2011-01-04 08:35:46Z yllar $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -30,7 +30,7 @@ $messages['errornoperm'] = 'Impossibile eseguire l\'operazione. Permesso negato'
 $messages['invalidrequest'] = 'Richiesta non valida! Nessun dato salvato.';
 $messages['nomessagesfound'] = 'Nessun messaggio trovato in questa cartella';
 $messages['loggedout'] = 'Sessione chiusa correttamente. Arrivederci!';
-$messages['mailboxempty'] = 'La cartella è vuota';
+$messages['mailboxempty'] = 'La casella è vuota';
 $messages['loading'] = 'Caricamento...';
 $messages['uploading'] = 'Caricamento file...';
 $messages['loadingdata'] = 'Caricamento dati...';
@@ -138,5 +138,8 @@ $messages['namecannotbeempty'] = 'Il nome non può essere vuoto';
 $messages['nametoolong'] = 'Nome troppo lungo';
 $messages['folderupdated'] = 'Cartella aggiornata correttamente';
 $messages['foldercreated'] = 'Cartella creata correttamente';
+$messages['invalidimageformat'] = 'Formato non valido';
 
 ?>
+
+
index 3fb72183acd095e54eb8a50904fee5e6b9243728..2a92335f69db2d0bf24d2ff90102df2f82253015 100644 (file)
@@ -14,9 +14,9 @@
 |         Takashi Takamatsu <taka717@gmail.com>                         |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4368 2010-12-27 08:51:22Z yllar $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
-EN-Revision: 4353
+EN-Revision: 4441
 
 */
 
@@ -41,11 +41,11 @@ $labels['to'] = '宛先';
 $labels['cc'] = 'コピー';
 $labels['bcc'] = 'Bcc';
 $labels['replyto'] = 'Reply-To (返信先)';
-$labels['followupto'] = 'Followup-To';
+$labels['followupto'] = 'Followup-To (ML の宛先)';
 $labels['date'] = '日付';
 $labels['size'] = '容量';
 $labels['priority'] = '優先度';
-$labels['organization'] = '所属';
+$labels['organization'] = '企業名';
 $labels['readstatus'] = '閲覧の状態';
 $labels['mailboxlist'] = 'フォルダー一覧';
 $labels['messagesfromto'] = '表示中のメール: $from ~ $to (全: $count 件)';
@@ -157,7 +157,6 @@ $labels['listmode'] = '一覧表示モード';
 $labels['folderactions'] = 'フォルダーの操作...';
 $labels['compact'] = 'コンパクト';
 $labels['empty'] = '空';
-$labels['purge'] = 'ごみ箱を空にする';
 $labels['quota'] = 'ディスク使用量';
 $labels['unknown'] = '不明';
 $labels['unlimited'] = '無制限';
@@ -206,18 +205,47 @@ $labels['receiptread'] = '開封確認 (表示済み)';
 $labels['yourmessage'] = 'これはあなたが送信したメールに対する開封確認です。';
 $labels['receiptnote'] = '注意: この開封確認はメールが受信者に表示されたことの通知です。受信者がメールを読んだこと、内容を理解したことを保証するものではありません。';
 $labels['name'] = '表示名';
-$labels['firstname'] = '名 (ファースト ネーム)';
-$labels['surname'] = '姓 (ラスト ネーム)';
+$labels['firstname'] = '名 (ファーストネーム)';
+$labels['surname'] = '姓 (ラストネーム)';
+$labels['middlename'] = 'ミドルネーム';
+$labels['nameprefix'] = '敬称 (名前の前)';
+$labels['namesuffix'] = '敬称 (名前の後)';
+$labels['nickname'] = 'ニックネーム';
+$labels['jobtitle'] = '肩書き';
+$labels['department'] = '部署名';
+$labels['gender'] = '性別';
+$labels['maidenname'] = '旧姓';
 $labels['email'] = 'メールアドレス';
+$labels['phone'] = '電話番号';
+$labels['address'] = '住所';
+$labels['street'] = '通り';
+$labels['locality'] = '都市';
+$labels['zipcode'] = '郵便番号';
+$labels['region'] = '州';
+$labels['country'] = '国';
+$labels['birthday'] = '誕生日';
+$labels['anniversary'] = '記念日';
+$labels['website'] = 'ウェブサイト';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = '男性';
+$labels['female'] = '女性';
+$labels['manager'] = '管理者';
+$labels['assistant'] = 'アシスタント';
+$labels['spouse'] = '配偶者';
+$labels['addfield'] = '項目の追加...';
 $labels['addcontact'] = '連絡先の新規追加';
 $labels['editcontact'] = '連絡先の編集';
 $labels['contacts'] = '連絡先';
 $labels['contactproperties'] = '連絡先のプロパティ';
+$labels['personalinfo'] = '個人情報';
 $labels['edit'] = '編集';
 $labels['cancel'] = 'キャンセル';
 $labels['save'] = '保存';
 $labels['delete'] = '削除';
 $labels['rename'] = '名前の変更';
+$labels['addphoto'] = '追加';
+$labels['replacephoto'] = '置換';
 $labels['newcontact'] = '連絡先の新規作成';
 $labels['deletecontact'] = '連絡先の削除';
 $labels['composeto'] = 'この連絡先へメールの送信';
index e07a65e9e8181f6a9100d49c3b1b0950a8208bf4..d3092b5e68213a1febc04a6f1aae0c4fe288035b 100644 (file)
@@ -14,9 +14,9 @@
 |         Takashi Takamatsu <taka717@gmail.com>                         |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4368 2010-12-27 08:51:22Z yllar $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
-//  EN-Revision: 4321
+//  EN-Revision: 4424
 
 */
 
@@ -140,5 +140,6 @@ $messages['namecannotbeempty'] = '名前は空にできません。';
 $messages['nametoolong'] = '名前が長すぎます。';
 $messages['folderupdated'] = 'フォルダーの更新に成功しました。';
 $messages['foldercreated'] = 'フォルダーの作成に成功しました。';
+$messages['invalidimageformat'] = '画像の形式が正しくありません。';
 
 ?>
index 75799a2921733da4a218afcceb7218f5af0d6205..67e048a8e0f297d32370d171671201157834fb83 100644 (file)
-<?php
-
-/*
-+-----------------------------------------------------------------------+
-| language/kh_KH/labels.inc                                             |
-|                                                                       |
-| Language file of the Roundcube Webmail client                         |
-| Copyright (C) 2008-2009, RoundQube Dev. - Switzerland                 |
-| Licensed under the GNU GPL                                            |
-|                                                                       |
-| Language: Khmer (ភាសាខ្មែរ)                                                                                                |
-| Resources: http://www.khmeros.info                                                                   |
-|                                                                                                                                              |
-+-----------------------------------------------------------------------+
-| Author:  Mr. KOSAL SOVAN VISAL - <sal@sovanvisal.com>                 |
-+-----------------------------------------------------------------------+
-
-*/
-
-$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'] = 'ចំលងមើលមិនឃើញ';
-$labels['replyto'] = 'ឆ្លើយតបទៅកាន់';
-$labels['date'] = 'ថ្អៃ ខែ ឆ្នាំ';
-$labels['size'] = 'ទំហំ';
-$labels['priority'] = 'អទិភាព';
-$labels['organization'] = 'អង្គភាព';
-$labels['reply-to'] = 'ឆ្លើយតបទៅកាន់';
-$labels['mailboxlist'] = 'ថតឯកសារ';
-$labels['messagesfromto'] = 'សារពី $from ដល់ $to នៃ $count';
-$labels['threadsfromto'] = 'សាររួមពី $from ដល់ $to នៃ $count';
-$labels['messagenrof'] = 'សារ $nr នៃ $count';
-$labels['copy'] = 'ចំលង';
-$labels['move'] = 'ផ្តេរ';
-$labels['moveto'] = 'ផ្តេរទៅ';
-$labels['download'] = 'ទាញយក';
-$labels['filename'] = 'ឈ្មោះឯកសារ';
-$labels['filesize'] = 'ទំហំឯកសារ';
-$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'] = 'បង្ហាញ Source Code នៃសារ';
-$labels['markmessages'] = 'ដៅសំគាល់សារ';
-$labels['markread'] = 'បានអានរួច';
-$labels['markunread'] = 'មិនទាន់បានអាន';
-$labels['markflagged'] = 'ដាក់ទង់ជាតិរួច';
-$labels['markunflagged'] = 'មិនទាន់មានទង់ជាតិ';
-$labels['messageactions'] = 'បញ្ជារផ្សេងទៀត';
-$labels['select'] = 'ជ្រើសរើស';
-$labels['all'] = 'ទាំងអស់';
-$labels['none'] = 'គ្មាន';
-$labels['currpage'] = 'ទំព័រនេះ';
-$labels['unread'] = 'មិនទាន់អាន';
-$labels['flagged'] = 'មានទង់ជាតិ';
-$labels['unanswered'] = 'មិនទាន់ឆ្លើយតប';
-$labels['deleted'] = 'បានលុបរួច';
-$labels['invert'] = 'បញ្ច្រស់';
-$labels['filter'] = 'ច្រោះសារ';
-$labels['list'] = 'តារាង';
-$labels['threads'] = 'បណ្តុំសារ';
-$labels['expand-all'] = 'បង្ហាញទាំងអស់';
-$labels['expand-unread'] = 'បង្ហាញសារមិនទាន់អាន';
-$labels['collapse-all'] = 'បង្រួមទាំងអស់';
-$labels['threaded'] = 'ផ្គុំរួច';
-$labels['autoexpand_threads'] = 'បង្ហាញបណ្តំសារ';
-$labels['do_expand'] = 'បណ្តុំទាំងអស់';
-$labels['expand_only_unread'] = 'តែសារដែលមិនទាន់អាន';
-$labels['fromto'] = 'អ្នកផ្ញើ / អ្នកទទួល';
-$labels['flag'] = 'ទង់ជាតិ';
-$labels['attachment'] = 'ភ្ជាប់ឯកសារ';
-$labels['nonesort'] = 'គ្មាន';
-$labels['sentdate'] = 'ថ្ងៃផ្ញើ';
-$labels['arrival'] = 'ថ្ងៃទទួល';
-$labels['asc'] = 'ពីតូចទៅធំ';
-$labels['desc'] = 'ពីធំមកតូច';
-$labels['listcolumns'] = 'តារាងជួរឈ';
-$labels['listsorting'] = 'តំរៀបជួរឈ';
-$labels['listorder'] = 'លំដាប់នៃការតំរៀប';
-$labels['listmode'] = 'បង្ហាញជាតារាង';
-$labels['folderactions'] = 'កំនត់សកម្មភាពលើថត';
-$labels['compact'] = 'បង្រួម';
-$labels['empty'] = 'ទទេរ';
-$labels['purge'] = 'បំផ្លាញ';
-$labels['quota'] = 'ទំហំឌីស ដែលប្រើប្រាស់';
-$labels['unknown'] = 'មិនស្គាល់';
-$labels['unlimited'] = 'គ្មានកំនត់';
-$labels['quicksearch'] = 'ស្វែងរករហាស់';
-$labels['resetsearch'] = 'Reset ការស្វែងរក';
-$labels['searchmod'] = 'កែសំរួល';
-$labels['msgtext'] = 'អត្ថន័យសារ';
-$labels['openinextwin'] = 'បើកក្នុង Windows ថ្មី';
-$labels['emlsave'] = 'ទាញយកជា (.eml)';
-$labels['compose'] = 'សរសេរសារថ្មី';
-$labels['editasnew'] = 'កែតំរូវអោយដូចថ្មី';
-$labels['savemessage'] = 'រក្សាទុកសារពង្រៀង';
-$labels['sendmessage'] = 'ផ្ញើសារនេះ';
-$labels['addattachment'] = 'ភ្ជាប់ឯកសារ';
-$labels['charset'] = 'ស្តង់ដាអក្សរ';
-$labels['editortype'] = 'ប្រភេទ Editor';
-$labels['returnreceipt'] = 'លិខិតបញ្ជាក់ការត្រឡប់';
-$labels['checkspelling'] = 'ត្រួតពិនិត្យអក្សរ';
-$labels['resumeediting'] = 'បន្តរការកែតំរូវ';
-$labels['revertto'] = 'ត្រលប់ទៅ';
-$labels['attachments'] = 'ឯកសារបានភ្ជាប់';
-$labels['upload'] = 'បញ្ជូន';
-$labels['close'] = 'បិទ';
-$labels['messageoptions'] = 'កំនត់សារ';
-$labels['low'] = 'ទាប';
-$labels['lowest'] = 'ទាបបំផុត';
-$labels['normal'] = 'ធម្មតា';
-$labels['high'] = 'ខ្ពស់';
-$labels['highest'] = 'ខ្ពស់បំផុត';
-$labels['nosubject'] = '(គ្មានកម្មវត្ថុ)';
-$labels['showimages'] = 'បង្ហាញរូបភាព';
-$labels['alwaysshow'] = 'បង្ហាញរូបភាពជានិច្ច';
-$labels['htmltoggle'] = 'HTML';
-$labels['plaintoggle'] = 'Plain Text';
-$labels['savesentmessagein'] = 'រក្សាសារដែលបានផ្ញើក្នុង';
-$labels['dontsave'] = 'កុំរក្សាទុក';
-$labels['maxuploadsize'] = 'ទំហំឯកសារធំបំផុតដែលអាចភ្ជាប់បានគឺ $size';
-$labels['addcc'] = 'បន្ថែម Cc';
-$labels['addbcc'] = 'បន្ថែម Bcc';
-$labels['addreplyto'] = 'បន្ថែម Reply-To';
-$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
-$labels['receiptread'] = 'Return Receipt (read)';
-$labels['yourmessage'] = 'This is a Return Receipt for your message';
-$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
-$labels['name'] = 'ឈ្មោះនឹងត្រូវបង្ហាញ';
-$labels['firstname'] = 'នាមត្រកូល';
-$labels['surname'] = 'នាមខ្លួន';
-$labels['email'] = 'អ៊ីមែល';
-$labels['addcontact'] = 'បន្ថែមអាសយដ្ឋានទាក់ទង';
-$labels['editcontact'] = 'កែប្រែអាសយដ្ឋានទាក់ទង';
-$labels['contacts'] = 'អាសយដ្ឋានទាក់ទងទាំងអស់';
-$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['newcontactgroup'] = 'បង្កើតក្រុមអាសយដ្ឋានទាក់ទង';
-$labels['groupactions'] = 'Actions សំរាប់ក្រុមអាសយដ្ឋានទាក់ទង';
-$labels['previouspage'] = 'បង្ហាញទំព័រមុន';
-$labels['firstpage'] = 'បង្ហាញទំព័រដំបូង';
-$labels['nextpage'] = 'បង្ហាញទំព័របន្ទាប់';
-$labels['lastpage'] = 'បង្ហាញទំព័រចុងក្រោយ';
-$labels['group'] = 'ក្រុម';
-$labels['groups'] = 'ក្រុមទាំងអស់';
-$labels['personaladrbook'] = 'អាសយដ្ឋានផ្ទាល់ខ្លួន';
-$labels['import'] = 'បញ្ចូល';
-$labels['importcontacts'] = 'បញ្ចូលអាសយដ្ឋានទាក់ទង';
-$labels['importfromfile'] = 'បញ្ចូលពី file:';
-$labels['importreplace'] = 'ផ្លាស់ប្តូរសៀវភៅអាសយដ្ឋានទាំងស្រុង';
-$labels['importtext'] = 'អ្នកអាច upload អាសយដ្ឋានទាក់ទងពីសៀវភៅដែលមានស្រាប់​ ។<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> data format.';
-$labels['done'] = 'រួចរាល់';
-$labels['settingsfor'] = 'Settings សំរាប់';
-$labels['preferences'] = 'Preferences';
-$labels['userpreferences'] = 'User preferences';
-$labels['editpreferences'] = 'កែប្រែ User preferences';
-$labels['identities'] = 'អត្តសាញ្ញាណ';
-$labels['manageidentities'] = 'គ្រប់គ្រងអត្តសាញ្ញាណ';
-$labels['newidentity'] = 'អត្តសាញ្ញាណថ្មី';
-$labels['newitem'] = 'Item ថ្មី';
-$labels['edititem'] = 'កែប្រែ Item';
-$labels['preferhtml'] = 'បង្ហាញ HTML';
-$labels['defaultcharset'] = 'Default Character Set';
-$labels['htmlmessage'] = 'សារប្រភេទ HTML';
-$labels['prettydate'] = 'Pretty dates';
-$labels['setdefault'] = 'Set default';
-$labels['autodetect'] = 'ស្វ័យប្រវត្តិ';
-$labels['language'] = 'ភាសា';
-$labels['timezone'] = 'ល្វែងម៉ោង';
-$labels['pagesize'] = 'ចំនួនសារក្នុងមួយទំព័រ';
-$labels['signature'] = 'ហត្ថលេខា';
-$labels['dstactive'] = 'Daylight saving time';
-$labels['htmleditor'] = 'បង្កើត HTML messages';
-$labels['htmlsignature'] = 'ហត្ថលេខាជាលក្ខណះ HTML';
-$labels['previewpane'] = 'បង្ហាញប្រអប់អានសារ';
-$labels['skin'] = 'Interface skin';
-$labels['logoutclear'] = 'សំអាតធុងសំរាមពេលឈប់ប្រើ';
-$labels['logoutcompact'] = 'បង្រួមប្រអប់សារពេលឈប់ប្រើ';
-$labels['uisettings'] = 'User Interface';
-$labels['serversettings'] = 'Server Settings';
-$labels['mailboxview'] = 'Mailbox View';
-$labels['mdnrequests'] = 'Sender notifications';
-$labels['askuser'] = 'ask the user';
-$labels['autosend'] = 'ផ្ញើស្វ័យប្រវត្តិ';
-$labels['ignore'] = 'ទុកចោល';
-$labels['readwhendeleted'] = 'Mark the message as read on delete';
-$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
-$labels['skipdeleted'] = 'កុំបង្ហាញសារដែលបានលុបចោល';
-$labels['deletealways'] = 'បើសិនជាផ្ទេទៅធុងសំរាមមិនបានសំរេច នោះលុបសារចោលទៅ';
-$labels['showremoteimages'] = 'បង្ហាញរូបដែលគេផ្ញើមក';
-$labels['fromknownsenders'] = 'ពីអ្នកផ្ញើដែលស្គាល់';
-$labels['always'] = 'គ្រប់ពេល';
-$labels['showinlineimages'] = 'បង្ហាញរូបភាពនៅក្រោមសារ';
-$labels['autosavedraft'] = 'រក្សារសារពង្រៀងស្វួ័យប្រវត្តិ';
-$labels['everynminutes'] = 'រៀងរាល់ $n នាទី';
-$labels['keepalive'] = 'ត្រួតពិនិត្យរកមើលសារថ្មីនៅ';
-$labels['never'] = 'មិនដែល';
-$labels['immediately'] = 'ភ្លាមៗ';
-$labels['messagesdisplaying'] = 'កំពុងបង្ហាញសារ';
-$labels['messagescomposition'] = 'កំពុងបង្កើតសារ';
-$labels['mimeparamfolding'] = 'ឈ្មោះឯកសារភ្ជាប់';
-$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
-$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
-$labels['2047folding'] = 'Full RFC 2047 (other)';
-$labels['force7bit'] = 'ប្រើការបំលែង MIME សំរាប់ 8-bit characters';
-$labels['advancedoptions'] = 'ការកំនត់ផ្សេងៗ';
-$labels['focusonnewmessage'] = 'ផ្តោតលើ Browser window សំរាប់សារថ្មី';
-$labels['checkallfolders'] = 'ត្រួតគ្រប់ថតសំរាប់សារថ្មី';
-$labels['displaynext'] = 'បន្ទាប់ពីសារលុប​ ឬផ្ទេរ បង្ហាញសារបន្ទាប់';
-$labels['mainoptions'] = 'ការកំនត់គោល';
-$labels['section'] = 'ផ្នែក';
-$labels['maintenance'] = 'ការថែរក្សា';
-$labels['newmessage'] = 'សារថ្មី';
-$labels['listoptions'] = 'កំនត់តារាង';
-$labels['signatureoptions'] = 'កំនត់ហត្ថលេខា';
-$labels['whenreplying'] = 'នៅពេលឆ្លើយតប';
-$labels['replytopposting'] = 'ចាប់ផ្តើម​សារ​ពី​លើ​សារ​ដើម';
-$labels['replybottomposting'] = 'ចាប់ផ្តើមសារពីក្រោមសារដើម';
-$labels['replyremovesignature'] = 'នៅ​ពេល​ឆ្មើយ​តប​លុប​ហត្ថលេខា​ចេញ​ពីសារ';
-$labels['autoaddsignature'] = 'ដាក់ហត្តលេខាដោយស្វ័យប្រវត្តិ';
-$labels['newmessageonly'] = 'សំរាប់សារថ្មីតែប៉ុណ្ណោះ';
-$labels['replyandforwardonly'] = 'ឆើ្លយតប​ និង ផ្ញើបន្តតែ​ប៉ុណ្ណោះ';
-$labels['replysignaturepos'] = 'នៅពេលឆើ្លយតប​ និង ផ្ញើបន្ត​ដាក់ហត្តលេខា';
-$labels['belowquote'] = 'ពីក្រោមសម្រង់ពាក្យ';
-$labels['abovequote'] = 'ពីលើសម្រង់ពាក្យ';
-$labels['insertsignature'] = 'បញ្ចូល Signature';
-$labels['previewpanemarkread'] = 'ដាក់សារ​ដែល​បាន​បង្ហាញ​​ជា​សារ​បាន​អាន​រួច';
-$labels['afternseconds'] = 'ក្រោយពី $n វិនាទី';
-$labels['folder'] = 'ថត';
-$labels['folders'] = 'ថតទាំងអស់';
-$labels['foldername'] = 'ឈ្មោះ Folder';
-$labels['subscribed'] = 'ភ្ជាប់ជាប្រចាំ';
-$labels['messagecount'] = 'សារ';
-$labels['create'] = 'បង្កើត';
-$labels['createfolder'] = 'បង្កើត Folder ថ្មី';
-$labels['managefolders'] = 'រៀបចំថត';
-$labels['specialfolders'] = 'ថតពិសេស';
-$labels['sortby'] = 'តំរៀបតាម';
-$labels['sortasc'] = 'តំរៀបពីតូចទៅធំ';
-$labels['sortdesc'] = 'តំរៀបពីធំទៅតូច';
-$labels['B'] = 'B';
-$labels['KB'] = 'KB';
-$labels['MB'] = 'MB';
-$labels['GB'] = 'GB';
-$labels['unicode'] = 'យូនីកូដ';
-$labels['english'] = 'អង់គ្លេស';
-$labels['westerneuropean'] = 'អឺរ៉ុបខាងលិច';
-$labels['easterneuropean'] = 'អីរ៉ុបខាងកើត';
-$labels['southeasterneuropean'] = 'អឺរ៉ុបភាគអាគ្នេយ៍';
-$labels['baltic'] = 'បាល់តិក';
-$labels['cyrillic'] = 'ស៊ីរីលិក';
-$labels['arabic'] = 'អារ៉ាប់';
-$labels['greek'] = 'ក្រិក';
-$labels['hebrew'] = 'ហ៊ីបប្រ៊ូ';
-$labels['turkish'] = 'ភាសាទកគី';
-$labels['nordic'] = 'ណរឌីក';
-$labels['thai'] = 'សៀម';
-$labels['celtic'] = 'សេលតិច';
-$labels['vietnamese'] = 'វៀតណាម';
-$labels['japanese'] = 'ជប៉ុន';
-$labels['korean'] = 'កូរ៉េ';
-$labels['chinese'] = 'ចិន';
-
-?>
+<?php\r
+\r
+/*\r
++-----------------------------------------------------------------------+\r
+| language/kh_KH/labels.inc                                             |\r
+|                                                                       |\r
+| Language file of the Roundcube Webmail client                         |\r
+| Copyright (C) 2008-2009, The Roundcube Dev Team                       |\r
+| Licensed under the GNU GPL                                            |\r
+|                                                                       |\r
+| Language: Khmer (ភាសាខ្មែរ)                                               |\r
+|                                                                       |\r
++-----------------------------------------------------------------------+\r
+| Author: Mr. SENGTHA CHAY - <sengtha@gmail.com>                        |\r
+| based on some words translated by Mr. KOSAL SOVAN VISAL               |\r
+|- <sal@sovanvisal.com>                                                 |\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'] = 'Cc';\r
+$labels['bcc'] = 'Bcc';\r
+$labels['replyto'] = 'ឆ្លើយតបទៅកាន់';\r
+$labels['date'] = 'កាលបរិច្ឆេត';\r
+$labels['size'] = 'ទំហំ';\r
+$labels['priority'] = 'អទិភាព';\r
+$labels['organization'] = 'អង្គភាព';\r
+$labels['readstatus'] = 'ស្ថានភាពនៃការអាន';\r
+$labels['mailboxlist'] = 'ថតសំបុត្រ';\r
+$labels['messagesfromto'] = 'សំបុត្រពី $from ទៅដល់ $to ក្នុងចំណោម $count សំបុត្រ';\r
+$labels['threadsfromto'] = 'បន្តុំសំបុត្រពី $from ទៅដល់ $to ក្នុងចំណោម $count សំបុត្រ';\r
+$labels['messagenrof'] = 'សំបុត្រ $nr នៃ $count';\r
+$labels['copy'] = 'ចំលង';\r
+$labels['move'] = 'ផ្ទេរ';\r
+$labels['moveto'] = 'ផ្ទេរទៅ';\r
+$labels['download'] = 'ទាញយក';\r
+$labels['filename'] = 'ឈ្មោះឯកសារ';\r
+$labels['filesize'] = 'ទំហំឯកសារ';\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['jan'] = 'មករា';\r
+$labels['feb'] = 'កុម្ភះ';\r
+$labels['mar'] = 'មិនា';\r
+$labels['apr'] = 'មេសា';\r
+$labels['may'] = 'ឧសភា';\r
+$labels['jun'] = 'មិថុនា';\r
+$labels['jul'] = 'កក្កដា';\r
+$labels['aug'] = 'សីហា';\r
+$labels['sep'] = 'កញ្ញា';\r
+$labels['oct'] = 'តុលា';\r
+$labels['nov'] = 'វិច្ឆិកា';\r
+$labels['dec'] = 'ធ្នូ';\r
+$labels['longjan'] = 'មករា';\r
+$labels['longfeb'] = 'កុម្ភះ';\r
+$labels['longmar'] = 'មិនា';\r
+$labels['longapr'] = 'មេសា';\r
+$labels['longmay'] = 'ឧសភា';\r
+$labels['longjun'] = 'មិថុនា';\r
+$labels['longjul'] = 'កក្កដា';\r
+$labels['longaug'] = 'សីហា';\r
+$labels['longsep'] = 'កញ្ញា';\r
+$labels['longoct'] = 'តុលា';\r
+$labels['longnov'] = 'វិច្ឆិកា';\r
+$labels['longdec'] = 'ធ្នូ';\r
+$labels['today'] = 'ថ្ងៃនេះ';\r
+$labels['checkmail'] = 'ពិនិត្យសំបុត្រថ្មី';\r
+$labels['writenewmessage'] = 'សរសេរសំបុត្រថ្មី';\r
+$labels['replytomessage'] = 'ឆ្លើយតបទៅអ្នកផ្ញើ';\r
+$labels['replytoallmessage'] = 'ឆ្លើយតបទៅ អ្នកទទួលទាំងអស់ និង ក្រុម ឬ អ្នកផ្ញើ';\r
+$labels['replyall'] = 'ឆ្លើយតបទៅទាំងអស់គ្នា';\r
+$labels['replylist'] = 'ឆ្លើយតបទៅក្រុម';\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'] = 'បង្ហាញ Source របស់សំបុត្រ';\r
+$labels['markmessages'] = 'កំណត់សំគាល់សំបុត្រ';\r
+$labels['markread'] = 'កំណត់ថាបានអានរួច';\r
+$labels['markunread'] = 'កំណត់ថាមិនទាន់បានអាន';\r
+$labels['markflagged'] = 'កំណត់សំគាល់ដោយផ្កាយ';\r
+$labels['markunflagged'] = 'លុបកំណត់សំគាល់ដោយផ្កាយ';\r
+$labels['messageactions'] = 'មុខងារផ្សេងទៀត';\r
+$labels['select'] = 'ជ្រើសរើស';\r
+$labels['all'] = 'ទាំងអស់';\r
+$labels['none'] = 'មិនជ្រើសរើស';\r
+$labels['currpage'] = 'ទំព័រនេះ';\r
+$labels['unread'] = 'មិនទាន់អាន';\r
+$labels['flagged'] = 'មានកំណត់សំគាល់ដោយផ្កាយ';\r
+$labels['unanswered'] = 'មិនទាន់ឆ្លើយតប';\r
+$labels['deleted'] = 'បានលុបរួច';\r
+$labels['invert'] = 'បញ្ច្រស់';\r
+$labels['filter'] = 'លក្ខខ័ណ្ឌ';\r
+$labels['list'] = 'តារាង';\r
+$labels['threads'] = 'បណ្តុំសំបុត្រ';\r
+$labels['expand-all'] = 'បង្ហាញសំបុត្រទាំងអស់';\r
+$labels['expand-unread'] = 'បង្ហាញសំបុត្រមិនទាន់អាន';\r
+$labels['collapse-all'] = 'បិទសំបុត្រទាំងអស់';\r
+$labels['threaded'] = 'បានបែកចែកជាក្រុមរួច';\r
+$labels['autoexpand_threads'] = 'បង្ហាញបណ្តុំសំបុត្រ';\r
+$labels['do_expand'] = 'បណ្តុំទាំងអស់';\r
+$labels['expand_only_unread'] = 'បង្ហាញតែសំបុត្រដែលមិនទាន់អាន';\r
+$labels['fromto'] = 'អ្នកផ្ញើ / អ្នកទទួល';\r
+$labels['flag'] = 'កំណត់សំគាល់ដោយផ្កាយ';\r
+$labels['attachment'] = 'ឯកសារភ្ជាប់';\r
+$labels['nonesort'] = 'មិនតំរៀប';\r
+$labels['sentdate'] = 'កាលបរិច្ឆេតផ្ញើ';\r
+$labels['arrival'] = 'កាលបរិច្ឆេតទទួល';\r
+$labels['asc'] = 'តាមលំដាប់ចុះ';\r
+$labels['desc'] = 'តាមលំដាប់ឡើង';\r
+$labels['listcolumns'] = 'តារាងជួរឈ';\r
+$labels['listsorting'] = 'តំរៀបជួរឈ';\r
+$labels['listorder'] = 'លំដាប់នៃការតំរៀប';\r
+$labels['listmode'] = 'បង្ហាញជាតារាង';\r
+$labels['folderactions'] = 'មុខងារថត';\r
+$labels['compact'] = 'បង្រួម';\r
+$labels['empty'] = 'ទទេរ';\r
+$labels['quota'] = 'ទំហំសំបុត្រទាំងអស់ដែលមាន';\r
+$labels['unknown'] = 'មិនស្គាល់';\r
+$labels['unlimited'] = 'គ្មានកំនត់';\r
+$labels['quicksearch'] = 'ស្វែងរក';\r
+$labels['resetsearch'] = 'កំណត់លក្ខខ័ណ្ឌស្វែងរកជាថ្មី';\r
+$labels['searchmod'] = 'កែសំរួលលក្ខខ័ណ្ឌស្វែងរក';\r
+$labels['msgtext'] = 'សំបុត្រទាំងមូល';\r
+$labels['openinextwin'] = 'បើកក្នុងវីនដូវថ្មី';\r
+$labels['emlsave'] = 'រក្សាទុកទិន្នន័យជាឯកសារប្រភេទ (.eml)';\r
+$labels['compose'] = 'សរសេរសំបុត្រថ្មី';\r
+$labels['editasnew'] = 'កែហើយរក្សាទុកដូចជាសំបុត្រថ្មី';\r
+$labels['savemessage'] = 'រក្សាទុកសំបុត្រពង្រៀង';\r
+$labels['sendmessage'] = 'ផ្ញើសំបុត្រនេះ';\r
+$labels['addattachment'] = 'ឯកសារភ្ជាប់';\r
+$labels['charset'] = 'ប្រភេទអក្សរ';\r
+$labels['editortype'] = 'ប្រភេទ Editor';\r
+$labels['returnreceipt'] = 'អត្ថបទបញ្ជាក់ពីការត្រឡប់';\r
+$labels['dsn'] = 'ប្រាប់អំពីស្ថានភាពផ្ញើ';\r
+$labels['editidents'] = 'ផ្លាស់ប្តូរអត្តសញ្ញាណ';\r
+$labels['checkspelling'] = 'ពិនិត្យអក្ខរាវិរុទ្ធ';\r
+$labels['resumeediting'] = 'បន្តរការកែតំរូវ';\r
+$labels['revertto'] = 'ត្រលប់ទៅ';\r
+$labels['attachments'] = 'ឯកសារភ្ជាប់';\r
+$labels['upload'] = 'ភ្ជាប់ឯកសារ';\r
+$labels['close'] = 'បិទ';\r
+$labels['messageoptions'] = 'កំណត់ជំរើសរបស់សំបុត្រ';\r
+$labels['low'] = 'ទាប';\r
+$labels['lowest'] = 'ទាបបំផុត';\r
+$labels['normal'] = 'ធម្មតា';\r
+$labels['high'] = 'ខ្ពស់';\r
+$labels['highest'] = 'ខ្ពស់បំផុត';\r
+$labels['nosubject'] = '(គ្មានចំណងជើង)';\r
+$labels['showimages'] = 'បង្ហាញរូបភាព';\r
+$labels['alwaysshow'] = 'បង្ហាញជានិច្ចរាល់រូបភាពបញ្ជូនពី $sender';\r
+$labels['htmltoggle'] = 'អត្ថបទ HTML';\r
+$labels['plaintoggle'] = 'អត្ថបទធម្មតា';\r
+$labels['savesentmessagein'] = 'រក្សាសំបុត្រដែលបានផ្ញើក្នុង';\r
+$labels['dontsave'] = 'មិនរក្សាទុក';\r
+$labels['maxuploadsize'] = 'ទំហំឯកសារធំបំផុតដែលអាចភ្ជាប់បានគឺ $size';\r
+$labels['addcc'] = 'បន្ថែម Cc';\r
+$labels['addbcc'] = 'បន្ថែម Bcc';\r
+$labels['addreplyto'] = 'បន្ថែម Reply-To';\r
+$labels['addfollowupto'] = 'បន្ថែម Followup-To';\r
+$labels['mdnrequest'] = 'ម្ចាស់សំបុត្រស្នើសុំអោយប្រាប់នៅពេលសំបុត្រនេះត្រូវបានគេអាន។ តើអ្នកចង់ប្រាប់ដែរឬទេ?';\r
+$labels['receiptread'] = 'អត្ថបទផ្ញើត្រលប់ (បានអាន)';\r
+$labels['yourmessage'] = 'នេះគឺជាអត្ថបទផ្ញើត្រលប់សំរាប់សំបុត្ររបស់លោកអ្នក។';\r
+$labels['receiptnote'] = 'កំណត់សំគាល់: អត្ថបទផ្ញើត្រលប់នេះគ្រាន់តែបញ្ជាក់ថា សំបុត្ររបស់លោកអ្នកត្រូវបានបង្ហាញនៅឯកុំព្យូទ័ររបស់អ្នកទទួល។ គេមិនអាចធានាថាអ្នកទទួលបានមើលឬយល់សំបុត្ររបស់លោកអ្នកឡើយ។';\r
+$labels['name'] = 'ឈ្មោះសំរាប់បង្ហាញ';\r
+$labels['firstname'] = 'នាមត្រកូល';\r
+$labels['surname'] = 'នាមខ្លួន';\r
+$labels['middlename'] = 'ឈ្មោះកណ្តាល';\r
+$labels['nameprefix'] = 'ពាក្យពីមុខឈ្មោះ';\r
+$labels['namesuffix'] = 'ពាក្យពីក្រោយឈ្មោះ';\r
+$labels['nickname'] = 'ឈ្មោះហៅក្រៅ';\r
+$labels['jobtitle'] = 'ឈ្មោះការងារ';\r
+$labels['department'] = 'នាយកដ្ឋាន';\r
+$labels['gender'] = 'ភេទ';\r
+$labels['maidenname'] = 'ឈ្មោះពីកំណើត';\r
+$labels['email'] = 'អ៊ីមែល';\r
+$labels['phone'] = 'ទូរស័ព្ទ';\r
+$labels['address'] = 'អាសយដ្ឋាន';\r
+$labels['street'] = 'ផ្លូវ';\r
+$labels['locality'] = 'ទីក្រុង';\r
+$labels['zipcode'] = 'លេខប៉ុស្តិ៍';\r
+$labels['region'] = 'តំបន់';\r
+$labels['country'] = 'ប្រទេស';\r
+$labels['birthday'] = 'ថ្ងៃខួបកំណើត';\r
+$labels['anniversary'] = 'ខួប';\r
+$labels['website'] = 'គេហទំព័រ';\r
+$labels['instantmessenger'] = 'IM';\r
+$labels['notes'] = 'កំណត់ហេតុ';\r
+$labels['male'] = 'ប្រុស';\r
+$labels['female'] = 'ស្រី';\r
+$labels['manager'] = 'នាយក';\r
+$labels['assistant'] = 'ការិនី';\r
+$labels['spouse'] = 'គ្រួសារ';\r
+$labels['addfield'] = 'បន្ថែម';\r
+$labels['addcontact'] = 'បន្ថែមអាសយដ្ឋានទាក់ទង';\r
+$labels['editcontact'] = 'កែប្រែអាសយដ្ឋានទាក់ទង';\r
+$labels['contacts'] = 'អាសយដ្ឋានទាក់ទងទាំងអស់';\r
+$labels['contactproperties'] = 'ព័ត៌មានអំពីទំនាក់ទំនង';\r
+$labels['personalinfo'] = 'ព័ត៌មានផ្ទាល់ខ្លួន';\r
+$labels['edit'] = 'កែតំរូវ';\r
+$labels['cancel'] = 'លះបង់';\r
+$labels['save'] = 'រក្សាទុក';\r
+$labels['delete'] = 'លុបចោល';\r
+$labels['rename'] = 'ប្តូរឈ្មោះ';\r
+$labels['addphoto'] = 'បន្ថែមរូបថត';\r
+$labels['replacephoto'] = 'លុបរូបថត';\r
+$labels['newcontact'] = 'បង្កើតអាសយដ្ឋានទាក់ទងថ្មី';\r
+$labels['deletecontact'] = 'លុបអាសយដ្ឋានទាក់ទងដែលបានជ្រើសរើស';\r
+$labels['composeto'] = 'ផ្ញើសំបុត្រទៅ';\r
+$labels['contactsfromto'] = 'អាសយដ្ឋានទាក់ទង $from ដល់ $to នៃ $count';\r
+$labels['print'] = 'បោះពុម្ភ';\r
+$labels['export'] = 'ទាញនិងរក្សាទុក';\r
+$labels['exportvcards'] = 'ទាញនិងរក្សាទុកអាសយដ្ឋានជាប្រភេទ vCard';\r
+$labels['newcontactgroup'] = 'បង្កើតក្រុមអាសយដ្ឋានថ្មី';\r
+$labels['groupactions'] = 'មុខងារក្រុមអាសយដ្ឋាន';\r
+$labels['previouspage'] = 'ទំព័រមុន';\r
+$labels['firstpage'] = 'ទំព័រដំបូង';\r
+$labels['nextpage'] = 'ទំព័របន្ទាប់';\r
+$labels['lastpage'] = 'ទំព័រចុងក្រោយ';\r
+$labels['group'] = 'ក្រុម';\r
+$labels['groups'] = 'ក្រុម';\r
+$labels['personaladrbook'] = 'អាសយដ្ឋានផ្ទាល់ខ្លួន';\r
+$labels['import'] = 'បញ្ចូល';\r
+$labels['importcontacts'] = 'បញ្ចូលអាសយដ្ឋាន';\r
+$labels['importfromfile'] = 'បញ្ចូលពី ឯកសារ';\r
+$labels['importreplace'] = 'ផ្លាស់ប្តូរអាសយដ្ឋានទាំងអស់';\r
+$labels['importtext'] = 'អ្នកអាចបញ្ចូលអាសយដ្ឋានទាក់ទងពីទិន្នន័យដែលមានស្រាប់​ ។<br/>បច្ចុប្បន្នលោកអ្នកអាចបញ្ជូលទិន្នន័យអាសយដ្ឋានពី ឯកសារប្រភេទ <a href="http://en.wikipedia.org/wiki/VCard">vCard</a>។';\r
+$labels['done'] = 'ចប់រួចរាល់';\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['preferhtml'] = 'បង្ហាញជា HTML';\r
+$labels['defaultcharset'] = 'លេខកូតអក្សរមានស្រាប់';\r
+$labels['htmlmessage'] = 'សំបុត្រប្រភេទ HTML';\r
+$labels['prettydate'] = 'កាលបរិច្ឆេតងាយស្រួលមើល';\r
+$labels['setdefault'] = 'កំណត់ទុក';\r
+$labels['autodetect'] = 'ស្វ័យប្រវត្តិ';\r
+$labels['language'] = 'ភាសា';\r
+$labels['timezone'] = 'ម៉ោង';\r
+$labels['pagesize'] = 'ចំនួនសំបុត្រក្នុងមួយទំព័រ';\r
+$labels['signature'] = 'ហត្ថលេខា';\r
+$labels['dstactive'] = 'ម៉ោងវស្សានរដូវ';\r
+$labels['htmleditor'] = 'សរសេរសំបុត្រតាមបែប HTML';\r
+$labels['htmlonreply'] = 'ឆ្លើយតបសំបុត្រតាមបែប HTML';\r
+$labels['htmlsignature'] = 'ហត្ថលេខាតាមបែប HTML';\r
+$labels['previewpane'] = 'បង្ហាញប្រអប់សំរាប់មើលសំបុត្រ';\r
+$labels['skin'] = 'ការរចនាទំព័រ';\r
+$labels['logoutclear'] = 'សំអាតធុងសំរាមពេលពិនិត្យចេញ';\r
+$labels['logoutcompact'] = 'បង្រួមប្រអប់សំបុត្រពេលពិនិត្យចេញ';\r
+$labels['uisettings'] = 'ការរចនា';\r
+$labels['serversettings'] = 'ការកំណត់ម៉ាស៊ីនមេ';\r
+$labels['mailboxview'] = 'មើលប្រអប់សំបុត្រ';\r
+$labels['mdnrequests'] = 'ប្រាប់អ្នកផ្ញើ';\r
+$labels['askuser'] = 'សួរអ្នកប្រើ';\r
+$labels['autosend'] = 'ផ្ញើស្វ័យប្រវត្តិ';\r
+$labels['ignore'] = 'ទុកចោល';\r
+$labels['readwhendeleted'] = 'កំណត់សំបុត្រថាបានអាន នៅពេលលុបសំបុត្រនោះ';\r
+$labels['flagfordeletion'] = 'កំណត់សញ្ញាផ្កាយអោយសំបុត្រថាបានលុប ដោយមិនចាំបាច់លុបជាក់ស្តែង';\r
+$labels['skipdeleted'] = 'មិនបង្ហាញសំបុត្រដែលបានលុប';\r
+$labels['deletealways'] = 'លុបសំបុត្រចោល ប្រសិនជាមិនអាចផ្ទេសំបុត្រនោះទៅធុងសំរាមបាន';\r
+$labels['showremoteimages'] = 'បង្ហាញរូបភាពដែលគេផ្ញើមក';\r
+$labels['fromknownsenders'] = 'ពីអ្នកផ្ញើដែលស្គាល់';\r
+$labels['always'] = 'គ្រប់ពេល';\r
+$labels['showinlineimages'] = 'បង្ហាញរូបភាពនៅក្រោមអត្ថបទសំបុត្រ';\r
+$labels['autosavedraft'] = 'រក្សាទុកសំបុត្រពង្រៀងដោយស្វ័យប្រវត្តិ';\r
+$labels['everynminutes'] = 'រៀងរាល់ $n នាទី';\r
+$labels['keepalive'] = 'ត្រួតពិនិត្យរកមើលសំបុត្រថ្មីនៅ';\r
+$labels['never'] = 'មិនដែល';\r
+$labels['immediately'] = 'ភ្លាមៗ';\r
+$labels['messagesdisplaying'] = 'កំពុងបង្ហាញសំបុត្រ';\r
+$labels['messagescomposition'] = 'កំពុងសរសេរសំបុត្រ';\r
+$labels['mimeparamfolding'] = 'ឈ្មោះឯកសារភ្ជាប់';\r
+$labels['2231folding'] = 'RFC 2231 ពេញ (Thunderbird)';\r
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';\r
+$labels['2047folding'] = 'RFC 2047 ពេញ(other)';\r
+$labels['force7bit'] = 'ប្រើ MIME សំរាប់អក្សរទំហំ 8-bit';\r
+$labels['advancedoptions'] = 'ការកំណត់ពឹស្តារ';\r
+$labels['focusonnewmessage'] = 'ផ្តោតលើ វីនដូវដែលកំពុងសរសេរសំបុត្រថ្មី';\r
+$labels['checkallfolders'] = 'ពិនិត្យសំបុត្រថ្មីនៅគ្រប់ថតទាំងអស់';\r
+$labels['displaynext'] = 'បន្ទាប់ពីសំបុត្រត្រូវបានលុប​ឬផ្ទេរ បង្ហាញសំបុត្របន្ទាប់';\r
+$labels['mainoptions'] = 'ជំរើសដែលជាគោល';\r
+$labels['section'] = 'ផ្នែក';\r
+$labels['maintenance'] = 'ការថែរក្សា';\r
+$labels['newmessage'] = 'សំបុត្រថ្មី';\r
+$labels['listoptions'] = 'កំណត់តារាង';\r
+$labels['signatureoptions'] = 'កំណត់ហត្ថលេខា';\r
+$labels['whenreplying'] = 'នៅពេលកំពុងឆ្លើយតប';\r
+$labels['replytopposting'] = 'ចាប់ផ្តើម​សរសេរ​ពី​លើ​សំបុត្រ​ដើម';\r
+$labels['replybottomposting'] = 'ចាប់ផ្តើមសរសេរពីក្រោមសំបុត្រដើម';\r
+$labels['replyremovesignature'] = 'នៅ​ពេល​ឆ្លើយ​តប​លុប​ហត្ថលេខា​ចេញ​ពីសំបុត្រ';\r
+$labels['autoaddsignature'] = 'បញ្ចូលហត្តលេខាដោយស្វ័យប្រវត្តិ';\r
+$labels['newmessageonly'] = 'សំរាប់សំបុត្រថ្មីតែប៉ុណ្ណោះ';\r
+$labels['replyandforwardonly'] = 'សំរាប់ឆើ្លយតប​និងផ្ញើបន្តតែ​ប៉ុណ្ណោះ';\r
+$labels['replysignaturepos'] = 'បញ្ចូលហត្តលេខានៅពេលឆើ្លយតប​និងផ្ញើបន្ត​';\r
+$labels['belowquote'] = 'ពីក្រោមសម្រង់អត្ថបទ';\r
+$labels['abovequote'] = 'ពីលើសម្រង់អត្ថបទ';\r
+$labels['insertsignature'] = 'បញ្ចូលហត្តលេខា';\r
+$labels['previewpanemarkread'] = 'កំណត់សំបុត្រ​ដែល​បាន​បង្ហាញ​​ជា​សំបុត្របាន​អាន​រួច';\r
+$labels['afternseconds'] = 'ក្រោយពី $n វិនាទី';\r
+$labels['reqmdn'] = 'ក្រោយពី $n វិនាទី';\r
+$labels['reqdsn'] = 'ក្រោយពី $n វិនាទី';\r
+$labels['replysamefolder'] = 'ក្រោយពី $n វិនាទី';\r
+$labels['folder'] = 'ថត';\r
+$labels['folders'] = 'ថតទាំងអស់';\r
+$labels['foldername'] = 'ឈ្មោះថត';\r
+$labels['subscribed'] = 'កំណត់យកមកប្រើ';\r
+$labels['messagecount'] = 'សំបុត្រ';\r
+$labels['create'] = 'បង្កើត';\r
+$labels['createfolder'] = 'បង្កើតថតថ្មី';\r
+$labels['managefolders'] = 'រៀបចំថត';\r
+$labels['specialfolders'] = 'ថតពិសេស';\r
+$labels['properties'] = 'ព័ត៌មាន';\r
+$labels['folderproperties'] = 'ព័ត៌មានអំពីថត';\r
+$labels['parentfolder'] = 'ថតមេ';\r
+$labels['location'] = 'ទីកន្លែង';\r
+$labels['info'] = 'ព័ត៌មាន';\r
+$labels['getfoldersize'] = 'ទំហំថត';\r
+$labels['changesubscription'] = 'ផ្លាស់ប្តូរការជាវ';\r
+$labels['sortby'] = 'តំរៀបតាម';\r
+$labels['sortasc'] = 'តំរៀបតាមលំដាប់ចុះ';\r
+$labels['sortdesc'] = 'តំរៀបតាមលំដាប់ឡើង';\r
+$labels['B'] = 'B';\r
+$labels['KB'] = 'KB';\r
+$labels['MB'] = 'MB';\r
+$labels['GB'] = 'GB';\r
+$labels['unicode'] = 'យូនីកូដ';\r
+$labels['english'] = 'ភាសាអង់គ្លេស';\r
+$labels['westerneuropean'] = 'អឺរ៉ុបខាងលិច';\r
+$labels['easterneuropean'] = 'អីរ៉ុបខាងកើត';\r
+$labels['southeasterneuropean'] = 'អឺរ៉ុបភាគអាគ្នេយ៍';\r
+$labels['baltic'] = 'ភាសាបាល់តិក';\r
+$labels['cyrillic'] = 'ភាសាស៊ីរីលិក';\r
+$labels['arabic'] = 'ភាសាអារ៉ាប់';\r
+$labels['greek'] = 'ភាសាក្រិក';\r
+$labels['hebrew'] = 'ភាសាហ៊ីបប្រ៊ូ';\r
+$labels['turkish'] = 'ភាសាទួរគី';\r
+$labels['nordic'] = 'ភាសាណរឌីក';\r
+$labels['thai'] = 'ភាសាថៃ';\r
+$labels['celtic'] = 'ភាសាសេលតិច';\r
+$labels['vietnamese'] = 'ភាសាវៀតណាម';\r
+$labels['japanese'] = 'ភាសាជប៉ុន';\r
+$labels['korean'] = 'ភាសាកូរ៉េ';\r
+$labels['chinese'] = 'ភាសាចិន';\r
+\r
+?>\r
index 9d67d9dc0d88cedeebd75f9da6c7f8b45dc4062a..b135fc571ac4b8212114a1594fb015501f3edb6b 100644 (file)
-<?php
-
-/*
-+-----------------------------------------------------------------------+
-| language/kh_KH/messages.inc                                           |
-|                                                                       |
-| Language file of the Roundcube Webmail client                         |
-| Copyright (C) 2008-2009, RoundQube Dev. - Switzerland                 |
-| Licensed under the GNU GPL                                            |
-|                                                                       |
-| Language: Khmer (ភាសាខ្មែរ)                                                    |
-| Resources: http://www.khmeros.info                                    |
-|                                                                                                                                              |
-+-----------------------------------------------------------------------+
-| Author:  Mr. KOSAL SOVAN VISAL - <sal@sovanvisal.com>                 |
-+-----------------------------------------------------------------------+
-
-*/
-
-$messages = array();
-$messages['loginfailed'] = 'ការចូលប្រើមិនបានសំរេច';
-$messages['cookiesdisabled'] = 'Browser នេះមិនទទួលយក Cookies ទេ';
-$messages['sessionerror'] = 'ពេលវេលាប្រើប្រាស់របស់អ្នកមិនត្រឹមត្រូវ ឬ ផុតកំណត់';
-$messages['imaperror'] = 'ការភ្ជាប់ទៅកាន់ IMAP Server មិនបានសំរេច';
-$messages['servererror'] = 'Server មានបញ្ហា';
-$messages['invalidrequest'] = 'ការទាមទាមិនត្រឹមត្រូវ! គ្មានទិន្នន័យត្រូវបានថតទុកទេ';
-$messages['nomessagesfound'] = 'អត់មានសារក្នុងប្រអប់សំបុត្រនេះទេ';
-$messages['loggedout'] = 'អ្នកបានបញ្ឈប់ការប្រើប្រាស់ដោយជោគជ័យ ។ សូមអោយមានសំណាងល្អ!';
-$messages['mailboxempty'] = 'ប្រអប់សំបុត្រទទេ';
-$messages['loading'] = 'កំពុងធ្វើការ...';
-$messages['uploading'] = 'បញ្ជូនឯកសារ...';
-$messages['loadingdata'] = 'កំពុងបើកឯកសារ...';
-$messages['checkingmail'] = 'រកមើលសារថ្មី៝ៗ...';
-$messages['sendingmessage'] = 'ផ្ញើសារ...';
-$messages['messagesent'] = 'សារត្រូវបានបញ្ជូនដោយជោគជ័យ!';
-$messages['savingmessage'] = 'កំពុងរក្សាសារទុក...';
-$messages['messagesaved'] = 'សារត្រូវបានរក្សាទុកក្នុងថត Drafts';
-$messages['successfullysaved'] = 'រក្សាទុកដោយជោគជ័យ';
-$messages['addedsuccessfully'] = 'អាស័យដ្ឋានត្រូវបានរក្សាទុកដោយជោគជ័យ';
-$messages['contactexists'] = 'ពត៌មានទាក់ទងដែលមានអ៊ីមែលនេះ មានក្នុងសៀវភៅអាសយដ្ឋានរួចហើយ';
-$messages['blockedimages'] = 'ដើម្បីការពារភាពឯកជនរបស់អ្នក រូបភាពដែលមានក្នុងសារនេះត្រូវបានបិទ ។';
-$messages['encryptedmessage'] = 'នេះគឺជាសារដែលបានចាក់សោរសំងាត់ ហើយមិនអាចបង្ហាញបានទេ ។ សូមអភ័យទោស!';
-$messages['nocontactsfound'] = 'គ្មានពត៌មានទំនាក់ទំនង';
-$messages['contactnotfound'] = 'រកពត៌មានទំនាក់ទំនងដែលអ្នកស្វែងរកនោះ មិនឃើញទេ';
-$messages['sendingfailed'] = 'ការផ្ញើសារមិនបានសំរេច';
-$messages['senttooquickly'] = 'សូមរងចាំ $sec វិនាទី មុននឹងផ្ញើសារនេះ';
-$messages['errorsavingsent'] = 'មានបញ្ហាកើតឡើងក្នុងពេលរក្សាទុកសារដែលបានផ្ញើរួច';
-$messages['errorsaving'] = 'មានបញ្ហាកើតឡើងក្នងពេលរក្សាទុក';
-$messages['errormoving'] = 'មិនអាចផ្ទេរសារបានទេ';
-$messages['errorcopying'] = 'មិនអាចចំលងសារបានទេ';
-$messages['errordeleting'] = 'មិនអាចលុបសារចោលបានទេ';
-$messages['errormarking'] = 'មិនអាចគូសចំណាំលើសារបានទេ';
-$messages['deletecontactconfirm'] = 'តើអ្នកពិតជាចង់លុបពត៌មានទំនាក់ទំនងនេះមែនទេ?';
-$messages['deletemessagesconfirm'] = 'តើអ្នកពិតជាចង់លុបសារនេះមែនទេ?';
-$messages['deletefolderconfirm'] = 'តើអ្នកពិតជាចង់លុបថតនេះមែនទេ?';
-$messages['purgefolderconfirm'] = 'តើអ្នកពិតជាចង់លុបសារទាំងអស់មែនទេ?';
-$messages['folderdeleting'] = 'កំពុងលុបថតសំរាប់ទុកឯកសារ...';
-$messages['foldermoving'] = 'កំពុងផ្តេរថតសំរាប់ទុកឯកសារ...';
-$messages['formincomplete'] = 'ទំរង់នេះមិនទាន់ពេញលេញនៅឡើយទេ';
-$messages['noemailwarning'] = 'សូមវាយបញ្ចូលអ៊ីមែលរបស់អ្នក';
-$messages['nonamewarning'] = 'សូមបញ្ចូលឈ្មោះរបស់អ្នក';
-$messages['nopagesizewarning'] = 'សូមកំនត់ទំហំទំព័រ';
-$messages['nosenderwarning'] = 'សូមបញ្ចូលអ៊ីមែលអ្នកផ្ញើ';
-$messages['norecipientwarning'] = 'សូមបញ្ចូលយ៉ាងហោចណាស់នរណាម្នាក់ដែលត្រូវផ្ញើទៅ';
-$messages['nosubjectwarning'] = 'គ្មានកម្មវត្ថុ តើអ្នកចង់ដាក់កម្មវត្ថុទេ?';
-$messages['nobodywarning'] = 'ផ្ញើសារនេះដោយគ្មានអត្ថន័យអ្វីសោះ?';
-$messages['notsentwarning'] = 'សារនេះមិនទាន់បានផ្ញើ ។ តើអ្នកចង់លុបចោលទេ?';
-$messages['noldapserver'] = 'សូមជ្រើសរើស LDAP Server ដើម្បីស្វែងរក';
-$messages['nocontactsreturned'] = 'រកមិនឃើញពត៌មានទំនាក់ទំនងណាមួយទេ';
-$messages['nosearchname'] = 'សូមបញ្ចូលឈ្មោះ ឬ អាសយដ្ឋានអ៊ីមែល';
-$messages['notuploadedwarning'] = 'ឯកសារទាំងអស់មិនទាន់បញ្ជូនរួចរាល់ទេ ។ សូមមេត្តារងចាំបន្តិច ឬបោះបង់ការបញ្ជុននេះ!';
-$messages['searchsuccessful'] = 'រកឃើញសារចំនួន $nr ';
-$messages['searchnomatch'] = 'រកមិនឃើញអ្វីទាំងអស់';
-$messages['searching'] = 'កំពុកស្វែងរក...';
-$messages['checking'] = 'កំពុងត្រួតពិនិត្យ...';
-$messages['nospellerrors'] = 'គ្មានកំហុសអក្ខរាវិរុទ្ធទេ';
-$messages['folderdeleted'] = 'លុប Folder បានជោគជ័យ';
-$messages['deletedsuccessfully'] = 'លុបបានដោយជោគជ័យ';
-$messages['converting'] = 'កំពុងលុបការតុបតែងចោល...';
-$messages['messageopenerror'] = 'មិនអាចទាញយកសារពី Server បានទេ';
-$messages['fileuploaderror'] = 'ការបញ្ជូលឯកសារបរាជ័យ';
-$messages['filesizeerror'] = 'ទំហំឯកសារត្រូវបញ្ជូនលើសចំណុះ ទំហំធំបំផុតគឺ $size';
-$messages['copysuccess'] = 'បានចំលងអាសយដ្ឋានចំនួន $nr ដោយជោគជ័យ';
-$messages['copyerror'] = 'មិនអាចចំលងអាសយដ្ឋានណាមួយឡើយ';
-$messages['sourceisreadonly'] = 'ប្រភពនៃអាសយដ្ឋាននេះអាចបានត្រឹមតែអានប៉ុណ្ណោះ';
-$messages['errorsavingcontact'] = 'មិនអាចរក្សាអាសយដ្ឋានបានទេ';
-$messages['movingmessage'] = 'កំពុកផ្តេរសារ...';
-$messages['copyingmessage'] = 'កំពុងចំលងសារ...';
-$messages['receiptsent'] = 'ការបញ្ជូន read receipt បានសំរេច';
-$messages['errorsendingreceipt'] = 'មិនអាចបញ្ជុន receipt ទេ';
-$messages['nodeletelastidentity'] = 'អ្នកមិនអាចលុបអត្តសញ្ញាណនេះទេ ព្រោះវានៅសល់ចុងក្រោយគេ';
-$messages['forbiddencharacter'] = 'ឈ្មោះ Folder នេះមានអក្សរដែលត្រូវហាមឃាត់';
-$messages['selectimportfile'] = 'សូមជ្រើសរើសឯកសារដើម្បីផ្ញើ';
-$messages['addresswriterror'] = 'សៀវភៅអាសយដ្ឋាននោះមិនអាចសរសេរចូលបានទេ';
-$messages['contactaddedtogroup'] = 'បានដាក់ពត៌មានទំនាក់ទំនងចូលក្នុងក្រុមដោយជោគជ័យ';
-$messages['contactremovedfromgroup'] = 'បានលុបពត៌មានទំនាក់ទំនងចូលក្នុងក្រុមដោយជោគជ័យ';
-$messages['importwait'] = 'កំពុងទាញចូល សូមមេត្តារង់ចាំ...';
-$messages['importerror'] = 'ការទាញចូលមិនបានសំរេច! ឯកសារដែលជ្រើសរើសនោះមិនមែនជា vCard ត្រឹមត្រូវ ។';
-$messages['importconfirm'] = '<b>បានបញ្ចូលដោយជោគជ័យនូវពត៌មានទំនាក់ទំនង $inserted, ហើយពត៌មានដែលមានស្រាប់ត្រូវបានរំលងចោលដូចជា $skipped </b>:<p><em>$names</em></p>';
-$messages['opnotpermitted'] = 'ប្រតិ្តបត្តិការមិនត្រូវបានហាមឃាត់!';
-$messages['nofromaddress'] = 'ខ្វះអាសយដ្ឋានអ៊ីមែលក្នុងអត្តសញ្ណាណមួយនេះ';
-$messages['editorwarning'] = 'ប្តូរទៅទំរង់ Plain text អ្នកនឹងបាត់បង់ទំរង់ដែលអ្នកកំពុងប្រើនេះ។ អ្នកចង់ប្តូរទេ?';
-$messages['httpreceivedencrypterror'] = 'ការកំនត់លើប្រព័ន្ធដំណើរការមិនប្រកតី។ សូមទាក់ទងទៅកាន់អ្នកបច្ចេកទេសជាបន្ទាន់។ <br>សាររបស់អ្នកមិនអាចផ្ញើទេក្នុងពេលនេះ<br>';
-$messages['smtpconnerror'] = 'SMTP Error ($code): មិនអាចភ្ជាប់ទៅ Server';
-$messages['smtpautherror'] = 'SMTP Error ($code): ពត៌មានគនីយមិនត្រឹមត្រូវ';
-$messages['smtpfromerror'] = 'SMTP Error ($code): មិនអាចកំនត់អ្នកផ្ញើ "$from" ($msg)';
-$messages['smtptoerror'] = 'SMTP Error ($code): មិនអាចកំនត់អ្នកទទួល "$to" ($msg)';
-$messages['smtprecipientserror'] = 'SMTP Error: មិនអាចបំលែងបញ្ជីអ្នកទទួលបានទេ';
-$messages['smtperror'] = 'SMTP Error: $msg';
-$messages['emailformaterror'] = 'អាសយដ្ឋានអ៊ីមែលមិនត្រឹមត្រូវទេ: $email';
-$messages['toomanyrecipients'] = 'ចំនួនអ្នកទទួលច្រើនលើសកំនត់! សូមមេត្តាលុបចោលខ្លះ។';
-$messages['maxgroupmembersreached'] = 'ចំនួនក្រុមលើសកំនត់ហើយ ចំនួនច្រើនបំផុតគឺ $max';
-$messages['internalerror'] = 'មានបញ្ហាខាងក្នុងប្រព័ន្ធ ។ សូមព្យាយាមម្តងទៀត!';
-
-?>
+<?php\r
\r
+/*\r
++-----------------------------------------------------------------------+\r
+| language/kh_KH/messages.inc                                           |\r
+|                                                                       |\r
+| Language file of the Roundcube Webmail client                         |\r
+| Copyright (C) 2008-2009, The Roundcube Dev Team                       |\r
+| Licensed under the GNU GPL                                            |\r
+|                                                                       |\r
+| Language: Khmer (ភាសាខ្មែរ)                                               |\r
+|                                                                       |\r
++-----------------------------------------------------------------------+\r
+| Author: Mr. SENGTHA CHAY - <sengtha@gmail.com>                        |\r
+| based on some words translated by Mr. KOSAL SOVAN VISAL               |\r
+|- <sal@sovanvisal.com>                                                 |\r
++-----------------------------------------------------------------------+\r
\r
+*/\r
\r
+$messages = array();\r
+$messages['loginfailed'] = 'ការពិនិត្យចូលមិនបានសំរេច ព្រោះមានបញ្ហាកើតឡើង';\r
+$messages['cookiesdisabled'] = 'កម្មវិធីមើលគេហទំព័រនេះមិនទទួលយក Cookies';\r
+$messages['sessionerror'] = 'Session មិនត្រឹមត្រូវ ឬ ហួសកំណត់';\r
+$messages['imaperror'] = 'មិនអាចភ្ជាប់ទៅកាន់ម៉ាស៊ីន IMAP';\r
+$messages['servererror'] = 'មានបញ្ហានៅម៉ាស៊ីនមេ';\r
+$messages['servererrormsg'] = 'បញ្ហា: $msg';\r
+$messages['errorreadonly'] = 'មិនអាចប្រតិបត្តិបានពីព្រោះថតនេះត្រូវបានគេកំណត់សំរាប់តែមើល';\r
+$messages['errornoperm'] = 'មិនអាចប្រតិបត្តិបានពីព្រោះមិនមានសិទ្ទគ្រប់គ្រាន់';\r
+$messages['invalidrequest'] = 'មិនអាចរក្សាទុកទិន្នន័យបានពីព្រោះមានបញ្ហានៅពេលបញ្ជូនទិន្នន័យ';\r
+$messages['nomessagesfound'] = 'ពុំមានសំបុត្រក្នុងប្រអប់សំបុត្រនេះទេ';\r
+$messages['loggedout'] = 'អ្នកបានពិនិត្យចេញដោយជោគជ័យ ។';\r
+$messages['mailboxempty'] = 'ប្រអប់សំបុត្រទទេ';\r
+$messages['loading'] = 'កំពុងដំណើរការ...';\r
+$messages['uploading'] = 'កំពុងបញ្ជូនឯកសារ...';\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['senttooquickly'] = 'សូមរងចាំ $sec វិនាទី មុននឹងផ្ញើសំបុត្រនេះ';\r
+$messages['errorsavingsent'] = 'មានបញ្ហាកើតឡើងនៅពេលកំពុងរក្សាទុកសំបុត្រដែលបានផ្ញើរួច';\r
+$messages['errorsaving'] = 'មានបញ្ហាកើតឡើងនៅពេលកំពុងរក្សាសំបុត្រទុក';\r
+$messages['errormoving'] = 'មិនអាចផ្ទេរសំបុត្របាន';\r
+$messages['errorcopying'] = 'មិនអាចចំលងសំបុត្របាន';\r
+$messages['errordeleting'] = 'មិនអាចលុបសំបុត្រចោលបាន';\r
+$messages['errormarking'] = 'មិនអាចកំណត់ចំណាំលើសំបុត្របាន';\r
+$messages['deletecontactconfirm'] = 'តើលោកអ្នកពិតជាចង់លុបព័ត៌មានទំនាក់ទំនងនេះមែនទេ?';\r
+$messages['deletemessagesconfirm'] = 'តើលោកអ្នកពិតជាចង់លុបសំបុត្រនេះមែនទេ?';\r
+$messages['deletefolderconfirm'] = 'តើលោកអ្នកពិតជាចង់លុបថតនេះមែនទេ?';\r
+$messages['purgefolderconfirm'] = 'តើលោកអ្នកពិតជាចង់លុបសំបុត្រទាំងអស់នៅក្នុងថតនេះមែនទេ?';\r
+$messages['folderdeleting'] = 'កំពុងលុបថតសំរាប់ទុកឯកសារ...';\r
+$messages['foldermoving'] = 'កំពុងផ្ទេរថតសំរាប់ទុកឯកសារ...';\r
+$messages['foldersubscribing'] = 'កំពុងកំណត់ប្រើថតសំរាប់ទុកឯកសារ...';\r
+$messages['folderunsubscribing'] = 'កំពុងកំណត់មិនប្រើថតសំរាប់ទុកឯកសារ...';\r
+$messages['formincomplete'] = 'សូមបំពេញទិន្នន័យអោយបានគ្រប់';\r
+$messages['noemailwarning'] = 'អ៊ីមែលត្រឹមត្រូវ';\r
+$messages['nonamewarning'] = 'សូមសរសេរឈ្មោះរបស់អ្នក';\r
+$messages['nopagesizewarning'] = 'សូមកំណត់ទំហំទំព័រ';\r
+$messages['nosenderwarning'] = 'សូមសរសេរអ៊ីមែលរបស់អ្នកផ្ញើ';\r
+$messages['norecipientwarning'] = 'សូមសរសេរអ្នកទទួលយ៉ាងហោចណាស់ម្នាក់';\r
+$messages['nosubjectwarning'] = 'សំបុត្រគ្មានចំណងជើង តើអ្នកចង់សរសេរចំណងជើងនៅពេលនេះទេ?';\r
+$messages['nobodywarning'] = 'តើលោកអ្នកចង់ផ្ញើសំបុត្រដែលគ្មានតួអត្ថបទសំបុត្រទេ?';\r
+$messages['notsentwarning'] = 'សំបុត្រនេះមិនទាន់បានផ្ញើទេ ។ តើលោកអ្នកចង់លុបចោលទេ?';\r
+$messages['noldapserver'] = 'សូមកំណត់ម៉ាស៊ីន LDAP ដើម្បីស្វែងរក';\r
+$messages['nocontactsreturned'] = 'រកមិនឃើញពត៌មានទំនាក់ទំនងណាមួយទេ';\r
+$messages['nosearchname'] = 'សូមបំពេញឈ្មោះទំនាក់ទំនង ឬ អាសយដ្ឋានអ៊ីមែល';\r
+$messages['notuploadedwarning'] = 'ឯកសារទាំងអស់មិនទាន់បញ្ជូនភ្ជាប់រួចរាល់ទេ ។ មេត្តារងចាំបន្តិច ឬបោះបង់ការបញ្ជូននេះ!';\r
+$messages['searchsuccessful'] = 'រកឃើញសំបុត្រចំនួន $nr ';\r
+$messages['searchnomatch'] = 'រកមិនឃើញអ្វីទាំងអស់';\r
+$messages['searching'] = 'កំពុងស្វែងរក...';\r
+$messages['checking'] = 'កំពុងពិនិត្យរក...';\r
+$messages['nospellerrors'] = 'គ្មានកំហុសអក្ខរាវិរុទ្ធទេ';\r
+$messages['folderdeleted'] = 'លុបថតបានដោយជោគជ័យ';\r
+$messages['foldersubscribed'] = 'អាចកំណត់ប្រើថតបានដោយជោគជ័យ';\r
+$messages['folderunsubscribed'] = 'កំណត់លែងប្រើថតបានដោយជោគជ័យ';\r
+$messages['folderpurged'] = 'សំអាតថតបានដោយជោគជ័យ';\r
+$messages['folderexpunged'] = 'បង្រួមថតបានដោយជោគជ័យ';\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['copyingmessage'] = 'កំពុងចំលងសំបុត្រ...';\r
+$messages['deletingmessage'] = 'កំពុងលុបសំបុត្រ...';\r
+$messages['markingmessage'] = 'កំពុងកំណត់សំគាល់សំបុត្រ...';\r
+$messages['receiptsent'] = 'បានបញ្ជូន អត្ថបទបញ្ជាក់ថាបានអាន បានសំរេច';\r
+$messages['errorsendingreceipt'] = 'មិនអាចបញ្ជូន អត្ថបទបញ្ជាក់ថាបានអាន ទេ';\r
+$messages['nodeletelastidentity'] = 'លោកអ្នកមិនអាចលុបអត្តសញ្ញាណនេះទេ ព្រោះវានៅសល់ចុងក្រោយគេ';\r
+$messages['forbiddencharacter'] = 'ឈ្មោះថតនេះមានអក្សរដែលត្រូវហាមឃាត់';\r
+$messages['selectimportfile'] = 'សូមជ្រើសរើសឯកសារដើម្បីបញ្ជូនភ្ជាប់';\r
+$messages['addresswriterror'] = 'សៀវភៅអាសយដ្ឋាននោះមិនអាចសរសេរចូលបានទេ';\r
+$messages['contactaddedtogroup'] = 'បានដាក់ពត៌មានទំនាក់ទំនងចូលក្នុងក្រុមនេះដោយជោគជ័យ';\r
+$messages['contactremovedfromgroup'] = 'បានលុបពត៌មានទំនាក់ទំនងចេញពីក្រុមនេះដោយជោគជ័យ';\r
+$messages['importwait'] = 'សូមមេត្តារង់ចាំ កំពុងទាញទិន្នន័យចូល ...';\r
+$messages['importerror'] = 'ការទាញចូលមិនបានសំរេច! ឯកសារដែលជ្រើសរើសនោះមិនមែនជាប្រភេទឯកសារ vCard ទេ ។';\r
+$messages['importconfirm'] = '<b>ព័ត៌មានទំនាក់ទំនង $inserted បានបញ្ចូលដោយជោគជ័យ, ហើយបានរំលងចោលពត៌មានដែលមានស្រាប់ $skipped </b>:<p><em>$names</em></p>';\r
+$messages['opnotpermitted'] = 'ប្រតិ្តបត្តិការត្រូវបានគេហាមឃាត់!';\r
+$messages['nofromaddress'] = 'ខ្វះអាសយដ្ឋានអ៊ីមែលក្នុងអត្តសញ្ណាណមួយនេះ';\r
+$messages['editorwarning'] = 'ប្តូរទៅទំរង់អត្ថបទធម្មតា អាចធ្វើអោយបាត់បង់ការរចនាដែលមាន។ លោកអ្នកចង់ប្តូរទេ?';\r
+$messages['httpreceivedencrypterror'] = 'ប្រព័ន្ធដំណើរការមិនប្រកតី។ សូមទាក់ទងទៅកាន់អ្នកបច្ចេកទេសជាបន្ទាន់។ <br>សាររបស់អ្នកមិនអាចផ្ញើទេក្នុងពេលនេះ<br>';\r
+$messages['smtpconnerror'] = 'SMTP Error ($code): មិនអាចភ្ជាប់ទៅម៉ាស៊ីនមេ';\r
+$messages['smtpautherror'] = 'SMTP Error ($code): ព័ត៌មានគនីយមិនត្រឹមត្រូវ';\r
+$messages['smtpfromerror'] = 'SMTP Error ($code): មិនអាចកំនត់អ្នកផ្ញើ "$from" ($msg)';\r
+$messages['smtptoerror'] = 'SMTP Error ($code): មិនអាចកំនត់អ្នកទទួល "$to" ($msg)';\r
+$messages['smtprecipientserror'] = 'SMTP Error: មិនអាចបំលែងបញ្ជីអ្នកទទួល';\r
+$messages['smtpdsnerror'] = 'SMTP Error: មិនអាចប្រាប់ពីស្ថានភាពនៃការបញ្ជូនសំបុត្រ';\r
+$messages['smtperror'] = 'SMTP Error: $msg';\r
+$messages['emailformaterror'] = 'អាសយដ្ឋានអ៊ីមែលមិនត្រឹមត្រូវទេ: $email';\r
+$messages['toomanyrecipients'] = 'ចំនួនអ្នកទទួលច្រើនលើសកំនត់! សូមមេត្តាលុបចោលរហូតដល់ $max។';\r
+$messages['maxgroupmembersreached'] = 'ចំនួនក្រុមលើសកំនត់ហើយ ចំនួនច្រើនបំផុតគឺ $max';\r
+$messages['internalerror'] = 'មានបញ្ហាខាងម៉ាស៊ីនមេ ។ សូមព្យាយាមម្តងទៀត!';\r
+$messages['contactdelerror'] = 'មិនអាចលុបអាសយដ្ឋានទំនាក់ទំនង';\r
+$messages['contactdeleted'] = 'អាសយដ្ឋានទំនាក់ទំនងត្រូវបានលុបដោយជោគជ័យ';\r
+$messages['groupdeleted'] = 'លុបក្រុមបានដោយជោគជ័យ';\r
+$messages['grouprenamed'] = 'ប្តូរឈ្មោះក្រុមបានដោយជោគជ័យ';\r
+$messages['groupcreated'] = 'បង្កើតក្រុមបានដោយជោគជ័យ';\r
+$messages['messagedeleted'] = 'លុបសំបុត្របានដោយជោគជ័យ';\r
+$messages['messagemoved'] = 'ផ្ទេរសំបុត្របានដោយជោគជ័យ';\r
+$messages['messagecopied'] = 'ចំលងសំបុត្របានដោយជោគជ័យ';\r
+$messages['messagemarked'] = 'កំណត់សំគាល់សំបុត្របានដោយជោគជ័យ';\r
+$messages['autocompletechars'] = 'សូមសរសេរអក្សរយ៉ាងតិច $min ដើម្បីបង្ហាយដោយស្វ័យប្រវត្តិ';\r
+$messages['namecannotbeempty'] = 'សូមសរសេរឈ្មោះ';\r
+$messages['nametoolong'] = 'ឈ្មោះវែងពេក';\r
+$messages['folderupdated'] = 'ផ្លាស់ប្តូរថតបានដោយជោគជ័យ';\r
+$messages['foldercreated'] = 'បង្កើតថតបានដោយជោគជ័យ';\r
+$messages['invalidimageformat'] = 'ប្រភេទរូបភាពមិនត្រឹមត្រូវ';\r
\r
+?>
\ No newline at end of file
index 227fabd7a3bc05869373a6cc113bd37ff071a9b8..72260850a33c25c3e3c9db5bbf8a7ce9e00b5b89 100644 (file)
@@ -17,7 +17,7 @@
 |          Teotónio Ricardo <teotonio.ricardo@webtuga.pt>              |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4386 2011-01-04 08:35:46Z yllar $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -208,16 +208,45 @@ $labels['receiptnote'] = 'Nota: este recibo apenas indica que a mensagem foi abe
 $labels['name'] = 'Nome completo';
 $labels['firstname'] = 'Primeiro nome';
 $labels['surname'] = 'Apelido';
+$labels['middlename'] = 'Outros nomes/apelidos';
+$labels['nameprefix'] = 'Título';
+$labels['namesuffix'] = 'Sufixo';
+$labels['nickname'] = 'Alcunha';
+$labels['jobtitle'] = 'Cargo';
+$labels['department'] = 'Departamento';
+$labels['gender'] = 'Género';
+$labels['maidenname'] = 'Nome solteiro';
 $labels['email'] = 'E-mail';
+$labels['phone'] = 'Telefone';
+$labels['address'] = 'Endereço';
+$labels['street'] = 'Rua';
+$labels['locality'] = 'Cidade';
+$labels['zipcode'] = 'Código postal';
+$labels['region'] = 'Localidade';
+$labels['country'] = 'Pais';
+$labels['birthday'] = 'Data de nascimento';
+$labels['anniversary'] = 'Aniversário';
+$labels['website'] = 'Página web';
+$labels['instantmessenger'] = 'Endereço IM';
+$labels['notes'] = 'Notas';
+$labels['male'] = 'masculino';
+$labels['female'] = 'feminino';
+$labels['manager'] = 'Gerente';
+$labels['assistant'] = 'Assistente';
+$labels['spouse'] = 'Cônjuge';
+$labels['addfield'] = 'Adicionar campo...';
 $labels['addcontact'] = 'Criar novo contacto';
 $labels['editcontact'] = 'Editar contacto';
 $labels['contacts'] = 'Contactos';
 $labels['contactproperties'] = 'Propriedades dos contactos';
+$labels['personalinfo'] = 'Informação pessoal';
 $labels['edit'] = 'Editar';
 $labels['cancel'] = 'Cancelar';
 $labels['save'] = 'Guardar';
 $labels['delete'] = 'Eliminar';
 $labels['rename'] = 'Renomear';
+$labels['addphoto'] = 'Adicionar';
+$labels['replacephoto'] = 'Substituir';
 $labels['newcontact'] = 'Criar novo contacto';
 $labels['deletecontact'] = 'Eliminar contactos seleccionados';
 $labels['composeto'] = 'Escrever mensagem para';
index 855826d3d44c77d69ee4fad1849f6eb1e03bd4a1..bcd44ec13390282c468af425b79b2f75cb7a2e4f 100644 (file)
@@ -16,7 +16,7 @@
 |         Teotónio Ricardo <teotonio.ricardo@webtuga.pt>               |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4386 2011-01-04 08:35:46Z yllar $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -140,5 +140,6 @@ $messages['namecannotbeempty'] = 'O nome não pode estar em branco';
 $messages['nametoolong'] = 'O nome é demasiado longo';
 $messages['folderupdated'] = 'Actualização da pasta concluída com sucesso';
 $messages['foldercreated'] = 'Pasta criada com sucesso';
+$messages['invalidimageformat'] = 'Formato de imagem não suportado';
 
 ?>
index a1968cc1fa018f6a0943ec420fc77575235353f4..7c71b243f10f540bf11fba38957fd46518b102fb 100644 (file)
@@ -15,7 +15,7 @@
 | Support: www.roundcube.ru                                             |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4368 2010-12-27 08:51:22Z yllar $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -156,7 +156,6 @@ $labels['listmode'] = 'Режим просмотра';
 $labels['folderactions'] = 'Операции над папкой...';
 $labels['compact'] = 'Сжать';
 $labels['empty'] = 'Опустошить';
-$labels['purge'] = 'Очистить';
 $labels['quota'] = 'Квота';
 $labels['unknown'] = 'неизвестно';
 $labels['unlimited'] = 'без ограничений';
@@ -207,15 +206,45 @@ $labels['receiptnote'] = 'Это уведомление означает тол
 $labels['name'] = 'Отображаемое имя';
 $labels['firstname'] = 'Имя';
 $labels['surname'] = 'Фамилия';
+$labels['middlename'] = 'Отчество';
+$labels['nameprefix'] = 'Префикс';
+$labels['namesuffix'] = 'Суффикс';
+$labels['nickname'] = 'Прозвище';
+$labels['jobtitle'] = 'Должность';
+$labels['department'] = 'Отдел';
+$labels['gender'] = 'Пол';
+$labels['maidenname'] = 'Девичья фамилия';
 $labels['email'] = 'E-Mail';
+$labels['phone'] = 'Телефон';
+$labels['address'] = 'Адрес';
+$labels['street'] = 'Улица';
+$labels['locality'] = 'Город';
+$labels['zipcode'] = 'Индекс';
+$labels['region'] = 'Область';
+$labels['country'] = 'Страна';
+$labels['birthday'] = 'День рождения';
+$labels['anniversary'] = 'Годовщина';
+$labels['website'] = 'Веб-сайт';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Заметки';
+$labels['male'] = 'мужской';
+$labels['female'] = 'женский';
+$labels['manager'] = 'Менеджер';
+$labels['assistant'] = 'Помощник';
+$labels['spouse'] = 'Супруг';
+$labels['addfield'] = 'Добавить поле...';
 $labels['addcontact'] = 'Добавить выбранные контакты в список контактов';
 $labels['editcontact'] = 'Редактировать контакт';
 $labels['contacts'] = 'Контакты';
 $labels['contactproperties'] = 'Свойства контакта';
+$labels['personalinfo'] = 'Личная информация';
 $labels['edit'] = 'Правка';
 $labels['cancel'] = 'Отмена';
 $labels['save'] = 'Сохранить';
 $labels['delete'] = 'Удалить';
+$labels['rename'] = 'Переименовать';
+$labels['addphoto'] = 'Добавить';
+$labels['replacephoto'] = 'Заменить';
 $labels['newcontact'] = 'Создать новый контакт';
 $labels['deletecontact'] = 'Удалить выбранные контакты';
 $labels['composeto'] = 'Создать сообщение для выбранных контактов';
index 7981029309ec523392cb4509e983d250af41686d..9c9ebc145557eea70a974e0ffa64852a6915a544 100644 (file)
@@ -14,7 +14,7 @@
 | Updates: Sergey Dukachev <iam@dukess.ru>                              |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4368 2010-12-27 08:51:22Z yllar $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -138,5 +138,6 @@ $messages['namecannotbeempty'] = 'Имя не может быть пустым';
 $messages['nametoolong'] = 'Слишком длинное имя';
 $messages['folderupdated'] = 'Папка обновлена';
 $messages['foldercreated'] = 'Папка создана';
+$messages['invalidimageformat'] = 'Неверный формат изображения';
 
 ?>
index 266f970b8a345d0d791bef92104d8c2598d53b51..98f96841a88b83712cc8427480aa3275914c72c3 100644 (file)
 |         Lukas Kraic  <lukas.kraic@truni.sk>                           |
 |         Peter Mann   <peter.mann@tuke.sk>                             |
 |         Ales Pospichal   <ales@pospichalales.info>                    |
+|         Martin Lacina        <martin@whistler.sk>                            |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4345 2010-12-17 14:28:38Z thomasb $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -45,7 +46,7 @@ $labels['date'] = 'Dátum';
 $labels['size'] = 'Veľkosť';
 $labels['priority'] = 'Priorita';
 $labels['organization'] = 'Organizácia';
-$labels['reply-to'] = 'Odpovedať na';
+$labels['readstatus'] = 'Čítať stav';
 $labels['mailboxlist'] = 'Adresár';
 $labels['messagesfromto'] = 'Správy od $from do $to z $count';
 $labels['threadsfromto'] = 'Konverzácie od $from do $to z $count ';
@@ -100,6 +101,8 @@ $labels['checkmail'] = 'Skontrolovať nové správy';
 $labels['writenewmessage'] = 'Vytvoriť novú správu';
 $labels['replytomessage'] = 'Odpovedať';
 $labels['replytoallmessage'] = 'Odpovedať všetkým';
+$labels['replyall'] = 'Odpovedať všetkým';
+$labels['replylist'] = 'Zoznam odpovedí';
 $labels['forwardmessage'] = 'Poslať ďalej';
 $labels['deletemessage'] = 'Zmazať správu';
 $labels['movemessagetotrash'] = 'Presunúť správu do koša';
@@ -154,7 +157,6 @@ $labels['listmode'] = 'Režim zobrazenia zoznamu';
 $labels['folderactions'] = 'Akcie so zložkou...';
 $labels['compact'] = 'Zhustiť priečinok';
 $labels['empty'] = 'Prázdne';
-$labels['purge'] = 'Vyprázdniť';
 $labels['quota'] = 'Zaplnenie schránky';
 $labels['unknown'] = 'neznáme';
 $labels['unlimited'] = 'neobmedzené';
@@ -172,6 +174,7 @@ $labels['addattachment'] = 'Pridať prílohu';
 $labels['charset'] = 'Znaková sada';
 $labels['editortype'] = 'Typ editora';
 $labels['returnreceipt'] = 'Potvrdenie o doručení';
+$labels['dsn'] = 'Doručenie oznámenia o stave';
 $labels['editidents'] = 'Editovať identity';
 $labels['checkspelling'] = 'Skontrolovať pravopis';
 $labels['resumeediting'] = 'Pokračovať v úpravách';
@@ -207,10 +210,12 @@ $labels['email'] = 'E-Mail';
 $labels['addcontact'] = 'Pridať nový kontakt';
 $labels['editcontact'] = 'Upraviť kontakt';
 $labels['contacts'] = 'Kontakty';
+$labels['contactproperties'] = 'Vlastnosti kontaktu';
 $labels['edit'] = 'Upraviť';
 $labels['cancel'] = 'Zrušiť';
 $labels['save'] = 'Uložiť';
 $labels['delete'] = 'Zmazať';
+$labels['rename'] = 'Premenovať';
 $labels['newcontact'] = 'Vytvoriť nový kontakt';
 $labels['deletecontact'] = 'Zmazať zvolené kontakty';
 $labels['composeto'] = 'Vytvoriť správu pre';
@@ -254,6 +259,7 @@ $labels['pagesize'] = 'Riadky na stránku';
 $labels['signature'] = 'Podpis';
 $labels['dstactive'] = 'Letný čas';
 $labels['htmleditor'] = 'Vytvoriť HTML správu';
+$labels['htmlonreply'] = 'len v odpovedi na HTML správy';
 $labels['htmlsignature'] = 'HTML podpis';
 $labels['previewpane'] = 'Ukázať náhľad';
 $labels['skin'] = 'Vzhľad';
@@ -266,6 +272,7 @@ $labels['mdnrequests'] = 'Upozornenia odosielateľovi';
 $labels['askuser'] = 'spýtať sa používateľa';
 $labels['autosend'] = 'poslať potvrdenie automaticky';
 $labels['autosendknown'] = 'poslať potvrdenie iba mojím kontaktom';
+$labels['autosendknownignore'] = 'poslať potvrdenie mojím kontaktom, inak ignorovať';
 $labels['ignore'] = 'ignorovať';
 $labels['readwhendeleted'] = 'Označiť správu ';
 $labels['flagfordeletion'] = 'Pri odstránení správy iba označiť správu ako odstránenú';
@@ -311,6 +318,8 @@ $labels['insertsignature'] = 'Vložit podpis';
 $labels['previewpanemarkread'] = 'Označiť zobrazenej správy ako prečítané';
 $labels['afternseconds'] = 'po $ sekundách';
 $labels['reqmdn'] = 'Vždy požadovať doručenku';
+$labels['reqdsn'] = 'Vždy vyžadovať potvrdenie o doručení správy';
+$labels['replysamefolder'] = 'Umietniť odpoveď do adresára, kde je umiestnená správa, na ktorú sa odpovedalo';
 $labels['folder'] = 'Priečinok';
 $labels['folders'] = 'Priečinky';
 $labels['foldername'] = 'Názov priečinku';
@@ -320,6 +329,13 @@ $labels['create'] = 'Vytvoriť';
 $labels['createfolder'] = 'Vytvor nový priečinok';
 $labels['managefolders'] = 'Spravovať priečinky';
 $labels['specialfolders'] = 'Špeciálne priečinky';
+$labels['properties'] = 'Vlastnosti';
+$labels['folderproperties'] = 'Vlastnosti adresára';
+$labels['parentfolder'] = 'Rodičovský adresár';
+$labels['location'] = 'Umiestnenie';
+$labels['info'] = 'Informácia';
+$labels['getfoldersize'] = 'Kliknúť pre získanie leľkosti adresára';
+$labels['changesubscription'] = 'Kliknúť pre zmenu prihlásenia odberu';
 $labels['sortby'] = 'Triediť podľa';
 $labels['sortasc'] = 'Triediť vzostupne';
 $labels['sortdesc'] = 'Triediť zostupne';
@@ -346,4 +362,4 @@ $labels['japanese'] = 'Japončina';
 $labels['korean'] = 'Korejčina';
 $labels['chinese'] = 'Čínština';
 
-?>
\ No newline at end of file
+?>
index 797bbf61cc4bb841f40709825e810ce664896bfc..dec44e28448e336cade321e94dd6547b220647dd 100644 (file)
 |         Lukas Kraic  <lukas.kraic@truni.sk>                           |
 |         Peter Mann   <peter.mann@tuke.sk>                             |
 |         Ales Pospichal   <ales@pospichalales.info>                    |
+|         Martin Lacina        <martin@whistler.sk>                            |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4304 2010-12-03 10:58:40Z alec $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -26,6 +27,9 @@ $messages['cookiesdisabled'] = 'Váš internetový prehliadač nepodporuje cooki
 $messages['sessionerror'] = 'Vaše prihlásenie je neplatné alebo vypršala jeho platnosť';
 $messages['imaperror'] = 'Nepodarilo sa spojiť s IMAP serverom';
 $messages['servererror'] = 'Chyba servera!';
+$messages['servererrormsg'] = 'Chyba servera: $msg';
+$messages['errorreadonly'] = 'Nemožno vykonať operáciu. Adresár je len na čítanie';
+$messages['errornoperm'] = 'Nemožno vykonať operáciu. Prístup odmietnutý';
 $messages['invalidrequest'] = 'Chybný požiadavek. Žiadne údaje neboli uložené.';
 $messages['nomessagesfound'] = 'Vo Vašej schránke nie je žiadna správa';
 $messages['loggedout'] = 'Odhlásenie prebehlo úspešne. Dovidenia.';
@@ -59,6 +63,8 @@ $messages['deletefolderconfirm'] = 'Ste si istý, že chcete zmazať tento prie
 $messages['purgefolderconfirm'] = 'Ste si istý, že chcete zmazať všetky správy v tomto priečinku?';
 $messages['folderdeleting'] = 'Odstraňuje sa priečinok ...';
 $messages['foldermoving'] = 'Prečinok sa presúva ...';
+$messages['foldersubscribing'] = 'Prihlasujem sa k adresáru...';
+$messages['folderunsubscribing'] = 'Odhlasujem sa z adresára...';
 $messages['formincomplete'] = 'Formulár nie je kompletne vyplnený';
 $messages['noemailwarning'] = 'Prosím, vložte platnú emailovú adresu';
 $messages['nonamewarning'] = 'Prosím, zadajte meno';
@@ -78,6 +84,10 @@ $messages['searching'] = 'Vyhľadáva sa...';
 $messages['checking'] = 'Kontroluje sa...';
 $messages['nospellerrors'] = 'Pri kontrole pravopisu neboli nájdené chyby';
 $messages['folderdeleted'] = 'Priečinok bol zmazaný';
+$messages['foldersubscribed'] = 'Úspešne prihlásený k adresáru';
+$messages['folderunsubscribed'] = 'Úspešne odhlásený z adresára';
+$messages['folderpurged'] = 'Adresár bol vyprázdnený';
+$messages['folderexpunged'] = 'Adresár bol zhustený';
 $messages['deletedsuccessfully'] = 'Úspešne zmazané';
 $messages['converting'] = 'Odstraňuje sa formátovanie správy...';
 $messages['messageopenerror'] = 'Nedá sa načítať správa zo servera';
@@ -89,6 +99,8 @@ $messages['sourceisreadonly'] = 'Tento zdroj adries je len na čítanie';
 $messages['errorsavingcontact'] = 'Nedá sa uložiť adresa kontaktu';
 $messages['movingmessage'] = 'Správa sa presúva...';
 $messages['copyingmessage'] = 'Správa sa kopíruje...';
+$messages['deletingmessage'] = 'Mažem správu(y)...';
+$messages['markingmessage'] = 'Označujem správu(y)...';
 $messages['receiptsent'] = 'Potvrdenie o prijatí správy bolo odoslané';
 $messages['errorsendingreceipt'] = 'Potvrdenie o prijatí správy sa nedalo odoslať';
 $messages['nodeletelastidentity'] = 'Identita sa nedá odstrániť, je posledná a musí zostať.';
@@ -109,10 +121,25 @@ $messages['smtpautherror'] = 'Chyba SMTP: Autorizácie zlyhala';
 $messages['smtpfromerror'] = 'Chyba SMTP: Nemožno nastaviť odosielateľa ($msg)';
 $messages['smtptoerror'] = 'Chyba SMTP: Nemožno pridať príjemca ($msg)';
 $messages['smtprecipientserror'] = 'Chyba SMTP: Nemožno spracovať zoznam príjemcov';
+$messages['smtpdsnerror'] = 'SMTP chyba: Oznámenie o doručení nie je podporované';
 $messages['smtperror'] = 'Chyba SMTP: $msg';
 $messages['emailformaterror'] = 'Neplatná e-mailová adresa: $email';
 $messages['toomanyrecipients'] = 'Príliš veľa príjemcov. Zmenšite počet príjemcov na $max.';
 $messages['maxgroupmembersreached'] = 'Počet členov skupiny dosiahol maxima z $max';
 $messages['internalerror'] = 'Došlo k internej chybe. Skúste to znova';
+$messages['contactdelerror'] = 'Nemôžem vymazať kontakt(y)';
+$messages['contactdeleted'] = 'Kontakt(y) bol vymazaný';
+$messages['groupdeleted'] = 'Skupina bola vymazaná';
+$messages['grouprenamed'] = 'Skupina bola premenovaná';
+$messages['groupcreated'] = 'Skupina bola vytvorená';
+$messages['messagedeleted'] = 'Správa(y) bola vymazaná';
+$messages['messagemoved'] = 'Správa(y) bola presunutá';
+$messages['messagecopied'] = 'Správa(y) bola skopírovaná';
+$messages['messagemarked'] = 'Správa(y) bola označená';
+$messages['autocompletechars'] = 'Zadajte najmenej $min znamkov pre automatické dopĺňanie';
+$messages['namecannotbeempty'] = 'Meno nemôže byť prázdne';
+$messages['nametoolong'] = 'Meno je príliš dlhé';
+$messages['folderupdated'] = 'Adresár bol aktualizovaný';
+$messages['foldercreated'] = 'Adresár bol vytvorený';
 
 ?>
index 5ec87a609f7bcee72d1afba72ca2676e42fc12c5..d12547fa18c7624fdcdd44bed247edfb28a47167 100644 (file)
@@ -15,7 +15,7 @@
 |         Andreas Henriksson <andreas@fatal.se>                         |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4368 2010-12-27 08:51:22Z yllar $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -121,7 +121,7 @@ $labels['markread'] = 'Läst';
 $labels['markunread'] = 'Oläst';
 $labels['markflagged'] = 'Flaggat';
 $labels['markunflagged'] = 'Oflaggat';
-$labels['messageactions'] = 'Hantera meddelanden';
+$labels['messageactions'] = 'Hantera meddelande';
 $labels['select'] = 'Välj';
 $labels['all'] = 'Alla';
 $labels['none'] = 'Ingen';
@@ -156,7 +156,6 @@ $labels['listmode'] = 'Visningsläge';
 $labels['folderactions'] = 'Hantera kataloger';
 $labels['compact'] = 'Packa';
 $labels['empty'] = 'Töm';
-$labels['purge'] = 'Rensa';
 $labels['quota'] = 'Diskutrymme';
 $labels['unknown'] = 'okänt';
 $labels['unlimited'] = 'obegränsat';
@@ -207,7 +206,33 @@ $labels['receiptnote'] = 'Notera: Mottagarkvittot innebär bara att meddelandet
 $labels['name'] = 'Namn';
 $labels['firstname'] = 'Förnamn';
 $labels['surname'] = 'Efternamn';
+$labels['middlename'] = 'Mellannamn';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Smeknamn';
+$labels['jobtitle'] = 'Titel';
+$labels['department'] = 'Avdelning';
+$labels['gender'] = 'Kön';
+$labels['maidenname'] = 'Flicknamn';
 $labels['email'] = 'E-post';
+$labels['phone'] = 'Telefon';
+$labels['address'] = 'Adress';
+$labels['street'] = 'Gata';
+$labels['locality'] = 'Ort';
+$labels['zipcode'] = 'Postnummer';
+$labels['region'] = 'Region';
+$labels['country'] = 'Land';
+$labels['birthday'] = 'Födelsedag';
+$labels['anniversary'] = 'Årsdag';
+$labels['website'] = 'Webbplats';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Anteckningar';
+$labels['male'] = 'Man';
+$labels['female'] = 'Kvinna';
+$labels['manager'] = 'Chef';
+$labels['assistant'] = 'Assistent';
+$labels['spouse'] = 'Make/Maka';
+$labels['addfield'] = 'Lägg till fält...';
 $labels['addcontact'] = 'Lägg till ny kontakt';
 $labels['editcontact'] = 'Ändra kontakt';
 $labels['contacts'] = 'Kontakter';
@@ -216,6 +241,9 @@ $labels['edit'] = 'Redigera';
 $labels['cancel'] = 'Avbryt';
 $labels['save'] = 'Spara';
 $labels['delete'] = 'Ta bort';
+$labels['rename'] = 'Ändra namn';
+$labels['addphoto'] = 'Lägg till';
+$labels['replacephoto'] = 'Ersätt';
 $labels['newcontact'] = 'Ny kontakt';
 $labels['deletecontact'] = 'Ta bort vald kontakt';
 $labels['composeto'] = 'Nytt meddelande till vald kontakt';
@@ -323,7 +351,7 @@ $labels['replysamefolder'] = 'Placera svar i samma katalog som besvarat meddelan
 $labels['folder'] = 'Katalog';
 $labels['folders'] = 'Kataloger';
 $labels['foldername'] = 'Katalognamn';
-$labels['subscribed']  = 'Prenumererad';
+$labels['subscribed'] = 'Prenumererad';
 $labels['messagecount'] = 'Meddelanden';
 $labels['create'] = 'Skapa';
 $labels['createfolder'] = 'Ny katalog';
index 4bdd46b70bd1a76a16af6e8f0aceba62f53d7505..9b4a010ea4a224b1f1f66e4999fd4b046949042a 100644 (file)
@@ -15,7 +15,7 @@
 |         Andreas Henriksson <andreas@fatal.se>                         |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4368 2010-12-27 08:51:22Z yllar $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -139,5 +139,6 @@ $messages['namecannotbeempty'] = 'Namnet får inte vara tomt';
 $messages['nametoolong'] = 'Namnet är för långt';
 $messages['folderupdated'] = 'Katalog uppdaterad';
 $messages['foldercreated'] = 'Katalog skapad';
+$messages['invalidimageformat'] = 'Ogiltigt bildfilsformat';
 
 ?>
index 9a381113a1e0cf9eb62647921d5b55cc53267977..f21127827290d81c3662f619eb8b85e81c1fb396 100644 (file)
@@ -15,7 +15,7 @@
 |         Ting-Hung Chiu <earrl@mmlab.cse.yzu.edu.tw>                   |
 +-----------------------------------------------------------------------+
 
-@version $Id: labels.inc 4345 2010-12-17 14:28:38Z thomasb $
+@version $Id: labels.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -46,9 +46,6 @@ $labels['size'] = '大小';
 $labels['priority'] = '優先順序';
 $labels['organization'] = '組織';
 $labels['readstatus'] = '讀信狀態';
-$labels['reply-to'] = '回覆至';
-$labels['mail-reply-to'] = '信件回覆至';
-$labels['mail-followup-to'] = '信件跟隨至';
 $labels['mailboxlist'] = '資料夾';
 $labels['messagesfromto'] = '郵件 $from 至 $to,共有 $count 封郵件';
 $labels['threadsfromto'] = '郵件串 $from 至 $to,共有 $count 個';
@@ -159,7 +156,6 @@ $labels['listmode'] = '清單檢視模式';
 $labels['folderactions'] = '資料夾動作...';
 $labels['compact'] = '壓縮';
 $labels['empty'] = '清空';
-$labels['purge'] = '清除';
 $labels['quota'] = '磁碟使用量';
 $labels['unknown'] = '未知';
 $labels['unlimited'] = '無限制';
@@ -210,15 +206,45 @@ $labels['receiptnote'] = '注意:此回條只能確認收件者的電腦顯示
 $labels['name'] = '顯示名稱';
 $labels['firstname'] = '名稱';
 $labels['surname'] = '姓氏';
+$labels['middlename'] = '中名';
+$labels['nameprefix'] = '名';
+$labels['namesuffix'] = '姓';
+$labels['nickname'] = '暱稱';
+$labels['jobtitle'] = '職位';
+$labels['department'] = '部門';
+$labels['gender'] = '性別';
+$labels['maidenname'] = '姓';
 $labels['email'] = '電子郵件';
+$labels['phone'] = '電話';
+$labels['address'] = '地址';
+$labels['street'] = '街道';
+$labels['locality'] = '城市';
+$labels['zipcode'] = '郵遞區號';
+$labels['region'] = '地區';
+$labels['country'] = '國家';
+$labels['birthday'] = '生日';
+$labels['anniversary'] = '周年纪念日';
+$labels['website'] = '網站';
+$labels['instantmessenger'] = '即時通訊';
+$labels['notes'] = '註解';
+$labels['male'] = '男';
+$labels['female'] = '女';
+$labels['manager'] = '經理';
+$labels['assistant'] = '助理';
+$labels['spouse'] = '配偶';
+$labels['addfield'] = '新增欄位...';
 $labels['addcontact'] = '新增聯絡人';
 $labels['editcontact'] = '編輯聯絡人';
 $labels['contacts'] = '聯絡人';
 $labels['contactproperties'] = '聯絡人資訊';
+$labels['personalinfo'] = '個人資訊';
 $labels['edit'] = '編輯';
 $labels['cancel'] = '取消';
 $labels['save'] = '儲存';
 $labels['delete'] = '刪除';
+$labels['rename'] = '重新命名';
+$labels['addphoto'] = '新增';
+$labels['replacephoto'] = '取代';
 $labels['newcontact'] = '建立新聯絡人資料';
 $labels['deletecontact'] = '刪除所選擇的聯絡人';
 $labels['composeto'] = '寄信至所選擇的聯絡人';
@@ -332,6 +358,13 @@ $labels['create'] = '建立';
 $labels['createfolder'] = '建立新資料夾';
 $labels['managefolders'] = '管理資料夾';
 $labels['specialfolders'] = '預設資料夾設定';
+$labels['properties'] = '屬性';
+$labels['folderproperties'] = '資料夾屬性';
+$labels['parentfolder'] = '上一層資料夾';
+$labels['location'] = '位置';
+$labels['info'] = '資訊';
+$labels['getfoldersize'] = '點擊顯示資料夾大小';
+$labels['changesubscription'] = '點擊以改變訂閱';
 $labels['sortby'] = '排序';
 $labels['sortasc'] = '遞增排序';
 $labels['sortdesc'] = '遞減排序';
index e56e9a773dce39f73a8948f3425eb2b2ec9f7912..1b57eb8778f07fd0096bd83c1173ac62e884090b 100644 (file)
@@ -15,7 +15,7 @@
 |         Ting-Hung Chiu <earrl@mmlab.cse.yzu.edu.tw>                   |
 +-----------------------------------------------------------------------+
 
-@version $Id: messages.inc 4304 2010-12-03 10:58:40Z alec $
+@version $Id: messages.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -26,6 +26,8 @@ $messages['sessionerror'] = '你的工作階段已失效或過期';
 $messages['imaperror'] = '連線到 IMAP 伺服器失敗';
 $messages['servererror'] = '伺服器錯誤!';
 $messages['servererrormsg'] = '伺服器錯誤:$msg';
+$messages['errorreadonly'] = '動作無法完成。資料夾唯讀';
+$messages['errornoperm'] = '動作無法完成。權限不符';
 $messages['invalidrequest'] = '要求無效!未儲存任何資料。';
 $messages['nomessagesfound'] = '此郵件匣沒有任何郵件';
 $messages['loggedout'] = '你已成功地登出並結束工作階段了。再見!';
@@ -59,6 +61,8 @@ $messages['deletefolderconfirm'] = '你確定要刪除這個資料夾嗎?';
 $messages['purgefolderconfirm'] = '你確定要刪除這個資料夾裡面所有的郵件嗎?';
 $messages['folderdeleting'] = '刪除資料夾中...';
 $messages['foldermoving'] = '移動資料夾中...';
+$messages['foldersubscribing'] = '訂閱資料夾...';
+$messages['folderunsubscribing'] = '取消訂閱資料夾...';
 $messages['formincomplete'] = '這個表單有部分未填,請完整填寫';
 $messages['noemailwarning'] = '請輸入一個有效的電子郵件位址';
 $messages['nonamewarning'] = '請輸入名字';
@@ -78,6 +82,10 @@ $messages['searching'] = '搜尋中...';
 $messages['checking'] = '檢查中...';
 $messages['nospellerrors'] = '沒有找到任何拼字錯誤';
 $messages['folderdeleted'] = '資料夾已經成功地被刪除';
+$messages['foldersubscribed'] = '資料夾成功訂閱';
+$messages['folderunsubscribed'] = '資料夾成功取消訂閱';
+$messages['folderpurged'] = '資料夾成功清空';
+$messages['folderexpunged'] = '資料夾成功壓縮';
 $messages['deletedsuccessfully'] = '刪除成功';
 $messages['converting'] = '移除郵件格式中...';
 $messages['messageopenerror'] = '無法從伺服器載入郵件';
@@ -127,5 +135,10 @@ $messages['messagemoved'] = '訊息成功移動';
 $messages['messagecopied'] = '訊息成功複製';
 $messages['messagemarked'] = '訊息成功標示';
 $messages['autocompletechars'] = '輸入至少 $min 字元才能自動完成自動完成';
+$messages['namecannotbeempty'] = '名稱不可空白';
+$messages['nametoolong'] = '名稱太長';
+$messages['folderupdated'] = '資料夾成功更新';
+$messages['foldercreated'] = '資料夾成功建立';
+$messages['invalidimageformat'] = '圖片格式錯誤';
 
 ?>
index ceb683227b4e676de28ad1c10e8203234000ee31..7f979de825928042877605af7829cfd6f3ab1dc7 100644 (file)
@@ -136,7 +136,7 @@ if ($_FILES['_file']['tmp_name'] && is_uploaded_file($_FILES['_file']['tmp_name'
       }
 
       // We're using UTF8 internally
-      $email = idn_to_utf8($email);
+      $email = rcube_idn_to_utf8($email);
       
       if (!$replace) {
         // compare e-mail address
index e0f9a3f613553b1e67f1098f0f6ea0e3ac7856ac..cbdb60d8001100412e3d7f7813f4914c73556126 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: save.inc 4166 2010-11-02 09:27:03Z alec $
+ $Id: save.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -49,8 +49,8 @@ foreach ($a_save_cols as $col) {
 }
 
 // Validity checks
-$_email = idn_to_ascii($a_record['email']);
-if (!check_email($_email, false)) {
+$_email = rcube_idn_to_ascii($a_record['email']);
+if (!check_email($_email)) {
   $OUTPUT->show_message('emailformaterror', 'warning', array('email' => $_email));
   rcmail_overwrite_action($return_action);
   return;
@@ -121,6 +121,18 @@ else {
 
 
   if ($insert_id) {
+    // add new contact to the specified group
+    if ($CONTACTS->group_id) {
+      $plugin = $RCMAIL->plugins->exec_hook('group_addmembers', array('group_id' => $CONTACTS->group_id, 'ids' => $insert_id, 'source' => $source));
+
+      if (!$plugin['abort']) {
+        if (($maxnum = $RCMAIL->config->get('max_group_members', 0)) && ($CONTACTS->count()->count + 1 > $maxnum))
+          $OUTPUT->show_message('maxgroupmembersreached', 'warning', array('max' => $maxnum));
+
+        $CONTACTS->add_to_group($gid, $plugin['ids']);
+      }
+    }
+    
     // add contact row or jump to the page where it should appear
     $CONTACTS->reset();
     $result = $CONTACTS->search($CONTACTS->primary_key, $insert_id);
index e26b8fdb6c92fbffec86fd251fac9cf5c1a20fae..bdd93ecff9c5dfe2ead1c8230aec64abc1f7deda 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: addcontact.inc 4166 2010-11-02 09:27:03Z alec $
+ $Id: addcontact.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -46,7 +46,7 @@ if (!empty($_POST['_address']) && is_object($CONTACTS))
       $OUTPUT->send();
     }
 
-    $contact['email'] = idn_to_utf8($contact['email']);
+    $contact['email'] = rcube_idn_to_utf8($contact['email']);
 
     // use email address part for name
     if (empty($contact['name']) || $contact['name'] == $contact['email'])
index a5eb5fefc01fb87da897d8b91fe6500ff94b5b09..ddca5f6ff8c8ffb5ba9f47044427ded69726e1d3 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: compose.inc 4328 2010-12-09 19:10:44Z alec $
+ $Id: compose.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -321,7 +321,7 @@ function rcmail_compose_headers($attrib)
         if (empty($addr_part['mailto']))
           continue;
 
-        $mailto = idn_to_utf8($addr_part['mailto']);
+        $mailto = rcube_idn_to_utf8($addr_part['mailto']);
 
         if (!in_array($mailto, $sa_recipients)
             && (!$MESSAGE->compose_from
@@ -360,7 +360,7 @@ function rcmail_compose_headers($attrib)
       if (empty($addr_part['mailto']))
         continue;
 
-      $mailto = idn_to_utf8($addr_part['mailto']);
+      $mailto = rcube_idn_to_utf8($addr_part['mailto']);
 
       if ($addr_part['name'] && $addr_part['mailto'] != $addr_part['name'])
         $string = format_email_recipient($mailto, $addr_part['name']);
@@ -437,7 +437,7 @@ function rcmail_compose_header_from($attrib)
     // create SELECT element
     foreach ($user_identities as $sql_arr)
     {
-      $email = mb_strtolower(idn_to_utf8($sql_arr['email']));
+      $email = mb_strtolower(rcube_idn_to_utf8($sql_arr['email']));
       $identity_id = $sql_arr['identity_id'];
       $select_from->add(format_email_recipient($email, $sql_arr['name']), $identity_id);
 
@@ -732,9 +732,9 @@ function rcmail_create_reply_body($body, $bodyIsHtml)
   global $RCMAIL, $MESSAGE, $LINE_LENGTH;
 
   // build reply prefix
-  $from = array_pop($RCMAIL->imap->decode_address_list($MESSAGE->get_header('from')));
+  $from = array_pop($RCMAIL->imap->decode_address_list($MESSAGE->get_header('from'), 1, false));
   $prefix = sprintf("On %s, %s wrote:",
-    $MESSAGE->headers->date, $from['name'] ? $from['name'] : idn_to_utf8($from['mailto']));
+    $MESSAGE->headers->date, $from['name'] ? $from['name'] : rcube_idn_to_utf8($from['mailto']));
 
   if (!$bodyIsHtml) {
     $body = preg_replace('/\r?\n/', "\n", $body);
index 3d4572d1f6e1a19422008f32c2e00a114591d576..b3c4e63b51ca7c2ee95cc7409726b853dbb8bcda 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: func.inc 4389 2011-01-04 11:16:54Z alec $
+ $Id: func.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -56,9 +56,9 @@ if (!empty($_GET['_page']))
 
 // set default sort col/order to session
 if (!isset($_SESSION['sort_col']))
-  $_SESSION['sort_col'] = $CONFIG['message_sort_col'];
+  $_SESSION['sort_col'] = !empty($CONFIG['message_sort_col']) ? $CONFIG['message_sort_col'] : '';
 if (!isset($_SESSION['sort_order']))
-  $_SESSION['sort_order'] = $CONFIG['message_sort_order'];
+  $_SESSION['sort_order'] = strtoupper($CONFIG['message_sort_order']) == 'ASC' ? 'ASC' : 'DESC';
 
 // set threads mode
 $a_threading = $RCMAIL->config->get('message_threading', array());
@@ -273,7 +273,7 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null
       if (in_array($col, array('from', 'to', 'cc', 'replyto')))
         $cont = Q(rcmail_address_string($header->$col, 3), 'show');
       else if ($col=='subject') {
-        $cont = abbreviate_string(trim($IMAP->decode_header($header->$col)), 160);
+        $cont = trim($IMAP->decode_header($header->$col));
         if (!$cont) $cont = rcube_label('nosubject');
         $cont = Q($cont);
       }
@@ -665,7 +665,8 @@ function rcmail_print_body($part, $p = array())
 
   // trigger plugin hook
   $data = $RCMAIL->plugins->exec_hook('message_part_before',
-    array('type' => $part->ctype_secondary, 'body' => $part->body) + $p + array('safe' => false, 'plain' => false, 'inline_html' => true));
+    array('type' => $part->ctype_secondary, 'body' => $part->body, 'id' => $part->mime_id)
+        + $p + array('safe' => false, 'plain' => false, 'inline_html' => true));
 
   // convert html to text/plain
   if ($data['type'] == 'html' && $data['plain']) {
@@ -698,7 +699,8 @@ function rcmail_print_body($part, $p = array())
     $body = rcmail_plain_body($body, $part->ctype_parameters['format'] == 'flowed');
 
   // allow post-processing of the message body
-  $data = $RCMAIL->plugins->exec_hook('message_part_after', array('type' => $part->ctype_secondary, 'body' => $body) + $data);
+  $data = $RCMAIL->plugins->exec_hook('message_part_after',
+    array('type' => $part->ctype_secondary, 'body' => $body, 'id' => $part->mime_id) + $data);
 
   return $data['type'] == 'html' ? $data['body'] : html::tag('pre', array(), $data['body']);
 }
@@ -827,10 +829,10 @@ function rcmail_washtml_callback($tagname, $attrib, $content)
 
     case 'style':
       // decode all escaped entities and reduce to ascii strings
-      $stripped = preg_replace('/[^a-zA-Z\(:]/', '', rcmail_xss_entity_decode($content));
+      $stripped = preg_replace('/[^a-zA-Z\(:;]/', '', rcmail_xss_entity_decode($content));
 
       // now check for evil strings like expression, behavior or url()
-      if (!preg_match('/expression|behavior|url\(|import/', $stripped)) {
+      if (!preg_match('/expression|behavior|url\(|import[^a]/', $stripped)) {
         $out = html::tag('style', array('type' => 'text/css'), $content);
         break;
       }
@@ -940,16 +942,25 @@ function rcmail_message_headers($attrib, $headers=NULL)
     $table->add(array('class' => 'header '.$hkey), Q($row['value'], ($hkey == 'subject' ? 'strict' : 'show')));
   }
 
-  // all headers division
-  $table->add(array('colspan' => 2, 'class' => "more-headers show-headers", 'onclick' => "return ".JS_OBJECT_NAME.".command('load-headers','',this)"), '');
-  $table->add_row(array('id' => "all-headers"));
-  $table->add(array('colspan' => 2, 'class' => "all"), html::div(array('id' => 'headers-source'), ''));
+  return $table->show($attrib);
+}
+
+
+/**
+ * return block to show full message headers
+ */
+function rcmail_message_full_headers($attrib, $headers=NULL)
+{
+  global $OUTPUT;
+  
+  $html = html::div(array('class' => "more-headers show-headers", 'onclick' => "return ".JS_OBJECT_NAME.".command('load-headers','',this)"), '');
+  $html .= html::div(array('id' => "all-headers", 'class' => "all", 'style' => 'display:none'), html::div(array('id' => 'headers-source'), ''));
   
   $OUTPUT->add_gui_object('all_headers_row', 'all-headers');
   $OUTPUT->add_gui_object('all_headers_box', 'headers-source');
-
-  return $table->show($attrib);
-  }
+  
+  return html::div($attrib, $html);
+}
 
 
 /**
@@ -1183,15 +1194,16 @@ function rcmail_html4inline($body, $container_id, $body_id='', &$attributes=null
  */
 function rcmail_alter_html_link($matches)
 {
-  global $EMAIL_ADDRESS_PATTERN;
+  global $RCMAIL, $EMAIL_ADDRESS_PATTERN;
 
   $tag = $matches[1];
   $attrib = parse_attrib_string($matches[2]);
   $end = '>';
 
   if ($tag == 'link' && preg_match('/^https?:\/\//i', $attrib['href'])) {
-    $attrib['href'] = "?_task=utils&amp;_action=modcss&amp;u=" . urlencode($attrib['href'])
-        . "&amp;c=" . urlencode($GLOBALS['rcmail_html_container_id']);
+    $tempurl = 'tmp-' . md5($attrib['href']) . '.css';
+    $_SESSION['modcssurls'][$tempurl] = $attrib['href'];
+    $attrib['href'] = $RCMAIL->url(array('task' => 'utils', 'action' => 'modcss', 'u' => $tempurl, 'c' => $GLOBALS['rcmail_html_container_id']));
     $end = ' />';
   }
   else if (preg_match('/^mailto:'.$EMAIL_ADDRESS_PATTERN.'(\?[^"\'>]+)?/i', $attrib['href'], $mailto)) {
@@ -1239,10 +1251,10 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null)
 
     // IDNA ASCII to Unicode
     if ($name == $mailto)
-      $name = idn_to_utf8($name);
+      $name = rcube_idn_to_utf8($name);
     if ($string == $mailto)
-      $string = idn_to_utf8($string);
-    $mailto = idn_to_utf8($mailto);
+      $string = rcube_idn_to_utf8($string);
+    $mailto = rcube_idn_to_utf8($mailto);
 
     if ($PRINT_MODE) {
       $out .= sprintf('%s &lt;%s&gt;', Q($name), $mailto);
@@ -1749,6 +1761,7 @@ $OUTPUT->add_handlers(array(
   'quotadisplay' => 'rcmail_quota_display',
   'mailboxname' => 'rcmail_mailbox_name_display',
   'messageheaders' => 'rcmail_message_headers',
+  'messagefullheaders' => 'rcmail_message_full_headers',
   'messagebody' => 'rcmail_message_body',
   'messagecontentframe' => 'rcmail_messagecontent_frame',
   'messagepartframe' => 'rcmail_message_part_frame',
index eed6081047febe71a17133ad4c8592eb99960a06..fbd2ff87640071f2b8c6f7cbccf4a14436fbb117 100644 (file)
@@ -16,7 +16,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: sendmail.inc 4395 2011-01-06 11:48:11Z thomasb $
+ $Id: sendmail.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -153,11 +153,11 @@ function rcmail_email_input_format($mailto, $count=false, $check=true)
     $item = trim($item);
     // address in brackets without name (do nothing)
     if (preg_match('/^<\S+@\S+>$/', $item)) {
-      $item = idn_to_ascii($item);
+      $item = rcube_idn_to_ascii($item);
       $result[] = $item;
     // address without brackets and without name (add brackets)
     } else if (preg_match('/^\S+@\S+$/', $item)) {
-      $item = idn_to_ascii($item);
+      $item = rcube_idn_to_ascii($item);
       $result[] = '<'.$item.'>';
     // address with name (handle name)
     } else if (preg_match('/\S+@\S+>*$/', $item, $matches)) {
@@ -168,7 +168,7 @@ function rcmail_email_input_format($mailto, $count=false, $check=true)
           && preg_match('/[\(\)\<\>\\\.\[\]@,;:"]/', $name)) {
             $name = '"'.addcslashes($name, '"').'"';
       }
-      $address = idn_to_ascii($address);
+      $address = rcube_idn_to_ascii($address);
       if (!preg_match('/^<\S+@\S+>$/', $address))
         $address = '<'.$address.'>';
 
index e8de28f42f5edc9524c0455216a116990adb8c79..27ed364bbc4be6e7fd389dd3a6978c4fcfc2226b 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: edit_identity.inc 4328 2010-12-09 19:10:44Z alec $
+ $Id: edit_identity.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -94,9 +94,9 @@ function rcube_identity_form($attrib)
     $form['addressing']['content']['email']['class'] = 'disabled';
   }
 
-  $IDENTITY_RECORD['email']    = idn_to_utf8($IDENTITY_RECORD['email']);
-  $IDENTITY_RECORD['reply-to'] = idn_to_utf8($IDENTITY_RECORD['reply-to']);
-  $IDENTITY_RECORD['bcc']      = idn_to_utf8($IDENTITY_RECORD['bcc']);
+  $IDENTITY_RECORD['email']    = rcube_idn_to_utf8($IDENTITY_RECORD['email']);
+  $IDENTITY_RECORD['reply-to'] = rcube_idn_to_utf8($IDENTITY_RECORD['reply-to']);
+  $IDENTITY_RECORD['bcc']      = rcube_idn_to_utf8($IDENTITY_RECORD['bcc']);
 
   // Allow plugins to modify identity form content
   $plugin = $RCMAIL->plugins->exec_hook('identity_form', array(
index f118171fa3e7a111c9b37c3f08d2833f214dcdf4..fd9b1f1800aeeda79507c35f13743a4964544822 100644 (file)
@@ -16,7 +16,7 @@
  | Author: Aleksander Machniak <alec@alec.pl>                            |
  +-----------------------------------------------------------------------+
 
- $Id: folders.inc 4321 2010-12-08 12:52:04Z alec $
+ $Id: folders.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -42,8 +42,16 @@ if ($RCMAIL->action == 'subscribe')
             }
         }
 
-        if ($result)
+        if ($result) {
+            // Handle subscription of protected folder (#1487656)
+            if ($CONFIG['protect_default_folders'] == true
+                && in_array($mbox, $CONFIG['default_imap_folders'])
+            ) {
+                $OUTPUT->command('disable_subscription', $mbox);
+            }
+
             $OUTPUT->show_message('foldersubscribed', 'confirmation');
+        }
         else
             rcmail_display_server_error('errorsaving');
     }
@@ -294,13 +302,16 @@ function rcube_subscription_form($attrib)
             $noselect = in_array('\\Noselect', $opts);
         }
 
+        $disabled = (($protected && $subscribed) || $noselect);
+
         $table->add_row(array('id' => 'rcmrow'.$idx, 'class' => join(' ', $classes)));
     
         $table->add('name', $display_folder);
         $table->add('subscribed', $checkbox_subscribe->show(($subscribed ? $folder_utf8 : ''),
-            array('value' => $folder_utf8, 'disabled' => ($protected || $noselect) ? 'disabled' : '')));
+            array('value' => $folder_utf8, 'disabled' => $disabled ? 'disabled' : '')));
 
-        $a_js_folders['rcmrow'.$idx] = array($folder_utf8, Q($display_folder), $protected || $folder['virtual']);
+        $a_js_folders['rcmrow'.$idx] = array($folder_utf8,
+            Q($display_folder), $protected || $folder['virtual']);
     }
 
     $RCMAIL->plugins->exec_hook('folders_list', array('table' => $table));
index fde0871b2887d2ac7ac75844d962f1742283d528..2605120af5627247a78430e012a914f13128a6a2 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: func.inc 4389 2011-01-04 11:16:54Z alec $
+ $Id: func.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -72,7 +72,7 @@ function rcmail_identities_list($attrib)
   // get identities list and define 'mail' column
   $list = $USER->list_identities();
   foreach ($list as $idx => $row)
-    $list[$idx]['mail'] = trim($row['name'] . ' <' . idn_to_utf8($row['email']) .'>');
+    $list[$idx]['mail'] = trim($row['name'] . ' <' . rcube_idn_to_utf8($row['email']) .'>');
 
   // get all identites from DB and define list of cols to be displayed
   $plugin = $RCMAIL->plugins->exec_hook('identities_list', array(
@@ -756,7 +756,6 @@ function rcmail_get_skins()
   return $skins;
 }
 
-
 // register UI objects
 $OUTPUT->add_handlers(array(
   'prefsframe' => 'rcmail_preferences_frame',
index f07197397b3bfbd2e13ab270f71256ec4b2e0b09..b576970f5f62749a689e722f7b57016ec242065b 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: save_identity.inc 4025 2010-09-30 13:24:33Z alec $
+ $Id: save_identity.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -59,8 +59,8 @@ if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3)
 // Validate e-mail addresses
 foreach (array('email', 'reply-to', 'bcc') as $item) {
   if ($email = $save_data[$item]) {
-    $ascii_email = idn_to_ascii($email);
-    if (!check_email($ascii_email, false)) {
+    $ascii_email = rcube_idn_to_ascii($email);
+    if (!check_email($ascii_email)) {
       // show error message
       $OUTPUT->show_message('emailformaterror', 'error', array('email' => $email), false);
       rcmail_overwrite_action('edit-identity');
@@ -77,11 +77,11 @@ if ($_POST['_iid'])
   $save_data = $plugin['record'];
 
   if ($save_data['email'])
-    $save_data['email'] = idn_to_ascii($save_data['email']);
+    $save_data['email'] = rcube_idn_to_ascii($save_data['email']);
   if ($save_data['bcc'])
-    $save_data['bcc'] = idn_to_ascii($save_data['bcc']);
+    $save_data['bcc'] = rcube_idn_to_ascii($save_data['bcc']);
   if ($save_data['reply-to'])
-    $save_data['reply-to'] = idn_to_ascii($save_data['reply-to']);
+    $save_data['reply-to'] = rcube_idn_to_ascii($save_data['reply-to']);
 
   if (!$plugin['abort'])
     $updated = $USER->update_identity($iid, $save_data);
@@ -116,9 +116,9 @@ else if (IDENTITIES_LEVEL < 2)
   $plugin = $RCMAIL->plugins->exec_hook('identity_create', array('record' => $save_data));
   $save_data = $plugin['record'];
 
-  $save_data['email']    = idn_to_ascii($save_data['email']);
-  $save_data['bcc']      = idn_to_ascii($save_data['bcc']);
-  $save_data['reply-to'] = idn_to_ascii($save_data['reply-to']);
+  $save_data['email']    = rcube_idn_to_ascii($save_data['email']);
+  $save_data['bcc']      = rcube_idn_to_ascii($save_data['bcc']);
+  $save_data['reply-to'] = rcube_idn_to_ascii($save_data['reply-to']);
 
   if (!$plugin['abort'])
     $insert_id = $save_data['email'] ? $USER->insert_identity($save_data) : null;
index a0469ae1231692ee3a26809ca569b8f2e49b5b18..1bc98a65b068611eb1b53d7c6e83bd7f4b19329d 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: save_prefs.inc 4169 2010-11-02 14:53:54Z alec $
+ $Id: save_prefs.inc 4469 2011-01-29 14:55:12Z thomasb $
 
 */
 
@@ -129,6 +129,8 @@ switch ($CURR_SECTION)
     if (isset($CONFIG['max_pagesize']) && ($a_user_prefs['pagesize'] > $CONFIG['max_pagesize']))
       $a_user_prefs['pagesize'] = (int) $CONFIG['max_pagesize'];
 
+    $a_user_prefs['timezone'] = $_SESSION['timezone'] = (string) $a_user_prefs['timezone'];
+
   break;
   case 'mailbox':
 
index ed79c1e1e8edbd08d2ef252dcaef79b5a1c60645..2a2763abee9d27376d90c0ce1b60251faf25581b 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: error.inc 3989 2010-09-25 13:03:53Z alec $
+ $Id: error.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
@@ -47,6 +47,13 @@ else if ($ERROR_CODE==401) {
                    "Please contact your server-administrator.";
 }
 
+// forbidden due to request check
+else if ($ERROR_CODE==403) {
+  $__error_title = "REQUEST CHECK FAILED";
+  $__error_text  = "Access to this service was denied due to failing security checks!<br />\n".
+                   "Please contact your server-administrator.";
+}
+
 // failed request (wrong step in URL)
 else if ($ERROR_CODE==404) {
   $__error_title = "REQUEST FAILED/FILE NOT FOUND";
index 86129d595701ef1958f79004beb0ca70fe4ff81f..2d655441b90facdaa55556f645fffc9d7b2c19bd 100644 (file)
@@ -5,7 +5,7 @@
  | program/steps/utils/modcss.inc                                        |
  |                                                                       |
  | This file is part of the Roundcube Webmail client                     |
- | Copyright (C) 2007-2010, Roundcube Dev. - Switzerland                 |
+ | Copyright (C) 2007-2011, Roundcube Dev. - Switzerland                 |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  | PURPOSE:                                                              |
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: modcss.inc 3989 2010-09-25 13:03:53Z alec $
+ $Id: modcss.inc 4509 2011-02-09 10:51:50Z thomasb $
 
 */
 
 $source = '';
 
-$url = preg_replace('![^a-z0-9:./\-_?$&=%]!i', '', $_GET['u']);
-if ($url === null) {
+$url = preg_replace('![^a-z0-9.-]!i', '', $_GET['_u']);
+if ($url === null || !($realurl = $_SESSION['modcssurls'][$url])) {
     header('HTTP/1.1 403 Forbidden');
-    echo $error;
+    echo "Unauthorized request";
     exit;
 }
 
-$a_uri = parse_url($url);
+$a_uri = parse_url($realurl);
 $port  = $a_uri['port'] ? $a_uri['port'] : 80;
 $host  = $a_uri['host'];
 $path  = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '');
@@ -85,7 +85,7 @@ fclose($fp);
 $mimetype = strtolower($headers['content-type']);
 if (!empty($source) && in_array($mimetype, array('text/css','text/plain'))) {
     header('Content-Type: text/css');
-    echo rcmail_mod_css_styles($source, preg_replace('/[^a-z0-9]/i', '', $_GET['c']));
+    echo rcmail_mod_css_styles($source, preg_replace('/[^a-z0-9]/i', '', $_GET['_c']));
     exit;
 }
 else
index e052552d01bab09f902edf6411e5851b8afa22dc..2257ad4ec377f11247b42dc7e78e25c67405c9d8 100644 (file)
@@ -9,7 +9,7 @@ body
 
 body.iframe
 {
-  margin: 0px;
+  margin: 20px 0 0 0;
   background-color: #FFF;
 }
 
@@ -254,6 +254,14 @@ img
   float: right;
 }
 
+body.iframe .boxtitle
+{
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+}
+
 .boxcontent
 {
   padding: 15px 10px 10px 10px;
@@ -828,7 +836,7 @@ span.tablink-selected
 span.tablink a,
 span.tablink-selected a
 {
-  display: block;
+  display: inline-block;
   padding: 5px 10px 0 5px;
   margin-left: 5px;
   height: 23px;
index 00e97fd1ac64d13d5befeab77934accce322ad3e..3e06a54d4e5f96a58094968c31b7b6110997e983 100644 (file)
@@ -49,7 +49,7 @@ function rcube_init_tabs(id, current)
     // create a tab
     a   = $('<a>').text(legend.text()).attr('href', '#');
     tab = $('<span>').attr({'id': 'tab'+idx, 'class': 'tablink'})
-        .click(function() { return rcube_show_tab(id, idx); })
+        .click(function() { rcube_show_tab(id, idx); return false })
 
     // remove legend
     legend.remove();
index 1b8135dfe13cd32c213287bd2cc721fe4b06ff9a..aef4f17fb97fe72671de53dfefd3166a09757475 100644 (file)
@@ -116,7 +116,7 @@ ul.toolbarmenu li.separator_below
   height: expression((parseInt(this.parentNode.offsetHeight)-23-parseInt(this.style.top?this.style.top:21))+'px');
 }
 
-#directorylistbox
+#directorylistbox, #folder-manager
 {
   height: expression((parseInt(document.documentElement.clientHeight)-105)+'px');
 }
index 29ab8cb750201fe136336edd620a6af44379672d..e9b51a7961b109771b86ee7db990d452bf4dca64 100644 (file)
@@ -236,3 +236,8 @@ table.records-table thead tr td
 {
   margin-top: 2px;
 }
+
+#directorylistbox div
+{
+  min-height: 0;
+}
index 7bb308c06760c700229d94c7cf2f1382d47c3ae3..b5630e3423a9eab3cd1ba1c29a12f125d48972e0 100644 (file)
   border-bottom: 1px solid #EBEBEB;
 }
 
+#mailboxlist li ul li:last-child
+{
+  border-bottom: none;
+}
+
 #mailboxlist li div
 {
   position: absolute;
@@ -997,7 +1002,7 @@ td span.branch div.l3
 
 div.messageheaderbox
 {
-  margin: 6px 8px 0px 8px;
+  margin: -14px 8px 0px 8px;
   border: 1px solid #ccc;
 }
 
@@ -1007,17 +1012,12 @@ table.headers-table
   background-color: #EBEBEB;
 }
 
+#messagebody #full-headers,
 #messagebody table.headers-table
 {
   width: auto;
   margin: 6px 8px;
   background-color: #F4F4F4;
-  border: 1px solid #ccc;
-}
-
-#messageframe table.headers-table
-{
-  border-bottom: 1px solid #ccc;
 }
 
 table.headers-table tr td
@@ -1033,7 +1033,7 @@ table.headers-table tr td.header-title
   font-weight: bold;
   text-align: right;
   white-space: nowrap;
-  padding: 0 4px;
+  padding: 0 4px 0 8px;
 }
 
 table.headers-table tr td.header
@@ -1046,25 +1046,6 @@ table.headers-table tr td.subject
   font-weight: bold;
 }
 
-table.headers-table tr td.all
-{
-  width: 100%;
-  color: #666666;
-  text-align: left;
-  padding-right: 10px;
-  text-align: center;
-  padding: 2px 6px 4px 6px;
-  border-bottom: 0;
-}
-
-table.headers-table tr td.more-headers
-{
-  cursor: pointer;
-  width: 100%;
-  height: 8px;
-  border-bottom: 0;
-}
-
 #attachment-list
 {
   margin: 0;
@@ -1075,6 +1056,16 @@ table.headers-table tr td.more-headers
   background: url(images/icons/attachment.png) 4px 2px no-repeat #DFDFDF;
 }
 
+#messageframe #attachment-list
+{
+  border-bottom: 1px solid #ccc;
+}
+
+.messageheaderbox #attachment-list
+{
+  border-top: 1px solid #ccc;
+}
+
 #attachment-list:after
 {
   content: ".";
@@ -1210,31 +1201,45 @@ div.message-htmlpart div.rcmBody
   border: 0;
 }
 
-td.show-headers
+#full-headers
 {
-  background: url(images/icons/down_small.gif) no-repeat center;
+  color: #666666;
+  text-align: center;
+  padding: 2px 6px;
+  border-bottom: 1px solid #ccc;
+  background-color: #EBEBEB;
 }
 
-td.hide-headers
+.messageheaderbox #full-headers
 {
-  background: url(images/icons/up_small.gif) no-repeat center;
+  border-bottom: 0;
 }
 
-#all-headers
+div.more-headers
 {
-  height: 150px;
-  display: none;
+  cursor: pointer;
+  height: 8px;
+  border-bottom: 0;
+}
+
+div.show-headers
+{
+  background: url(images/icons/down_small.gif) no-repeat center;
+}
+
+div.hide-headers
+{
+  background: url(images/icons/up_small.gif) no-repeat center;
 }
 
 #headers-source
 {
-  margin: 0 5px;
+  margin: 0 0 2px 0;
   padding: 0.5em;
   height: 145px;
   background: white;
   overflow: auto;
   font-size: 11px;
-  white-space: nowrap;
   border: 1px solid #999999;
   display: none;
   text-align: left;
index 668b309a75f81e572510a9025147b6050bd5ee0c..d486f2fe74a5644ec5ac670c934b98179c0b6430 100644 (file)
@@ -40,6 +40,7 @@
   <roundcube:object name="directorylist" id="directorylist" />
   <roundcube:object name="groupslist" id="contactgroupslist" />
 </div>
+<!--[if lte IE 7]><div></div><![endif]-->
 <div class="boxfooter">
   <roundcube:button command="group-create" type="link" title="newcontactgroup" class="buttonPas addgroup" classAct="button addgroup" content=" " />
   <roundcube:button name="groupmenulink" id="groupmenulink" type="link" title="groupactions" class="button groupactions" onclick="rcmail_ui.show_popup('groupmenu');return false" content=" " />
index 8e8af931ff6dbf62370c4468cbbead4b8ebc9184..d59210c4095bf0a79e51ba672cd2572471b18af5 100644 (file)
@@ -50,6 +50,7 @@
 <div id="messageframe">
 <div class="boxlistcontent" style="top:0; overflow-x:auto">
 <roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" addicon="/images/icons/silhouette.png" summary="Message headers" />
+<roundcube:object name="messageFullHeaders" id="full-headers" />
 <roundcube:object name="messageAttachments" id="attachment-list" />
 
 <roundcube:object name="blockedObjects" id="remote-objects-message" />
index fbece6bc310a50efb3b4dc524dab270ba8fffe79..bfd7d7d9206918ec41d24d7aaa94e35c698db302 100644 (file)
@@ -9,6 +9,7 @@
 <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/silhouette.png" summary="Message headers" />
+<roundcube:object name="messageFullHeaders" id="full-headers" />
 <roundcube:object name="messageAttachments" id="attachment-list" />
 </div>